OSDN Git Service

* config/i386/i386.c (ix86_gimplify_va_arg): Also pass the result
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-12-26  Richard Henderson  <rth@redhat.com>
2
3         * config/i386/i386.c (ix86_gimplify_va_arg): Also pass the result
4         of type_natural_mode to examine_argument.
5
6         * config/i386/i386.md (mov<MMXMODEI>_internal_rex64): New.
7         (movv2sf_internal_rex64): New.
8         (mov<MMXMODEI>_internal): Use no register preferences at all.
9         (movv2sf_internal): Likewise.
10
11 2004-12-26  Richard Henderson  <rth@redhat.com>
12
13         * simplify-rtx.c (simplify_relational_operation_1): Don't simplify
14         plus/minus across EQ for floating-point.
15         
16 2004-12-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17
18         PR target/17643
19         * pa.c (pa_function_ok_for_sibcall): Sibcalls are not ok when
20         generating code for the portable runtime.
21
22 2004-12-25  Richard Henderson  <rth@redhat.com>
23
24         * expr.c (clear_storage): Validate CONST0_RTX extant.  Special case
25         complex modes.
26
27 2004-12-25  Zdenek Dvorak  <dvorakz@suse.cz>
28
29         PR rtl-optimization/19078
30         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_generic,
31         determine_use_iv_cost_outer): Fix computing of cost for the original
32         bivs.
33         (dump_use): Handle case related_cands == NULL.
34
35 2004-12-25  Marek Michalkiewicz  <marekm@amelek.gda.pl>
36
37         PR target/19059
38         * config/avr/avr.c (avr_mcu_types): Move attiny{13,2313} from avr4
39         to avr2.
40         * config/avr/avr.h (LINK_SPEC): Ditto.
41         * config/avr/t-avr (MULTILIB_MATCHES): Ditto.
42
43 2004-12-25  Alan Modra  <amodra@bigpond.net.au>
44
45         PR target/19137
46         * config/rs6000/rs6000.md (movti_power, movti_string): Relax
47         operand[1] predicate to input_operand, and add r<-n alternative.
48         Move TImode const_double_operand splitter to where it belongs.
49
50 2004-12-25  Alan Modra  <amodra@bigpond.net.au>
51
52         PR target/19147
53         * config/rs6000/rs6000.md (andsi3_internal7, andsi3_internal8): Delete.
54
55 2004-12-24  Uros Bizjak  <uros@kss-loka.si>
56
57         * config/i386/i386.md (*fix_trunc{d,s,h}i_1):
58         Rename to *fix_trunc{d,s,h}i_i387.
59         (fix_trunc{d,s}fdi2): Reorder tests.
60
61 2004-12-24  Daniel Berlin  <dberlin@dberlin.org>
62         
63         Fix PR debug/14638
64
65         * tree.h (DECL_DEBUG_ALIAS_OF): New macro.
66         * var-tracking.c (track_expr_p): Don't disqualify tracking of variables
67         that are aliases of variables we want to track, unless the
68         original variable is also ignored for debugging purposes.
69         (VARIABLE_HASH_VAL): Use DECL_UID, so that this is deterministic.
70         * tree-outof-ssa.c (create_temp): Note who we are a debug alias of.
71         * dwarf2out.c (dwarf2out_var_location): Add us to the location of
72         the decl we are an alias of.
73
74 2004-12-24  Alan Modra  <amodra@bigpond.net.au>
75
76         PR target/19142
77         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Allow
78         DFmode for 32-bit again.
79
80 2004-12-23  Roger Sayle  <roger@eyesopen.com>
81
82         * reload.c (regno_clobbered_p): Add a gcc_assert that regno
83         refers to a hard register.
84
85 2004-12-23  Mark Mitchell  <mark@codesourcery.com>
86
87         * gimplify.c (gimplify_modify_expr_rhs): Use types_compatible_p.
88
89 2004-12-23  DJ Delorie  <dj@redhat.com>
90
91         * genrecog.c (did_you_mean_codes): New.
92         (compute_predicate_codes): Fail unmatched codes.
93
94 2004-12-23  Eric Christopher  <echristo@redhat.com>
95
96         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Add
97         assert for machine=mips for !TARGET_IRIX.
98         * config/mips/linux.h: Remove machine=mips assert.
99         * config/mips/netbsd.h: Ditto.
100         * config/mips/openbsd.h: Ditto.
101
102 2004-12-23  Dale Johannesen  <dalej@apple.com>
103
104         * tree.c (iterative_hash_expr):  Canonicalize builtins.
105
106 2004-12-23  Alexandre Oliva  <aoliva@redhat.com>
107
108         PR target/16819
109         * calls.c (load_register_parameters): Don't call use_regs when
110         nregs is zero.
111
112 2004-12-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
113
114         PR middle-end/17746
115         * expr.c (get_inner_reference): Add 'keep_aligning' parameter.
116         Break on aligning VIEW_CONVERT_EXPR nodes on STRICT_ALIGNMENT
117         platforms only if keep_aligning is true.
118         (expand_assignment): Adjust call to get_inner_reference.
119         (expand_expr_addr_expr_1): Likewise.
120         (expand_expr_real_1): Likewise.
121         * dojump.c (do_jump): Likewise.
122         * dwarf2out.c (loc_descriptor_from_tree_1): Likewise.
123         * fold-const.c (optimize_bit_field_compare): Likewise.
124         (decode_field_reference): Likewise.
125         (split_address_to_core_and_offset): Likewise.
126         * tree-ssa-loop-ivopts.c (split_address_cost): Likewise.
127         * tree.h (get_inner_reference): Adjust prototype.
128
129 2004-12-23  Richard Henderson  <rth@redhat.com>
130
131         * config/i386/i386.c (override_options): Revert last change
132         wrt fancy 387 math.
133
134 2004-12-23  Richard Henderson  <rth@redhat.com>
135
136         * config/alpha/alpha.md (one_cmpl<mode>2, and<mode>3, andnot<mode>3,
137         ior<mode>3, iornot<mode>3, xor<mode>3, xornot<mode>3): New macroized
138         vector operate patterns.
139
140 2004-12-23  Richard Henderson  <rth@redhat.com>
141
142         * config/i386/i386.c (ix86_expand_vector_move): Tidy.
143         (ix86_expand_vector_move_misalign): New.
144         (ix86_misaligned_mem_ok): Remove.
145         (TARGET_VECTORIZE_MISALIGNED_MEM_OK): Remove.
146         * config/i386/i386-protos.h: Update.
147         * config/i386/i386.md (SSEMODEI): Rename from SSEINT16.
148         (MMXMODEI): Rename from MMXINT8.
149         (SSEMODE, MMXMODE, movmisalign<mode>): New.
150
151 2004-12-23  Mark Mitchell  <mark@codesourcery.com>
152
153         PR c++/16405
154         * gimplify.c (gimplify_modify_expr_rhs): Handle
155         INDIRECT_REF/ADDR_EXPR combinations.
156
157 2004-12-22  Richard Henderson  <rth@redhat.com>
158
159         * config/alpha/alpha.c (alpha_expand_mov): Split out ...
160         (alpha_expand_movmisalign): ... misaligned vector support.
161         (TARGET_VECTORIZE_MISALIGNED_MEM_OK): Remove.
162         * config/alpha/alpha-protos.h: Update.
163         * config/alpha/alpha.md (VEC): New macro.
164         (movv8qi, movv4hi, movv2si): Compress with VEC.
165         (movv8qi_fix, movv4hi_fix, movv2si_fix): Likewise.
166         (movv8qi_nofix, movv4hi_nofix, movv2si_nofix): Likewise.
167         (movmisalign<mode>): New.
168
169 2004-12-22  Richard Henderson  <rth@redhat.com>
170
171         * optabs.h (OTI_movmisalign, movmisalign_optab): New.
172         * optabs.c (init_optabs): Create it.
173         * genopinit.c (optabs): Initialize it.
174         * expr.c (expand_expr_real_1) <MISALIGNED_INDIRECT_REF>: Use it.
175         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
176         * target-def.h (TARGET_VECTORIZE_MISALIGNED_MEM_OK): Remove.
177         * target.h (vectorize.misaligned_mem_ok): Remove.
178         * targhooks.c (default_vect_misaligned_mem_ok): Remove.
179         * doc/md.texi (movmisalign): New.
180         * doc/tm.texi (TARGET_VECTORIZE_MISALIGNED_MEM_OK): Remove.
181
182 2004-12-22  Richard Henderson  <rth@redhat.com>
183
184         * config/i386/emmintrin.h (_mm_loadh_pd): Don't cast pointer arg
185         to __v2si.
186         (_mm_storeh_pd, _mm_loadl_pd, _mm_storel_pd): Likewise.
187         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use double* or
188         const double* for __builtin_ia32_loadhpd, __builtin_ia32_loadlpd,
189         __builtin_ia32_storehpd, __builtin_ia32_storelpd.
190         (ix86_expand_builtin): Update to match.
191         (ix86_expand_vector_init): Use sse2_loadlpd.
192         * config/i386/i386.md (vec_setv2df): Use sse2_loadlpd, sse2_loadhpd.
193         (vec_extractv2df): Use sse2_storelpd, sse2_storehpd.
194         (sse2_storehpd, sse2_loadhpd, sse2_storelpd, sse2_loadlpd): New.
195         (sse2_movhpd): Remove.
196
197 2004-12-23  Alan Modra  <amodra@bigpond.net.au>
198
199         PR target/18751
200         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Return
201         false for anything larger than 32 bits in 32-bit code.
202
203 2004-12-22  Richard Henderson  <rth@redhat.com>
204
205         * config/i386/i386.md (btsq, btrq, btcq): Fix modes.
206         (bt peepholes): Likewise.
207
208         * varasm.c (force_const_mem): Call set_mem_align.
209
210 2004-12-22  Richard Henderson  <rth@redhat.com>
211
212         * config/i386/predicates.md (sse_comparison_operator): Fix
213         typo in ieee test.
214         (arith_or_logical_operator): Downcase codes.
215
216 2004-12-23  Kaz Kojima  <kkojima@gcc.gnu.org>
217
218         PR target/18511
219         * reload1.c (emit_output_reload_insns): Check if OLD is a hard
220         register before calling regno_clobbered_p.
221         * reload.c: Update comment for regno_clobbered_p.
222
223 2004-12-22  Richard Henderson  <rth@redhat.com>
224
225         * config/i386/i386.c (override_options): Respect user disable of
226         fancy 387 math, sse, mmx.
227         (construct_container): Generate error if we need an sse regster
228         and sse has been disabled.
229         * config/i386/i386.h (TARGET_SWITCHES): Disabling sse also disables
230         later sse generations.  Disabling mmx also disables 3dnow.
231
232 2004-12-22  Daniel Berlin  <dberlin@dberlin.org>
233
234         * tree-inline.c (struct inline_data): Remove inlined_fns.
235         (expand_call_inline): Remove dead code setting
236         inlined_fns.
237         (optimize_inline_calls): Remove dead code setting DECL_INLINED_FNS.
238         * tree.h (struct tree_decl): Remove inlined_fns.
239
240 2004-12-22  Roger Sayle  <roger@eyesopen.com>
241
242         * tree-browser.c: Remove obsolete #ifdef HOST_EBCDIC code.
243
244 2004-12-23  Alan Modra  <amodra@bigpond.net.au>
245
246         PR target/18896
247         * function.c (split_complex_args): Set DECL_ARTIFICIAL, DECL_IGNORED_P
248         for real and imaginary parts if the parm is addressable.
249         (assign_parms_unsplit_complex): If parm addressable, save real
250         and imaginary parts to a stack temp.  Pass assign_parm_data_all.
251         (assign_parms): Adjust assign_parms_unsplit_complex call.
252
253 2004-12-22  Daniel Berlin  <dberlin@dberlin.org>
254
255         * tree.h (DECL_PTA_ALIASVAR): Dead.
256         (struct tree_decl): Remove alias_var field.
257
258 2004-12-22  Nathan Sidwell  <nathan@codesourcery.com>
259
260         * system.h (IN_RANGE): Restore HOST_WIDE_INT cast.
261         * tree.h (IS_EXPR_CODE_CLASS): Do not use IN_RANGE.
262
263 2004-12-22  Richard Henderson  <rth@redhat.com>
264             Uros Bizjak  <uros@kss-loka.si>
265
266         * config/i386/i386.md (truncdfsf2): Don't create stack temp when
267         using sse math only.  Use truncdfsf2_with_temp.
268         (truncdfsf2_with_temp): New.
269         (truncdfsf_fast_i387): Rename from truncdfsf2_noop.  Add memory
270         output alternative.
271         (truncdfsf_mixed): Rename from truncdfsf2_1_sse.  Compress duplicate
272         alternatives.
273         (truncdfsf_fast_sse): Rename from truncdfsf2_2.  Remove f alternative.
274         (truncdfsf2_3, truncdfsf2_sse_only): Remove.
275         (truncdfsf_i387): Rename from truncdfsf2_1.  Compress duplicates.
276         (truncdfsf_fast_mixed): New.
277         (truncdfsf splitters): Remove all except the 387 load/store split.
278         (truncxfsf2_1, truncxfdf2_1): Unify enable constraint with
279         respect to TARGET_SSE2, TARGET_80387, TARGET_SSE_MATH and
280         TARGET_MIX_SSE_I387.
281         (*truncxf{s,d}f2_1): Rename to *truncxf{s,d}f2_mixed.
282         (truncxf{s,d}f2_noop) Rename to truncxf{d,s}f2_i387_noop.
283         (*truncxf{s,d}f2_i387): New patterns.
284         (*truncxf{s,d}f2_2): Rename to *truncxf{s,d}f2_i387_1.
285         (truncxf{s,d}f2, fmod{s,d}f3, drem{s,d}f3, log1p{s,d}f2,
286         rint{s,d}f2, floor{s,d}f2, ceil{s,d}f2, btrunc{s,d}f2,
287         nearbyint{s,d}f2): Use renamed patterns.
288
289 2004-12-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
290
291         * tree.h (TYPE_SIZES_GIMPLIFIED): New.
292         * function.c (gimplify_parm_type): Don't gimplify type if already done.
293         * gimplify.c (gimplify_decl_expr): Likewise.
294         (gimplify_type_sizes): Set TYPE_SIZES_GIMPLIFIED.  Examine nested
295         array types.
296
297 2004-12-22  Richard Henderson  <rth@redhat.com>
298
299         * gimplify.c (eval_save_expr): Remove.
300         (gimplify_one_sizepos): Unshare expr before gimplifying.
301         * stor-layout.c (variable_size): Revert 2004-12-19 change.
302         (layout_decl): Revert 2004-12-18 change.
303         (layout_type): Revert 2004-12-21 change.
304
305 2004-12-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
306
307         * tree-sra.c (type_can_be_decomposed_p): Reject variable sized types.
308
309 2004-12-22  Mark Mitchell  <mark@codesourcery.com>
310
311         * Makefile.in (install-common): Remove special-case code for when
312         SPECS is defined.
313
314 2004-12-22  Jan Beulich  <jbeulich@novell.com>
315
316         * config.gcc: Add dbxelf.h to NetWare's tm_file.
317         * config/i386/netware-crt0.c: Prototype __init_environment and
318         __deinit_environment prior to their definition.
319         (__init_environment): Correct invokation of constructor function.
320         * config/i386/netware.h (TARGET_OS_CPP_BUILTINS): Use
321         builtin_define_std rather than builtin_define on IAPX386.
322         * config/i386/nwld.h: Disable stabs debugging info with the linker
323         this file supports.
324         * config/i386/t-nwld (SHLIB_LINK): Do not use a temporary file for
325         the output. Add -posix to the options as that is the more compatible
326         mode.
327         * gthr-nks.h: Formatting.
328         (__gthread_mutex_init_function): Kill the dubious use of
329         NX_MUTEX_RECURSIVE as it is now clear that the traditional mutexes
330         were not meant to be recursive.
331         (__gthread_recursive_mutex_t, __GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION,
332         __gthread_recursive_mutex_init_function,
333         __gthread_recursive_mutex_lock, __gthread_recursive_mutex_trylock,
334         __gthread_recursive_mutex_unlock): New.
335
336 2004-12-22  Alexandre Oliva  <aoliva@redhat.com>
337
338         * config/mips/t-linux64: Remove code that messed with $(SPECS).
339         (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, MULTILIB_OSDIRNAMES): Move
340         n32 to the front.
341         (MULTILIB_EXTRA_OPTS, CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S):
342         Removed.
343         * config/mips/linux64.h (DRIVER_SELF_SPECS): Don't handle
344         -mabi-fake-default.
345         (SUBTARGET_TARGET_SWITCHES): Likewise.
346
347 2004-12-21  Andrew Pinski  <pinskia@physics.uc.edu>
348
349         PR c++/18984
350         * pointer-set.c (pointer_set_contains): Add back.
351         * pointer-set.h (pointer_set_contains): Add back.
352
353 2004-12-21  Richard Henderson  <rth@redhat.com>
354
355         * gimplify.c (eval_save_expr): New.
356         (gimplify_one_sizepos): Use it.
357         * stor-layout.c (layout_type): Unshare TYPE_MIN/MAX_VALUE.
358
359 2004-12-21  Nathan Sidwell  <nathan@codesourcery.com>
360
361         * system.c (IN_RANGE): Use plain unsigned, not unsigned
362         HOST_WIDE_INT.
363         * tree.def (VOID_TYPE, INTEGER_TYPE, REAL_TYPE, COMPLEX_TYPE,
364         VECTOR_TYPE, OFFSET_TYPE, ENUMERAL_TYPE, BOOLEAN_TYPE, CHAR_TYPE,
365         POINTER_TYPE, REFERENCE_TYPE, METHOD_TYPE, FUNCTION_TYPE,
366         FILE_TYPE, ARRAY_TYPE, RECORD_TYPE, UNION_TYPE,
367         QUAL_UNION_TYPE): Reorder for better code efficiency.
368         (CONST_DECL, TYPE_DECL, VAR_DECL, FIELD_DECL, PARM_DECL): Likewise.
369         (INDIRECT_REF, ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF): Likewise.
370         * tree.h (INDIRECT_REF_P): Reorder checks for better optimization.
371         (IS_EXPR_CODE_CLASS): Use IN_RANGE.
372         (INTEGRAL_TYPE_P, FLOAT_TYPE_P): Reorder checks for better
373         optimization.
374
375 2004-12-21  David O'Brien  <obrien@FreeBSD.org>
376
377         * config/freebsd-spec.h:  Use KSE pthread lib for -pthread.
378
379 2004-12-21  James A. Morrison  <phython@gcc.gnu.org>
380
381         PR c/18963
382         * c-decl.c (pushdecl): Remove block trying to merge static function
383         declarations at block scope to file scope declarations.
384
385 2004-12-21  James A. Morrison  <phython@gcc.gnu.org>
386
387         PR c/18596
388         * c-parse.in (initdcl): Don't process a declaration if start_decl fails.
389         (notype_initdcl):  Don't process a declaration if start_decl fails.
390         * c-decl.c (start_decl): Fail if grokdeclarator fails.
391         (grokdeclarator): Fail if a function definition has an invalid storage
392         class.
393         * c-typeck.c (start_init): Treat error_mark_node the same as 0.
394
395 2004-12-21  Richard Henderson  <rth@redhat.com>
396
397         * config/i386/i386.c (x86_sse_split_regs): Rename from
398         x86_sse_partial_regs.
399         * config/i386/i386.h (x86_sse_split_regs): Likewise.
400         (TARGET_SSE_SPLIT_REGS): Rename from TARGET_SSE_PARTIAL_REGS.
401         * config/i386/i386.md (*): Update to match.  Remove two
402         floatsisf splitters that use it.
403
404         * config/i386/i386.h (x86_sse_partial_regs_for_cvtsd2ss): Remove.
405
406         * config/i386/i386.c (x86_sse_partial_regs_for_cvtsd2ss): Remove.
407         * config/i386/i386.h (TARGET_SSE_PARTIAL_REGS_FOR_CVTSD2SS): Remove.
408         * config/i386/i386.md (truncdfsf2_1_sse): Don't test it.
409         (truncdfsf2_2, truncdfsf2_sse_only): Likewise.
410         (truncdfsf2_1_sse_nooverlap, truncdfsf2_2_nooverlap): Remove.
411         (truncdfsf2_sse_only_nooverlap): Remove.
412
413         * config/i386/i386.h (TARGET_SSE_TYPELESS_LOAD0): Remove.
414
415 2004-12-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
416
417         * expr.c (emit_group_load_1): Return the source if the move
418         is a regular move between complex values.
419
420 2004-12-20  Roger Sayle  <roger@eyesopen.com>
421
422         PR middle-end/18683
423         * config/rs6000/rs6000.c (current_file_function_operand): Only check
424         current_function_decl's DECL_RTL if it has already been set.
425
426 2004-12-20  Roger Sayle  <roger@eyesopen.com>
427
428         PR middle-end/18683
429         * function.c (pop_function_context_from): Don't reset reg_renumber.
430
431 2004-12-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
432
433         PR middle-end/18776
434         * expr.c (write_complex_part): Use a subreg if the original object
435         is a hard reg that spans an even number of regs or a MEM.
436         (read_complex_part): Likewise.
437
438 2004-12-20  Mark Mitchell  <mark@codesourcery.com>
439
440         * Makefile.in (install-common): Do not install the specs file
441         unless SPECS is defined.
442
443 2004-12-20  Zdenek Dvorak  <dvorakz@suse.cz>
444
445         PR rtl-optimization/18942
446         * simplify-rtx.c (simplify_relational_operation_1): Simplify
447         x + cst1 == cst2 to x == cst2 - cst1.  Made static.
448
449 2004-12-20  Matt Austern  <austern@apple.com>
450
451         PR c++/19044
452         * c-common.c (set_builtin_user_assembler_name): New.
453         * c-common.h (set_builtin_user_assembler_name): Declare.
454         * c-decl.c (finish_decl): Use set_builtin_user_assembler_name
455
456 2004-12-20  Diego Novillo  <dnovillo@redhat.com>
457
458         PR tree-optimization/19080
459
460         Merge from tree-cleanup-branch
461
462         * tree-flow-inline.h (clear_call_clobbered): New function.
463         * tree-ssa-alias.c (init_alias_info): Call it.
464
465 2004-12-20  Richard Henderson  <rth@redhat.com>
466
467         * config/i386/i386.md (sse2_movsd): Remove ix86_binary_operator_ok
468         check.
469
470 2004-12-20  Steven Bosscher  <stevenb@suse.de>
471             Andrew Pinski  <pinskia@physics.uc.edu>
472
473         PR middle-end/18191
474         PR middle-end/18965
475         PR middle-end/18999
476         * expr.c (categorize_ctor_elements_1): Count the total number
477         of elements in the constructor.
478         (categorize_ctor_elements): Return it in a new argument.
479         * tree.h (categorize_ctor_elements): Adjust prototype.
480         * gimplify.c (gimplify_init_ctor_eval_range): New.
481         (gimplify_init_ctor_eval): Gimplify RANGE_EXPR.
482         (gimplify_init_constructor): Block clear the object if the
483         constructor has fewer elements than the object type.  Only try
484         to add assignments to individual elements when we have to.
485
486 2004-12-20  Richard Henderson  <rth@redhat.com>
487
488         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use
489         long_long_integer_type_node in building V2DI_type_node.
490
491         * config/i386/emmintrin.h: Use __vector_size__ instead of vector_size.
492         * config/i386/mmintrin.h, config/i386/xmmintrin.h: Likewise.
493
494 2004-12-20  Ben Elliston  <bje@au.ibm.com>
495
496         * doc/md.texi (Expander Definitions): Use @emph instead of @strong
497         around Note: text to workaround a limitation of the Info format.
498         * doc/cpp.texi (Invocation): Likewise.
499         * doc/cppopts.texi: Likewise.
500
501 2004-12-19  Dale Johannesen  <dalej@apple.com>
502
503         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p):  Don't
504         reference operand 1 of ADDR_EXPRs.
505
506 2004-12-19  Mark Mitchell  <mark@codesourcery.com>
507
508         * defaults.h (ASM_OUTPUT_INTERNAL_LABEL): New macro.
509         * output.h (assemble_name_raw): Declare it.
510         * system.h (ASM_OUTPUT_INTERNAL_LABEL): Do not poison it.
511         * varasm.c (assemble_name_raw): New function.
512         (assemble_name): Use it.
513         (default_internal_label): Likewise.
514         * config/darwin.c (darwin_asm_output_dwarf_delta): Likewise.
515         * doc/tm.texi (ASM_OUTPUT_INTERNAL_LABEL): Document.
516
517 2004-12-19  Richard Henderson  <rth@redhat.com>
518
519         PR 18067
520         * stor-layout.c (variable_size): Force creation of a SAVE_EXPR.
521
522 2003-12-19  Steven Bosscher  <stevenb@suse.de>
523
524         * config/i386/i386.c (ix86_split_to_parts): Use an array with
525         four elements for decoding a CONST_DOUBLE on 64 bits targets.
526
527 2004-12-19  Bernardo Innocenti  <bernie@develer.com>
528
529         * config/m68k/m68kemb.h (TARGET_OS_CPP_BUILTINS): Remove redundant
530         definition of mc68000, already present in TARGET_CPU_CPP_BUILTINS.
531
532 2004-12-18  Daniel Berlin  <dberlin@dberlin.org>
533
534         * lambda-code.c (can_convert_to_perfect_nest): Make checking
535         match up with what perfect_nestify can actually handle.
536         (perfect_nestify): Don't return false in the phi node loop.
537
538 2004-12-18  Richard Henderson  <rth@redhat.com>
539
540         * config/i386/i386.md (SSEINT16): New.
541         (movv16qi, movv8hi, movv4si, movv2di): Compress via macros.
542         (movv16qi_internal, movv8hi_internal, movv4si_internal,
543         movv2di_internal): Compress via macros.  Add SSE zero alternative.
544         Fix pure SSE alternatives to use 'x' instead of 'Y'.
545         (MMXINT8): New.
546         (movv8qi, movv4hi, movv2si, movv8qi_internal, movv4hi_internal,
547         movv2si_internal): Compress via macros.
548         (SSEPUSH, MMXPUSH): New.
549         (pushv18qi, pushv8hi, pushv4si, pushv2di, pushti, pushv4sf, pushv2df,
550         pushv8qi, pushv4hi, pushv2si, pushv2sf): Compress via macros.
551
552 2004-12-18  Richard Henderson  <rth@redhat.com>
553
554         PR middle-end/16417
555         * c-decl.c (store_parm_decls): Clarify get_pending_sizes insertion
556         comment.
557         * c-objc-common.c (c_cannot_inline_tree_fn): Remove pending sizes
558         checks.
559         * c-tree.h (struct lang_decl): Remove pending_sizes.
560         * function.c: Include tree-gimple.h
561         (assign_parm_setup_reg): Remove callee-copies code.
562         (gimplify_parm_type, gimplify_parameters): New functions.
563         (expand_pending_sizes): Remove.
564         (expand_function_start): Don't call it.
565         * gimplify.c (gimplify_expr): Examine DECL_VALUE_EXPR for PARM_DECL.
566         (gimplify_body): Add do_parms argument.  Use gimplify_parameters.
567         (gimplify_function_tree): Setup cfun.  Update gimplify_body call.
568         * tree-gimple.h (gimplify_body): Update decl.
569         * tree-inline.c (initialize_inlined_parameters): Update gimplify_body
570         call.
571         * tree.h (gimplify_parameters): Declare.
572         * Makefile.in (function.o): Depend on TREE_GIMPLE_H.
573
574 2004-12-18  Richard Henderson  <rth@redhat.com>
575
576         * c-decl.c (finish_struct): Add DECL_EXPR for variable sized
577         structures seen inside functions.
578
579 2004-12-18  Richard Henderson  <rth@redhat.com>
580
581         * c-decl.c (grokdeclarator): Save variable array size before
582         subtracting 1, rather than after.
583
584 2004-12-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
585
586         PR middle-end/15486
587         * varasm.c (asm_emit_uninitialised): Return early if
588         a custom section is requested.
589         (assemble_variable): Revert 2002-03-15 patch.
590
591 2004-12-18  Richard Henderson  <rth@redhat.com>
592
593         * stor-layout.c (layout_decl): Use unshare_expr, not unsave_expr.
594
595 2004-12-18  Zdenek Dvorak  <dvorakz@suse.cz>
596
597         PR tree-optimization/18800
598         * params.def (PARAM_IV_ALWAYS_PRUNE_CAND_SET_BOUND): New parameter.
599         * tree-ssa-loop-ivopts.c (struct iv_ca): Add n_cands field.
600         (ALWAYS_PRUNE_CAND_SET_BOUND): New macro.
601         (iv_ca_set_no_cp, iv_ca_set_cp, iv_ca_new): Update n_cands field.
602         (iv_ca_delta_join, iv_ca_delta_reverse, iv_ca_n_cands, iv_ca_prune):
603         New functions.
604         (iv_ca_extend): Return number of candidates in the set.
605         (try_add_cand_for): Add argument to iv_ca_extend calls.
606         (try_improve_iv_set): Use iv_ca_prune.
607         * doc/invoke.texi (iv-always-prune-cand-set-bound): Document.
608
609 2004-12-18  Zdenek Dvorak  <dvorakz@suse.cz>
610
611         PR rtl-optimization/19001
612         * loop-iv.c (iv_number_of_iterations): Record assumptions for loops
613         with power of two step to 'infinite' field.
614
615 2004-12-18  Roger Sayle  <roger@eyesopen.com>
616
617         * Makefile.in (stor-layout.o): Depend upon gt-stor-layout.h.
618         (tree-ssa-propagate.o): Depend upon gt-tree-ssa-propagate.h.
619         (tree-ssa-operands.o): Depend upon gt-tree-ssa-operands.h.
620         (tree-mudflap.o): Depend upon gt-tree-mudflap.h.
621         (expr.o): Depend upon gt-expr.h.
622         (regclass.o): Depend upon gt-regclass.h.
623         (bitmap.o): Depend upon gt-bitmap.h.
624         (lists.o): Depend upon gt-lists.h.
625
626         (cfgexpand.o): Don't depend upon gt-tree-cfg.h.
627
628         (GTFILES): Remove fold-const.c.
629         (gt-stmt.h, gt-fold-const.h, gt-input.h, gt-tree-ssa-ccp.h):
630         Remove rules.
631
632 2004-12-18  Richard Henderson  <rth@redhat.com>
633
634         * stor-layout.c (layout_decl): Unshare size expressions copied
635         from the type.
636
637         * fold-const.c (multiple_of_p): Handle BIT_AND_EXPR when
638         BOTTOM is a power of two.
639
640 2004-12-18  Richard Henderson  <rth@redhat.com>
641
642         * tree-nested.c (save_tmp_var): New.
643         (struct walk_stmt_info): Add is_lhs.
644         (walk_stmts) <MODIFY_EXPR>: Be more accurate with setting of
645         val_only; set is_lhs.
646         (convert_nonlocal_reference): Use save_tmp_var when is_lhs;
647         clear is_lhs when appropriate.
648         (convert_local_reference): Likewise.
649
650 2004-12-18  Richard Earnshaw  <rearnsha@arm.com>
651
652         * arm/ieee754-sf.S (floatdisf): Fix label definition in FPA
653         compatibility code.
654
655 2004-12-18  Roger Sayle  <roger@eyesopen.com>
656
657         * ifcvt.c (total_bb_rtx_cost): Rename function to cheap_bb_rtx_cost_p.
658         Take a max_cost argument to avoid scanning large blocks, by returning
659         a Boolean instead of a total.  Include the cost of a "fstp %st(0)"
660         instruction required to pop dead values off of a register stack.
661
662 2004-12-18  Roger Sayle  <roger@eyesopen.com>
663
664         PR middle-end/18548
665         * expr.c (expand_expr_real_1) <MAX_EXPR>: Ensure that target, op0
666         and op1 are all registers (or constants) before expanding the RTL
667         comparison sequence [to avoid reg_overlap_mentioned (target, op1)].
668
669 2004-12-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
670
671         PR rtl-optimization/16968
672         * loop.c (scan_loop): Stop scanning the loop for movable
673         insns as soon as an optimization barrier is encountered.
674
675 2004-12-17  Zack Weinberg  <zack@codesourcery.com>
676
677         PR 18897
678         * toplev.c (compile_file): Call process_pending_assemble_externals
679         just before targetm.asm_out.file_end.
680
681 2004-12-17  Diego Novillo  <dnovillo@redhat.com>
682
683         tree-optimization/18501
684         * tree-optimize.c (init_tree_optimization_passes): Run
685         pass_late_warn_uninitialized before the last DCE run.
686
687 2004-12-17  Richard Henderson  <rth@redhat.com>
688
689         * config/i386/i386.c (x86_64_reg_class_name): Re-indent.
690         (classify_argument, examine_argument, construct_container,
691         merge_classes): Remove prototypes.
692         (type_natural_mode): Split out from ...
693         (function_arg): ... here.
694         (gen_reg_or_parallel): Remove alt_mode argument.  Update callers.
695         Use orig_mode unless it's BLKmode.
696         (construct_container): Add orig_mode argument.  Update callers.
697         Use gen_reg_or_parallel for SSE registers.
698         (ix86_function_value): Use type_natural_mode.
699         (ix86_gimplify_va_arg): Likewise.
700         (ix86_hard_regno_mode_ok): Always accept all SSE, MMX, 3DNOW modes in
701         SSE registers; always accept all MMX, 3DNOW modes in MMX registers.
702         * config/i386/i386.h (VALID_SSE2_REG_MODE): Don't include
703         VALID_MMX_REG_MODE.
704         * config/i386/i386.md (attribute mode): Add V1DF.
705         (movsi_1): Use 'x' instead of 'Y' constraints.
706         (movsi_1_nointernunit, movdi_2, movdi_1_rex64): Likewise.
707         (movdi_1_rex64_nointerunit): Likewise.
708         (movdf_nointeger, movdf_integer): Likewise.  Handle SSE1.
709         (movsf_1, movsf_1_nointerunit): Line up constraint alternatives.
710         (swapsf): Use fp_register_operand, don't disable for TARGET_SSE.
711         (swapdf): Likewise.
712         (swapxf): Enable only for TARGET_80387.
713         (movv2sf, movv2sf_internal, pushv2sf): Enable for MMX.
714         (movtf): Remove double-check for TARGET_64BIT.
715         (movv2df_internal): Enable for SSE1.
716         (movv8hi_internal, movv16qi_internal): Likewise.
717         (movv2df, movv8hi, movv16qi): Likewise.
718         (pushv2di, pushv8hi, pushv16qi, pushv4si): Likewise.
719         (pushdi2_rex64, movv4sf_internal, movv4si_internal, movv2di_internal,
720         movv8qi_internal, movv4hi_internal, movv2sf_internal,
721         movv2df_internal, movv8hi_internal, movv16qi_internal,
722         movti_internal): Add leading '*' to name.
723
724 2004-12-17  Dale Johannesen  <dalej@apple.com>
725
726         * c-decl.c (diagnose_mismatched_decls):  Accept mismatched
727         function types: void with previous implicit int.
728
729 2004-12-17  Andreas Krebbel  <krebbel1@de.ibm.com>
730
731         * config/s390/s390.c (s390_gimplify_va_arg): Set alias set to
732         s390_sr_alias_set.
733
734 2004-12-17  Jan Beulich  <jbeulich@novell.com>
735
736         PR target/17603
737         * config/i386/i386.c (enum x86_64_reg_class): Define
738         X86_64_COMPLEX_X87_CLASS.
739         (x86_64_reg_class_names): Add name for X86_64_COMPLEX_X87_CLASS.
740         (merge_classes): Handle X86_64_COMPLEX_X87_CLASS.
741         (classify_argument): XCmode is X86_64_COMPLEX_X87_CLASS.
742         (examine_argument): X86_64_COMPLEX_X87_CLASS requires two
743         registers when dealing with a return value.
744         (construct_container): Handle X86_64_COMPLEX_X87_CLASS.
745         Eliminate impossible case of two X87/X87UP pairs (this now is
746         being expressed by a single COMPLEX_X87).
747         (x86_libcall_value): XCmode gets returned in st0/st1.
748
749 2004-12-17  Steven Bosscher  <stevenb@suse.de>
750
751         * tree.c (type_contains_placeholder_1): Always return false
752         for VECTOR_TYPE if its TREE_TYPE does not contain a placeholder.
753
754 2004-12-17  Uros Bizjak  <uros@kss-loka.si>
755
756         * config/i386/i386.md (extendsfdf2, *extendsfdf2_1,
757         *extendsfdf2_1_sse_only): Unify enable constraint with
758         respect to TARGET_SSE2, TARGET_80387, TARGET_SSE_MATH
759         and TARGET_MIX_SSE_I387.
760         (*extendsfdf2_i387): New insn pattern.
761         (*extendsfdf2_1): Rename to *extendsfdf2_mixed. Fix
762         register constraint for operand 0.
763         (*extendsfdf2_1_sse_only): Rename to *extendsfdf2_sse.
764         (*extend{s,d}fxf2_1): Rename to *extend{s,d}fxf2_i387.
765
766 2004-12-16  Andrew Pinski  <pinskia@physics.uc.edu>
767
768         PR target/19041
769         * config/darwin.c (machopic_symbol_defined_p): Return false
770         if the binds local and is a common symbol.
771
772 2004-12-16  Richard Henderson  <rth@redhat.com>
773
774         * config/i386/i386.md (extv, extzv, insv): Revalidate the
775         operand with ext_register_operand.
776
777 2004-12-16  Kazu Hirata  <kazu@cs.umass.edu>
778
779         * global.c: Fix a comment typo.
780
781 2004-12-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
782             Roger Sayle  <roger@eyesopen.com>
783
784         PR tree-optimization/18707
785         * cfgloopmanip.c (create_preheader): Move the preheader
786         only if the latch was falling through to the header.
787
788 2004-12-16  Danny Smith  <dannysmith@users.sourceforge.net>
789
790         PR target/18997
791         * config/i386/cygwin.h (GTHREAD_USE_WEAK): Define to 0.
792
793 2004-12-16  Richard Henderson  <rth@redhat.com>
794             Aldy Hernandez  <aldyh@redhat.com>
795
796         * simplify-rtx.c (simplify_replace_rtx): Do not blindly replace
797         hard registers.
798
799 2004-12-16  H.J. Lu  <hongjiu.lu@intel.com>
800
801         PR other/18508
802         * config/alpha/t-osf4 (SHLIB_LINK): Use `.backup' as the suffix
803         to back up the existing shared library.
804         * config/arm/t-netbsd (SHLIB_LINK): Likewise.
805         * config/mips/t-slibgcc-irix (SHLIB_LINK): Likewise.
806         * config/pa/t-hpux-shlib (SHLIB_LINK): Likewise.
807         * config/sh/t-linux (SHLIB_LINK): Likewise.
808         * config/t-libunwind-elf (SHLIBUNWIND_LINK): Likewise.
809         * config/t-slibgcc-darwin (SHLIB_LINK): Likewise.
810         * config/t-slibgcc-elf-ver (SHLIB_LINK): Likewise.
811         * config/t-slibgcc-sld (SHLIB_LINK): Likewise.
812
813         * config/i386/t-nwld (SHLIB_LINK): Don't use the temporary
814         file.
815
816 2004-12-16  Richard Henderson  <rth@redhat.com>
817
818         * Makefile.in (MD_DEPS, s-mddeps): New.
819         (s-config, s-conditions, s-flags, s-codes, s-constants, s-emit,
820         s-recog, s-opinit, s-extract, s-peep, s-attr, s-attrtab, s-output,
821         s-preds): Depend on MD_DEPS instead of md_file.
822         (genobjnames): Add genmddeps.o
823         (build/genmddeps, build/genmddeps.o): New.
824         (mostlyclean): Remove mddeps.mk.
825         * genmddeps.c: New file.
826         * gensupport.c (include_callback): New.
827         (process_include): Call it.
828         * gensupport.h (include_callback): Declare.
829
830 2004-12-16  Nathan Sidwell  <nathan@codesourcery.com>
831
832         * local-alloc.c (block_alloc): Replace IN_RANGE with simple
833         comparison.
834
835         * doc/c-tree.texi (CONSTRUCTOR): Mention RANGE_EXPRs.
836
837 2004-12-16  Mark Dettinger  <dettinge@de.ibm.com>
838
839         * config/s390/s390.c (struct processor_costs): Two new fields:
840         madbr, maebr.
841         (s390_rtx_costs): Added handling of multipy and add in SFmode.
842         More precise values for cost of multiply and add.
843
844 2004-12-15  Richard Henderson  <rth@redhat.com>
845
846         PR target/19028
847         * config/i386/i386.md (sse compare splitter): Test for SF and DFmode
848         explicitly instead of using VALID_SSE_REG_MODE.
849
850 2004-12-15  Richard Henderson  <rth@redhat.com>
851
852         PR target/19005
853         * config/i386/i386.md (swaphi_1): Swap with swaphi_2, allow with
854         optimize_size.
855         (swapqi_1): Rename from swapqi.  Enable only for no partial reg
856         stall and optimize_size.
857         (swapqi_2): New.
858         (swaphi_1, swaphi_2, swapqi_1): Add athlon_decode.
859         (swapsi, swaphi_1, swaphi_2, swapqi_1, swapdi): Remove modrm override.
860
861 2004-12-16  Uros Bizjak  <uros@kss-loka.si>
862
863         * config/i386/i386.md (*floathisf2_i387, *floathidf2_i387):
864         Also enable for TARGET_MIX_SSE_I387.
865
866 2004-12-16  Uros Bizjak  <uros@kss-loka.si>
867
868         * config/i386/i386.md (sqrt{s,d}f2_1, sqrt{s,d}f2_1_sse_only,
869         sqrt{s,d}f2_i387): Unify enable constraint with respect to
870         TARGET_SSE, TARGET_SSE2, TARGET_USE_FANCY_MATH_387,
871         TARGET_SSE_MATH and TARGET_MIX_SSE_I387.
872         (sqrt{s,d}f2_1): Rename to *sqrt{s,d}f2_mixed.
873         (sqrt{s,d}f2_1_sse_only): Rename to *sqrt{s,d}f2_sse.
874         (sqrt{s,d}f2_i387): Rename to *sqrt{s,d}f2_i387.
875         (*sqrtextendsfdf2): Also enable for TARGET_MIX_SSE_I387.
876         (*sqrtextend?f?f2): Rename to *sqrtextendsfdf2_i387.
877
878 2004-12-16  Uros Bizjak  <uros@kss-loka.si>
879
880         * config/i386/i386.md (*fop_?f_comm_{,sse,nosse},
881         *fop_?f_1_{,sse,nosse}, *fop_{d,x}f_{2,3,4,5,6}): Unify enable
882         constraint with respect to TARGET_80387, TARGET_SSE, TARGET_SSE2,
883         TARGET_SSE_MATH and TARGET_MIX_SSE_I387.
884         (*fop_?f_{comm,1}): Rename to *fop_?f_{comm,1}_mixed.
885         (*fop_?f_{comm,1}_nosse): Rename to *fop_?f_{comm,1}_i387.
886         (*fop_{d,x}f_{2,3,4,5,6}): Rename to *fop_{d,x}f_{2,3,4,5,6}_i387.
887
888 2004-12-15  H.J. Lu  <hongjiu.lu@intel.com>
889
890         PR target/18153
891         * configure.ac: Define HAVE_LD_STATIC_DYNAMIC if linker supports
892         -Bstatic/-Bdynamic option.
893         * config.in: Regenerated.
894         * configure: Likewise.
895
896         * gcc.c (init_spec): Pass -Bstatic/-Bdynamic to ld for static
897         -lunwind if possible.
898
899 2004-12-15  Daniel Berlin  <dberlin@dberlin.org>
900
901         * cfgloop.c (flow_loops_dump): Don't print out levels.
902         (flow_loops_find): Don't set loop->levels.
903         (flow_loops_level_compute): Make void.
904         * cfgloop.h (struct loops): Remove levels member.
905         Add comment about loops in parray possibly being NULL.
906
907 2004-12-15  Alexandre Oliva  <aoliva@redhat.com>
908
909         * reload.c (SMALL_REGISTER_CLASS_P): New.
910         (push_secondary_reload, find_reusable_reload, find_reloads): Use
911         it instead of testing only the class size.
912
913 2004-12-15  Eric Botcazou  <ebotcazou@libertysurf.fr>
914
915         PR c++/17972
916         * tree-inline.c (expand_call_inline): Set TREE_SIDE_EFFECTS
917         on the STMT_EXPR wrapping up the inlined body.
918
919 2004-12-15  Vladimir Makarov  <vmakarov@redhat.com>
920             Steven Bosscher  <stevenb@suse.de>
921         PR middle end/17340
922
923         * global.c: Update comments in a few places.
924         (check_earlyclobber): Return true if there are early clobber
925         classes.
926         (calculate_local_reg_bb_info): Do not try to mark earlyclobber
927         regs if there are none.
928         (bb_info, allocate_bb_info, free_bb_info, modify_reg_pav,
929         make_accurate_live_analysis): Rename pavin, pavout to live_pavin,
930         live_pavout.
931         (modify_bb_reg_pav): Remove.
932         (calculate_reg_pav): Use code from modify_bb_reg_pav.
933         (temp_bitmap): New variable.
934         (calculate_reg_pav): Allocate/deallocate temp_bitmap.
935
936 2004-12-15  Richard Henderson  <rth@redhat.com>
937
938         PR target/19010
939         * config/i386/i386.c (ix86_must_pass_in_stack): Don't return true
940         for TImode vectors.
941         (gen_reg_or_parallel): New.
942         (function_arg): Use it.
943         (ix86_hard_regno_mode_ok): Test SSE1 and SSE2 separately,
944         MMX and 3DNOW separately.
945         (ix86_rtx_costs): Simplify FLOAT_EXTEND case.
946         (ix86_vector_mode_supported_p): Test SSE1 and SSE2 separately.
947         * config/i386/i386.h (VALID_SSE2_REG_MODE): Move SSE2 cases from ...
948         (VALID_SSE_REG_MODE): ... here.
949
950 2004-12-15  David Edelsohn  <edelsohn@gnu.org>
951
952         * xcoffout.c (xcoffout_declare_function): Change strncpy to memcpy.
953
954 2004-12-15  Ian Lance Taylor  <ian@wasabisystems.com>
955
956         * config/arm/arm.c (arm_xscale_rtx_costs): Increase cost of
957         COMPARE of MULT.
958         * config/arm/arm.md (mulsi3_compare0): Don't check
959         arm_arch_xscale.
960         (mulsi_compare0_scratch, mulsi3_addsi_compare0): Likewise.
961         (mulsi3addsi_compare0_scratch): Likewise.
962
963 2004-12-15  Eric Botcazou  <ebotcazou@libertysurf.fr>
964
965         PR other/18665
966         * libgcc-std.ver (GCC_3.4.4): Inherit from GCC_3.4.2.
967         Export __absvti2, __addvti3, __mulvti3, __negvti2 and __subvti3.
968         * libgcc2.c (__addvsi3): Rename to __addvSI3.
969         New version if COMPAT_SIMODE_TRAPPING_ARITHMETIC.
970         (__addvdi3): Rename to __addvDI3.
971         (__subvsi3): Rename to __subvSI3.  Use word type for the result.
972         New version if COMPAT_SIMODE_TRAPPING_ARITHMETIC.
973         (__subvdi3): Rename to __subvDI3.
974         (_mulvsi3): Rename to _mulvSI3.
975         New version if COMPAT_SIMODE_TRAPPING_ARITHMETIC.
976         (_mulvdi3): Rename to _mulvDI3.
977         (__negvsi2): Rename to __negvSI2.
978         New version if COMPAT_SIMODE_TRAPPING_ARITHMETIC.
979         (__negvdi2): Rename to __negvDI2.
980         (__absvsi2): Rename to __absvSI2.
981         New version if COMPAT_SIMODE_TRAPPING_ARITHMETIC.
982         (__absvdi2): Rename to __absvDI2.
983         * libgcc2.h (64-bit targets): Define COMPAT_SIMODE_TRAPPING_ARITHMETIC.
984         (__absvSI2, __addvSI3, __subvSI3, __mulvSI3, __negvSI2, __absvDI2,
985         __addvDI3, __subvDI3, __mulvDI3, __negvDI2): Define to the appropriate
986         symbol and declare.
987         (__absvsi2, __addvsi3, __subvsi3, __mulvsi3, __negvsi2): Declare if
988         COMPAT_SIMODE_TRAPPING_ARITHMETIC.
989
990 2004-12-15  Kazuhiro Inaoka <inaoka.kazuhiro@reneasas.com>
991
992         * config/m32r/m32r.h (PREFERRED_DEBUGGING_TYPE):
993         Use DWARF2_DEBUG.
994
995         * config/m32r.c (m32r_legitimize_pic_address): Changed
996         to support GOTOFF relocation.
997         * config/m32r.md (UNSPEC_GOTOFF): New.
998         (gotoff_load_addr): New.
999
1000 2004-12-15  Richard Sandiford  <rsandifo@redhat.com>
1001
1002         * config/mips/mips.c (mips_arg_info): Use FUNCTION_ARG_BOUNDARY to
1003         decide whether an argument is double-word aligned.
1004
1005 2004-12-15  Richard Henderson  <rth@redhat.com>
1006
1007         * config/i386/i386.md: Fix missing modes on cmove splitters.
1008
1009 2004-12-15 Jan Beulich  <jbeulich@novell.com>
1010
1011         * mklibgcc.in (libgcc2_c_dep): Add dependency on libgcc2.h.
1012
1013 2004-12-15  Uros Bizjak  <uros@kss-loka.si>
1014
1015         * config/i386/i386.md (floathisf2, *floathisf2_1, floatsisf2,
1016         *floatsisf2_i387, *floatsisf2_sse, floatdisf2,
1017         *floatdisf2_i387_only, *floatdisf2_i387, *floatdisf2_sse,
1018         floathidf2, *floathidf2_1, *floatsidf2_i387, *floatsidf2_sse,
1019         floatdidf2, *floatdidf2_i387_only, *floatdidf2_i387,
1020         *floatdidf2_sse, floatunssisf2, floatunsdisf2, floatunsdidf2):
1021         Unify enable constraint with respect to TARGET_80387, TARGET_SSE,
1022         TARGET_SSE2, TARGET_64BIT, TARGET_SSE_MATH and TARGET_MIX_SSE_I387.
1023         (*float?i?f_i387): Rename to *float?i?f2_mixed.
1024         (*float?i?f2_1): Rename to *float?i?f2_i387.
1025         (*float?i?f2_i387_only): Rename to *float?i?f2_i387.
1026         (float?ixf2): Penalize integer register operand.
1027
1028 2004-12-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1029
1030         PR c++/17242
1031         * configure.ac: Add GAS check for HP-UX .nsubspa comdat.
1032         * configure, config.in: Rebuilt.
1033         * config/pa/pa-hpux10.h (SUPPORTS_ONE_ONLY, MAKE_DECL_ONE_ONLY): Delete
1034         defines.
1035         * config/pa/pa.c (pa_select_section): Allow uninitialized variables in
1036         one-only (comdat) subspaces.
1037         * config/pa/som.h (SUPPORTS_SOM_COMDAT): New define.
1038         (SUPPORTS_ONE_ONLY): True if SUPPORTS_WEAK or SUPPORTS_SOM_COMDAT are
1039         true.
1040         (MAKE_DECL_ONE_ONLY): Place uninitialized variables in common.
1041
1042 2004-12-14  Ian Lance Taylor  <ian@wasabisystems.com>
1043
1044         * combine.c (combine_validate_cost): Consider cost of
1045         undobuf.other_insn rather than always allowing the recombination
1046         if it is set.
1047
1048 2004-12-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1049
1050         * pa-host.c (MAP_FAILED): Define if not defined.
1051         (pa_gt_pch_use_address): Handle short reads.
1052
1053 2004-12-14  Richard Henderson  <rth@redhat.com>
1054
1055         PR target/17990
1056         * config/i386/i386.c (x86_use_bt): New.
1057         (ix86_expand_unary_operator): Use MEM_P.
1058         (ix86_expand_fp_absneg_operator): New.
1059         * config/i386/i386.h (x86_use_bt): Declare.
1060         (TARGET_USE_BT): New.
1061         * config/i386/i386-protos.h: Update.
1062         * config/i386/i386.md (negsf2): Use ix86_expand_fp_absneg_operator.
1063         (negdf2, negxf2, abssf2, absdf2, absxf2): Likewise.
1064         (negsf2_memory, negsf2_ifs, negsf2_if, negdf2_memory, negdf2_ifs,
1065         negdf2_ifs_rex64, negdf2_if, negdf2_if_rex64, negxf2_if,
1066         abssf2_memory, abssf2_ifs, abssf2_if, absdf2_memory, absdf2_ifs,
1067         absdf2_ifs_rex64, absdf2_if, absxf2_if): Remove.
1068         (absnegsf2_mixed, absnegsf2_sse, absnegsf2_i387, absnegdf2_mixed,
1069         absnegdf2_sse, absnegdf2_i387, absnegxf2_i387): New.  Merge all
1070         neg and abs splitters.  Handle DFmode in general regs in 64-bit mode.
1071         (negextendsfdf2, absextendsfdf2): Disable for non-mixed sse math.
1072         (btsq, btrq, btcq): New.  Add peepholes as well.
1073         (movv4sf_internal splitter): Postpone til after reload.
1074         (movv2di_internal splitter): Likewise.
1075         * config/i386/predicates.md (const_0_to_63_operand): New.
1076         (absneg_operator): New.
1077
1078 2004-12-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1079
1080         * pa.h (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_FP_P):
1081         Check register number and that reg_renumber is nonzero before using it.
1082
1083 2004-12-14  Steve Ellcey  <sje@cup.hp.com>
1084
1085         * doc/invoke.texi (IA-64 options): Add existing options that
1086         weren't already listed.
1087
1088 2004-12-14  Jeff Law  <law@redhat.com>
1089
1090         * tree-outof-ssa.c (coalesce_abnormal_edges): Pass the correct target
1091         partition to conflict_graph_merge_regs.
1092
1093 2004-12-14  Uttam Pawar  <uttamp@us.ibm.com>
1094             Janis Johnson  <janis187@us.ibm.com>
1095
1096         * rs6000.c (rs6000_handle_altivec_attribute_tree): Report errors
1097         for vector types with invalid component types.
1098
1099 2004-12-14  Jakub Jelinek  <jakub@redhat.com>
1100
1101         PR middle-end/18951
1102         * builtins.c (expand_builtin_mathfn, expand_builtin_mathfn_2,
1103         expand_builtin_mathfn_3): Avoid using arguments passed to
1104         save_expr after that call.
1105
1106         * fold-const.c (fold_single_bit_test): If flag_syntax_only, pretend
1107         LOAD_EXTEND_OP is not defined.
1108         (fold): Likewise.  If flag_syntax_only, don't depend on BITS_PER_WORD.
1109
1110 2004-12-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1111
1112         * tree.def, doc/c-tree.texi: Correctly document restrictions on the
1113         shift width.
1114
1115 2004-12-14  Kazu Hirata  <kazu@cs.umass.edu>
1116
1117         * expr.h (expand_modifier): Define EXPAND_STACK_PARM as 1.
1118
1119 2004-12-14  Richard Earnshaw  <rearnsha@arm.com>
1120
1121         PR target/18973
1122         arm-cores.def (arm926ej-s, arm1026ej-s, arm1136j-s, arm1136-jfs)
1123         (arm1176jz-s, arm1176jzf-s, mpcorenovfp, mpcore): Add load-scheduling
1124         property to flags.
1125
1126 2004-12-14  Diego Novillo  <dnovillo@redhat.com>
1127
1128         * tree-gimple.c (get_base_address): Update documentation.
1129
1130 2004-12-13  Richard Henderson  <rth@redhat.com>
1131
1132         PR middle-end/17930
1133         * passes.c (rest_of_clean_state): Fix computation of
1134         preferred_incoming_stack_boundary.
1135
1136 2004-12-13  Wolfgang Bangerth <bangerth@dealii.org>
1137
1138         * reload.h: Remove struct needs and its only use.
1139
1140 2004-12-13  Roger Sayle  <roger@eyesopen.com>
1141
1142         PR rtl-optimization/18928
1143         * simplify_rtx.c (plus_minus_operand_p): New function to encode
1144         the test for suitable operands for calls to simplify_plus_minus.
1145         Only allow (CONST (PLUS x y)) if both x and y are CONSTANT_P.
1146         (simplify_binary_operation): Use plus_minus_operand_p.
1147
1148 2004-12-13  Alexandre Oliva  <aoliva@redhat.com>
1149
1150         PR tree-opt/16951
1151         * tree-inline.c (setup_one_parameter): Don't directly map a
1152         parameter to the address of another variable of the same
1153         function.
1154
1155 2004-13-12  Steven Bosscher  <stevenb@suse.de>
1156
1157         * basic-block.h (PROP_POSTRELOAD): Do not include PROP_AUTOINC, we
1158         can never create autoinc insns after reload.
1159
1160 2004-12-13  Jeff Law  <law@redhat.com>
1161             Kazu Hirata  <kazu@cs.umass.edu>
1162
1163         PR tree-optimization/18694
1164         * tree-ssa-dom.c (thread_across_edge): Do not thread jumps if a
1165         PHI argument is set from a PHI_RESULT in the same block and the
1166         PHI argument is not the same as the PHI result.
1167
1168 2004-12-13  David Edelsohn  <edelsohn@gnu.org>
1169
1170         * xcoffout.c (xcoffout_declare_function): Always strip storage
1171         class encoding.
1172
1173 2004-12-13  Andrew Pinski  <pinskia@physics.uc.edu>
1174
1175         PR target/18964
1176         * config/darwin.c (darwin_assemble_visibility): Fix minor diagnostic
1177         problem, adding a space at the end of the string before concatenation.
1178
1179 2004-12-13  Kazu Hirata  <kazu@cs.umass.edu>
1180
1181         * c-common.c (fname_as_string): Free namep if we are returning
1182         cstr.text.
1183
1184         * tree-ssa-dom.c (record_edge_info): Fix memory leak.
1185
1186 2004-12-13  Andrew Pinski  <pinskia@physics.uc.edu>
1187
1188         * tree-cfg.c (remove_useless_stmts_cond): Call fold on COND_EXPR_COND.
1189
1190 2004-12-13  Kazu Hirata  <kazu@cs.umass.edu>
1191
1192         * tree-ssa-dom.c (record_equivalences_from_phis): Speed up by
1193         doing a pointer comparison.
1194
1195         * tree-ssa-dom.c (record_equivalences_from_phis): Add a
1196         comment.
1197
1198         * defaults.h, stmt.c, tree-cfg.c, tree-ssa-dce.c: Fix comment
1199         typos.
1200
1201 2004-12-13  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
1202
1203         * config/m32r/t-linux (SHLIB_MAPFILES): Add libgcc-glibc.ver to
1204         the list rather than replacing the existing value.
1205
1206 2004-12-13  Richard Henderson  <rth@redhat.com>
1207
1208         * cfg.c (dump_flow_info): Don't dump pseudo info after reload.
1209
1210 2004-12-13  Richard Henderson  <rth@redhat.com>
1211
1212         * Makefile.in (insn-preds.o): Depend on REGS_H.
1213         * genpreds.c (write_insn_preds_c): Include regs.h.
1214         * config/i386/predicates.md (index_register_operand): Use
1215         REG_OK_FOR_INDEX_STRICT_P and REG_OK_FOR_INDEX_NONSTRICT_P.
1216
1217         * config/i386/i386.h (REG_CLASS_FROM_LETTER): Add 'l'.
1218         * config/i386/i386.md (lea_general_1, lea_general_1_zext,
1219         lea_general_2, lea_general_2_zext, lea_general_3, lea_general_3_zext,
1220         adddi_1_rex64, addsi_1, addsi_1_zext, addhi_1_lea, addqi_1_lea,
1221         ashldi3_1_rex64, ashlsi3_1, ashlsi3_1_zext, ashlhi3_1_lea,
1222         ashlqi3_1_lea): Use 'l' for index register operand.
1223         (ashldi3_1_rex64 splitter): Use index_register_operand.
1224         (ashlsi3_1 splitter): Be more careful with modes.
1225
1226 2004-12-13  Danny Smith  <dannysmith@users.sourceforge.net>
1227
1228         PR target/18459
1229         * defaults.h (TARGET_USE_JCR_SECTION): New macro.
1230         * doc/tm.texi (TARGET_USE_JCR_SECTION): Document it.
1231         * config/i386/cygming.h (TARGET_USE_JCR_SECTION): Override
1232         default.
1233
1234 2004-12-13 Uros Bizjak <uros@kss-loka.si>
1235
1236         PR target/14941
1237         PR target/18503
1238         * config/i386/i386.md (sse_movss, sse2_movsd, sse2_movhpd):
1239         Fix wrong vec_merge selector bitmask.
1240
1241 2004-12-12  Richard Henderson  <rth@redhat.com>
1242
1243         PR rtl-opt/17186
1244         * reg-stack.c (move_nan_for_stack_reg): New.
1245         (subst_stack_regs_pat): Use it.
1246         (move_for_stack_reg): Handle source register not live with a nan.
1247
1248 2004-12-12  Richard Henderson  <rth@redhat.com>
1249
1250         * config/i386/i386.c (ix86_gimplify_va_arg): Fix type mismatch
1251         errors across operations.
1252
1253 2004-12-12  Di-an Jan  <dianj@freeshell.org>
1254
1255         * doc/passes.texi (Pass Manager): Correct list of source files.
1256
1257 2004-12-12  Richard Henderson  <rth@redhat.com>
1258
1259         * expr.c (emit_move_change_mode): New.
1260         (emit_move_via_alt_mode): Use it.
1261
1262 2004-12-12  Nathanael Nerode  <neroden@gcc.gnu.org>
1263             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1264
1265         PR middle-end/17564
1266         * dojump.c (do_compare_and_jump): Only canonicalize function pointers
1267         in a comparison if both sides are function pointers.
1268
1269 2004-12-12  Richard Henderson  <rth@redhat.com>
1270
1271         PR target/18932
1272         * config/i386/i386.md (all splits and peepholes): Use flags_reg_operand
1273         and compare_operator to propagate the input CC mode to the output.
1274         * config/i386/predicates.md (compare_operator): New.
1275
1276 2004-12-12  Andrew Pinski  <pinskia@physics.uc.edu>
1277
1278         PR tree-opt/18040
1279         * expr.c (get_inner_reference): Remove NON_LVALUE_EXPR, NOP_EXPR,
1280         CONVERT_EXPR cases.
1281         (handled_component_p): Likewise.
1282
1283 2004-12-12  Kazu Hirata  <kazu@cs.umass.edu>
1284
1285         * reg-stack.c (convert_regs_2): Free stack.
1286
1287         * tree-ssa-dom.c (thread_across_edge, dom_opt_finalize_block): Fix
1288         comment typos.
1289
1290 2004-12-12  Daniel Berlin  <dberlin@dberlin.org>
1291
1292         * tree-ssa-loop-ch.c (copy_loop_headers): Loop can be null.
1293         * tree-ssa-loop-im.c (determine_lsm): tree_root may not have a real
1294         inner loop.
1295
1296 2004-12-12  Diego Novillo  <dnovillo@redhat.com>
1297
1298         * tree-gimple.c (get_base_address): Update documentation.
1299
1300 2004-12-12  Kazu Hirata  <kazu@cs.umass.edu>
1301
1302         * lcm.c (optimize_mode_switching): Free ptr even when mode_set
1303         is NULL_RTX.
1304
1305 2004-12-12  Roger Sayle  <roger@eyesopen.com>
1306
1307         * reg-stack.c (change_stack): Avoid placing the new top-of-stack in
1308         its correct location during popping if we need to permute the stack
1309         afterwards.  Attempt to preserve the original stack ordering.
1310
1311 2004-12-12  Kazu Hirata  <kazu@cs.umass.edu>
1312
1313         * lcm.c (optimize_mode_switching): Free insert and delete in
1314         the "for" loop.
1315
1316 2004-12-11  David Edelsohn  <edelsohn@gnu.org>
1317             Ulrich Weigand  <uweigand@de.ibm.com>
1318
1319         PR target/18641
1320         * config/rs6000/darwin.h (PREFERRED_RELOAD_CLASS): Reload all
1321         constants into all register classes intersecting with FLOAT_REGS
1322         via memory.
1323         * config/rs6000/rs6000.h (PREFERRED_RELOAD_CLASS): Same.
1324         * config/rs6000/rs6000.md (movdi_internal32): Ignore FPRs when
1325         choosing register preferences.
1326         (movdi_internal64): Same.
1327
1328 2004-12-11  Kazu Hirata  <kazu@cs.umass.edu>
1329
1330         * tree-into-ssa.c (rewrite_ssa_into_ssa): Free SSA_NAME_AUX
1331         before we release an SSA_NAME.
1332
1333 2004-12-11  Roger Sayle  <roger@eyesopen.com>
1334
1335         PR middle-end/18921
1336         * fold-const.c (fold_unwidened_comparison): Use omit_one_operand
1337         instead of constant_boolean_node as arg0 may have side-effects.
1338
1339 2004-12-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1340
1341         * pa-host.c (pa_gt_pch_use_address): Use lseek and read to copy PCH
1342         file to anonymous private map.
1343
1344 2004-12-10  Roger Sayle  <roger@eyesopen.com>
1345
1346         PR target/18002
1347         PR middle-end/18424
1348         * dojump.c (do_jump): When attempting to reverse the effects of
1349         fold_single_bit_test, we need to STRIP_NOPS and narrowing type
1350         conversions, and handle BIT_XOR_EXPR that's used to invert the
1351         sense of the single bit test.
1352
1353 2004-12-10  Devang Patel  <dpatel@apple.com>
1354
1355         PR 18732
1356         * gcc.c (main): Do not break out of loop when error is reported while
1357         processing one source file.
1358
1359 2004-12-10  Diego Novillo  <dnovillo@redhat.com>
1360
1361         * tree-into-ssa.c (REWRITE_THIS_STMT): Define.
1362         (mark_def_sites): Clear REWRITE_THIS_STMT for statements that
1363         don't need any operands rewritten.
1364         (rewrite_stmt): Ignore statements that don't need to be
1365         rewritten.
1366         (rewrite_operand): Validate that an existing SSA_NAME is
1367         identical to the current reaching definition of the operand.
1368
1369 2004-12-10  Diego Novillo  <dnovillo@redhat.com>
1370
1371         * tree-dfa.c (mark_call_clobbered_vars_to_rename): New function.
1372         * tree-vectorizer.c (vectorizable_load): Call it.
1373         * tree-flow.h (mark_call_clobbered_vars_to_rename): Declare.
1374         * tree-sra.c (mark_all_v_defs): Also mark VUSEs for renaming.
1375
1376 2004-12-10  Kazu Hirata  <kazu@cs.umass.edu>
1377
1378         * regmove.c (combine_stack_adjustments_for_block): Free
1379         memlist if it hasn't been freed.
1380
1381 2004-12-10  Ziemowit Laski  <zlaski@apple.com>
1382
1383         * c-typeck.c (lookup_field): Check if a TYPE_LANG_SPECIFIC
1384         pointer field is set before dereferencing it.
1385
1386 2004-12-10  Andrew Pinski  <pinskia@physics.uc.edu>
1387
1388         PR middle-end/18903
1389         * tree-cfg.c (remove_bb): Put the moved label at the beginning
1390         of the basic block.
1391
1392 2004-12-10  Kazu Hirata  <kazu@cs.umass.edu>
1393
1394         * tree-data-ref.c (free_data_refs): Free each data_reference
1395         object.
1396
1397         * tree-ssa-dom.c (thread_across_edge): Speed up by avoiding a
1398         call to is_gimple_min_invariant if we know the result.
1399
1400 2004-12-10  Jeff Law  <law@redhat.com>
1401
1402         * tree-ssa-alias.c (setup_pointers_and_addressables): Remove
1403         redundant test of v_ann->mem_tag_kind.
1404
1405         * tree-ssa-operands.c (get_indirect_ref_operands): Remove
1406         redundant conditional clearing opf_kill_def.
1407
1408 2004-12-10  Richard Sandiford  <rsandifo@redhat.com>
1409
1410         * config/frv/frv-modes.def: Fix comment typos.
1411         (CC_NZ): Define new mode.
1412         * config/frv/frv-protos.h (frv_select_cc_mode): Declare.
1413         (condexec_intop_cmp_operator): Delete.
1414         * config/frv/frv.c (comparison_string): New function.
1415         (frv_print_operand): Use it to handle 'c' and 'C'.
1416         (relational_operator): Redefine in terms of integer_relational_operator
1417         and float_relational_operator.
1418         (signed_relational_operator, unsigned_relational_operator): Delete.
1419         (integer_relational_operator): New predicate, combining the above.
1420         Check the mode of the first operand but leave frv.md to check the rest.
1421         (float_relational_operator): Just check the mode of the first operand
1422         and leave frv.md to check the rest.
1423         (intop_compare_operator): Assume the result is compared with zero
1424         in mode CC_NZmode.  Allow PLUS and MINUS.  Leave frv.md to check
1425         the operand predicates.
1426         (condexec_intop_cmp_operator): Delete.
1427         (frv_ifcvt_modify_tests, frv_ifcvt_modify_multiple_tests)
1428         (frv_hard_regno_mode_ok): Handle CC_NZmode.
1429         (frv_select_cc_mode): New function.
1430         * config/frv/frv.h (SELECT_CC_MODE): Use frv_select_cc_mode.
1431         (REVERSIBLE_CC_MODE): Include CC_NZmode.
1432         (PREDICATE_CODES): Replace entries for signed_relational_operand and
1433         unsigned_relational_operator with one for integer_relational_operator.
1434         Delete entry for condexec_intop_cmp_operator.
1435         * config/frv/frv.md (movcc_nz, *internal_movcc_nz, reload_incc_nz)
1436         (reload_outcc_nz, *cmpsi_cc_nz, *cond_exec_cmpsi_cc_nz): New patterns.
1437         (*combo_intop_compare2, *combo_intop_compare4): Delete.
1438         (*combo_intop_compare1): Change mode to CC_NZ.
1439         (*combo_intop_compare2): Likewise.  Renamed from *combo_intop_compare3.
1440         (branch_{un,}signed_true, branch_{un,}signed_false)
1441         (*scc_{un,}signed, *scc_neg1_{un,}signed, *ck_{un,}signed)
1442         (*movqicc_internal1_{un,}signed, *movqicc_internal2_{un,}signed)
1443         (*movhicc_internal1_{un,}signed, *movhicc_internal2_{un,}signed)
1444         (*movsicc_internal1_{un,}signed, *movsicc_internal2_{un,}signed)
1445         (*movsfcc_has_fprs_{un,}signed, *movsfcc_no_fprs_{un,}signed)
1446         (*return_{unsigned_,}true, *return_{unsigned_,}false): Merge these
1447         pattern pairs.  Use integer_relational_operator.  Remove mode from
1448         icc_operand.
1449
1450 2004-12-10  Mark Dettinger  <dettinge@de.ibm.com>
1451
1452         * config/s390/s390.c (struct processor_costs): New fields ml,
1453         sqdbr, sqebr.
1454         (s390_rtx_costs): Added the missing handling of multiply & add,
1455         square root, and umulsidi.
1456
1457 2004-12-10  Kazu Hirata  <kazu@cs.umass.edu>
1458
1459         * expmed.c (synth_mult): Initialize new_limit.latency before
1460         making a recursive call.
1461
1462 2004-12-10  Nick Clifton  <nickc@redhat.com>
1463
1464         * config/mn10300/mn10300.c (legitimate_address_p): Reject address
1465         whose index is itself the sum of two other parts.
1466
1467 2004-12-10  Alan Modra  <amodra@bigpond.net.au>
1468
1469         * config/t-slibgcc-sld (SHLIB_LINK): Correct symlink.
1470
1471 2004-12-10  Uros Bizjak  <uros@kss-loka.si>
1472
1473         * config/i386/i386.md (*cmpfp_sf): Change type attribute to "multi".
1474
1475 2004-12-09  Richard Henderson  <rth@redhat.com>
1476
1477         PR c/18282
1478         * attribs.c (decl_attributes): Use relayout_decl.
1479         * c-common.c (handle_mode_attribute): Copy all relevant type
1480         parameters from the new underlying integral type.
1481
1482 2004-12-09  Richard Henderson  <rth@redhat.com>
1483
1484         * c-common.c (shorten_compare): Don't special-case min/maxval
1485         for C enumerations.
1486
1487 2004-12-09  Richard Sandiford  <rsandifo@redhat.com>
1488
1489         * simplify-rtx.c (simplify_subreg): In the CONCAT case, check whether
1490         the request subreg is entirely contained in the requested component.
1491         (simplify_gen_subreg): Return null for CONCATs that are rejected
1492         by simplify_subreg.
1493         * expmed.c (store_bit_field): Create a temporary when changing the
1494         value to an integer mode.
1495
1496 2004-12-09  David Edelsohn  <edelsohn@gnu.org>
1497
1498         * real.c (ibm_extended): Correct comment.
1499
1500 2004-12-09  Stan Shebs  <shebs@apple.com>
1501
1502         * config/rs6000/darwin-asm.h: New file, 32/64-bit assembly macros
1503         formerly in darwin-tramp.asm.
1504         * config/rs6000/darwin-tramp.asm: Include darwin-asm.h.
1505         * config/rs6000/darwin-fpsave.asm: Use 32/64-bit macros.
1506         * config/rs6000/t-darwin: Add dependencies.
1507
1508 2004-12-09  Richard Henderson  <rth@redhat.com>
1509
1510         PR target/17025
1511         * config/i386/i386.md (testqi_1_maybe_si, andqi_2_maybe_si): New.
1512         (test_qi_1, andqi_2): Do not promote to simode.
1513
1514 2004-12-09  Andrew Pinski  <pinskia@physics.uc.edu>
1515
1516         PR tree-opt/18904
1517         * tree-chrec.c (chrec_convert): Use fold_convert
1518         instead of convert.
1519
1520 2004-12-09  Matt Rice  <ratmice@yahoo.com>
1521
1522         PR preprocessor/18102
1523         * c-incpath.c (remove_duplicates): Check for construct
1524         equality.
1525
1526 2004-12-09  Dorit Naishlos  <dorit@il.ibm.com>
1527
1528         * genopinit.c (vec_realign_store_optab): Initialization removed.
1529         * optabs.c (optab_for_tree_code): REALIGN_STORE_EXPR case removed.
1530         * optabs.h (optab_index): OTI_vec_realign_store Removed.
1531         (vec_realign_store_optab): Removed.
1532         * target-def.h (TARGET_VECTORIZE_BUILTIN_MASK_FOR_STORE): Removed.
1533         * target.h (builtin_mask_for_store): Removed.
1534         * tree.def (REALIGN_STORE_EXPR): Removed.
1535         * config/rs6000/rs6000.c (rs6000_builtin_mask_for_store): Removed.
1536         (altivec_builtin_mask_for_store): Removed.
1537         (altivec_init_builtins): Removed initialization of
1538         altivec_builtin_mask_for_store.
1539
1540         * doc/tm.texi (TARGET_VECTORIZE_MISALIGNED_MEM_OK): New.
1541         (TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD): New.
1542
1543 2004-12-09  Nathan Sidwell  <nathan@codesourcery.com>
1544
1545         * doc/c-tree.texi (CONSTRUCTOR): Mention RANGE_EXPRs.
1546
1547         * tree.def (SET_TYPE): Remove.
1548         (CONSTRUCTOR): Update description.
1549         * builtins.c (type_to_class) Remove SET_TYPE case.
1550         * dbxout.c (dbxout_type): Likewise.
1551         * dwarf2out.c (is_base_type): Likewise.
1552         (gen_set_type_die): Remove.
1553         (gen_type_die): Remove SET_TYPE case.
1554         * expr.c (count_type_elements): Likewise.
1555         (mostly_zeroes_p): Likewise.
1556         (store_constructor): Likewise.
1557         * print_tree.c (print_node): Likewise.
1558         * stor-layout.c (layout_type): Likewise.
1559         * tree-browser.c (browse_tree): Likewise.
1560         * tree-inline.c (remap_type): Likewise.
1561         * tree-pretty-print.c (dump_generic_node): Likewise.
1562         * tree.c (type_contains_plaeholder_1, type_hash_eq,
1563         variably_modified_type_p, initializer_zerop): Likewise.
1564         * tree.h (SET_OR_ARRAY_CHECK): Remove.
1565         (AGGREGATE_TYPE_P): Remove SET_TYPE check.
1566         (TYPE_DOMAIN): Use ARRAY_TYPE_CHECK.
1567         * typeclass.h (enum type_class): Remove set_type_class.
1568         * varasm.c (const_hash_1): Remove SET_TYPE case.
1569         (compare_constant, copy_constant, output_constant): Likewise.
1570         * config/i386/i386.c (classify_argument): Likewise.
1571         * config/ia64/ia64.c (hfa_element_mode): Likewise.
1572         * config/sparc/sparc.c (sparc_type_code): Likewise.
1573
1574         PR c++/16681
1575         * tree-inline.c (estimate_num_insns_1): Add RANGE_EXPR case.
1576
1577 2004-12-08  Richard Henderson  <rth@redhat.com>
1578
1579         * config/i386/i386.md: Use FLAGS_REG everywhere.
1580
1581 2004-12-08  Eric Christopher  <echristo@redhat.com>
1582
1583         * config/mips/mips.c (mips_scalar_mode_supported_p): Rewrite
1584         to avoid call to default function.
1585
1586 2004-12-08  Zack Weinberg  <zack@codesourcery.com>
1587
1588         PR 17982
1589         * varasm.c (pending_assemble_externals): New static.
1590         (assemble_external_real): Meat of assemble_external split out
1591         to this new function.
1592         (process_pending_assemble_externals): New function.
1593         (assemble_external): Use gcc_assert.  If flag_unit_at_a_time
1594         is true and the basic test passes, merely cons the decl onto
1595         the pending list to be handled later.
1596         * tree.h: Declare process_pending_assemble_externals.
1597         * cgraphunit.c (cgraph_optimize): Call it.
1598
1599         * config/h8300/h8300.h: Do not define ASM_OUTPUT_EXTERNAL.
1600
1601 2004-12-08  Kazu Hirata  <kazu@cs.umass.edu>
1602
1603         * cfgloopmanip.c (create_preheader): Speed up by "unrolling"
1604         and simplifying FOR_EACH_EDGE.
1605
1606 2004-12-08  Richard Sandiford  <rsandifo@redhat.com>
1607
1608         * config/frv/frv.c (frv_sort_insn_group): Always initialize
1609         packet_group->nop.
1610
1611 2004-12-08  Nathan Sidwell  <nathan@codesourcery.com>
1612
1613         PR c++/18672
1614         * gimplify.c (canonicalize_addr_expr): Cope with array of
1615         incomplete type.
1616         (gimplify_conversion): Remove redundant checks.
1617
1618         * doc/trouble.texi (Non-bugs): Clarify empty loop removal.
1619
1620 2004-12-08  Uros Bizjak  <uros@kss-loka.si>
1621
1622         * config/i386/i386.c (output_387_binary_op,
1623         ix86_prepare_fp_compare_args): Fix is_sse condition.
1624
1625 2004-12-07  Uros Bizjak  <uros@kss-loka.si>
1626
1627         * config/i386/i386-protos.h (ix86_split_fp_branch): New rtx
1628         argument.
1629
1630         * config/i386/i386.c (output_fp_compare): Fix is_sse condition.
1631         Use EFLAGS_P only when fcomi insn should be used. Fix handling
1632         of eflags_p variable. Change alt table accordingly. For non-fcomi
1633         compare insn always use trailing fnstsw insn. Fix intmode
1634         calculation for ficom insn.
1635         (ix86_split_fp_branch): Add "rtx pushed" as new parameter. Call
1636         ix86_free_from_memory when "pushed" is specified.
1637         (ix86_expand_branch): Change call to ix86_split_fp_branch.
1638
1639         * config/i386/i386.md (*cmpfp_0_sf, *cmpfp_0_df, *cmpfp_0_xf):
1640         Change eflags_p parameter in call to output_fp_compare.
1641         (*cmpfp_2_sf, *cmpfp_2_df, *cmpfp_2_xf): Remove.
1642         (*cmpfp_2_sf_1, *cmpfp_2_df_1, *cmpfp_2_xf_1): Rename to
1643         *cmpfp_2_sf, *cmpfp_2_df, *cmpfp_2_xf.  Change eflags_p
1644         parameter in call to output_fp_compare.
1645         (*cmpfp_2_u): Remove.
1646         (*cmpfp_2_u_1): Rename to *cmpfp_2_u. Change eflags_p parameter
1647         in call to output_fp_compare.
1648         (*ficom_1): Remove insn definition and corresponding define_split.
1649         (*cmpfp_si): New insn definition.
1650         (*fp_jcc_8): New insn definition. Add new splitters for
1651         "memory_operand" and "register_operand".
1652         (define_split): Add new parameter in call to ix86_split_fp_branch.
1653
1654         config/i386/predicates.md (float_operator): New predicate.
1655
1656 2004-12-08  Kazu Hirata  <kazu@cs.umass.edu>
1657
1658         * c-common.c (verify_tree): Don't check code length if we know
1659         we are handling tcc_unary.
1660         * print_tree.c (print_node): Remove code to handle RTL
1661         appearing as a part of a tree node.
1662         * tree-gimple.c (recalculate_side_effects): Rename fro as len.
1663         * tree.c (build1_stat): Don't check TREE_CODE_LENGTH.
1664         (PROCESS_ARG): Don't refer to fro.
1665         (build2_stat, build3_stat, build4_stat): Don't compute fro.
1666
1667 2004-12-07  Roger Sayle  <roger@eyesopen.com>
1668
1669         PR middle-end/18293
1670         * expmed.c (EXACT_POWER_OF_2_OR_ZERO_P): Move definition earlier.
1671         (expand_mult): Special case powers of two to avoid synth_mult.
1672         * loop.c (product_cheap_p): Handle case where expand_mult does
1673         require/generate any instructions (i.e. multiplication by zero).
1674
1675 2004-12-07  Richard Henderson  <rth@redhat.com>
1676
1677         * tree-pretty-print.c (dump_array_domain): Split out from
1678         dump_generic_node; fix off-by-one error on zero-based array bounds.
1679         (dump_generic_node): Use it.
1680         (print_declaration): Likewise.
1681
1682 2004-12-08  Richard Guenther <richard.guenther@uni-tuebingen.de>
1683
1684         * doc/invoke.texi: Adjust default values for
1685         large-function-growth and inline-unit-growth to match
1686         params.def.  Clarify used algorithm.
1687
1688 2004-12-07  David Mosberger  <davidm@hpl.hp.com>
1689
1690         PR target/18443
1691         * config/ia64/ia64.c (ia64_assemble_integer): Add support for
1692         emitting unaligned pointer-sized integers.
1693
1694 2004-12-07  Steven Bosscher  <stevenb@suse.de>
1695
1696         PR c/18867
1697         * c-typeck.c (c_start_case): Set orig_type to error_mark_node
1698         when the type of the controlling expression is not a valid type.
1699
1700 2004-12-07  Steven Bosscher  <stevenb@suse.de>
1701
1702         PR tree-optimization/17340
1703         * tree-ssa-pre.c (compute_antic): Fix comment.
1704         (compute_avail): Do not recurse, instead do a DFS using a stack
1705         and a loop.
1706         (execute_pre): Adjust.
1707
1708 2004-12-07  Ziemowit Laski  <zlaski@apple.com>
1709
1710         * c-tree.h (struct lang_type): Rename 'objc_protocols' field
1711         to 'objc_info'.
1712
1713 2004-12-07  Eric Christopher  <echristo@redhat.com>
1714
1715         PR target/16317
1716         * config/netbsd.h (NO_IMPLICIT_EXTERN_C): Define.
1717
1718 2004-12-07  Eric Christopher  <echristo@redhat.com>
1719
1720         * config/mips/mips-protos.h (mips_valid_pointer_mode): Move
1721         prototype...
1722         * config/mips/mips.c: ... here. Make static.
1723
1724 2004-12-07  Eric Christopher  <echristo@redhat.com>
1725
1726         PR target/18442
1727         * config/mips/mips.c (mips_vector_mode_supported_p): New function.
1728         (TARGET_SCALAR_MODE_SUPPORTED_P): Define to above.
1729
1730 2004-12-07  Kazu Hirata  <kazu@cs.umass.edu>
1731
1732         * c-common.c, expr.c, fold-const.c, print-tree.c,
1733         tree-gimple.c, tree-inline.c, tree-pretty-print.c,
1734         tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c: Replace uses of
1735         first_rtl_op with TREE_CODE_LENGTH.
1736         * tree.c (first_rtl_op): Remove.
1737         Replace uses of first_rtl_op with TREE_CODE_LENGTH.
1738         * tree.h: Remove the prototype for first_rtl_op.
1739
1740 2004-12-07  David Edelsohn  <edelsohn@gnu.org>
1741
1742         * config/rs6000/t-aix43, config/rs6000/t-aix52 (SHLIB_LINK):
1743         Revert 2004-12-01 change.
1744
1745 2004-12-06  Ziemowit Laski  <zlaski@apple.com>
1746
1747         * c-tree.h (struct lang_type): Add 'objc_protocols' field.
1748
1749 2004-12-06  DJ Delorie  <dj@redhat.com>
1750
1751         * reload.c (find_valid_class): Fix logic to test inner mode as well.
1752         (push_reload): Pass inner mode.
1753
1754 2004-12-06  Eric Christopher  <echristo@redhat.com>
1755
1756         * doc/tm.texi (TARGET_VALID_POINTER_MODE): Document.
1757
1758 2004-12-06  Aldy Hernandez  <aldyh@redhat.com>
1759
1760         * config/rs6000/sysv4.h: Define RELOCATABLE_NEEDS_FIXUP to 1.
1761
1762 2004-12-06  Zdenek Dvorak  <dvorakz@suse.cz>
1763             Kazu Hirata  <kazu@cs.umass.edu>
1764
1765         PR tree-optimization/18601
1766         * tree-cfg.c (thread_jumps, thread_jumps_from_bb): Removed.
1767         (tree_forwarder_block_p): Do not consider blocks that are its own
1768         successors forwarders.
1769         (cleanup_forwarder_blocks, remove_forwarder_block): New functions.
1770         (cleanup_tree_cfg): Use cleanup_forwarder_blocks instead of
1771         thread_jumps.
1772         * tree-flow.h (bb_ann_d): Remove forwardable.
1773
1774 2004-12-06  Kazu Hirata  <kazu@cs.umass.edu>
1775
1776         * expr.c (expand_expr_real_1): Remove an "if" whose condition
1777         is always false.
1778
1779 2004-12-06  Roger Sayle  <roger@eyesopen.com>
1780
1781         * c-gimplify.c (gimplify_c_loop): Improve initial implementations
1782         for loops whose conditions are known at compile-time.
1783         * gimplify.c (append_to_statement_list_1): Remove side_effects
1784         parameter, this function should never be called if its false.
1785         (append_to_statement_list): Only call append_to_statement_list_1
1786         if t is non-NULL tree with side-effects.
1787         (append_to_statement_list_force):  Likewise, if t is not NULL.
1788
1789 2004-12-06  J"orn Rennecke <joern.rennecke@st.com>
1790
1791         * bt-load.c (btr_def_s): New member own_end;
1792         (add_btr_to_live_range): Add second parameter.  Changed caller.
1793         (clear_btr_from_live_range): Clear btrs_live_at_end bit
1794         for the register its definition basic block if own_end is set.
1795         (augment_live_range): Also take btrs_live_at_end into account.
1796         (combine_btr_defs): Don't bother with
1797         other_def->other_btr_uses_after_use if it pertains to a different
1798         register.
1799         (move_btr_def): Set def->other_btr_uses_before_def after
1800         calling combine_btr_defs."
1801
1802         * bt-load.c (augment_live_range): New argument full_range.
1803         Changed all callers.
1804
1805         * bt-load.c (move_tr_def): Set other_tr_uses_before_def
1806         taking new btr assignment into account.
1807
1808 2004-12-05  Daniel Berlin <dberlin@dberlin.org>
1809
1810         * tree-ssa-alias.c (create_global_var): Use void_type_node,
1811         not size_type_node.
1812
1813 2004-12-05  Kazu Hirata  <kazu@cs.umass.edu>
1814
1815         * expr.c (expand_expr_real_1): Abort on COND_EXPR of
1816         VOID_TYPE.
1817
1818 2004-12-05  Richard Henderson  <rth@redhat.com>
1819
1820         PR target/18841
1821         * config/alpha/alpha.md (UNSPECV_SETJMPR_ER): New.
1822         (builtin_setjmp_receiver_er_sl_1): Use it.
1823         (builtin_setjmp_receiver_er_1): Likewise.
1824         (builtin_setjmp_receiver_er, exception_receiver_er): Remove.
1825         (builtin_setjmp_receiver): Don't split for explicit relocs until
1826         after reload.
1827         (exception_receiver): Likewise.
1828
1829 2004-12-05  Andrew Pinski  <pinskia@physics.uc.edu>
1830
1831         * mklibgcc.in (vis_hide): Add the prototype for the test.
1832
1833 2004-12-05  Roger Sayle  <roger@eyesopen.com>
1834
1835         * c-typeck.c (c_finish_loop): Improve initial implementations
1836         for loops whose conditions are known at compile-time.
1837
1838 2004-12-05  Kazu Hirata  <kazu@cs.umass.edu>
1839
1840         * builtins.c: Fix comment typos.
1841
1842 2004-12-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1843
1844         PR middle-end/18730
1845         * emit-rtl.c (get_first_nonnote_insn, get_last_nonnote_insn): When
1846         the first/last insn is a sequence, return the first/last insn of the
1847         sequence.
1848
1849         PR bootstrap/18804
1850         * mklibgcc.in (vis_hide): Use implementation instead of declaration
1851         for test function.
1852
1853 2004-12-04  Richard Henderson  <rth@redhat.com>
1854
1855         * config/alpha/alpha.c (alpha_expand_unaligned_load): Don't forget to
1856         use ofs in BWX two byte special case.
1857         (alpha_expand_unaligned_store): Likewise.
1858
1859 2004-12-04  Kazu Hirata  <kazu@cs.umass.edu>
1860
1861         * gcse.c (gcse_main): Add a comment.
1862
1863 2004-12-04  Andrew  Pinski  <pinskia@physics.uc.edu>
1864
1865         PR middle-end/17909
1866         * builtins.c (fold_builtin_next_arg): Export and return true
1867         when there is a warning or an error.
1868         (expand_builtin_va_start): When fold_builtin_next_arg returns true,
1869         return const0_rtx.
1870         (expand_builtin): Likewise.
1871         * gimplify.c (gimplify_call_expr): Error out if there is not
1872         enough arguments to va_start. Call fold_builtin_next_arg also
1873         on the second argument.
1874         * tree.h (fold_builtin_next_arg): Prototype.
1875
1876 2004-12-04  Alan Modra  <amodra@bigpond.net.au>
1877
1878         * mklibgcc.in: Build shared libgcc and shared libunwind in gcc/.
1879         Don't subst shlib_dir for SHLIB_LINK, SHLIBUNWIND_LINK,
1880         SHLIB_INSTALL, and SHLIBUNWIND_INSTALL.
1881         * config/i386/t-nwld (SHLIB_NAME): Use shlib_base_name in place of
1882         shlib_dir and shlib_so_name.
1883         * config/mips/t-slibgcc-irix (SHLIB_NAME): Likewise.
1884         * config/t-libunwind-elf (SHLIB_NAME): Likewise.
1885         * config/t-slibgcc-darwin (SHLIB_NAME): Likewise.
1886         * config/t-slibgcc-elf-ver (SHLIB_NAME): Likewise.
1887         * config/t-slibgcc-sld (SHLIB_NAME): Likewise.
1888         (SHLIB_LINK): Don't use shlib_dir when creating symlink.
1889
1890 2004-12-03  Roger Sayle  <roger@eyesopen.com>
1891
1892         * doc/tm.texi (TARGET_DELEGITIMIZE_ADDRESS): Document target hook.
1893
1894 2004-12-03  Richard Henderson  <rth@redhat.com>
1895
1896         * alias.c (component_uses_parent_alias_set): Rename from
1897         can_address_p.  Return bool.  Reverse the sense of the result.
1898         Reinstate the check for alias set zero.
1899         (get_alias_set): Update to match.
1900         * alias.h (component_uses_parent_alias_set): Likewise.
1901         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
1902         * expr.c (expand_assignment): Likewise.
1903         * expr.h: Remove commented out prototypes that were moved to alias.h.
1904
1905 2004-12-03  Richard Henderson  <rth@redhat.com>
1906
1907         * doc/tm.texi (TARGET_BUILD_BUILTIN_VA_LIST): New.
1908         (TARGET_CANNOT_FORCE_CONST_MEM): New.
1909
1910 2004-12-04  Alan Modra  <amodra@bigpond.net.au>
1911
1912         PR middle end/18718
1913         * sched-rgn.c (schedule_region): Don't assume REG_SAVE_NOTEs are
1914         in pairs.
1915         * sched-ebb.c (schedule_ebb): Likewise.
1916
1917 2004-12-03  Andreas Schwab  <schwab@suse.de>
1918
1919         * Makefile.in (HOSTHOOKS_DEF_H): Define.
1920         (ggc-common.o): Depend on $(HOSTHOOKS_DEF_H).
1921         (host-default.o): Likewise.
1922
1923 2004-12-03  Eric Christopher  <echristo@redhat.com>
1924
1925         * config/stormy16/stormy16.md (pushqi, popqi, pushhi,
1926         pophi): Add number of arguments to name so that the
1927         pattern is recognized as a named pattern.
1928
1929 2004-12-03  Janis Johnson  <janis187@us.ibm.com>
1930
1931         * doc/extend.texi (AltiVec Builtins): Fix info about signedness.
1932
1933 2004-12-03  Andreas Tobler  <a.tobler@schweiz.ch>
1934
1935         * config/rs6000/rs6000.c (rs6000_override_options): Protect
1936         darwin_one_byte_bool with #if.
1937
1938 2004-12-03  Paolo Bonzini  <bonzini@gnu.org>
1939
1940         * doc/tm.texi (Misc): Document TARGET_FOLD_BUILTIN.
1941
1942 2004-12-03  H.J. Lu  <hongjiu.lu@intel.com>
1943
1944         * mklibgcc.in: Put back the default set of EXTRA_MULTILIB_PART.
1945
1946 2004-12-03  Richard Sandiford  <rsandifo@redhat.com>
1947
1948         * configure.ac: Move TL_AC_GCC_VERSION into initialization section.
1949         Set libstdcxx_incdir directly.
1950         * configure: Regenerate.
1951
1952 2004-12-03  Kazu Hirata  <kazu@cs.umass.edu>
1953
1954         * tree-ssa-dom.c (record_equivalences_from_phis): Remove an
1955         "if" whose condition is always true.
1956
1957         * cfgrtl.c (rtl_verify_flow_info_1): Use JUMP_P instead of
1958         INSN_P.
1959
1960 2004-12-02  Stan Shebs  <shebs@apple.com>
1961
1962         * config/rs6000/rs6000.c (rs6000_override_options): Make 64-bit
1963         Darwin default to one-byte bools.
1964
1965 2004-12-02  Richard Henderson  <rth@redhat.com>
1966
1967         PR 18774
1968         * simplify-rtx.c (simplify_immed_subreg): Fail complex modes.
1969
1970 2004-12-03  Ben Elliston  <bje@au.ibm.com>
1971
1972         * doc/cfg.texi (Edges): Update. Document the edge_iterator data
1973         type and its methods.
1974
1975 2004-12-02  Richard Henderson  <rth@redhat.com>
1976
1977         * expr.c (write_complex_part): Use simplify_gen_subreg when the
1978         submode is at least as large as a word.
1979         (read_complex_part): Likewise.
1980
1981 2004-12-02  H.J. Lu  <hongjiu.lu@intel.com>
1982
1983         PR bootstrap/18532
1984         * mklibgcc.in: Build one set of EXTRA_MULTILIB_PARTS for
1985         multilib at a time. Don't build the default set. Don't add
1986         EXTRA_MULTILIB_PARTS to shared libunwind nor libgcc. Remove
1987         filter for shared libunwind and libgcc.
1988
1989 2004-12-02  Roger Sayle  <roger@eyesopen.com>
1990
1991         PR target/18759
1992         * config/i386/i386.c (override_options): If -fomit-frame-pointer has
1993         already been specified, ignore the -momit-leaf-frame-pointer option.
1994
1995 2004-12-02  H.J. Lu  <hongjiu.lu@intel.com>
1996
1997         * varasm.c (make_decl_rtl): Add the missing `;'.
1998
1999 2004-12-02  Andrew Pinski  <pinskia@physics.uc.edu>
2000
2001         * tree.c (is_attribute_p): Split out to ..
2002         (is_attribute_with_length_p): Here.  Use IDENTIFIER_LENGTH instead
2003         of strlen and compare the string lengths before calling strcmp.
2004         (lookup_attribute): Call is_attribute_with_length_p instead of
2005         is_attribute_p.
2006
2007 2004-12-02  Devang Patel  <dpatel@apple.com>
2008
2009         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add -gfull and -gused.
2010         * config/rs6000/darwin.h (CC1_SPEC): Do not handle -gfull and -gused.
2011         * config/i386/darwin.h (CC1_SPEC): Same.
2012
2013 2004-12-02  Richard Henderson  <rth@redhat.com>
2014
2015         * optabs.c (lowpart_subreg_maybe_copy): New.
2016         (expand_unop, expand_abs_nojump): Use it.
2017
2018 2004-12-02  J"orn Rennecke <joern.rennecke@st.com>
2019
2020         * sh.md (extv, extzv): Add pattern predicate.
2021
2022 2004-12-02  Kazu Hirata  <kazu@cs.umass.edu>
2023
2024         * tree-cfg.c (phi_alternatives_equal): Check that PHI_ARG_DEF
2025         is not null.
2026
2027         * tree-cfg.c (phi_alternatives_equal): Check that PHI_ARG_DEF
2028         is not null.
2029
2030         * tree-cfg.c (thread_jumps): Reduce the size of WORKLIST.
2031
2032 2004-12-02  Jeff Law  <law@redhat.com>
2033
2034         * tree-eh.c: Revert yesterday's change.
2035
2036 2004-12-02  Andrew Pinski  <pinskia@physics.uc.edu>
2037
2038         * varasm.c (decode_reg_name): Revert change to check for zero
2039         length strings.
2040         (make_decl_rtl): Make sure that we call decode_reg_name only
2041         when needed.
2042
2043 2004-12-02  Dorit Naishlos  <dorit@il.ibm.com>
2044
2045         PR tree-opt/18716
2046         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Properly set
2047         then and else labels.
2048
2049 2004-12-02  Andreas Schwab  <schwab@suse.de>
2050
2051         * Makefile.in (WERROR_FLAGS): Renamed from WERROR.
2052         (STRICT2_WARN): Use $(WERROR_FLAGS) instead of $(WERROR).
2053         (STAGE2_FLAGS_TO_PASS): Likewise.
2054
2055         * config/i386/x-mingw32: Set WERROR_FLAGS instead of WERROR.
2056
2057 2004-12-02  Richard Sandiford  <rsandifo@redhat.com>
2058
2059         * configure.ac: Use TL_AC_GCC_VERSION to set gcc_version.  Remove
2060         now-redundant AC_SUBSTs.
2061         * aclocal.m4: Include ../config/gcc-version.m4.
2062         * configure: Regenerate.
2063
2064 2004-12-02  Alan Modra  <amodra@bigpond.net.au>
2065
2066         * config/rs6000/rs6000.c (rs6000_assemble_integer): Put back the
2067         #ifdef RELOCATABLE_NEEDS_FIXUP.
2068
2069 2004-12-01  Roger Sayle  <roger@eyesopen.com>
2070
2071         PR target/9908
2072         * config/i386/i386.md (*call_value_1, *sibcall_value_1): Correct
2073         Intel assembler syntax by using %A1 instead of %*%1.
2074
2075 2004-12-01  Richard Henderson  <rth@redhat.com>
2076
2077         * expr.c (expand_assignment): Handle CONCAT both as a final
2078         destination and as a middle point.
2079
2080 2004-12-01  Jeff Law  <law@redhat.com>
2081
2082         * tree-eh.c (save_eptr, save_filt): Now file scoped statics.
2083         (honor_protect_cleanup_actions): Only create save_eptr and
2084         save_filt if they do not already exist.
2085         (lower_eh_constructs): Wipe all knowledge of save_eptr and
2086         save_filt before returning.
2087
2088 2004-12-02  Kazu Hirata  <kazu@cs.umass.edu>
2089
2090         * tree-phinodes.c (remove_phi_arg_num): Fix a comment.
2091
2092 2004-12-02  Alan Modra  <amodra@bigpond.net.au>
2093
2094         PR target/16952
2095         * config/rs6000/rs6000.c (rs6000_assemble_integer): Replace
2096         #ifdef RELOCATABLE_NEEDS_FIXUP with if.
2097         * config/rs6000/linux.h (RELOCATABLE_NEEDS_FIXUP): Define in terms
2098         of target_flags_explicit.
2099         * config/rs6000/linux64.h (RELOCATABLE_NEEDS_FIXUP): Ditto for biarch
2100         case.  Define as 0 for non-biarch.
2101
2102 2004-12-01  Zack Weinberg  <zack@codesourcery.com>
2103
2104         * config/rs6000/t-aix43, config/rs6000/t-aix52 (SHLIB_LINK):
2105         Change temporary file tag from a prefix to an infix.
2106
2107 2004-12-02  Andreas Schwab  <schwab@suse.de>
2108
2109         * gcc.c (struct option_map): Add entry for "--pass-exit-codes".
2110
2111 2004-12-01  Andrew Pinski  <pinskia@physics.uc.edu>
2112
2113         PR tree-opt/18763
2114         PR tree-opt/18746
2115         * tree-ssa-alias.c (init_alias_info): Get statement operands for all
2116         the statements if aliases_computed_p is true.
2117
2118 2004-12-01  Mark Mitchell  <mark@codesourcery.com>
2119
2120         * Makefile.in (WERROR): New variable.
2121         (STRICT2_WARN): Use it.
2122         (STAGE2_FLAGS_TO_PASS): Likewise.
2123         * config/i386/x-mingw32 (WERROR): Add -Wno-format.
2124
2125 2004-12-01  Richard Henderson  <rth@redhat.com>
2126
2127         * expr.c (get_inner_reference): Fix thinko in REAL/IMAGPART_EXPR
2128         offsetting.
2129
2130 2004-12-01  Diego Novillo  <dnovillo@redhat.com>
2131
2132         PR tree-optimization/18291
2133         * tree-ssa-copy.c (merge_alias_info): Fix merging of
2134         flow-sensitive alias information.  If the new pointer has no
2135         name tag, copy it from the original pointer.  Otherwise, make
2136         sure that the pointed-to sets have a common intersection.
2137
2138 2004-12-01  Richard Henderson  <rth@redhat.com>
2139
2140         PR rtl-opt/15289
2141         * emit-rtl.c (gen_complex_constant_part): Remove.
2142         (gen_realpart, gen_imagpart): Remove.
2143         * rtl.h (gen_realpart, gen_imagpart): Remove.
2144         * expmed.c (extract_bit_field): Remove CONCAT hack catering to
2145         gen_realpart/gen_imagpart.
2146         * expr.c (write_complex_part, read_complex_part): New.
2147         (emit_move_via_alt_mode, emit_move_via_integer, emit_move_resolve_push,
2148         emit_move_complex_push, emit_move_complex, emit_move_ccmode,
2149         emit_move_multi_word): Split out from ...
2150         (emit_move_insn_1): ... here.
2151         (expand_expr_real_1) <COMPLEX_EXPR>: Use write_complex_part.
2152         <REALPART_EXPR, IMAGPART_EXPR>: Use read_complex_part.
2153         * function.c (assign_parm_setup_reg): Hard-code transformations
2154         instead of using gen_realpart/gen_imagpart.
2155
2156         * expr.c (optimize_bitfield_assignment_op): Split out from ...
2157         (expand_assignment): ... here.  Use handled_component_p to gate
2158         get_inner_reference code.  Simplify MEM handling.  Special case
2159         CONCAT destinations.
2160
2161         * expmed.c (store_bit_field): Use simplify_gen_subreg instead
2162         of gen_rtx_SUBREG directly.
2163
2164 2004-12-01  David Edelsohn  <edelsohn@gnu.org>
2165             Nathan Sidwell  <nathan@codesourcery.com>
2166
2167         PR target/17107
2168         * config/rs6000/rs6000.md (sge): Enable for non-TARGET_POWER.
2169         (sgt): Same.
2170         (sle): Same.
2171         (slt): Same.
2172
2173 2004-12-01  Nathan Sidwell  <nathan@codesourcery.com>
2174
2175         PR middle-end/18667
2176         * params.c (set_param_value): Add range check.
2177         * params.def: Add min and max values. Reformat long strings.
2178         * params.h (struct param_info): Add min and max fields.
2179         (enum compiler_param): Adjust DEFPARAM.
2180         * toplev.c (lang_independent_params): Likewise.
2181
2182 2004-12-01  Alan Modra  <amodra@bigpond.net.au>
2183
2184         PR target/12817
2185         * config/rs6000/rs6000.c (rs6000_emit_prologue): Use r0 for vrsave.
2186
2187 2004-12-01  Joseph S. Myers  <joseph@codesourcery.com>
2188
2189         * doc/standards.texi: Update for C99 TC2.
2190
2191 2004-11-30  Jeff Law  <law@redhat.com>
2192
2193         * sbitmap.c (sbitmap_any_common_bits): New function.
2194         * sbitmap.h (sbitmap_any_common_bits): Prototype.
2195         * modulo-sched.c (sms_schedule_by_order): Use sbitmap_any_common_bits
2196         No longer allocate/free "psp", "pss" sbitmaps.
2197         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Similarly for
2198         the "res" sbitmap.
2199         (group_aliases): Similarly.
2200
2201 2004-11-30  Nathan Sidwell  <nathan@codesourcery.com>
2202
2203         * tree-vectorizer.c (vect_analyze_data_refs): Reformat and avoid
2204         uninitialized variable.
2205
2206 2004-11-30  Eric Christopher  <echristo@redhat.com>
2207
2208         * fold-const.c (fold_widened_comparison): Make sure that we're
2209         passing an INTEGER_TYPE to int_fits_type_p.
2210         (fold): Clean up comment.
2211
2212 2004-11-30  Zack Weinberg  <zack@codesourcery.com>
2213
2214         * mklibgcc.in: Correct calculation of libgcc_s_soname and
2215         libunwind_soname.  Use $out, not $outS, in commands for
2216         no-shared-library case.  Move EXTRA_MULTILIB_PARTS rules above
2217         library build rules, make $libunwind_so and $libgcc_s_so
2218         depend on them in the normal fashion, and filter those objects
2219         out of @shlib_objs@.
2220
2221 2004-11-30  Janis Johnson  <janis187@us.ibm.com>
2222
2223         * config/rs6000/altivec.h (vec_step_help): Support const vector types.
2224
2225 2004-11-30  Andrew Pinski  <pinskia@physics.uc.edu>
2226
2227         PR tree-opt/18298
2228         * tree-optimize.c (init_tree_optimization_passes): Add a may_alias
2229         pass right after fold builtins.
2230
2231 2004-11-30  Andreas Krebbel  <krebbel1@de.ibm.com>
2232
2233         * config/s390/s390-modes.def: Added cc modes documentation.
2234         * config/s390/s390.c: (s390_tm_ccmode, s390_select_ccmode,
2235         s390_expand_addcc): Added cc mode comments.
2236         * config/s390/s390.md: Removed old cc mode documentation.
2237
2238 2004-11-30  Mark Dettinger  <dettinge@de.ibm.com>
2239
2240         * config/s390/s390.c (struct processor_costs): New data type.
2241         (s390_cost, z900_cost, z990_cost): New global variables.
2242         (override_options): Initialize s390_cost.
2243         (s390_rtx_costs): Reimplement.
2244
2245 2004-11-29  Daniel Berlin  <dberlin@dberlin.org>
2246
2247         Fix PR tree-optimization/18673
2248
2249         * tree-ssa-pre.c: Remove splay-tree.h include.
2250         (bitmap_value_replace_in_set): Fix to add if it does not exist.
2251         (find_or_generate_expression): Remove now-wrong condition.
2252         (create_expression_by_pieces): Fix condition and comment reason
2253         for it.
2254         (insert_aux): Fix condition and comment reasons for it.
2255         Factor insertion code from here.
2256         (insert_into_preds_of_block): To here.  Fix conditions in factored
2257         function and comment reasons for them.
2258
2259 2004-11-30  Ira Rosen  <irar@il.ibm.com>
2260
2261         PR tree-opt/18607
2262         * tree-vectorizer.c (vect_analyze_data_refs): Use temporary
2263         variable for data_reference when looking for memtag.
2264
2265 2004-11-30  Jakub Jelinek  <jakub@redhat.com>
2266
2267         * c-opts.c (check_deps_environment_vars): If spec != NULL, set
2268         deps_seen.
2269
2270 2004-11-30  Dorit Naishlos  <dorit@il.ibm.com>
2271
2272         * tree-vectorizer.c (vect_gen_niters_for_prolog_loop): Use
2273         tree_low_cst instead of TREE_INT_CST_LOW.
2274
2275 2004-11-30  Dorit Naishlos  <dorit@il.ibm.com>
2276
2277         PR target/18173
2278         * tree-vectorizer.c (vect_can_force_dr_alignment_p): Return false for
2279         decls that are assembled before vectorization takes place.
2280         (vect_compute_data_ref_alignment): Set DECL_USER_ALIGN to 1.
2281
2282 2004-11-30  Ulrich Weigand  <uweigand@de.ibm.com>
2283
2284         * passes.c (rest_of_handle_old_regalloc): Delete unreachable blocks
2285         if local_alloc modified jumps.
2286
2287 2004-11-30  Alan Modra  <amodra@bigpond.net.au>
2288
2289         * varasm.c (default_encode_section_info): Don't set SYMBOL_FLAG_SMALL
2290         on TLS symbols.
2291         * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Remove TLS
2292         check.
2293
2294 2004-11-30  Zack Weinberg  <zack@codesourcery.com>
2295
2296         * gthr-gnat.c, gthr-gnat.h, gthr.h, libgcc2.h, unwind-dw2-fde.h
2297         * unwind.h: Surround all visibility pragmas with #ifndef HIDE_EXPORTS.
2298
2299         * mklibgcc.in: Drastic restructure for comprehensibility.
2300         Remove the old hidden-directive hack.
2301         Eliminate support for .txt files in LIB2ADD etc (never used).
2302         Eliminate support for assembly source files in LIB2ADDEH* and
2303         LIBUNWIND (also never used).
2304         Build up dependency lists for libraries incrementally.
2305         If we have SHLIB_LINK, compile each file twice, once for the
2306         static and once for the shared library; also probe for
2307         -fvisibility=hidden in the generated libgcc.mk.  If found,
2308         pass that and -DHIDE_EXPORTS to the compilation of every C
2309         source file going into the static library.  If found, generate
2310         hidden-directive lists for every assembly source file going
2311         into the static library, but incorporate them with -include
2312         instead of ld -r.
2313         Write comments into generated libgcc.mk to facilitate debugging.
2314         * Makefile.in: Pass ASM_HIDDEN_OP to mklibgcc.
2315         * config/t-slibgcc-darwin: Define ASM_HIDDEN_OP.
2316
2317         * config/darwin.h (REAL_LIBGCC_SPEC): Put -lgcc back in
2318         -Zdynamiclib case.
2319
2320 2004-11-29  Richard Henderson  <rth@redhat.com>
2321
2322         * expr.c (get_inner_reference): Handle REAL/IMAGPART_EXPR.
2323         (handled_component_p): Likewise.
2324         * alias.c (can_address_p): Reformat and simplify.  Handle
2325         REAL/IMAGPART_EXPR.  Do not disable addressability based on
2326         alias set zero.
2327         * fold-const.c (build_fold_addr_expr_with_type): Remove duplicate
2328         check for REAL/IMAGPART_EXPR.
2329         * gimplify.c (gimplify_compound_lval): Likewise.
2330         * tree-cfg.c (verify_expr): Likewise.
2331         * tree-gimple.c (is_gimple_addressable, get_base_address): Likewise.
2332         * tree-nested.c (build_addr, convert_nonlocal_reference): Likewise.
2333         (convert_local_reference): Likewise.
2334         * tree-ssa-loop-ivopts.c (prepare_decl_rtl): Likewise.
2335
2336 2004-11-30  Alan Modra  <amodra@bigpond.net.au>
2337
2338         * expr.c (emit_group_load_1): Don't die on const_int orig_src.
2339
2340 2004-11-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2341
2342         PR pch/14940
2343         * config/pa/pa-host.c, config/pa/x-hpux, config/pa/x-linux: New files.
2344         * config.host (hppa*-*-hpux*, hppa*-*-linux): Define out_host_hook_obj
2345         and host_xmake_file using new host configuration files.
2346
2347 2004-11-29  Roger Sayle  <roger@eyesopen.com>
2348
2349         * reg-stack.c (change_stack): Improve algorithm used to pop regs
2350         off the stack to maximize ffreep usage and reduce fxch count.
2351
2352 2004-11-30  James A. Morrison  <phython@gcc.gnu.org>
2353
2354         PR middle-end/18596
2355         * c-decl.c (grokdeclarator): Reset DECL_INTIAL to error_mark_node
2356         on errors.
2357
2358 2004-11-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2359
2360         * expr.c (expand_expr_real_1, case NOP_EXPR): Properly handle
2361         REDUCE_BIT_FIELD by applying it to result, not input, of conversion.
2362
2363 2004-11-30  Ben Elliston  <bje@au.ibm.com>
2364
2365         * Makefile.in (REGS_H): Depend on $(BASIC_BLOCK_H).
2366
2367 2004-11-29  Andrew Pinski  <pinskia@physics.uc.edu>
2368
2369         PR c/18479
2370         * c-common.c (handle_visibility_attribute): When the type decl
2371         is really a identifier node, warn about being ignored and return.
2372
2373 2004-11-29  Richard Henderson  <rth@redhat.com>
2374
2375         * tree-cfg.c (tree_node_can_be_shared): Fix typo'd error_mark_node.
2376
2377 2004-11-29  Steven Bosscher  <stevenb@suse.de>
2378
2379         * cfgcleanup.c (outgoing_edges_match, try_crossjump_to_edge):
2380         Remove CASE_DROPS_THROUGH checks, it is never defined.
2381         * cfglyout.c (fixup_reorder_chain): Likewise.
2382         * cfgrtl.c (rtl_verify_flow_info): Likewise.
2383         * stmt.c (expand_case): Likewise.
2384         * cfgbuild.c (make_edges): Likewise.  Also remove force_fallthru,
2385         it is now always 0.
2386         * system.h (CASE_DROPS_THROUGH): Poison.
2387         * doc/md.texi (casesi): Remove documentation of CASE_DROPS_THROUGH.
2388         * doc/tm.texi (casesi): Remove documentation of CASE_DROPS_THROUGH.
2389
2390         * config/v850/v850.h: Remove commented out CASE_DROPS_THROUGH.
2391
2392 2004-11-29  Andrew Pinski  <pinskia@physics.uc.edu>
2393
2394         PR middle-end/18725
2395         * tree-cfg.c (tree_node_can_be_shared): Error_mark_node can be
2396         shared always.
2397
2398 2004-11-29  Diego Novillo  <dnovillo@redhat.com>
2399
2400         PR tree-optimization/18712
2401         * tree-into-ssa.c (insert_phi_nodes_for): Pass argument
2402         WORK_STACK by reference.
2403         Call VEC_safe_push instead of VEC_quick_push.
2404         Update all users.
2405
2406 2004-11-29  Daniel Jacobowitz  <dan@codesourcery.com>
2407
2408         PR c/7544
2409         * Makefile.in (c-lang.o): Update dependencies.
2410         * c-lang.c: Include "c-pragma.h".
2411         (finish_file): Call maybe_apply_pending_pragma_weaks.
2412         * c-pragma.c (maybe_apply_pending_pragma_weaks): New function.
2413         * c-pragma.h (maybe_apply_pending_pragma_weaks): New prototype.
2414
2415 2004-11-29  Richard Henderson  <rth@redhat.com>
2416
2417         PR target/17224
2418         * config/ia64/predicates.md (sdata_symbolic_operand): Deny offsets
2419         outside the referenced object.
2420
2421 2004-11-29  Kazu Hirata  <kazu@cs.umass.edu>
2422
2423         * tree-if-conv.c (replace_phi_with_cond_modify_expr): Use
2424         EDGE_PRED instead of PHI_ARG_EDGE.
2425         * tree-ssa-live.c: Likewise.
2426         * tree-ssa-loop-manip.c: Likewise.
2427         * tree-ssa.c: Likewise.
2428
2429         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Speed up by
2430         simplifying edge manipulation.
2431
2432         * cfgrtl.c (rtl_tidy_fallthru_edge): Speed up by using
2433         EDGE_COUNT.
2434
2435         * tree-cfg.c (tree_redirect_edge_and_branch): Call find_edge
2436         only when needed.
2437
2438         * cfg.c (flow_obstack): Remove.
2439         (flow_firstobj): Likewise.
2440         (init_flow): Remove all uses of flow_obstack.
2441
2442 2004-11-29  Alan Modra  <amodra@bigpond.net.au>
2443
2444         * varasm.c (default_elf_select_section_1): Only pass DECL_P decl
2445         to named_section.
2446
2447 2004-11-29  Nathan Sidwell  <nathan@codesourcery.com>
2448
2449         * opts.c (decode_options): Do not set max-inline-insns-rtl.
2450         (common_handle_option): Likewise.
2451         * params.def (PARAM_MAX_INLINE_INSNS_RTL): Remove.
2452         * params.h (MAX_INLINE_INSNS_RTL): Remove.
2453         * doc/invoke.texi (max-inline-insns-rtl): Remove.
2454
2455 2004-11-29  Alan Modra  <amodra@bigpond.net.au>
2456
2457         PR target/9571
2458         * varasm.c (default_elf_select_section_1): Pass decl to named_section.
2459
2460 2004-11-28  Andrew Pinski  <pinskia@physics.uc.edu>
2461
2462         PR middle-end/18164
2463         * gimplify.c (gimplify_asm_expr): If the length of an output operand
2464         is zero, do not process it, just let it go through.
2465
2466 2004-11-28  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2467             Diego Novillo  <dnovillo@redhat.com>
2468
2469         PR/18662, also backported from tree-cleanup-branch.
2470         * tree-ssa-ccp.c (substitute_and_fold): If replaced anything,
2471         always call maybe_clean_eh_stmt and modify_stmt.
2472
2473 2004-11-28  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2474
2475         PR/18664
2476         * tree-ssa-operands.c (build_ssa_operands, case MODIFY_EXPR):
2477         Ignore a VIEW_CONVERT_EXPR on LHS when deciding if must or may def.
2478         * tree-ssa-ccp.c (visit_assignment): If LHS is a VIEW_CONVERT_EXPR,
2479         add an inverse VIEW_CONVERT_EXPR to const_val.
2480
2481         PR/18657
2482         * tree-nested.c (check_for_nested_with_variably_modified): New.
2483         (create_nesting_tree): Call it.
2484
2485         * tree-ssa-alias.c (compute_points_to_and_addr_escapes): Remove
2486         special code for assigning to non-pointer.
2487         (is_escape_site): If RHS is a conversion between pointer and integer
2488         types,  this is an escape site.
2489
2490         * gcse.c (insert_store): Error if try to insert store on abnormal edge.
2491         (store_motion): Don't move store if any edge we'd want to move it
2492         to is abnormal.
2493
2494         * expr.c (expand_expr_real_1, case ARRAY_REF): Properly fold with
2495         non-zero lower bound.
2496
2497         * expr.c (categorize_ctor_elements_1, case STRING_CST): New case.
2498
2499 2004-11-28  Matt Kraai  <kraai@alumni.cmu.edu>
2500
2501         PR diagnostic/17594
2502         * opts.c (find_opt): Require that the input match a switch exactly
2503         or that the switch take a joined option to be interpreted as a
2504         match for another language.
2505
2506 2004-11-28  Andrew Pinski  <pinskia@physics.uc.edu>
2507
2508         * timevar.def (TV_TREE_REDPHI): New timevar.
2509         * tree-ssa.c (pass_redundant_phi): Use TV_TREE_REDPHI for the tv id.
2510
2511 2004-11-28  Nathanael Nerode  <neroden@gcc.gnu.org>
2512
2513         PR preprocessor/17651
2514         * c-opts.c (sanitize_cpp_opts): Make flag_no_output imply
2515         flag_no_line_commands.
2516         * c-ppoutput.c (pp_file_change): Remove now-redundant check of
2517         flag_no_output.
2518
2519 2004-11-28  Theodore A. Roth  <troth@openavr.org>
2520
2521         * config/avr/avr.c (avr_handle_fndecl_attribute): Generate a
2522         warning if the function name does not begin with "__vector" and the
2523         function has either the 'signal' or 'interrupt' attribute.
2524
2525 2004-11-28  Theodore A. Roth  <troth@openavr.org>
2526
2527         * config/avr/avr.c (avr_mcu_types): Add entries for atmega48,
2528         atmega88, atmega168, attiny13, attiny2313, at90can128, atmega165,
2529         atmega325, atmega3250, atmega645 and atmega6450.
2530         * config/avr/avr.h (LINK_SPEC): Ditto.
2531         (LIB_SPEC): Ditto.
2532         (LIBGCC_SPEC): Ditto.
2533         (CRT_BINUTILS_SPECS): Ditto.
2534         * config/avr/t-avr (MULTILIB_MATCHES): Ditto.
2535
2536 2004-11-28  Nathanael Nerode  <neroden@gcc.gnu.org>
2537
2538         PR preprocessor/17610
2539         * testsuite/gcc.dg/cpp/empty-include.c: New testcase.
2540
2541 2004-11-28  Jeff Law  <law@redhat.com>
2542
2543         * tree-ssa-alias.c (count_calls_and_maybe_create_global_var): New.
2544         (pass_maybe_create_global_var): New.
2545         * tree-pass.h (pass_maybe_create_global_var): Declare.
2546         * tree-optimize.c (init_tree_optimization_passes): Link in
2547         pass_maybe_create_global_var.
2548
2549 2004-11-28  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2550
2551         * tree-inline.c (inline_forbidden_p_1, case RECORD_TYPE): Add comment.
2552
2553 2004-11-28  Ulrich Weigand  <uweigand@de.ibm.com>
2554
2555         PR rtl-optimization/18420
2556         * simplify-rtx.c (simplify_gen_subreg): Revert 2004-10-28 change.
2557
2558 2004-11-28  Steven Bosscher  <stevenb@suse.de>
2559             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2560
2561         * config/vax/vax.h (CASE_DROPS_THROUGH): Don't define.
2562         * config/vax/vax.md (casesi): Emit a test-and-branch to make sure
2563         that the case is in range, to make sure the casesi insn is always
2564         in range and never falls through.
2565         (casesi1): Add comment to explain why casesi never falls through.
2566         Remove the unnamed special case casesi pattern.
2567
2568 2004-11-28  Hans-Peter Nilsson  <hp@bitrange.com>
2569
2570         PR target/18331
2571         * config/mmix/mmix.md ("*movdicc_real_reversible"): Rename from
2572         "*movdicc_real".  Only match reversible comparisons.
2573         ("*movdicc_real_nonreversible"): New pattern, split from
2574         "*movdicc_real".  Match only nonreversible comparisons.  Exclude
2575         reversed alternatives.
2576         ("*movdfcc_real_reversible", "*movdfcc_real_nonreversible"):
2577         Similar.
2578
2579 2004-11-27  Richard Henderson  <rth@redhat.com>
2580
2581         * config/ia64/ia64.md: Move all define_predicate's ...
2582         * config/ia64/predicates.md: ... here.  New file.
2583
2584 2004-11-27  Per Bothner  <per@bothner.com>
2585
2586         PR bootstrap/18142
2587         Re-applied following, with two modifications: add a URL for the
2588         fixed cctools; only exit if $build = $target.
2589
2590         2004-10-18  Kelley Cook  <kcook@gcc.gnu.org>
2591         * configure.ac (powerpc-*-darwin*): Require assembler to support
2592         .machine directive.
2593         * configure: Regenerate.
2594
2595 2004-11-28  David Edelsohn  <edelsohn@gnu.org>
2596
2597         PR target/16800
2598         * config/rs6000/rs6000.c (rs6000_rtx_costs): Improve accuracy of
2599         EQ, GTU, and LTU costs.  Add costs for GT, LT, and UNORDERED.
2600         Distinguish between SImode and DImode CONST_INT.
2601
2602 2004-11-28  Andreas Fischer <a_fisch@gmx.de>
2603             Alan Modra  <amodra@bigpond.net.au>
2604
2605         PR target/16343
2606         * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Disallow
2607         functions, strings and thread-local vars.
2608
2609 2004-11-28  Alan Modra  <amodra@bigpond.net.au>
2610
2611         * config/rs6000/rs6000.h (WORLD_SAVE_P): Define.
2612         * config/rs6000/darwin.h (WORLD_SAVE_P): Define.
2613         * config/rs6000/rs6000.c (compute_save_world_info): Use WORLD_SAVE_P
2614         to allow non-darwin ABIs to optimize away code.
2615         (rs6000_emit_prologue, rs6000_emit_epilogue): Likewise.
2616
2617 2004-11-27  Kazu Hirata  <kazu@cs.umass.edu>
2618
2619         * tree.c (operand_equal_for_phi_arg_p): New.
2620         * tree.h: Add a prototype for operand_equal_for_phi_arg_p.
2621         * tree-cfg.c, tree-ssa-dom.c, tree-ssa-phiopt.c, tree-ssa.c:
2622         Replace operand_equal_p with operand_for_phi_arg_p
2623         appropriately.
2624
2625         * bb-reorder.c (find_traces_1_round): Speed up by using
2626         EDGE_COUNT instead of FOR_EACH_EDGE.
2627
2628         * fold-const.c, config/i386/linux64.h: Fix comment typos.
2629
2630 2004-11-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2631
2632         PR pch/14940
2633         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Revert 2004-11-22 change.
2634
2635 2004-11-27  Kazu Hirata  <kazu@cs.umass.edu>
2636
2637         * config/i386/linux.h: Fix a comment typo.
2638         * doc/extend.texi: Fix a typo.
2639
2640 2004-11-27  Jeff Law  <law@redhat.com>
2641
2642         * tree-cfg.c (cleanup_tree_cfg): Also return true if blocks
2643         are merged.
2644
2645 2004-11-27  Jakub Jelinek  <jakub@redhat.com>
2646
2647         * config/i386/linux64.h (REG_NAME): Define.
2648
2649 2004-11-27  Jakub Jelinek  <jakub@redhat.com>
2650
2651         * fold-const.c (extract_muldiv_1) <case ABS_EXPR>: If ctype is
2652         unsigned and type signed, build ABS_EXPR with signed_type (ctype)
2653         and only afterwards convert to ctype.
2654
2655 2004-11-27  Richard Sandiford  <rsandifo@redhat.com>
2656
2657         * config/mips/mips-protos.h (function_arg_boundary): Declare.
2658         * config/mips/mips.h (PARM_BOUNDARY): Simplify definition.
2659         (STACK_BOUNDARY, MIPS_STACK_ALIGN): Likewise.
2660         (FUNCTION_ARG_BOUNDARY): Use new function_arg_boundary function.
2661         * config/mips/mips.c (function_arg_boundary): New function.
2662         Impose a maximum alignment of STACK_BOUNDARY.
2663
2664 2004-11-27  Jakub Jelinek  <jakub@redhat.com>
2665
2666         PR rtl-optimization/17825
2667         * combine.c (subst): Ignore STRICT_LOW_PART no matter if REG_P (new)
2668         or not.
2669
2670 2004-11-27  Alan Modra  <amodra@bigpond.net.au>
2671
2672         PR target/12769
2673         * config/rs6000/rs6000.c (init_cumulative_args): Set call_cookie
2674         from rs6000_default_long_calls for libcalls.
2675
2676 2004-11-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2677
2678         * expmed.c (extract_bit_field): When extracting from non-integer mode,
2679         force a SUBREG into a register because we may be taking a further
2680         SUBREG of it.
2681
2682 2004-11-27  Di-an Jan  <dianj@freeshell.org>
2683
2684         * doc/contrib.texi (Tim Josling): Remove nesting quotation marks.
2685
2686 2004-11-26  Robert Millan  <robertmh@gnu.org>
2687
2688         Changes for k*bsd-gnu support.
2689         * config/i386/linux.h: Define REG_NAME to allow overriding of
2690         register names in sc structure.
2691         * config/i386/linux-unwind.h: Refer to sc->REG_NAME(reg) instead
2692         of sc->reg.
2693         * config.gcc: Detect x86_64-k*bsd-gnu systems.
2694
2695 2004-11-26  Jeff Law  <law@redhat.com>
2696
2697         * tree-ssa.c (verify_flow_sensitive_alias_info): Don't
2698         retrieve annotations or pointer info before it's necessary.
2699         Reorder tests for early continue of the loop.  Manually CSE
2700         SSA_NAME_VAR.
2701
2702 2004-11-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
2703
2704         * target.h (struct gcc_target): New field 'dwarf_handle_frame_unspec'.
2705         * target_def.h (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Define to 0.
2706         (TARGET_INITIALIZER): Add TARGET_DWARF_HANDLE_FRAME_UNSPEC.
2707         * dwarf2out.c (dwarf2out_frame_debug_expr): Allow REG->REG move
2708         to a fixed reg if the source is the Return Address register.
2709         Implement new Rule 15.
2710         * doc/tm.texi (Frame Layout): Document TARGET_DWARF_HANDLE_FRAME_UNSPEC.
2711         * config/sparc/sparc.c (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Define to
2712         sparc_dwarf_handle_frame_unspec.
2713         (gen_save_register_window): New function.
2714         (emit_stack_pointer_increment): Rename into gen_stack_pointer_inc.
2715         (emit_stack_pointer_decrement): Rename into gen_stack_pointer_dec.
2716         (expand_prologue): Adjust calls to emit_stack_pointer_{in,de}crement.
2717         Set RTX_FRAME_RELATED_P on the appropriate insns and members of insns.
2718         (sparc_asm_function_prologue): Do not emit call frame debugging info.
2719         (emit_and_preserve): Adjust calls to emit_stack_pointer_{in,de}crement.
2720         (sparc_expand_epilogue): Likewise.
2721         (sparc_dwarf_handle_frame_unspec): New function.
2722         * config/sparc/sparc.md (save_register_window): Remove.
2723         (save_register_windowdi): Rewrite modelled on the callframe debug info.
2724         (save_register_windowsi): Likewise.
2725
2726 2004-11-26  Alexandre Oliva  <aoliva@redhat.com>
2727
2728         * config/frv/frv-protos.h: Guard ifcvt functions declarations with
2729         BB_HEAD, not BLOCK_HEAD.
2730
2731 2004-11-26  Alexandre Oliva  <aoliva@redhat.com>
2732
2733         * config/frv/frv.c (frv_ifcvt_modify_insn): Don't leave alone
2734         scratch insns that set a register live at the join point.
2735
2736 2004-11-26  Kazu Hirata  <kazu@cs.umass.edu>
2737
2738         * cse.c, tree-ssa-operands.c: Fix comment typos.
2739
2740         * tree-cfg.c (tree_split_edge): Speed up by using find_edge.
2741
2742 2004-11-26  James A. Morrison  <phython@gcc.gnu.org>
2743
2744         PR target/18510
2745         * doc/extend.texi (SPARC VIS Built-in Functions): New section.
2746
2747 2004-11-26  Kazu Hirata  <kazu@cs.umass.edu>
2748
2749         * cfgrtl.c (try_redirect_by_replacing_jump): Speed up the
2750         check that tests if all edges go to the same destination.
2751
2752         * bitmap.c (bitmap_find_bit): Speed up by traversing from
2753         head->first if that seems profitable.
2754
2755 2004-11-25  Jeff Law  <law@redhat.com>
2756
2757         * timevar.def (TV_TREE_LOOP_INIT, TV_TREE_LOOP_FINI): New timevars.
2758         * tree-ssa-loop.c (pass_loop_init): Use TV_TREE_LOOP_INIT.
2759         (pass_loop_done): Use TV_TREE_LOOP_FINI.
2760
2761 2004-11-26  Alan Modra  <amodra@bigpond.net.au>
2762
2763         PR rtl-optimization/16356
2764         * config/rs6000/rs6000.md (floatdisf2_internal2): Rewrite with
2765         separate output register and one less jump.  Enable for powerpc64.
2766         (floatdisf2): Adjust for above.
2767
2768 2004-11-25  Bob Wilson  <bob.wilson@acm.org>
2769
2770         * config/xtensa/xtensa.h (STARTFILE_SPEC): Add crt0.
2771         (GCC_DRIVER_HOST_INITIALIZATION): Define.
2772
2773 2004-11-25  Andrew Pinski  <pinskia@physics.uc.edu>
2774
2775         PR middle-end/17957
2776         * tree-complex.c (vector_inner_type): New variable moved from
2777         build_word_mode_vector_type.
2778         (vector_last_type): Likewise.
2779         (vector_last_nunits): Likewise.
2780         (build_word_mode_vector_type): Use the new variables.
2781         * Makefile.in (tree-complex.o): Add gt-tree-complex.h $(GGC_H).
2782         (GTFILES): Add tree-complex.c.
2783         (gt-tree-complex.h): New rule, add it to the rest of the gt-* rules.
2784
2785 2004-11-25  Bob Wilson  <bob.wilson@acm.org>
2786
2787         * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define
2788         __XTENSA_WINDOWED_ABI__.
2789
2790 2004-11-25  Richard Henderson  <rth@redhat.com>
2791
2792         * dwarf2out.c (dwarf2out_stack_adjust): Add after_p argument.  Save
2793         args_size adjustments for calls even with cfa as stack pointer.
2794         Search calls for stack adjustments after the insn is issued.
2795         (dwarf2out_frame_debug): Add after_p argument; pass it on.
2796         * dwarf2out.h (dwarf2out_frame_debug): Update to match.
2797         * final.c (final_start_function, final_scan_insn): Likewise.
2798
2799 2004-11-25  Richard Henderson  <rth@redhat.com>
2800
2801         PR c++/6764
2802         * reload1.c (set_initial_eh_label_offset): New.
2803         (set_initial_label_offsets): Use it.
2804
2805 2004-11-25  Kaz Kojima  <kkojima@gcc.gnu.org>
2806
2807         * config/sh/sh.c (sh_output_mi_thunk): Initialize bitmap obstacks
2808         before calling life_analysis and release them after.
2809
2810 2004-11-25  Kazu Hirata  <kazu@cs.umass.edu>
2811
2812         * tree-ssa-forwprop.c (substitute_single_use_vars): Remove
2813         duplicate code.
2814
2815 2004-11-25  Andrew Pinski <pinskia@physics.uc.edu>
2816
2817         * bitmap.h (BITMAP_XMALLOC): Use BITMAP_ALLOC and not
2818         BITMAP_OBSTACK_ALLOC.
2819         (BITMAP_XFREE): Use BITMAP_FREE and not BITMAP_OBSTACK_FREE.
2820
2821 2004-11-25  Andrew Pinski <pinskia@physics.uc.edu>
2822
2823         parts of PR rtl-opt/18463, rtl-opt/17647
2824         * cse.c (canon_for_address): New function.
2825         (find_best_addr): Call canon_for_address before getting the
2826         address's cost when checking if we should take that address.
2827
2828 2004-11-25  Kazu Hirata  <kazu@cs.umass.edu>
2829
2830         * tree-phinodes.c (add_phi_arg): Take "tree" instead of
2831         "tree *" as the first argument.
2832         * tree-flow.h: Update the prototype of add_phi_arg.
2833         * lambda-code.c, tree-cfg.c, tree-into-ssa.c,
2834         tree-ssa-loop-ivopts.c, tree-ssa-loop-manip.c, tree-ssa-pre.c,
2835         tree-ssa-threadupdate.c, tree-ssa.c, tree-tailcall.c,
2836         tree-vectorizer.c: Update all call sites of add_phi_arg.
2837
2838 2004-11-25  Nathan Sidwell  <nathan@codesourcery.com>
2839
2840         * bitmap.c (bitmap_malloc_alloc, bitmap_malloc_free): Remove.
2841         * bitmap.h (bitmap_malloc_alloc, bitmap_malloc_free): Remove.
2842         (BITMAP_XMALLOC): Forward to BITMAP_OBSTACK_ALLOC.
2843         (BITMAP_XFREE): Forward to BITMAP_OBSTACK_FREE.
2844
2845 2004-11-25  Andrew MacLeod  <amacleod@redhat.com>
2846
2847         PR tree-optimization/18587
2848         * tree-flow-inline.h (mark_call_clobbered, mark_non_addressable): Flag
2849         call clobbered caches as invalid.
2850         * tree-ssa-operands.c (ssa_call_clobbered_cache_valid): New.  Flag
2851         indicating whether the call clobbered operand cache is valid.
2852         (ssa_ro_call_cache_valid): New.  Flag indicating whether the
2853         pure/const call operand cache is valid.
2854         (clobbered_v_may_defs, clobbered_vuses, ro_call_vuses): New.  Cached
2855         list of operands for cached call virtual operands.
2856         (clobbered_aliased_loads, clobbered_aliased_stores,
2857         ro_call_aliased_load): New.  flags caching whether alias bits are
2858         to be set in call stmt's.
2859         (fini_ssa_operands): Remove call operand caches if present.
2860         (get_expr_operands, get_asm_expr_operands,
2861         get_indirect_ref_operands): Pass stmt annotation to add_stmt_operand.
2862         (get_call_expr_operands): Add call clobbered variables first.
2863         (add_stmt_operand): Take stmt annotation rather than stmt as a param.
2864         (add_call_clobber_ops, add_call_read_ops): Use the call operand cache
2865         if it is valid, otherise fill the cache.
2866         * tree-ssa-operands.h (ssa_clobbered_cache_valid): Declare extern.
2867         * tree-flow.h (struct var_ann_d): Add in_vuse_list and
2868         in_v_may_def_list bits.
2869         * tree-ssa-operands.c (cleanup_v_may_defs): New.  Clear the
2870         in_list bits for the v_may_def elements and empty the operand
2871         build array
2872         (finalize_ssa_vuses): Use cleanup_v_may_defs and remove redundant
2873         VUSES by checking the in_v_may_def_list bit.
2874         (append_v_may_def, append_vuse): Use the in_list bit rather than
2875         scanning the array for duplicates.
2876
2877 2004-11-25  Ulrich Weigand  <uweigand@de.ibm.com>
2878
2879         * config/s390/s390.c (s390_short_displacement): UNSPEC_GOTNTPOFF
2880         displacements are not short.
2881
2882 2004-11-25  Ulrich Weigand  <uweigand@de.ibm.com>
2883
2884         * config/s390/s390.c (legitimize_pic_address): Use s390_load_address
2885         to load addresses.
2886
2887 2004-11-25  Mark Mitchell  <mark@codesourcery.com>
2888
2889         PR c++/18001
2890         * c-common.h (lvalue_use): Move here from c-ctypeck.c.
2891         (lvalue_or_else): Declare.
2892         * c-common.c (lvalue_or_else): Move here from c-typeck.c.
2893         * c-typeck.c (lvalue_use): Remove.
2894         (lvalue_or_else): Remove.
2895
2896         PR c++/18556
2897         * toplev.c (check_global_declarations): Set DECL_IGNORED_P on
2898         unemitted variables with static storage duration.
2899
2900 2004-11-25  Gerald Pfeifer  <gerald@pfeifer.com>
2901
2902         * tree-cfg.c (tree_verify_flow_info): Do not terminate error()
2903         message with \n.
2904
2905 2004-11-25  Nathan Sidwell  <nathan@codesourcery.com>
2906
2907         * config/rs6000/altivec.md (VIshort): New mode macro.
2908         (altivec_vaddubs, altivec_vadduhs, altivec_vadduws): Replace
2909         with ...
2910         (altivec_vaddu<VI_char>s): ... this.
2911         (altivec_vaddsbs, altivec_vaddshs, altivec_vaddsws): Replace
2912         with ...
2913         (altivec_vadds<VI_char>s): ... this.
2914         (altivec_vsububs, altivec_vsubuhs, altivec_vsubuws): Replace
2915         with ...
2916         (altivec_vsubu<VI_char>s): ... this.
2917         (altivec_vsubsbs, altivec_vsubshs, altivec_vsubsws): Replace
2918         with ...
2919         (altivec_vsubs<VI_char>s): ... this.
2920         (altivec_vavgub, altivec_vavguh, altivec_vavguw): Replace
2921         with ...
2922         (altivec_vavgu<VI_char>): ... this.
2923         (altivec_vavgsb, altivec_vavgsh, altivec_vavgsw): Replace
2924         with ...
2925         (altivec_vavgs<VI_char>): ... this.
2926         (altivec_vmsumubm, altivec_vmsumuhm): Replace with ...
2927         (altivec_vmsumu<VI_char>m): ... this.
2928         (altivec_vmsummbm, altivec_vmsummhm): Replace
2929         with ...
2930         (altivec_vmsumm<VI_char>m): ... this.
2931         (altivec_vandc): Remove.
2932         (*andc<mode>3): Renamed to ...
2933         (andc<mode>3): ... here. Swap operand 1 and 2 numbering.
2934         (altivec_vrlb, altivec_vrlh, altivec_vrlw): Replace
2935         with ...
2936         (altivec_vrl<VI_char>): ... this.
2937         (altivec_vslb, altivec_vslh, altivec_vslw): Replace
2938         with ...
2939         (altivec_vsl<VI_char>): ... this.
2940         (altivec_vsrb, altivec_vsrh, altivec_vsrw): Replace
2941         with ...
2942         (altivec_vsr<VI_char>): ... this.
2943         (altivec_vsrab, altivec_vsrah, altivec_vsraw): Replace
2944         with ...
2945         (altivec_vsra<VI_char>): ... this.
2946         (altivec_vsum4sbs, altivec_vsum4shs): Replace with ...
2947         (altivec_vsum4s<VI_char>s): ... this.
2948         (altivec_vperm_4si, altivec_vperm_8hi, altivec_vperm_16qi): Replace
2949         with ...
2950         (altivec_vperm_<mode>): ... this.
2951         (altivec_vsel_4sf): Rename to ...
2952         (altivec_vsel_v4sf): ... here.
2953         (altivec_vsel_4si, altivec_vsel_8hi, altivec_vsel_16qi): Replace
2954         with ...
2955         (altivec_vsel_<mode>): ... this.
2956         (altivec_vsldoi_4si, altivec_vsldoi_8hi,
2957         altivec_vsldoi_16qi): Rename to ...
2958         (altivec_vsldoi_v4si, altivec_vsldoi_v8hi,
2959         altivec_vsldoi_v16qi): ... here.
2960         (altivec_vsldoi_4sf): Rename to ...
2961         (altivec_vsldoi_v4sf): ... here.
2962         (altivec_predicate_v4si, altivec_predicate_v8hi,
2963         altivec_predicate_v16qi): Replace with ...
2964         (altivec_predicate_<mode>): ... this.
2965         (altivec_lvebx, altivec_lvehx, altivec_lvewx): Replace
2966         with ...
2967         (altivec_lve<VI_char>x): ... this.
2968         (altivec_stvebx, altivec_stvehx, altivec_stvewx): Replace
2969         with ...
2970         (altivec_stve<VI_char>x): ... this.
2971         (absv16qi2, absv8hi2, absv4si2): Replace
2972         with ...
2973         (abs<mode>2): ... this.
2974         (altivec_abss_v16qi, altivec_abss_v8hi, altivec_abss_v4si): Replace
2975         with ...
2976         (altivec_abss_<mode>): ... this.
2977         (vec_realign_load_v16qi, vec_realign_load_v8hi,
2978         vec_realign_load_v4si): Replace with ...
2979         (vec_realign_load_<mode>): ... this.
2980         * config/rs6000/rs6000.c (bdesc_3arg, bdesc_2arg): Update tweaked
2981         insn names.
2982         (rs6000_expand_ternop_builtin): Likewise.
2983
2984 2004-11-25  Andrew Haley  <aph@redhat.com>
2985
2986         * gcc.c (process_command): Don't supply -v to linker.
2987
2988 2004-11-25  Joseph S. Myers  <joseph@codesourcery.com>
2989
2990         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Use %qs
2991         instead of `%s' in diagnostic.
2992
2993 2004-11-25  Nathan Sidwell  <nathan@codesourcery.com>
2994
2995         * basic-block.h (OBSTACK_ALLOC_REG_SET): Adjust.
2996         (FREE_REG_SET): Adjust.
2997         * bitmap.c (bitmap_obstack_free): Cope with NULL bitmap.
2998         * bitmap.h (BITMAP_OBSTACK_ALLOC): Rename to ...
2999         (BITMAP_ALLOC): ... here.
3000         (BITMAP_OBSTACK_FREE): Rename to ...
3001         (BITMAP_FREE): Don't check for NULL bitmap here.
3002         * tree-ssa-pre.c (value_insert_into_set_bitmap,
3003         bitmap_set_new): Use new names.
3004
3005         * bt-load.c (migrate_btr_defs): Remove unneeded NULL check.
3006         * df.c (df_free): Likewise.
3007         * ra-build.c (ra_build_free, ra_build_free_all): Likewise.
3008         * tree-ssa-loop-ivopts.c (set_use_iv_cost): Likewise.
3009
3010         * basic-block.h (OBSTACK_ALLOC_REG_SET): Rename to ...
3011         (ALLOC_REG_SET): ... here.
3012         (FREE_REG_SET): Adjust.
3013         (XMALLOC_REG_SET, XFREE_REG_SET): Remove.
3014         * bb-reorder.c (fix_crossing_conditional_branches): Adjust.
3015         * cfglayout.c (cfg_layout_duplicate_bb): Adjust.
3016         * cfgrtl.c (rtl_split_block, rtl_split_edge,
3017         safe_insert_insn_on_edge, cfg_layout_split_edge): Adjust.
3018         * flow.c (update_life_info, calculate_global_regs_live,
3019         allocate_bb_life_data, init_propagate_block_info): Adjust.
3020         * global.c (build_insn_chain): Adjust.
3021         * ifcvt.c (dead_or_predicable): Adjust.
3022         * loop-iv.c (simplify_using_initial_values): Adjust.
3023         * recog.c (peephole2_optimize): Adjust.
3024         * sched-deps.c (init_deps_global): Adjust.
3025
3026 2004-11-25  Ralf Corsepius <ralf.corsepius@rtems.org>
3027
3028         * config.gcc (avr-*-rtems*): Fix typo.
3029
3030 2004-11-25  J"orn Rennecke <joern.rennecke@st.com>
3031
3032         * sh.c (sh_output_mi_thunk): Do not call regset_release_memory.
3033
3034 2004-11-24  Jeff Law  <law@redhat.com>
3035
3036         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Reduce
3037         the number of queries to random elements in the ai->written_vars
3038         bitmap.
3039
3040 2004-11-24  Roger Sayle  <roger@eyesopen.com>
3041
3042         * config/i386/i386.c (override_options): Disable x87 fancy math
3043         intrinsics if -mfpmath= doesn't include 387 (default on x86_64).
3044
3045 2004-11-24  Roger Sayle  <roger@eyesopen.com>
3046
3047         * configure.ac: Tweak test for HAVE_DECL_LDGETNAME to avoid a
3048         system header conflict on AIX 5.2.
3049         * configure: Regenerate.
3050
3051 2004-11-24  Kazu Hirata  <kazu@cs.umass.edu>
3052
3053         * tree-outof-ssa.c (coalesce_abnormal_edges): Use e->dest_idx
3054         instead of calling phi_arg_from_edge.
3055
3056         * tree-phinodes.c (remove_phi_args): Replace phi_arg_from_edge
3057         with e->dest_idx.
3058
3059 2004-11-24  Ben Elliston  <bje@au.ibm.com>
3060
3061         * config/i386/i386.h (ASM_OUTPUT_DWARF_ADDR_CONST): Remove.
3062         * config/i386/i386.c (i386_dwarf_output_addr_const): Likewise.
3063         * config/i386/i386-protos.h (i386_dwarf_output_addr_const):
3064         Likewise.
3065
3066 2004-11-24  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3067
3068         * tree-sra.c (sra_walk_modify_expr): Handle RHS first, then LHS.
3069
3070         * tree-inline.c (copy_body_r): Explicitly copy a constant if the
3071         type will be remapped.
3072
3073 2004-11-24  Steven Bosscher  <stevenb@suse.de>
3074
3075         * c-opts.c (c_common_post_options): Don't clear
3076         flag_inline_functions.
3077         * dojump.c (clear_pending_stack_adjust): Remove check on
3078         flag_inline_functions, it's always true.
3079         * config/alpha/alpha.md (movdi_er_maybe_g): Remove splitter
3080         that can never trigger.
3081         * config/c4x/c4x.h (TARGET_CPU_CPP_BUILTINS): Don't look at
3082         flag_inline_trees, now that flag_inline_functions is never
3083         cleared.
3084         * config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Don't set
3085         flag_inline_functions at optimization levels greater than
3086         or equal to 3.  This is already done by default.
3087
3088 2004-11-24  Kazu Hirata  <kazu@cs.umass.edu>
3089
3090         * tree-outof-ssa.c (eliminate_build): Use g->e->dest_idx
3091         instead to find the PHI argument.  Do not take I as an
3092         argument.
3093         (eliminate_phi): Adjust the call to eliminate_build.  Do not
3094         take I as an argument.
3095         (rewrite_trees): Adjust the call to eliminate_phi.
3096
3097 2004-11-24  Richard Sandiford  <rsandifo@redhat.com>
3098
3099         * optabs.h (force_expand_binop): Declare.
3100         * optabs.c (force_expand_binop): Export.
3101         * stmt.c (shift_return_value): Delete.
3102         (expand_return): Don't call it.
3103         * expr.h (shift_return_value): Declare.
3104         * calls.c (shift_returned_value): Delete in favor of...
3105         (shift_return_value): ...this new function.  Leave the caller to check
3106         for non-BLKmode values passed in the msb of a register.  Take said mode
3107         and a shift direction as argument.  Operate on the hard function value,
3108         not a pseudo.
3109         (expand_call): Adjust accordingly.
3110         * function.c (expand_function_start): If a non-BLKmode return value
3111         is padded at the last significant end of the return register, use the
3112         return value's natural mode for the DECL_RESULT, not the mode of the
3113         padded register.
3114         (expand_function_end): Shift the same sort of return values left by
3115         the appropriate amount.
3116
3117 2004-11-24  Matt Austern  <austern@apple.com>
3118
3119         * recog.c (recog_memoized_1): Remove.
3120         * recog.h (recog_memoized_1): Remove declaration.
3121         (recog_memoized): Change from macro to inline function.
3122
3123 2004-11-24  Devang Patel  <dpatel@apple.com>
3124
3125         PR/18555
3126         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add isysroot.
3127         * config/darwin-c.c (darwin_register_frameworks): Use sysroot.
3128
3129 2004-11-24  Devang Patel  <dpatel@apple.com>
3130
3131         * gcc.c (process_command): Supply -v to linker.
3132
3133 2004-11-24  David Edelsohn  <edelsohn@gnu.org>
3134             Paolo Bonzini  <bonzini@gnu.org>
3135
3136         * config/rs6000/rs6000.c (rs6000_return_in_memory): Allow Altivec
3137         vector modes without ALTIVEC_ABI.  Use GCC vector instead of
3138         synthetic vector.
3139         (rs6000_pass_by_reference): Split conditional into pieces.  Use
3140         GCC vector instead of synthetic vector.
3141
3142 2004-11-24  Aldy Hernandez  <aldyh@redhat.com>
3143
3144         * tree.c (recompute_tree_invarant_for_addr_expr): The address of a
3145         thread-local variable is invariant.
3146
3147 2004-11-24  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3148
3149         * tree-pretty-print.c (dump_generic_node, case POINTER_TYPE):
3150         Handle TYPE_REF_CAN_ALIAS_ALL.
3151         (print_declaration): Print array dimensions like dump_generic_node.
3152
3153         * fold-const.c (operand_equal_p): Remove kludge allowing ARG0 and
3154         ARG1 to be null; instead define OP_SAME and OP_SAME_NULL and use them.
3155
3156 2004-11-24  Nathan Sidwell  <nathan@codesourcery.com>
3157
3158         * bitmap.c (INLINE): Do not define.
3159         (bitmap_elem_to_freelist, bitmap_element_free,
3160         bitmap_element_allocate, bitmap_clear, bitmap_element_zerop,
3161         bitmap_element_link, bitmap_find_bit): Use inline keyword/macro.
3162
3163 2004-11-24  Kazu Hirata  <kazu@cs.umass.edu>
3164
3165         * tree-ssa-dom.c (cprop_into_successor_phis): Remove code to
3166         find the index of a PHI argument.  Use e->dest_idx instead.
3167         Replace hint with index.
3168
3169         * tree-ssa-dom.c (cprop_into_successor_phis): Replace index
3170         with indx.
3171
3172 2004-11-24  Diego Novillo  <dnovillo@redhat.com>
3173
3174         * tree-ssa-alias.c (merge_pointed_to_info): Fix comment
3175         regarding PT_MALLOC.
3176
3177 2004-11-24  Joseph Myers  <joseph@codesourcery.com>
3178
3179         * config/i386/i386.c (optimization_options): Use
3180         SUBTARGET_OPTIMIZATION_OPTIONS.
3181         * config/i386/sol2-10.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define.
3182         (TARGET_SUBTARGET_DEFAULT): Don't include
3183         MASK_OMIT_LEAF_FRAME_POINTER.
3184
3185 2004-11-24  Mark Mitchell  <mark@codesourcery.com>
3186
3187         * config/i386/sol2.h (X86_FILE_START_VERSION_DIRECTIVE):
3188         Define to false.
3189
3190 2004-11-24  Joseph Myers  <joseph@codesourcery.com>
3191
3192         * config/i386/t-sol2-10 (MULTILIB_DIRNAMES, MULTILIB_OSDIRNAMES):
3193         Use amd64 instead of 64.
3194
3195 2004-11-24  Mark Mitchell  <mark@codesourcery.com>
3196             Joseph Myers  <joseph@codesourcery.com>
3197
3198         * crtstuff.c (IN_LIBGCC2): Define it.
3199         (EH_FRAME_SECTION_CONST): Check EH_TABLES_CAN_BE_READ_ONLY
3200         instead of HAVE_LD_RO_RW_SECTION_MIXING.
3201         * defaults.h (EH_TABLES_CAN_BE_READ_ONLY): New macro.
3202         * dwarf2out.c (named_section_eh_frame_section): Check
3203         EH_TABLES_CAN_BE_READ_ONLY.
3204         * except.c (default_exception_section): Likewise.
3205         * config/i386/sol2.h (EH_TABLES_CAN_BE_READ_ONLY): Define.
3206         * doc/tm.texi (EH_TABLES_CAN_BE_READ_ONLY): Document.
3207
3208 2004-11-24  Kazu Hirata  <kazu@cs.umass.edu>
3209
3210         * tree-ssa-pre.c (phi_translate): Use find_edge to find the
3211         index of a PHI argument.
3212
3213         * tree-ssa-loop-manip.c (lv_adjust_loop_header_phi): Use
3214         find_edge to find the index of a PHI argument.
3215
3216 2004-11-24  Steven Bosscher  <stevenb@suse.de>
3217
3218         * expr.c (expand_expr_real_1): Remove cases for EXIT_BLOCK_EXPR
3219         and LABELED_BLOCK_EXPR.
3220         * gimplify.c (gimplify_labeled_block_expr): Remove.
3221         (gimplify_exit_block_expr): Remove.
3222         (gimplify_expr): Don't call them.
3223         * tree-inline.c (copy_body_r): Don't handle EXIT_BLOCK_EXPR
3224         and LABELED_BLOCK_EXPR.
3225         (estimate_num_insns_1): Likewise.
3226         (walk_tree): Likewise.
3227         * tree-pretty-print.c (dump_generic_node): Don't handle
3228         EXIT_BLOCK_EXPR and LABELED_BLOCK_EXPR.
3229         * tree.def (EXIT_BLOCK_EXPR): Moved to java-tree.def.
3230         (LABELED_BLOCK_EXPR): Likewise.
3231         * tree.h (LABELED_BLOCK_LABEL): Moved to java-tree.h.
3232         (LABELED_BLOCK_BODY): Likewise.
3233         (EXIT_BLOCK_LABELED_BLOCK): Likewise.
3234         (EXIT_BLOCK_RETURN): Removed.
3235
3236 2004-11-24  Steven Bosscher  <stevenb@suse.de>
3237
3238         * cfgrtl.c (rtl_delete_block): Fix comment.
3239         * emit-rtl.c (remove_unnecessary_notes): Die if we see BLOCK_BEG
3240         or BLOCK_END insn notes.
3241         * jump.c (squeeze_notes): Likewise.
3242         * haifa-sched.c (reemit_notes): Don't "re-emit" EH_REGION_BEG and
3243         EH_REGION_END notes, we never have them to begin with.
3244         * sched-deps.c (sched_analyze_insn): When updating loop notes,
3245         verify that we have indeed only recorded loop notes.
3246         (sched_analyze): Die if we see EH_REGION_BEG or EH_REGION_END notes.
3247         Only record loop notes.
3248
3249         * cfgexpand.c (tree_expand_cfg): Fix comment.
3250
3251         * passes.c (rest_of_compilation): Don't do a second call to
3252         convert_from_eh_region_ranges from here, it's already called
3253         from cfgexpand.c.
3254         * except.c (resolve_fixup_regions): Remove.
3255         (remove_fixup_regions): Remove.
3256         (convert_from_eh_region_ranges_1): Remove.
3257         (convert_from_eh_region_ranges): Remove the case where EH is
3258         not already lowered at the tree level.  We always lower there.
3259
3260 2004-11-24  Paolo Bonzini  <bonzini@gnu.org>
3261
3262         PR c++/16882
3263         * tree.c (make_vector_type): Move qualifiers to the vector type,
3264         use the inner type's main variant and build a main variant for
3265         the vector type if necessary.
3266         (type_hash_eq): Check a vector type's TYPE_VECTOR_SUBPARTS.
3267
3268 2004-11-24  Eric Botcazou  <ebotcazou@libertysurf.fr>
3269
3270         * target.h (late_rtl_prologue_epilogue): Remove.
3271         * target-def.h (TARGET_LATE_RTL_PROLOGUE_EPILOGUE): Remove.
3272         * system.h: Poison TARGET_LATE_RTL_PROLOGUE_EPILOGUE.
3273         * passes.c (rest_of_handle_prologue_epilogue): Remove and move
3274         remaining bits to...
3275         (rest_of_handle_flow2): ...here.
3276         (rest_of_compilation): Remove call to rest_of_handle_prologue_epilogue.
3277         * doc/tm.texi (TARGET_LATE_RTL_PROLOGUE_EPILOGUE): Remove.
3278
3279 2004-11-23  Mark Mitchell  <mark@codesourcery.com>
3280
3281         * hwint.h (HOST_LONG_LONG_FORMAT): New macro.  Use it throughout.
3282         * config/i386/xm-mingw32.h (HOST_LONG_LONG_FORMAT): Define.
3283         * doc/hostconfig.texi (HOST_LONG_LONG_FORMAT): Document.
3284
3285 2004-11-24  Daniel Jacobowitz  <dan@codesourcery.com>
3286
3287         * config/i386/i386.c (override_options): Move
3288         SUBTARGET_OVERRIDE_OPTIONS before defaulting
3289         flag_omit_frame_pointer.
3290
3291 2004-11-23  Richard Henderson  <rth@redhat.com>
3292
3293         * rtl.h (validate_subreg): Declare.
3294         * emit-rtl.c (validate_subreg): New.
3295         (gen_rtx_SUBREG): Use it.
3296         * simplify-rtx.c (simplify_subreg): Likewise.
3297         (simplify_gen_subreg): Likewise.  Remove duplicate asserts.
3298         * expr.c (emit_move_insn_1): Tidy complex move code.  Use memory
3299         fallback whenever gen_realpart/gen_imagpart would not be able to
3300         create SUBREGs.
3301
3302 2004-11-23  Richard Henderson  <rth@redhat.com>
3303
3304         * expmed.c (extract_bit_field): Use simplify_gen_subreg instead of
3305         hard-coding avoiding calls to gen_rtx_SUBREG.  Split complex return
3306         modes to CONCAT.
3307
3308 2004-11-23  Diego Novillo  <dnovillo@redhat.com>
3309
3310         PR tree-optimization/18618
3311         * tree-into-ssa.c (DEF_VEC_MALLOC_P(basic_block)): Declare.
3312         (insert_phi_nodes_for): Change third argument to VEC(basic_block).
3313         * tree-ssa-dom.c (avail_exprs_stack): Change type to VEC(tree_on_heap).
3314         Update all users.
3315         (stmts_to_rescan): Likewise.
3316         (const_and_copies_stack): Likewise.
3317         (nonzero_vars_stack): Likewise.
3318         (vrp_variables_stack): Likewise.
3319
3320 2004-11-23  Richard Henderson  <rth@redhat.com>
3321
3322         * cse.c (record_jump_cond_subreg): New.
3323         (record_jump_cond): Use it instead of gen_lowpart.
3324
3325 2004-11-23  Daniel Jacobowitz  <dan@codesourcery.com>
3326             Joseph Myers  <joseph@codesourcery.com>
3327
3328         * config/sol2-c.c (solaris_register_pragmas): Use
3329         c_register_pragma_with_expansion.
3330         * config/sol2.h (HANDLE_PRAGMA_PACK_WITH_EXPANSION): Define.
3331         * c-pragma.c (c_register_pragma): Update call to
3332         cpp_register_pragma.
3333         (c_register_pragma_with_expansion): New function.
3334         (init_pragma): Honor HANDLE_PRAGMA_PACK_WITH_EXPANSION.
3335         * c-pragma.h (c_register_pragma_with_expansion): New prototype.
3336         * doc/extend.texi (Solaris Pragmas): Mention macro expansion for
3337         #pragma align.
3338         * doc/tm.texi (c_register_pragma_with_expansion,
3339         HANDLE_PRAGMA_PACK_WITH_EXPANSION): Document.
3340
3341 2004-11-23  Richard Henderson  <rth@redhat.com>
3342
3343         * combine.c (gen_lowpart_for_combine): Factor out mode of x as well
3344         as mode sizes into local temporaries.  Unify failure path.
3345
3346 2004-11-23  Richard Henderson  <rth@redhat.com>
3347
3348         * emit-rtl.c, rtl.h (subreg_hard_regno): Remove.
3349         * caller-save.c (mark_set_regs): Use subreg_regno instead.
3350         * final.c (alter_subreg): Likewise.
3351         * local-alloc.c (reg_is_born): Likewise.
3352
3353 2004-11-23  Richard Henderson  <rth@redhat.com>
3354
3355         * simplify-rtx.c (simplify_subreg): Use subreg_regno_offset directly
3356         instead of using a SUBREG temporary.
3357
3358 2004-11-23  Kazu Hirata  <kazu@cs.umass.edu>
3359
3360         * tree-cfg.c (tree_forwarder_block_p): Speed up by reordering
3361         two checks.
3362
3363 2004-11-23  Zack Weinberg  <zack@codesourcery.com>
3364
3365         * function.h (struct function): Remove calls_longjmp.
3366         (current_function_calls_longjmp): Delete.
3367         * tree.h (ECF_LONGJMP): Delete.
3368         (ECF_SIBCALL, ECF_PURE, ECF_SP_DEPRESSED, ECF_ALWAYS_RETURN)
3369         (ECF_LIBCALL_BLOCK): Everybody slide down one.
3370         (ECF_CONST, ECF_NORETURN, ECF_SIBCALL): Clarify comments.
3371         * builtins.c (expand_builtin_longjmp): Don't set
3372         current_function_calls_longjmp.
3373         * calls.c (special_function_p): Mark longjmp and siglongjmp
3374         with ECF_NORETURN, not ECF_LONGJMP.
3375         (emit_call_1, expand_call, emit_library_call_value_1):
3376         Don't check for ECF_LONGJMP.
3377         * tree-cfg.c (make_exit_edges, is_ctrl_altering_stmt)
3378         (need_fake_edge_p): Likewise.
3379
3380         * config/avr/avr.h, config/ip2k/ip2k.h: Don't define NON_SAVING_SETJMP.
3381         * system.h: Poison NON_SAVING_SETJMP.
3382         * function.c (use_register_for_decl)
3383         * gcse.c (compute_hash_table_work, compute_store_table)
3384         * postreload-gcse.c (record_opr_changes)
3385         * reload.c (find_equiv_reg)
3386         * reload1.c (reload)
3387         * config/i386/i386.c (ix86_can_use_return_insn_p):
3388         Remove code conditional on NON_SAVING_SETJMP.
3389         * doc/tm.texi: Delete documentation of NON_SAVING_SETJMP.
3390
3391         * config/i386/sysv3.h: Delete file.
3392         * config/i386/i386.c (ix86_svr3_asm_out_constructor): Delete.
3393
3394 2004-11-23  Dorit Naishlos  <dorit@il.ibm.com>
3395
3396         * tree-vectorizer.c (vect_analyze_operations): Don't vectorize if
3397         the vectorization factor is greater than the iteration count.
3398         (vect_gen_niters_for_prolog_loop): No need to calculate min if the
3399         iteration count is known.
3400
3401         (vect_build_symbol_bound): Removed. Its functionality moved to
3402         vect_generate_tmps_on_preheader.
3403         (vect_generate_tmps_on_preheader): Moved content of
3404         vect_build_symbol_bound here instead of calling it.  Changed some
3405         variables names.
3406
3407         (vect_build_loop_niters): We don't expect a new_bb to be generated -
3408         use gcc_assert.
3409         (vect_gen_niters_for_prolog_loop): Likewise.
3410         (vect_gen_niters_for_prolog_loo): Likewise.
3411
3412         (slpeel_make_loop_iterate_ntimes): Use buildN instead of build.
3413         (slpeel_add_loop_guard): Likewise.
3414         (slpeel_tree_peel_loop_to_edge): Likewise.
3415         (vect_do_peeling_for_alignment): Likewise.
3416
3417         (vect_get_first_index): Missing space.
3418
3419 2004-11-23  Ulrich Weigand  <uweigand@de.ibm.com>
3420
3421         * config/s390/s390.md ("*iordi3"): Mark commutative.
3422         ("*iorsi3_zarch", "*iorsi3_esa"): Likewise.
3423
3424 2004-11-23  Kazu Hirata  <kazu@cs.umass.edu>
3425
3426         * tree-phinode.c (resize_phi_node): Abort when LEN is strictly
3427         greater than PHI_ARG_CAPACITY.
3428         (reserve_phi_args_for_new_edge): Initialize the new PHI
3429         argument to NULL_TREE.  Increment PHI_NUM_ARGS.
3430         (add_phi_arg): Add a PHI argument to the slot given by
3431         E->dest_idx.
3432         (remove_phi_arg_num): Do not write to PHI_ARG_EDGE.
3433         * tree-flow-inline (phi_arg_from_edge): Return E->dest_idx.
3434         * tree-ssa.c (ssa_redirect_edge): Check for a missing PHI
3435         argument by looking at PHI_ARG_DEF.
3436         (verify_phi_args): Check for a missing PHI argument.  Remove
3437         the check for duplicate PHI arguments.
3438         * tree.h (PHI_ARG_EDGE): Redefine in terms of EDGE_PRED.
3439         (phi_arg_d): Remove e.
3440
3441         * tree-cfg.c (tree_try_redirect_by_replacing_jump): Speed up
3442         by restricting to the case with two outgoing edges.
3443
3444 2004-11-23  Andreas Krebbel  <krebbel1@de.ibm.com>
3445
3446         * config/s390/s390.c (s390_backchain_string): Removed.
3447         (s390_return_addr_rtx, s390_back_chain_rtx, s390_frame_info)
3448         (s390_emit_prologue, s390_va_start, s390_gimplify_va_arg):
3449         Changed users of TARGET_BACKCHAIN, TARGET_NO_BACKCHAIN and
3450         TARGET_KERNEL_BACKCHAIN to reflect the new options.
3451         * config/s390/s390.h (MASK_BACKCHAIN, MASK_PACKED_STACK): New macros.
3452         (TARGET_KERNEL_BACKCHAIN): Removed.
3453         (TARGET_BACKCHAIN): Former triple state option change to a target flag.
3454         (TARGET_PACKED_STACK): New macro.
3455         (TARGET_SWITCHES): New switches added.
3456         (TARGET_OPTIONS): "backchain", "no-backchain" and "kernel-backchain"
3457         removed.
3458         (DYNAMIC_CHAIN_ADDRESS): Use TARGET_PACKED_STACK.
3459         * config/s390/s390.md ("allocate_stack", "restore_stack_block")
3460         ("save_stack_nonlocal", "restore_stack_nonlocal"): Modified to reflect
3461         the change in target switch semantics.
3462         * config/s390/tpf.h (TARGET_DEFAULT_BACKCHAIN): Removed.
3463         (TARGET_DEFAULT): MASK_BACKCHAIN added.
3464         * doc/invoke.texi: Added documentation for the new/changed options.
3465
3466 2004-11-23  Uros Bizjak  <uros@kss-loka.si>
3467
3468         PR rtl-optimization/18614
3469         * simplify-rtx.c (simplify_binary_operation): Do not
3470         simplify inner elements of constant arguments of
3471         VEC_CONCAT insn.
3472
3473 2004-11-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
3474
3475         * gthr-solaris.h (__gthread_recursive_mutex_init_function): Use
3476         0 instead of NULL.
3477
3478 2004-11-23  Kazu Hirata  <kazu@cs.umass.edu>
3479
3480         * tree-phinode.c (make_phi_node): Use a new variable,
3481         capacity, to receive the return value of ideal_phi_node_len.
3482
3483 2004-11-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
3484
3485         * gthr-solaris.h (__gthread_recursive_mutex_t): New type.
3486         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Define to
3487         __gthread_recursive_mutex_init_function.
3488         (__gthread_key_create): Properly cast -1.
3489         (__gthread_recursive_mutex_init_function): New function.
3490         (__gthread_recursive_mutex_lock): Rewrite.
3491         (__gthread_recursive_mutex_trylock): Likewise.
3492         (__gthread_recursive_mutex_unlock): Likewise.
3493
3494 2004-11-23  Ralf Corsepius <ralf.corsepius@rtems.org>
3495
3496         * config/c4x/t-rtems: New.
3497         * config.gcc: Reflect having added c4x/t-rtems.
3498
3499 2004-11-23  Dorit Naishlos <dorit@il.ibm.com>
3500
3501         PR tree-opt/18403
3502         PR tree-opt/18505
3503         * tree-vectorizer.c (vect_create_data_ref_ptr): Use
3504         lang_hooks.types.type_for_size instead of integer_type_node for the
3505         type of ptr_update.
3506
3507 2004-11-23  Ralf Corsepius <ralf.corsepius@rtems.org>
3508
3509         * config.gcc (h8300-*-rtems*): Use h8300/t-rtems.
3510
3511 2004-11-23  Ralf Corsepius <ralf.corsepius@rtems.org>
3512
3513         * config/arm/t-rtems: New.
3514         * config.gcc: Reflect having added arm/t-rtems.
3515
3516 2004-11-23  Kazu Hirata  <kazu@cs.umass.edu>
3517
3518         * tree-cfg.c (tree_execute_on_growing_pred): New.
3519         (tree_cfg_hooks): Add tree_execute_on_growing_pred.
3520         * tree-flow.h: Add a prototype for
3521         reserve_phi_args_for_new_edge.
3522         * tree-phinodes.c (reserve_phi_args_for_new_edge): New.
3523         (add_phi_arg): Don't resize a PHI array.
3524
3525 2004-11-23  Ralf Corsepius <ralf.corsepius@rtems.org>
3526
3527         * config.gcc: Add avr-*-rtems*.
3528         * config/avr/t-rtems: New.
3529         * config/avr/rtems.h: New.
3530
3531 2004-11-22  Daniel Berlin  <dberlin@dberlin.org>
3532
3533         * df.c (dataflow_set_a_op_b): Remove reslt parameter, since it's
3534         always the same as op1.  Use bitmap_ior_into and bitmap_and_into.
3535         Add comment to function.
3536
3537 2004-11-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3538
3539         PR pch/14940
3540         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __hppa__.
3541
3542         PR rtl-optimization/14838
3543         * emit-rtl.c (get_first_nonnote_insn): Don't assume first insn is a
3544         note.
3545         (get_last_nonnote_insn): Don't assume last insn is a note.
3546
3547 2004-11-22  Roger Sayle  <roger@eyesopen.com>
3548
3549         * fold-const.c (nondestructive_fold_binary_to_constant): Rename
3550         to fold_binary_to_constant.
3551         (nondestructive_fold_unary_to_constant): Likewise, rename to
3552         fold_unary_to_constant.
3553         (fold_relational_hi_lo): Update call to fold_binary_to_constant.
3554         * tree.h (nondestructive_fold_binary_to_constant): Update prototype.
3555         (nondestructive_fold_unary_to_constant): Likewise.
3556         * tree-ssa-ccp.c (ccp_fold): Update calls to fold_unary_to_constant
3557         and fold_binary_to_constant.
3558         * tree-ssa-loop-niter.c (EXEC_BINARY, EXEC_UNARY): Delete macros.
3559         (inverse, number_of_iterations_cond): Replace uses of EXEC_BINARY
3560         and EXEC_UNARY with calls to fold_*nary_to_constant.
3561         * tree-ssa-loop-ivopts.c (EXEC_BINARY, EXEC_UNARY): Delete macros.
3562         (idx_find_step): Replace uses of EXEC_BINARY with calls to
3563         fold_binary_to_constant.
3564
3565 2004-11-22  Nick Clifton  <nickc@redhat.com>
3566
3567         * sbitmap.c (sbitmap_union_of_preds): Remove redundant
3568         initialisation of 'e'.
3569
3570 2004-11-22  Roger Sayle  <roger@eyesopen.com>
3571
3572         * config/i386/i386.h (TARGET_USE_FANCY_MATH_387): New macro.
3573         * config/i386/i386.c (override_options):  Set MASK_NO_FANCY_MATH_387
3574         automatically for targets without TARGET_80387.
3575         * config/i386/i386.md (sqrtsf2, sqrtsf2_1, sqrtsf2_i387, sqrtdf2,
3576         sqrtdf2_1, sqrtdf2_i387, *sqrtextendsfdf2, sqrtxf2,
3577         *sqrtextenddfxf2, *sqrtextendsfxf2, fpremxf4, fmodsf3, fmoddf3,
3578         fmodxf3, fprem1xf4, dremsf3, dremdf3, dremxf3, *sindf2, *sinsf2,
3579         *sinextendsfdf2, *sinxf2, *cosdf2, *cossf2, *cosextendsfdf2,
3580         *cosxf2, sincosdf3, sincossf3, *sincosextendsfdf3, sincosxf3,
3581         *tandf3_1, tandf2, *tansf3_1, tansf2, *tanxf3_1, tanxf2,
3582         atan2df3_1, atan2df3, atandf2, atan2sf3_1, atan2sf3, atansf2,
3583         atan2xf3_1, atan2xf3, atanxf2, asindf2, asinsf2, asinxf2,
3584         acosdf2, acossf2, acosxf2, fyl2x_xf3, logsf2, logdf2, logxf2,
3585         log10sf2, log10df2, log10xf2, log2sf2, log2df2, log2xf2,
3586         fyl2xp1_xf3, log1psf2, log1pdf2, log1pxf2, *fxtractxf3, logbsf2,
3587         logbdf2, logbxf2, ilogbsi2, *f2xm1xf2, *fscalexf4, expsf2,
3588         expdf2, expxf2, exp10sf2, exp10df2, exp10xf2, exp2sf2, exp2df2,
3589         exp2xf2, expm1df2, expm1sf2, expm1xf2, frndintxf2, rintdf2,
3590         rintsf2, rintxf2, frndintxf2_floor, floordf2, floorsf2,
3591         floorxf2, frndintxf2_ceil, ceildf2, ceilsf2, ceilxf2,
3592         frndintxf2_trunc, btruncdf2, btruncsf2, btruncxf2,
3593         frndintxf2_mask_pm, nearbyintdf2, nearbyintsf2, nearbyintxf2):
3594         Simplify conditionals using TARGET_USE_FANCY_MATH_387.
3595
3596 2004-11-22  Dale Johannesen  <dalej@apple.com>
3597
3598         * config/darwin.h (JUMP_TABLES_IN_TEXT_SECTION):  Conditionalize
3599         properly and comment.
3600
3601 2004-11-22  James A. Morrison  <phython@gcc.gnu.org
3602
3603         * config/sparc/sparc.c: Include insn-codes.h and langhooks.h.
3604         (sparc_init_builtins): New function.
3605         (sparc_init_vis_builtins): Create builtin functions for VIS
3606         instructions.
3607         (sparc_expand_builtin): Expand builtin functions for VIS instructions.
3608         (TARGET_INIT_BUILTINS): Define to sparc_init_builtins.
3609         (TARGET_EXPAND_BUILTIN): Define to sparc_expand_builtin.
3610         (def_builtin): New macro for creating builtin functions.
3611         (P): New mode macro for pointer types.
3612         (UNSPEC_FPACK16, UNSPEC_FPACK32, UNSPEC_FPACKFIX, UNSPEC_FEXPAND,
3613         UNSPEC_FPMERGE, UNSPEC_MUL16AL, UNSPEC_MUL8UL, UNSPEC_MULDUL,
3614         UNSPEC_ALIGNDATA, UNSPEC_ALIGNADDR, UNSPEC_PDIST): New constants.
3615         (fpack16_vis, fpackfix_vis, fpack32_vis, fexpand_vis, fpmerge_vis,
3616         fmul8x16_vis, fmul8x16au_vis, fmul8x16al_vis, fmul8sux16_vis,
3617         fmul8ulx16_vis, fmuld8sux16_vis, fmuld8ulx16_vis, pdist_vis,
3618         faligndata<V64:mode>_vis, alignaddr<P:mode>_vis): New patterns.
3619
3620 2004-11-22  Devang Patel  <dpatel@apple.com>
3621
3622         * tree-if-conv.c (clean_predicate_lists): Clean all basic blocks.
3623
3624 2004-11-22  Devang Patel  <dpatel@apple.com>
3625
3626         * tree-if-conv.c (if_convertable_phi_p): Rename to ...
3627         (if_convertible_phi_p): ... new name.
3628         (if_convertable_modify_expr_p): Rename to ...
3629         (if_convertible_modify_expr_p): ... new name.
3630         (if_convertable_stmt_p): Rename to ...
3631         (if_convertible_stmt_p): ... new name.
3632         (if_convertable_bb_p): Rename to ...
3633         (if_convertible_bb_p): ... new name.
3634         (if_convertable_loop_p): Rename to ...
3635         (if_convertible_loop_p): ... new name.
3636
3637 2004-11-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
3638
3639         PR target/18444
3640         * configure.ac (threading): Accept 'posix95'.
3641         * configure: Regenerate.
3642         * config.gcc (i[34567]86-*-solaris2*): On Solaris up to 2.6,
3643         include sol26.h and default to posix95 threads if have_pthread_h.
3644         (sparc-*-solaris2*): Likewise.
3645         * gthr.h: Include gthr-posix95.h if _PTHREADS95 is defined.
3646         * gthr-posix95.h: New file.
3647         * config/sol26.h: New file.
3648         * doc/install.texi (--enable-threads): Document 'posix95'.
3649
3650 2004-11-23  Ben Elliston  <bje@au.ibm.com>
3651
3652         * pointer-set.h (pointer_set_contains): Remove.
3653         * pointer-set.c (pointer_set_contains): Likewise.
3654
3655 2004-11-22  Dale Johannesen  <dalej@apple.com>
3656
3657         * calls.c (expand_call): Do not call preserve_temp_slots.
3658
3659 2004-11-22  Kazu Hirata  <kazu@cs.umass.edu>
3660
3661         * tree-flow.h: Remove the prototype for remove_phi_arg.
3662         Add a prototype for remove_phi_args.
3663         * tree-phinodes.c (remove_phi_arg): Remove.
3664         (remove_phi_args): New.
3665         * tree-ssa.c (ssa_remove_edge): Call remove_phi_args instead
3666         of remove_phi_arg.
3667
3668         * cfg.c (unchecked_make_edge): Call execute_on_growing_pred
3669         after making an edge.
3670         (remove_edge): Call execute_on_shrinking_pred before removing
3671         an edge.
3672         (redirect_edge_succ): Call execute_on_growing_pred and
3673         execute_on_shrinking_pred.
3674         * cfghooks.c (execute_on_growing_pred): New.
3675         (execute_on_shrinking_pred): Likewise.
3676         * cfghooks.h (cfg_hooks): Add execute_on_growing_pred and
3677         execute_on_shrinking_pred.
3678         Add prototypes for execute_on_growing_pred and
3679         execute_on_shrinking_pred.
3680         * cfgrtl.c (rtl_cfg_hooks): Add NULL hooks to
3681         execute_on_growing_pred and execute_on_shrinking_pred.
3682         (cfg_layout_rtl_cfg_hook): Likewise.
3683         * tree-cfg.c (tree_cfg_hooks): Likewise.
3684
3685         * tree-cfg.c (tree_execute_on_shrinking_pred): New.
3686         (tree_cfg_hooks): Use it.
3687         * tree-ssa.c (ssa_remove_edge): Don't call remove_phi_args.
3688         (ssa_redirect_edge): Don't call remove_phi_arg_num.
3689
3690         * tree-phinodes.c (remove_phi_arg_num): Make it static.
3691         * tree-flow.h: Remove the corresponding prototype.
3692
3693         * tree-ssa.c (ssa_remove_edge): Remove.
3694         * tree-flow.h: Remove the corresponding prototype.
3695         * tree-cfg.c: Replace ssa_remove_edge with remove_edge.
3696         * basic-block.h: Likewise.
3697         * tree-if-conv.c: Likewise.
3698         * tree-ssa-threadupdate.c: Likewise.
3699
3700 2004-11-23  Ben Elliston  <bje@au.ibm.com>
3701
3702         * doc/cfg.texi (Maintaining the CFG): Use @ftable instead of
3703         @table to list the BSI methods.  Use individual @findex directives
3704         instead of one with a comma-separated list of index entries.
3705
3706 2004-11-22  Zdenek Dvorak  <dvorakz@suse.cz>
3707
3708         PR tree-optimization/18529
3709         * fold-const.c (fold_to_nonsharp_ineq_using_bound): New function.
3710         (simple_operand_p): Use STRIP_NOPS.  Consider SSA names simple.
3711         (fold): Call fold_to_nonsharp_ineq_using_bound.
3712         * tree-ssa-loop-niter.c (simplify_replace_tree): New function.
3713         (number_of_iterations_cond): Fold the expressions before futher
3714         processing.
3715         (tree_simplify_using_condition): Handle case when cond or expr is
3716         an EQ_EXPR specially.
3717
3718 2004-11-22 Daniel Berlin  <dberlin@dberlin.org>
3719
3720         * tree-ssa.c (verify_ssa): SSA_OP_ALL_USES should be
3721         SSA_OP_ALL_USES | SSA_OP_ALL_KILLS for verification purposes.
3722
3723 2004-11-22  David Edelsohn  <edelsohn@gnu.org>
3724             Fariborz Jahanian  <fjahanian@apple.com>
3725
3726         * config/rs6000/rs6000.c (rs6000_return_in_memory): Test
3727         TARGET_ALTIVEC_ABI.
3728         (function_arg_boundary): Align 8 to 16 byte vectors like SPE.
3729         Align 16 byte and larger vectors like Altivec.
3730         (function_arg_advance): Pass any 16 byte vector like Altivec vector.
3731         (function_arg): Same.
3732         (rs6000_pass_by_references): Test TARGET_ALTIVEC_ABI.
3733
3734 2004-11-22  Andrew Pinski  <pinskia@physics.uc.edu>
3735
3736         PR tree-opt/18572
3737         * tree-sra.c (scalarize_init): Unshare the rhs before gimplifying
3738         it.
3739
3740 2004-11-22  Richard Henderson  <rth@redhat.com>
3741
3742         * function.c (assign_parm_setup_block): Revert 11-13 change to
3743         forcably re-mode a (possibly BLKmode) hard register.
3744
3745 2004-11-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
3746
3747         * config/sparc/sparc.c (mem_min_alignment): Check MEM_ALIGN.
3748
3749 2004-11-22  David Edelsohn  <edelsohn@gnu.org>
3750
3751         * config/rs6000/power4.md: Remove delay between dispatch and issue
3752         associated with dispatch group slots 3 and 4.
3753         * config/rs6000/power5.md: Same.
3754
3755 2004-11-21  Jeff Law  <law@redhat.com>
3756
3757         * cfg.c (cached_make_edge): Use find_edge rather than an inlined
3758         variant.
3759         * cfgbuild.c (make_edges): Likewise.
3760         * cfghooks.c (can_duplicate_block_p): Likewise.
3761         * cfgloop.c (loop_latch_edge): Likewise.
3762         * cfgloopmanip.c (force_single_succ_latches): Likewise.
3763         * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
3764         * predict.c (predict_loops, propagate_freq): Likewise.
3765         * tracer.c (tail_duplicate): Likewise.
3766         * tree-cfg.c (disband_implicit_edges): Likewise.
3767         (tree_forwarder_block_p, tree_flow_call_edges_add): Likewise.
3768
3769 2004-11-22  Nick Clifton  <nickc@redhat.com>
3770
3771         * sbitmap.c (sbitmap_union_of_preds): Remove redundant
3772         initialisation of 'e'.
3773
3774 2004-11-22  Kazu Hirata  <kazu@cs.umass.edu>
3775
3776         PR rtl-optimization/18599
3777         * regrename.c (copyprop_hardreg_forward): Speed up by putting
3778         BB_VISITED flags on basic blocks as we process them.
3779
3780 2004-11-22  Nathan Sidwell  <nathan@codesourcery.com>
3781
3782         PR target/18531
3783         * config/rs6000/altivec.md (VI_char): New mode attribute.
3784         (addv16qi3, addv8hi3, addv4ai3): Replace with ...
3785         (add<mode>3): ... this.
3786         (subv16qi3, subv8hi3, subv4ai3): Replace with ...
3787         (sub<mode>3): ... this.
3788         (smaxv16qi3, smaxv8hi3, smaxv4ai3): Replace with ...
3789         (smax<mode>3): ... this.
3790         (sminv16qi3, sminv8hi3, sminv4ai3): Replace with ...
3791         (smin<mode>3): ... this.
3792         (umaxv16qi3, umaxv8hi3, umaxv4ai3): Replace with ...
3793         (umax<mode>3): ... this.
3794         (uminv16qi3, uminv8hi3, uminv4ai3): Replace with ...
3795         (umin<mode>3): ... this.
3796         (andv16qi3, andv8hi3, andv4ai3): Replace with ...
3797         (and<mode>3): ... this.
3798         (iorv16qi3, iorv8hi3, iorv4ai3): Replace with ...
3799         (ior<mode>3): ... this.
3800         (xorv16qi3, xorv8hi3, xorv4ai3): Replace with ...
3801         (xor<mode>3): ... this.
3802         (andv16qi3, andv8hi3, andv4ai3): Replace with ...
3803         (and<mode>3): ... this.
3804         (iorv16qi3, iorv8hi3, iorv4ai3): Replace with ...
3805         (ior<mode>3): ... this.
3806         (altivec_vnor): Replace with ...
3807         (altivec_nor<mode>): ... this.
3808         (one_cmplv16qi2, one_cmplv8hi2, one_complv4ai2): Replace with ...
3809         (one_cmpl<mode>2): ... this.
3810         (altivec_vandc): New expander.
3811         (*andc<mode>3): New insn.
3812         * config/rs6000/rs6000.c (bdesc_2arg): Adjust for new insn names.
3813
3814 2004-11-22  Dorit Naishlos  <dorit@il.ibm.com>
3815
3816         PR tree-opt/18536
3817         * tree-vectorizer.c (make_loop_iterate_ntimes): Use type of niters when
3818         creating iv instead of integer_type.
3819         (vect_build_loop_niters): Remove redundant code.
3820         (vect_transform_loop_bound): Removed (duplicates functionality of
3821         make_loop_iterate_ntimes.
3822         (vect_gen_niters_for_prolog_loop): Add documentation. Call
3823         lang_hooks.types.type_for_size to create a type of the required size.
3824         Use that type instead of integer_type. Remove redundant code.
3825         (vect_update_niters_after_peeling): Use type of niters instead of
3826         integer_type.
3827         (vect_transform_loop): Unify handling of known and unknown loop bound
3828         cases. Call make_loop_iterate_ntimes instead of
3829         vect_transform_loop_bound.
3830
3831 2004-11-22  Andrew Pinski  <pinskia@physics.uc.edu>
3832
3833         PR target/18217
3834         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Move darwin-fallback.c to
3835         (LIB2ADDEH): Here.
3836
3837 2004-11-22  Dorit Naishlos  <dorit@il.ibm.com>
3838
3839         PR tree-opt/18544
3840         * tree-vectorizer.c (vect_analyze_data_refs): Fail if memtag not found.
3841
3842 2004-11-22 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
3843
3844         * config.gcc: Use t-slibgcc-elf to build libgcc_s.so on
3845         m32r*linux.
3846         * config/m32r/t-linux (SHLIB_MAPFILES): Override to use
3847         m32r/libgcc-glibc.ver.
3848         * config/m32r/libgcc-glibc.ver: Add New file.
3849
3850 2004-11-22  Nathan Sidwell  <nathan@codesourcery.com>
3851
3852         * bitmap.h (struct bitmap_obstack): New obstack type.
3853         (struct bitmap_head_def): Replace using_obstack with obstack
3854         pointer.
3855         (bitmap_default_obstack): New.
3856         (bitmap_initialize): Make inline, does not do allocation.
3857         (bitmap_release_memory): Remove.
3858         (bitmap_obstack_initialize, bitmap_obstack_release): Declare.
3859         (bitmap_obstack_alloc, bitmap_malloc_alloc, bitmap_gc_alloc,
3860         bitmap_obstack_free, bitmap_malloc_free): Declare.
3861         (BITMAP_OBSTACK_ALLOC, BITMAP_GGC_ALLOC, BITMAP_XMALLOC): Adjust.
3862         (BITMAP_FREE): Replace with ...
3863         (BITMAP_OBSTACK_FREE): ... this.
3864         (BITMAP_XFREE): Adjust.
3865         (BITMAP_INIT_ONCE): Remove.
3866         * bitmap.c (bitmap_obstack, bitmap_obstack_init, bitmap_free: Remove.
3867         (bitmap_default_obstack): New.
3868         (bitmap_elem_to_freelist): Adjust.
3869         (bitmap_element_allocate): Adjust. Break initialization into ...
3870         (bitmap_obstack_initialize): ... here.
3871         (bitmap_release_memory): Replace with ...
3872         (bitmap_obstack_release): ... this.
3873         (bitmap_obstack_alloc, bitmap_malloc_alloc, bitmap_gc_alloc,
3874         bitmap_obstack_free, bitmap_malloc_free): New.
3875         (bitmap_ior_and_compl, bitmap_ior_and_compl_into): Use
3876         bitmap_initialize.
3877         (bitmap_initialize): Move to bitmap.h.
3878         * gengtype.c (open_base_files): Add obstack.h to ifiles.
3879         * Makefile.in (BASIC_BLOCK_H, REGS_H): Add obstack.h.
3880         * basic-block.h (INIT_REG_SET): Allocate from reg_obstack.
3881         (INITIALIZE_REG_SET): Remove.
3882         (FREE_REG_SET): Use BITMAP_OBSTACK_FREE.
3883         (INIT_ONCE_REG_SET, MAX_REGNO_REG_SET): Remove.
3884         (flow_obstack): Do not declare.
3885         (reg_obstack): Declare.
3886         * regs.h: Include obstack.h.
3887         * tree-optimize.c (tree_rest_of_compilation): Initialize and
3888         release bitmap obstack here.
3889         * bb-reorder.c: #include regs, not basic-block.
3890         (fix_crossing_conditional_branches): Allocate regsets from
3891         reg_obstack.
3892         * bt-load.c: Do not inlude bitmap.h, sbitmap.h, basic-block.h or
3893         obstack.h.
3894         * caller-save.c: Include regs.h earlier.
3895         * cfg.c: Do not include basic-block.h or obstack.h.
3896         (reg_obstack): Define.
3897         * cfganal.c: Include obstack.h
3898         * cfgcleanyp.c: Do not include basic-block.h. Include regs.h
3899         earlier.
3900         * cfglayout.c: Do not include obstack.h.
3901         (flow_obstack): Remove declaration.
3902         (cfg_layout_duplicate_bb): Use reg_obstack.
3903         * cfgloop.c, cfgloopanal.c, cfgloopmanip.c: Include obstack.h.
3904         * cfgrtl.c (rtl_split_block): Use reg_obstack.
3905         (force_nonfallthru_and_redirect, rtl_split_edge): Likewise.
3906         (safe_insert_insn_on_edge): Use OBSTACK_ALLOC_REG_SET, adjust.
3907         (cfg_layout_split_edge): Use reg_obstack.
3908         * cse.c: Include regs.h earlier.
3909         * ddg.c: Do not include basic-block.h.
3910         * dominance.c: Inlude obstack.h.
3911         * flow.c (update_life_info): Use OBSTACK_ALLOC_REG_SET, adjust.
3912         (calculate_global_regs_live): Likewise.
3913         (allocate_bb_life_data): Use reg_obstack.
3914         (init_propagate_block_info): Use OBSTACK_ALLOC_REGSET.
3915         * global.c: Do not include basic-block.h.
3916         (build_insn_chain): Use OBSTACK_ALLOC_REG_SET, adjust.
3917         * graph.c: Include obstack.h.
3918         * haifa-sched.c: Do not include basic-block.h.
3919         * ifcvt.c: Use OBSTACK_ALLOC_REG_SET, adjust.
3920         * local-alloc.c: Do not include basic-block.h.
3921         * loop-init.c, loop-invariant.c: Include obstack.h.
3922         * loop-iv.c: Likewise.
3923         (simplify_using_initial_values): Use OBSTACK_ALLOC_REG_SET,
3924         adjust.
3925         * loop-unroll.c, loop-unswitch.c: Inlude obstack.h.
3926         * modulo-sched.c: Do not include basic-block.h.
3927         * passes.c (rest_of_handle_final): Do not call
3928         regset_release_memory.
3929         * ra-debug.c: Include regs.h earlier. Do not include
3930         basic-block.h.
3931         * recog.c (peephole2_optimize): Use OBSTACK_ALLOC_REG_SET, adjust.
3932         * regclass.c (init_reg_sets): Do not call INIT_ONCE_REG_SET.
3933         (allocate_reg_info): Do not call MAX_REGNO_REG_SET.
3934         (regset_release_memory): Remove.
3935         * resource.c: Do not include basic-block.h.
3936         * rtlanal.c: Do not include basic-block.h.
3937         * sbitmap.c: Include obstack.h.
3938         * sched-deps.c: Do not include basic-block.h.
3939         (reg_pending_sets_head, reg_pending_clobbers_head,
3940         reg_pending_uses_head): Remove.
3941         (init_deps_global): Use OBSTACK_ALLOC_REG_SET.
3942         * sched-ebb.c: Do not include basic-block.h.
3943         * sched-rgn.c: Likewise.
3944         * tree-if-conv.c (get_loop_body_in_if_conv_order): Use
3945         BITMAP_XFREE.
3946         * tree-outof-ssa.c (perform_edge_inserts): Use BITMAP_XFREE.
3947         * tree-sra.c (decide_instantiations): Adjust bitmap
3948         initialization.
3949         * tree-ssa-dce.c: Include obstack.h.
3950         * tree-ssa-pre.c (grand_bitmap_obstack): Make a bitmap_obstack.
3951         (value_insert_into_set_bitmap): Remove useless bitmap_clear.
3952         (bitmap_set_new): Likewise.
3953         (init_pre): Initialize bitmap obstack.
3954         (fini_pre): Release bitmap obstack.
3955         * tree-ssanames.c (ssa_names_to_rewrite): Make static.
3956         (marked_for_rewrite_p): ssa_names_to_rewrite is never NULL.
3957         (mark_for_rewrite, unmark_for_rewrite): Likewise.
3958         (marked_ssa_names): Likewise.
3959         (init_ssanames): Use BITMAP_XMALLOC.
3960         (fini_ssanames): Use BITMAP_XFREE.
3961         * web.c: Include obstack.h
3962
3963 2004-11-22  Nick Clifton  <nickc@redhat.com>
3964
3965         * sbitmap.c (sbitmap_union_of_preds): Set 'e' to the next edge
3966         predecessor in the first for-loop.
3967
3968 2004-11-21  Stan Shebs  <shebs@apple.com>
3969
3970         * config/rs6000/rs6000.c: (rs6000_darwin64_function_arg): Add
3971         UNION_TYPE case.
3972         (function_arg): Move darwin test up, sniff mode first for
3973         efficiency, test for union type.
3974
3975 2004-11-21  Dale Johannesen  <dalej@apple.com>
3976
3977         * config/darwin.h (JUMP_TABLES_IN_TEXT_SECTION):  Define.
3978
3979 2004-11-21  Jeff Law  <law@redhat.com>
3980
3981         * tree-ssa.c (verify_use): Fix comment.
3982         (verify_phi_args): Check that the number of incoming edges matches
3983         the number of PHI arguments.  Check that each PHI argument is
3984         either an SSA_NAME or an invariant.  Coalesce tests for PHIs for
3985         dead or duplicated edges.  Clear e->aux earlier and avoid separate
3986         loop to clear e->aux and test for missed edges.
3987         (verify_ssa): Remove first walk over statements.  Move checking
3988         of PHI args into verify_phi_args.  Move checking of statements
3989         with aliased stores and V_MAY_DEFS into the remaining loop over
3990         the statements.  Register defs by walking through the formal
3991         SSA_NAME table.
3992
3993 2004-11-21  Roger Sayle  <roger@eyesopen.com>
3994
3995         PR middle-end/18520
3996         * dojump.c (compare_from_rtx): Clarify mode argument in function
3997         description.  Correct order of mode/cmp_mode arguments in call to
3998         simplify_relational_operation.  Check "tem" for COMPARISON_P.
3999
4000 2004-11-21  Paolo Bonzini  <bonzini@gnu.org>
4001             David Edelsohn  <edelsohn@gnu.org>
4002
4003         PR target/17836
4004         * config/rs6000/rs6000.c (rs6000_return_in_memory): Return
4005         synthetic vectors in memory.
4006         (function_arg_boundary): Align large synthetic vectors.
4007         (rs6000_pass_by_reference): Pass synthetic vectors in memory.
4008
4009 2004-11-21  Jeff Law  <law@redhat.com>
4010
4011         * cfg.c (update_bb_profile_for_threading): Do not rescale the
4012         successor probabilities if they are not going to change.  Pull
4013         division out of loop if we do need to rescale successor probabilities.
4014
4015         * tree-ssa-threadupdate.c (redirection_data_hash): Use the
4016         index of the destination block for the hash value rather than
4017         hashing a pointer.
4018
4019 2004-11-20  Joseph S. Myers  <joseph@codesourcery.com>
4020
4021         * c-typeck.c (build_array_ref): Don't check for index == 0.  Make
4022         checks for neither argument being an array or pointer (swapping
4023         the arguments if necessary), the array argument being a pointer to
4024         or array of functions and for -Wchar-subscripts warnings upfront.
4025
4026 2004-11-20  Jeff Law  <law@redhat.com>
4027
4028         * regrename.c (copyprop_hardreg_forward): Only search for a
4029         previously processed block if the current block only has one
4030         predecessor.
4031
4032 2004-11-20  Kazu Hirata  <kazu@cs.umass.edu>
4033
4034         * tree-ssa-threadupdate.c, tree-vectorizer.c: Fix comment
4035         typos.
4036         * config/arm/arm.c: Follow spelling conventions.
4037
4038 2004-11-20  Richard Earnshaw  <rearnsha@arm.com>
4039
4040         * arm.c (arm_override_options): Use arm_ld_sched rather than testing
4041         a bit in tune_flags.
4042         (const_double_needs_minipool): Likewise.  Split most of the code out
4043         into ...
4044         (arm_const_double_inline_cost): ... new function here.
4045         * arm-protos.h (arm_const_double_inline_cost): Add prototype.
4046         * arm.h (EXTRA_CONSTRAINT_STR_ARM): Add D[abc] constraints for double-
4047         word constants of length 2, 3 and 4 insns respectively.
4048         (CONSTRAINT_LEN): The 'D' prefix is a 2-letter constraint.
4049         * arm.md (arm_movdi, movdf_soft_insn): Add alternatives for D[abc]
4050         constraints.  Set insn lenghts accordingly.
4051
4052 2004-11-19  Jeff Law  <law@redhat.com>
4053
4054         * tree-ssa-threadupdate.c: Replace REDIRECTION_DATA varray with
4055         a hash table.  Extensive modifications throughout to support
4056         that change.
4057         (struct el): New.
4058         (struct local_info): New.
4059         (struct redirection_data): Add new INCOMING_EDGES and DO_NOT_DUPLICATE
4060         fields.
4061         (redirection_data): Now a hashtable.
4062         (redirection_data_hash, redirection_data_eq): New.
4063         (lookup_redirection_data, create_duplicates): New.
4064         (create_edge_and_update_destionation_phis): New.
4065         (fixup_template_block, redirect_edges): New.
4066         (thread_block): Use hash table traversals instead of loops over
4067         varray entries or incoming edge vectors.
4068
4069 2004-11-19  Kazu Hirata  <kazu@cs.umass.edu>
4070
4071         * basic-block.h (edge_def): Add dest_idx.
4072         * cfg.c (unchecked_make_edge): Initialize dest_idx.
4073         (remove_edge): Simplify the disconnection of an edge from its
4074         destination.
4075         (redirect_edge_succ): Likewise.
4076         * cfghooks.c (verify_flow_info): Check the consistency of
4077         dest_idx for each edge.
4078
4079 2004-11-19  Aldy Hernandez  <aldyh@redhat.com>
4080
4081         * simplify-rtx.c (simplify_ternary_operation): Use
4082         gen_int_mode.
4083
4084 2004-11-19  Kazu Hirata  <kazu@cs.umass.edu>
4085
4086         * tree-cfg.c (reinstall_phi_args): New.
4087         (tree_split_edge): Use it after redirecting an edge.  Don't
4088         modify PHI_ARG_EDGE.
4089
4090 2004-11-19  Andreas Tobler  <a.tobler@schweiz.ch>
4091
4092         * tree-vectorizer.c (slpeel_verify_cfg_after_peeling): Define only
4093         if checking is enabled.
4094
4095 2004-11-19  Joseph S. Myers  <joseph@codesourcery.com>
4096
4097         * c-decl.c (push_scope): Remove "\n" from end of diagnostic for
4098         too many nested scopes.
4099
4100 2004-11-19  Dorit Naishlos  <dorit@il.ibm.com>
4101
4102         PR tree-opt/18181
4103         * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Peeling scheme
4104         changed to suppoer uses-after-loop and to void creating flow paths
4105         that shouldn't exist.
4106         (slpeel_update_phi_nodes_for_guard): Takes additional two arguments.
4107         Modified to fit the new peeling scheme. Avoid quadratic behavior.
4108         (slpeel_add_loop_guard): Takes additional argument.
4109         (slpeel_verify_cfg_after_peeling): New function.
4110         (vect_update_ivs_after_vectorizer): Takes additional argument. Updated
4111         documentation. Use 'exit-bb' instead of creating 'new-bb'.
4112         (rename_variables_in_bb): Don't update phis for BBs out of loop, to fit
4113         the new peeling scheme.
4114         (copy_phi_nodes): Function removed. Its functionality moved to
4115         update_phis_for_duplicate_loop.
4116         (slpeel_update_phis_for_duplicate_loop): Functionality of copy_phi_nodes
4117         moved here. Added documentation. Modified to fit the new peeling scheme.
4118         (slpeel_make_loop_iterate_ntimes): Setting loop->single_exit not not
4119         needed - done in slpeel_tree_peel_loop_to_edge.
4120         (slpeel_tree_duplicate_loop_to_edge_cfg): Debug printouts compacted.
4121         (vect_do_peeling_for_loop_bound): Add documentation. Call
4122         slpeel_verify_cfg_after_peeling. Call vect_update_ivs_after_vectorizer
4123         with additional argument.
4124         (vect_do_peeling_for_alignment): Call slpeel_verify_cfg_after_peeling.
4125
4126         (vect_finish_stmt_generation): Avoid 80 column oveflow.
4127
4128 2004-11-19  Dorit Naishlos  <dorit@il.ibm.com>
4129
4130         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Last two
4131         arguments removed.
4132         (slpeel_tree_peel_loop_to_edge): Call slpeel_make_loop_iterate_ntimes
4133         without last two arguments. Update single_exit of loops.
4134         (vect_update_niters_after_peeling): Removed. Its functionality was
4135         moved to vect_do_peeling_for_alignment.
4136         (vect_do_peeling_for_loop_bound): New name for function previously
4137         called vect_transform_for_unknown_loop_bound.
4138         (vect_transform_loop_bound): Call slpeel_make_loop_iterate_ntimes
4139         instead of code that duplicates the same functionality.
4140         (vect_do_peeling_for_alignment): Functionality of
4141         vect_update_niters_after_peeling moved here.
4142         (vect_transform_loop): Unify call to vect_do_peeling_for_loop_bound -
4143         previously named vect_transform_for_unknown_loop_bound - for both known
4144         and unknown loop bound cases.
4145
4146 2004-11-19  Dorit Naishlos  <dorit@il.ibm.com>
4147
4148         * tree-vectorizer.c (slpeel_can_duplicate_loop_p): New name for function
4149         previously called verify_loop_for_duplication. All conditions compacted
4150         into one compound condition. Removed debug dumps.
4151         (vect_analyze_loop_with_symbolic_num_of_iters): Removed. Some of the
4152         functionality moved to vect_can_advance_ivs_p, and some to
4153         vect_analyze_loop_form.
4154         (vect_can_advance_ivs_p): New function. Contains functionality that was
4155         taken out of vect_analyze_loop_with_symbolic_num_of_iters.
4156         (slpeel_tree_peel_loop_to_edge): Call slpeel_can_duplicate_loop_p.
4157         (vect_analyze_operations): Call vect_can_advance_ivs_p and
4158         slpeel_can_duplicate_loop_p.
4159         (vect_get_loop_niters): Added documentation.
4160         (vect_analyze_loop_form): Check the loop entry always - not only in case
4161         of unknown loop bound. Create preheader and exit bb if necessary. Apply
4162         a check that used to take place in
4163         vect_analyze_loop_with_symbolic_num_of_iters.
4164         (vectorize_loops): Call verify_loop_closed_ssa under ENABLE_CHECKING.
4165         Remove redundant call to rewrite_into_loop_closed_ssa.
4166         (vect_compute_data_refs_alignment): Removed obsolete comment.
4167
4168 2004-11-19  Dorit Naishlos  <dorit@il.ibm.com>
4169
4170         * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): New name for
4171         function previously called tree_duplicate_loop_to_edge.
4172         (slpeel_tree_duplicate_loop_to_edge_cfg): New name for function
4173         previously called tree_duplicate_loop_to_edge_cfg.
4174         (slpeel_update_phis_for_duplicate_loop): Prefix 'slpeel' added to
4175         function name.
4176         (slpeel_update_phi_nodes_for_guard): Likewise.
4177         (slpeel_make_loop_iterate_ntimes): Likewise.
4178         (slpeel_add_loop_guard): Likewise.
4179         (allocate_new_names, free_new_names): Function declaration moved to top
4180         of file.
4181         (rename_use_op, rename_def_op): Likewise.
4182         (rename_variables_in_bb, rename_variables_in_loop): Likewise.
4183         (vect_generate_tmps_on_preheader): Function declaration moved.
4184         (vect_transform_for_unknown_loop_bound): Added missing function
4185         declaration.
4186
4187 2004-11-19  Andrew Pinski  <pinskia@physics.uc.edu>
4188
4189         PR tree-opt/18507
4190         * tree-flow.h (tree_on_heap): Typedef because there is already a VEC(tree).
4191         Define a VEC(tree_on_heap) for head.
4192         (register_new_def): Change second argument to be a VEC(tree_on_heap).
4193         * tree-ssa-dom.c (block_defs_stack): Change to be a VEC(tree_on_heap).
4194         (tree_ssa_dominator_optimize): Initialize block_defs_stack with
4195         the VEC(tree_on_heap) function.  Also free it before returning.
4196         (dom_opt_initialize_block): Use VEC_safe_push instead of VARRAY_PUSH_TREE
4197         for block_defs_stack.
4198         (restore_currdefs_to_original_value): Use VEC_length instead of
4199         VARRAY_ACTIVE_SIZE. VEC_pop instead of VARRAY_TOP_TREE/VARRAY_POP.
4200         (dom_opt_finalize_block): Use VEC_safe_push instead of VARRAY_PUSH_TREE
4201         for block_defs_stack.
4202         * tree-into-ssa.c (block_defs_stack): Change to be a VEC(tree_on_heap).
4203         (rewrite_initialize_block): Use VEC_safe_push instead of VARRAY_PUSH_TREE
4204         for block_defs_stack.
4205         (ssa_register_new_def): Likewise.
4206         (ssa_rewrite_initialize_block): Likewise.
4207         (rewrite_finalize_block): Use VEC_length instead of
4208         VARRAY_ACTIVE_SIZE. VEC_pop instead of VARRAY_TOP_TREE/VARRAY_POP.
4209         (ssa_rewrite_finalize_block): Likewise.
4210         (register_new_def): Change second argument to be a VEC(tree_on_heap).
4211         Use VEC_safe_push instead of VARRAY_PUSH_TREE.
4212         (rewrite_blocks): Initialize block_defs_stack with
4213         the VEC(tree_on_heap) function.  Also free it before returning.
4214         (rewrite_ssa_into_ssa): Likewise.
4215
4216 2004-11-19  Fariborz Jahanian <fjahanian@apple.com>
4217
4218         * config/darwin.c (machopic_data_defined_p): return 1 for
4219         MACHOPIC_DEFINED_FUNCTION.
4220
4221 2004-11-19  Jeff Law  <law@redhat.com>
4222
4223         * tree-ssa.c (verify_ssa): Remove redundant checking of PHI
4224         arguments.
4225
4226 2004-11-19  Paul Brook  <paul@codesourcery.com>
4227
4228         PR target/17735
4229         * varasm.c (default_assemble_integer): Allow pointer-sized values.
4230         Expand comment.
4231
4232 2004-11-19  Nick Clifton  <nickc@redhat.com>
4233
4234         * config/stormy16/stormy16.c (combine_bnp): Add code to handle
4235         zero_extension and lshiftrt insns.
4236         Replace uses of XEXP(...) with either SET_DEST() or SET_SRC()
4237         where appropriate.
4238         * config/stormy16.stormy16.md (bclrx3, bsetx3): New patterns
4239         to handle bp and bn insn patterns with a zero_extend rtx
4240         inside them.
4241
4242 2004-11-19  Ian Lance Taylor  <ian@wasabisystems.com>
4243
4244         * config/arm/arm.md (generic_sched): Make const.
4245
4246 2004-11-19  Kazu Hirata  <kazu@cs.umass.edu>
4247
4248         * emit-rtl.c (classify_insn): Make it static.
4249         * rtl.h: Remove the corresponding prototype.
4250
4251         * integrate.c (has_func_hard_reg_initial_val,
4252         get_func_hard_reg_initial_val): Make them static.
4253         * integrate.h: Remove the corresponding prototypes.
4254
4255 2004-11-19  Ben Elliston  <bje@au.ibm.com>
4256
4257         * dwarf2asm.h (dw2_asm_output_pcel): Stub out with #if 0.
4258         (dw2_asm_output_delta_sleb128): Likewise.
4259         * dwarf2asm.c (dw2_asm_output_pcrel): Likewise.
4260         (dw2_asm_output_delta_sleb128): Likewise.
4261
4262 2004-11-19  Adam Nemet  <anemet@lnxw.com>
4263
4264         * tree-ssa-alias.c: Fix comment.
4265
4266 2004-11-19  Kazu Hirata  <kazu@cs.umass.edu>
4267
4268         * tree-outof-ssa.c: Fix a comment typo.
4269
4270 2004-11-19  Ben Elliston  <bje@au.ibm.com>
4271
4272         * predict.h (predict_insn): Remove extern declaration.
4273         * predict.c (predict_insn): Make static.
4274
4275 2004-11-19  Alan Modra  <amodra@bigpond.net.au>
4276
4277         * config/rs6000/rs6000.c (function_arg): Don't return BLKmode regs.
4278
4279 2004-11-18  Nicolas Pitre <nico@cam.org>
4280
4281         * config/arm/arm.c (const_double_needs_minipool): New function to
4282         determine if a CONST_DOUBLE should be pushed to the minipool.
4283         (note_invalid_constants): Use it.
4284
4285 2004-11-18  Paul Brook  <paul@codesourcery.com>
4286
4287         * config/arm/arm.c (target_float_switch): New variable..
4288         (arm_override_options): Use TARGET_DEFAULT_FLOAT_ABI and
4289         target_float_switch.
4290         * config/arm/arm.h (target_float_switch): Declare.
4291         (ARM_FLAG_SOFT_FLOAT): Remove.
4292         (TARGET_SWITCHES): Remove hard-float and soft-float.
4293         (TARGET_OPTIONS): Add hard-float and soft-float.
4294         (TARGET_DEFAULT_FLOAT_ABI): Define.
4295         * config/arm/coff.h (TARGET_DEFAULT_FLOAT_ABI): Define
4296         (TARGET_DEFAULT): Don't use ARM_FLAG_SOFT_FLOAT.
4297         * config/arm/elf.h: Don't use ARM_FLAG_SOFT_FLOAT.
4298         * config/arm/netbsd-elf.h: Ditto.
4299         * config/arm/netbsd.h: Ditto.
4300         * config/arm/pe.h: Ditto.
4301         * config/arm/unknown-elf.h: Ditto.
4302         * config/arm/wince-pe.h: Ditto.
4303         * config/arm/linux-elf.h (TARGET_DEFAULT_FLOAT_ABI): Define.
4304         * config/arm/semi.h (TARGET_DEFAULT_FLOAT_ABI): Define.
4305         * config/arm/semiaof.h (TARGET_DEFAULT_FLOAT_ABI): Define.
4306
4307 2004-11-18  Nathan Sidwell  <nathan@codesourcery.com>
4308
4309         * config/rs6000/altivec.md (VI, VF, V): New mode macros.
4310         (altivec_lvx_4si, altivec_lvx_8hi, altivec_lvx_16qi,
4311         altivec_lvx_4sf): Rename and replace with ...
4312         (altivec_lvx_<mode>): ... mode macro version.
4313         (altivec_stvx_4si, altivec_stvx_8hi, altivec_stvx_16qi,
4314         altivec_stvx_4sf): Rename and replace with ...
4315         (altivec_stvx_<mode>): ... mode macro version.
4316         (movv4si, movv8hi, movv16qi, movv4sf}): Replace with ...
4317         (mov<mode>): ... mode macro version.
4318         (*movv4si_internal, *movv8hi_internal1, *movv16qi_internal1,
4319         *movv4sf_internal1): Replace with ...
4320         (*mov<mode>_internal): ... mode macro version.
4321         (get_vrsave_internal, *set_vrsave_internal, *save_world,
4322         *restore_world): Unquote output statements.
4323         * config/rs6000/rs6000.c (altivec_expand_ld_builtin,
4324         altivec_expand_st_builtin): Adjust insn names.
4325
4326 2004-11-18  Aldy Hernandez  <aldyh@redhat.com>
4327
4328         * config/rs6000/rs6000.c (rs6000_complex_function_value): Revert
4329         previous change.
4330         (rs6000_override_options): Likewise.
4331         (spe_build_register_parallel): Handle complex doubles on e500v2.
4332         (rs6000_spe_function_arg): Likewise.
4333         (function_arg): Likewise.
4334         (rs6000_function_value): Likewise.
4335         (rs6000_libcall_value): Likewise.
4336
4337 2004-11-18  Andrew Pinski  <pinskia@physics.uc.edu>
4338
4339         * ifcvt.c (find_if_block): Move the check for the number of edges
4340         above the loops checking for complex edges.
4341         Remove the counting of edges as we use EDGE_COUNT now.
4342
4343 2004-11-18  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.comn>
4344
4345         * config/m32r/linux.h (TARGET_ASM_FILE_END): Set
4346         TARGET_ASM_FILE_END to file_end_indicate_exec_stack.3
4347
4348 2004-11-18  Andreas Schwab  <schwab@suse.de>
4349
4350         * config/i386/i386.md (define_peephole2): Revert last change.
4351
4352 2004-11-18  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.comn>
4353
4354         * config/m32r/linux.h (TARGET_ASM_FILE_END): Set
4355         TARGET_ASM_FILE_END to file_end_indicate_exec_stack.
4356
4357 2004-11-18  Diego Novillo  <dnovillo@redhat.com>
4358
4359         * tree-ssa-propagate.c (ssa_prop_init): Use FOR_ALL_BB instead
4360         of FOR_EACH_BB.
4361
4362 2004-11-18  Jon Grimm <jgrimm2@us.ibm.com>
4363
4364         * Makefile.in (macro_list): Depend on s-macro_list.
4365         (s-macro_list): New target.
4366
4367 2004-11-18  Nathan Sidwell  <nathan@codesourcery.com>
4368
4369         PR target/17107
4370         * fold-const.c (RANGE_TEST_NON_SHORT_CIRCUIT): Rename to ...
4371         (LOGICAL_OP_NON_SHORT_CIRCUIT): ... here.
4372         (fold_range_test): Adjust.
4373         (fold_truthop): Use it.
4374         * config/rs6000/rs6000.h (RANGE_TEST_NON_SHORT_CIRCUIT): Rename to ...
4375         (LOGICAL_OP_NON_SHORT_CIRCUIT): ... here.
4376
4377 2004-11-18  Uros Bizjak  <uros@kss-loka.si>
4378
4379         * configure/i386/i386.md (*fix_trunch_1): Add "&& 1" to
4380         insn split constraint.
4381         (define_peephole2): Remove unneeded "&& 1" from peephole2
4382         constraints.
4383
4384 2004-11-18  Ben Elliston  <bje@au.ibm.com>
4385
4386         * doc/cfg.texi (Maintaining the CFG): Remove duplicated @item
4387         element for bsi_prev; use @findex instead.
4388
4389 2004-11-18  Ben Elliston  <bje@au.ibm.com>
4390
4391         * opts.h (add_input_filename): Remove extern declaration.
4392         * opts.c (add_input_filename): Make static.
4393
4394 2004-11-17  Mark Mitchell  <mark@codesourcery.com>
4395
4396         * config/i386/i386.c (i386_solaris_elf_named_section): Mark with
4397         ATTRIBUTE_UNUSED.
4398
4399 2004-11-17  Zack Weinberg  <zack@codesourcery.com>
4400
4401         * defaults.h, config/darwin.h: Don't define TARGET_SUPPORTS_HIDDEN.
4402         * system.h: Poison it.
4403         * doc/tm.texi: Delete its documentation.
4404
4405 2004-11-18  Daniel Jacobowitz  <dan@codesourcery.com>
4406             Mark Mitchell  <mark@codesourcery.com>
4407
4408         * config/i386/sol2-10.h, config/i386/t-sol2-10: New files.
4409         * config/i386/i386.c (i386_solaris_elf_named_section): New
4410         function.
4411         * config.gcc (i[34567]86-*-solaris2*): Handle Solaris 2.10.
4412         * config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Handle
4413         64-bit.
4414         (ASM_QUAD): Don't undefine for biarch targets.
4415         * config/i386/t-sol2: Introduce multilib support.
4416
4417 2004-11-18  Ben Elliston  <bje@au.ibm.com>
4418
4419         * cgraphunit.c: Replace "it's" with "its" and fix a typo.
4420
4421 2004-11-18  Ben Elliston  <bje@au.ibm.com>
4422
4423         * cgraph.h: Replace "it's" with "its" throughout.
4424
4425 2004-11-18  Ben Elliston  <bje@au.ibm.com>
4426
4427         * doc/rtl.texi (Flags): Grammar fix.
4428
4429 2004-11-17  Kazu Hirata  <kazu@cs.umass.edu>
4430
4431         * expmed.c (alg_code): Add alg_unknown.
4432         (alg_hash_entry): New.
4433         (NUM_ALG_HASH_ENTRIES): Likewise.
4434         (alg_hash): Likewise.
4435         (synth_mult): Cache the result into alg_hash.
4436
4437 2004-11-17  Zack Weinberg  <zack@codesourcery.com>
4438
4439         * config/rs6000/t-darwin: Augment SHLIB_MAPFILES with
4440         config/rs6000/libgcc-ppc64.ver.
4441
4442 2004-11-17  Kazu Hirata  <kazu@cs.umass.edu>
4443
4444         * cfgrtl.c (rtl_verify_flow_info): Don't use INSN_P when
4445         checking if an unconditional return is followed by a barrier.
4446
4447         * jump.c (condjump_p): Remove unreachable code.
4448
4449         * basic-block.h, c-common.h, df.h, expr.h, output.h, rtl.h,
4450         tree-chrec.h, tree-flow.h, tree-scalar-evolution.h,
4451         tree-ssa-live.h, tree.h: Remove unused prototypes.
4452
4453 2004-11-17  Jeff Law  <law@redhat.com>
4454
4455         * tree-cfg.c (edge_to_cases): Renamed from edge_to_case_leader.
4456         (edge_to_cases_elt): Renamed from edge_to_case_leader.
4457         (edge_to_cases_hash): Renamed from edge_to_case_leader_hash.
4458         (edge_to_cases_eq): Renamed from edge_to_case_leader_eq.
4459         (edge_to_cases_cleanup, recording_case_labels_p): New functions.
4460         (get_cases_for_edge): New function.
4461         (start_recording_case_labels, end_recording_case_labels): Similarly.
4462         (record_switch_edge): Don't muck with the CASE_LABEL.  Instead
4463         chain equivalent CASE_LABEL_EXPRs together.
4464         (get_case_leader_for_edge, get_case_leader_for_edge_hash): Kill.
4465         (make_switch_expr_edges): Do not record edge/cases here.
4466         (cleanup_tree_cfg): Record cases around the call to thread_jumps.
4467         (split_critical_edges): Record cases around the edge splitting code.
4468         (cleanup_dead_labels): Use CASE_LABEL again.
4469         (tree_redirect_edge_and_branch): If we have a mapping from edge
4470         to cases, use it to handle redirections.  Else do it the slow way.
4471         * tree.h (CASE_LEADER_OR_LABEL): Kill.
4472         (CASE_LABEL): Revert to just looking at the tree's second operand.
4473         * tree.c (get_case_label): Kill.
4474
4475 2004-11-17  Diego Novillo  <dnovillo@redhat.com>
4476
4477         PR tree-optimization/18307
4478         * tree-ssa-alias.c (merge_pointed_to_info): ICE if 'dest' and
4479         'orig' are the same node.
4480         (collect_points_to_info_r): Do not call merge_pointed_to_info
4481         when the PHI argument is identical to the LHS.
4482
4483 2004-11-17  Steven Bosscher  <stevenb@suse.de>
4484
4485         * tree-ssa-propagate.c (cfg_blocks_add): Assert we're not trying
4486         to insert the exit or entry block.
4487         (ssa_prop_init): Use add_control_edge to seed the algorithm.
4488
4489 2004-11-16  Zack Weinberg  <zack@codesourcery.com>
4490
4491         * mkmap-flat.awk, mkmap-symver.awk: If the last version
4492         assigned to a symbol was '%exclude', do not emit it anywhere.
4493         If leading_underscore is true, prefix all symbols from the
4494         version scripts with a leading underscore before comparing
4495         them with nm output or emitting them.  Remove support for dot
4496         symbols.
4497         * config/t-slibgcc-darwin (SHLIB_LINK): Use mkmap-flat.awk.
4498         (SHLIB_MAPFILES): Use libgcc-std.ver.
4499         (SHLIB_MKMAP_OPTS): Enable leading-underscore mode.
4500         (SHLIB_LINK): Add -Wl,-exported_symbols_list,$(SHLIB_MAP).
4501         * config/sh/t-linux: Use the normal libgcc-std.ver, plus
4502         libgcc-excl.ver and libgcc-glibc.ver.
4503
4504         * config/sh/libgcc-excl.ver: New file.
4505         * config/sh/libgcc-std.ver, libgcc-darwin.ver: Delete.
4506
4507 2004-11-16  Daniel Berlin  <dberlin@dberlin.org>
4508
4509         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Swap
4510         the test when the edge has the opposite meaning, not when
4511         the first argument is invariant.
4512
4513 2004-11-16  Aldy Hernandez  <aldyh@redhat.com>
4514
4515         * config/rs6000/rs6000.c (rs6000_override_options): Split e500v2
4516         doubles.
4517         (rs6000_complex_function_value): Handle e500 v2 variant.
4518
4519 2004-11-16  Daniel Berlin  <dberlin@dberlin.org>
4520
4521         Fix PR tree-optimization/18519
4522
4523         * tree-optimize (execute_todo): Add case for TODO_cleanup_cfg.
4524         * tree-pass.h: Add TODO_cleanup_cfg.
4525         * tree-ssa-ccp.c (pass_ccp): Use TODO_cleanup_cfg.
4526         (ccp_finalize): Remove call to cleanup_cfg.
4527         * tree-ssa-dce.c (pass_dce): Use TODO_cleanup_cfg and TODO_dump_func.
4528         (pass_cd_dce): Ditto.
4529         (perform_tree_ssa_dce): Remove call to cleanup_cfg,
4530         dump_function_to_file.
4531         * tree-ssa-loop-ch.c (copy_loop_headers): Remove call
4532         to cleanup_cfg.
4533         (pass_ch): Add TODO_cleanup_cfg.
4534         * tree-ssa-loop.c (tree_ssa_loop_done): Remove call to
4535         cleanup_cfg.
4536         (pass_loop_done): Add TODO_cleanup_cfg.
4537         * tree-ssa-phiopt.c (pass_phiopt): Ditto.
4538         (tree_ssa_phiopt): Remove call to cleanup_cfg.
4539
4540 2004-11-16  Devang Patel  <dpatel@apple.com>
4541
4542         * optabs.c (vector_compare_rtx): Fix COMPARISON_CLASS_P use.
4543
4544 2004-11-16  Kazu Hirata  <kazu@cs.umass.edu>
4545
4546         * expmed.c, ra-colorize.c: Fix comment typos.
4547
4548         * doc/tm.texi: Fix typos.
4549
4550 2004-11-16  Daniel Jacobowitz  <dan@codesourcery.com>
4551             Mark Mitchell  <mark@codesourcery.com>
4552
4553         PR target/6123
4554         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define __PIC__ and
4555         __pic__ if PIC.
4556
4557 2004-11-16  Ulrich Weigand  <uweigand@de.ibm.com>
4558
4559         * regmove.c (regmove_optimize): Use lowpart_subreg instead of
4560         gen_rtx_SUBREG with incorrect offset to compute SRC_SUBREG.
4561
4562 2004-11-16  Devang Patel  <dpatel@apple.com>
4563
4564         * tree-if-conv.c (clean_predicate_lists): Update gcc_assert check.
4565
4566 2004-11-16  Eric Christopher  <echristo@redhat.com>
4567
4568         * config/mips/mips.c: Use rtl _P predicates.
4569         * config/mips/mips.h: Ditto.
4570         * config/mips/mips.md: Ditto.
4571
4572 2004-11-16  Fariborz Jahanian <fjahanian@apple.com>
4573
4574         * config/rs6000/altivec.md (altivec_vandc): Canonicalize
4575         the pattern.
4576
4577 2004-11-16  Andreas Krebbel  <krebbel1@de.ibm.com>
4578
4579         * config/s390/s390.c (s390_cc_modes_compatible): New function.
4580         (TARGET_CC_MODES_COMPATIBLE): Target macro defined.
4581
4582 2004-11-16  Kaz Kojima  <kkojima@gcc.gnu.org>
4583
4584         PR target/18447
4585         * config/sh/sh.c (prepare_move_operands): Emit blockage insns
4586         before and after the insns for getting GOT address in non-PIC
4587         TLS_MODEL_INITIAL_EXEC tls sequence when the first scheduling
4588         is enabled.
4589
4590 2004-11-16  Andreas Krebbel  <krebbel1@de.ibm.com>
4591
4592         * gcc/cse.c (struct change_cc_mode_args): New structure.
4593         (cse_change_cc_mode_insn): New function.
4594         (cse_change_cc_mode): Use validate_change to perfom changes.
4595         (cse_change_cc_mode_insns, cse_condition_code_reg):
4596         Call cse_change_cc_mode_insn.
4597
4598 2004-11-16  Steven Bosscher  <stevenb@suse.de>
4599
4600         * stack.h: Remove.
4601
4602 2004-11-16  Steven Bosscher  <stevenb@suse.de>
4603
4604         * config/i386/i386.c (x86_schedule): Fix typo, m_K6 intead of m_K8.
4605
4606 2004-11-15  Dale Johannesen  <dalej@apple.com>
4607
4608         * tree-flow.h (add_referenced_temp_var):  Remove name from prototype.
4609
4610 2004-11-15  Dale Johannesen  <dalej@apple.com>
4611
4612         * profile.c (compute_branch_probabilities):  Prevent
4613         crash with EH in RTL-based profiling.
4614
4615 2004-11-16  Kazu Hirata  <kazu@cs.umass.edu>
4616
4617         * tree-cfg.c (verify_expr): Replace TREE_OPERAND with
4618         COND_EXPR_COND.
4619         * tree-if-conv.c (tree_if_convert_cond_expr): Likewise.
4620         * tree-ssa-dom.c (thread_across_edge): Likewise.
4621         * tree-vectorizer.c (vect_transform_loop_bound): Replace
4622         TREE_OPERAND with COND_EXPR_COND, COND_EXPR_THEN, or
4623         COND_EXPR_ELSE.
4624
4625         * tree-cfg.c (bsi_commit_edge_inserts): Remove an argument.
4626         (tree_flow_call_edges_add): Update the call to
4627         bsi_commit_edge_inserts.
4628         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Likewise.
4629         * profile.c (branch_prob): Likewise.
4630         * tree-mudflap.c (mf_decl_cache_locals): Likewise.
4631         * tree-sra.c (scalarize_function): Likewise.
4632         * tree-ssa-loop-im.c (loop_commit_inserts): Likewise.
4633         * tree-ssa-pre.c (fini_pre): Likewise.
4634         * tree-flow.h: Update the prototype for
4635         bsi_commit_edge_inserts.
4636
4637 2004-11-15  Eric Christopher  <echristo@redhat.com>
4638
4639         * sched-deps.c (set_sched_group_p): Delete.
4640         (delete_all_dependencies): New function.
4641         (fixup_sched_groups): Use. New function.
4642         (sched_analyze_insn): Use.
4643
4644 2004-11-15  Joseph S. Myers  <joseph@codesourcery.com>
4645
4646         * c-common.c (binary_op_error): Don't allow LROTATE_EXPR,
4647         RROTATE_EXPR or unknown code.
4648         * c-typeck.c (build_binary_op): Don't allow RROTATE_EXPR,
4649         LROTATE_EXPR, MAX_EXPR, MIN_EXPR, UNORDERED_EXPR, ORDERED_EXPR,
4650         UNLT_EXPR, UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR, LTGT_EXPR
4651         or unknown code.
4652
4653 2004-11-15  Joseph S. Myers  <joseph@codesourcery.com>
4654
4655         PR c/18498
4656         * c-decl.c (grokdeclarator): Call check_bitfield_type_and_width
4657         after processing the declarator.
4658
4659 2004-11-15  Aldy Hernandez  <aldyh@redhat.com>
4660
4661         * config/rs6000/altivec.md ("altivec_vsplth"): Rewrite with
4662         vec_duplicate.
4663         (altivec_vspltb): Same.
4664         (altivec_vspltw): Same.
4665         (altivec_vspltisb): Same.
4666         (altivec_vspltish): Same.
4667         (altivec_vspltisw): Same.
4668         (altivec_vspltisw_v4sf): Same.
4669         (define_constants): Remove UNSPEC_VSPLTISB, UNSPEC_VSPLTISW,
4670         UNSPEC_VSPLTISH.
4671         Move "End of vector xor's" comment to the right place.
4672
4673 2004-11-15  Steve Ellcey  <sje@cup.hp.com>
4674
4675         * config/ia64/ia64.md (*movtf_internal):  Use destination_operand
4676         instead of nonimmediate_operand.
4677
4678 2004-11-15  Mark Mitchell <mark@codesourcery.com>
4679
4680         * config/i386/sol2.h (ASM_OUTPUT_CALL): Use print_operand.
4681         * config/sparc/sol2.h (ASM_OUTPUT_CALL): Likewise.
4682         * config/sol2.c (solaris_output_init_fini): Update calls to
4683         ASM_OUTPUT_CALL.  Include "rtl.h".
4684
4685 2004-11-15  Mark Mitchell <mark@codesourcery.com>
4686
4687         * config/sol2-c.c (cmn_err_char_table): Add "p".
4688
4689 2004-11-15  Mark Mitchell <mark@codesourcery.com>
4690
4691         * config/sparc/sol2.h (SUPPORTS_INIT_PRIORITY): Remove.
4692         * config/sol2.h (SUPPORTS_INIT_PRIORITY): Define here.
4693
4694 2004-11-15  Mark Mitchell <mark@codesourcery.com>
4695
4696         * config/t-slibgcc-sld (SHLIB_LINK): Make symlinks entirely
4697         within the multilib directory.
4698
4699 2004-11-15  Nick Clifton  <nickc@redhat.com>
4700
4701         * config/stormy16/stormy16.h (TARGET_CPU_CPP_BUILTINS): Add
4702         builtin assert of cpu=xstormy16.
4703
4704 2004-11-15  Nathan Sidwell  <nathan@codesourcery.com>
4705
4706         * tree-ssa-pre.c (bitmap_print_value_set): Fix uninitialized
4707         variable.
4708
4709 2004-11-14  Richard Henderson  <rth@redhat.com>
4710
4711         PR 18480
4712         * calls.c (struct arg_data): Add parallel_value.
4713         (precompute_register_parameters): Set it.
4714         (load_register_parameters): Use it.
4715         (store_one_arg): Also set it here.
4716
4717 2004-11-14  Zdenek Dvorak  <dvorakz@suse.cz>
4718
4719         PR tree-optimization/18431
4720         * fold-const.c (associate_trees): Do not produce x + 0.
4721         (fold_widened_comparison, fold_sign_changed_comparison): New functions.
4722         (fold): Use them.
4723         * tree-ssa-loop-niter.c (upper_bound_in_type, lower_bound_in_type):
4724         Moved ...
4725         * tree.c (upper_bound_in_type, lower_bound_in_type): Here.
4726         * tree.h (upper_bound_in_type, lower_bound_in_type): Declare.
4727
4728 2004-11-14  Eric Botcazou <ebotcazou@libertysurf.fr>
4729
4730         * doc/rtl.texi (SUBREG): Adjust BYTENUM value in example.
4731
4732 2004-11-14  Kazu Hirata  <kazu@cs.umass.edu>
4733
4734         * cfgrtl.c, global.c, tree-ssa-copy.c, tree-ssa-loop-ivopts.c,
4735         value-prof.c: Fix comment typos.
4736
4737 2004-11-14  Stan Shebs  <shebs@apple.com>
4738
4739         Basic ABI changes for passing structs by value in 64-bit Darwin.
4740         * config/rs6000/rs6000.c (rs6000_darwin64_abi): New flag.
4741         (rs6000_override_options): Set it for 64-bit Darwin.
4742         (rs6000_parse_abi_options): Add testing options to change it.
4743         (rs6000_return_in_memory): Test whether the type is one
4744         that can be passed in registers.
4745         (darwin64_function_arg_advance): New.
4746         (function_arg_advance): Call it, plus add recursion depth
4747         argument and test when counting off arguments.
4748         (rs6000_darwin64_function_arg): New.
4749         (function_arg): Call it.
4750         (setup_incoming_varargs): Add argument to function_arg_advance.
4751         (rs6000_darwin64_function_value): New.
4752         (rs6000_function_value): Call it.
4753         * config/rs6000/rs6000.h (FUNCTION_ARG_ADVANCE): Pass depth arg.
4754         * config/rs6000/rs6000-protos.h: Update decl of
4755         function_arg_advance.
4756
4757 2004-11-14  Andrew Pinski  <pinskia@physics.uc.edu>
4758
4759         PR c/17279
4760         * c-common.c (c_common_nodes_and_builtins): Ask the back-end if we
4761         support TImode before adding __int128_t and __uint128_t types.
4762
4763 2004-11-14  Dorit Naishlos  <dorit@il.ibm.com>
4764
4765         PR tree-opt/18400
4766         * tree-vectorizer.c (make_loop_iterate_ntimes): Set loop->nb_iterations.
4767         (vect_transform_loop_bound): Set loop->nb_iterations.
4768
4769 2004-11-14  Dorit Naishlos  <dorit@il.ibm.com>
4770             Andrew Pinski  <pinskia@physics.uc.edu>
4771
4772         PR tree-opt/18425
4773         * tree-vectorize.c (vect_build_loop_niters): Do not insert
4774         NULL into the instruction stream. Initialize new_bb to NULL.
4775         (vect_update_ivs_after_vectorizer): Likewise.
4776         (vect_gen_niters_for_prolog_loop): Likewise.
4777
4778 2004-11-14  Zdenek Dvorak  <dvorakz@suse.cz>
4779
4780         PR tree-optimization/18431
4781         * tree-flow.h (stmt_references_memory_p): Declare.
4782         * tree-ssa-loop-im.c (stmt_cost): Use stmt_references_memory_p.
4783         * tree-ssa.c (stmt_references_memory_p): New function.
4784
4785 2004-11-14  Andreas Schwab  <schwab@suse.de>
4786
4787         * Makefile.in (lambda-code.o, tree-loop-linear.o): Depend on
4788         $(EXPR_H).
4789
4790 2004-11-14  Kazu Hirata  <kazu@cs.umass.edu>
4791
4792         * c-common.c (walk_stmt_tree): Remove.
4793         * c-common.h: Remove the corresponding prototype.
4794
4795         * emit-rtl.c (push_to_full_sequence): Remove.
4796         * rtl.h: Remove the corresponding prototype.
4797
4798         * cselib.c, expr.c: Fix comment typos.
4799
4800 2004-11-13  Richard Henderson  <rth@redhat.com>
4801
4802         * calls.c (precompute_register_parameters): Force all PARALLELs
4803         into pseudo registers.
4804         (load_register_parameters): Copy PARALLELs into hard registers.
4805         * function.c (assign_parm_setup_block): Copy PARALLELS into
4806         pseudo registers.  Do emit_group_store in conversion_insns.
4807         * expr.c (emit_group_load_1): Rename from emit_group_load, take
4808         tmps as an argument.  Move final copy loop ...
4809         (emit_group_load): ... here.  New function.
4810         (emit_group_load_into_temps, emit_group_move_into_temps): New.
4811         * expr.h: Declare them.
4812
4813 2004-11-14  Kazu Hirata  <kazu@cs.umass.edu>
4814
4815         * tree-cfg.c, tree-if-conv.c, tree-ssa-loop-ivopts.c,
4816         tree-ssa-loop-manip.c, tree-vectorizer.c: Replace TREE_CHAIN
4817         with PHI_CHAIN where appropriate.
4818
4819 2004-11-13  Dale Johannesen  <dalej@apple.com>
4820
4821         * tree-flow.h (bsi_commit_one_edge_insert): Remove name from prototype.
4822         (tree_block_label): Ditto.
4823         (flush_pending_stmts): Ditto.
4824         (insert_edge_copies): Ditto.
4825         (expr_invariant_in_loop_p): Ditto.
4826         (TDF_USE_OPS): Parenthesize definition.
4827         (TDF_USE_VOPS): Ditto.
4828
4829 2004-11-13  David Edelsohn  <edelsohn@gnu.org>
4830
4831         * config/rs6000/aix51.h (ASM_CPU_SPEC): Add 970 and G5.
4832         * config/rs6000/aix52.h (ASM_CPU_SPEC): Same.
4833         (atoll): Declare.
4834         * config/rs6000/t-aix52 (BOOT_LDFLAGS): Define.
4835
4836 2004-11-14  Joseph Myers  <joseph@codesourcery.com>
4837
4838         * config/i386/i386.c (override_options): Move loop to set default
4839         tuning to correct place.
4840
4841 2004-11-13  Zak Kipling  <zak@transversal.com>
4842
4843         PR target/18300
4844         * config/i386/i386.c (classify_argument): Fix infinite loop when
4845         passing object with 3 or more base classes by value.
4846
4847 2004-11-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
4848
4849         * doc/md.texi (constraints) <% modifier>: Mention that it is
4850         useless when the two alternatives are strictly identical.
4851
4852 2004-11-13  Richard Henderson  <rth@redhat.com>
4853
4854         * expmed.c (extract_split_bit_field): Temporarily disable call to
4855         extract_force_align_mem_bit_field.
4856
4857 2004-11-13  Kazu Hirata  <kazu@cs.umass.edu>
4858
4859         * bitmap.c, bitmap.h, expmed.c, tree-cfg.c: Fix comment
4860         formatting.
4861
4862         * c-cppbuiltin.c, cgraph.c, domwalk.h, except.c, gimplify.c,
4863         lambda-code.c, postreload.c, predict.c, tree-sra.c,
4864         tree-ssa-loop-manip.c, tree.c: Fix comment typos.
4865
4866 2004-11-13  Kelley Cook  <kcook@gcc.gnu.org>
4867
4868         * doc/install.texi (automake): Correctly document that everything now
4869         will use automake 1.9.3.
4870
4871 2004-11-13  Hans-Peter Nilsson  <hp@bitrange.com>
4872
4873         PR target/18347
4874         * config/mmix/mmix.c (mmix_function_outgoing_value): Handle
4875         TImode.  Sorry for other non-complex larger-than-64-bit modes.
4876         * config/mmix/mmix.h (MIN_UNITS_PER_WORD): Do not define.
4877
4878 2004-11-13  Kelley Cook  <kcook@gcc.gnu.org>
4879
4880         * doc/install.texi (automake): Document that everything now uses 1.9.
4881
4882 2004-11-13  Bernd Schmidt  <bernd.schmidt@analog.com>
4883
4884         * cse.c (cse_insn): Stores in a libcall sequence can invalidate
4885         previous loads.
4886
4887 2004-11-13  Kazu Hirata  <kazu@cs.umass.edu>
4888
4889         * tree.h: Fix comment typos.
4890
4891 2004-11-13  Steven Bosscher  <stevenb@suse.de>
4892
4893         * cse.c (CHEAP_REGNO): Redefine using REGNO_PTR_FRAME_P and
4894         HARD_REGISTER_NUM_P.
4895
4896         * cselib.c (new_cselib_val): Make comment correct and more detailed.
4897         * flow.c (mark_set_1): Likewise.
4898
4899         * except.c (duplicate_eh_region_1, duplicate_eh_region_2,
4900         duplicate_eh_regions): Remove.
4901         * except.h (duplicate_eh_regions): Remove prototype.
4902         * integrate.c (get_label_from_map, copy_rtx_and_substitute,
4903         global_const_equiv_varray): Remove.
4904         * integrate.h (get_label_from_map, copy_rtx_and_substitute,
4905         global_const_equiv_varray, set_label_in_map): Remove prototypes,
4906         extern declaration, and #define.
4907         (MAYBE_EXTEND_CONST_EQUIV_VARRAY, SET_CONST_EQUIV_DATA): Remove.
4908         (struct inline_remap): Remove.
4909         * varray.c (struct element): Remove entry for const_equiv_data.
4910         * varray.h (struct const_equiv_data): Remove.
4911         (enum varray_data_enum) <VARRAY_DATA_CONST_EQUIV>: Remove.
4912         (union varray_data_tag) <const_equiv>: Remove.
4913         (VARRAY_CONST_EQUIV_INIT, VARRAY_CONST_EQUIV,
4914         VARRAY_PUSH_CONST_EQUIV, VARRAY_TOP_CONST_EQUIV): Remove.
4915
4916         * regstack.c (record_label_references): Remove unused function.
4917
4918         * rtl.def (VALUE): Update comment.
4919         (LABEL_REF): Remove unused operand 2.
4920         * rtl.h (struct rtx_def): Update for removed accessor macros.
4921         (XCADVFLAGS, INSN_DEAD_CODE_P, LINE_NUMBER, CONTAINING_INSN,
4922         REG_LOOP_TEST_P): Remove.
4923         (ADDR_DIFF_VEC_FLAGS, CSELIB_VAL_PTR, LABEL_NEXTREF): Add comments.
4924         * web.c (entry_register): Don't copy REG_LOOP_TEST_P.
4925         * doc/rtl.texi (INSN_DEAD_CODE_P, REG_LOOP_TEST_P): Remove.
4926
4927 2004-11-13  James A. Morrison  <phython@gcc.gnu.org>
4928             Eric Botcazou  <ebotcazou@libertysurf.fr>
4929
4930         PR target/18230
4931         * config/sparc/sparc.c (sparc_rtx_costs): Handle the NAND vector
4932         patterns.
4933         * config/sparc/sparc.md (V64I): New macro for 64-bit modes.
4934         (V32I): New macro for 32-bit modes.
4935         (anddi3, anddi_sp32, anddi_sp64, and_not_di_sp32, and_not_di_sp64,
4936         iordi3, iordi3_sp32, iordi_sp64, or_not_di_sp32, or_not_di_sp64,
4937         xordi3, xordi3_sp32, xordi3_sp64, {AND, IOR, XOR} DI splitter,
4938         xor_not_di_sp32, xordi_not_di_sp64, one_cmpldi2, one_cmpldi_sp32,
4939         one_cmpldi_sp64): Use V64I instead of DI.
4940         (andsi3, andsi_sp32, andsi_sp64, and_not_si, iorsi3, or_not_si,
4941         xorsi3, xor_not_si, one_cmplsi2): Use V32I instead of SI.
4942         (addv2si3, addv4hi3, addv2hi3): Remove % modifier.
4943         (nandv64i_vis, nandv32i_vis): New patterns.
4944
4945 2004-11-12  Mike Stump  <mrs@apple.com>
4946
4947         * Makefile.in: Add html support.
4948         * java/Make-lang.in: Likewise.
4949         * fortran/Make-lang.in: Likewise.
4950         * treelang/Make-lang.in: Likewise.
4951         * doc/install.texi: Likewise.
4952         * doc/makefile.texi: Likewise.
4953         * doc/sourcebuild.texi: Likewise.
4954
4955 2004-11-13  Kazu Hirata  <kazu@cs.umass.edu>
4956
4957         * tree-ssa-loop-manip.c: Fix a comment typo.
4958
4959 2004-11-12  Mike Stump  <mrs@apple.com>
4960
4961         * doc/cppinternals.texi (Index): Fix html generation with makeinfo by
4962         renaming this node to Concept Index.
4963         * doc/gccint.texi (Index): Likewise.  Also minor formatting tweaks
4964         to more closely match gcc.texi.
4965
4966 2004-11-12  Jeff Law  <law@redhat.com>
4967
4968         * tree-cfg.c (hashtab.h): Include.
4969         (struct edge_to_case_leader_elt): New structure.
4970         (edge_to_case_leader): New.
4971         (edge_to_case_leader_hash): New hashtable hasing function.
4972         (edge_to_case_leader_eq): New hashtable equality function.
4973         (record_switch_edge): New function.
4974         (get_case_leader_for_edge, get_case_leader_for_edge): New functions.
4975         (make_switch_expr_edges): Build the edge-to-case-leader
4976         hash table.  Tear down the hash table when we're done.
4977         (cleanup_dead_labels): Use CASE_LEADER_OR_LABEL instead of
4978         CASE_LABEL.
4979         (tree_node_can_be_shared): Allow sharing of CASE_LABEL_EXPR nodes.
4980         (tree_redirect_edge_and_branch, case SWITCH_EXPR): Update
4981         to use new concept of case leaders to reduce overhead of
4982         redirecting outgoing edges from switch statements.
4983         * tree.c (get_case_label): New function.
4984         * tree.h (CASE_LABEL): Define in terms of get_case_label.
4985         (CASE_LEADER_OR_LABEL): Define.
4986
4987 2004-11-12  Ziemowit Laski  <zlaski@apple.com>
4988
4989         * varasm.c (output_addressed_constants): For CONST_DECLs,
4990         output the initializer if present.
4991
4992 2004-11-12  Ziemowit Laski  <zlaski@apple.com>
4993
4994         * config/rs6000/darwin.h: Fix confusing typo in comment.
4995
4996 2004-11-12  Devang Patel  <dpatel@apple.com>
4997
4998         * optabs.c (vector_compare_rtx): Use COMPARISON_CLASS_P.
4999
5000 2004-11-12  Devang Patel  <dpatel@apple.com>
5001
5002         * tree-if-conv.c (clean_predicate_lists): Use loop header
5003         and latch directly.
5004
5005 2004-11-12  Richard Henderson  <rth@redhat.com>
5006
5007         PR 17778
5008         * config/i386/i386.h (TARGET_96_ROUND_53_LONG_DOUBLE): New.
5009         * config/i386/freebsd.h (SUBTARGET_OVERRIDE_OPTIONS): Remove.
5010         (TARGET_96_ROUND_53_LONG_DOUBLE): New.
5011         * config/i386/i386-modes.def (XF): Use it.
5012
5013 2004-11-11  Geoffrey Keating  <geoffk@apple.com>
5014
5015         * Makefile.in (macro_list): Use move-if-change to avoid spurious
5016         rebuilds.
5017
5018 2004-11-12  Mark Mitchell  <mark@codesourcery.com>
5019
5020         PR c++/18416
5021         * passes.c (rest_of_decl_compilation): Do not look at DECL_RTL
5022         when deciding whether to pass a variable to
5023         cgraph_varpool_finalize_decl or assemble_variable.
5024         * toplev.c (check_global_declarations): Do not clear DECL_RTL.
5025
5026 2004-11-12  Kazu Hirata  <kazu@cs.umass.edu>
5027
5028         * tree-vectorizer.c: Fix a comment typo.
5029
5030 2004-11-12  Bernd Schmidt  <bernd.schmidt@analog.com>
5031
5032         * genconfig.c (walk_insn_part): Look at match_dups inside a label_ref.
5033
5034 2004-11-12  Diego Novillo  <dnovillo@redhat.com>
5035
5036         * tree-scalar-evolution.c (analyzable_condition): Remove
5037         superfluous TREE_THIS_VOLATILE checks on SSA_NAMEs.
5038
5039 2004-11-12  Ralf Corsepius  <ralf.corsepius@rtems.org>
5040
5041         * config/rs6000/t-rtems (MULTILIB_NEW_EXCEPTIONS_ONLY):
5042         Remove m505/roe multilib variant.
5043
5044 2004-11-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
5045
5046         * expr.c (emit_group_load) <CONCAT>: Use extract_bit_field
5047         to load from the stack.
5048
5049 2004-11-12  Richard Henderson  <rth@redhat.com>
5050
5051         * toplev.c (floor_log2): Rename from floor_log2_wide, use CLZ_HWI.
5052         (exact_log2): Rename from exact_log2_wide, use CTZ_HWI.
5053         * toplev.h (FL2T__): Remove.
5054         (CLZ_HWI): Rename from FL2T_CLZ__.
5055         (CTZ_HWI): New.
5056         (floor_log2): Simplify.
5057         (exact_log2): New.
5058
5059 2004-11-12  Sebastian Pop  <pop@cri.ensmp.fr>
5060
5061         * tree-data-ref.c (analyze_subscript_affine_affine): Correctly
5062         compute the first overlapping iterations.
5063
5064 2004-11-12  Sebastian Pop  <pop@cri.ensmp.fr>
5065
5066         PR middle-end/18005
5067         * tree-data-ref.c (estimate_niter_from_size_of_data): Ensure
5068         that arguments of EXACT_DIV_EXPR are INTEGER_CST.
5069
5070 2004-11-12  Steven Bosscher  <stevenb@suse.de>
5071
5072         PR tree-optimization/18419
5073         * tree-ssa.c (walk_use_def_chains_1): Make the visited map a
5074         pointer set instead of a bitmap.
5075         (walk_use_def_chains): Create, pass and clean up that pointer_set.
5076
5077         * tree-ssa-alias.c (struct alias_info): Make the ssa_names_visited
5078         field an sbitmap.
5079         (init_alias_info): Allocate and zero it here.
5080         (delete_alias_info): Delete it here.
5081         (collect_points_to_info_for): Use it.
5082
5083 2004-11-11  Kazu Hirata  <kazu@cs.umass.edu>
5084
5085         * alias.c (record_alias_subset, addr_side_effect_eval):
5086         Make them static.
5087         * alias.h: Remove the prototype for record_alias_subset.
5088         * expr.h: Remove the commented-out prototype for
5089         record_alias_subset.
5090         * rtl.h: Remove the prototype for addr_side_effect_eval.
5091
5092         * cfglayout.c (choose_inner_scope): Make it static.
5093         * rtl.h: Remove the corresponding prototype.
5094
5095         * cfgloopmanip.c (update_single_exits_after_duplication,
5096         unloop): Make them static.
5097         * cfgloop.h: Remove the corresponding prototypes.
5098
5099         * c-typeck.c (c_size_in_bytes, record_maybe_used_decl):
5100         Make them static.
5101         * c-tree.h: Remove the corresponding prototypes.
5102
5103         * explow.c (round_push): Make it static.
5104         * expr.h: Remove the corresponding prototype.
5105
5106         * varasm.c (get_named_section_flags, decl_tls_model): Make
5107         them static.
5108         * output.h: Remove the prototype for get_named_section_flags.
5109         * tree.h: Remove the prototype for decl_tls_model.
5110
5111 2004-11-11  Kazu Hirata  <kazu@cs.umass.edu>
5112
5113         * function.c (expand_function_end): Remove an "if" statement
5114         that always triggers.
5115         * stmt.c (expand_null_return_1): Likewise.
5116
5117 2004-11-11  James E. Wilson  <wilson@specifixinc.com>
5118
5119         * config/ia64/ia64.h (HARD_REGNO_NREGS): Handle XCmode.
5120         (HARD_REGNO_MODE_OK, MODES_TIEABLE_P, SECONDARY_MEMORY_NEEDED,
5121         CLASS_MAX_NREGS): Likewise.
5122
5123 2004-11-11  Zdenek Dvorak  <dvorakz@suse.cz>
5124
5125         PR tree-optimization/17742
5126         * tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Handle
5127         MINUS_EXPR correctly.
5128
5129 2004-11-11  Sebastian Pop  <pop@cri.ensmp.fr>
5130
5131         * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
5132         Give up as soon as the evolution is known not computable.
5133
5134 2004-11-11  Nathan Sidwell  <nathan@codesourcery.com>
5135
5136         PR target/16457
5137         * config/rs6000/rs6000.c (mask64_2_operand): Stub to call
5138         mask64_1or2_operand.
5139         (mask64_1or2_operand): Broken out of mask64_2_operand, add flag
5140         to spot rlwinm opportunities.
5141         (and64_2_operand): Use mask_1or2_operand.
5142         * config/rs6000/rs6000.md (anddi3): Use rlwinm when possible.
5143
5144 2004-11-11  Dorit Naishlos  <dorit@il.ibm.com>
5145
5146         * tree-vectorizer.c (update_phi_nodes_for_guard): Call reverse_phis.
5147         (vect_update_ivs_after_vectorizer): Update function documentation.
5148         Avoid quadratic behavior and direct write to PHI_ARG_DEF.
5149
5150 2004-11-11  Kazu Hirata  <kazu@cs.umass.edu>
5151
5152         * config/arm/arm.c: Fix a comment typo.
5153
5154 2004-11-11  Nathan Sidwell  <nathan@codesourcery.com>
5155
5156         * bitmap.h (nBITMAP_WORD_BITS): Remove.
5157         (BITMAP_WORD_BITS): Force unsigned by use of 1u.
5158         (BITMAP_ELEMENT_WORDS, BITMAP_ELEMENT_ALL_BITS): Remove
5159         unnecessary casts.
5160         (bitmap_first_set_bit): Return unsigned, use ctzl.
5161         (bitmap_last_set_bit): Remove.
5162         * bitmap.c (bitmap_element_zerop, bitmap_copy): Make iterator
5163         unsigned.
5164         (bitmap_first_set_bit): Return unsigned, require non-empty bitmap,
5165         remove special case code for two word elements.
5166         (bitmap_last_set_bit): Remove.
5167         * ra-build.c (livethrough_conflicts_bb): Replace unnecessary use of
5168         bitmap_first_set_bit with bitmap_empty_p.
5169         * tree-outof-ssa.c (analyze_edges_for_bb): Likewise.
5170         * tree-ssa-pre.c (bitmap_print_value): Use simple flag rather than
5171         bitmap_last_bit_set.
5172
5173 2004-11-11  Nathan Sidwell  <nathan@codesourcery.com>
5174
5175         PR target/16796
5176         * config/rs6000/rs6000.md: Add DF & SF reg move peepholes.
5177
5178         PR target/16458
5179         * config/rs6000/rs6000.c (rs6000_generate_compare): Generate an
5180         unsigned equality compare when we know the operands are unsigned.
5181
5182 2004-11-10  Peter S. Mazinger  <ps.m@gmx.net>
5183
5184         * config/mips/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Define
5185         __PIC__ and __pic__ only if TARGET_ABICALLS.
5186         (SUBTARGET_CPP_SPECS): Don't define or undefine __PIC__ and __pic__.
5187         (SUBTARGET_ASM_SPECS): Don't pass -non_shared to assembler; pass
5188         -KPIC only if not -mno-abicalls.
5189
5190         * config/alpha/linux.h, config/arm/linux-elf.h, config/pa/pa-linux.h
5191         * config/sparc/linux.h, config/sparc/linux64.h
5192         (TARGET_OS_CPP_BUILTINS): Define __PIC__ and __pic__ if flag_pic.
5193
5194         * config/arm/linux-gas.h (CPP_SPEC): Don't define __PIC__ or __pic__.
5195         * config/pa/pa/linux.h (CPP_SPEC): Likewise.
5196         * config/sparc/linux.h (CPP_SUBTARGET_SPEC): Likewise.
5197         * config/sparc/linux64.h (CPP_SUBTARGET_SPEC): Likewise.
5198
5199 2004-11-11  Paul Brook  <paul@codesourcery.com>
5200
5201         * config/arm/arm.c (arm_compute_save_reg0_reg12_mask): Save PIC
5202         register if current_function_uses_pic_offset_table is set.
5203
5204 2004-11-10  David Edelsohn  <edelsohn@gnu.org>
5205
5206         * config/rs6000/rs6000.md (define_attr "type"): Add two and three.
5207         Change multi-instruction sequences to new attribute.
5208         * config/rs6000/{40x.md,440.md,603.md,6xx.md,
5209         7450.md,7xx.md,8540.md,mpc.md,power4.md,power5.md,
5210         rios1.md,rios2.md,rs64.md}: Add descriptions for two and three.
5211
5212 2004-11-10  Daniel Berlin  <dberlin@dberlin.org>
5213
5214         * tree-data-ref.c (build_classic_dist_vector): If either loop
5215         is outside of the nest we asked about, the dependence can't
5216         matter.
5217         (build_classic_dir_vector): Ditto.
5218
5219 2004-11-10  Zdenek Dvorak  <dvorakz@suse.cz>
5220
5221         * tree-ssa-loop-ivopts.c (get_address_cost): Add address elements in
5222         right order.
5223         (force_var_cost): Determine cost of addition and multiplication more
5224         precisely.
5225         (get_computation_cost_at): Add cost for computing address elements to
5226         the final cost.
5227
5228         * fold-const.c (fold): Attempt to use ptr_difference_const whenever
5229         one of the arguments of MINUS_EXPR is an address.
5230         (split_address_to_core_and_offset): New function.
5231         (ptr_difference_const): Handle case when one of the operands is a
5232         pointer.
5233         * tree-ssa-loop-ivopts.c (determine_base_object): Fold &*addr.
5234         (ptr_difference_cost): Pass addresses instead of objects to
5235         ptr_difference_const.
5236
5237 2004-11-10  Nathan Sidwell  <nathan@codesourcery.com>
5238
5239         * tree.c (tree_check_failed): Emit general error if the list of
5240         node types is empty.
5241
5242 2004-11-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
5243
5244         * config/sparc/sparc.c (function_arg_union_value): New 'slotno'
5245         argument.  When the union is passed in the 6th slot, build a
5246         PARALLEL with only one element.
5247         (function_arg): Adjust call to function_arg_union_value.
5248         (function_value): Likewise.
5249
5250 2004-11-10  Fariborz Jahanian <fjahanian@apple.com>
5251
5252         PR tree-optimization/17892
5253         * tree-ssa-dom.c (unsafe_associative_fp_binop): Add test for
5254         MINUS_EXPR operator.
5255
5256 2004-11-10  James A. Morrison  <phython@gcc.gnu.org>
5257
5258         PR target/18230
5259         config/sparc/sparc.md (addsi3, subsi3): Set "fptype" attribute.
5260         (addv2si, addv4hi, addv2hi, subv2si, subv4hi, subv2hi): New patterns.
5261
5262 2004-11-10  Steven Bosscher  <stevenb@suse.de>
5263
5264         * basic-block.h (XMALLOC_REG_SET, XFREE_REG_SET): New.
5265         (struct basic_block_def): Remove local_set and cond_local_set
5266         fields.  Update comment for global_live_at_start.
5267         * flow.c (calculate_global_regs_live): Allocate local_sets and
5268         cond_local_sets here as arrays of bitmaps previously stored in
5269         bb->local_set and bb->cond_local_set.  Use xmalloc instead of
5270         obstack allocated bitmaps.
5271
5272 2004-11-09  H.J. Lu  <hongjiu.lu@intel.com>
5273
5274         PR target/18380
5275         * config/ia64/unwind-ia64.h (_Unwind_FindTableEntry): Mark it
5276         hidden.
5277
5278         * unwind-dw2.c (_Unwind_FindTableEntry): Removed.
5279
5280 2004-11-09  Jeff Law  <law@redhat.com>
5281
5282         * cfganal.c (flow_dfs_compute_reverse_execute): Accept new
5283         argument holding last unvisited block.  Start search for
5284         unvisited blocks at LAST_UNVISITED rather than EXIT_BLOCK.
5285         (connect_infinite_loops_to_exit): Supply last unvisited block
5286         to flow_dfs_compute_reverse_execute.
5287
5288 2004-10-22  Aldy Hernandez  <aldyh@redhat.com>
5289
5290         * config/rs6000/rs6000.md (fix_truncdfsi2): Handle e500
5291         doubles.
5292         (floatunssidf2): Same.
5293         (floatsidf2): Same.
5294         ("extendsfdf2"): New expander.
5295         (*extendsfdf2_fpr): Rename.
5296         (*truncdfsf2_fpr): Same.
5297         (*negdf2_fpr): Same.
5298         (*absdf2_fpr): Same.
5299         (*nabsdf2_fpr): Same.
5300         (*adddf3_fpr): Same.
5301         (*subdf3_fpr): Same.
5302         (*muldf3_fpr): Same.
5303         (*divdf3_fpr): Same.
5304
5305         * config/rs6000/spe.md ("spe_extendsfdf2"): Remove FIXME comment.
5306         ("spe_fix_truncdfsi2"): Same.
5307         (spe_floatunssidf2): Same.
5308         (spe_floatsidf2): Same.
5309
5310 2004-11-09  Joseph S. Myers  <joseph@codesourcery.com>
5311
5312         PR c/18322
5313         * c-common.c (fname_decl): Don't use line number of decl in
5314         diagnostic.
5315
5316 2004-11-09  Ulrich Weigand  <uweigand@de.ibm.com>
5317
5318         * config/s390/s390-protos.h (s390_pool_operand): Remove.
5319         * config/s390/s390.c (s390_pool_operand): Likewise.
5320         (s390_extra_constraint_str): Handle 'B' constraints.
5321         * config/s390/s390.h (CONSTRAINT_LEN): Handle 'B' constraints.
5322         * config/s390/s390.md: Document 'B' constraints.
5323         ("*cmpdi_cct", "*cmpsi_cct"): Use 'B' constraint instead of
5324         s390_pool_operand to prevent insns with two literal pool
5325         references.  Make pattern commutative.
5326         ("*cmpdi_ccu", "*cmpsi_ccu", "*cmphi_ccu", "*cmpqi_ccu"): Use
5327         'B' constraint instead of s390_pool_operand.
5328
5329 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
5330
5331         * tree-cfg.c (create_bb): Remove unnecessary memset.
5332
5333 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
5334
5335         * tree-ssa-threadupdate.c (copy_phis_to_block): Remove.
5336         (thread_block): Call flush_pending_stmt instead of
5337         copy_phis_to_block.
5338
5339 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
5340
5341         * loop-iv.c (iv_number_of_iterations): Make it static.
5342         * cfgloop.h: Remove the corresponding prototype.
5343
5344 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
5345
5346         * function.c (combine_temp_slots, assign_parms,
5347         expand_pending_sizes): Make them static.
5348         * tree.h: Remove the corresponding prototypes.
5349
5350 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
5351
5352         * emit-rtl.c (copy_most_rtx): Remove.
5353         * rtl.h: Remove the corresponding prototype.
5354
5355 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
5356
5357         * cfgloop.c (flow_loops_update): Remove.
5358         * cfgloop.h: Remove the corresponding prototype.
5359
5360 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
5361
5362         * conflict.c (mark_reg, conflict_graph_compute): Remove.
5363         * basic-block.h: Remove the prototype for
5364         conflict_graph_compute.
5365
5366 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
5367
5368         * tree-if-conv.c (add_to_dst_predicate_list): Change the
5369         second argument to basic_block.
5370         (tree_if_convert_cond_expr): Update call sites.
5371
5372 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
5373
5374         * fold-const.c (pedantic_non_lvalue): Make it static.
5375         * tree.h: Remove the corresponding prototype.
5376
5377 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
5378
5379         * optabs.c (prepare_operand): Make it static.
5380         * optabs.h: Remove the corresponding prototype.
5381
5382 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
5383
5384         * reload1.c (reloads_conflict, gen_reload): Make them static.
5385         * reload.h: Remove the corresponding prototypes.
5386
5387 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
5388
5389         * reload.c (refers_to_mem_for_reload_p,
5390         refers_to_regno_for_reload_p): Make them static.
5391         * reload.h: Remove the corresponding prototypes.
5392
5393 2004-11-09  James A. Morrison  <phython@gcc.gnu.org>
5394             Eric Botcazou  <ebotcazou@libertysurf.fr>
5395
5396         PR target/18230
5397         * doc/md.texi (SPARC constraints): Document 'Y' constraint.
5398         * config/sparc/sparc-modes.def: Add vector modes of 4 and 8 bytes.
5399         * config/sparc/sparc.c (sparc_vector_mode_supported_p): New function.
5400         (TARGET_VECTOR_MODE_SUPPORTED_P): Set to sparc_vector_mode_supported_p.
5401         (fp_zero_operand): Accept MODE_VECTOR_INT modes.
5402         (input_operand): Accept CONST_VECTOR with MODE_VECTOR_INT modes.
5403         (sparc_cannot_force_const_mem): Return false for CONST_VECTOR.
5404         (sparc_init_modes): Set sparc_mode_class to SF_MODE or DF_MODE for
5405         MODE_VECTOR_INT modes.
5406         (sparc_extra_constraint_check): Add new constraint 'Y'.
5407         * config/sparc/sparc.h: Define UNITS_PER_SIMD_WORD to 8 for TARGET_VIS.
5408         * config/sparc/sparc.md (V32): New mode macro for 32-bit modes.
5409         (V64): New mode macro for 64-bit modes.
5410         (movsf): Use V32 for mode instead of SF.
5411         (movsf_insn_vis): Use V32 for mode instead of SF.  Add 'Y' constraint
5412         alongside 'G' constraint.
5413         (movdf): Use V64 for mode instead of DF.
5414         (movdf_insn_v9only_vis, modf_insn_sp64_vis): Use V64 for mode instead
5415         of DF.  Add 'Y' constraint alongside 'G' constraint.
5416         (multi-isn and misaligned mems DFmode splitters): Use V64 for mode
5417         instead of DF.
5418
5419 2004-11-09  Ulrich Weigand  <uweigand@de.ibm.com>
5420
5421         * config/s390/s390.c (s390_select_ccmode): Return CCAPmode for
5422         integer NEG and ABS.
5423         * config/s390/s390.md ("*negdi2_64"): Fix op_type attribute.
5424         ("*negdi2_31"): Reimplement using a splitter.
5425         ("*negdi2_cc", "*negdi2_cconly"): New insns.
5426         ("*negdi2_sign", "*negdi2_sign_cc"): Likewise.
5427         ("*negsi2_cc", "*negsi2_cconly"): Likewise.
5428         ("*negdf2_cc", "*negdf2_cconly"): Likewise.
5429         ("*negsf2_cc", "*negsf2_cconly"): Likewise.
5430         ("*absdi2_cc", "*absdi2_cconly"): New insns.
5431         ("*absdi2_sign", "*absdi2_sign_cc"): Likewise.
5432         ("*abssi2_cc", "*abssi2_cconly"): Likewise.
5433         ("*absdf2_cc", "*absdf2_cconly"): Likewise.
5434         ("*abssf2_cc", "*abssf2_cconly"): Likewise.
5435         ("*negabsdi2_cc", "*negabsdi2_cconly"): New insns.
5436         ("*negabsdi2_sign", "*negabsdi2_sign_cc"): Likewise.
5437         ("*negabssi2_cc", "*negabssi2_cconly"): Likewise.
5438         ("*negabsdf2_cc", "*negabsdf2_cconly"): Likewise.
5439         ("*negabssf2_cc", "*negabssf2_cconly"): Likewise.
5440
5441 2004-11-09  Ulrich Weigand  <uweigand@de.ibm.com>
5442
5443         * config/s390/s390.c (s390_canonicalize_comparison): Reverse condition
5444         when eliminating an UNSPEC_CMPINT.
5445         (s390_secondary_input_reload_class): Fix test for CC register reload.
5446         (s390_secondary_output_reload_class): Likewise.
5447         (s390_expand_cmpmem): Swap operands.  Use gen_cmpint.
5448         * config/s390/s390.md ("*cmpint_si", "*cmpint_di"): Remove.
5449         ("cmpint", "*cmpint_cc", "*cmpint_sign", "*cmpint_sign_cc"): New
5450         insn patterns with splitters.
5451
5452 2004-11-09  David Edelsohn  <edelsohn@gnu.org>
5453
5454         * config/rs6000/rs6000.c (rs6000_rtx_costs): Add EQ, GTU, and LTU.
5455         * config/rs6000/rs6000.md (sCC): Split GTU and LTU patterns.
5456
5457 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
5458
5459         * tree-phinodes.c (phi_reverse): New.
5460         * tree-cfg.c (tree_make_forwarder_block, tree_duplicate_bb):
5461         Use it.
5462         * tree-flow.h: Add a prototype for phi_reverse.
5463
5464 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
5465
5466         * tree-ssa-loop-ivopts.c: Fix a comment typo.
5467
5468 2004-11-09  James A. Morrison  <phython@gcc.gnu.org>
5469
5470         PR pch/14940
5471         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Add __sparc__
5472         definitions.
5473
5474 2004-11-09  Joseph S. Myers  <joseph@codesourcery.com>
5475
5476         * builtins.c, c-common.c, c-decl.c, c-format.c: Say "argument"
5477         instead of "arg" in diagnostics.
5478
5479 2004-11-09  Joseph S. Myers  <joseph@codesourcery.com>
5480
5481         * builtins.c, c-common.c, c-decl.c, c-format.c, c-format.h,
5482         c-parse.in, c-pch.c, c-pragma.c, collect2.c, final.c, gcc.c,
5483         gcov.c, opts.c, pretty-print.h, protoize.c, reg-stack.c, rtl.c,
5484         tlink.c, config/alpha/alpha.c, config/arc/arc.c, config/arm/arm.c,
5485         config/avr/avr.c, config/c4x/c4x.c, config/darwin.c,
5486         config/frv/frv.c, config/h8300/h8300.c, config/i386/i386.c,
5487         config/i386/winnt.c, config/ia64/ia64.c, config/ip2k/ip2k.c,
5488         config/iq2000/iq2000.c, config/m32r/m32r.c,
5489         config/m68hc11/m68hc11.c, config/m68k/m68k.c, config/m68k/m68k.h,
5490         config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.c,
5491         config/ns32k/ns32k.c, config/rs6000/host-darwin.c,
5492         config/rs6000/rs6000.c, config/s390/s390.c, config/sh/sh.c,
5493         config/sh/symbian.c, config/stormy16/stormy16.c,
5494         config/v850/v850.c: Avoid "`" as left quote, using "'" or %q, %<
5495         and %> as appropriate.  Use %' as apostrophe in diagnostics where
5496         applicable.  Use %< and %> in place of '' quotes where applicable.
5497         Use %qs in place of %<%s%>.  Consistently quote __builtin function
5498         names.
5499
5500 2004-11-09  Hans-Peter Nilsson  <hp@bitrange.com>
5501
5502         * gdbinit.in (pbb, pbm): New macros.
5503
5504 2004-11-08 Jeff Law  <law@redhat.com>
5505
5506         * cfg.c (redirect_edge_succ_nodup): Use find_edge rather than
5507         implementing it inline.
5508
5509         * cfganal.c (find_edge): Search pred->succs or succ->preds,
5510         whichever is shorter.
5511
5512 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
5513
5514         * passes.c (rest_of_handle_jump): Remove dead code.
5515
5516 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
5517
5518         * tree-cfg.c (thread_jumps): Speed up by keeping a pointer to
5519         the last used element in the worklist.
5520
5521 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
5522
5523         * tree-inline.c (remap_save_expr): Make it static.
5524         * tree-inline.h: Remove the corresponding prototype.
5525
5526 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
5527
5528         * tree-ssa-loop-niter.c (upper_bound_in_type,
5529         lower_bound_in_type): Make them static.
5530         * tree.h: Remove the corresponding prototypes.
5531
5532 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
5533
5534         * tree-ssa-live.c (tpa_init, pop_best_coalesce): Make them
5535         static.
5536         * tree-ssa-live.h: Remove the corresponding prototypes.
5537
5538 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
5539
5540         * tree-if-conv.c (tree_if_conversion): Make it static.
5541         * tree-flow.h: Remove the corresponding prototype.
5542
5543 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
5544
5545         * tree-ssa-operands.c (build_ssa_operands): Make it static.
5546         * tree-flow.h: Remove the corresponding prototype.
5547
5548 2004-11-08  Andrew Pinski  <pinskia@physics.uc.edu>
5549
5550         PR tree-opt/18299
5551         * tree-inline.c (copy_body_r): Change "t = t" to empty
5552         statement instead of "t".
5553
5554 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
5555
5556         * modulo-sched.c (create_partial_schedule,
5557         free_partial_schedule, reset_partial_schedule,
5558         ps_add_node_check_conflicts, rotate_partial_schedule): Make
5559         them static.
5560
5561 2004-11-08  Richard Henderson  <rth@redhat.com>
5562
5563         * expmed.c (extract_force_align_mem_bit_field): Correct handling at
5564         the end of a page.
5565
5566 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
5567
5568         * sched-deps.c (add_insn_mem_dependence): Make it static.
5569         * sched-int.h: Remove the corresponding prototypes.
5570
5571 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
5572
5573         * flow.c (allocate_bb_life_data): Make it static.
5574         * basic-block.h: Remove the corresponding prototype.
5575
5576 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
5577
5578         * calls.c (split_complex_values, split_complex_types): Make
5579         them static.
5580         * expr.h: Remove the corresponding prototypes.
5581
5582 2004-11-08  Richard Earnshaw  <rearnsha@arm.com>
5583
5584         * arm.c (arm_handle_notshared_attribute): Wrap declaration and use
5585         with #if TARGET_DLLIMPORT_DECL_ATTRIBUTES.
5586
5587 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
5588
5589         * tree-if-conv.c (tree_if_convert_cond_expr): Remove two "if"
5590         statements that always trigger.
5591
5592 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
5593
5594         * tree-cfg.c, tree-if-conv.c, tree-into-ssa.c,
5595         tree-scalar-evolution.c, tree-ssa-loop-im.c,
5596         tree-ssa-loop-ivopts.c, tree-ssa-loop-manip.c, tree-ssa.c,
5597         tree-vectorizer.c: Replace TREE_CHAIN with PHI_CHAIN where
5598         appropriate.
5599
5600 2004-11-08  Ben Elliston  <bje@au.ibm.com>
5601
5602         * cgraph.h (cgraph_calls_p): Remove.
5603         * cgraph.c (cgraph_calls_p): Likewise.
5604
5605         * varray.h (varray_copy): Remove.
5606         * varray.c (varray_copy): Likewise.
5607
5608 2004-11-07  Andrew Pinski  <pinskia@physics.uc.edu>
5609
5610         PR target/18269
5611         * config/darwin.c (machopic_indirect_data_reference):
5612         Call gen_macho_high and gen_macho_low instead of
5613         checking the mode and calling gen_macho_high_di directly.
5614         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
5615         * config/rs6000/rs6000.md: Move most of TARGET_MACHO expand/insns
5616         to darwin.md.
5617         (movdf_low, movsf_low, movsf_low_st, movsi_low, macho_correct_pic,
5618         load_macho_picbase, macho_low, macho_high): Removed.
5619         (builtin_setjmp_receiver): Call gen_macho_high and
5620         gen_macho_low instead of checking the mode and calling
5621         gen_macho_high_di directly.
5622         * config/rs6000/darwin.md (load_macho_picbase_di): Use the MD constant.
5623         (movdf_low_si, movsf_low_si, movsf_low_st_si, movsi_low_st):
5624         Moved from rs6000.md.
5625         (macho_high): New expander.
5626         (macho_high_si): Renamed version of macho_high from rs6000.md.
5627         (macho_low): New expander.
5628         (macho_low_si): Renamed version of macho_low from rs6000.md.
5629         (load_macho_picbase): New expander.
5630         (load_macho_picbase_si): Renamed version of load_macho_picbase
5631         from rs6000.md.
5632         (macho_correct_pic): New expander.
5633         (macho_correct_pic_si): Renamed version of macho_correct_pic
5634         from rs6000.md.
5635
5636 2004-11-07  Joseph S. Myers  <joseph@codesourcery.com>
5637
5638         * c-decl.c (finish_struct): Use complete sentences for diagnostic
5639         for structures or unions with no members or named members.
5640
5641 2004-11-07  Joseph S. Myers  <joseph@codesourcery.com>
5642
5643         * c-typeck.c (build_unary_op): Replace unreachable diagnostic for
5644         taking address of bit-field by assertion.
5645
5646 2004-11-06  Ulrich Weigand  <uweigand@de.ibm.com>
5647
5648         * config/s390/s390.md (attribute "op_type"): Default to "NN".
5649         (attribute "atype"): Default to "agen".
5650         (attribute "length"): Default to 6.
5651         (define_asm_attibutes): Remove.
5652         ("movti", "*movdi_64", "*movdi_31", "*movsi_zarch", "*movsi_esa",
5653         "*movhi", "*movqi", "*movdf_64", "*movdf_31", "movsf",
5654         "*clc", "*mvc", "*nc", "*oc", "*xc", "*xc_zero"):
5655         Do not set type attribute to "cs" where already default.
5656         ("*cmpint_si", "*cmpint_di", "fix_truncdfsi2_ibm", "floatsidf2_ibm",
5657         "*negdi2_31"):
5658         Do not set type attribute to "other" where already default.
5659         ("movti", "*movdi_64", "*movdi_31", "*movdf_31",
5660         "*strlendi", "*strlensi",
5661         "*movmem_long_64", "*movmem_long_31",
5662         "*clrmem_long_64", "*clrmem_long_31",
5663         "*cmpmem_long_64", "*cmpmem_long_31",
5664         "*cmpint_si", "*cmpint_di",
5665         "addti3", "*adddi3_31z", "*adddi3_31",
5666         "subti3", "*subdi3_31z", "*subdi3_31", "*negdi2_31",
5667         "*sconddi", "*scondsi", "*sconddi_neg", "*scondsi_neg",
5668         "fix_truncdfsi2_ibm", "floatsidf2_ibm", "extendsfdf2_ibm",
5669         "*pool_entry", "pool_align", "pool_section_start",
5670         "pool_section_end", "main_pool", "reload_base_31", "pool"):
5671         Do not set op_type attribute to "NN" where already default.
5672         ("*extractqi", "*extracthi", "*zero_extendhisi2_31",
5673         "*zero_extendqisi2_31", "*zero_extendqihi2_31",
5674         "fix_truncdfsi2_ibm", "floatsidf2_ibm"):
5675         Do not set atype attribute to "agen" where already default.
5676         ("*movmem_short", "*clrmem_short", "*cmpmem_short"): Don't set op_type.
5677
5678 2004-11-06  Richard Sandiford  <rsandifo@redhat.com>
5679
5680         * config/mips/t-iris6 (tp-bit.c): Fix target filename.
5681
5682 2004-11-06  Richard Sandiford  <rsandifo@redhat.com>
5683
5684         PR target/16830
5685         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Don't define the
5686         R3000 and R4000 macros on IRIX.
5687
5688 2004-11-06  Andreas Schwab  <schwab@suse.de>
5689
5690         PR target/16286
5691         * config/rs6000/altivec.h: Replace bool by __bool and pixel by
5692         __pixel.
5693
5694 2004-11-06  Kazu Hirata  <kazu@cs.umass.edu>
5695
5696         * tree-ssa-copyrename.c (rename_ssa_copies): Make it static.
5697
5698 2004-11-06  Ulrich Weigand  <uweigand@de.ibm.com>
5699
5700         * config/s390/2064.md ("z_int", "z_agen"): Ensure the condition
5701         matches no insns already matched by other reservations.
5702         * config/s390/2084.md ("x_int", "x_agen"): Ensure the condition
5703         matches no insns already matched by other reservations.
5704         ("x_ss"): Remove, replace by ...
5705         ("x_cs"): ... this new reservation.  Check type instead of op_type.
5706         Update bypasses to use x_cs instead of x_ss.
5707         ("x_nn"): Remove, replace by ...
5708         ("x_other"): ... this new reservation.  Check type instead of op_type.
5709         Add x_other and x_branch to bypasses.
5710         ("x_vs"): New reservation.
5711         * config/s390/s390.md (attribute "type"): Default according to op_type.
5712         ("*execute"): Set type to "cs".
5713
5714 2004-11-06  Kazu Hirata  <kazu@cs.umass.edu>
5715
5716         * fold-const.c (non_lvalue): Don't construct NON_LVALUE_EXPR
5717         if we are in GIMPLE.
5718
5719 2004-11-06  Hans-Peter Nilsson  <hp@bitrange.com>
5720
5721         PR rtl-optimization/17933
5722         * rtlanal.c (dead_or_set_regno_p): Break out common code to...
5723         (covers_regno_p): New function.  Handle SETs of PARALLEL,
5724         and defer the rest to...
5725         (covers_regno_no_parallel_p): New function.
5726
5727 2004-11-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
5728
5729         * config/sparc/sparc.c (function_arg_record_value_1): Skip
5730         fields with zero length.
5731         (function_arg_record_value_2): Likewise.
5732         (function_arg_record_value_3): Use smallest_mode_for_size
5733         instead of mode_for_size.
5734         (function_arg_union_value): Return naked register for unions
5735         with zero length.
5736
5737 2004-11-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
5738
5739         * config/sparc/sparc.c (scan_record_type): Handle vector types.
5740         (function_arg_slotno): Handle vector types specially.
5741         (function_arg_record_value_1): Split fields with vector type and
5742         BLKmode into their subparts.
5743         (function_arg_record_value_2): Likewise.  Be prepared to handle
5744         more than 2 registers per field.
5745         (function_arg_union_value): Increment regno inside the loop.
5746         (function_arg_vector_value): New function.
5747         (function_arg): Use it to split fields with vector type and
5748         BLKmode into their subparts and build a PARALLEL.  Treat
5749         other vector types like floats.
5750         (function_value): Likewise.
5751         (sparc_pass_by_reference): Handle vector types.
5752         (sparc_return_in_memory): Likewise.
5753
5754 2004-11-06  Kazu Hirata  <kazu@cs.umass.edu>
5755
5756         * tree-cfg.c (find_taken_edge_cond_expr): Remove an "if"
5757         statement that never triggers.
5758
5759 2004-11-06  Ulrich Weigand  <uweigand@de.ibm.com>
5760
5761         * config/s390/2064.md ("z_o2", "z_o3"): Remove.
5762         * config/s390/2084.md ("x_o2", "x_o3"): Remove.
5763         ("x_fdivd"): Use also for fsqrtd type.
5764         ("x_fdivs"): Use also for fsqrts type.
5765         * config/s390/s390.md (attribute "type"): Remove "o2" and "o3" types.
5766         ("fix_truncdfsi2_ieee"): Set type to "ftoi".
5767         ("fix_truncdfsi2_ibm"): Set type to "other".
5768         ("floatdidf2", "floatdisf2"): Do not clobber CC.
5769         ("floatsidf2", "floatsidf2_ieee"): Likewise.
5770         ("floatsisf2", "floatsisf2_ieee"): Likewise.
5771         ("truncdfsf2", "truncdfsf2_ieee"): Only allow "register_operand".
5772         ("truncdfsf2_ibm"): Only allow "nonimmediate_operand".  Use LER
5773         instead of LRER.
5774         ("extendsfdf2_ibm"): Do not set atype.  Set type to "floads".
5775         ("sqrtdf2"): Set type to "fsqrtd".
5776         ("sqrtsf2"): Set type to "fsqrts".
5777
5778 2004-11-06  Kazu Hirata  <kazu@cs.umass.edu>
5779
5780         * tree-phinodes.c (remove_all_phi_nodes_for): Speed up using a
5781         pointer to the last PHI node in the new PHI chain.
5782
5783 2004-11-06  Kaz Kojima  <kkojima@gcc.gnu.org>
5784
5785         * config/sh/sh.c (prepare_move_operands): Emit a use of r12
5786         for non-PIC TLS_MODEL_INITIAL_EXEC case.
5787
5788 2004-11-06  Kazu Hirata  <kazu@cs.umass.edu>
5789
5790         * expmed.c: Fix a comment typo.
5791
5792 2004-11-06  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
5793
5794         PR target/18106
5795         * config/i386/cygming.h
5796         [HAVE_GAS_WEAK] (ASM_WEAKEN_LABEL): Macro defined.
5797
5798 2004-11-06  Kazu Hirata  <kazu@cs.umass.edu>
5799
5800         * config/sh/sh4a.md: Fix copyright.
5801
5802 2004-11-06  Kazu Hirata  <kazu@cs.umass.edu>
5803
5804         * config/rs6000/darwin.md, config/sh/sh4a.md: Replace GNU CC
5805         with GCC.
5806
5807 2004-11-05  David Edelsohn  <edelsohn@gnu.org>
5808
5809         * config/rs6000/rs6000.md (scc patterns): Replace subfc with subf
5810         when carry not used.  Suggested by Torbjorn Granlund.
5811
5812         * config/rs6000/rs6000.c (rs6000_emit_move): Don't force_reg
5813         operand[1] unnecessarily.  Suggested by Eric Christopher.
5814         (rs6000_adjust_cost): Increase latency of store to wider load.
5815         (rs6000_rtx_costs): mulli only allows 16-bit constants.
5816
5817 2004-11-05  Stan Shebs  <shebs@apple.com>
5818
5819         * config/rs6000/rs6000.c (machopic_output_stub): Output
5820         ldu instead of lwzu for 64-bit stubs.
5821
5822 2004-11-05  Richard Henderson  <rth@redhat.com>
5823
5824         * config/alpha/alpha.c (alpha_expand_unaligned_load): Special case
5825         size 2 with BWX.
5826         (alpha_expand_unaligned_store): Likewise.
5827
5828 2004-11-05  Richard Henderson  <rth@redhat.com>
5829
5830         * expmed.c (extract_force_align_mem_bit_field): New.
5831         (extract_split_bit_field): Call it.
5832
5833 2004-11-05  Richard Henderson  <rth@redhat.com>
5834
5835         * ia64.md (UNSPEC_SHRP): New.
5836         (dshift_count_operand): New.
5837         (ashrti3, ashrti3_internal, lshrti3, lshrti3_internal, shrp): New.
5838         * ia64.c (rtx_needs_barrier): Handle UNSPEC_SHRP.
5839
5840 2004-11-05  Joseph S. Myers  <joseph@codesourcery.com>
5841
5842         * c-typeck.c (output_init_element): Return early if value is
5843         error_mark_node.
5844
5845 2004-11-05  James E Wilson  <wilson@specifixinc.com>
5846
5847         * invoke.texi (-fno-guess-branch-probability): Rewrite.
5848
5849         * config/ia64/ia64.c (rtx_needs_barrier, case UNSPEC_GR_SPILL): Change
5850         1 to UNSPEC_GR_SPILL.
5851
5852 2004-11-05  Andreas Krebbel  <krebbel1@de.ibm.com>
5853
5854         * config/s390/s390.c (s390_fixed_condition_code_regs): New function.
5855         (TARGET_FIXED_CONDITION_CODE_REGS): Macro defined.
5856
5857 2004-11-05  Nathan Sidwell  <nathan@codesourcery.com>
5858
5859         * bitmap.h (enum bitmap_bits): Remove.
5860         (bitmap_operation): Remove.
5861         (bitmap_and, bitmap_and_into, bitmap_and_compl,
5862         bitmap_and_compl_into, bitmap_ior, bitmap_ior_into, bitmap_xor,
5863         bitmap_xor_into): Prototype.
5864         * bitmap.c (bitmap_elt_insert_after, bitmap_elt_clear_from): New.
5865         (bitmap_operation): Remove.
5866         (bitmap_and, bitmap_and_into, bitmap_and_compl,
5867         bitmap_and_compl_into, bitmap_ior, bitmap_ior_into, bitmap_xor,
5868         bitmap_xor_into): New.
5869         (bitmap_ior_and_compl, bitmap_ior_and_compl_into): Adjust.
5870
5871         PR tree-optimization/18307
5872         * tree-ssa-alias.c (merge_pointed_to_info): Protected against DEST
5873         and ORIG being the same node.
5874
5875 2004-11-04  Geoffrey Keating  <geoffk@apple.com>
5876
5877         * Makefile.in (distclean): Don't delete nonexistent fixinc/ directory.
5878         (install-mkheaders): Install the version built for the
5879         host, not for the build machine.
5880         * configure.ac: Always run fixincludes.
5881         (all_outputs): Remove mkheaders.
5882         * configure: Regenerate.
5883         * fixinc.in: Move to fixincludes/.
5884         * mkfixinc.sh: Likewise.
5885         * mkheaders.in: Likewise.
5886         * README-fixinc: Likewise.
5887
5888 2004-11-05  Ramana Radhakrishnan  <ramana.radhakrishnan@codito.com>
5889
5890         PR target/18263
5891         * config/arc/lib1funcs.asm (___umulsidi3): Change use of cmp to the
5892         equivalent on the A4.
5893
5894 2004-11-05  Joseph S. Myers  <joseph@codesourcery.com>
5895
5896         * doc/c-tree.texi, doc/cfg.texi, doc/contrib.texi, doc/cpp.texi,
5897         doc/cppopts.texi, doc/extend.texi, doc/fragments.texi,
5898         doc/frontends.texi, doc/gcov.texi, doc/hostconfig.texi,
5899         doc/implement-c.texi, doc/install.texi, doc/invoke.texi,
5900         doc/libgcc.texi, doc/md.texi, doc/passes.texi,
5901         doc/portability.texi, doc/rtl.texi, doc/sourcebuild.texi,
5902         doc/standards.texi, doc/tm.texi, doc/tree-ssa.texi,
5903         doc/trouble.texi: Correct end-of-sentence markup and markup of
5904         "etc.", "e.g." and "i.e.".  Use @code in various places where
5905         appropriate.
5906
5907 2004-11-05  Joseph S. Myers  <joseph@codesourcery.com>
5908
5909         * doc/c-tree.texi, doc/cfg.texi, doc/extend.texi, doc/gty.texi,
5910         doc/install.texi, doc/invoke.texi, doc/md.texi, doc/passes.texi,
5911         doc/rtl.texi, doc/tm.texi, doc/tree-ssa.texi: Remove trailing
5912         whitespace.
5913
5914 2004-11-04  Mark Mitchell  <mark@codesourcery.com>
5915
5916         * config/arm/arm.c (arm_handle_notshared_attribute): New function.
5917         * doc/extend.texi: Document "notshared" attribute.
5918
5919 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
5920
5921         * tree-phinodes.c (make_phi_node): Make it static.
5922         * tree.h: Remove the prototypes for make_phi_node.
5923
5924 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
5925
5926         * stmt.c (expand_asm, expand_asm_operands): Make them static.
5927         * tree.h: Remove the prototypes for expand_asm and
5928         expand_asm_operands.
5929
5930 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
5931
5932         * passes.c (rest_of_compilation): Make it static.
5933         * toplev.h: Remove the prototype for rest_of_compilation.
5934
5935 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
5936
5937         * jump.c (cleanup_barriers): Use delete_insn instead of
5938         delete_barrier.
5939         (delete_barrier): Remove.
5940         * rtl.h: Remove the corresponding prototype.
5941
5942 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
5943
5944         * expr.c (mostly_zero_p): Make it static.
5945         * tree.h: Remove the prototype for mostly_zeros_p.
5946
5947 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
5948
5949         * cfgrtl.c (force_nonfallthru_and_redirect): Make it static.
5950
5951 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
5952
5953         * builtins.c (expand_builtin_return_addr,
5954         expand_builtin_longjmp, expand_builtin_trap): Make them static.
5955         * expr.h: Remove the prototypes for expand_builtin_longjmp and
5956         expand_builtin_trap.
5957         * tree.h: Remove the prototype for expand_builtin_return_addr.
5958
5959 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
5960
5961         * tree-cfg.c (find_taken_edge): Reject VAL begin NULL.
5962         * tree-ssa-ccp.c (visit_cond_stmt): Don't call find_taken_edge
5963         with VAL being NULL.
5964
5965 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
5966
5967         * cfghooks.c (delete_basic_block): Remove code to truncate
5968         edge vectors.
5969
5970 2004-11-04  Andrew Pinski  <pinskia@physics.uc.edu>
5971
5972         * flow.c (init_propagate_block_info): Change the type of i to
5973         unsigned.
5974
5975 2004-11-04  Ulrich Weigand  <uweigand@de.ibm.com>
5976
5977         PR tree-optimization/18184
5978         * c-typeck.c (comptypes): Do not treat pointers of different
5979         modes or alias-all flags as equivalent.
5980         * tree-ssa.c (tree_ssa_useless_type_conversion_1): Likewise.
5981
5982 2004-11-04  Joseph S. Myers  <joseph@codesourcery.com>
5983
5984         * doc/gty.texi, doc/makefile.texi, doc/sourcebuild.texi: Don't
5985         reference specific C parser files in examples.
5986
5987 2004-11-04  Richard Sandiford  <rsandifo@redhat.com>
5988
5989         PR target/15342
5990         * regrename.c (scan_rtx): Treat the destinations of SETs and CLOBBERs
5991         as OP_INOUT if the instruction is predicated.
5992
5993 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
5994
5995         * bitmap.h: Fix a comment typo.  Follow spelling conventions.
5996         * tree-vectorizer.c: Fix a comment typo.
5997
5998 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
5999
6000         * sdbout.c (SDB_GENERATE_FAKE): Remove.
6001         (gen_fake_label): Don't use SDB_GENERATE_FAKE.
6002         * system.h: Poison SDB_GENERATE_FAKE.
6003         * doc/tm.texi (SDB_GENERATE_FAKE): Remove.
6004
6005 2004-11-04  Ulrich Weigand  <uweigand@de.ibm.com>
6006
6007         * config/s390/s390.md ("*addsi3_sign"): Use canonical RTL.
6008
6009 2004-11-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
6010
6011         PR other/18277
6012         * gthr-posix.h (__gthread_recursive_mutex_init_function): Revert
6013         2004-10-29 patch
6014
6015 2004-11-04  Nathan Sidwell  <nathan@codesourcery.com>
6016
6017         * predict.c (propagate_freq): Make bitno unsigned. Move
6018         npredecessors update out of loop.
6019
6020         * bitmap.h (bitmap_iterator): Remove word_bit and bit
6021         fields. Rename others.
6022         (bmp_iter_common_next_1, bmp_iter_single_next_1,
6023         bmp_iter_single_init, bmp_iter_end_p, bmp_iter_single_next,
6024         bmp_iter_and_not_next_1, bmp_iter_and_not_init,
6025         bmp_iter_and_not_next, bmp_iter_and_next_1, bmp_iter_and_init,
6026         bmp_iter_and_next): Remove.
6027         (bmp_iter_set_init, bmp_iter_and_init, bmp_iter_and_compl_init,
6028         bmp_iter_next, bmp_iter_set, bmp_iter_and, bmp_iter_and_compl):
6029         New.
6030         (EXECUTE_IF_SET_IN_BITMAP, EXECUTE_IF_AND_IN_BITMAP,
6031         EXECUTE_IF_AND_COMPL_IN_BITMAP): Adjust.
6032
6033         * bitmap.h (bitmap_a_or_b, bitmap_a_and_b): Remove.
6034         * df.c (dataflow_set_a_op_b): Use bitmap_and, bitmap_ior,
6035         bitmap_and_into, bitmap_ior_into as appropriate.
6036         * except.c (remove_eh_handler): Likewise.
6037         * global.c (modify_bb_reg_pav, make_accurate_live_analysis): Likewise.
6038         * tree-dfa.c (mark_new_vars_to_rename): Likewise.
6039         * tree-ssa-alias.c (merge_pointed_to_info): Likewise.
6040         * tree-ssa-live.h (live_merge_and_clear): Likewise.
6041         * tree-ssa-loop-ivopts.c (find_best_candidate, try_add_cand_for):
6042         Likewise.
6043
6044         * bitmap.c (bitmap_print): Make bitno unsigned.
6045         * bt-load.c (clear_btr_from_live_range,
6046         btr_def_live_range): Likewise.
6047         * caller-save.c (save_call_clobbered_regs): Likewise.
6048         * cfganal.c (compute_dominance_frontiers_1): Likewise.
6049         * cfgcleanup.c (thread_jump): Likewise.
6050         * cfgrtl.c (safe_insert_insn_on_edge): Likewise.
6051         * conflict.c (conflict_graph_compute): Likewise.
6052         * ddg.c (add_deps_for_use): Likewise.
6053         * df.c (df_refs_update): Likewise.
6054         * except.c (remove_eh_handler): Likewise.
6055         * flow.c (verify_local_live_at_start, update_life_info,
6056         initialize_uninitialized_subregs, propagate_one_insn,
6057         free_propagate_block_info, propagate_block, find_use_as_address,
6058         reg_set_to_hard_reg_set): Likewise.
6059         * gcse.c (clear_modify_mem_tables): Likewise.
6060         * global.c (global_conflicts, build_insn_chain): Likewise.
6061         * ifcvt.c (dead_or_predicable): Likewise.
6062         * local-alloc.c (update_equiv_regs): Likewise.
6063         * loop.c (load_mems): Likewise.
6064         * ra-build.c (livethrough_conflicts_bb, conflicts_between_webs):
6065         Likewise.
6066         * ra-rewrite.c (reloads_to_loads, rewrite_program2, actual_spill):
6067         Likewise.
6068         * reload1.c (order_regs_for_reload, finish_spills): Likewise.
6069         * sched-deps.c (sched_analyze_insn, free_deps): Likewise.
6070         * sched-rgn.c (propagate_deps
6071         * tree-cfg.c (tree_purge_all_dead_eh_edges): Likewise.
6072         * tree-dfa.c (dump_dfa_stats
6073         tree-into-ssa.c (compute_global_livein, insert_phi_nodes,
6074         insert_phi_nodes_for, debug_def_blocks_r, invalidate_name_tags):
6075         Likewise.
6076         * tree-outof-ssa.c (coalesce_ssa_name, coalesce_vars,
6077         free_temp_expr_table, find_replaceable_exprs): Likewise.
6078         * tree-sra.c (scan_function, scalarize_parms): Likewise.
6079         * tree-ssa-alias.c (init_alias_info,
6080         compute_points_to_and_addr_escape,
6081         compute_flow_sensitive_aliasing, maybe_create_global_var): Likewise.
6082         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Likewise.
6083         * tree-ssa-live.c (new_tree_live_info, live_worklist,
6084         calculate_live_on_entry, calculate_live_on_exit, compare_pairs,
6085         sort_coalesce_list, build_tree_conflict_graph, dump_live_info
6086         tree-ssa-loop-manip.c (add_exit_phis_var): Likewise.
6087         tree-ssa-operands.c (get_asm_expr_operands, add_call_clobber_ops,
6088         add_call_read_ops): Likewise.
6089         * tree-ssa-pre.c (bitmap_print_value_set, insert_aux): Likewise.
6090         * tree-ssa-live.h (num_var_partitions): Return unsigned.
6091
6092 2004-11-03  Dorit Naishlos  <dorit@il.ibm.com>
6093
6094         PR tree-optimization/18009
6095         * tree-vectorizer.h (enum dr_alignment_support): New type.
6096         (MAX_NUMBER_OF_UNALIGNED_DATA_REFS): Removed.
6097         (LOOP_UNALIGNED_DR): replaced with LOOP_VINFO_UNALIGNED_DR and holds a
6098         single data_reference (instead of a varray of references).
6099         * tree-vectorizer.c (new_loop_vec_info): Likewise.
6100         (vect_gen_niters_for_prolog_loop): Likewise.
6101         (vect_update_inits_of_drs): Likewise.
6102
6103         (vect_update_inits_of_drs): Setting of DR_MISALIGNMENT moved to
6104         vect_enhance_data_refs_alignment.
6105         (vect_do_peeling_for_alignment): Likewise.
6106         (vect_enhance_data_refs_alignment): Decide if and by how much to peel;
6107         this functionality used to be in vect_analyze_data_refs_alignment.
6108         Also update DR_MISALIGNMENT due to peeling; this functionality used to
6109         be in vect_update_inits_of_drs and vect_do_peeling_for_alignment).
6110         (vect_analyze_data_refs_alignment): Decision on whether and by how much
6111         to peel moved to vect_enhance_data_refs_alignment. Call
6112         vect_supportable_dr_alignment.
6113
6114         (vect_compute_data_ref_alignment): Set STMT_VINFO_VECTYPE.
6115         (vect_compute_data_refs_alignment): Return bool. Consider return value
6116         of vect_compute_data_ref_alignment and return true/false accordingly.
6117         (vect_enhance_data_refs_alignment): Consider return value of
6118         vect_compute_data_refs_alignment and return true/false accordingly.
6119
6120         (vect_supportable_dr_alignment): New function.
6121         (vectorizable_store): Call vect_supportable_dr_alignment.
6122         (vectorizable_load): Call vect_supportable_dr_alignment. Alignment
6123         support checks moved from here to vect_supportable_dr_alignment.
6124
6125         (vect_transform_loop): Avoid 80 columns overflow.
6126
6127 2004-11-03  Andrew Pinski  <pinskia@physics.uc.edu>
6128
6129         * timevar.c (timevar_enable): Change from
6130         static.
6131         (timevar_push): Rename to ...
6132         (timevar_push_1): this and remove the
6133         enabled check.
6134         (timevar_pop): Rename to ...
6135         (timevar_pop_1): this and remove the
6136         enabled check.
6137         * timevar.h (POP_TIMEVAR_AND_RETURN): Use do/while loops.
6138         (timevar_pop): New macro.
6139         (timevar_push): New macro.
6140         (timevar_enable): Declare.
6141
6142 2004-11-03  Andrew Pinski  <pinskia@physics.uc.edu>
6143
6144         * config/darwin.h (REAL_LIBGCC_SPEC): Define to use shared
6145         libgcc for shared libraries.
6146
6147 2004-11-03  Ulrich Weigand  <uweigand@de.ibm.com>
6148
6149         * config/s390/s390-protos.h (s390_split_access_reg): Add prototype.
6150         * config/s390/s390.c (s390_split_access_reg): New function.
6151         (regclass_map): Add access registers.
6152         (get_thread_pointer): Use access register instead of UNSPEC_TP.
6153         * config/s390/s390.h (FIRST_PSEUDO_REGISTER): Set to 38.
6154         (ACCESS_REGNO_P, ACCESS_REG_P): New macros.
6155         (TP_REGNUM): New define.
6156         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
6157         REG_ALLOC_ORDER): Add access registers.
6158         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK, CLASS_MAX_NREGS,
6159         CANNOT_CHANGE_MODE_CLASS): Support access registers.
6160         (enum reg_class): Add ACCESS_REGS.
6161         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Likewise.
6162         (REG_CLASS_FROM_LETTER): Add 't' constraint.
6163         (REGISTER_NAMES): Add access registers.
6164         * config/s390/s390.md (UNSPEC_TP): Remove.
6165         ("*movdi_64"): Add access register alternatives.  Provide splitters
6166         to split DImode access register <-> GPR moves into SImode moves.
6167         ("*movsi_zarch", "*movsi_esa"): Add access register alternatives.
6168         ("movstrictsi"): Likewise.
6169         ("get_tp_64", "get_tp_31"): Reimplement using access registers.
6170         ("set_tp_64", "set_tp_31"): Likewise.
6171         ("*set_tp"): New insn.
6172
6173 2004-11-03  Kazu Hirata  <kazu@cs.umass.edu>
6174
6175         * tree-phinodes.c (resize_phi_node): Copy only a portion of
6176         the PHI node currently in use.
6177
6178 2004-11-03  Andrew Pinski  <pinskia@physics.uc.edu>
6179
6180         PR tree-opt/18231
6181         * tree.c (staticp) <case FUNCTION_DECL>: Nested functions are static
6182         also.
6183
6184 2004-11-03  Andrew MacLeod  <amacleod@redhat.com>
6185
6186         PR tree-optimization/18270
6187         * tree-outof-ssa.c (analyze_edges_for_bb): If a block has incoming
6188         abnormal edges, commit all pending stmts on incoming edges.
6189
6190 2004-11-03  Ulrich Weigand  <uweigand@de.ibm.com>
6191
6192         * tree-ssa-loop-ivopts.c (get_address_cost): Offset zero does not
6193         cause extra costs.  Generate canonical RTL.
6194
6195 2004-11-02  Daniel Berlin  <dberlin@dberlin.org>
6196
6197         * lambda-code.c (lambda_compute_auxillary_space): Update comments.
6198         (lambda_compute_target_space). Ditto.
6199         * lambda.h (lambda_trans_matrix): Ditto.
6200         (lambda_linear_expression): Ditto.
6201         (lambda_body_vector): Ditto.
6202         (lambda_loopnest): Ditto.
6203         * tree-loop-linear.c (gather_interchange_stats): Combine tests,
6204         update comments, and remove pointless addition of 0.
6205         (linear_transform_loops): Update comments.
6206
6207 2004-11-03  Sebastian Pop  <pop@cri.ensmp.fr>
6208
6209         * tree.c (tree_fold_gcd): Use FLOOR_MOD_EXPR instead of
6210         CEIL_MOD_EXPR.
6211
6212 2004-11-03 Jeff Law  <law@redhat.com>
6213
6214         * predict.c (struct block_info_def): Kill "tovisit" field.
6215         (propagate_freq): Accept new "tovisit" parameter.  Change
6216         read/write access methods for "tovisit" to check the "tovisit"
6217         bitmap instead of a bit in block_info_def.
6218         (estimate_loops_at_level): Allocate "tovisit" bitmap.  Pass
6219         it to propagate_freq.
6220
6221         * stmt.c (expand_case): Speed up code to detect duplicate case
6222         label targets and count unique case label targets.
6223
6224 2004-11-03  Kazu Hirata  <kazu@cs.umass.edu>
6225
6226         * cppdefault.c, cppdefault.h, timevar.h: Update copyright.
6227
6228 2004-11-03  Kazu Hirata  <kazu@cs.umass.edu>
6229
6230         * bitmap.h, dbxout.c, tree-mudflap.c: Fix comment formatting.
6231
6232 2004-11-03  Kazu Hirata  <kazu@cs.umass.edu>
6233
6234         * tree-cfg.c (find_taken_edge): Abort if we are given a
6235         statement that is neither COND_EXPR nor SWITCH_EXPR.
6236
6237 2004-11-02  Zdenek Dvorak  <dvorakz@suse.cz>
6238
6239         * fold-const.c (fold): Reassociate also (x - mult) + mult and
6240         (mult - x) + mult.  Cast operands of expression after applying
6241         distributive law to the correct types.  Apply distributive law
6242         to a * c - b * c for all non-float types.
6243
6244 2004-11-02  Geoffrey Keating  <geoffk@apple.com>
6245
6246         * configure.ac: Don't clear STMP_FIXINC or STMP_FIXPROTO just
6247         because we don't want to run them now; instead, set them to
6248         stmp-install-fixproto or stmp-install-fixinc.
6249         * Makefile.in (stmp-install-fixproto): New.
6250         (stmp-install-fixinc): New.
6251         * configure: Regenerate.
6252
6253 2004-11-02  Nathan Sidwell  <nathan@codesourcery.com>
6254
6255         * flow.c (init_propagate_block_info): Use bitmap_empty_p on result
6256         of bitmap_xor.
6257
6258 2004-11-02  Ziemowit Laski  <zlaski@apple.com>
6259
6260         * c-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Remove.
6261         (c_types_compatible_p): Move function definition...
6262         * c-objc-common.c (c_types_compatible_p): ...here.
6263         * c-objc-common.h (LANG_HOOKS_TYPES_COMPATIBLE_P): Moved here from
6264         c-lang.c.
6265
6266 2004-11-02  Steven Bosscher  <stevenb@suse.de>
6267
6268         * cfgloop.h (struct loop): Update comment.
6269         * cse.c (cse_main): Remove obsolete comment.
6270
6271         * expr.h (gen_cond_trap): Move prototype under functions provided
6272         by optabs.c.
6273         (canonicalize_condition, get_condition): Move to...
6274         * rtl.h (canonicalize_condition, get_condition): ...here.
6275         (branch_target_load_optimize): Add comment that this function is
6276         in bt-load.c.
6277         * loop.c (canonicalize_condition, get_condition): Move to...
6278         * rtlanal.c (canonicalize_condition, get_condition): ...here.
6279         * sched-deps.c (get_condition): Rename to sched_get_condition.
6280         (add_dependence): Update this caller.
6281
6282 2004-11-02  Andrew Pinski  <pinskia@physics.uc.edu>
6283
6284         PR tree-opt/16808
6285         * tree-ssa.c (replace_immediate_uses): If we call fold_stmt, make sure
6286         that the vops get marked for renaming.
6287
6288 2004-11-02  Andreas Krebbel  <krebbel1@de.ibm.com>
6289
6290         * config/s390/s390.md ("movcc"): Set type attribute.
6291
6292 2004-11-02  Kazu Hirata  <kazu@cs.umass.edu>
6293
6294         * tree-phinodes.c (add_phi_arg): Add an assertion that the
6295         edge already exists.
6296
6297 2004-11-02  Kazu Hirata  <kazu@cs.umass.edu>
6298
6299         * tree-phinodes.c (remove_phi_arg_num): Do not zero the
6300         element that's being removed.
6301
6302 2004-11-02  Kazu Hirata  <kazu@cs.umass.edu>
6303
6304         * tree-ssa-threadupdate.c (copy_phis_to_block): Install PHI
6305         arguments using PENDING_STMT.
6306         (thread_block): Call copy_phis_to_block after redirecting an
6307         edge.
6308
6309 2004-11-02  Nathan Sidwell  <nathan@codesourcery.com>
6310
6311         * bitmap.h (bitmap_and, bitmap_and_into, bitmap_and_compl,
6312         bitmap_and_compl_into, bitmap_ior, bitmap_iot_into,
6313         bitmap_ior_compl, bitmap_xor, bitmap_xor_into): Produce void.
6314         (bitmap_ior_and_compl_into): Produce bool.
6315         (bitmap_union_of_diff): Rename to ...
6316         (bitmap_ior_and_compl): ... here. Produce bool.
6317         * bitmap.c (bitmap_ior_and_compl_into): Return bool. Use
6318         bitmap_operation directly.
6319         (bitmap_union_of_diff): Rename to ...
6320         (bitmap_ior_and_compl): ... here. Return bool, use
6321         bitmap_operation directly.
6322         * df.c (df_rd_transfer_function): Use bitmap_ior_and_compl.
6323         (df_ru_transfer_function, df_lr_transfer_function): Likewise.
6324         * global.c (modify_bb_reg_pav): Likewise.
6325
6326         * bitmap.h (bitmap_equal_p): Return bool.
6327         (bitmap_intersect_p, bitmap_intersect_compl_p): Declare.
6328         * bitmap.c (bitmap_equal_p): Return bool. Compare directly.
6329         (bitmap_intersect_p, bitmap_intersect_compl_p): New.
6330         * flow.c (calculate_global_regs_live): Use bitmap_intersect_p and
6331         bitmap_intersect_compl_p.
6332         * ifcvt (dead_or_predicable): Likewise.
6333
6334 2004-11-02  Nathan Sidwell  <nathan@codesourcery.com>
6335
6336         PR rtl-optimization/17104
6337         * config/rs6000/rs6000.c (rs6000_emit_move): Don't wrap small
6338         loads in zero_extend.
6339
6340 2004-11-02  Danny Smith  <dannysmith@users.sourceforge.net>
6341
6342         PR debug/18242
6343         * toplev.c (debug_type_names): Remove "dwarf-1".
6344
6345 2004-11-02  Ben Elliston  <bje@au.ibm.com>
6346
6347         * timevar.h (timevar_get): Remove.
6348         * timevar.c (timevar_get): Remove unused function.
6349
6350 2004-11-02  Joseph S. Myers  <joseph@codesourcery.com>
6351
6352         * doc/include/texinfo.tex: Update from Texinfo CVS.
6353
6354 2004-11-02  Ben Elliston  <bje@au.ibm.com>
6355
6356         * cppdefault.h (cpp_SYSROOT): Remove.
6357         * cppdefault.c (cpp_SYSROOT): Likewise.
6358
6359 2004-11-01  Andrew MacLeod  <amacleod@redhat.com>
6360
6361         PR tree-optimization/16447
6362         * tree-cfg.c (bsi_commit_one_edge_insert): Rename from
6363         bsi_commit_edge_inserts_1, and make funtion external.  Return new block.
6364         (bsi_commit_edge_inserts): Use renamed bsi_commit_one_edge_insert.
6365         * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Enable listing.
6366         * tree-flow.h (bsi_commit_one_edge_insert): Extern decl.
6367         * tree-outof-ssa.c (rewrite_trees): Don't commit edges here.
6368         (same_stmt_list_p): New.  Return TRUE if edge is to be forwarded.
6369         (identical_copies_p): New.  Return true is two copies are the same.
6370         (identical_stmt_lists_p): New.  Return true if stmt lists are the same.
6371         (analyze_edges_for_bb): New.  Determine how best to insert edge stmts
6372         for a basic block.
6373         (perform_edge_inserts): New.  Determine what to do with all stmts that
6374         have been inserted on edges.
6375         (remove_ssa_form):  Analyze and commit edges from here.
6376
6377 2004-11-01  Andrew Pinski  <pinskia@physics.uc.edu>
6378
6379         PR bootstrap/18232
6380         * bitmap.h (bmp_iter_end_p): Take a const pointer instead of a struct.
6381         (EXECUTE_IF_SET_IN_BITMAP): Update call to bmp_iter_end_p.
6382         (EXECUTE_IF_AND_COMPL_IN_BITMAP): Likewise.
6383         (EXECUTE_IF_AND_IN_BITMAP): Likewise.
6384
6385 2004-11-01  Joseph S. Myers  <joseph@codesourcery.com>
6386
6387         PR c/18239
6388         * c-decl.c (get_parm_info): Allow FUNCTION_DECLs to appear amongst
6389         parameter declarations.
6390
6391 2004-11-01  Andreas Krebbel  <krebbel1@de.ibm.com>
6392
6393         * config/s390/s390.c (regclass_map): Put reg 33 (cc) to CC_REGS group.
6394         (s390_secondary_input_reload_class)
6395         (s390_secondary_output_reload_class): Use GENERAL_REGS to reload a cc
6396         register.
6397         (s390_expand_cmpmem): Enable cmpmem implementation.
6398         * config/s390/s390.h (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS):
6399         Added three new classes: CC_REGS, ADDR_CC_REGS, GENERAL_CC_REGS.
6400         (REG_CLASS_FROM_LETTER): New constraint 'c' added.
6401         * config/s390/s390.md ("movcc"): New insn pattern.
6402         * doc/md.texi: Document 'c' constraint for s390.
6403
6404 2004-11-01  Nathan Sidwell  <nathan@codesourcery.com>
6405
6406         PR c++/18064
6407         * doc/extend.texi (Deprecated Features): Deprecate G++ covariant
6408         extension.
6409
6410 2004-10-16  Daniel Berlin  <dberlin@dberlin.org>
6411
6412         Fix PR tree-optimization/17672
6413         Fix PR tree-optimization/18168
6414
6415         * lambda-code.c (lambda_lattice_compute_base): Fix reversed
6416         assert test.
6417         (gcc_tree_to_linear_expression): Add extra to existing constant.
6418         (depth_of_nest): Factor out function used in various places.
6419         (gcc_loop_to_lambda_loop): Clean up code a little bit. No
6420         functional changes.
6421         (find_induction_var_from_exit_cond): Stop guessing, and just
6422         get the right answer :).
6423         (gcc_loopnest_to_lambda_loopnest): Remove useless pre-allocation.
6424         Print out message about result of attempt to create perfect nest.
6425         (lbv_to_gcc_expression): Add type argument, use it to do math
6426         and induction variable creation.
6427         (lle_to_gcc_expression): Ditto.
6428         (lambda_loopnest_to_gcc_loopnest): Create new iv with same type as
6429         oldiv. Pass type argument to lle_to_gcc_expression and
6430         lbv_to_gcc_expression.
6431         Reset number of iterations after transformation.
6432         (perfect_nestify): Remove useless pre-allocation, and cleanup
6433         a small amount.
6434
6435         * tree-data-ref.c (build_classic_dist_vector): Return false for
6436         dependences completely outside of the loop nest we asked about.
6437         (build_classic_dir_vector): Ditto.
6438         (compute_data_dependences_for_loop): Only add dependence relations
6439         inside the loop we asked about.
6440
6441         * tree-loop-linear.c (linear_transform_loops): Use DDR_SIZE_VECT.
6442         Compute immediate uses.
6443
6444         * tree-optimize.c: Move linear_transform_loops to before ivcanon.
6445
6446 2004-11-01  Kazu Hirata  <kazu@cs.umass.edu>
6447
6448         * tree-cfg.c (thread_jumps): Fix a comment typo.
6449
6450 2004-11-01  Kazu Hirata  <kazu@cs.umass.edu>
6451
6452         * tree-cfg.c (thread_jumps): Fix a comment typo.
6453
6454 2004-10-31  Nicolas Pitre <nico@cam.org>
6455
6456         * config/arm/ieee754-sf.S (floatdisf): Fix regression with
6457         values smaller than 2^32.
6458
6459 2004-10-31 Jeff Law  <law@redhat.com>
6460
6461         * cfgloop.h (struct loop): Remove unused "nodes" field.
6462         * timevar.def (TV_TREE_LOOP_BOUNDS): New.
6463         * tree-data-ref.c (find_data_references_in_loop): Use get_loop_body
6464         instead of calling flow_bb_inside_loop_p for every basic block
6465         in the function.
6466         * tree-ssa-loop.c (pass_record_bounds): Use TV_TREE_LOOP_BOUNDS.
6467
6468 2004-10-31  Graham Stott <graham.stott@btinternet.com>
6469
6470         * config/pa/pa.md: (prefetch_64, prefetch_32): Fix typo.  Use
6471         INT_5_BITS instead of VAL_5_BITS_P.
6472
6473 2004-10-31  Roger Sayle  <roger@eyesopen.com>
6474
6475         PR middle-end/14521
6476         * tree-inline.c (inline_forbidden_p_1): Use %qF instead of '%F'
6477         for consistent quoting in diagnostic messages.
6478         (expand_call_inline): Likewise.
6479         * tree-optimize.c (tree_rest_of_compilation): Likewise.
6480         * tree-ssa.c (warn_uninitialized_var): Likewise.
6481         (warn_uninitialized_phi): Likewise.
6482
6483 2004-10-31  Richard Sandiford  <rsandifo@redhat.com>
6484
6485         * config/mips/mips.c (mips_cannot_change_mode_class): Use a stricter
6486         mode check.
6487
6488 2004-10-31  Kazu Hirata  <kazu@cs.umass.edu>
6489
6490         * c-common.c: Fix a comment typo.
6491
6492 2004-10-31  Jason Merrill  <jason@redhat.com>
6493
6494         PR middle-end/17526
6495         * tree-gimple.c (is_gimple_mem_rhs): Also require a val for
6496         aggregate types that are not BLKmode.
6497
6498 2004-10-30  Ziemowit Laski  <zlaski@apple.com>
6499
6500         * c-common.h (objc_lookup_ivar): Add second parameter to
6501         prototype.
6502         * c-typeck.c (build_external_ref): After looking up symbol,
6503         pass it to objc_lookup_ivar() to decide whether it or the
6504         ivar should be used, rather than deciding the issue locally.
6505         * stub-objc.c (objc_lookup_ivar): Add an OTHER parameter,
6506         which is simply returned in the non-ObjC case.
6507
6508 2004-10-30  Danny Smith  <dannysmith@users.sourceforge.net>
6509
6510         * sdbout.c (sdbout_symbol): Do not output type .def statements
6511         for builtin types.
6512
6513 2004-10-30  Gabriel Dos Reis  <gdr@integrable-solutions.net>
6514
6515         * c-common.c (catenate_strings): New.
6516         (c_parse_error): Use it.  Don't over-escape.
6517
6518 2004-10-30  Kaz Kojima  <kkojima@gcc.gnu.org>
6519
6520         * config/sh/sh.c (calc_live_regs): Declare reg as unsigned and
6521         modify the for loop expressions for it.  Remove unnecessary casts.
6522         (sh_expand_prologue): Declare reg as unsigned.
6523         (sh_gimplify_va_arg_expr): Initinalize lab_over.
6524         (sh_handle_sp_switch_attribute): Add const qualifier appropriately.
6525
6526 2004-10-30  Geoffrey Keating  <geoffk@apple.com>
6527
6528         * doc/invoke.texi (Darwin Options): Improve description of
6529         how the subtype is chosen.
6530
6531 2004-10-30  Roger Sayle  <roger@eyesopen.com>
6532
6533         PR middle-end/18096
6534         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Check that
6535         the stack adjustment, "size", is valid for Pmode.  If the stack
6536         frame is too large, generate a trap insn and issue a warning.
6537
6538 2004-10-30  Kazu Hirata  <kazu@cs.umass.edu>
6539
6540         * tree-ssa-dom.c: Fix comment typos.
6541
6542 2004-10-30  Kaz Kojima  <kkojima@gcc.gnu.org>
6543
6544         * config/sh/sh.c (prepare_move_operands): Use operands[0]
6545         for the output rtl if no_new_pseudos is set.  Remove redundant
6546         line.
6547
6548 2004-10-30  Joseph S. Myers  <joseph@codesourcery.com>
6549
6550         PR c/16666
6551         * c-decl.c (start_function): Don't check for DECL_BUILT_IN when
6552         determining whether to copy parameter types from a previous
6553         prototype declaration.
6554
6555 2004-10-29  Roger Sayle  <roger@eyesopen.com>
6556
6557         PR rtl-optimization/17581
6558         * cselib.c (cselib_process_insn): The last instruction of a libcall
6559         block, with the REG_RETVAL note, should be considered in the libcall.
6560         * gcse.c (do_local_cprop): Allow constants to be propagated outside
6561         of libcall blocks.
6562         (adjust_libcall_notes): Use simplify_replace_rtx instead of
6563         replace_rtx to avoid creating invalid RTL in REG_RETVAL notes.
6564
6565 2004-10-30  Kazu Hirata  <kazu@cs.umass.edu>
6566
6567         * tree-phinodes.c (create_phi_node): Don't zero PHI_REWRITTEN.
6568
6569 2004-10-29 Jeff Law  <law@redhat.com>
6570
6571         * tree-ssa-dom.c (struct edge_info): New structure holding
6572         edge equivalences and edge redirection information.
6573         (get_eq_expr_value, record_dominating_conditions): Kill.
6574         (propagate_to_outgoing_edges): Renamed from cprop_into_phis.
6575         Call record_edge_info.
6576         (allocate_edge_info, free_edge_info): New.
6577         (tree_ssa_dominator_optimize): Use propagate_to_outgoing_edges
6578         rather than cprop_into_phis.  Free all edge infos before threading
6579         jumps.
6580         (thread_across_edge): Allocate new edge info structures as needed
6581         and store the redirection target into the edge info structure
6582         instead of the edge's AUX field.
6583         (dom_opt_initialize_block): Mark unused argument with ATTRIBUTE_UNUSED.
6584         (record_equivalence_from_incoming_edge): Lose unnecessary argument.
6585         Revamp code which finds and records equivalences associated with
6586         edges to use saved data in the edge_info structure.
6587         (record_equivalencs_from_phis): Similarly.
6588         (dom_opt_finalize_block): Revamp code which finds and records
6589         equivalences associated with edges to use saved data in the
6590         edge_info structure.
6591         (build_and_record_new_cond): New function.
6592         (record_conditions): Use build_and_record_new_cond to record
6593         dominating conditions.
6594         (record_edge_info): New function.
6595         (record_range): Tighten test for conditions which create
6596         useful range records.
6597
6598 2004-10-29  Geoffrey Keating  <geoffk@apple.com>
6599
6600         * config/i386/darwin.h (ASM_SPEC): Simplify.
6601         (SUBTARGET_EXTRA_SPECS): Add darwin_subarch spec.
6602         * config/rs6000/darwin.h (DARWIN_SUBARCH_SPEC): New.
6603         (SUBTARGET_EXTRA_SPECS): Add darwin_subarch spec.
6604         * config/darwin.h (LINK_COMMAND_SPEC): Don't pass -arch here.
6605         (LINK_SPEC): Do pass -arch here.  Handle -force_cpusubtype_ALL
6606         in all cases.  Pass the right -arch or -arch_only based on -mcpu.
6607         (ASM_SPEC): Handle -force_cpusubtype_ALL.
6608         * doc/invoke.texi (Darwin Options): Improve documentation for
6609         Darwin linker (and libtool) switches.
6610
6611         * config/rs6000/darwin-fallback.c: Include <mach/thread_status.h>.
6612
6613 2004-10-29  Stan Shebs  <shebs@apple.com>
6614
6615         * config/rs6000/darwin-tramp.asm: Make more 64-bit-friendly.
6616
6617 2004-10-29  Kazu Hirata  <kazu@cs.umass.edu>
6618
6619         * tree-phinodes.c (allocate_phi_node): New.
6620         (make_phi_node, resize_phi_node): Use it.
6621
6622 2004-10-29  David Edelsohn  <edelsohn@gnu.org>
6623
6624         * config/rs6000/sysv4.h (TARGET_POWER): Define as 0.
6625         * config/rs6000/darwin.h (TARGET_POWER): Define as 0.
6626
6627 2004-10-29  Kazu Hirata  <kazu@cs.umass.edu>
6628
6629         * tree-phinodes.c (make_phi_node, resize_phi_node): Don't zero
6630         the whole PHI node.
6631         * tree.h (tree_phi_node): Tell the garbage collector to chase
6632         num_args arguments.
6633
6634 2004-10-29  Richard Earnshaw  <rearnsha@arm.com>
6635
6636         * opts.c (decode_options): Lower the crossjump threshold for -Os.
6637
6638 2004-10-29  Diego Novillo  <dnovillo@redhat.com>
6639
6640         * tree.h (struct tree_ssa_name): Remove field 'equiv'.
6641
6642 2004-10-28  Nathan Sidwell  <nathan@codesourcery.com>
6643
6644         * bitmap.h (bitmap_empty_p): New.
6645         (bitmap_and, bitmap_and_into, bitmap_and_compl,
6646         bitmap_and_compl_into, bitmap_ior, bitmap_ior_into,
6647         bitmap_ior_compl, bitmap_xor, bitmap_xor_into): New bitmap
6648         operation macros.
6649         (bitmap_ior_and_compl): Rename to ...
6650         (bitmap_ior_and_compl_into): ... here.
6651         * bitmap.c (bitmap_equal_p): Use bitmap_xor.
6652         (bitmap_ior_and_compl): Rename to ...
6653         (bitmap_ior_and_compl_into): ... here. Adjust. Return changed
6654         flag.
6655         (bitmap_union_of_diff): Use renamed bitmap functions.
6656         * basic-block.h (AND_REG_SET, AND_COMPL_REG_SET, IOR_REG_SET,
6657         XOR_REG_SET, IOR_AND_COMPL_REG_SET): Likewise.
6658         * cfgrtl.c (safe_insert_insn_on_edge): Likewise.
6659         * df.c (df_bb_rd_local_compute)
6660         * flow.c (calculate_global_regs_live,
6661         init_propagate_block_info): Likewise.
6662         * ifcvt.c (find_if_case_1, find_if_case_2,
6663         dead_or_predicable): Likewise.
6664         * ra-build.c (union_web_part_roots, livethrough_conflicts_bb,
6665         reset_conflicts, conflicts_between_webs): Likewise.
6666         * ra-rewrite.c (reloads_to_loads, rewrite_program2,
6667         detect_web_parts_to_rebuild): Likewise.
6668         * sched-ebb.c (compute_jump_reg_dependencies): Likewise.
6669         * tree-int-ssa.c (insert_phi_nodes_for, rewrite_into_ssa): Likewise.
6670         * tree-sra.c (decide_instantiations): Likewise.
6671         * tree-ssa-alias.c (create_name_tags,
6672         merge_pointed_to_info): Likewise.
6673         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
6674         * tree-ssa-loop-im.c (move_computations): Likewise.
6675         * tree-ssa-operands.c (get_call_expr_operands): Likewise.
6676         * tree-ssa-pre.c (fini_pre): Likewise.
6677         * tree-ssa.c (verify_flow_sensitive_alias_info): Likewise.
6678         * tree-ssanames.c (any_marked_for_rewrite_p): Likewise.
6679         * tree-vectorizer.c (vectorize_loops): Likewise.
6680
6681 2004-10-29  Nick Clifton  <nickc@redhat.com>
6682
6683         config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): When
6684         adding the PIC register to the fixed_regs array, also add it
6685         to the call_used_regs array.
6686
6687 2004-10-29  Eric Botcazou  <ebotcazou@libertysurf.fr>
6688
6689         * gthr-posix.h (__gthread_recursive_mutex_init_function): Guard
6690         with #ifdef PTHREAD_MUTEX_RECURSIVE/#endif pairs.
6691
6692 2004-10-28  Daniel Berlin  <dberlin@dberlin.org>
6693
6694         * tree-into-ssa.c (rewrite_virtual_phi_arguments): New function.
6695         (rewrite_blocks): Modify argument, and use it to decide which
6696         function to call.
6697         (rewrite_def_def_chains): Call rewrite_blocks with true here.
6698         (rewrite_into_ssa): and call it with false here.
6699
6700 2004-10-29  Kazu Hirata  <kazu@cs.umass.edu>
6701
6702         * tree-phinodes.c (add_phi_arg): Turn an "if" that always
6703         triggers into gcc_assert.
6704
6705 2004-10-28  Diego Novillo  <dnovillo@redhat.com>
6706
6707         PR tree-optimization/16728
6708         * tree-flow.h (get_ptr_info): Declare.
6709         * tree-ssa-alias.c (get_ptr_info): Make extern.
6710         * tree-ssa-copy.c (merge_alias_info): Merge flow-sensitive
6711         alias information.
6712
6713 2004-10-28  Stan Shebs  <shebs@apple.com>
6714
6715         * config/rs6000/darwin.h (SUBTARGET_EXTRA_SPECS): Handle -m64.
6716         * config/rs6000/rs6000.c (rs6000_darwin_file_start): Add ppc64
6717         case.
6718
6719 2004-10-28  Frank Ch. Eigler  <fche@redhat.com>
6720
6721         * tree-mudflap.c (mudflap_init): Mark cache-lookup decls to
6722         prevent their later unnecessary registration.
6723         (mf_build_check_statement_for): Remove "addr" argument, and
6724         related "__mf_value" generated code.  Update callers.
6725         (mf_decl_eligible_p): New function, factored from mx_register_decls.
6726         (mx_register_decls): Call it.
6727         (mf_xform_derefs_1): Rewrite COMPONENT_REF and ARRAY_REF cases
6728         to restore support for complex nested expressions.
6729         (mudflap_enqueue_decl): Simplify.  Move registration call emission
6730         out ...
6731         (mudflap_finish_file): ... to here.
6732         (mudflap_enqueue_constant): Remove dump code.
6733
6734 2004-10-28  Zack Weinberg  <zack@codesourcery.com>
6735
6736         PR 18199
6737         * dbxout.c (dbxout_begin_complex_stabs_noforcetext): New function.
6738         (DBX_FINISH_STABS): Add (unused by default) SYM parameter.
6739         (dbxout_finish_complex_stabs): Update to match.
6740         (dbxout_symbol_location): Call emit_pending_bincls_if_required
6741         and FORCE_TEXT before DBX_STATIC_BLOCK_START.  Use
6742         dbxout_begin_complex_stabs_noforcetext.
6743         * xcoffout.h (DBX_FINISH_STABS): Restore special case for
6744         N_GSYM, using new SYM parameter.  Correct logic for special
6745         cases for N_FUN.
6746
6747         * varasm.c (function_section): If DECL is NULL_TREE, don't try
6748         to do anything else.  Do not call get_insns if cfun or
6749         cfun->emit are NULL.
6750
6751 2004-10-28  Adam Nemet  <anemet@lnxw.com>
6752
6753         PR middle-end/18160
6754         * c-typeck.c (c_mark_addressable): Issue error if address of a
6755         register variable is taken.  Use "%qD" to print DECL_NAME.
6756
6757 2004-10-28  Diego Novillo  <dnovillo@redhat.com>
6758
6759         * opts.c (decode_options): Don't run PRE at -Os.
6760
6761 2004-10-28  Richard Henderson  <rth@redhat.com>
6762
6763         * config/alpha/alpha.md (movqicc_internal): Allow exactly one
6764         zero in the conditional.
6765         (movhicc_internal, movsicc_internal, movdicc_internal): Likewise.
6766
6767 2004-10-28  Richard Henderson  <rth@redhat.com>
6768
6769         * cse.c (memory_extend_rtx): Remove.
6770         (cse_main): Don't set it.
6771         (cse_insn): Use a local buffer instead.
6772
6773 2004-10-28  Andreas Krebbel  <krebbel1@de.ibm.com>
6774
6775         * profile.c (branch_prob): Call to init_edge_profiler added.
6776         * rtl-profile.c (rtl_init_edge_profiler): New function.
6777         (rtl_gen_edge_profiler): Replaced call to insert_insn_on_edge with
6778         call to safe_insert_insn_on_edge.
6779         (rtl_profile_hooks): rtl_init_edge_profiler added.
6780         * tree-profile.c (tree_init_edge_profiler): New function.
6781         (tree_profile_hooks): tree_init_edge_profiler added.
6782         * value-prof.h (profile_hooks) init_edge_profiler prototype added.
6783
6784 2004-10-28  Nick Clifton  <nickc@redhat.com>
6785
6786         * config/iq2000/iq2000.c (iq2000_expand_epilogue): Use
6787         emit_jump_insn() to generate the return instruction.
6788
6789 2004-10-28  Kazu Hirata  <kazu@cs.umass.edu>
6790
6791         * tree-phinodes.c: Remove trailing whitespace.
6792
6793 2004-10-28  Kazu Hirata  <kazu@cs.umass.edu>
6794
6795         * tree-ssa-loop-ivopts.c: Fix a comment typo.
6796         * doc/invoke.texi: Fix a typo.
6797
6798 2004-10-28  Kazu Hirata  <kazu@cs.umass.edu>
6799
6800         * Makefile.in (OBJS-common): Remove duplicates.
6801
6802 2004-10-28  Kazu Hirata  <kazu@cs.umass.edu>
6803
6804         * lambda-code.c (nestify_update_pending_stmts): Remove.
6805         (perfect_nestify): Use flush_pending_stmts instead of
6806         nestify_update_pending_stmts.
6807         * tree-cfg.c (tree_make_forwarder_block): Use
6808         flush_pending_stmts.
6809         * tree-flow.h: Add a prototype for flush_pending_stmts.
6810         * tree-ssa-loop-manip.c (tree_duplicate_loop_to_header_edge):
6811         Use flush_pending_stmts.
6812         (lv_update_pending_stmts): Remove.
6813         (tree_ssa_loop_version): Use flush_pending_stmts instead of
6814         lv_update_pending_stmts.
6815         * tree-ssa.c (flush_pending_stmts): New.
6816
6817 2004-10-28  Ulrich Weigand  <uweigand@de.ibm.com>
6818
6819         PR target/15286
6820         * final.c (alter_subreg): Compute correct offset to use with
6821         paradoxical SUBREGs of memory operands.
6822         * recog.c (general_operand): Allow paradoxical SUBREGs of
6823         memory operands after reload.
6824         * simplify-rtx.c (simplify_gen_subreg): Fail if simplify_subreg
6825         has failed when passed a hard register.
6826
6827 2004-10-28  Aldy Hernandez  <aldyh@redhat.com>
6828
6829         * function.c (assign_parm_setup_block): Handle parallels correctly.
6830
6831 2004-10-28  Kaz Kojima  <kkojima@gcc.gnu.org>
6832
6833         * final.c (shorten_branches): Initialize flags structure.
6834
6835 2004-10-28  Nathan Sidwell  <nathan@codesourcery.com>
6836
6837         * tree.c (int_cst_node, int_cst_hash_table): New variables.
6838         (init_ttree): Initialize them.
6839         (int_cst_hash_hash, int_cst_hash_eq): New hashing functions.
6840         (build_int_cst_wide): Use hash table for oversized integers.
6841
6842 2004-10-28  Nick Clifton  <nickc@redhat.com>
6843
6844         * config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Define
6845         begin_label.
6846
6847 2004-10-27  Richard Henderson  <rth@redhat.com>
6848
6849         PR middle-end/18163
6850         * expr.c (emit_group_load): Don't go force temporary for memory
6851         or concat source.
6852         (emit_group_store): Similarly.
6853
6854 2004-10-27  Andrew Pinski  <pinskia@physics.uc.edu>
6855
6856         PR other/18186
6857         * common.opt (--param): Fix spelling of parameter.
6858
6859 2004-10-27  Andrew Pinski  <pinskia@physics.uc.edu>
6860
6861         PR tree-opt/17529
6862         * tree-cfg.c (remove_useless_stmts_1) <case SWITCH_EXPR>:
6863         Don't fold statement.
6864         <case ASM_EXPR>: Fold the statement.
6865
6866 2004-10-28  Kazu Hirata  <kazu@cs.umass.edu>
6867
6868         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary)
6869         <COND_EXPR>: Use EDGE_COUNT instead of GOTO_DESTINATION.
6870
6871 2004-10-28  Joseph S. Myers  <jsm@polyomino.org.uk>
6872
6873         * doc/contrib.texi, doc/cpp.texi, doc/cppopts.texi,
6874         doc/extend.texi, doc/gcov.texi, doc/install.texi, doc/invoke.texi,
6875         doc/libgcc.texi, doc/md.texi, doc/passes.texi,
6876         doc/sourcebuild.texi, doc/tm.texi: Improve Texinfo formatting.
6877
6878 2004-10-28  Joseph S. Myers  <jsm@polyomino.org.uk>
6879
6880         * doc/c-tree.texi, doc/cpp.texi, doc/implement-c.texi,
6881         doc/invoke.texi, doc/md.texi, doc/passes.texi, doc/tm.texi: Put
6882         punctuation outside quotes.
6883
6884 2004-10-27  David Mosberger  <davidm@hpl.hp.com>
6885             James E Wilson  <wilson@specifixinc.com>
6886
6887         PR target/13158
6888         * config/ia64/ia64.c (ia64_expand_epilogue): Set RTX_FRAME_RELATED_P on
6889         sibcall alloc instruction.
6890         (process_set): Handle sibcall alloc instruction.
6891
6892 2004-10-27  Geoffrey Keating  <geoffk@apple.com>
6893
6894         * config/rs6000/rs6000.c (rs6000_attribute_table): Add
6895         SUBTARGET_ATTRIBUTE_TABLE.
6896         * config/darwin.h (ASM_WEAKEN_DECL): Handle weak_import.
6897         (SUBTARGET_ATTRIBUTE_TABLE): Define.
6898         * config/darwin.c (darwin_handle_weak_import_attribute): New.
6899         (HAVE_DEAD_STRIP): Delete.
6900         (no_dead_strip): Don't test HAVE_DEAD_STRIP.
6901         * config/darwin-protos.h (darwin_handle_weak_import_attribute):
6902         Prototype.
6903
6904         * doc/tm.texi (USE_SELECT_SECTION_FOR_FUNCTIONS): Document.
6905
6906         * config/darwin.h (GTHREAD_USE_WEAK): Define.
6907
6908 2004-10-28  Ben Elliston  <bje@au.ibm.com>
6909
6910         * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): New.
6911         (PARAM_SRA_FIELD_STRUCTURE_RATIO): Likewise.
6912         * params.h (SRA_MAX_STRUCTURE_SIZE): New.
6913         (SRA_FIELD_STRUCTURE_RATIO): Likewise.
6914         * tree-sra.c: Include "params.h".
6915         (decide_block_copy): Use new parameters.
6916         * doc/invoke.texi (Optimize Options): Document new SRA pass
6917         parameters sra-max-structure-size and sra-field-structure-ratio.
6918
6919 2004-10-27  Nicolas Pitre <nico@cam.org>
6920
6921         * config/arm/ieee754-df.S (floatdidf): Fix regression with big values.
6922
6923 2004-10-27  Zdenek Dvorak  <dvorakz@suse.cz>
6924
6925         PR tree-optimization/18048
6926         * fold-const.c (try_move_mult_to_index): New function.
6927         (fold): Use try_move_mult_to_index.
6928         * tree-ssa-loop-ivopts.c (try_add_cand_for): Prefer common candidates.
6929         * tree-ssa-loop-niter.c (number_of_iterations_cond): Produce
6930         an all-ones unsigned constant without extra bits.
6931         * tree.c (build_low_bits_mask): New function.
6932         * tree.h (build_low_bits_mask): Declare.
6933
6934 2004-10-27  David Edelsohn  <edelsohn@gnu.org>
6935
6936         PR target/17956
6937         * config/rs6000/rs6000.md (maxsf3): Add !flag_trapping_math to
6938         final condition.
6939         (minsf3): Same.
6940         (maxdf3): Same.
6941         (mindf3): Same.
6942
6943 2004-10-27  Kazu Hirata  <kazu@cs.umass.edu>
6944
6945         * tree-cfg.c (thread_jumps): Speed up by reordering the two
6946         conditions for entering basic blocks into worklist.
6947
6948 2004-10-27  Kazu Hirata  <kazu@cs.umass.edu>
6949
6950         * tree-cfg.c (thread_jumps): Speed up by pretending to have
6951         ENTRY_BLOCK_PTR in worklist.
6952
6953 2004-10-27  Kazu Hirata  <kazu@cs.umass.edu>
6954
6955         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary)
6956         <GOTO_EXPR>: Don't let an explicit GOTO_EXPR slip through.
6957
6958 2004-10-27  Daniel Berlin <dberlin@dberlin.org>
6959
6960         Fix PR tree-optimization/17133
6961
6962         * tree-cfg.c (rewrite_to_new_ssa_names_bb): Also rewrite must
6963         def kill operand.
6964
6965         * tree-flow-inline.h: V_MUST_DEF_OP became V_MUST_DEF_RESULT.
6966         (get_v_must_def_result_ptr): Modify for new structure of
6967         v_must_defs array.
6968         (get_v_must_def_kill_ptr): New.
6969         (op_iter_next_use): Add support for the kill that occurs in V_MUST_DEFs.
6970         (op_iter_next_tree): Ditto. Also V_MAY_DEF_OP became V_MAY_DEF_RESULT.
6971         (op_iter_next_def): V_MAY_DEF_OP became V_MAY_DEF_RESULT.
6972         (op_iter_init): Initialize new mustu members.
6973         (op_iter_next_mustdef): New function.
6974         (op_iter_init_mustdef): Ditto.
6975
6976         * tree-flow.h (rewrite_def_def_chains): New function.
6977
6978         * tree-into-ssa.c (mark_def_sites): Handle mustdefkill operands.
6979         (ssa_mark_def_sites): Ditto.
6980         (rewrite_stmt): Ditto.
6981         (ssa_rewrite_stmt): Ditto.
6982         (rewrite_blocks): Factor out from rewrite_into_ssa.
6983         (mark_def_block_sites): Ditto.
6984         (rewrite_def_def_chains): New function, just rewrites def-def
6985         chains without phi node insertion.
6986
6987         * tree-pass.h (TODO_fix_def_def_chains): New todo flag.
6988
6989         * tree-optimize.c (execute_todo): Handle TODO_fix_def_def_chains.
6990
6991         * tree-pretty-print.c (dump_vops): Print out MUST_DEF's so that
6992         they include the rhs now.
6993
6994         * tree-ssa-ccp.c (visit_assignment): V_MUST_DEF_OP became
6995         V_MUST_DEF_RESULT.
6996
6997         * tree-ssa-dce.c (mark_operand_necessary): Add phionly argument.
6998         Update callers.
6999         (mark_really_necessary_kill_operand_phis): New function.
7000         (perform_tree_ssa_dce): Call it.
7001         (pass_dce): Add TODO_fix_def_def_chains.
7002         (pass_cd_dce): Ditto.
7003
7004         * tree-ssa-loop-im.c (determine_max_movement): Look at kills as
7005         well.
7006         (rewrite_mem_refs): Ditto.
7007
7008         * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Look at kills
7009         as well.
7010
7011         * tree-ssa-operands.c (allocate_v_may_def_optype):
7012         v_may_def_operand_type_t became v_def_use_operand_type_t.
7013         (allocate_v_must_def_optype) Ditto.
7014         (finalize_ssa_v_must_defs): Update for new operand type, as well
7015         as setting the use portion as well.
7016         (copy_virtual_operands): Copy the kill operand as well.
7017         (create_ssa_artficial_load_stmt): V_MUST_DEF_OP became
7018         V_MUST_DEF_RESULT.
7019
7020         * tree-ssa-operands.h (v_may_def_operand_type): Renamed to
7021         v_def_use_operand_type.
7022         (v_must_def_optype_d): Use v_def_use_operand_type.
7023         (V_MUST_DEF_OP_*): Renamed to V_MUST_DEF_RESULT_*
7024         (V_MUST_DEF_KILL_*): New macros.
7025         (struct ssa_operand_iterator_d): Add num_v_mustu and v_mustu_i
7026         members.
7027         Rename existing must_i and num_v_must members to mustd_i and
7028         num_v_mustd.
7029         (SSA_OP_VMUSTDEFKILL): New flag.
7030         (SSA_OP_VIRTUAL_KILLS): New flag.
7031         (SSA_OP_ALL_OPERANDS): Add in SSA_OP_ALL_KILLS.
7032         (SSA_OP_ALL_KILLS): New flag.
7033         (FOR_EACH_SSA_MUSTDEF_OPERAND): New macro.
7034
7035         * tree-ssa.c (verify_ssa): Verify virtual kills as well.
7036
7037         * tree-vectorizer.c (vect_create_data_ref_ptr): V_MUST_DEF_OP
7038         became V_MUST_DEF_RESULT.
7039         (rename_variables_in_bb): Rename kill pointer as well.
7040
7041         * tree-dfa.c (compute_immediate_uses_for_stmt): Add kills into the
7042         immediate uses.
7043
7044 2004-10-27  Richard Sandiford  <rsandifo@redhat.com>
7045
7046         * dbxout.c (dbxout_source_line): Move declaration of begin_label to
7047         the block that needs it.
7048
7049 2004-10-27  Zack Weinberg  <zack@codesourcery.com>
7050
7051         * dbxout.c (dbxout_finish_complex_stabs): Mark 'line' variable
7052         ATTRIBUTE_UNUSED.
7053
7054 2004-10-27  Zack Weinberg  <zack@codesourcery.com>
7055
7056         * c-lex.c (cb_def_pragma): Clean up code for making location
7057         palatable to diagnostic.c.
7058
7059 2004-10-27  Steven Bosscher  <stevenb@suse.de>
7060
7061         PR tree-optimization/17757
7062         * tree-phinodes.c (remove_phi_arg_num): Don't remove PHIs
7063         without any PHI arguments left.  Make sure the argument that
7064         we're supposed to remove exists at all.
7065
7066 2004-10-27  Paul Brook  <paul@codesourcery.com>
7067
7068         * configure.ac: Don't test for [build] __cxa_atexit when building a
7069         cross compiler.
7070         * configure: Regenerate.
7071
7072 2004-10-27  Paul Brook  <paul@codeosurcery.com>
7073
7074         * configure.ac: Use build_exeext not host_exeext when lookin for
7075         target tools.
7076         * configure: Regenerate.
7077
7078 2004-10-27  Andreas Krebbel  <krebbel1@de.ibm.com>
7079
7080         * config/s390/s390.md ("*subdf3_cc"): Replaced plus by minus.
7081
7082 2004-10-27  Andreas Krebbel  <krebbel1@de.ibm.com>
7083             patch originally created by Kelley Cook  <kcook@gcc.gnu.org>
7084
7085         PR middle-end/14684
7086         * opts.c (OPT_fprofile_generate): Default to -funroll-loops
7087         to match -fprofile-use.
7088
7089 2004-10-27  Kazu Hirata  <kazu@cs.umass.edu>
7090
7091         * config/rs6000/rs6000.c: Fix a comment typo.
7092
7093 2004-10-27  Zack Weinberg  <zack@codesourcery.com>
7094
7095         * config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Increment line
7096         counter.
7097
7098 2004-10-27  Andreas Schwab  <schwab@suse.de>
7099
7100         * varasm.c (default_stabs_asm_out_destructor): Mark symbol as
7101         unused.
7102         (default_stabs_asm_out_constructor): Likewise.
7103
7104 2004-10-26  Geoffrey Keating  <geoffk@apple.com>
7105
7106         * builtins.c (fold_builtin_unordered_cmp): Always bring both
7107         operands to the same type.
7108
7109 2004-10-26  James E Wilson  <wilson@specifixinc.com>
7110
7111         PR target/18010
7112         * emit-rtl.c (emit_copy_of_insn_after): Copy RTX_FRAME_RELATED_P.
7113
7114 2004-10-26  Zack Weinberg  <zack@codesourcery.com>
7115
7116         * dbxout.c: Include obstack.h.
7117         (ASM_STABS_OP): Take XCOFF_DEBUGGING_INFO into account in
7118         default definition.
7119         (ASM_STABD_OP, NO_DBX_MAIN_SOURCE_DIRECTORY, DBX_CONTIN_CHAR):
7120         Default-define here.
7121         (DBX_CONTIN_LENGTH): Move definition with others.
7122         (DBX_FINISH_STABS): New target macro.
7123         (current_sym_code, current_sym_value, current_sym_addr)
7124         (current_sym_nchars, CHARS, dbxout_continue)
7125         (print_int_cst_octal, print_octal, print_wide_int)
7126         (dbxout_prepare_symbol, dbxout_finish_symbol): Delete.
7127         (stabstr_ob, stabstr_last_contin_point): New variables.
7128         (NUMBER_FMT_LOOP): New improper macro.
7129         (dbxout_int, dbxout_stab_value_zero, dbxout_stab_value_label)
7130         (dbxout_stab_value_label_diff, dbxout_stab_value_internal_label)
7131         (dbxout_stab_value_internal_label_diff, dbxout_stabd)
7132         (dbxout_begin_stabn, dbxout_begin_stabn_sline)
7133         (dbxout_begin_simple_stabs, dbxout_begin_simple_stabs_desc)
7134         (dbxout_begin_complex_stabs, dbxout_finish_complex_stabs)
7135         (stabstr_C, stabstr_S, stabstr_I, stabstr_D, stabstr_U, stabstr_O)
7136         (stabstr_continue, DECL_ACCESSIBILITY_CHAR)
7137         New functions and/or proper function-like macros.
7138         (CONTIN): Use stabstr_continue, unconditionally.
7139         (get_lang_number): Define unconditionally, with ATTRIBUTE_UNUSED.
7140         (dbxout_init): Initialize stabstr_ob.  Check
7141         NO_DBX_MAIN_SOURCE_DIRECTORY.  Only write out the Ltext label
7142         if it was used.  Use the new interfaces.
7143         (dbxout_source_file): Remove file argument; always write to
7144         asm_out_file.  Use the new interfaces.
7145         (dbxout_type_method_1): Remove second argument which is always
7146         DECL_ASSEMBLER_NAME of the first argument.  Use the new interfaces.
7147         (dbxout_type_methods): Remove write-only variables.  Use the
7148         new interfaces.
7149         (dbxout_parms): Refactor to remove code duplicated in each of
7150         several successive if-else-if blocks.  Use the new interfaces.
7151         (dbxout_function_end, emit_bincl_stab, dbxout_end_source_file)
7152         (dbxout_source_line, dbxout_finish, dbxout_type_index)
7153         (dbxout_type_fields, dbxout_range_type, dbxout_type, dbxout_type_name)
7154         (dbxout_class_name_qualifiers, dbxout_symbol, dbxout_symbol_location)
7155         (dbxout_symbol_name, dbxout_reg_parms, dbxout_args)
7156         (dbx_output_lbrac, dbx_output_rbrac, dbxout_block):
7157         Use the new interfaces.
7158         * Makefile.in (dbxout.o): Update dependencies.
7159
7160         * defaults.h: Don't define ASM_STABD_OP.
7161         * output.h: Prototype new dbxout_* interfaces.
7162         * system.h: Poison DBX_OUTPUT_GCC_MARKER and DBX_FINISH_SYMBOL.
7163         * varasm.c: Don't define ASM_STABS_OP.
7164         (default_stabs_asm_out_constructor, default_stabs_asm_out_destructor):
7165         Use the new dbxout.c interfaces.  Call sorry if neither
7166         DBX_DEBUGGING_INFO nor XCOFF_DEBUGGING_INFO is defined.
7167
7168         * xcoffout.h: Don't define ASM_STABS_OP.
7169         (DBX_FINISH_SYMBOL): Rewrite and rename DBX_FINISH_STABS.
7170         (DBX_OUTPUT_MAIN_SOURCE_DIRECTORY, DBX_OUTPUT_GCC_MARKER): Delete.
7171         (NO_DBX_MAIN_SOURCE_DIRECTORY, NO_DBX_GCC_MARKER): Define.
7172         (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Change bare block to
7173         do { ... } while (0) idiom.
7174
7175         * config/alpha/alpha.c (num_source_filenames): Export.
7176         * config/alpha/alpha.h (num_source_filenames): Declare.
7177         (DBX_OUTPUT_SOURCE_LINE): Use new interfaces.
7178         (SDB_OUTPUT_SOURCE_LINE): Add missing newline.
7179         * config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Use new interfaces.
7180         Always use .debugsym.  Update commentary.
7181         * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Use new interfaces.
7182         (SDB_OUTPUT_SOURCE_LINE): Add missing newline.
7183         * config/rs6000/linux64.h (DBX_OUTPUT_SOURCE_LINE, DBX_OUTPUT_BRAC):
7184         Use new interfaces.
7185         * config/rs6000/rs6000.c: If TARGET_MACHO, include gstab.h.
7186         (macho_branch_islands): Use new interfaces.
7187
7188         * doc/tm.texi: Update.
7189
7190 2004-10-26  Aldy Hernandez  <aldyh@redhat.com>
7191
7192         * expr.c (emit_group_store): Do not treat floats as BLKmode.
7193         (emit_group_load): Same.
7194
7195 2004-10-26  Joseph S. Myers  <jsm@polyomino.org.uk>
7196
7197         * c-parse.in (datadef): Use pedwarn rather than error and warning
7198         for diagnostic in case of no declaration specifiers.
7199
7200 2004-10-26  Richard Sandiford  <rsandifo@redhat.com>
7201
7202         PR bootstrap/15747
7203         * doc/install.texi (mips-sgi-irix5): Document that /bin/sh has been
7204         reported to hang during bootstrap and that CONFIG_SHELL=/bin/ksh
7205         can be used to work around this.
7206
7207 2004-10-26  Aldy Hernandez  <aldyh@redhat.com>
7208
7209         * config/rs6000/rs6000.h (MEMBER_TYPE_FORCES_BLK): Adjust for e500
7210         doubles.
7211
7212 2004-10-26  Kazu Hirata  <kazu@cs.umass.edu>
7213
7214         * stmt.c (expand_case): Update a comment.
7215
7216 2004-10-26  Kazu Hirata  <kazu@cs.umass.edu>
7217
7218         * stmt.c (expand_case): Put an assertion that index_expr is
7219         never INTEGER_CST.  Don't special case for constant
7220         index_expr.
7221
7222 2004-10-26  Andrew Pinski  <pinskia@physics.uc.edu>
7223
7224         PR 18162
7225         * c-parse.in (designator): Finish with a semi-colon.
7226
7227 2004-10-26  Fariborz Jahanian <fjahanian@apple.com>
7228
7229         * config/rs6000/rs6000.md (andsi3_internal8): Set CR when splitting
7230         into rotlsi3.
7231
7232 2004-10-26  Kazu Hirata  <kazu@cs.umass.edu>
7233
7234         * stmt.c (expand_case): Remove code to handle SWITCH_EXPR with
7235         a default case only.
7236
7237 2004-10-26  Aldy Hernandez  <aldyh@redhat.com>
7238
7239         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): Adjust for
7240         e500 doubles.
7241         (spe_build_register_parallel): New.
7242         (rs6000_spe_function_arg): Handle e500 doubles.
7243         (function_arg): Same.
7244         (spe_func_has_64bit_regs_p): Same.
7245         (rs6000_function_value): Same.
7246         (rs6000_libcall_value): Same.
7247         (legitimate_lo_sum_address_p): Return false for e500 doubles.
7248
7249         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT): Adjust for e500
7250         doubles.
7251         (DATA_ALIGNMENT): Same.
7252         (CANNOT_CHANGE_MODE_CLASS): Same.
7253
7254 2004-10-26  Aldy Hernandez  <aldyh@redhat.com>
7255
7256         * expr.c (emit_group_load): Handle floats.
7257         (emit_group_store): Same.
7258
7259 2004-10-26  Nathan Sidwell  <nathan@codesourcery.com>
7260
7261         * c-lex.c (get_nonpadding_token): Remove.
7262         (c_lex_with_flags): Push timevar and eat padding here.  Improve
7263         stray token diagnostic.
7264         (lex_string): Replace logic with switch statement, eat padding
7265         token here.
7266
7267 2004-10-26  Geoffrey Keating  <geoffk@apple.com>
7268
7269         PR 18149
7270         * config/i386/darwin.h (ASM_SPEC): Undef it before defining.
7271
7272 2004-10-25  Geoffrey Keating  <geoffk@apple.com>
7273
7274         * config/darwin.h (LINK_SPEC): Default weak_reference_mismatches
7275         to 'non-weak'.
7276         (MAKE_DECL_ONE_ONLY): Set DECL_WEAK.
7277         (ASM_MAKE_LABEL_LINKONCE): Delete.
7278         (ASM_WEAKEN_DECL): New.
7279         (ASM_DECLARE_OBJECT_NAME): Look at DECL_WEAK not DECL_ONE_ONLY.
7280         (ASM_DECLARE_FUNCTION_NAME): Likewise.
7281         (TEXT_SECTION_ASM_OP): Add a tab.
7282         (DATA_SECTION_ASM_OP): Likewise.
7283         (SECTION_FUNCTION): Add a tab.  Use fputs.  Don't call
7284         data_section on every section change.
7285         (EXTRA_SECTIONS): Add a bunch of new extra sections.
7286         (EXTRA_SECTION_FUNCTIONS): Likewise.
7287         (USE_SELECT_SECTION_FOR_FUNCTIONS): Define.
7288         (JCR_SECTION_NAME): Define.
7289         (TARGET_SECTION_TYPE_FLAGS): Don't define.
7290         * config/darwin.c (darwin_encode_section_info): A symbol is defined
7291         in this file if it is not weak.
7292         (textcoal_section): Delete.
7293         (datacoal_section): Delete.
7294         (darwin_make_decl_one_only): Delete.
7295         (machopic_select_section): Handle functions.
7296         (darwin_asm_named_section): Add a tab.
7297         (darwin_section_type_flags): Delete.
7298         (darwin_unique_section): Delete contents.
7299         (darwin_emit_unwind_label): Add a tab.  Make decls weak if
7300         DECL_WEAK is set.
7301         * config/darwin-protos.h (darwin_section_type_flags): Delete.
7302         (darwin_make_decl_one_only): Delete.
7303         (text_coal_section): New.
7304         (text_unlikely_section): New.
7305         (text_unlikely_coal_section): New.
7306         (const_coal_section): New.
7307         (data_coal_section): New.
7308         (const_data_coal_section): New.
7309         * varasm.c (function_section): Honour
7310         USE_SELECT_SECTION_FOR_FUNCTIONS.
7311         * dwarf2out.c (output_call_frame_info): Look at DECL_WEAK when
7312         TARGET_USES_WEAK_UNWIND_INFO is in effect.
7313         * dbxout.c (dbxout_source_file): Don't change sections while
7314         a function is being output.
7315
7316 2004-10-25  David Ayers  <d.ayers@inode.at>
7317
7318         * c-common.h: Remove RID_ID.
7319         * c-parse.in: Remove OBJECTNAME and references to RID_ID.
7320         (typespec_reserved_attr): Add rule for TYPENAME
7321         non_empty_protocolrefs.
7322         (yylexname): Remove special handling of RID_ID.
7323
7324 2004-10-25  James E Wilson  <wilson@specifixinc.com>
7325
7326         * doc/invoke.texi (-fcrossjumping): Not enabled at -O.
7327
7328 2004-10-25  Joseph S. Myers  <jsm@polyomino.org.uk>
7329
7330         PR c/16667
7331         * c-parse.in (array_designator): New.
7332         (designator): Use it.
7333         (initelt): Only permit array_designator without '=', not ".foo".
7334
7335 2004-10-25  Kenneth Zadeck <zadeck@naturalbridge.com>
7336         * gcc/Makefile.in: removed ggc for cgraphunit.
7337         * gcc/cgraph.c.dump_cgraph_node: removed static var analysis.
7338         * gcc/cgraph.h: removed static var analysis data structures and calls.
7339         * gcc/cgraphunit.c:
7340         cgraph_mark_local_and_external_functions:changed name to
7341                 cgraph_mark_local_functions
7342         (print_order,convert_UIDs_in_bitmap,new_static_vars_info,
7343         cgraph_reset_static_var_maps,get_global_static_vars_info,
7344         get_global_statics_not_read,get_global_statics_not_written,searchc,
7345         cgraph_reduced_inorder,has_proper_scope_for_analysis,check_rhs_var,
7346         check_lhs_var,get_asm_expr_operands,process_call_for_static_vars,
7347         scan_for_static_refs,cgraph_characterize_statics_local,
7348         clear_static_vars_maps,cgraph_propagate_bits,cgraph_characterize_statics):
7349         removed.
7350         (cgraph_optimize,init_cgraph): removed calls to static vars analysis
7351         * gcc/tree-dfa.c find_referenced_vars: removed call to static vars
7352         analysis
7353         * gcc/tree-flow.h static_vars_info: removed
7354         * gcc/tree-ssa-operands.c (add_call_clobber_ops,add_call_read_ops):
7355         removed calls to static vars analysis.
7356         get_call_expr_operands: removed callee variable.
7357
7358 2004-10-25  Kazu Hirata  <kazu@cs.umass.edu>
7359
7360         * cfg.c (unchecked_make_edge, redirect_edge_succ,
7361         redirect_edge_pred): Use VEC_safe_push instead of
7362         VEC_safe_insert.
7363         * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
7364
7365 2004-10-25  Kazu Hirata  <kazu@cs.umass.edu>
7366
7367         * cfgloopmanip.c (loopify): Take two more arguments true_edge
7368         and false_edge.
7369         * cfgloop.h: Adjust the corresponding prototype.
7370         * loop-unswitch.c (unswitch_loop): Adjust a call to loopify.
7371         * tree-ssa-loop-manip.c (tree_ssa_loop_version): Likewise.
7372
7373 2004-10-25  Jakub Jelinek  <jakub@redhat.com>
7374
7375         * dwarf2out.c (rtl_for_decl_location): Avoid segfault if
7376         DECL_INCOMING_RTL is NULL.
7377
7378 2004-10-25  Steven Bosscher  <stevenb@suse.de>
7379
7380         * timevar.def (TV_FIND_REFERENCED_VARS): New.
7381         * tree-dfa.c (pass_referenced_var): Use it.
7382
7383 2004-10-25  Roger Sayle  <roger@eyesopen.com>
7384             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7385
7386         * cse.c: Change encoding of quantity numbers to avoid undefined
7387         pointer arithmetic on qty_table.
7388         (REGNO_QTY_VALID_P): A quantity is now valid if it isn't negative.
7389         (get_cse_reg_info): Initialize reg_qty to a unique negative value.
7390         (new_basic_block): Assign "real" quantity numbers from zero.
7391         (delete_reg_equiv): Do nothing if quantity is invalid.  Reset the
7392         REG_QTY to its unique negative value.
7393         (merge_equiv_classes): Calculate need_rehash if quantity is valid.
7394         (cse_main): Don't include max_reg when determining max_qty.
7395         (cse_basic_block): Avoid subtracting a large offset from qty_table,
7396         which causes undefined C99 behaviour.  Only allocate needed memory.
7397
7398 2004-10-25  Kazu Hirata  <kazu@cs.umass.edu>
7399
7400         * stmt.c (expand_case): Remove an obsolete comment.
7401
7402 2004-10-25  Andrew Pinski  <pinskia@physics.uc.edu>
7403
7404         PR middle-end/17407
7405         * c-decl.c (grokdeclarator) <case cdk_array>: Remove the call
7406         layout_type as it is already done by build_array_type.
7407         * tree.c (build_array_type): Layout the type even
7408
7409 2004-10-25  Alexandre Oliva  <aoliva@redhat.com>
7410
7411         * config/frv/linux.h (TARGET_C99_FUNCTIONS): Define to 0.
7412
7413 2004-10-25  Alexandre Oliva  <aoliva@redhat.com>
7414
7415         * config/frv/frv.md (movdi, movdf): Handle wide-constant splits
7416         with wider-than-32-bit HOST_WIDE_INTs.
7417
7418 2004-10-25  David Billinghurst <David.Billinghurst@riotinto.com>
7419
7420         * config/mips/mips.c(mips_output_filename): Remove unused
7421         array ltext_label_name
7422
7423 2004-10-24  Geoffrey Keating  <geoffk@geoffk.org>
7424
7425         * config/rs6000/darwin.h (BLOCK_REG_PADDING): Define.
7426
7427 2004-10-25  Ben Elliston  <bje@au.ibm.com>
7428
7429         * cfgcleanup.c (outgoing_edges_match): Fix typo in dump output.
7430
7431 2004-10-23  Andrew Pinski  <pinskia@physics.uc.edu>
7432
7433         * predict.c (predict_loops): Call scev_finalize instead of
7434         scev_reset.
7435
7436 2004-10-24  Kazu Hirata  <kazu@cs.umass.edu>
7437
7438         * config/dbxcoff.h, config/dbxelf.h, config/libgloss.h,
7439         config/openbsd.h, config/mips/r3900.h, config/pdp11/pdp11.md,
7440         config/sh/ushmedia.h, config/sparc/elf.h,
7441         config/sparc/sp64-elf.h: Update copyright.
7442
7443 2004-10-24  Kazu Hirata  <kazu@cs.umass.edu>
7444
7445         * stmt.c (expand_case): Handle the default label outside of
7446         the for loop.  Remove code to handle a missing default label.
7447
7448 2004-10-23  Kazu Hirata  <kazu@cs.umass.edu>
7449
7450         * dbxout.c (dbxout_function_decl): Don't use
7451         DBX_OUTPUT_FUNCTION_END.
7452         * system.h: Poison DBX_OUTPUT_FUNCTION_END.
7453         * doc/tm.texi (DBX_OUTPUT_FUNCTION_END): Remove.
7454
7455 2004-10-23  Andrew Pinski  <pinskia@physics.uc.edu>
7456
7457         PR middle-end/17967
7458         * tree-cfg.c (remove_usless_stmts_cond):  Don't Fold statement.
7459
7460 2004-10-23  Daniel Berlin  <dberlin@dberlin.org>
7461
7462         * tree-ssa-dom.c (record_equality): Use loop depth to determine
7463         which way to record the equality as well.
7464         (loop_depth_of_name): New function.
7465
7466 2004-10-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
7467
7468         PR middle-end/17793
7469         * gimplify.c (gimplify_addr_expr) <VIEW_CONVERT_EXPR>: Look
7470         through the operand if it is a useless type conversion.
7471
7472 2004-10-23  Ben Elliston  <bje@au.ibm.com>
7473
7474         * cfg.c (remove_edge): Use VEC_unordered_remove.
7475         (redirect_edge_succ): Likewise.
7476         (redirect_edge_pred): Likewise.
7477         * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
7478
7479 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
7480
7481         * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Don't access PTR
7482         beyond its end.
7483
7484 2004-10-22  Eric Christopher  <echristo@redhat.com>
7485
7486         * config/rs6000/rs6000.c (setup_incoming_varargs): Align DFmode
7487         saves.
7488
7489 2004-10-22  Aldy Hernandez  <aldyh@redhat.com>
7490
7491         * config/rs6000/spe.md (spe_extendsfdf2): New.
7492         (movdf_e500_double): New.
7493         (spe_truncdfsf2): New.
7494         (spe_absdf2): New.
7495         (spe_nabsdf2): New.
7496         (spe_negdf2): New.
7497         (sub_adddf3): New.
7498         (spe_subdf3): New.
7499         (spe_muldf3): New.
7500         (spe_floatsidf2): New.
7501         (spe_floatunssidf2): New.
7502         (fix_truncdfsi2): New.
7503         (spe_fixuns_truncdfsi2): New.
7504
7505         * config/rs6000/rs6000.md (truncdfsf2): Change to expander.
7506         (fpr_truncdfsf2): New.
7507         (negdf2): Change to expander.
7508         (fpr_negdf2): New.
7509         (fpr_nabsdf2): Name pattern.
7510         (adddf3): Change to expander.
7511         (fpr_adddf3): Nem.
7512         (subdf3): Change to expander.
7513         (fpr_subdf3): New.
7514         (muldf3): Change to expander.
7515         (fpr_muldf3): New.
7516         (divdf3): Change to expander.
7517         (fpr_divdf3): New.
7518         (movdf_softfloat32): Change !TARGET_FPRS to TARGET_E500_SINGLE.
7519         (cmpdf): Allow for TARGET_E500_DOUBLE.
7520
7521 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
7522
7523         * c-semantics.c (re_push_stmt_list): Remove.
7524         * c-common.h: Remove the corresponding prototype.
7525
7526 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
7527
7528         * stmt.c (asm_op_is_mem_input): Remove.
7529         * tree.h: Remove the corresponding prototype.
7530
7531 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
7532
7533         * tree-gimple.c (is_gimple_constructor_elt): Remove.
7534         * tree-gimple.h: Remove the corresponding prototype.
7535
7536 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
7537
7538         * varasm.c (get_pool_mode_for_function, get_pool_offset):
7539         Remove.
7540         * rtl.h: Remove the corresponding prototypes.
7541
7542 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
7543
7544         * tree-cfg.c (thread_jumps_from_bb): Speed up by extracting
7545         edge information when we commit ourselves to threading a
7546         particular jump.
7547
7548 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
7549
7550         * tree-cfg.c (thread_jumps): Speed up by putting basic blocks
7551         into worklist instead of their indexes.
7552
7553 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
7554
7555         * alias.c, basic-block.h, cgraphunit.c, combine.c, domwalk.h,
7556         final.c, gengtype.c, genpreds.c, ggc-page.c, insn-notes.def,
7557         lambda-code.c, loop-unroll.c, modulo-sched.c, pointer-set.c,
7558         pretty-print.c, ra-colorize.c, sbitmap.c, tree-complex.c,
7559         tree-data-ref.c, tree-dfa.c, tree-inline.c, tree-into-ssa.c,
7560         tree-scalar-evolution.c, tree-ssa-dom.c,
7561         tree-ssa-loop-manip.c, tree-ssa-loop-niter.c,
7562         tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-threadupdate.c,
7563         tree-vectorizer.c, vec.h: Fix comment formatting.
7564
7565 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
7566
7567         * dwarf.h, gthr-dce.h, gthr-single.h, gthr-solaris.h, gthr.h,
7568         libfuncs.h, libgcc2.h, stab.def, tsystem.h: Update copyright.
7569
7570 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
7571
7572         * config/ptx4.h, config/mcore/mcore-pe.h,
7573         config/rs6000/eabi.h, config/vax/elf.h: Update copyright.
7574
7575 2004-10-22  Peter Barada <peter@the-baradas.com>
7576
7577         * config/m68k/m68k.h (HARD_REGNO_RENAME_OK): New macro.
7578         * config/m68k/m68k.c (m68k_hard regno_rename_ok): Disallow
7579         renaming of non-live registers in interrupt functions.
7580         * config/m68k/m68k-protos.h (m68k_hard_regno_rename_ok): Add prototype.
7581
7582 2004-10-22  Zdenek Dvorak  <dvorakz@suse.cz>
7583
7584         * tree-ssa-loop-niter.c (inverse): Count in HOST_WIDE_INT if possible.
7585         Use integer for loop counter.
7586         (num_ending_zeros): New function.
7587         (number_of_iterations_cond): Use num_ending_zeros.
7588
7589 2004-10-21  Aldy Hernandez  <aldyh@redhat.com>
7590
7591         * config.gcc: Add support for --enable-e500_double.
7592
7593         * config/rs6000/e500-double.h: New file.
7594
7595         * config/rs6000/rs6000.h: Define TARGET_E500_SINGLE and
7596         TARGET_E500_DOUBLE.
7597
7598         * config/rs6000/eabi.h: Define TARGET_E500_SINGLE and
7599         TARGET_E500_DOUBLE.
7600
7601         * config/rs6000/linuxspe.h: Same.
7602
7603         * doc/invoke.texi (Option Summary): Document new options for
7604         mfloat-gprs.
7605         (RS/6000 and PowerPC Options): Same.
7606
7607         * config/rs6000/rs6000.c (rs6000_parse_float_gprs_option): New
7608         function.
7609         (rs6000_override_options): Use it.  Use
7610         SUB3TARGET_OVERRIDE_OPTIONS.
7611         Add 8548 to processor_target_table.
7612         (rs6000_legitimate_address): Handle e500 doubles.
7613         (rs6000_legitimize_address): Same.
7614         (rs6000_legitimize_reload_address): Same.
7615         (rs6000_hard_regno_nregs): Same.
7616         (spe_func_has_64bit_regs_p): Same.
7617         (emit_frame_save): Same.
7618         (gen_frame_mem_offset): Same.
7619         (rs6000_dwarf_register_span): Same.
7620         (rs6000_generate_compare): Same.
7621         (easy_fp_constant): Same.
7622         (legitimate_offset_address_p): Same.
7623
7624         * config/rs6000/spe.md: (cmdfeq_gpr): New.
7625         (tstdfeq_gpr): New.
7626         (cmpdfgt_gpr): New.
7627         (tstdfgt_gpr): New.
7628         (tstdfgt_gpr): New.
7629         (cmpdflt_gpr): New.
7630         (tstdflt_gpr): New.
7631         Add new constants.
7632
7633 2004-10-21  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
7634
7635         * config/arc/lib1funcs.asm (___umulsidi3): Fix typo.
7636
7637 2004-10-21  Zack Weinberg  <zack@codesourcery.com>
7638
7639         * dbxout.c: Remove unnecessary #undefs.
7640         (GDB_INV_REF_REGPARM_STABS_LETTER, DBX_MEMPARM_STABS_LETTER)
7641         (FILE_NAME_JOINER, STABS_GCC_MARKER): Remove; fold sole
7642         definition into use sites.
7643         (cwd): Make local to dbxout_init.
7644         (dbxout_init): Restructure cwd-using logic for clarity.  Use
7645         IS_DIR_SEPARATOR.
7646         * xcoffout.h (DBX_OUTPUT_GCC_MARKER): Definition of
7647         STABS_GCC_MARKER folded in here.
7648         * system.h: Poison now-unused macros.
7649         * doc/tm.texi: Remove documentation of now-unused macros.
7650
7651 2004-10-21  Andrew Pinski  <pinskia@physics.uc.edu>
7652
7653         PR c/17538
7654         * c-opts.c (push_command_line_include): Use the current file
7655         name instead of the main one.
7656
7657 2004-10-21  Andrew Pinski  <pinskia@physics.uc.edu>
7658
7659         PR objc/17923
7660         * tree.c (staticp): A CONST_DECL has static storage if either
7661         TREE_STATIC or DECL_EXTERNAL is set.
7662         * c-decl.c (pushdecl_top_level): Accept CONST_DECLs which can
7663         have null names.
7664
7665 2004-10-21  Kazu Hirata  <kazu@cs.umass.edu>
7666
7667         * expr.c (store_expr): Remove dont_store_target.
7668
7669 2004-10-21  Kazu Hirata  <kazu@cs.umass.edu>
7670
7671         * tree-cfg.c (thread_jumps): Speed up by using a worklist.
7672
7673 2004-10-21  Kazu Hirata  <kazu@cs.umass.edu>
7674
7675         * tree-cfg.c (thread_jumps): Move a part of it to ...
7676         (thread_jumps_from_bb): ... here.
7677
7678 2004-10-21  David Edelsohn  <edelsohn@gnu.org>
7679
7680         * dbxout.c (DBX_FINISH_SYMBOL): Add asm_out_file argument.
7681         * xcoffout.h (DBX_FINISH_SYMBOL): Change asmfile to (ASMFILE).
7682
7683 2004-10-21  Kazu Hirata  <kazu@cs.umass.edu>
7684
7685         * expr.c (store_expr): Clean up by renaming want_value to
7686         call_param_p.
7687
7688 2004-10-21  Kaz Kojima  <kkojima@gcc.gnu.org>
7689
7690         * config/sh/linux-unwind.h (sh_fallback_frame_state): Don't
7691         fixup pc here.
7692
7693 2004-10-21  Aldy Hernandez  <aldyh@redhat.com>
7694
7695         PR 18004.
7696         * expmed.c (store_bit_field): Pass original 'value' before
7697         recursing.
7698
7699 2004-10-21  Nicolas Pitre <nico@cam.org>
7700
7701         * config/arm/ieee754-sf.S: Large speed improvements. Fix NAN handling.
7702         * config/arm/ieee754-df.S: Ditto.
7703
7704 2004-10-20  Zack Weinberg  <zack@codesourcery.com>
7705
7706         * dbxout.c (asmfile): Delete.  All uses changed to asm_out_file.
7707         (DBX_BLOCKS_FUNCTION_RELATIVE, DBX_LINES_FUNCTION_RELATIVE):
7708         Default to 0.
7709         (dbxout_source_line): Use DBX_OUTPUT_SOURCE_LINE when defined.
7710         When it is not, but DBX_LINES_FUNCTION_RELATIVE is true, emit
7711         an internal label and an N_SLINE .stabn whose value is the
7712         difference between that label and the function entry label.
7713         (dbxout_finish): If DBX_OUTPUT_MAIN_SOURCE_FILE_END is not defined,
7714         but DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END is, emit a
7715         label and an N_SO stab with an empty string referring to it.
7716         (dbx_output_lbrac, dbx_output_rbrac): Use if statement instead
7717         of #ifdef directive to test DBX_BLOCKS_FUNCTION_RELATIVE.
7718         (dbxout_type_methods, dbxout_symbol): Remove #if 0 block.
7719         (dbxout_prepare_symbol): Remove #ifdef WINNING_GDB block, this
7720         macro is never defined.
7721         * sdbout.c (sdbout_source_line_counter): Delete.
7722         (PUT_SDB_SRC_FILE): Delete.  Uses replaced with sole definition.
7723         (sdbout_source_line): Use SDB_OUTPUT_SOURCE_LINE, which takes
7724         only two arguments.
7725         * xcoffout.c (ASM_OUTPUT_SOURCE_LINE): Rename ASM_OUTPUT_LINE.
7726
7727         * config/dbxcoff.h, config/dbxelf.h: Remove unncessary #undefs.
7728         * config/c4x/c4x.h, config/pa/pa.h: Remove unnecessary macro
7729         definitions (identical to default).
7730         * config/darwin.h, config/dbxcoff.h, config/dbxelf.h, config/ptx4.h
7731         * config/h8300/coff.h, config/pa/som.h, config/sh/elf.h:
7732         Define DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END, not
7733         DBX_OUTPUT_MAIN_SOURCE_FILE_END.
7734         * config/dbxcoff.h, config/dbxelf.h, config/ptx4.h
7735         * config/mcore/mcore-pe.h, config/pa/som.h, config/sh/elf.h:
7736         Define DBX_LINES_FUNCTION_RELATIVE, not ASM_OUTPUT_SOURCE_LINE.
7737         * config/alpha/alpha-protos.h: Don't prototype alpha_output_lineno.
7738         * config/alpha/alpha.c: Move declaration of num_source_filenames up.
7739         (alpha_start_function): Use SDB_OUTPUT_SOURCE_LINE.
7740         (sym_lineno): Delete.
7741         (alpha_output_filename): Do not emit N_SOL stabs here.  Remove
7742         now-unused variable.
7743         (alpha_output_lineno): Delete.
7744         * config/mips/mips-protos.h: Don't prototype mips_output_lineno.
7745         * config/mips/mips.c (mips_output_filename): Don't use
7746         ASM_OUTPUT_FILENAME. Don't emit N_SOL stabs here.
7747         (mips_output_lineno): Delete.
7748         (mips_output_function_prologue: Use SDB_OUTPUT_SOURCE_LINE.
7749         * config/alpha/alpha.h: Define DBX_OUTPUT_SOURCE_LINE and
7750         SDB_OUTPUT_SOURCE_LINE, not ASM_OUTPUT_SOURCE_LINE.
7751         * config/mips/mips.h: Likewise.  Don't define ASM_OUTPUT_FILENAME.
7752         * config/mips/sdb.h: Use SDB_OUTPUT_SOURCE_LINE.
7753         * config/avr/avr.h: Don't define ASM_OUTPUT_SOURCE_LINE.
7754         * config/mmix/mmix.h: Likewise.
7755         * config/mmix/mmix.c (mmix_asm_output_source_line): Delete.
7756         * config/mmix/mmix-protos.h: Don't prototype it.
7757         * config/alpha/unicosmk.h: Also #undef PREFERRED_DEBUGGING_TYPE;
7758         no need to #undef ASM_OUTPUT_SOURCE_LINE.
7759         * config/arm/aout.h: Remove RISCiX-specific definition of
7760         DBX_OUTPUT_MAIN_SOURCE_FILENAME.
7761         * config/m32r/m32r.h: Define DBX_OUTPUT_SOURCE_LINE, not
7762         ASM_OUTPUT_SOURCE_LINE.
7763         * config/rs6000/linux64.h (ASM_OUTPUT_SOURCE_LINE): Rename to
7764         DBX_OUTPUT_SOURCE_LINE.  Don't use current_function_func_begin_label.
7765         * config/vax/elf.h: No need to define DBX_OUTPUT_FUNCTION_END.
7766
7767         * doc/tm.texi: Update.
7768
7769 2004-10-20  Richard Henderson  <rth@redhat.com>
7770
7771         * tree-sra.c (instantiate_element): Copy DECL_IGNORED_P also.
7772
7773 2004-10-20  Kelley Cook  <kcook@gcc.gnu.org>
7774
7775         * configure.ac: Revert my previous patch.
7776         * configure: Regenerate.
7777
7778 2004-10-20  Ben Elliston  <bje@au.ibm.com>
7779
7780         * config/rs6000/rs6000.c
7781         (rs6000_va_start): Use build_va_arg_indirect_ref.
7782         (rs6000_gimplify_va_arg): Likewise.
7783
7784 2004-10-20  Bryce McKinlay  <mckinlay@redhat.com>
7785
7786         PR java/15575
7787         * configure.ac: Declare AM_LANGINFO_CODESET.
7788         * aclocal.m4: Define AM_LANGINFO_CODESET.
7789         * configure, config.in: Rebuilt.
7790
7791 2004-10-20  Kazu Hirata  <kazu@cs.umass.edu>
7792
7793         * expr.c (store_expr): Remove code that is run when
7794         want_value & 1 is nonzero.
7795
7796 2004-10-20  Mark Mitchell  <mark@codesourcery.com>
7797
7798         * gthr-posix.h (__gthread_active_p): Use __extension__ around cast
7799         from function pointer to void *.
7800
7801 2004-10-20  Kaz Kojima  <kkojima@gcc.gnu.org>
7802
7803         PR target/18032
7804         * config/sh/sh.c (sh_expand_epilogue): Emit a blockage insn before
7805         the frame pointer adjustment when exception handling is enabled.
7806
7807 2004-10-20  Kazu Hirata  <kazu@cs.umass.edu>
7808
7809         * stor-layout.c: Fix a comment typo.
7810
7811 2004-10-20  Kazu Hirata  <kazu@cs.umass.edu>
7812
7813         * expr.c (store_field): Remove two arguments value_mode and
7814         unsignedp.
7815         (expand_assignment, store_constructor_field,
7816         expand_expr_real_1): Adjust calls to store_field.
7817
7818 2004-10-18  Ramana Radhakrishnan  <ramana.radhakrishnan@codito.com>
7819
7820         * config/arc/lib1funcs.asm (___umulsidi3): Correct usage of flags.
7821
7822         PR target/17317
7823         * config/arc/arc.h (REGNO_OK_FOR_BASE_P,REGNO_OK_FOR_INDEX_P,
7824         REG_OK_FOR_BASE, REG_OK_FOR_INDEX): Consider blink(r31) as a valid
7825         base and index register for loads.
7826
7827         * config/arc/t-arc: Fix multilib handling.
7828
7829 2004-10-20  Hans-Peter Nilsson  <hp@bitrange.com>
7830
7831         * cfgrtl.c (rtl_verify_flow_info_1): When checking insns in a bb,
7832         don't inspect BLOCK_FOR_INSN for barriers.
7833         * emit-rtl.c (emit_barrier_before): Revert last change.
7834         (emit_barrier_after, emit_barrier): Ditto.
7835
7836         * doc/extend.texi (Extended Asm): Warn and provide example
7837         solution for using a call-clobbered asm register.
7838         (Local Reg Vars): Similar.  Cross-reference example.
7839
7840 2004-10-19  Andrew Pinski  <pinskia@physics.uc.edu>
7841
7842         * tree-cfg.c (group_case_labels): Look at the second to last
7843         case statement for combing with the default case.
7844
7845 2004-10-19  Richard Hendeson  <rth@redhat.com>
7846
7847         PR 17962
7848         * stor-layout.c (layout_type): Set TYPE_ALIGN for vectors.
7849
7850 2004-10-19  Richard Hendeson  <rth@redhat.com>
7851
7852         * builtins.c (expand_builtin_memmove): If fold_builtin_memmove
7853         succeeds, only expand the result.
7854
7855 2004-10-19  Richard Hendeson  <rth@redhat.com>
7856
7857         PR middle-end/17885
7858         * tree.c (recompute_tree_invarant_for_addr_expr): Always poll address
7859         of INDIRECT_REF.
7860
7861 2004-10-19  Kazu Hirata  <kazu@cs.umass.edu>
7862
7863         * tree-cfg.c (thread_jumps): Use a do-while loop instead of a
7864         loop with goto.
7865
7866 2004-10-19  Kazu Hirata  <kazu@cs.umass.edu>
7867
7868         * expr.c (expand_assignment): Remove the last argument.
7869         Change the return type to void.
7870         * expr.h: Update the prototype of expand_assignment.
7871         * function.c (assign_parm_setup_reg): Update a call to
7872         expand_assignment.
7873         * stmt.c (expand_asm_expr): Likewise.
7874
7875 2004-10-19  Kazu Hirata  <kazu@cs.umass.edu>
7876
7877         * expr.c (expand_expr_real_1) <MODIFY_EXPR>: Remove
7878         unnecessary assignments to temp.  Return const0_rtx.
7879
7880 2004-10-19  Kaz Kojima  <kkojima@gcc.gnu.org>
7881
7882         * config/sh/sh.c (sh5_schedule_saves): Fix typo.
7883
7884 2004-10-18  Kelley Cook  <kcook@gcc.gnu.org>
7885
7886         * configure.ac (powerpc-*-darwin*): Require assembler to support
7887         .machine directive.
7888         * configure: Regenerate.
7889
7890 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
7891
7892         * reload1.c (ior_hard_reg_set): Remove.
7893         (finish_spills): Use IOR_HARD_REG_SET instead of
7894         ior_hard_reg_set.
7895
7896 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
7897
7898         * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Speed up by shifting
7899         the currently visited word to right.
7900
7901 2004-10-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
7902
7903         PR middle-end/18045
7904         * expmed.c (expand_smod_pow2): Handle modes whose size
7905         is greater than that of HOST_WIDE_INT.
7906
7907 2004-10-18  Ziemowit Laski  <zlaski@apple.com>
7908
7909         * c-parse.in (reservedwords): Add OBJC_TYPE_QUAL as alternative.
7910
7911 2004-10-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
7912             Roger Sayle  <roger@eyesopen.com>
7913
7914         PR middle-end/17813
7915         * dojump.c (discard_pending_stack_adjust): New function.
7916         (clear_pending_stack_adjust): Call it.
7917         * expr.h (discard_pending_stack_adjust): Declare it.
7918         * explow.c (emit_stack_save): Emit pending stack adjustments
7919         before saving the stack pointer.
7920         (emit_stack_restore): Discard pending stack adjustments before
7921         restoring the stack pointer.
7922
7923 2004-10-18  Richard Henderson  <rth@redhat.com>
7924
7925         * c-common.c (handle_mode_attribute): Allow scalar->vector
7926         type changes yet.
7927
7928 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
7929
7930         * expr.c (expand_expr_real_1) [MODIFY_EXPR]: Don't request a
7931         value to expand_assignment.
7932
7933 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
7934
7935         * tree-cfg.c (cleanup_tree_cfg): Don't iterate on
7936         thread_jumps.
7937         (thread_jumps): Iterate until no new forwarder block arises.
7938
7939 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
7940
7941         * tree-cfg.c (tree_forwarder_block_p): Don't set forwardable.
7942         (thread_jumps): Use forwardable as cache of
7943         tree_forwarder_block_p throughout the function.
7944
7945 2004-10-18  Andreas Krebbel  <krebbel1@de.ibm.com>
7946
7947         * cfg.c (dump_flow_info): Remove redundant dump of reg life info.
7948
7949 2004-10-18  Andrew Pinski  <pinskia@physics.uc.edu>
7950
7951         PR middle-end/15014
7952         PR middle-end/16973
7953         * tree-cfg.c (remove_bb): If we have a label expression in the
7954         basic block and the label we have taken the address, move the
7955         label expression to the basic block which is previous in the
7956         linked list.
7957         (tree_verify_flow_info): Fix printing out the label name of the
7958         problematic label expression.
7959
7960 2004-10-18  Pat Haugen  <pthaugen@us.ibm.com>
7961
7962         PR rtl-optimization/18002
7963         * simplify-rtx.c (mode_signbit_p): Externalize function...
7964         * rtl.h (mode_signbit_p): ... to here.
7965         * combine.c (simplify_shift_const): Recognize PLUS signbit as
7966         canonical form of XOR signbit and move to outer op.
7967
7968 2004-10-18  Diego Novillo  <dnovillo@redhat.com>
7969
7970         * tree-cfg.c (bsi_for_stmt): Rename from stmt_for_bsi.
7971         Update all callers.
7972         * tree-ssa.c (replace_immediate_uses): Call bsi_for_stmt.
7973         Don't call fold_stmt more than once, use bsi_replace.
7974
7975 2004-10-18  Diego Novillo  <dnovillo@redhat.com>
7976
7977         PR tree-optimization/17656
7978         * tree-ssa.c (replace_immediate_uses): When replacing a
7979         constant, if the call to fold_stmt produced a different
7980         statement, get an appropriate statement pointer by scanning
7981         STMT's basic block.
7982
7983 2004-10-18  Richard Henderson  <rth@redhat.com>
7984
7985         * pointer-set.c (hash1): Don't use libm functions in fallback case.
7986
7987 2004-10-18  H.J. Lu  <hongjiu.lu@intel.com>
7988
7989         PR bootstrap/17684
7990         * Makefile.in (clean): Remove libgcc_s$(SHLIB_EXT).1.stage?.
7991         (stage1-start): Remove and copy libunwind.a and
7992         libunwind*$(SHLIB_EXT) instead of libunwind*.
7993         (stage2-start): Likewise.
7994         (stage3-start): Likewise.
7995         (stage4-start): Likewise.
7996         (stageprofile-start): Likewise.
7997         (stagefeedback-start): Likewise.
7998
7999         * config/alpha/t-osf4 (SHLIB_LINK): Use a temporary file for
8000         the shared library to be created and don't remove the existing
8001         shared library.
8002         * config/arm/t-netbsd (SHLIB_LINK): Likewise.
8003         * config/i386/t-nwld (SHLIB_LINK): Likewise.
8004         * config/mips/t-slibgcc-irix (SHLIB_LINK): Likewise.
8005         * config/pa/t-hpux-shlib (SHLIB_LINK): Likewise.
8006         * config/sh/t-linux (SHLIB_LINK): Likewise.
8007         * config/t-libunwind-elf (SHLIBUNWIND_LINK): Likewise.
8008         * config/t-slibgcc-darwin (SHLIB_LINK): Likewise.
8009         * config/t-slibgcc-elf-ver (SHLIB_LINK): Likewise.
8010         * config/t-slibgcc-sld (SHLIB_LINK): Likewise.
8011
8012         * mklibgcc.in (libgcc-stage-start): Also move "*${objext}s"
8013         files.
8014
8015 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
8016
8017         * basic-block.h (reg_set_iterator): New.
8018         (EXECUTE_IF_SET_IN_REG_SET): Make it iterator style.
8019         (EXECUTE_IF_AND_COMPL_IN_REG_SET): Likewise.
8020         (EXECUTE_IF_AND_IN_REG_SET): Likewise.
8021         * caller-save.c (save_call_clobbered_regs): Adjust to the new
8022         style.
8023         * cfgcleanup.c (thread_jump): Likewise.
8024         * cfgrtl.c (safe_insert_insn_on_edge): Likewise.
8025         * conflict.c (conflict_graph_compute): Likewise.
8026         * flow.c (verify_local_live_at_start, update_life_info,
8027         initialize_uninitialized_subregs, propagate_one_insn,
8028         init_propagate_block_info, free_propagate_block_info,
8029         propagate_block, dump_regset): Likewise.
8030         * global.c (global_conflicts): Likewise.
8031         * graph.c (start_bb): Likewise.
8032         * local-alloc.c (update_equiv_regs): Likewise.
8033         * loop.c (load_mems): Likewise.
8034         * reload1.c (compute_use_by_pseudos, order_regs_for_reload,
8035         find_reg, finish_spills): Likewise.
8036         * resource.c (mark_target_live_regs): Likewise.
8037         * sched-deps.c (sched_analyze_insn): Likewise.
8038         * sched-rgn.c (sched-rgn.c): Likewise.
8039         * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise.
8040
8041 2004-10-18  Jakub Jelinek  <jakub@redhat.com>
8042
8043         * config/i386/i386.md (addqi_1_slp): Test for incdec_operand
8044         operand 1 instead of 2
8045
8046 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
8047
8048         * loop-unroll.c: Fix comment typos.
8049
8050 2004-10-18  Revital Eres  <eres@il.ibm.com>
8051
8052         * Makefile.in (loop-unroll.o): Add VARRAY_H dependency.
8053         * loop-unroll.c: Include varray.h.
8054         (struct var_to_expand, struct opt_info): Rename split_ivs_info to
8055         opt_info and expand it to support variable expansion.
8056         (analyze_insns_in_loop): Rename analyze_ivs_to_split and
8057         expand it to support variable expansion.
8058         (pt_info_start_duplication): Rename si_info_start_duplication.
8059         (apply_opt_in_copies): Rename split_ivs_in_copies and add support
8060         to the variable expansion optimization.
8061         (free_opt_info): Rename free_si_info.
8062         (analyze_insn_to_expand_var, referenced_in_one_insn_in_loop_p,
8063         expand_var_during_unrolling, insert_var_expansion_initialization,
8064         combine_var_copies_in_loop_exit, release_var_copies,
8065         get_expansion): New functions.
8066         (peel_loop_completely, unroll_loop_constant_iterations,
8067         unroll_loop_runtime_iterations, peel_loop_simple,
8068         unroll_loop_stupid): Change uses of struct si_info
8069         to struct opt_info
8070         and add uses of fvariable-expansion-in-unroller flag.
8071         * params.def: Add parameter to restrict the number of expansions.
8072         * params.h: (MAX_VARIABLE_EXPANSIONS): New define to restrict
8073         the number of expansions.
8074         * common.opt: (fvariable-expansion-in-unroller): New flag.
8075         * doc/invoke.texi: (fvariable-expansion-in-unroller): Document.
8076
8077 2004-10-18  Danny Smith  <dannysmith@users.sourceforge.net>
8078
8079         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Define
8080         __GXX_MERGED_TYPEINFO_NAMES to 0.
8081
8082 2004-10-17  Hans-Peter Nilsson  <hp@bitrange.com>
8083
8084         * cfgrtl.c (rtl_verify_flow_info_1): When checking insns in a bb,
8085         handle barriers in a bb by checking that it points to a NULL bb.
8086         * emit-rtl.c (emit_barrier_before): Set BLOCK_FOR_INSN to NULL.
8087         (emit_barrier_after, emit_barrier): Ditto.
8088
8089 2004-10-18  Joseph S. Myers  <jsm@polyomino.org.uk>
8090
8091         * doc/extend.texi (Attribute Syntax): Clarify details of
8092         attributes on parameters.
8093
8094 2004-10-17  Zdenek Dvorak  <dvorakz@suse.cz>
8095
8096         * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize): Move checking out of
8097         loop.
8098
8099 2004-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
8100
8101         Revert:
8102         2004-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
8103
8104         * c-typeck.c (default_function_array_conversion): Always create
8105         &a[0] for array types.
8106         (build_unary_op): Do not fold &a[x] into a + x.
8107
8108 2004-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
8109
8110         PR middle-end/17925
8111         * cfgexpand.c (expand_gimple_cond_expr): Emit line notes for next basic
8112         block if there is a goto with a locus.
8113
8114 2004-10-17  Kazu Hirata  <kazu@cs.umass.edu>
8115
8116         * config/elfos.h, config/gofast.h, config/interix.h,
8117         config/netbsd.h, config/svr3.h, config/vxworks.h,
8118         config/alpha/alpha-modes.def, config/alpha/alpha-protos.h,
8119         config/alpha/ev4.md, config/alpha/ev5.md, config/alpha/ev6.md,
8120         config/alpha/netbsd.h, config/arm/arm-modes.def,
8121         config/arm/unknown-elf.h, config/c4x/c4x-modes.def,
8122         config/cris/aout.h, config/frv/frv-modes.def,
8123         config/i386/beos-elf.h, config/i386/gas.h,
8124         config/i386/i386-coff.h, config/i386/i386-modes.def,
8125         config/i386/linux.h, config/i386/linux64.h,
8126         config/i386/mingw32.h, config/i386/netbsd-elf.h,
8127         config/i386/netbsd64.h, config/i386/sco5.h,
8128         config/i386/sol2.h, config/i386/uwin.h, config/i860/i860.md,
8129         config/ia64/ia64-modes.def, config/ia64/itanium1.md,
8130         config/ia64/itanium2.md, config/m68k/m68k-modes.def,
8131         config/mips/mips-modes.def, config/mips/sdb.h,
8132         config/mips/vr.h, config/mips/vxworks.h,
8133         config/pa/pa-hpux10.h, config/pa/pa-hpux11.h,
8134         config/pa/pa32-linux.h, config/rs6000/40x.md,
8135         config/rs6000/7450.md, config/rs6000/8540.md,
8136         config/rs6000/linuxspe.h, config/rs6000/power4.md,
8137         config/rs6000/rs6000-modes.def, config/rs6000/rtems.h,
8138         config/rs6000/spe.h, config/s390/2064.md, config/s390/linux.h,
8139         config/s390/s390-modes.def, config/sh/elf.h,
8140         config/sh/sh-modes.def, config/sh/sh64.h,
8141         config/sparc/ultra1_2.md, config/sparc/ultra3.md,
8142         config/stormy16/stormy16.md, config/v850/v850-protos.h,
8143         config/vax/vax.md: Update copyright.
8144
8145 2004-10-17  Kazu Hirata  <kazu@cs.umass.edu>
8146
8147         * expr.c (expand_expr_real_1): Remove an obsolete comment.
8148
8149 2004-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
8150
8151         * c-typeck.c (default_function_array_conversion): Always create
8152         &a[0] for array types.
8153         (build_unary_op): Do not fold &a[x] into a + x.
8154
8155 2004-10-17  Jakub Jelinek  <jakub@redhat.com>
8156
8157         * pointer-set.c (hash1): Use integer part of 2^64 / phi
8158         instead 2^32 / phi if long is 64-bit.
8159
8160 2004-10-17  Joseph S. Myers  <jsm@polyomino.org.uk>
8161
8162         * c-common.h (enum rid): Remove RID_PTRBASE, RID_PTREXTENT and
8163         RID_PTRVALUE.
8164         * c-parse.in (PTR_VALUE, PTR_BASE, PTR_EXTENT): Remove %token
8165         declarations.
8166         (reswords): Remove __ptrbase, __ptrbase__, __ptrextent,
8167         __ptrextent__, __ptrvalue and __ptrvalue__.
8168         (rid_to_yy): Remove RID_PTRBASE, RID_PTREXTENT and RID_PTRVALUE
8169         entries.
8170
8171 2004-10-16  Dale Johannesen  <dalej@apple.com>
8172
8173         * c-common.c (c_common_get_alias_set):  Use GGC for type_hash_table.
8174
8175 2004-10-16  Zdenek Dvorak  <dvorakz@suse.cz>
8176
8177         PR tree-optimization/17766
8178         * basic-block.h (enum dom_state): DOM_CONS_OK removed.
8179         (dom_info_available_p): Declare.
8180         * cfghooks.c (split_block, make_forwarder_block): Use
8181         dom_info_available_p.
8182         * dominance.c (compute_dom_fast_query, calculate_dominance_info,
8183         free_dominance_info, verify_dominators): Ditto.
8184         (dom_info_available_p): New function.
8185         * tree-cfg.c (cleanup_control_expr_graph): Free dominance information.
8186         (thread_jumps): Use dom_info_available_p.
8187         * tree-complex.c (expand_complex_div_wide): Ditto.
8188         * tree-mudflap.c (mf_build_check_statement_for): Ditto.
8189
8190 2004-10-16  Zdenek Dvorak  <dvorakz@suse.cz>
8191
8192         * tree-ssa-loop-ivopts.c (struct ivopts_data): New field important_candidates.
8193         (find_best_candidate): Take also important candidates into account.
8194         (find_optimal_iv_set): Initialize important_candidates bitmap.
8195
8196 2004-10-16  Zdenek Dvorak  <dvorakz@suse.cz>
8197
8198         PR tree-optimization/17560
8199         * predict.c (tree_estimate_probability): Mark irreducible
8200         loops.
8201
8202 2004-10-16  Zdenek Dvorak  <dvorakz@suse.cz>
8203
8204         PR rtl-optimization/17723
8205         * cfgcleanup.c (merge_memattrs): Handle case when
8206         MEM_SIZE == NULL_RTX.
8207
8208 2004-10-15  Andrew Pinski  <pinskia@physics.uc.edu>
8209
8210         * toplev.c (dump_file_name): Change type to be const.
8211
8212 2004-10-15  Joseph S. Myers  <jsm@polyomino.org.uk>
8213
8214         * c-typeck.c (build_compound_expr, build_c_cast): Don't try to use
8215         non_lvalue to stop something being a null pointer constant.
8216
8217 2004-10-15  Aldy Hernandez  <aldyh@redhat.com>
8218
8219         * config/rs6000/rs6000.h (FUNCTION_ARG_REGNO_P): FPRs are only
8220         available for TARGET_FPRS.
8221         (FUNCTION_VALUE_REGNO_P): Same.
8222
8223 2004-10-15  Geoffrey Keating  <geoffk@apple.com>
8224
8225         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
8226         -maltivec in same style as other ISA options.
8227
8228 2004-10-15  Jon Grimm <jgrimm2@us.ibm.com>
8229
8230         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Add __powerpc__
8231         definition.
8232
8233 2004-10-15  Kazu Hirata  <kazu@cs.umass.edu>
8234
8235         * bitmap.c, bitmap.h, builtin-attrs.def, cfglayout.h,
8236         collect2.h, conflict.c, coretypes.h, coverage.h, errors.h,
8237         gcc.h, gcov-dump.c, gen-protos.c, gencheck.c, gencodes.c,
8238         genconstants.c, gengenrtl.c, genmodes.c, genpeep.c,
8239         gensupport.h, graph.h, gthr-gnat.c, gthr-gnat.h, gthr-posix.c,
8240         gthr-posix.h, hard-reg-set.h, hwint.h, integrate.h, libgcc2.c,
8241         lists.c, machmode.def, mips-tdump.c, opts.h, params.c,
8242         predict.def, predict.h, protoize.c, reload.h, resource.h,
8243         rtl-error.c, sbitmap.c, sbitmap.h, sreal.c, tlink.c,
8244         tree-dump.h, tree-inline.h, unwind-dw2-fde.c, unwind-dw2.c,
8245         unwind-sjlj.c, value-prof.h: Update copyright.
8246
8247 2004-10-15  Kazu Hirata  <kazu@cs.umass.edu>
8248
8249         * pointer-set.c, tree-vectorizer.c: Fix comment typos.
8250
8251 2004-10-15  Diego Novillo  <dnovillo@redhat.com>
8252
8253         * tree-optimize.c (execute_one_pass): Stop timer right after
8254         executing the pass.
8255
8256 2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
8257
8258         Revert:
8259         2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
8260         PR middle-end/17967
8261         Revert:
8262                 * tree-cfg.c (remove_usless_stmts_cond):  Fold statement.
8263                 (remove_useless_stmts_1):  Fold trees we know how to fold.
8264
8265 2004-10-14  David Edelsohn  <edelsohn@gnu.org>
8266
8267         * configure.ac: Add .machine power4 directive when testing for
8268         mfcr field.
8269         * configure: Regenerate.
8270
8271 2004-10-14  Geoffrey Keating  <geoffk@apple.com>
8272
8273         * config/darwin.h (JUMP_TABLES_IN_TEXT_SECTION): Don't define.
8274
8275 2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
8276
8277         * tree-vectorizer.c (vect_transform_loop): Declare vectorization_factor
8278         always.
8279
8280 2004-10-14  Daniel Jacobowitz  <dan@codesourcery.com>
8281
8282         * config/rs6000/rs6000.h (REG_CLASS_FROM_LETTER): Return NO_REGS
8283         for 'f' if !TARGET_FPRS.
8284
8285 2004-10-14  Richard Henderson  <rth@redhat.com>
8286
8287         PR debug/14492
8288         * dwarf2out.c (loc_descriptor_from_tree_1): Handle FIX_*_EXPR.
8289
8290 2004-10-14  Richard Henderson  <rth@redhat.com>
8291
8292         PR c/17023
8293         * c-decl.c (store_parm_decls_oldstyle): Care for parameter type
8294         as error_mark_node.
8295         * c-parse.in (compstmt_primary_start): Check cur_stmt_list non-null
8296         instaed of current_function_decl non-null.
8297
8298 2004-10-14  Matt Austern  <austern@apple.com>
8299
8300         * pointer-set.c: New file, special-purpose hash table.
8301         * pointer-set.h: New file.
8302         * tree.h (struct pointer_set_t): Declare as opaque type.
8303         (tree_walk): Last argument is pointer_set_t* now.
8304         * tree-inline.c (WALK_SUBTREE): Convert from htab to pset.
8305         (walk_type_fields):
8306         (walk_tree): Convert from htab_t to pointer_set_t for keeping
8307         track of which nodes have already been visited.
8308         (walk_tree_without_duplicates): Convert from htab_t to pointer_set_t.
8309         * cgraphunit.c (cgraph_create_edges): Likewise.
8310         (cgraph_characterize_statics_local): Likewise.
8311         * tree-dfa.c (collect_dfa_stats): Likewise.
8312         * langhooks-def.h (lhd_tree_inlining_walk_subtrees): Last arg is
8313         pointer_set_t* now.
8314         * langhooks.c (lhd_tree_inlining_walk_subtrees): Likewise.
8315         * langhooks.h (struct lang_hooks_for_tree_inlining): Last arg type
8316         of walk_subtrees is pointer_set_t* now.
8317         * Makefile.in (OBJS-common): add pointer-set.o
8318         (tree-inline.o): Depends on pointer-set.h
8319         (tree-dfa.o): Likewise
8320         (cgraphunit.o): Likewise
8321
8322 2004-10-14  Geoffrey Keating  <geoffk@apple.com>
8323
8324         * config/rs6000/darwin.h (ASM_SPEC): Delete.
8325         (TARGET_ASM_FILE_START): Define.
8326         * config/darwin.h (ASM_SPEC): Define.
8327         * config/rs6000/t-darwin (TARGET_LIBGCC2_CFLAGS): Don't supply
8328         -mlong-double-128, it's the default.  Update comment about reason
8329         for force_cpusubtype_ALL.
8330         * config/rs6000/darwin-vecsave.asm: Supply .machine.
8331         * config/rs6000/darwin-world.asm: Likewise.
8332         * config/rs6000/rs6000.c (rs6000_darwin_file_start): New.
8333         (symbolic_operand): Delete #if 0ed code.
8334
8335 2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
8336
8337         * stmt.c (add_case_node): Make sure that we have integer
8338         constant before calling tree_int_cst_compare.
8339
8340 2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
8341
8342         PR middle-end/17967
8343         Revert:
8344                 * tree-cfg.c (remove_usless_stmts_cond):  Fold statement.
8345                 (remove_useless_stmts_1):  Fold trees we know how to fold.
8346
8347 2004-10-14  Joseph S. Myers  <joseph@codesourcery.com>
8348
8349         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS),
8350         config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow
8351         -m64.
8352
8353 2004-10-14  Ulrich Weigand  <uweigand@de.ibm.com>
8354
8355         * reload.c (find_reloads): When reloading a PLUS with constant
8356         operand, make sure the constant is pushed to the constant pool
8357         if required.
8358         * config/s390/s390.c (s390_secondary_input_reload_class): Remove
8359         reload bug workaround.
8360         (s390_expand_plus_operand): Likewise.
8361
8362 2004-10-14  David Edelsohn  <edelsohn@gnu.org>
8363
8364         * opts.c (common_handle_option): Do not enable
8365         flag_speculative_prefetching for -fprofile-generate/use.
8366
8367 2004-10-14  Devang Patel  <dpatel@apple.com>
8368
8369         PR 17635
8370         * tree-if-conv.c (process_phi_nodes): Process latch block.
8371         (combine_blocks): Process latch block and update loop structure.
8372
8373 2004-10-14  Olga Golovanevsky  <olga@il.ibm.com>
8374
8375         * tree-vectorizer.c (vect_generate_tmps_on_preheader):
8376         (vect_update_ivs_after_vectorizer):
8377         (vect_transform_for_unknown_loop_bound):
8378         (tree_duplicate_loop_to_edge):
8379         (allocate_new_names):
8380         (rename_use_op):
8381         (rename_def_op):
8382         (rename_variables_in_bb):
8383         (free_new_names):
8384         (rename_variables_in_loop):
8385         (copy_phi_nodes):
8386         (update_phis_for_duplicate_loop):
8387         (update_phi_nodes_for_guard):
8388         (make_loop_iterate_ntimes):
8389         (tree_duplicate_loop_to_edge_cfg):
8390         (add_loop_guard):
8391         (vect_analyze_loop_with_symbolic_num_of_iters):
8392         (verify_loop_for_duplication):
8393         (vect_gen_niters_for_prolog_loop):
8394         (vect_update_niters_after_peeling):
8395         (vect_update_inits_of_dr):
8396         (vect_update_inits_of_drs):
8397         (vect_build_loop_niters):
8398         (vect_do_peeling_for_alignment): New functions.
8399         (vect_transform_loop): Add unknown and known but indivisible loop
8400         bound support; add peeling for unalignment support.
8401         (vect_analyze_loop_form): Support symbolic number of iterations.
8402         (vect_transform_loop_bound): New input parameter.
8403         (vect_get_loop_niters): Change input parameter type.
8404         (new_loop_vec_info): LOOP_VINFO_NITERS is tree now.
8405         (vectorizable_store): Allow unaligned access.
8406         (vectorize_loops): Add rewrite_into_loop_closed_ssa.
8407         (vect_analyze_data_refs_alignment): Allowed one unaligned
8408         store.
8409         * tree-vectorizer.h (LOOP_VINFO_NITERS_KNOWN_P): Redefined
8410         to use tree.
8411         (LOOP_VINFO_INT_NITERS): New macro.
8412         (MAX_NUMBER_OF_UNALIGNED_DATA_REFS): New define.
8413         (do_peeling_for_alignment):
8414         (unaligned_drs): New members of _loop_vec_info.
8415         (LOOP_DO_PEELING_FOR_ALIGNMENT): New macro.
8416
8417 2004-10-14  Ranjit Mathew  <rmathew@hotmail.com>
8418
8419         * tree.h (TREE_STRING_POINTER): Wrap in "const char *".
8420         (struct tree_string): Remove "const" qualifier for "str".
8421
8422 2004-10-14  Ira Rosen  <irar@il.ibm.com>
8423
8424         * tree-vectorizer.c (vect_analyze_data_refs): Call
8425         vect_get_base_and_bit_offset to get memory tag for array ref.
8426         (vect_create_addr_base_for_vector_ref): Remove redundant checks.
8427
8428 2004-10-14  Richard Earnshaw  <rearnsha@arm.com>
8429
8430         * configure.ac: Use $LN_S for creating symlinks (not $LN).
8431         * configure: Regenerate.
8432
8433 2004-10-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8434
8435         * doc/install.texi (*-*-solaris2*): Update with info about kernel
8436         patches to solve spurious testsuite failures.
8437
8438 2004-10-14  Dorit Naishlos  <dorit@il.bim.com>
8439
8440         * tree-vectorizer.c (get_vectype_for_scalar_type): Added debug prinouts.
8441         Added check that vectype is VECTOR_MODE_P, instead of check for BLKmode.
8442         (vect_analyze_operations): Make sure the vectorization factor > 1. Add
8443         gcc_assert under ENABLE_CHECKING.
8444         (vectorizable_operation): Remove check for VECTOR_MODE_P (moved to
8445         get_vectype_for_scalar_type).
8446
8447         (vect_get_vec_def_for_operand): Remove redundant variables.
8448         (vect_transform_loop): Likewise.
8449
8450 2004-10-14  Richard Sandiford  <rsandifo@redhat.com>
8451
8452         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Make r11 fixed and
8453         global for -mcaller-super-interworking.
8454         (CALLER_INTERWORKING_SLOT_SIZE): New macro.
8455         * config/arm/arm.c (thumb_compute_save_reg_mask): Save r11 if
8456         CALLER_INTERWORKING_SLOT_SIZE is nonzero and the function does
8457         not need a frame pointer.
8458         (arm_get_frame_offsets): Add CALLER_INTERWORKING_SLOT_SIZE bytes to
8459         the soft frame pointer offset.
8460         (thumb_expand_prologue): Set up r11 for -mcaller-super-interworking.
8461         * config/arm/arm.md (*call_reg_thumb, *call_value_reg_thumb): Use
8462         _interwork_{r7,r11}_call_via_rN if some arguments are passed on
8463         the stack.  Use frame_pointer_needed to choose between them.
8464         * config/arm/lib1funcs.asm (_arm_return_{r7,r11}): New functions.
8465         (interwork_with_frame): New macro.
8466         (interwork): Add _interwork_{r7,r11}_call_via_rN().
8467
8468 2004-10-14  Ben Elliston  <bje@au.ibm.com>
8469
8470         PR other/17900
8471         * diagnostic.c (trim_filename): Fix logic bug in walking backwards
8472         up the filename looking for a previous directory separator.
8473
8474 2004-10-14  Joseph S. Myers  <jsm@polyomino.org.uk>
8475
8476         * c-tree.h (enum c_typespec_kind, struct c_typespec,
8477         parser_xref_tag): New.
8478         (struct c_declspecs): Add tag_defined_p.  Adjust definition of
8479         typedef_p.
8480         (declspecs_add_type): Adjust prototypes.
8481         * c-parse.in (%union): Add tstype.
8482         (typespec_nonattr, typespec_attr, typespec_reserved_nonattr,
8483         typespec_reserved_attr, typespec_nonreserved_nonattr,
8484         structsp_attr, structsp_nonattr): Change to tstype.  Update
8485         actions.
8486         * c-decl.c (build_null_declspecs): Initialize tag_defined_p.
8487         (declspecs_add_type): Update to take struct c_typespec argument.
8488         Set tag_defined_p and typedef_p as appropriate.
8489         (xref_tag): Rename to parser_xref_tag and replace by wrapper.
8490         Update to return struct c_typespec.
8491         (shadow_tag_warned): Don't let empty declarations with qualifiers
8492         or storage class specifiers redeclare a tag if a previous
8493         declaration is visible.
8494
8495 2004-10-13  Richard Henderson  <rth@redhat.com>
8496
8497         PR debug/15860
8498         * dwarf2out.c (rtl_for_decl_location): Apply big-endian correction
8499         for DECL_INCOMING_RTL.
8500
8501 2004-10-14  Hans-Peter Nilsson  <hp@axis.com>
8502
8503         PR target/17984
8504         * config/cris/cris.md (asrandb, asrandw, lsrandb, lsrandw): Apply
8505         trunc_int_for_mode for constants used in shortened mode.
8506
8507 2004-10-13  Richard Henderson  <rth@redhat.com>
8508
8509         PR c/17384
8510         * c-common.c (handle_mode_attribute): Disallow mode changes that
8511         alter the CODE of the top-level type.
8512
8513         * crtstuff.c (__FRAME_END__): Remove mode attribute.  Find 32-bit
8514         integer from internal limits macros.
8515         * config/i386/mm3dnow.h (__v2sf): Fix base type.
8516
8517 2004-10-13  Richard Henderson  <rth@redhat.com>
8518
8519         PR debug/13841
8520         * function.c (instantiate_decl): Recurse for CONCAT.
8521
8522 2004-10-13  David Edelsohn  <edelsohn@gnu.org>
8523
8524         * config/rs6000/rs6000.md (andsi3): Add attribute "compare" for
8525         andi./andis.
8526         (anddi3): Same.
8527         (extzvdi_internal1): Add attribute "compare".
8528         (extzvdi_internal2): Same.
8529
8530 2004-10-12  Tom Tromey  <tromey@redhat.com>
8531
8532         * doc/md.texi (Insn Canonicalizations): Removed extraneous quote.
8533
8534 2004-10-13  Dale Johannesen  <dalej@apple.com>
8535
8536         * doc/extend.texi (Extended Asm):  Rewrite asm volatile description.
8537
8538 2004-10-13  Frank Ch. Eigler  <fche@redhat.com>
8539
8540         * toplev.c (compile_file): Call mudflap_finish_file from here ...
8541         * c-decl.c (c_write_global_declarations): ... instead of here ...
8542         * cp/decl.c (cp_finish_file): ... and here.
8543         * tree-mudflap.c (mudflap_enqueue_decl): Reword a warning message.
8544
8545 2004-10-13  Andrew Pinski  <pinskia@physics.uc.edu>
8546
8547         * tree-ssa-dom.c (record_range): Free the element if we are not
8548         going to use it.
8549
8550 2004-10-13  Tom Tromey  <tromey@redhat.com>
8551
8552         PR java/15578:
8553         * gcc.c (option_map): Added --extdirs and --encoding.
8554
8555 2004-10-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
8556
8557         PR target/14454
8558         * config/sparc/sparc.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Set to
8559         sparc_can_output_mi_thunk.
8560         (sparc_output_mi_thunk): Simplify handling of delta offset.  Add
8561         handling of vcall offset.
8562         (sparc_can_output_mi_thunk): New predicate.
8563         * doc/tm.texi (TARGET_ASM_OUTPUT_MI_THUNK): Document VCALL_OFFSET.
8564         (TARGET_ASM_OUTPUT_MI_VCALL_THUNK): Delete.
8565         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): New target hook.
8566
8567         * config/sparc/sparc.c (emit_and_preserve): Preserve stack alignment.
8568
8569         * config/sparc/sparc.md (movdi): Remove redundant test.
8570
8571 2004-10-13  Paolo Bonzini  <bonzini@gnu.org>
8572
8573         * tree-dump.c (dump_options): Remove TDF_TREE, TDF_RTL,
8574         TDF_IPA from -fdump-tree-*-all.
8575
8576 2004-10-13  Paul Brook  <paul@codesourcery.com>
8577
8578         * config/arm/arm-protos.h (arm_load_pic_register): Update prototype.
8579         * config/arm/arm.c (thumb_find_work_register): Update comments.
8580         (arm_load_pic_register): Add argument for scratch register.
8581         (arm_expand_prologue, thumb_expand_prologue): Pass extra argument.
8582         * config/arm/arm.md (builtin_setjmp_receiver): Ditto.
8583
8584 2004-10-13  Kazu Hirata  <kazu@cs.umass.edu>
8585
8586         * tree-data-ref.c: Fix comment typos.
8587
8588 2004-10-13  Jakub Jelinek  <jakub@redhat.com>
8589             Zdenek Dvorak  <dvorakz@suse.cz>
8590
8591         PR tree-optimization/17724
8592         * tree-cfg.c (tree_purge_dead_eh_edges): Free dominance info.
8593
8594 2004-10-13  Dorit Naishlos  <dorit@il.ibm.com>
8595
8596         * rs6000.c (altivec_builtin_mask_for_load): Made static GTY(()).
8597         (altivec_builtin_mask_for_store): Likewise.
8598         (altivec_init_builtins): Use lang_hooks.builtin_function to
8599         create the decls for builtin_altivec_mask_for_load/store.
8600
8601 2004-10-13  Nick Clifton  <nickc@redhat.com>
8602
8603         * config/c4x/c4x.c: Remove inclusion of loop.h.
8604
8605 2004-10-12  Ben Elliston  <bje@au.ibm.com>
8606
8607         * basic-block.h (edge_iterator): Keep the address of VEC(edge) *.
8608         (ei_container): New; renamed.
8609         (ei_start, ei_last): New macros.
8610         (ei_start_1, ei_last_1): Renamed from ei_start.
8611         (ei_last_1, ei_end_p): Use ei_container() where applicable.
8612         (ei_one_before_end_p, ei_next, ei_edge): Likewise.
8613         * gcse.c (remove_reachable_equiv_notes): Use ei_container().
8614
8615 2004-10-11  Sebastian Pop  <pop@cri.ensmp.fr>
8616
8617         * Makefile.in (tree-ssa-loop-niter.o): Depends on tree-data-ref.h.
8618         * cfgloop.c (initialize_loops_parallel_p): New.
8619         (flow_loops_find): Initialize the parallel_p field to true for all
8620         the loops.
8621         * tree-ssa-loop-niter.c: Include "tree-data-ref.h".
8622         (estimate_numbers_of_iterations_loop): Infers the loop bounds from
8623         the size of the data accessed in the loop.
8624         (struct nb_iter_bound): Moved...
8625         * cfgloop.h (struct nb_iter_bound): ... here.
8626         (estimated_nb_iterations, parallel_p): New fields in struct loop.
8627         (record_estimate): Declare extern here.
8628         * tree-chrec.c: Fix comments.
8629         (nb_vars_in_chrec): New function.
8630         * tree-chrec.h (nb_vars_in_chrec): Declared here.
8631         * tree-data-ref.c: Don't include lambda.h, that is already included
8632         in tree-data-ref.h.
8633         (tree_fold_divides_p): Don't check for integer_onep.
8634         (tree_fold_bezout): Removed.
8635         (gcd): New static duplicated function.
8636         (int_divides_p, dump_subscript): New.
8637         (dump_data_dependence_relation): Use dump_subscript.
8638         (dump_dist_dir_vectors, dump_ddrs, compute_estimated_nb_iterations,
8639         estimate_niter_from_size_of_data): New.
8640         (analyze_array_indexes, analyze_array): Call
8641         estimate_niter_from_size_of_data during the detection of array
8642         references.  Pass in a pointer to the statement that contains the
8643         array reference.
8644         (all_chrecs_equal_p): New.
8645         (compute_distance_vector): Renamed compute_subscript_distance.
8646         Deal with multivariate conflict functions.
8647         (initialize_data_dependence_relation): Initialize DDR_AFFINE_P,
8648         DDR_SIZE_VECT, DDR_DIST_VECT, and DDR_DIR_VECT.
8649         (non_affine_dependence_relation): New.
8650         (analyze_ziv_subscript, analyze_siv_subscript_cst_affine,
8651         analyze_siv_subscript, analyze_miv_subscript,
8652         analyze_overlapping_iterations, subscript_dependence_tester):
8653         Initialize and return last_conflicts function.
8654         (initialize_matrix_A, FLOOR, compute_overlap_steps_for_affine_univar,
8655         compute_overlap_steps_for_affine_1_2): New.
8656         (analyze_siv_subscript_affine_cst): Removed.
8657         (analyze_subscript_affine_affine): Disprove dependences based on the
8658         iteration domains.  Solve the univariate dependence case as before,
8659         but use lambda_matrix_right_hermite instead of tree_fold_bezout.
8660         Implement the multivariate case of 2 versus 1 variables.
8661         (build_classic_dist_vector, build_classic_dir_vector): Implement some
8662         unhandled cases.
8663         (find_data_references_in_loop): Compute and initialize
8664         loop->estimated_nb_iterations and loop->parallel_p.
8665         (analyze_all_data_dependences): Modify the debug dump order.
8666         * tree-data-ref.h (SUB_LAST_CONFLICT_IN_A, SUB_LAST_CONFLICT_IN_B,
8667         subscript->last_conflict_in_a, subscript->last_conflict_in_b): Removed.
8668         (SUB_LAST_CONFLICT, subscript->last_conflict,
8669         data_dependence_relation->affine_p, data_dependence_relation->size_vect,
8670         DDR_AFFINE_P, DDR_SIZE_VECT): New.
8671         (find_data_references_in_loop, initialize_data_dependence_relation,
8672         dump_subscript, dump_ddrs, dump_dist_dir_vectors): Declared here.
8673
8674 2004-10-12  Kelley Cook  <kcook@gcc.gnu.org>
8675
8676         * configure: Regenerate.
8677
8678 2004-10-12  Fariborz Jahanian <fjahanian@apple.com>
8679
8680         PR 17892
8681         * tree-ssa-dom.c (unsafe_associative_fp_binop): New function.
8682         (simplify_rhs_and_lookup_avail_expr): Disallow associativity
8683         and constant folding of floating point MULT_EXPR/PLUS_EXPR
8684         expressions.
8685
8686 2004-10-12  Ulrich Weigand  <uweigand@de.ibm.com>
8687
8688         * config/s390/s390.c (s390_va_start): Use build_va_arg_indirect_ref.
8689         (s390_gimplify_va_arg): Likewise.
8690
8691 2004-10-12  Daniel Jacobowitz  <dan@debian.org>
8692
8693         * defaults.h (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P)
8694         (MODE_BASE_REG_REG_CLASS, REGNO_MODE_OK_FOR_REG_BASE_P)
8695         (REG_MODE_OK_FOR_REG_BASE_P): Provide default definitions.
8696         * regclass.c (record_address_regs): Remove ifdef.  Use
8697         REG_MODE_OK_FOR_REG_BASE_P and MODE_BASE_REG_REG_CLASS.
8698         * regrename.c (REG_MODE_OK_FOR_BASE_P): Remove unnecessary
8699         definition.
8700         (scan_rtx_address, replace_oldest_value_addr): Use
8701         REG_MODE_OK_FOR_REG_BASE_P and MODE_BASE_REG_REG_CLASS.
8702         * reload.c (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P): Remove
8703         unnecessary definitions.
8704         (find_reloads_address_1): Support REG_MODE_OK_FOR_REG_BASE_P
8705         and MODE_BASE_REG_REG_CLASS.
8706         * config/arm/arm.h (MODE_BASE_REG_CLASS): Don't check reload_completed.
8707         (MODE_BASE_REG_REG_CLASS): Define.
8708         (REGNO_MODE_OK_FOR_REG_BASE_P): Define.
8709         (REG_MODE_OK_FOR_REG_BASE_P): Define.
8710         * doc/tm.texi (Register Classes): Document MODE_BASE_REG_REG_CLASS,
8711         REG_MODE_OK_FOR_REG_BASE_P, and REGNO_MODE_OK_FOR_REG_BASE_P.
8712
8713 2004-10-12  Daniel Berlin <dberlin@dberlin.org>
8714
8715         * tree-ssa-alias.c (verify_name_tags): New function.
8716         (verify_flow_sensitive_alias_info): Remove code that used to check name tags.
8717         (verify_alias_info): Call verify_name_tags.
8718
8719 2004-10-12  Kazu Hirata  <kazu@cs.umass.edu>
8720
8721         PR rtl-optimization/17931
8722         * config/i386/i386.c (ix86_rtx_costs): Handle COMPARE with
8723         ZERO_EXTRACT in it.
8724
8725 2004-10-12  Richard Earnshaw  <rearnsha@arm.com>
8726
8727         * arm.c (arm_print_operand): Use output_operand_lossage where possible
8728         rather than aborting.
8729
8730 2004-10-12  Paul Brook  <paul@coudesourcery.com>
8731
8732         * config.gcc: Add armv6{k,z,zk}
8733         * config/arm/arm-cores.def: Add arm1176 and mpcore.
8734         * config/arm/tune.md: Regenerate.
8735         * config/arm/arm.c (FL_FOR_ARCH6K, FL_FOR_ARCH6Z, FL_FOR_ARCH6ZK):
8736         Define.
8737         (all_architectures): Add armv6k, armv6z, armv6zk.
8738         * config/arm/lib1funcs.asm: Recognise new arm arcitectures.
8739         * doc/invoke.texi: Document new arch and cpu values.
8740
8741 2004-10-12  Paul Brook  <paul@coodesourcery.com>
8742
8743         * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Change meabi=3 to
8744         meabi=4.
8745
8746 2004-10-12  Paul Brook  <paul@codesourcery.com>
8747
8748         * config/arm/arm.md (addsi3_cbranch_scratch): Correct constraints.
8749         Handle negative constants.
8750
8751 2004-10-12  Joseph S. Myers  <jsm@polyomino.org.uk>
8752
8753         PR c/17301
8754         * c-typeck.c (convert_arguments): Return error_mark_node if there
8755         are too few arguments.
8756         (build_function_call): Handle error_mark_node return from
8757         convert_arguments.
8758
8759 2004-10-06  Paolo Bonzini  <bonzini@gnu.org>
8760
8761         * configure.ac (symbolic_link): Replace with $LN_S.
8762         (Assembler/Linker): Hard link from gas and binutils trees.
8763         * aclocal.m4 (gcc_AC_PROG_LN_S): Try "cp -p" before cp.
8764         * configure: Regenerate.
8765
8766 2004-10-12  Paul Brook  <paul@codesourcery.com>
8767
8768         * configure.ac: Don't look for host assembler when building a canadian
8769         cross.
8770         * configure: Regenerate.
8771
8772 2004-10-11  Roger Sayle  <roger@eyesopen.com>
8773
8774         PR other/17361
8775         * c-opts.c (permit_fortran_options): Delete/obsolete global variable.
8776         (c_common_init_options): Remove #ifdef CL_F77 code.  Scan command
8777         line options for "-lang-asm" and if found allow any of the C-family
8778         front-end options.
8779         (c_common_handle_option): Remove last use of permit_fortran_options.
8780
8781 2004-10-11  Ulrich Weigand  <uweigand@de.ibm.com>
8782
8783         * config/s390/s390.c (print_operand): Support 'S' format flag.
8784         * config/s390/s390.md ("*tmqi_mem"): Use 'S' format flag.
8785         ("*tstsi", "*tstsi_cconly", "*tstsi_cconly2"): Likewise.
8786         ("*tsthiCCT", "*tsthiCCT_cconly", "*tsthi", "*tsthi_cconly"): Likewise.
8787         ("*tstqiCCT", "*tstqiCCT_cconly", "*tstqi", "*tstqi_cconly"): Likewise.
8788         ("*cmphi_ccu", "*cmpqi_ccu", "*clc"): Likewise
8789         ("movti", "*movdi_31", "*movqi", "*movdf_31", "*mvc"): Likewise.
8790         ("*movstricthi"): Likewise.
8791         ("*load_multiple_di", "*load_multiple_si"): Likewise.
8792         ("*store_multiple_di", "*store_multiple_si"): Likewise.
8793         ("*sethiqisi", "*sethihisi"): Likewise.
8794         ("*sethiqidi_64", "*sethiqidi_31"): Likewise.
8795         ("*andqi3_zarch", "*andqi3_esa", "*nc"): Likewise.
8796         ("*iorqi3_zarch", "*iorqi3_esa", "*oc"): Likewise.
8797         ("*xorqi3", "*xc", "*xc_zero"): Likewise.
8798         ("get_tp_64", "get_tp_31", "set_tp_64", "set_tp_31"): Likewise.
8799
8800         ("*tmhi_full"): Fix incorrect op_type attribute.
8801
8802         ("*adddi3_alc_cc", "*adddi3_alc"): Remove double backslash.
8803         ("*subdi3_slb_cc", "*subdi3_slb"): Likewise.
8804         ("*addsi3_alc_cc", "*addsi3_alc"): Likewise.
8805         ("*subsi3_slb_cc", "*subsi3_slb"): Likewise.
8806
8807 2004-10-11  Andrew Pinski  <pinskia@physics.uc.edu
8808
8809         PR middle-end/16266
8810         * function.c (temp_slots_at_level): Fix typo which creates too
8811         many temp stack slots levels.
8812
8813 2004-10-11  Ulrich Weigand  <uweigand@de.ibm.com>
8814
8815         * config/s390/s390.c (s390_trampoline_template): Generate shorter
8816         trampoline code.
8817         (s390_trampoline_instantiate): Adapt.
8818         * config/s390/s390.h (TRAMPOLINE_SIZE): Adapt to new code.
8819
8820 2004-10-11  Roger Sayle  <roger@eyesopen.com>
8821
8822         PR middle-end/17657
8823         * stmt.c (add_case_node): Add additional type argument.  Declare
8824         as static to match prototype.  Convert the upper and lower bounds
8825         to the specified index type.  Optimize away case ranges/values
8826         that are outside the index type's bounds.  Truncate case ranges
8827         that span the index type's bounds.
8828         (expand_case): Avoid unnessary computation and memory allocation
8829         when index type is error_mark_node.  Pass index_type as required
8830         by change to add_case_node API.  No need to convert case range
8831         bounds to index_type, this is now done by add_case_node.
8832
8833 2004-10-11  Ulrich Weigand  <uweigand@de.ibm.com>
8834
8835         * config/s390/s390-protos.h (s390_offset_p): Add prototype.
8836         * config/s390/s390.c (s390_offset_p): New function.
8837         * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccu",
8838         "*cmpsi_ccu", "*cmphi_ccu", "*cmpqi_ccu"): Use splitter to
8839         transform Q->Q alternatives to *clc pattern.
8840         ("*clc"): Move.
8841         ("movti", "*movdi_64", "*movdi_31", "*movsi_zarch", "*movsi_esa",
8842         "*movhi", "*movqi", "*movdf_64", "*movdf_31", "movsf"): Use splitter
8843         to transform Q->Q alternatives to *mvc pattern.
8844         ("*mvc"): Move.  Add peephole to merge adjacent MVCs.
8845         ("*anddi3", "*andsi3_zarch", "*andsi3_esa", "*andhi3_zarch",
8846         "*andhi3_esa", "*andqi3_zarch", "*andqi3_esa"): Use splitter to
8847         transform Q->Q alternatives to *nc pattern.
8848         ("*nc"): New insn.  New peephole to merge adjacent NCs.
8849         ("*iordi3", "*iorsi3_zarch", "*iorsi3_esa", "*iorhi3_zarch",
8850         "*iorhi3_esa", "*iorqi3_zarch", "*iorqi3_esa"): Use splitter to
8851         transform Q->Q alternatives to *oc pattern.
8852         ("*oc"): New insn.  New peephole to merge adjacent OCs.
8853         ("*xordi3", "*xorsi3", "*xorhi3", "*xorqi3"): Use splitter to
8854         transform Q->Q alternatives to *xc pattern.
8855         ("*xc"): New insn.  New peephole to merge adjacent XCs.
8856         ("*xc_zero"): Move.  Add peephole to merge adjacent XCs.
8857
8858 2004-10-11  Andrew Pinski  <pinskia@physics.uc.edu>
8859
8860         * gimplify.c (gimple_push_condition): Make sure that we don't
8861         have any saved condition cleanup if we were at the top level.
8862
8863 2004-10-11  Richard Sandiford  <rsandifo@redhat.com>
8864
8865         * config/frv/frv.md (*adddi3_internal): Change name to...
8866         (adddi3): ...replacing the exisiting define_expand.  Combine
8867         alternatives.  Fix the range of the constant constraints ('J' instead
8868         of 'NOP').  Remove bogus operands[2] check.  Use simplify_gen_subreg
8869         to extract the lower and upper halves of the DImode operands.
8870         Always use addi3_lower and adddi3_upper, not the subdi3 forms.
8871         (adddi3_lower): Fix the range of the constant constraints and
8872         remove the bogus operands[2] check.
8873         (adddi3_upper): Use gpr_or_int10_operand as the predicate for
8874         operand 2.  Use addxi to handle constant operands.
8875         (subdi3_lower, subdi3_upper): Don't handle constant operands.
8876
8877 2004-10-11  Nathan Sidwell  <nathan@codesourcery.com>
8878
8879         * gengtype-lex.l: Add commented } & ) characters to unconfuse
8880         editor's paren matching. Allow #define inside a struct.
8881
8882 2004-10-10  Andrew Pinski  <pinskia@physics.uc.edu>
8883
8884         PR middle-end/17703
8885         part of PR c++/17657
8886         * fold-const.c (fold_build_cleanup_point_expr): New function.
8887         * tree.h (fold_build_cleanup_point_expr): Prototype.
8888
8889 2004-10-10  Eric Christopher  <echristo@redhat.com>
8890
8891         * dwarf2out.c: Move attribute to subprogram declaration
8892         instead of subroutine type.
8893
8894 2004-10-10  Kazu Hirata  <kazu@cs.umass.edu>
8895
8896         * basic-block.h: Remove the prototypes for can_hoist_insn_p,
8897         hoist_insn_after, and hoist_insn_to_edge.
8898         * rtl.h: Remove the prototypes for reg_referenced_between_p,
8899         no_jumps_between_p, and insn_dependent_p.
8900         * rtlanal.c (no_jumps_between_p, reg_referenced_between_p,
8901         insn_dependent_p, insn_dependent_p_1, hoist_test_store,
8902         can_hoist_insn_p, hoist_update_store, hoist_insn_after,
8903         hoist_insn_to_edge): Remove.
8904
8905 2004-10-10  Joseph S. Myers  <jsm@polyomino.org.uk>
8906
8907         PR c/17881
8908         * c-decl.c (grokparms): Don't warn for parameters of incomplete
8909         type in declarations that are not definitions except for the case
8910         of parameters of void type.
8911
8912 2004-10-10  Kazu Hirata  <kazu@cs.umass.edu>
8913
8914         * tree-cfg.c: Fix comment typos.
8915
8916 2004-10-10  Joseph S. Myers  <jsm@polyomino.org.uk>
8917
8918         PR c/17301
8919         * builtins.c (expand_builtin_va_start): Check for too few
8920         arguments to va_start.
8921
8922 2004-10-10  Joseph S. Myers  <jsm@polyomino.org.uk>
8923
8924         PR c/17189
8925         * c-decl.c (grokfield): Make diagnostic for bad cases of unnamed
8926         fields a pedwarn.  Pedwarn here for unnamed structs/unions if
8927         pedantic.
8928         * c-parse.in (component_decl): Don't pedwarn here for unnamed
8929         fields.
8930
8931 2004-10-09  Zdenek Dvorak  <dvorakz@suse.cz>
8932
8933         PR tree-optimization/17906
8934         * tree-tailcall.c (tree_optimize_tail_calls_1): Do not attempt to
8935         copy non-gimple reg arguments.
8936
8937 2004-10-09  Roger Sayle  <roger@eyesopen.com>
8938
8939         PR rtl-optimization/17853
8940         * simplify-rtx.c (simplify_relational_operation): Correct comment.
8941         Reorganize handling of comparison operations with floating point
8942         results (always return 0.0 even without FLOAT_STORE_FLAG_VALUE).
8943         Likewise, introduce support for comparison operations with vector
8944         result types, introducing a new VECTOR_STORE_FLAG_VALUE target macro.
8945
8946         * doc/rtl.texi: Document new VECTOR_STORE_FLAG_VALUE target macro.
8947         * doc/tm.texi: Likewise.
8948
8949 2004-10-09  Steven Bosscher  <stevenb@suse.de>
8950
8951         * regs.h (struct reg_info_def): Remove the last_node_uid and
8952         changes_mode fields.
8953         (REGNO_LAST_NOTE_UID): Don't define.
8954         * regclass.c (reg_scan_mark_refs): Don't set REGNO_LAST_NOTE_UID.
8955         * regmove.c (copy_src_to_dest): Likewise.
8956
8957 2004-10-09  Roger Sayle  <roger@eyesopen.com>
8958
8959         PR middle-end/17894
8960         * fold-const.c (fold_div_compare): When optimizing X/C1 op C2, the
8961         relational comparison operator op needs to be swapped/reversed when
8962         C1 is negative.  i.e. X/-10 < 1 becomes X >= -9, not X < -9.
8963
8964 2004-10-08  Andrew Pinski  <pinskia@physics.uc.edu>
8965
8966         PR tree-opt/17902
8967         * tree-ssa-phiopt.c (conditional_replacement): Use bsi_after_labels
8968         instead of bsi_start.
8969         (value_replacement): Likewise.
8970         (abs_replacement): Likewise
8971
8972 2004-10-09  Steven Bosscher  <stevenb@suse.de>
8973
8974         * cfgexpand.c (maybe_dump_rtl_for_tree_stmt): New function.
8975         (expand_gimple_cond_expr, expand_gimple_tailcall,
8976         expand_gimple_basic_block): Use it to dump RTL for each stmt.
8977         (tree_expand_cfg): Announce full RTL function dump.
8978         * tree-optimize.c (execute_one_pass): Use normal RTL printing,
8979         not the graph version.
8980         * tree-pretty-print.c (dump_generic_node): Allow empty statements
8981         in the arms of a COND_EXPR for lowered nodes.
8982
8983 2004-10-08  Joseph S. Myers  <joseph@codesourcery.com>
8984
8985         * config/rs6000/spe.h (atosfix16, atosfix32, atosfix64, atoufix16,
8986         atoufix32, atoufix64, strtosfix16, strtosfix32, strtosfix64,
8987         strtoufix16, strtoufix32, strtoufix64): Declare.
8988
8989 2004-10-08  Joseph S. Myers  <jsm@polyomino.org.uk>
8990
8991         * c-lex.c (interpret_float): Give a pedwarn rather than a warning
8992         for an out-of-range floating point constant.
8993         * builtins.c (fold_builtin_inf): Give a pedwarn rather than a
8994         warning if the target format does not support infinities.
8995
8996 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
8997
8998         * emit-rtl.c (last_label_num, base_label_num): Remove.
8999         (max_label_num): Always return label_num.
9000         (set_new_last_label_num, restore_emit_status): Remove.
9001         (init_emit): Don't initialize last_label_num.
9002         * function.c (pop_function_context_from): Don't call
9003         restore_emit_status.
9004         * function.h: Remove the prototype for restore_emit_status.
9005         * rtl.h: Remove the prototype for set_new_last_label_num.
9006
9007 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
9008
9009         * stmt.c (expand_decl_init): Remove.
9010         * tree.h: Remove the corresponding prototype.
9011
9012 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
9013
9014         * integrate.c (try_constants, subst_constants, mark_stores):
9015         Remove.
9016         * integrate.h: Remove the prototype for try_constants.
9017
9018 2004-10-08  Joseph S. Myers  <jsm@polyomino.org.uk>
9019
9020         * c-typeck.c (enum impl_conv): Add ic_argpass_nonproto.
9021         (convert_for_assignment): Handle ic_argpass_nonproto.  Add
9022         comments about its relevance to errors.
9023         (c_convert_parm_for_inlining): Use ic_argpass_nonproto.
9024
9025 2004-10-08  Andrew Pinski  <pinskia@physics.uc.edu>
9026
9027         PR c/16999
9028         * c-ppoutput.c (cb_ident): Don't quote string as it is already
9029         quoted.
9030
9031 2004-10-08  Diego Novillo  <dnovillo@redhat.com>
9032
9033         * tree-ssa-pre.c (init_pre): Use size of ARRAY_REF to allocate
9034         reference_node_pool.
9035
9036 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
9037
9038         * tree-cfg.c: Fix a comment typo.
9039
9040 2004-10-08  Andreas Krebbel  <krebbel1@de.ibm.com>
9041
9042         * config/s390/s390.c (s390_register_info): Don't save fprs for
9043         -msoft-float.
9044         (s390_conditional_register_usage): Make fprs 'fixed' for -msoft-float.
9045
9046 2004-10-08  Ulrich Weigand  <uweigand@de.ibm.com>
9047
9048         * config/s390/s390.h (TARGET_DEFAULT_BACKCHAIN): New define.
9049         (TARGET_DEFAULT): Use symbolic values.
9050         * config/s390/tpf.h (TARGET_DEFAULT_BACKCHAIN): Redefine.
9051         (TARGET_DEFAULT): Use symbolic values.
9052         * config/s390/s390.c (s390_backchain_string): Initialize to
9053         TARGET_DEFAULT_BACKCHAIN.
9054
9055 2004-10-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9056
9057         * builtins.c (expand_builtin_mempcpy): Move tree handling code to
9058         fold_builtin_mempcpy.  Accept a type parameter.  Delete duplicate
9059         code.
9060         (expand_builtin_strcat): Accept a type parameter.
9061         (fold_builtin_mempcpy): Accept a type and endp parameter.
9062
9063         * builtins.c (expand_builtin_strncpy): Delete duplicate code.
9064         Accept an `exp' instead of an `arglist'.
9065
9066 2004-10-08  Nathan Sidwell  <nathan@codesourcery.com>
9067
9068         * tree-tailcall.c (tree_optimize_tail_calls_1): Use fold_convert,
9069         reverting my 2004-09-07 patch to use build_int_cst.
9070
9071 2004-10-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
9072
9073         PR target/17245
9074         * config/sparc/sparc.c (input_operand): Remove redundant code
9075         for handling LO_SUM.
9076         (legitimate_address_p) <REG+REG>: Do not recheck TARGET_V9.
9077         <LO_SUM>: If LO_SUM is offsettable, accept it for TFmode on V9.
9078         Otherwise only accept it for TFmode if quad move insns are available.
9079
9080 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
9081
9082         * tree-cfg.c (tree_forwarder_block_p): Reorder checks so that
9083         common cases will be caught earlier than others.
9084
9085 2004-10-08  Michael Matz  <matz@suse.de>
9086
9087         * loop-doloop.c (doloop_optimize): Extend count.
9088
9089 2004-10-08  Kaz Kojima  <kkojima@gcc.gnu.org>
9090
9091         * config/sh/sh.md (prefetch_media, prefetch_i4): New insns.
9092         (prefetch): Convert to expander.
9093
9094 2004-10-08  Kaz Kojima  <kkojima@gcc.gnu.org>
9095
9096         * config/sh/sh.md (tls_global_dynamic): Use MEM pattern for the
9097         first argument of CALL.
9098         (tls_local_dynamic): Likewise.
9099
9100 2004-10-08  Joseph S. Myers  <jsm@polyomino.org.uk>
9101
9102         * c-typeck.c (enum impl_conv): New.
9103         (convert_for_assignment): Use it.  Take tree for function called
9104         instead of its name.  Handle ObjC selectors for diagnostics at
9105         start of function.  Select diagnostic text within the function
9106         using full sentences for diagnsotics.  Use %qE to name functions
9107         in diagnostics.
9108         (convert_arguments, build_modify_expr,
9109         c_convert_parm_for_inlining, digest_init, c_finish_return): Update
9110         callers to convert_for_assignment.
9111         (warn_for_assignment): Remove.
9112
9113 2004-10-08  Nick Clifton  <nickc@redhat.com>
9114
9115         * config/sh/symbian.c (symbian_possibly_export_base_class):
9116         Replace use of deleted TYPE_USES_VIRTUAL_BASECLASSES macro with
9117         TYPE_CONTAINS_VPTR_P.
9118
9119 2004-10-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
9120
9121         * config/m32r/m32r.h (CONDITIONAL_REGISTER_USAGE): Don't exclude
9122         fixed registers form all_used_regs. Update call_really_used_regs.
9123         (CALL_REALLY_USED_REGISTERS): Define.
9124         * config/m32r/m32r.c (MUST_SAVE_REGISTER): Replace call_used_regs
9125         with call_really_used_regs.
9126
9127 2004-10-08  Alan Modra  <amodra@bigpond.net.au>
9128
9129         * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Choose gcrt1.o
9130         for -profile as well as -p and -pg.
9131
9132 2004-10-07  Andrew Pinski  <pinskia@physics.uc.edu>
9133
9134         * libgcc2.c (__moddi3): Cast &w to UDWtype*.
9135
9136 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
9137
9138         * tree-cfg.c (tree_block_forwards_to): Remove.
9139         * tree-flow.h: Remove the corresponding prototype.
9140
9141 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
9142
9143         * tree-flow-inline.h (phi_nodes): Remove an unnecessary check
9144         for ENTRY_BLOCK_PTR and EXIT_BLOCK_PTR.
9145
9146 2004-10-07  Geoffrey Keating  <geoffk@apple.com>
9147
9148         Radar 3813796
9149         * config/rs6000/rs6000.c (rs6000_generate_compare): When
9150         flag_trapping_math is in effect, don't generate subtract
9151         instructions.
9152
9153 2004-10-07  Ulrich Weigand  <uweigand@de.ibm.com>
9154
9155         * config/s390/s390-protos.h (s390_narrow_logical_operator): Add.
9156         * config/s390/s390.c (s390_narrow_logical_operator): New function.
9157         (s390_extra_constraint_str): Add 'A' constraints.
9158         (s390_const_ok_for_constraint_p): Add 'Nx' constraints.
9159         * config/s390/s390.h (EXTRA_MEMORY_CONSTRAINT): Add 'A' constraint.
9160         (CONSTRAINT_LEN): Likewise.
9161         * config/s390/s390.md ("*anddi3"): Add NI alternative and splitter.
9162         ("*andsi3_zarch", "*andsi3_esa"): Likewise.
9163         ("*andhi3_zarch", "*andhi3_esa"): Likewise.
9164         ("*iordi3"): Add OI alternative and splitter.
9165         ("*iorsi3_zarch", "*iorsi3_esa"): Likewise.
9166         ("*iorhi3_zarch", "*iorhi3_esa"): Likewise.
9167         ("*xordi3"): Add XI alternative and splitter.
9168         ("*xorsi3", "*xorhi3"): Likewise.
9169
9170 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
9171
9172         * config/mips/mips.c (mips_function_rodata_section): New function.
9173         (TARGET_ASM_FUNCTION_RODATA_SECTION): Use it.
9174
9175 2004-10-07  Devang Patel  <dpatel@apple.com>
9176
9177         * rs6000/altivec.md (UNSPEC_VCMPBFP, UNSPEC_VCMPEQUB, UNSPEC_VCMPEQUH,
9178         UNSPEC_VCMPEQUW, UNSPEC_VCMPGEFP, UNSPEC_VCMPGTUB, UNSPEC_VCMPGTSB,
9179         UNSPEC_VCMPGTUH, UNSPEC_VCMPGTSH, UNSPEC_VCMPGTUW, UNSPEC_VCMPGTSW,
9180         UNSPEC_VCMPGTFP, UNSPEC_VSEL4SI, UNSPEC_VSEL4SF, UNSPEC_VSEL8HI,
9181         UNSPEC_VSEL16QI, UNSPEC_VCOND_V4SI, UNSPEC_VCOND_V4SF, UNSPEC_VCOND_V8HI,
9182         UNSPEC_VCOND_V16QI, UNSPEC_VCONDU_V4SI, UNSPEC_VCONDU_V8HI,
9183         UNSPEC_VCONDU_V16QI): New constant defines.
9184         (vcondv4si, vcondv4sf, vcondv8hi, vcondv16qi, vconduv4si, vconduv8hi,
9185         vconduv16qi): New patterns.
9186         * rs6000/rs6000-protos.h (rs6000_emit_vector_cond_expr): New function.
9187         * rs6000/rs6000.c (rs6000_emit_vector_cond_expr): New function.
9188         (get_vec_cmp_insn): Same.
9189         (get_vsel_insn): Same.
9190         (rs6000_emit_vector_compare): Same.
9191         (rs6000_emit_vector_select): Same.
9192         (INSN_NOT_AVAILABLE): New.
9193
9194 2004-10-07  Zdenek Dvorak  <dvorakz@suse.cz>
9195
9196         PR tree-optimization/17749
9197         * tree-tailcall.c (find_tail_calls): Check that parameter is
9198         a gimple_reg.
9199
9200 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
9201
9202         * config/ia64/ia64.c: Fix a comment typo.
9203
9204 2004-10-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
9205
9206         * doc/install.texi (*-*-solaris2*): Fix marker for URL.
9207
9208 2004-10-07  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
9209
9210         PR c++/17115
9211         * tree-inline.c (expand_call_inline): Do not warn for functions
9212         marked with attribute noinline.
9213
9214 2004-10-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
9215
9216         PR target/17862
9217         * config/sparc/sparc.c (sparc_output_mi_thunk): Set
9218         current_function_uses_only_leaf_regs as well as sparc_leaf_function_p.
9219
9220         * config/sparc/sparc.c (sparc_gimplify_va_arg): Pass 'false' instead
9221         of 0 as 4th argument to pass_by_reference.
9222         Call build_va_arg_indirect_ref instead of build_fold_indirect_ref.
9223
9224 2004-10-06  Eric Christopher  <echristo@redhat.com>
9225
9226         * config/sh/sh.c (sh_dwarf_calling_convention): Fix renesas dwarf
9227         attribute.
9228
9229 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
9230
9231         PR target/17770
9232         * config/mips/mips.md (mov_<load>l): Remove hazard=none attribute.
9233
9234 2004-10-07  Zdenek Dvorak  <dvorakz@suse.cz>
9235
9236         PR rtl-optimization/17791
9237         * loop-doloop.c (doloop_modify): Take number of iterations as
9238         argument.
9239         (doloop_optimize): Extend or shorten the number of iterations
9240         when changing mode of counter register.
9241         * loop-iv.c (lowpart_subreg): Export.
9242         * rtl.h (lowpart_subreg): Declare.
9243
9244 2004-10-07  Zdenek Dvorak  <dvorakz@suse.cz>
9245
9246         PR tree-optimization/17806
9247         * cfghooks.c (split_edge): Update IRREDUCIBLE_LOOP flags.
9248         * cfgloopmanip.c (loop_split_edge_with): Updating of IRREDUCIBLE_LOOP
9249         flags moved to split_edge.
9250
9251 2004-10-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
9252
9253         PR middle-end/17835
9254         * expmed.c (expand_sdiv_pow2): Force a stack adjustment
9255         before tentatively building the conditional move sequence.
9256
9257 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
9258
9259         PR target/16815
9260         * function.c (assign_parm_setup_block_p): Tighten BLOCK_REG_PADDING
9261         check.
9262         * config/pa/pa.h (BLOCK_REG_PADDING): Define in terms of
9263         function_arg_padding.
9264
9265 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
9266
9267         PR bootstrap/17857
9268         * Makefile.in (stmp-fixproto): Pass FIX_HEADER=build/... to fixproto.
9269
9270 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
9271
9272         * hooks.c (hook_int_void_1, hook_void_int): Remove.
9273         * hooks.h: Remove the corresponding prototypes.
9274
9275 2004-10-06  Andrew Pinski  <pinskia@physics.uc.edu>
9276
9277         PR middle-end/17849
9278         * tree-nested.c (walk_stmt_info): Add changed field.
9279         (convert_nonlocal_reference): Set changed to when we
9280         change a decl to unnested decl.
9281         <case ADDR_EXPR>: Instead of checking if the immediate part
9282         of the ADDR_EXPR changed, check the field changed.
9283         Use recompute_tree_invarant_for_addr_expr instead of unsetting
9284         TREE_INVARIANT.
9285         (convert_local_reference):  Set changed to when we
9286         change a decl to unnested decl.
9287         <case ADDR_EXPR>: Instead of checking if the immediate part
9288         of the ADDR_EXPR changed, check the field changed.
9289         Also call recompute_tree_invarant_for_addr_expr on the ADDR_EXPR.
9290
9291 2004-10-06  Kazu Hirata  <kazu@cs.umass.edu>
9292
9293         * defaults.h (DWARF2_GENERATE_TEXT_SECTION_LABEL): Remove.
9294         * dwarf2out.c (dwarf2out_init): Remove references to
9295         DWARF2_GENERATE_TEXT_SECTION_LABEL.
9296         * system.h: Poison DWARF2_GENERATE_TEXT_SECTION_LABEL.
9297         * doc/tm.texi (DWARF2_GENERATE_TEXT_SECTION_LABEL): Remove.
9298
9299 2004-10-06  Joseph S. Myers  <jsm@polyomino.org.uk>
9300
9301         * c-typeck.c (convert_arguments): Take expression for called
9302         function rather than its name.  Handle ObjC selectors directly
9303         rather than relying on warn_for_assignment to do so.  Call warning
9304         directly rather than warn_for_assignment.  Use %qE in diagnostics.
9305         Say "argument" rather than "arg" in diagnostics.
9306         (build_function_call): Update call to convert_arguments.
9307
9308 2004-10-06  Andrew Pinski  <pinskia@physics.uc.edu>
9309
9310         PR debug/17787
9311         * dbxout.c (dbxout_symbol): Really handle RECORD, UNION, and
9312         ENUMs specially instead of just saying we do.
9313
9314 2004-10-06  Eric Christopher  <echristo@redhat.com>
9315
9316         * dwarf2.h: Sync with include/elf/dwarf2.h
9317
9318 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
9319
9320         * tree-pretty-print.c (dump_generic_node): Fix printing of BINFO
9321         and TREE_VEC nodes.
9322
9323 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
9324
9325         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Convert
9326         to use FOR_EACH_SSA_USE_OPERAND iterator, and propagate_value.
9327
9328 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
9329
9330         * lambda-code.c (compute_nest_using_fourier_motzkin): New
9331         function.
9332         (lambda_compute_auxillary_space): Split from here.
9333
9334 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
9335
9336         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop): Make non-static.
9337         * tree-flow.h: Add prototype.
9338         * lambda-code.c (invariant_in_loop_and_outer_loops): Use
9339         expr_invariant_in_loop.
9340
9341 2004-10-06  Kazu Hirata  <kazu@cs.umass.edu>
9342
9343         * tree-cfg.c (thread_jumps): Remove a duplicate check for
9344         EXIT_BLOCK_PTR.
9345
9346 2004-10-06  Ulrich Weigand  <uweigand@de.ibm.com>
9347
9348         * config/s390/s390-protos.h (s_imm_operand): Remove.
9349         (s390_pool_operand): Add prototype.
9350         * config/s390/s390.c (general_s_operand): Remove.
9351         (s_imm_operand): Remove.
9352         (s_operand): Merge contents of general_s_operand.
9353         (s390_pool_operand): New function.
9354         * config/s390/s390.h (PREDICATE_CODES): Remove s_imm_operand.
9355         * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct"): New insns.
9356         ("*cmpdi_ccu"): Merge Q->Q alternative.
9357         ("*cmpsi_ccu", "*cmphi_ccu"): Likewise.
9358         ("*cmpqi_ccu"): Merge Q->Q, n->Q, n->S alternatives.
9359         ("*cli"): Remove.
9360         ("*cmpdi_ccu_mem", "*cmpsi_ccu_mem"): Likewise.
9361         ("*cmphi_ccu_mem", "*cmpqi_ccu_mem"): Likewise.
9362         ("*movstricthi"): Use memory_operand instead of s_imm_operand.
9363
9364 2004-10-06  Steve Ellcey  <sje@cup.hp.com>
9365
9366         * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Change macro to
9367         call ia64_function_arg_boundary.
9368         * config/ia64/ia64-protos.h (ia64_function_arg_boundary): New.
9369         * config/ia64/ia64.c (ia64_function_arg_boundary): New.
9370         (ia64_function_arg_advance): Do not put 128 bit floats into
9371         FP registers.
9372
9373 2004-10-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9374
9375         * builtins.c (expand_builtin_strcpy): Delete duplicate code.
9376         Accept an expression instead of an arglist.
9377         (expand_builtin_stpcpy): Accept an expression instead of an
9378         arglist.
9379
9380 2004-10-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
9381
9382         PR target/16007
9383         * doc/install.texi (*-*-solaris2*): Mention potential problem
9384         with Sun assembler + GNU linker and C++ programs.
9385         Document status of binutils 2.15 release.
9386
9387 2004-10-06  Jan Hubicka  <jh@suse.cz>
9388
9389         * cse.c (cse_main): Kill push/pop context.
9390
9391 2004-10-05  Zack Weinberg  <zack@codesourcery.com>
9392
9393         * pretty-print.c: Include tree.h.
9394         (pp_base_prepare_to_format): New function, logic from
9395         text_specifies_location.
9396         (pp_base_format_text): Use gcc_assert.
9397         * pretty-print.h (pp_prepare_to_format): New macro.
9398         (pp_base_prepare_to_format): Prototype.
9399         * diagnostic.c (text_specifies_location): Delete.
9400         (bug_report_request): Delete.
9401         (diagnostic_set_info): Don't call text_specifies_location.
9402         (diagnostic_action_after_output): Put text from
9403         bug_report_request inline here.  Use gcc_unreachable.
9404         (diagnostic_report_current_function): Fix comment.
9405         (diagnostic_report_diagnostic): Clarify logic for error recursion.
9406         Call pp_prepare_to_format before diagnostic_starter.
9407         (trim_filename): Use IS_DIR_SEPARATOR.
9408         (fatal_error, internal_error): Use gcc_unreachable.
9409         (error_recursion): Call diagnostic_action_after_output to
9410         issue the bug_report_request message and exit.
9411         * Makefile.in (diagnostic.o, pretty-print.o): Update dependencies.
9412
9413         * c-parse.in: Add list of diagnostic messages to insulate
9414         translation template from version of yacc/bison used to
9415         compile the grammar.
9416
9417 2004-10-06  Alan Modra  <amodra@bigpond.net.au>
9418
9419         PR 16406
9420         * doc/tm.texi (USE_LD_AS_NEEDED, LINK_EH_SPEC): Document.
9421
9422 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
9423
9424         * basic-block.h: Remove the prototype for
9425         flow_preorder_transversal_compute.
9426         * cfganal.c (dfst_node): Remove.
9427         (flow_preorder_transversal_compute): Likewise.
9428         * rtl.h: Remove the prototype for get_jump_table_offset.
9429         * rtlanal.c (get_jump_table_offset): Remove.
9430
9431 2004-10-05  Richard Henderson  <rth@redhat.com>
9432
9433         PR 17756
9434         * tree-ssa-operands.c (get_expr_operands): Handle CONST_DECL.
9435
9436 2004-10-05  Kelley Cook  <kcook@gcc.gnu.org>
9437
9438         PR bootstrap/17817
9439         * Makefile.in: Stage the build directory too.
9440
9441 2004-10-05  Aldy Hernandez  <aldyh@redhat.com>
9442
9443         * config/frv/frv.h (LEGITIMIZE_ADDRESS): New.
9444
9445         * config/frv/frv-protos.h (frv_legitimize_address): Protoize.
9446         (frv_emit_move): Same.
9447
9448         * config/frv/frv.c (frv_emit_move): New.
9449         (frv_legitimize_address): New.
9450
9451         * config/frv/frv.md ("movsi"): Call frv_emit_move.
9452         ("movqi"): Same.
9453         ("movhi"): Same.
9454         ("movdi"): Same.
9455         ("movsf"): Same.
9456         ("movdf"): Same.
9457
9458 2004-10-05  Joseph S. Myers  <jsm@polyomino.org.uk>
9459
9460         * c-decl.c (declspecs_add_type): Don't pedwarn for _Complex in
9461         system headers.
9462
9463 2004-10-05  Joseph S. Myers  <jsm@polyomino.org.uk>
9464
9465         * c-decl.c (pushdecl): When an extern declaration at block scope
9466         refers to a visible entity with internal linkage, use the old DECL
9467         rather than the new one.
9468
9469 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
9470
9471         * tree-cfg.c (cleanup_tree_cfg): Remove extra parentheses in
9472         comments.
9473
9474 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
9475
9476         * tree-cfg.c (thread_jumps): Remove a duplicate check for
9477         an infinite loop.
9478
9479 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
9480
9481         * tree-cfg.c (thread_jumps): Iterate with FOR_EACH_BB instead
9482         of FOR_BB_BETWEEN.  Remove a useless check for unreachable
9483         blocks.
9484
9485 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
9486
9487         * tree-cfg.c (cleanup_tree_cfg): Don't call
9488         delete_unreachable_blosk() after thread_jumps().
9489         (thread_jumps): Always remove basic blocks as they become
9490         unreachable.
9491
9492 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
9493
9494         * tree-cfg.c (cleanup_tree_cfg): Remove variable
9495         something_changed.  Simplify the while loop.
9496
9497 2004-10-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9498
9499         * builtins.c (expand_builtin_memmove): Delete duplicate code
9500         and accept a tree type for the result.
9501         (expand_builtin_bcopy): Accept a tree type for the result.
9502         (fold_builtin_memmove): Accept an arglist and tree type for
9503         the result.
9504
9505 2004-10-05  Ulrich Weigand  <uweigand@de.ibm.com>
9506
9507         * config/s390/s390.c (s390_dump_pool): Remove return value.
9508         Use gen_pool_align, gen_pool_section_start/end instead of
9509         gen_pool_start/end_31/64.
9510         * config/s390/s390.md (UNSPECV_POOL_START, UNSPECV_POOL_END): Remove.
9511         (UNSPECV_POOL_SECTION, UNSPECV_POOL_ALIGN): New constants.
9512         ("pool_start_31", "pool_end_31"): Remove.
9513         ("pool_start_64", "pool_end_64"): Likewise.
9514         ("pool_align", "pool_section_start", "pool_section_end": New insns.
9515
9516         * config/s390/s390.c (s390_cannot_copy_insn_p): New function.
9517         (TARGET_CANNOT_COPY_INSN_P): Define.
9518         (s390_cannot_force_const_mem): Handle UNSPEC_INSN.
9519         (struct constant_pool): New member 'execute'.
9520         (s390_add_execute, s390_find_execute): New functions.
9521         (s390_execute_label, s390_execute_target): Likewise.
9522         (s390_dump_pool): Output in-pool execute target templates.
9523         (s390_dump_execute): New function.
9524         (s390_alloc_pool, s390_free_pool): Handle execute templates.
9525         (s390_mainpool_start, s390_mainpool_finish): Likewise.
9526         (s390_chunkify_start, s390_chunkify_finish): Likewise.
9527         * config/s390/s390.md (UNSPEC_INSN, UNSPEC_EXECUTE): New constants.
9528         ("*execute"): New insn pattern.
9529         ("movmem_short", "*movmem_short"): Use splitters to generate
9530         explicit execute pattern, remove embedded execute.
9531         ("clrmem_short", "*clrmem_short"): Likewise.
9532         ("cmpmem_short", "*cmpmem_short"): Likewise.
9533
9534 2004-10-05  Daniel Berlin  <dberlin@dberlin.org>
9535
9536         * tree-ssa.c (verify_ssa): Verify phi arguments only
9537         contain renamed names.
9538
9539 2004-10-05  Alan Modra  <amodra@bigpond.net.au>
9540
9541         * config/rs6000/linux.h: Formatting, whitespace.
9542         * config/rs6000/linux64.h: Likewise.
9543         * config/rs6000/rs6000-protos.h: Likewise.
9544         * config/rs6000/rs6000.c: Likewise.
9545         (easy_vector_splat_const): Add fall thru comments.
9546         (output_vec_const_move): Likewise.
9547
9548 2004-10-05  Kelley Cook  <kcook@gcc.gnu.org>
9549
9550         * Makefile.in: Update -Wno-error exceptions for move to build dir.
9551
9552 2004-10-05  Chao-Ying Fu  <fu@mips.com>
9553             Richard Sandiford  <rsandifo@redhat.com>
9554
9555         * doc/invoke.texi (-mpaired-single): Link to the new description of the
9556         built-in functions.  Document dependencies.
9557         (-mips3d): Add link here too.
9558         * doc/extend.texi (MIPS Paired-Single Support): New section.
9559
9560 2004-10-04  Chao-ying Fu  <fu@mips.com>
9561
9562         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Define.
9563
9564 2004-10-04  Diego Novillo  <dnovillo@redhat.com>
9565
9566         * tree-ssa-dom.c (tree_ssa_dominator_optimize):
9567         Initialize OPT_STATS to 0.
9568
9569 2004-10-04  Kazu Hirata  <kazu@cs.umass.edu>
9570
9571         * tree-data-ref.c: Fix comment typos.
9572
9573 2004-10-04  Sebastian Pop  <pop@cri.ensmp.fr>
9574
9575         * tree-data-ref.c (array_base_name_differ_p): Fix comments.  When
9576         the predicate cannot be computed, don't initialize the result to
9577         false.
9578
9579 2004-10-01  Eric Christopher  <echristo@redhat.com>
9580
9581         * dwarf2.h (dwarf_calling_convention): Add GNU prefix to
9582         locally defined enum.
9583         * dwarf2out.c (add_calling_convention_attribute): Don't
9584         emit DW_CC_normal.
9585
9586 2004-10-03  Andrew Pinski  <pinskia@physics.uc.edu>
9587
9588         PR c/17178, PR c/17820
9589         * c-decl.c (pop_scope): Do not warn about unused static
9590         variables as they warned in the middle-end.
9591
9592 2004-10-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9593
9594         * builtins.c (expand_builtin_memcpy): Delete duplicate code
9595         and make the first parameter the expression not the arglist.
9596
9597 2004-10-03  Ulrich Weigand  <uweigand@de.ibm.com>
9598
9599         * expr.c (expand_expr_addr_expr): Only accept Pmode or ptr_mode
9600         as valid modes to expand address expressions.
9601
9602 2004-10-03  Joseph S. Myers  <jsm@polyomino.org.uk>
9603
9604         * c-aux-info.c, c-common.c, c-common.h, c-cppbuiltin.c, c-decl.c,
9605         c-format.c, c-incpath.c, c-lex.c, c-objc-common.c, c-opts.c,
9606         c-parse.in, c-pch.c, c-ppoutput.c, c-pragma.c, c-typeck.c: Follow
9607         code formatting conventions.
9608
9609 2004-10-03  Richard Sandiford  <rsandifo@redhat.com>
9610
9611         * config/mips/mips.md (<u>mulsidi3_32bit_r4000): Fix unsigned case.
9612
9613 2004-10-03  Kazu Hirata  <kazu@cs.umass.edu>
9614
9615         PR tree-optimization/16632
9616         * fold-const.c (fold) [EQ_EXPR]: When seeing if D & ~C != 0 to
9617         fold (A & C) == D into 0, fold ~C.  Similarly, for the case
9618         where | is used instead of &.
9619
9620 2004-10-03  Kazu Hirata  <kazu@cs.umass.edu>
9621
9622         * ginclude/stddef.h: Fix a comment typo.
9623
9624 2004-10-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
9625
9626         PR target/17443
9627         * config.gcc (i?86-*-solaris2*): Restore correct logic
9628         for --enable-threads option.
9629         (sparc64-*-solaris2*): Likewise.
9630         (sparc-*-solaris2*): Likewise.
9631
9632 2004-10-03  Alan Modra  <amodra@bigpond.net.au>
9633
9634         * config/rs6000/linux.h (TARGET_C99_FUNCTIONS): Define.
9635         (OS_MISSING_POWERPC64): Move, and comment.
9636         * config/rs6000/linux64.h (TARGET_C99_FUNCTIONS): Define.
9637         (OS_MISSING_POWERPC64): Move, and comment.
9638
9639 2004-10-02  Ian Lance Taylor  <ian@wasabisystems.com>
9640
9641         * arm.c (output_call_mem): Add missing \t.
9642
9643 2004-10-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9644
9645         * builtins.c (expand_builtin_memcmp, expand_builtin_strcmp,
9646         expand_builtin_strncmp): Delete duplicate code.
9647
9648 2004-10-02  Frank Ch. Eigler  <fche@redhat.com>
9649
9650         * tree-mudflap.c (mf_build_check_statement_for): Reorganize to
9651         take check-base and -limit arguments.
9652         (mf_xform_derefs_1): Reorganize slightly to pass proper base/limit
9653         check ranges for ARRAY_REF and COMPONENT_REF.
9654         (execute_mudflap_fnction_ops, ..._decls): Limit unnecessary
9655         instrumentation.
9656
9657 2004-10-02  Joseph S. Myers  <jsm@polyomino.org.uk>
9658
9659         * c-objc-common.c (c_tree_printer): Correct description of %E.
9660         Don't fall through after printing an expression.
9661
9662 2004-10-02  Kazu Hirata  <kazu@cs.umass.edu>
9663
9664         * tree-cfg.c, config/s390/tpf-unwind.h: Fix comment typos.
9665
9666 2004-10-02  Kazu Hirata  <kazu@cs.umass.edu>
9667
9668         * tree-cfg.c (cleanup_tree_cfg): Speed up by calling
9669         delete_unrechable_blocks() only when necessary.
9670
9671 2004-10-02  P.J. Darcy  <darcypj@us.ibm.com>
9672
9673         * gthr-tpf.h (__gthread_recursive_mutex_t): New type.
9674         (__GTHREAD_RECURSIVE_MUTEX_INIT): Define.
9675         (__gthread_recursive_mutex_lock, __gthread_recursive_mutex_trylock,
9676         __gthread_recursive_mutex_unlock): New functions.
9677
9678 2004-10-02  P.J. Darcy  <darcypj@us.ibm.com>
9679
9680         * config/s390/t-tpf (LIB2ADDEH): Remove tpf-eh.c.
9681         * config/s390/tpf-eh.c: Remove file.
9682         * config/s390/tpf-unwind.h: New file.
9683         * config/s390/tpf.h (MD_FALLBACK_FRAME_STATE_FOR): Remove.
9684         (MD_UNWIND_SUPPORT): Define.
9685
9686 2004-10-02  Joseph S. Myers  <jsm@polyomino.org.uk>
9687
9688         * c-typeck.c (warn_for_assignment): Don't permit argnum == 0.
9689
9690 2004-10-01  Ulrich Weigand  <uweigand@de.ibm.com>
9691
9692         * config/s390/s390-protos.h (s390_comparison): Add prototype.
9693         * config/s390/s390.c (s390_comparison): New function.
9694         (s390_branch_condition_mask): Return -1 for invalid comparisons.
9695         (s390_branch_condition_mnemonic): Assert valid comparison.
9696         * config/s390/s390.h (PREDICATE_CODES): Add s390_comparison.
9697         * config/s390/s390.md ("*cjump_64", "*cjump_31", "*cjump_long",
9698         "*icjump_64", "*icjump_31", "*icjump_long", "*trap"): Use
9699         s390_comparison instead of comparison_operator.
9700
9701         * config/s390/s390.md (UNSPEC_CMPINT): New constant.
9702         ("cmpmemdi"): Remove.
9703         ("cmpmem_short", "*cmpmem_short"): Use CCUmode instead of CCSmode.
9704         ("cmpmem_long", "*cmpmem_long_64", "*cmpmem_long_31"): Likewise.
9705         ("cmpint_si"): Rename to ...
9706         ("*cmpint_si"): ... this.  Use UNSPEC_CMPINT.
9707         ("cmpint_di", "*cmpint_di"): Likewise.
9708         * config/s390/s390.c (s390_canonicalize_comparison): Remove
9709         redundant UNSPEC_CMPINT conversions.
9710         (s390_expand_cmpmem): Adapt to cmpint pattern changes.
9711
9712 2004-10-01  Kazu Hirata  <kazu@cs.umass.edu>
9713
9714         * collect2.c (COLLECT_PARSE_FLAG): Remove.
9715         (main): Remove a reference to COLLECT_PARSE_FLAG
9716         * system.h: Poison COLLECT_PARSE_FLAG.
9717         * doc/tm.texi (COLLECT_PARSE_FLAG): Remove.
9718
9719 2004-10-01  Paul Brook  <paul@codesourcery.com>
9720
9721         * config/arm/crti.asm: Give _init and _fini function type.
9722
9723 2004-10-01  Zdenek Dvorak  <dvorakz@suse.cz>
9724
9725         * common.opt (ftree-loop-ivcanon): Enable by default.
9726         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
9727         Enable complete loop unrolling.
9728         (canonicalize_induction_variables, tree_unroll_loops_completely):
9729         Reset scev info.
9730
9731 2004-10-01  Paul Brook  <paul@codesourcery.com>
9732
9733         * config/arm/arm.c (thumb_compute_saved_rag_mask): Or with bitmask,
9734         not register number.
9735         (thumb_find_work_register): Search full register range.
9736
9737 2004-10-01  Andrew Pinski  <pinskia@physics.uc.edu>
9738
9739         PR tree-opt/17343
9740         * tree-cfg.c (group_case_labels): Get the label and not
9741         the case expr for the default case.
9742         When the label we looking at is the default, decrement the
9743         new_size.
9744
9745 2004-10-01  Jan Hubicka  <jh@suse.cz>
9746
9747         * c-decl.c (c_expand_body): Update call tree_rest_of_compilation.
9748         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
9749         * toplev.h (tree_rest_of_compilation): Update prototype.
9750         * tree-optimize.c (tree_rest_of_compilation):  Kill nested_p argument.
9751
9752 2004-10-01  Kazu Hirata  <kazu@cs.umass.edu>
9753
9754         * tree-cfg.c (cleanup_tree_cfg): Pull a call to
9755         cleanup_control_flow() out of the while loop.
9756
9757 2004-10-01  Paolo Bonzini  <bonzini@gnu.org>
9758
9759         * tree-vectorizer.c (vectorizable_operation): Fail unless
9760         the mode for the vector type is indeed a vector mode.
9761
9762 2004-10-01  Zdenek Dvorak  <dvorakz@suse.cz>
9763
9764         * tree-chrec.c (chrec_fold_plus_poly_poly, chrec_fold_plus_1,
9765         chrec_fold_multiply): Use fold_convert or build_int_cst_type instead
9766         of convert.
9767         * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
9768         add_to_evolution, set_nb_iterations_in_loop, follow_ssa_edge_in_rhs,
9769         follow_ssa_edge_in_rhs): Ditto.
9770         * tree-ssa-loop-ivopts.c (struct iv): Add base_object field.
9771         (dump_iv): Dump base_object.
9772         (dump_use, dump_cand): Use dump_iv.
9773         (determine_base_object): New function.
9774         (alloc_iv): Initialize base_object field.
9775         (record_use): Clear the ssa_name field of iv.
9776         (get_computation_cost_at): Do not use difference of addresses of
9777         two different objects.
9778         (may_eliminate_iv): Do not require the loop to have just single exit.
9779         * tree-ssa-loop-niter.c (zero_p): Do not check for overflows.
9780         (nonzero_p): New function.
9781         (inverse, number_of_iterations_cond, simplify_using_outer_evolutions,
9782         tree_simplify_using_condition, simplify_using_initial_conditions,
9783         loop_niter_by_eval, find_loop_niter_by_eval,
9784         estimate_numbers_of_iterations_loop, compare_trees,
9785         upper_bound_in_type, lower_bound_in_type,
9786         can_count_iv_in_wider_type_bound): Use buildN instead of build.  Use
9787         fold_convert or build_int_cst_type instead of convert.  Use (non)zero_p
9788         instead of integer_(non)zerop.
9789
9790 2004-10-01  Jakub Jelinek  <jakub@redhat.com>
9791
9792         Revert
9793         2004-09-29  Jakub Jelinek  <jakub@redhat.com>
9794
9795         * tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD
9796         and TI_VA_LIST_FPR_COUNTER_FIELD.
9797         (va_list_gpr_counter_field, va_list_fpr_counter_field): Define.
9798         * tree-pass.h (pass_stdarg): Add.
9799         * tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg.
9800         * tree-stdarg.c: New file.
9801         * Makefile.in (OBJS-common): Add tree-stdarg.o.
9802         (tree-stdarg.o): Add dependencies.
9803         * function.h (struct function): Add va_list_gpr_size and
9804         va_list_fpr_size fields.
9805         * function.c (allocate_struct_function): Initialize them.
9806
9807         * config/i386/i386.c (ix86_build_builtin_va_list): Initialize
9808         va_list_{g,f}pr_counter_field.
9809         (ix86_setup_incoming_varargs): Don't do anything if reg_save
9810         area will not be used.  Only save registers that tree-stdarg.c
9811         detected they need saving.
9812         (ix86_va_start): Don't set up fields that won't be used.
9813
9814         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize
9815         va_list_{g,f}pr_counter_field.
9816         (setup_incoming_varargs): Don't do anything if reg_save
9817         area will not be used.  Only save registers that tree-stdarg.c
9818         detected they need saving.
9819         (rs6000_va_start): Don't set up fields that won't be used.
9820
9821 2004-09-30  Eric Christopher  <echristo@redhat.com>
9822
9823         * dwarf2.h (dwarf_calling_convention): Add enum for renesas
9824         sh abi.
9825         * dwarf2out.c (add_calling_convention_attribute): New function.
9826         (gen_subroutine_type_die): Use.
9827         * target-def.h (TARGET_DWARF_CALLING_CONVENTION): New hook.
9828         * target.h (gcc_target): Add dwarf_calling_convention.
9829         * hooks.c (hook_int_tree_0): New function.
9830         * hooks.h: Prototype.
9831         * config/sh/sh.c: Include dwarf2.h.
9832         (sh_dwarf_calling_convention): New function.
9833         (TARGET_DWARF_CALLING_CONVENTION): Use.
9834         * doc/tm.texi (TARGET_DWARF_CALLING_CONVENTION): Document.
9835
9836 2004-09-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9837
9838         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
9839         expand_builtin_strrchr, expand_builtin_strpbrk,
9840         expand_builtin_strncat, expand_builtin_strspn,
9841         expand_builtin_strcspn, expand_builtin_fputs): Eliminate duplicate
9842         code.
9843
9844 2004-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
9845
9846         * config/s390/s390-protos.h (s390_expand_logical_operator): Add
9847         prototype.
9848         (s390_logical_operator_ok_p): Likewise.
9849         * config/s390/s390.c (s390_expand_logical_operator): New function.
9850         (s390_logical_operator_ok_p): Likewise.
9851         * config/s390/s390.md ("anddi3"): New expander.
9852         ("*anddi3"): Rename from old anddi3 pattern, add Q->Q alternative.
9853         ("*anddi3_ss", "*anddi3_ss_inv"): Remove.
9854         ("andsi3"): Use s390_expand_logical_operator.
9855         ("*andsi3_esa", "*andsi3_zarch"): Add Q->Q alternative.
9856         ("*andsi3_ss", "*andsi3_ss_inv"): Remove.
9857         ("andhi3"): New expander.
9858         ("*andhi3_zarch", "*andhi3_esa"): New patterns.
9859         ("andhi3", "*andhi3_ni", "*andhi3_ss", "*andhi3_ss_inv"): Remove.
9860         ("andqi3"): New expander.
9861         ("*andqi3_zarch", "*andqi3_esa"): New patterns.
9862         ("andqi3", "*andqi3_ni", "*andqi3_ss", "*andqi3_ss_inv"): Remove.
9863         ("iordi3"): New expander.
9864         ("*iordi3"): Rename from old iordi3 pattern, add Q->Q alternative.
9865         ("*iordi3_ss", "*iordi3_ss_inv"): Remove.
9866         ("iorsi3"): Use s390_expand_logical_operator.
9867         ("*iorsi3_esa", "*iorsi3_zarch"): Add Q->Q alternative.
9868         ("*iorsi3_ss", "*iorsi3_ss_inv"): Remove.
9869         ("iorhi3"): New expiorer.
9870         ("*iorhi3_zarch", "*iorhi3_esa"): New patterns.
9871         ("iorhi3", "*iorhi3_ni", "*iorhi3_ss", "*iorhi3_ss_inv"): Remove.
9872         ("iorqi3"): New expiorer.
9873         ("*iorqi3_zarch", "*iorqi3_esa"): New patterns.
9874         ("iorqi3", "*iorqi3_ni", "*iorqi3_ss", "*iorqi3_ss_inv"): Remove.
9875         ("xordi3"): New expander.
9876         ("*xordi3"): Rename from old xordi3 pattern, add Q->Q alternative.
9877         ("*xordi3_ss", "*xordi3_ss_inv"): Remove.
9878         ("xorsi3"): New expander.
9879         ("*xorsi3"): Rename from old xorsi3 pattern, add Q->Q alternative.
9880         ("*xorsi3_ss", "*xorsi3_ss_inv"): Remove.
9881         ("xorhi3"): New expander.
9882         ("*xorqi3"): Rename from old xorhi3 pattern, add Q->Q alternative.
9883         ("*xorhi3_ss", "*xorhi3_ss_inv"): Remove.
9884         ("xorqi3"): New expander.
9885         ("*xorqi3"): Rename from old xorqi3 pattern, add Q->Q alternative.
9886         ("*xorqi3_ss", "*xorqi3_ss_inv"): Remove.
9887
9888 2004-09-30  Roger Sayle  <roger@eyesopen.com>
9889
9890         * combine.c (force_to_mode) <NE_EXPR>: Only convert the expression
9891         (AND (NE FOO 0) CONST) into (AND FOO CONST) if FOO has the same
9892         machine mode as the result.
9893
9894 2004-09-30  Ben Elliston  <bje@au.ibm.com>
9895
9896         PR bootstrap/17761
9897         * lcm.c (optimize_mode_switching): Update to use EDGE_SUCC and
9898         FOR_EACH_EDGE macros.
9899
9900 2004-09-30  Joseph S. Myers  <jsm@polyomino.org.uk>
9901
9902         * c-tree.h (readonly_error): Remove.
9903         * c-typeck (enum lvalue_use): New.
9904         (lvalue_or_else, readonly_error): Use it.  All callers changed.
9905         (readonly_error): Make static.
9906
9907 2004-09-30  Jan Hubicka  <jh@suse.cz>
9908
9909         PR debug/13974
9910         * cfgrtl.c (try_redirect_by_replacing_jump,
9911         force_nonfallthru_and_redirect, commit_one_edge_insertion,
9912         cfg_layout_merge_blocks):  Do not attach any line number information
9913         to newly inserted instructions.
9914         * emit-rtl.c (emit_insn*_before, emit_insn*_after): Rename to
9915         emit_insn_*_noloc.
9916         (emit_*insn_before, emit_insn*_after): New.
9917         (emit_*insn_before_setloc, emit_*insn_after_setloc): Do not overwrite
9918         existing locators.
9919         * rtl.h (emit_*insn_before_noloc, emit_*insn_after_noloc): Declare.
9920         (emit_*insn_before_sameloc, emit_*insn_after_sameloc): Kill.
9921
9922 2004-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
9923
9924         * config/s390/s390-protos.h (s390_arg_frame_offset): Remove.
9925         (s390_return_address_offset): Remove.
9926         (s390_can_eliminate): Add prototype.
9927         (s390_initial_elimination_offset): Add prototype.
9928         * config/s390/s390.h (CAN_ELIMINATE): Call s390_can_eliminate.
9929         (INITIAL_ELIMINATION_OFFSET): Call s390_initial_elimination_offset.
9930         * config/s390/s390.c (s390_arg_frame_offset): Remove.
9931         (s390_return_address_offset): Remove.
9932         (s390_can_eliminate, s390_initial_elimination_offset): New functions.
9933         (struct machine_function): New member split_branches_pending_p.
9934         (s390_mainpool_start): Allow nonexistant pool insn for empty pool.
9935         (s390_mainpool_finish): Likewise.  Clear base_reg if pool empty.
9936         (s390_optimize_prologue): Remove base_used argument.  Call
9937         s390_update_frame_layout instead of s390_register_info.  Handle
9938         prologue/epilogue insns that touch only RETURN_REGNUM.
9939         (s390_reorg): Remove base_used.  Clear split_branches_pending_p.
9940         (s390_register_info): Remove base_used and return_addr_used
9941         arguments, compute special register usage inline.  Return live
9942         register data to caller.
9943         (s390_frame_info): Remove arguments, do not call s390_register_info.
9944         (s390_init_frame_layout): New function.
9945         (s390_update_frame_layout): Likewise.
9946         (s390_emit_prologue): Call s390_update_frame_layout; some code
9947         move to there.  Do not emit pool placeholder insn if unnecessary.
9948
9949 2004-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
9950
9951         * config/s390/s390.c (legitimate_reload_constant_p): Remove
9952         floating point constant workaround.
9953         (s390_secondary_input_reload_class): Handle PLUS reloads
9954         with too-large constant.
9955         (s390_expand_plus_operand): Likewise.
9956         * config/s390/s390.md ("movdi"): Do not call force_const_mem.
9957         ("movsi"): Likewise.  Also, remove workaround for non-general
9958         operands.
9959         ("movdf"): Do not call force_const_mem.
9960         ("movsf"): Likewise.  Merge expander with *movsf insn.
9961         ("*movsf"): Remove, merge with movsf expander.
9962
9963 2004-09-30  Paul Brook  <paul@codesourcery.com>
9964
9965         * config/arm/symbian.h (STARTFILE_SPEC): Remove crt*.o.
9966         (ENDFILE_SPEC): Define.
9967         * config/arm/t-symbian.h (EXTRA_MULTILIB_PARTS): Set.
9968
9969 2004-09-30  Richard Henderson  <rth@redhat.com>
9970
9971         * config/alpha/qrnnd.asm: Mark for noexecstack.
9972
9973 2004-09-30  Kazu Hirata  <kazu@cs.umass.edu>
9974
9975         * protoize.c, tree-cfg.c: Fix comment typos.
9976
9977 2004-09-30  Joseph S. Myers  <jsm@polyomino.org.uk>
9978
9979         PR c/17730
9980         * c-typeck.c (lvalue_or_else): Pass msgid directly to error.
9981
9982 2004-09-30  Diego Novillo  <dnovillo@redhat.com>
9983
9984         * tree-ssa-alias.c (collect_points_to_info_r): Move analysis of
9985         expressions...
9986         (add_pointed_to_expr): ... here.
9987         Call add_pointed_to_expr for variables with DECL_INITIAL set.
9988         * tree-dfa.c (add_referenced_var): Scan DECL_INITIAL of any
9989         pointer variable, if set.
9990
9991 2004-09-30  Kazu Hirata  <kazu@cs.umass.edu>
9992
9993         * config/sh/sh.c: Follow spelling conventions.
9994
9995 2004-09-29  Richard Henderson  <rth@redhat.com>
9996
9997         * unwind-dw2.c (_Unwind_GetGR): Honor DWARF_ZERO_REG.
9998         * doc/tm.texi (DWARF_ZERO_REG): New.
9999
10000         * config/alpha/alpha.c (alpha_sa_mask, alpha_expand_prologue,
10001         alpha_expand_epilogue): Revert 2003-09-30 change to store zero.
10002         * config/alpha/alpha.h (DWARF_ZERO_REG): New.
10003
10004 2004-09-29  Ulrich Weigand  <uweigand@de.ibm.com>
10005
10006         * builtins.c (expand_builtin_strlen): Do not call emit_move_insn
10007         with a PLUS as source operand.
10008         (expand_movstr): Likewise.
10009         (expand_builtin_stpcpy): Likewise.
10010
10011 2004-09-29  Richard Henderson  <rth@redhat.com>
10012
10013         PR 17739
10014         * tree-gimple.c (is_gimple_reg): Reject hard registers.
10015         (is_gimple_asm_val): New.
10016         * tree-gimple.h (is_gimple_asm_val): Declare.
10017         * gimplify.c (gimplify_asm_expr): Use it.
10018         * tree-pretty-print.c (print_declaration): Dump hard regs.
10019         * tree-outof-ssa.c (check_replaceable): Don't check for hard regs.
10020         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
10021         * tree-ssa-pre.c (is_undefined_value): Likewise.
10022         * tree-ssa-copy.c (may_propagate_copy): Likewise.
10023         (may_propagate_copy_into_asm): Protect DECL_HARD_REGISTER.
10024         * tree-ssa.c (warn_uninit): Likewise.
10025         * tree.h (DECL_HARD_REGISTER): Check for VAR_DECL.
10026
10027 2004-09-29  Fariborz Jahanian <fjahanian@apple.com>
10028
10029         * c-decl.c (merge_decls): Use comptype when comparing
10030         types to decide on DECL_SIZE save of olddecl.
10031
10032 2004-09-29  Daniel Berlin  <dberlin@dberlin.org>
10033
10034         * tree.h (INDIRECT_REF_P): New macro.
10035         * alias.c (get_alias_set): Use it
10036         (nonoverlapping_memrefs_p): Ditto.
10037         * emit-rtl.c (mem_expr_equal_p): Ditto.
10038         (set_mem_attributes_minus_bitpos): Ditto.
10039         (is_gimple_addressable): Ditto.
10040         (get_base_address): Ditto.
10041         * tree-ssa-alias.c (find_ptr_derefernece): Ditto.
10042         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Ditto.
10043         * tree-ssa-dom.c (record_equivalences_from_stmt): Ditto.
10044         * tree-ssa-loop-im.c (is_call_clobbered_ref): Ditto.
10045         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Ditto.
10046         (add_address_candidates): Ditto.
10047         (rewrite_address_base): Ditto.
10048
10049 2004-09-30  Ben Elliston  <bje@au.ibm.com>
10050
10051         * tree-flow.h (struct bb_ann_d): Remove num_preds member.
10052         * tree-into-ssa.c (rewrite_into_ssa): Don't set it.
10053         (rewrite_ssa_into_ssa): Likewise.
10054         * tree-phinodes.c (create_phi_node): Access the number of
10055         predecessor edges using EDGE_COUNT() and not num_preds.
10056
10057 2004-09-29  Joseph S. Myers  <jsm@polyomino.org.uk>
10058
10059         PR c/7425
10060         * c-decl.c (merge_decls): Merge TREE_DEPRECATED.
10061
10062 2004-09-29  Eric Christopher  <echristo@redhat.com>
10063
10064         * fold-const.c (tree_swap_operands_p): Remove duplicated code.
10065
10066 2004-09-29  Hans-Peter Nilsson  <hp@axis.com>
10067
10068         * config/cris/cris.md (moverside, movemside): With MEM, make sure
10069         the address is (plus reg mem).
10070
10071 2004-09-29  David Edelsohn  <edelsohn@gnu.org>
10072
10073         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Define.
10074
10075 2004-09-29  Nathan Sidwell  <nathan@codesourcery.com>
10076
10077         * tree.c (make_node_stat): Fix uninitialized warning.  Replace
10078         cascaded if ... else if with a switch.
10079
10080 2004-09-29  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
10081
10082         * read-rtl.c (apply_macro_to_string): Replace index with strchr.
10083
10084 2004-09-29  Jakub Jelinek  <jakub@redhat.com>
10085
10086         * tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD
10087         and TI_VA_LIST_FPR_COUNTER_FIELD.
10088         (va_list_gpr_counter_field, va_list_fpr_counter_field): Define.
10089         * tree-pass.h (pass_stdarg): Add.
10090         * tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg.
10091         * tree-stdarg.c: New file.
10092         * Makefile.in (OBJS-common): Add tree-stdarg.o.
10093         (tree-stdarg.o): Add dependencies.
10094         * function.h (struct function): Add va_list_gpr_size and
10095         va_list_fpr_size fields.
10096         * function.c (allocate_struct_function): Initialize them.
10097
10098         * config/i386/i386.c (ix86_build_builtin_va_list): Initialize
10099         va_list_{g,f}pr_counter_field.
10100         (ix86_setup_incoming_varargs): Don't do anything if reg_save
10101         area will not be used.  Only save registers that tree-stdarg.c
10102         detected they need saving.
10103         (ix86_va_start): Don't set up fields that won't be used.
10104
10105         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize
10106         va_list_{g,f}pr_counter_field.
10107         (setup_incoming_varargs): Don't do anything if reg_save
10108         area will not be used.  Only save registers that tree-stdarg.c
10109         detected they need saving.
10110         (rs6000_va_start): Don't set up fields that won't be used.
10111
10112 2004-09-29  Jakub Jelinek  <jakub@redhat.com>
10113
10114         * builtins.def (BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED,
10115         BUILT_IN_FPUTS, BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FWRITE,
10116         BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_PUTCHAR, BUILT_IN_PUTCHAR_UNLOCKED,
10117         BUILT_IN_PUTS, BUILT_IN_PUTS_UNLOCKED): Remove nothrow attribute.
10118         * builtin-attrs.def (ATTR_NONNULL_1, ATTR_NONNULL_2, ATTR_NONNULL_1_2,
10119         ATTR_NONNULL_1_4): New.
10120
10121 2004-09-29  Jakub Jelinek  <jakub@redhat.com>
10122
10123         PR tree-optimization/17697
10124         * tree-ssa-ccp.c (execute_fold_all_builtins): Update eh and cleanup
10125         cfg if needed.
10126
10127 2004-09-28  Per Bothner  <per@bothner.com>
10128
10129         * profile.c (branch_prob): Pass correct value to output_location,
10130         even when USE_MAPPED_LOCATION.  Fixes bug from 09-11.
10131
10132 2004-09-28  Richard Henderson  <rth@redhat.com>
10133
10134         PR 15089
10135         * tree-ssa-copy.c (may_propagate_copy_into_asm): New.
10136         * tree-flow.h (may_propagate_copy_into_asm): Declare.
10137         * tree-ssa-ccp.c (replace_uses_in): Use it.
10138         * tree-ssa-dom.c (cprop_operand): Likewise.
10139
10140 2004-09-28 Jeff Law  <law@redhat.com>
10141
10142         * tree-ssa-threadupdate.c (create_block_for_threading):  Request
10143         that no outgoing edges be left in the duplicate block.  Do no
10144         update information on outgoing edges or PHI nodes in target
10145         blocks here.
10146         (remove_ctrl_stmt_and_useless_edges): Renamed from
10147         remove_last_stmt_and_useless_edges.  Handle case where the
10148         block is empty or has no control statements.  Do not update edge
10149         flags here.
10150         (thread_block): Create a template block rather than copying the
10151         original block every time.  Create outgoing edges from the
10152         duplicate blocks and update PHIs at the target of the outgoing
10153         edges here.  Fix edge flags for the original block if necessary.
10154         * cfghooks (duplicate_block): No longer assert that the original
10155         block has incoming edges.
10156
10157 2004-09-29  Hans-Peter Nilsson  <hp@bitrange.com>
10158
10159         * doc/extend.texi (Extended Asm): Add blurb about using Explicit
10160         Reg Vars to enforce register allocation with general constraints.
10161         (Explicit Reg Vars): Clarify relation to asm statements.
10162         (Local Reg Vars): Similar.
10163
10164 2004-09-28  Ulrich Weigand  <uweigand@de.ibm.com>
10165
10166         * sched-rgn.c (haifa_edge, edge_table, NEXT_IN, NEXT_OUT, FROM_BLOCK,
10167         TO_BLOCK, nr_edges, in_edges, out_edges, IN_EDGES, OUT_EDGES,
10168         build_control_flow, new_edge): Remove.
10169         (schedule_insns): Remove edge_table/in_edges/out_edges cleanup.
10170         (bitlst, bitlst_table_last, bitlst_table): Remove.
10171         (bblst): Store basic_block pointer instead of block index.
10172         (bblst_table): Likewise.
10173         (edgelst): Store edge pointer instead of edge index.
10174         (edgelst_table, edgelst_last): New variables.
10175         (extract_bitlst): Rename to ...
10176         (extract_edgelst): ... this.  Return edge pointers, not indices.
10177         (split_edges): Update call.
10178         (rgn_edges): Store edge pointers instead of indices.
10179         (edge_to_bit): Remove.
10180         (EDGE_TO_BIT): Store per-region edge index in edge->aux.
10181         (SET_EDGE_TO_BIT): New macro.
10182         (is_cfg_nonregular): Check for simple cases of unreachable blocks.
10183         (find_rgns): Remove edge_list parameter.  Traverse standard CFG
10184         data structures instead of haifa_edge et al.  Use edge pointers
10185         instead of edge indices everywhere.
10186         (compute_dom_prob_ps): Use standard CFG data structures.  Account
10187         for exit edges.
10188         (compute_trg_info): Likewise.
10189         (propagate_deps): Likewise.
10190         (debug_candidate): Account for bblst data structure change.
10191         (check_live_1, update_live_1, is_pfree): Likewise.
10192         (IS_REACHABLE): Use standard CFG data structures.
10193         (init_ready_list): Update bblst_table/edgelst_table allocation.
10194         (schedule_region): Update alloc/cleanup code to data structure
10195         changes.  Use edge->aux to store per-region edge index.
10196         (init_regions): No longer call build_control_flow.  Do not
10197         create edge list any more.
10198
10199 2004-09-28  Ulrich Weigand  <uweigand@de.ibm.com>
10200
10201         * cse.c (cse_insn): Avoid creating direct non-local jumps.
10202         * combine.c (can_combine_p): Likewise.
10203         * local-alloc. (update_equiv_regs): Likewise.
10204
10205 2004-09-28  Richard Henderson  <rth@redhat.com>
10206
10207         PR 17531
10208         * expr.c (expand_expr_addr_expr_1): Only assemble_external for decls.
10209         Don't check VOIDmode here.  Force PLUS operands to common type.
10210         (expand_expr_addr_expr): Do VOIDmode check earlier.  Force use of
10211         Pmode if given a non pointer type.
10212
10213 2004-09-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10214
10215         PR 17531
10216         * optabs.c (expand_binop): Force constants to the correct mode.
10217
10218 2004-09-28  Ulrich Weigand  <uweigand@de.ibm.com>
10219
10220         * config/s390/s390.c (s390_adjust_cost): Remove.
10221         (TARGET_SCHED_ADJUST_COST): Do not redefine.
10222         (s390_adjust_priority): Handle TYPE_STM like TYPE_STORE.
10223         * config/s390/s390.md ("main_pool"): Use "larl" type
10224         attribute if TARGET_CPU_ZARCH.
10225
10226 2004-09-28  Jakub Jelinek  <jakub@redhat.com>
10227
10228         * config/ia64/ia64.c (ia64_expand_prologue): Declare ei
10229         variable.
10230
10231 2004-09-28  Diego Novillo  <dnovillo@redhat.com>
10232
10233         * tree-ssa-loop.c (pass_record_bounds): Do not assign a
10234         name to the pass.
10235
10236 2004-09-28  Steven Bosscher  <stevenb@suse.de>
10237
10238         * common.opt (flag_gcse_sm): Disable by default.
10239         (flag_gcse_las): Likewise.
10240         (flag_web): Likewise.  Create from this file.
10241         * flags.h: Remove flag_web declaration.
10242         * toplev.c (flag_web): Likewise.
10243         (process_options): Never set flag_web.
10244
10245 2004-09-28  Steven Bosscher  <stevenb@suse.de>
10246
10247         * Makefile.in (tree-ssa-propagate.o): Depend on vec.h.
10248         * tree-ssa-propagate.c: Include vec.h.
10249         (interesting_ssa_edges, varying_ssa_edges): Make these VECs
10250         instead of varrays.
10251         (cfg_blocks_add): Assert the block is not already in the worklist.
10252         Update uses of interesting_ssa_edges and varying_ssa_edges.
10253         (process_ssa_edge_worklist, ssa_prop_init, ssa_prop_fini,
10254         ssa_propagate): Likewise.
10255
10256 2004-09-28  Joseph S. Myers  <jsm@polyomino.org.uk>
10257
10258         PR c/16409
10259         * c-decl.c (start_decl): Check for initializing incomplete array
10260         of VLAs.
10261         (build_compound_literal): Check for TYPE being error_mark_node.
10262         * c-parse.in (primary): Check for VLA compound literals.
10263
10264 2004-09-28  Diego Novillo  <dnovillo@redhat.com>
10265
10266         * tree-ssa-live.c (calculate_live_on_entry): Fix warnings
10267         with --disable-checking.
10268
10269 2004-09-28  Devang Patel  <dpatel@apple.com>
10270
10271         * tree-pretty-print.c (dump_generic_node): Print vector types.
10272
10273 2004-09-28  Nick Clifton  <nickc@redhat.com>
10274
10275         * config/sh/sh.h (INIT_CUMULATIVE_ARGS): Replace with an
10276         invocation of the function sh_init_cumulative_args.
10277         (INIT_CUMULATIVE_LIBCALL_ARGS): Likewise.
10278         (INIT_CUMULATIVE_INCOMING_ARGS): Delete.
10279         * config/sh/sh-protos.h: Prototype sh_init_cumulative_args.
10280         * config/sh/sh.c (sh_init_cumulative_args): New function based
10281         on the contents of the old INIT_CUMULATIVE_ARGS macro but with a
10282         heuristic added to determine the setting of force_mem when a
10283         library function is being called.
10284
10285 2004-09-28  Diego Novillo  <dnovillo@redhat.com>
10286
10287         * tree-ssa-loop-im.c (single_reachable_address) <PHI_NODE>:
10288         Skip constant arguments.
10289
10290 2004-09-28  Diego Novillo  <dnovillo@redhat.com>
10291
10292         * tree-ssa-alias.c (create_name_tags): If PTR points to a
10293         volatile type, mark the tag volatile.
10294         (get_tmt_for): If TAG_TYPE is a volatile type, mark the tag
10295         volatile.
10296
10297 2004-09-28  Andrew Pinski  <pinskia@physics.uc.edu>
10298
10299         * tree.def (vec_cond_expr): Fix. Change 'e'
10300         to tcc_expression.
10301
10302 2004-09-28  Kazu Hirata  <kazu@cs.umass.edu>
10303
10304         * basic-block.h: Fix a comment typo.
10305
10306 2004-09-28  Kazu Hirata  <kazu@cs.umass.edu>
10307
10308         * optabs.c, optabs.h: Fix comment typos.
10309
10310 2004-09-28  Eric Botcazou  <ebotcazou@act-europe.fr>
10311
10312         * config/sparc/sparc.md (call_address_struct_value_sp32):
10313         Properly mask the immediate field of the 'unimp' instruction.
10314         (call_symbolic_struct_value_sp32): Likewise.
10315
10316 2004-09-28  Ben Elliston  <bje@au.ibm.com>
10317             Steven Bosscher  <stevenb@suse.de>
10318             Andrew Pinski  <pinskia@physics.uc.edu>
10319
10320         Merge from edge-vector-branch:
10321         * basic-block.h: Include vec.h, errors.h. Instantiate a VEC(edge).
10322         (struct edge_def): Remove pred_next, succ_next members.
10323         (struct basic_block_def): Remove pred, succ members.  Add preds
10324         and succs members of type VEC(edge).
10325         (FALLTHRU_EDGE): Redefine using EDGE_SUCC.
10326         (BRANCH_EDGE): Likewise.
10327         (EDGE_CRITICAL_P): Redefine using EDGE_COUNT.
10328         (EDGE_COUNT, EDGE_I, EDGE_PRED, EDGE_SUCC): New.
10329         (edge_iterator): New.
10330         (ei_start, ei_last, ei_end_p, ei_one_before_end_p): New.
10331         (ei_next, ei_prev, ei_edge, ei_safe_edge): Likewise.
10332         (FOR_EACH_EDGE): New.
10333         * bb-reorder.c (find_traces): Use FOR_EACH_EDGE and EDGE_* macros
10334         where applicable.
10335         (rotate_loop): Likewise.
10336         (find_traces_1_route): Likewise.
10337         (bb_to_key): Likewise.
10338         (connect_traces): Likewise.
10339         (copy_bb_p): Likewise.
10340         (find_rarely_executed_basic_blocks_and_crossing_edges): Likewise.
10341         (add_labels_and_missing_jumps): Likewise.
10342         (fix_up_fall_thru_edges): Likewise.
10343         (find_jump_block): Likewise.
10344         (fix_crossing_conditional_branches): Likewise.
10345         (fix_crossing_unconditional_branches): Likewise.
10346         (add_reg_crossing_jump_notes): Likewise.
10347         * bt-load.c (augment_live_range): Likewise.
10348         * cfg.c (clear_edges): Likewise.
10349         (unchecked_make_edge): Likewise.
10350         (cached_make_edge): Likewise.
10351         (make_single_succ_edge): Likewise.
10352         (remove_edge): Likewise.
10353         (redirect_edge_succ_nodup): Likewise.
10354         (check_bb_profile): Likewise.
10355         (dump_flow_info): Likewise.
10356         (alloc_aux_for_edges): Likewise.
10357         (clear_aux_for_edges): Likewise.
10358         (dump_cfg_bb_info): Likewise.
10359         * cfganal.c (forwarder_block_p): Likewise.
10360         (can_fallthru): Likewise.
10361         (could_fall_through): Likewise.
10362         (mark_dfs_back_edges): Likewise.
10363         (set_edge_can_fallthru_flag): Likewise.
10364         (find_unreachable_blocks): Likewise.
10365         (create_edge_list): Likewise.
10366         (verify_edge_list): Likewise.
10367         (add_noreturn_fake_exit_edges): Likewise.
10368         (connect_infinite_loops_to_exit): Likewise.
10369         (flow_reverse_top_sort_order_compute): Likewise.
10370         (flow_depth_first_order_compute): Likewise.
10371         (flow_preorder_transversal_compute): Likewise.
10372         (flow_dfs_compute_reverse_execute): Likewise.
10373         (dfs_enumerate_from): Likewise.
10374         (compute_dominance_frontiers_1): Likewise.
10375         * cfgbuild.c (make_edges): Likewise.
10376         (compute_outgoing_frequencies): Likewise.
10377         (find_many_sub_basic_blocks): Likewise.
10378         (find_sub_basic_blocks): Likewise.
10379         * cfgcleanup.c (try_simplify_condjump): Likewise.
10380         (thread_jump): Likewise.
10381         (try_forward_edges): Likewise.
10382         (merge_blocks_move): Likewise.
10383         (outgoing_edges_match): Likewise.
10384         (try_crossjump_to_edge): Likewise.
10385         (try_crossjump_bb): Likewise.
10386         (try_optimize_cfg): Likewise.
10387         (merge_seq_blocks): Likewise.
10388         * cfgexpand.c (expand_gimple_tailcall): Likewise.
10389         (expand_gimple_basic_block): Likewise.
10390         (construct_init_block): Likewise.
10391         (construct_exit_block): Likewise.
10392         * cfghooks.c (verify_flow_info): Likewise.
10393         (dump_bb): Likewise.
10394         (delete_basic_block): Likewise.
10395         (split_edge): Likewise.
10396         (merge_blocks): Likewise.
10397         (make_forwarder_block): Likewise.
10398         (tidy_fallthru_edges): Likewise.
10399         (can_duplicate_block_p): Likewise.
10400         (duplicate_block): Likewise.
10401         * cfglayout.c (fixup_reorder_chain): Likewise.
10402         (fixup_fallthru_exit_predecessor): Likewise.
10403         (can_copy_bbs_p): Likewise.
10404         (copy_bbs): Likewise.
10405         * cfgloop.c (flow_loops_cfg_dump): Likewise.
10406         (flow_loop_entry_edges_find): Likewise.
10407         (flow_loop_exit_edges_find): Likewise.
10408         (flow_loop_nodes_find): Likewise.
10409         (mark_single_exit_loops): Likewise.
10410         (flow_loop_pre_header_scan): Likewise.
10411         (flow_loop_pre_header_find): Likewise.
10412         (update_latch_info): Likewise.
10413         (canonicalize_loop_headers): Likewise.
10414         (flow_loops_find): Likewise.
10415         (get_loop_body_in_bfs_order): Likewise.
10416         (get_loop_exit_edges): Likewise.
10417         (num_loop_branches): Likewise.
10418         (verify_loop_structure): Likewise.
10419         (loop_latch_edge): Likewise.
10420         (loop_preheader_edge): Likewise.
10421         * cfgloopanal.c (mark_irreducible_loops): Likewise.
10422         (expected_loop_iterations): Likewise.
10423         * cfgloopmanip.c (remove_bbs): Likewise.
10424         (fix_bb_placement): Likewise.
10425         (fix_irreducible_loops): Likewise.
10426         (remove_path): Likewise.
10427         (scale_bbs_frequencies): Likewise.
10428         (loopify): Likewise.
10429         (unloop): Likewise.
10430         (fix_loop_placement): Likewise.
10431         (loop_delete_branch_edge): Likewise.
10432         (duplicate_loop_to_header_edge): Likewise.
10433         (mfb_keep_just): Likewise.
10434         (create_preheader): Likewise.
10435         (force_single_succ_latches): Likewise.
10436         (loop_split_edge_with): Likewise.
10437         (create_loop_notes): Likewise.
10438         * cfgrtl.c (rtl_split_block): Likewise.
10439         (rtl_merge_blocks): Likewise.
10440         (rtl_can_merge_blocks): Likewise.
10441         (try_redirect_by_replacing_jump): Likewise.
10442         (force_nonfallthru_and_redirect): Likewise.
10443         (rtl_tidy_fallthru_edge): Likewise.
10444         (commit_one_edge_insertion): Likewise.
10445         (commit_edge_insertions): Likewise.
10446         (commit_edge_insertions_watch_calls): Likewise.
10447         (rtl_verify_flow_info_1): Likewise.
10448         (rtl_verify_flow_info): Likewise.
10449         (purge_dead_edges): Likewise.
10450         (cfg_layout_redirect_edge_and_branch): Likewise.
10451         (cfg_layout_can_merge_blocks_p): Likewise.
10452         (rtl_flow_call_edges_add): Likewise.
10453         * cse.c (cse_cc_succs): Likewise.
10454         * df.c (hybrid_search): Likewise.
10455         * dominance.c (calc_dfs_tree_nonrec): Likewise.
10456         (calc_dfs_tree): Likewise.
10457         (calc_idoms): Likewise.
10458         (recount_dominator): Likewise.
10459         * domwalk.c (walk_dominator_tree): Likewise.
10460         * except.c (emit_to_new_bb_before): Likewise.
10461         (connect_post_landing_pads): Likewise.
10462         (sjlj_emit_function_enter): Likewise.
10463         (sjlj_emit_function_exit): Likewise.
10464         (finish_eh_generation): Likewise.
10465         * final.c (compute_alignments): Likewise.
10466         * flow.c (calculate_global_regs_live): Likewise.
10467         (initialize_uninitialized_subregs): Likewise.
10468         (init_propagate_block_info): Likewise.
10469         * function.c (thread_prologue_and_epilogue_insns): Likewise.
10470         * gcse.c (find_implicit_sets): Likewise.
10471         (bypass_block): Likewise.
10472         (bypass_conditional_jumps): Likewise.
10473         (compute_pre_data): Likewise.
10474         (insert_insn_end_bb): Likewise.
10475         (insert_store): Likewise.
10476         (remove_reachable_equiv_notes): Likewise.
10477         * global.c (global_conflicts): Likewise.
10478         (calculate_reg_pav): Likewise.
10479         * graph.c (print_rtl_graph_with_bb): Likewise.
10480         * ifcvt.c (mark_loop_exit_edges): Likewise.
10481         (merge_if_block): Likewise.
10482         (find_if_header): Likewise.
10483         (block_jumps_and_fallthru_p): Likewise.
10484         (find_if_block): Likewise.
10485         (find_cond_trap): Likewise.
10486         (block_has_only_trap): Likewise.
10487         (find_if_case1): Likewise.
10488         (find_if_case_2): Likewise.
10489         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Likewise.
10490         (perfect_nestify): Likewise.
10491         * lcm.c (compute_antinout_edge): Likewise.
10492         (compute_laterin): Likewise.
10493         (compute_available): Likewise.
10494         (compute_nearerout): Likewise.
10495         * loop-doloop.c (doloop_modify): Likewise.
10496         * loop-init.c (loop_optimizer_init): Likewise.
10497         * loop-invariant.c (find_exits): Likewise.
10498         * loop-iv.c (simplify_using_initial_values): Likewise.
10499         (check_simple_exit): Likewise.
10500         (find_simple_exit): Likewise.
10501         * loop-unroll.c (peel_loop_completely): Likewise.
10502         (unroll_loop_constant_iterations): Likewise.
10503         (unroll_loop_runtime_iterations): Likewise.
10504         * loop-unswitch.c (may_unswitch_on): Likewise.
10505         (unswitch_loop): Likewise.
10506         * modulo-sched.c (generate_prolog_epilog): Likewise.
10507         (sms_schedule): Likewise.
10508         * postreload-gcse.c (eliminate_partially_redundant_load):
10509         Likewise.
10510         * predict.c (can_predict_insn_p): Likewise.
10511         (set_even_probabilities): Likewise.
10512         (combine_predictions_for_bb): Likewise.
10513         (predict_loops): Likewise.
10514         (estimate_probability): Likewise.
10515         (tree_predict_by_opcode): Likewise.
10516         (tree_estimate_probability): Likewise.
10517         (last_basic_block_p): Likewise.
10518         (propagate_freq): Likewise.
10519         (estimate_loops_at_level): Likewise.
10520         (estimate_bb_frequencies): Likewise.
10521         * profile.c (instrument_edges): Likewise.
10522         (get_exec_counts): Likewise.
10523         (compute_branch_probabilities): Likewise.
10524         (branch_prob): Likewise.
10525         * ra-build.c (live_in): Likewise.
10526         * ra-rewrite.c (rewrite_program2): Likewise.
10527         * ra.c (reg_alloc): Likewise.
10528         * reg-stack.c (reg_to_stack): Likewise.
10529         (convert_regs_entry): Likewise.
10530         (compensate_edge): Likewise.
10531         (convert_regs_1): Likewise,
10532         (convert_regs_2): Likewise.
10533         (convert_regs): Likewise.
10534         * regrename.c (copyprop_hardreg_forward): Likewise.
10535         * reload1.c (fixup_abnormal_edges): Likewise.
10536         * sbitmap.c (sbitmap_intersection_of_succs): Likewise.
10537         (sbitmap_insersection_of_preds): Likewise.
10538         (sbitmap_union_of_succs): Likewise.
10539         (sbitmap_union_of_preds): Likewise.
10540         * sched-ebb.c (compute_jump_reg_dependencies): Likewise.
10541         (fix_basic_block_boundaries): Likewise.
10542         (sched_ebbs): Likewise.
10543         * sched-rgn.c (build_control_flow): Likewise.
10544         (find_rgns): Likewise.
10545         * tracer.c (find_best_successor): Likewise.
10546         (find_best_predecessor): Likewise.
10547         (tail_duplicate): Likewise.
10548         * tree-cfg.c (make_edges): Likewise.
10549         (make_ctrl_stmt_edges): Likewise.
10550         (make_goto_expr_edges): Likewise.
10551         (tree_can_merge_blocks_p): Likewise.
10552         (tree_merge_blocks): Likewise.
10553         (cfg_remove_useless_stmts_bb): Likewise.
10554         (remove_phi_nodes_and_edges_for_unreachable_block): Likewise.
10555         (tree_block_forwards_to): Likewise.
10556         (cleanup_control_expr_graph): Likewise.
10557         (find_taken_edge): Likewise.
10558         (dump_cfg_stats): Likewise.
10559         (tree_cfg2vcg): Likewise.
10560         (disband_implicit_edges): Likewise.
10561         (tree_find_edge_insert_loc): Likewise.
10562         (bsi_commit_edge_inserts): Likewise.
10563         (tree_split_edge): Likewise.
10564         (tree_verify_flow_info): Likewise.
10565         (tree_make_forwarder_block): Likewise.
10566         (tree_forwarder_block_p): Likewise.
10567         (thread_jumps): Likewise.
10568         (tree_try_redirect_by_replacing_jump): Likewise.
10569         (tree_split_block): Likewise.
10570         (add_phi_args_after_copy_bb): Likewise.
10571         (rewrite_to_new_ssa_names_bb): Likewise.
10572         (dump_function_to_file): Likewise.
10573         (print_pred_bbs): Likewise.
10574         (print_loop): Likewise.
10575         (tree_flow_call_edges_add): Likewise.
10576         (split_critical_edges): Likewise.
10577         (execute_warn_function_return): Likewise.
10578         (extract_true_false_edges_from_block): Likewise.
10579         * tree-if-conv.c (tree_if_conversion): Likewise.
10580         (if_convertable_bb_p): Likewise.
10581         (find_phi_replacement_condition): Likewise.
10582         (combine_blocks): Likewise.
10583         * tree-into-ssa.c (compute_global_livein): Likewise.
10584         (ssa_mark_phi_uses): Likewise.
10585         (ssa_rewrite_initialize_block): Likewise.
10586         (rewrite_add_phi_arguments): Likewise.
10587         (ssa_rewrite_phi_arguments): Likewise.
10588         (insert_phi_nodes_for): Likewise.
10589         (rewrite_into_ssa): Likewise.
10590         (rewrite_ssa_into_ssa): Likewise.
10591         * tree-mudflap.c (mf_build_check_statement_for): Likewise.
10592         * tree-outof-ssa.c (coalesce_abnormal_edges): Likewise.
10593         (rewrite_trees): Likewise.
10594         * tree-pretty-print.c (dump_bb_header): Likewise.
10595         (dump_implicit_edges): Likewise.
10596         * tree-sra.c (insert_edge_copies): Likewise.
10597         (find_obviously_necessary_stmts): Likewise.
10598         (remove_data_stmt): Likewise.
10599         * tree-ssa-dom.c (thread_across_edge): Likewise.
10600         (dom_opt_finalize_block): Likewise.
10601         (single_incoming_edge_ignoring_loop_edges): Likewise.
10602         (record_equivalences_from_incoming_edges): Likewise.
10603         (cprop_into_successor_phis): Likewise.
10604         * tree-ssa-live.c (live_worklist): Likewise.
10605         (calculate_live_on_entry): Likewise.
10606         (calculate_live_on_exit): Likewise.
10607         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Likewise.
10608         (copy_loop_headers): Likewise.
10609         * tree-ssa-loop-im.c (loop_commit_inserts): Likewise.
10610         (fill_always_executed_in): Likewise.
10611         * tree-ssa-loop-ivcanon.c (create_canonical_iv): Likewise.
10612         * tree-ssa-loop-ivopts.c (find_interesting_uses): Likewise.
10613         (compute_phi_arg_on_exit): Likewise.
10614         * tree-ssa-loop-manip.c (add_exit_phis_edge): Likewise.
10615         (get_loops_exit): Likewise.
10616         (split_loop_exit_edge): Likewise.
10617         (ip_normal_pos): Likewise.
10618         * tree-ssa-loop-niter.c (simplify_using_initial_conditions):
10619         Likewise.
10620         * tree-ssa-phiopt.c (candidate_bb_for_phi_optimization): Likewise.
10621         (replace_phi_with_stmt): Likewise.
10622         (value_replacement): Likewise.
10623         * tree-ssa-pre.c (compute_antic_aux): Likewise.
10624         (insert_aux): Likewise.
10625         (init_pre): Likewise.
10626         * tree-ssa-propagate.c (simulate_stmt): Likewise.
10627         (simulate_block): Likewise.
10628         (ssa_prop_init): Likewise.
10629         * tree-ssa-threadupdate.c (thread_block): Likewise.
10630         (create_block_for_threading): Likewise.
10631         (remove_last_stmt_and_useless_edges): Likewise.
10632         * tree-ssa.c (verify_phi_args): Likewise.
10633         (verify_ssa): Likewise.
10634         * tree_tailcall.c (independent_of_stmt_p): Likewise.
10635         (find_tail_calls): Likewise.
10636         (eliminate_tail_call): Likewise.
10637         (tree_optimize_tail_calls_1): Likewise.
10638         * tree-vectorizer.c (vect_transform_loop): Likewise.
10639         * var-tracking.c (prologue_stack_adjust): Likewise.
10640         (vt_stack_adjustments): Likewise.
10641         (vt_find_locations): Likewise.
10642         * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise.
10643         * config/i386/i386.c (ix86_pad_returns): Likewise.
10644         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
10645         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
10646
10647 2004-09-28  Eric Botcazou  <ebotcazou@libertysurf.fr>
10648
10649         PR target/16532
10650         * config/sparc/sparc.c (struct machine_function): New field
10651         'leaf_function_p' and 'prologue_data_valid_p'.
10652         (sparc_leaf_function_p, sparc_prologue_data_valid_p): New macro
10653         to conveniently access the above fields.
10654         (TARGET_LATE_RTL_PROLOGUE_EPILOGUE): Delete.
10655         (eligible_for_return_delay): Use 'sparc_leaf_function_p' instead
10656         of the generic flavor 'current_function_uses_only_leaf_regs'.
10657         (eligible_for_sibcall_delay): Likewise.
10658         (sparc_expand_prologue): Compute 'sparc_leaf_function_p' and set
10659         'sparc_prologue_data_valid_p'.  Use 'sparc_leaf_function_p'.
10660         (sparc_asm_function_prologue): Add sanity check for the assumption
10661         made in 'sparc_expand_prologue'.  Use 'sparc_leaf_function_p'.
10662         (sparc_can_use_return_insn_p): New function.
10663         (sparc_expand_epilogue): Use 'sparc_leaf_function_p'.
10664         (output_restore): Likewise.
10665         (output_sibcall): Likewise.
10666         (sparc_output_mi_thunk): Likewise.
10667         * config/sparc/sparc-protos.h (sparc_can_use_return_insn_p): Declare.
10668         * config/sparc/sparc.md (return): New expander.
10669
10670         * config/sparc/sparc.h (INITIAL_ELIMINATION_OFFSET): Minor tweak.
10671
10672 2004-09-27  Mark Mitchell  <mark@codesourcery.com>
10673
10674         PR c++/17642
10675         * stor-layout.c (layout_decl): Use fold_convert, not convert.
10676         (bit_from_pos): Likewise.
10677         (byte_from_pos): Likewise.
10678         (pos_from_bit): Likewise.
10679         (normalize_offset): Likewise.
10680         (place_field): Likewise.
10681         (finalize_type_size): Likewise.
10682         (layout_type): Likewise.
10683         * tree.c (build_index_type): Likewise.
10684
10685 2004-09-27  Devang Patel  <dpatel@apple.com>
10686
10687         * expr.c (expand_expr_real_1): Handle VEC_COND_EXPR.
10688         * genopinit.c (optabs): New entry for vcond_gen_code and
10689         vcondu_gen_code.
10690         * optabs.c (vcond_gen_code, vcondu_gen_code): New optabs.
10691         (get_rtx_code): New function.
10692         (vector_compare_rtx): New function.
10693         (init_optabs): Initialize vcond_gen_code and vcondu_gen_code.
10694         (expand_vec_cond_expr_p): New function.
10695         (expand_vec_cond_expr): New function.
10696         (get_vcond_icode): New function.
10697         * optabs.h (expand_vec_cond_expr, expand_vec_cond_expr_p): New externs.
10698         (vcond_gen_code, vcondu_gen_code): Same.
10699
10700 2004-09-27  Kelley Cook  <kcook@gcc.gnu.org>
10701
10702         * Makefile.in (STAGESTUFF): Split into ...
10703         (STAGECOPYSTUFF, STAGEMOVESTUFF): ... these.
10704         (mostlyclean): Update.
10705         (stage1-start, stage2-start, stage3-start, stage4-start,
10706         stageprofile-start, stagefeedback-start): Copy the STAGECOPYSTUFF.
10707         Move the STAGEMOVESTUFF.
10708
10709 2004-09-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
10710
10711         * system.h (getpagesize): Return 'int' instead of 'long'.
10712
10713 2004-09-27  Michael Matz <matz@suse.de>
10714
10715         PR bootstrap/17698
10716         PR bootstrap/17702
10717         * bitmap.h (bmp_iter_single_init, bmp_iter_and_not_init,
10718         bmp_iter_and_init): Shift by bit_in_word.
10719
10720 2004-09-27  Kelley Cook  <kcook@gcc.gnu.org>
10721
10722         * aclocal.m4: Quote m4_includes. Include ../config/gcc-lib-path.m4.
10723         * configure.ac: Don't sinclude it here.
10724         * configure: Regenerate.
10725
10726 2004-09-27  Dorit Naishlos  <dorit@il.ibm.com>
10727
10728         * config/rs6000/rs6000.c (rs6000_legitimate_address, print_operand):
10729         Handle AND pattern
10730
10731 2004-09-27  Joseph S. Myers  <jsm@polyomino.org.uk>
10732
10733         PR c/13804
10734         * c-typeck.c (build_component_ref): Name type involved in
10735         diagnostic for structure or union without a member of the given
10736         name.
10737
10738 2004-09-27  DJ Delorie  <dj@redhat.com>
10739
10740         * config/stormy16/stormy16.c (xstormy16_asm_output_aligned_common):
10741         .comm alignment is bytes, not bits.
10742
10743 2004-09-27  Devang Patel  <dpatel@apple.com>
10744
10745         * tree-pretty-print.c (dump_generic_node): Print VEC_COND_EXPR.
10746         (print_call_name): Do not print VEC_COND_EXPR.
10747
10748 2004-09-27  Devang Patel  <dpatel@apple.com>
10749
10750         * tree-pretty-print.c (dump_generic_node): Print VEC_COND_EXPR.
10751
10752 2004-09-27  Jan Hubicka  <jh@suse.cz>
10753
10754         * i386.c (athlon_cost, k8_cost): Set BRANCH_COST to 5.
10755
10756 2004-09-27  Kazu Hirata  <kazu@cs.umass.edu>
10757
10758         * bitmap.h: Fix a comment typo.
10759
10760 2004-09-27  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
10761
10762         * libgcc2.c (getpagesize): Change type of return value to int.
10763
10764 2004-09-26  Matt Austern  <austern@apple.com>
10765
10766         * ggc-page.c (GGC_QUIRE_SIZE): Bump up from 16 to 256 if we're
10767         using mmap.
10768
10769 2004-09-26  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10770
10771         * bitmap.h (EXECUTE_IF_SET_IN_BITMAP, EXECUTE_IF_AND_COMPL_IN_BITMAP,
10772         EXECUTE_IF_AND_IN_BITMAP): Changed to iterator style.
10773         (bitmap_iterator): New type.
10774         (bmp_iter_common_next_1, bmp_iter_single_next_1, bmp_iter_single_init,
10775         bmp_iter_end_p, bmp_iter_single_next, bmp_iter_and_not_next_1,
10776         bmp_iter_and_not_init, bmp_iter_and_not_next, bmp_iter_and_next_1,
10777         bmp_iter_and_init, bmp_iter_and_next): New functions.
10778         * basic-block.h (EXECUTE_IF_SET_IN_REG_SET,
10779         EXECUTE_IF_AND_COMPL_IN_REG_SET, EXECUTE_IF_AND_IN_REG_SET): Changed to
10780         use iterator-style EXECUTE_IF_IN_BITMAP macros.
10781         * bitmap.c (bitmap_print): Ditto.
10782         * bt-load.c (clear_btr_from_live_range, add_btr_to_live_range,
10783         btr_def_live_range): Ditto.
10784         * cfganal.c (compute_dominance_frontiers_1) Ditto.
10785         * cgraphunit.c (convert_UIDs_in_bitmap, cgraph_characterize_statics):
10786         Ditto.
10787         * ddg.c (build_inter_loop_deps): Ditto.
10788         * df.c (FOR_EACH_BB_IN_BITMAP, df_bb_reg_info_compute, df_refs_update):
10789         Ditto.
10790         * except.c (remove_eh_handler): Ditto.
10791         * flow.c (reg_set_to_hard_reg_set): Ditto.
10792         * gcse.c (clear_modify_mem_tables): Ditto.
10793         * global.c (build_insn_chain): Ditto.
10794         * ifcvt.c (dead_or_predicable): Ditto.
10795         * loop-invariant.c (get_inv_cost, set_move_mark, move_invariant_reg):
10796         Ditto.
10797         * ra-build.c (livethrough_conflicts_bb, conflicts_between_webs): Ditto.
10798         * ra-rewrite.c (reloads_to_loads, rewrite_program2,
10799         detect_web_parts_to_rebuild, delete_useless_defs, actual_spill): Ditto.
10800         * tree-cfg.c (allocate_ssa_names, tree_duplicate_sese_region,
10801         tree_purge_all_dead_eh_edges): Ditto.
10802         * tree-into-ssa.c (compute_global_livein, insert_phi_nodes,
10803         insert_phi_nodes_for, debug_def_blocks_r, invalidate_name_tags,
10804         rewrite_ssa_into_ssa): Ditto.
10805         * tree-outof-ssa.c (find_replaceable_exprs): Ditto.
10806         * tree-sra.c (scan_function, decide_instantiations, scalarize_parms):
10807         Ditto.
10808         * tree-ssa-alias.c (init_alias_info, compute_points_to_and_addr_escape,
10809         compute_flow_sensitive_aliasing, maybe_create_global_var,
10810         dump_points_to_info_for): Ditto.
10811         * tree-ssa-dce.c (EXECUTE_IF_CONTROL_DEPENDENT): Ditto.
10812         * tree-ssa-dse.c (dse_finalize_block): Ditto.
10813         * tree-ssa-live.c (live_worklist, calculate_live_on_entry,
10814         calculate_live_on_exit, build_tree_conflict_graph, dump_live_info):
10815         Ditto.
10816         * tree-ssa-loop-ivopts.c (find_induction_variables,
10817         find_interesting_uses, add_old_ivs_candidates, alloc_use_cost_map,
10818         determine_use_iv_costs, determine_set_costs, find_best_candidate,
10819         set_cost_up_to, create_new_ivs, remove_unused_ivs, free_loop_data):
10820         Ditto.
10821         * tree-ssa-loop-manip.c (add_exit_phis_var, add_exit_phis): Ditto.
10822         * tree-ssa-operands.c (get_asm_expr_operands, add_call_clobber_ops,
10823         add_call_read_ops): Ditto.
10824         * tree-ssa-pre.c (bitmap_print_value_set, insert_aux): Ditto.
10825
10826 2004-09-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10827
10828         * pa.c (print_operand): Use non-trapping completers for UNLE, UNLT,
10829         UNGE, UNGT, UNEQ, UNORDERED and ORDERED comparisons.
10830
10831 2004-09-26  Ulrich Weigand  <uweigand@de.ibm.com>
10832
10833         * builtins.c (expand_builtin_memcmp): Adjust MEM_SIZE to
10834         reflect size of memory regions being compared.
10835
10836 2004-09-26  Ulrich Weigand  <uweigand@de.ibm.com>
10837
10838         * builtins.c (get_memory_rtx): Set mem attributes for non-ADDR_EXPR
10839         expressions.  Always clear MEM_SIZE and alias set.
10840
10841 2004-09-26  Roger Sayle  <roger@eyesopen.com>
10842             Giovanni Bajo  <giovannibajo@gcc.gnu.org>
10843
10844         PR middle-end/17112
10845         * stor-layout.c (compute_record_mode): For records with a single
10846         field, only use the field's mode if its size matches what we'd
10847         have choosen for the record ourselves.  This forces the use of
10848         BLKmode for packed records that don't completely fill a mode.
10849
10850 2004-09-26  Roger Sayle  <roger@eyesopen.com>
10851
10852         PR middle-end/17151
10853         * combine.c (force_to_mode): Remove dubious early return test that
10854         inhibits further optimization.
10855
10856 2004-09-26  Kazu Hirata  <kazu@cs.umass.edu>
10857
10858         * profile.c: Fix a comment typo.
10859
10860 2004-09-26  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10861
10862         PR bootstrap/17591
10863         * tree-ssa-loop-im.c (for_each_index): Call callback for component_refs
10864         with varying offset.
10865         * tree-ssa-loop-ivopts.c (abnormal_ssa_name_p): New function.
10866         (idx_contains_abnormal_ssa_name_p): Scan step and lower bound for
10867         ARRAY_REFS.
10868         (expr_invariant_in_loop_p): New function.
10869         (idx_find_step): Handle step and lower bound for ARRAY_REFs.  Handle
10870         component_ref_field_offset for COMPONENT_REFs.  Do not allow
10871         ALIGN_INDIRECT_REFs and MISALIGNED_INDIRECT_REFs.
10872         (add_address_candidates): Do not handle ALIGN_INDIRECT_REFs and
10873         MISALIGNED_INDIRECT_REFs.
10874         (idx_remove_ssa_names): Handle step and lower bound for ARRAY_REFs.
10875         (rewrite_address_base): Do not handle ALIGN_INDIRECT_REFs and
10876         MISALIGNED_INDIRECT_REFs.
10877
10878 2004-09-26  Joseph S. Myers  <jsm@polyomino.org.uk>
10879
10880         PR c/11459
10881         * gcc.c (cpp_options, cc1_options): Preserve relative order of
10882         -std and -ansi options.
10883
10884 2004-09-26  Jan Hubicka  <jh@suse.cz>
10885
10886         * dwarf2out.c (dwarf2out_finish): Set parent to comp_unit_die
10887         for nested functions whose proper parent has not been output.
10888
10889         * profile.c (compute_branch_probabilities): Use REG_BR_PROB notes
10890         when re-constructing profile previously invalidated by loop.
10891
10892 2004-09-25  Dale Johannesen  <dalej@apple.com>
10893
10894         * tree-gimple.c:  Move GIMPLE definition...
10895         * doc/tree-ssa.texi:  here.
10896
10897 2004-09-25  Kazu Hirata  <kazu@cs.umass.edu>
10898
10899         * tree-vectorizer.c: Fix a comment typo.
10900
10901 2004-09-25  Kazu Hirata  <kazu@cs.umass.edu>
10902
10903         * c-typeck.c, defaults.h, dwarf.h, dwarf2out.c, fold-const.c,
10904         gthr-dce.h, gthr-posix.h, gthr-solaris.h, gthr-win32.h,
10905         lambda-code.c, lambda-mat.c, libgcc2.c, stmt.c,
10906         tree-ssa-pre.c, tree-vn.c, tree.h: Fix comment formatting.
10907
10908 2004-09-25  Kazu Hirata  <kazu@cs.umass.edu>
10909
10910         * tree-ssa-loop-unswitch.c: Fix a comment typo.
10911
10912 2004-09-25  Kazu Hirata  <kazu@cs.umass.edu>
10913
10914         * doc/passes.texi: Fix a typo.
10915
10916 2004-09-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10917
10918         * tree-optimize.c (init_tree_optimization_passes): Add
10919         pass_record_bounds.
10920         * tree-pass.h (pass_record_bounds): Declare.
10921         * tree-ssa-loop.c (tree_ssa_loop_bounds, pass_record_bounds):
10922         New pass.
10923
10924 2004-09-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10925
10926         PR tree-optimization/17474
10927         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Determine
10928         offset of the field correctly when DECL_FIELD_BIT_OFFSET != 0.
10929
10930 2004-09-25  Jan Hubicka  <jh@suse.cz>
10931
10932         * predict.c (counts_to_freqs): Make global.
10933         * predict.h (counts_to_freqa): Declare.
10934         * profile.c (compute_branch_probabilities): Compute frequencies
10935         * tree-profile.c (do_tree_profiling): Refine conditional on when
10936         tree profiling pass is needed.
10937
10938         * passes.c (rest_of_handle_cfg): Disable const/pure function
10939         detection when doing tree based profiling.
10940
10941         * tree-inline.c (expand_call_inline): Fix incorrectly reversed
10942         conditional.
10943
10944 2004-09-25  Richard Sandiford  <rsandifo@redhat.com>
10945
10946         * config/mips/mips.h (struct mips_args): Clarify comments.
10947         * config/mips/mips.c (struct mips_arg_info): Likewise.
10948         (mips_arg_info): Don't allow fpr_p to affect the register or
10949         stack alignment.  Remove o64 silliness.
10950         (function_arg): Deal with the o32 float,float case specially.
10951
10952 2004-09-25  Richard Sandiford  <rsandifo@redhat.com>
10953
10954         * config/mips/mips.md (loadx, storex): Define for V2SF.
10955
10956 2004-09-25  Ulrich Weigand  <uweigand@de.ibm.com>
10957
10958         * config/s390/s390-protos.h (s390_back_chain_rtx): Add prototype.
10959         * config/s390/s390.c (s390_back_chain_rtx): New function.
10960         * config/s390/s390.md ("allocate_stack"): Use s390_back_chain_rtx.
10961         Call anti_adjust_stack.
10962         ("restore_stack_block"): Use s390_back_chain_rtx.  Enable pattern
10963         only if compiling with back chain.
10964         ("save_stack_nonlocal", "restore_stack_nonlocal"): Save/restore
10965         back chain only if back chain enabled.  Use s390_back_chain_rtx.
10966
10967 2004-09-25  Joseph S. Myers  <jsm@polyomino.org.uk>
10968
10969         * doc/trouble.texi: Remove obsolete information.  Update
10970         information on how to regenerate fixincluded headers.
10971
10972 2004-09-25  Joseph S. Myers  <jsm@polyomino.org.uk>
10973
10974         PR c/12951
10975         * doc/invoke.texi: Document that
10976         -Wno-error-implicit-function-declaration is not accepted.
10977
10978 2004-09-24  Richard Henderson  <rth@redhat.com>
10979
10980         * config/alpha/alpha.h (UNITS_PER_SIMD_WORD): New.
10981         * config/alpha/alpha.c (alpha_vector_mode_supported_p): Don't depend
10982         on TARGET_MAX.
10983         (alpha_expand_mov): Allow unaligned vectors.
10984         (alpha_expand_unaligned_store): Use CONST0_RTX.
10985         (TARGET_VECTORIZE_MISALIGNED_MEM_OK): New.
10986
10987 2004-09-24 Jeff Law  <law@redhat.com>
10988
10989         * tree-ssa-dom.c (dom_opt_finalize_block): Fix violation of strict
10990         aliasing rules.
10991         (simplify_cond_and_lookup_avail_expr): Likewise.
10992
10993 2004-09-24  Joseph S. Myers  <jsm@polyomino.org.uk>
10994
10995         PR c/12802
10996         * doc/extend.texi (Unnamed Fields): Remove "." from end of long
10997         title.  Document interaction with -fms-extensions.
10998         * doc/invoke.texi (-fms-extensions): Refer to Unnamed Fields
10999         section.
11000
11001 2004-09-24  Joseph S. Myers  <jsm@polyomino.org.uk>
11002
11003         PR c/12713
11004         * doc/extend.texi: Document interaction of attribute noreturn and
11005         longjmp.
11006
11007 2004-09-24  Richard Henderson  <rth@redhat.com>
11008
11009         PR rtl-opt/17503
11010         * regclass.c (subregs_of_mode): Turn into an htab.  Make static.
11011         (som_hash, som_eq): New.
11012         (init_subregs_of_mode, record_subregs_of_mode): New.
11013         (cannot_change_mode_set_regs): Rewrite for htab implementation.
11014         (invalid_mode_change_p): Likewise.
11015         * combine.c (gen_lowpart_for_combine): Use record_subregs_of_mode.
11016         * flow.c (mark_used_regs): Likewise.
11017         (life_analysis): Use init_subregs_of_mode.
11018         * regs.h (subregs_of_mode): Remove.
11019         * rtl.h (init_subregs_of_mode, record_subregs_of_mode): Declare.
11020
11021 2004-09-24  Andrew Pinski  <pinskia@physics.uc.edu>
11022
11023         * tree-ssa-phiopt.c (conditional_replacement): Use the correct
11024         type with the copy of the conditional.
11025
11026 2004-09-24  Andrew Pinski  <pinskia@physics.uc.edu>
11027
11028         PR tree-opt/16954
11029         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
11030         Prevent renaming if the aliasing sets of the type which the
11031         pointer points to are different.
11032
11033 2004-09-24  Joseph S. Myers  <jsm@polyomino.org.uk>
11034
11035         PR c/17188
11036         * c-decl.c (diagnose_mismatched_decls): Check for duplicate
11037         declarations of enumerators.
11038         (start_struct): Check TYPE_SIZE rather than TYPE_FIELDS to check
11039         for redefinition.  Check for nested redefinition.
11040         (finish_struct): Don't check for nested redefinition.
11041         (start_enum): Check for nested redefinition.
11042
11043 2004-09-24  Devang Patel  <dpatel@apple.com>
11044
11045         * tree-if-conv.c (tree_if_convert_cond_expr0: Create temp. variable
11046         only when necesssary.
11047         (combine_blocks): Combine loop header and exit block.
11048
11049 2004-09-24  Paolo Bonzini  <bonzini@gnu.org>
11050
11051         * hooks.c (hook_tree_tree_bool_null): New.
11052         * hooks.h (hook_tree_tree_bool_null): Declare it.
11053         * target-def.c (TARGET_FOLD_BUILTIN): Point to it.
11054         * targhooks.c (default_fold_builtin): Remove.
11055         * targhooks.h (default_fold_builtin): Remove.
11056
11057 2004-09-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11058
11059         PR rtl-optimization/17625
11060         * loop-doloop.c (doloop_modify): Unshare rtl before emitting it.
11061
11062 2004-09-24  Andrew Pinski  <pinskia@physics.uc.edu>
11063
11064         PR tree-opt/17624
11065         * tree-ssa-forwprop.c (record_single_argument_cond_exprs):
11066         Reject if any of the operands occur in an abnormal PHI.
11067
11068 2004-09-24  Andreas Schwab  <schwab@suse.de>
11069
11070         * tree-ssa-dom.c (record_range): Fix violation of strict aliasing
11071         rules.
11072
11073 2004-09-24  Eric Botcazou  <ebotcazou@libertysurf.fr>
11074
11075         * config.gcc (sparc64-*-solaris2*): Include sparc/sol2-gas.h
11076         if the GNU assembler is used.
11077         (sparc-*-solaris2*): Likewise.
11078         * dbxout.c (NO_DBX_BNSYM_ENSYM): Default to zero.
11079         (dbxout_function_end): Protect N_ENSYM with it.
11080         (dbxout_begin_prologue): Protect N_BNSYM with it.
11081         * doc/tm.texi (NO_DBX_BNSYM_ENSYM): Document it.
11082         * config/sparc/sol2.h (NO_DBX_BNSYM_ENSYM): Define to 1.
11083         * config/sparc/sol2-gas.h: New file.
11084
11085 2004-09-23  H.J. Lu  <hongjiu.lu@intel.com>
11086
11087         PR bootstrap/17369
11088         * Makefile.in (@set_gcc_lib_path@): Added.
11089
11090         * configure.ac: Include ../config/gcc-lib-path.m4. Use
11091         TL_AC_GNU_MAKE_GCC_LIB_PATH.
11092         * configure: Regenerated.
11093
11094 2004-09-24  Joseph S. Myers  <jsm@polyomino.org.uk>
11095
11096         PR c/6980
11097         * c-typeck.c (build_c_cast): Improve wording of
11098         -Wbad-function-cast diagnostic.
11099
11100 2004-09-23  Hans-Peter Nilsson  <hp@axis.com>
11101
11102         PR target/17626
11103         * config/cris/cris.md (moverside, movemside): Rename variable
11104         "reg" to "otherop".  To generate canonical RTX, check that otherop
11105         isn't constant instead of checking that operand 1 is a register.
11106
11107 2004-09-23  Jakub Jelinek  <jakub@redhat.com>
11108
11109         * tree-ssa-propagate.c (set_rhs): Fail if EXPR is COMPOUND_EXPR.
11110
11111 2004-09-23  Diego Novillo  <dnovillo@redhat.com>
11112             Jakub Jelinek  <jakub@redhat.com>
11113
11114         * tree-flow.h (find_new_referenced_vars): Add prototype.
11115         * tree-sra.c (find_new_referenced_vars_1, find_new_referenced_vars):
11116         Move to...
11117         * tree-dfa.c (find_new_referenced_vars_1, find_new_referenced_vars):
11118         ... here.
11119         (mark_new_vars_to_rename): Walk through all operands.
11120         * tree-ssa-ccp.c (convert_to_gimple_builtin): New function.
11121         (execute_fold_all_builtins): Use it.
11122         (pass_fold_builtins): Add TODO_rename_vars to todo_flags_finish.
11123
11124 2004-09-23  P.J. Darcy  <darcypj@us.ibm.com>
11125
11126         * gthr-tpf.h: New file.
11127         * config.gcc (s390x-ibm-tpf*): Add thread_file='tpf'.
11128         * gthr.h: Use gthr-tpf.h on TPF OS.
11129
11130 2004-09-23 Jeff Law  <law@redhat.com>
11131
11132         * tree-ssa-ccp.c (get_default_value): Use SSA_NAME_VALUE rather
11133         than SSA_NAME_EQUIV and SET_SSA_NAME_EQUIV.
11134         (substitute_and_fold):  Likewise.
11135         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Remove everything
11136         except invariants from SSA_NAME_VALUE.
11137         (thread_across_edge): Use SSA_NAME_VALUE rather than SSA_NAME_EQUIV
11138         and SET_SSA_NAME_EQUIV.
11139         (restore_vars_to_original_value, record_const_or_copy): Likewise.
11140         (record_equivalences_from_phis, record_const_or_copy_1): Likewise.
11141         (record_equality, cprop_into_successor_phis): Likewise.
11142         (record_equivalences_from_stmt, cprop_operand): Likewise.
11143         (lookup_avail_expr): Likewise.
11144         * tree-ssa-pre.c (fini_pre): Remove everything except invariants
11145         from SSA_NAME_VALUE.
11146         * tree.h (SSA_NAME_EQUIV, SET_SSA_NAME_EQUIV): Kill.
11147         (struct tree_ssa_name):  Kill EQUIV field.  Remove GGC skip
11148         annotation from the VALUE_HANDLE field.
11149
11150 2004-09-21 Fariborz Jahanian <fjahanian@apple.com>
11151
11152         PR c++/13989
11153         PR c++/9844
11154         * tree.c (reconstruct_complex_type): Remove extra "this".
11155         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
11156         Add V4SFmode to case statement.
11157
11158 2004-09-23  Joseph S. Myers  <jsm@polyomino.org.uk>
11159
11160         PR c/16833
11161         * doc/extend.texi, doc/invoke.texi: Document interaction of
11162         -fno-builtin with format checks.  Note that built-in functions
11163         have effects beyond generating code that avoids calls to those
11164         functions.
11165
11166 2004-09-23  Frank Ch. Eigler <fche@redhat.com>
11167
11168         PR tree-optimization/17533
11169         * dominance.c (verify_dominators): Tolerate even more incorrect
11170         dominance data during error message printing.
11171         * tree-mudflap.c (mf_build_check_statement_for): Build basic blocks
11172         and edges more correctly.
11173
11174 2004-09-23  Dorit Naishlos <dorit@il.ibm.com>
11175
11176         * tree.def (ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF):
11177         New tree-codes.
11178         * tree.h (REF_ORIGINAL): Consider ALIGN_INDIRECT_REF and
11179         MISALIGNED_INDIRECT_REF.
11180         * alias.c (get_alias_set, nonoverlapping_memrefs_p): Likewise.
11181         * emit-rtl.c (mem_expr_equal_p, set_mem_attributes_minus_bitpos):
11182         Likewise.
11183         * expr.c (safe_from_p, expand_expr_real_1, rewrite_address_base)
11184         (find_interesting_uses_address): Likewise.
11185         * fold-const.c (non_lvalue, operand_equal_p): Likewise.
11186         (build_fold_addr_expr_with_type): Likewise.
11187         * gimplify.c (gimplify_addr_expr, gimplify_expr): Likewise.
11188         * print-rtl.c (print_mem_expr): Likewise.
11189         * tree-dump.c (dequeue_and_dump): Likewise.
11190         * tree-eh.c (tree_could_trap_p): Likewise.
11191         * tree-gimple.c (is_gimple_addressable, get_base_address): Likewise.
11192         * tree-pretty-print.c (op_prio, op_symbol, dump_generic_node): Likewise.
11193         * tree-ssa-alias.c (find_ptr_dereference, ptr_is_dereferenced_by):
11194         Likewise.
11195         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
11196         * tree-ssa-dom.c (record_equivalences_from_stmt): Likewise.
11197         * tree-ssa-loop-im.c (for_each_index, is_call_clobbered_ref): Likewise.
11198         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
11199         (add_address_candidates, rewrite_address_base): Likewise.
11200         * tree-ssa-operands.c (get_expr_operands, get_indirect_ref_operands):
11201         Likewise.
11202         * tree.c (staticp, build1_stat): Likewise.
11203
11204         * tree.def (REALIGN_LOAD_EXPR, REALIGN_STORE_EXPR): New tree-codes.
11205         * tree-pretty-print.c (dump_generic_node): Consider REALIGN_LOAD_EXPR.
11206         * tree-ssa-operands.c (get_expr_operands): Likewise.
11207         * expr.c (expand_expr_real_1): Likewise.
11208
11209         * optabs.h (vec_realign_store_optab, vec_realign_load_optab): New
11210         optabs.
11211         (OTI_vec_realign_store, OTI_vec_realign_load): New optab_index values
11212         for the new optabs.
11213         (expand_ternary_op): New function.
11214         * genopinit.c (optabs): Handle the new optabs.
11215         * optabs.c (optab_for_tree_code): Add cases for the new tree-codes.
11216         (init_optabs): Initialize vec_realign_load_optab.
11217         (expand_ternary_op): New functions.
11218
11219         * target-def.h (TARGET_VECTORIZE): New member for struct gcc_target.
11220         (TARGET_VECTORIZE_MISALIGNED_MEM_OK): New member for targetm.vectorize.
11221         (TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD): Likewise.
11222         (TARGET_VECTORIZE_BUILTIN_MASK_FOR_STORE): Likewise.
11223         * target.h (struct vectorize): New member for struct gcc_target.
11224         (misaligned_mem_ok): New member for targetm.vectorize.
11225         (builtin_mask_for_load): Likewise.
11226         (builtin_mask_for_store): Likewise.
11227         * targethooks.c (default_vect_misaligned_mem_ok): New function.
11228         * targethooks.h (default_vect_misaligned_mem_ok): New function.
11229
11230         * config/rs6000/altivec.md (build_vector_mask_for_load): New
11231         define_expand.
11232         (vec_realign_load_v4si, vec_realign_load_v4sf, vec_realign_load_v8hi)
11233         (vec_realign_load_v16qi): New define_insn.
11234         * config/rs6000/rs6000.h (ALTIVEC_BUILTIN_MASK_FOR_LOAD):
11235         (ALTIVEC_BUILTIN_MASK_FOR_STORE): New target builtins.
11236         * config/rs6000/rs6000.c (altivec_builtin_mask_for_load):
11237         (altivec_builtin_mask_for_store): New variables.
11238         (rs6000_builtin_mask_for_load): New function. Implements
11239         TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD.
11240         (rs6000_builtin_mask_for_store): New function. Implements
11241         TARGET_VECTORIZE_BUILTIN_MASK_FOR_STORE.
11242         (rs6000_expand_builtin): Expand the target builtins
11243         builtin_mask_for_load and builtin_mask_for_store.
11244         (altivec_init_builtins): Initialize the new target builtins.
11245         * config/i386/i386.c (ix86_misaligned_mem_ok): New function.
11246         Implements the target hook TARGET_VECTORIZE_MISALIGNED_MEM_OK.
11247
11248         * tree-vectorizer.c (vect_create_data_ref): Renamed to
11249         vect_create_data_ref_ptr. Returns a pointer instead of an array-ref.
11250         (vect_create_addr_base_for_vector_ref): Additional argument (offset).
11251         (vectorizable_store): Call vect_create_data_ref_ptr with additional
11252         arguments, and create an indirect_ref with its return value data_ref.
11253         Check aligned_access_p.
11254         (vectorizable_load): Handle misaligned loads, using software-pipelined
11255         scheme with REALIGN_LOAD_EXPR and ALIGN_INDIRECT_REF if
11256         vec_realign_load_optab is supported, or using a scheme without
11257         software-pipelining with MISALIGNED_INDIRECT_REF if the target hook
11258         misaligned_mem_ok is supported.
11259
11260         (vect_finish_stmt_generation): Typo.
11261         (vect_enhance_data_refs_alignment): Rename loop_vinfo to loop_info.
11262         (vect_analyze_data_refs_alignment): Don't fail vectorization in the
11263         presence of misaligned loads.
11264         (vect_analyze_data_ref_access): Add check for constant init.
11265         (vect_get_symbl_and_dr): Remove duplicate line.
11266         * tree-vectorizer.h (DR_MISALIGNMENT): Add comment.
11267
11268 2004-09-23  Kazu Hirata  <kazu@cs.umass.edu>
11269
11270         * builtins.c: Fix a comment typo.
11271
11272 2004-09-23  Jan Hubicka  <jh@suse.cz>
11273
11274         * profile.c (branch_prob): Do not verify flow info in the middle of the
11275         pass.
11276
11277 2004-09-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11278
11279         * cfgloop.h (update_single_exits_after_duplication): Declare.
11280         (loopify, split_loop_bb): Declaration changed.
11281         * cfgloopmanip.c (split_loop_bb): Take void * as an argument instead
11282         of rtx.
11283         (loopify): Added redirect_all_edges argument.
11284         (update_single_exits_after_duplication): Export.
11285         * loop-unswitch.c (unswitch_loop): Changed due to loopify change.
11286         * tree-flow.h (tree_duplicate_loop_to_header_edge,
11287         tree_ssa_loop_version): Declare.
11288         * tree-ssa-loop-manip.c (copy_phi_node_args, rename_variables,
11289         set_phi_def_stmts, tree_duplicate_loop_to_header_edge,
11290         lv_adjust_loop_header_phi, lv_adjust_loop_entry_edge,
11291         lv_update_pending_stmts, tree_ssa_loop_version): New functions.
11292
11293         * tree-ssa-loop-unswitch.c: New file.
11294         * Makefile.in (tree-ssa-loop-unswitch.o): Add.
11295         * timevar.def (TV_TREE_LOOP_UNSWITCH): New timevar.
11296         * tree-flow.h (tree_ssa_unswitch_loops): Declare.
11297         * tree-optimize.c (init_tree_optimization_passes): Add pass_unswitch.
11298         * tree-pass.h (pass_unswitch): Declare.
11299         * tree-ssa-loop.c (tree_ssa_loop_unswitch,
11300         gate_tree_ssa_loop_unswitch, pass_unswitch): New pass.
11301         * doc/passes.texi: Documen tree level loop unswitching.
11302
11303 2004-09-23  Kazu Hirata  <kazu@cs.umass.edu>
11304
11305         * cfgexpand.c, config/s390/tpf-eh.c: Fix comment typos.
11306
11307 2004-09-22  Eric Christopher  <echristo@redhat.com>
11308
11309         * builtins.c (simplify_builtin_va_start): Remove.
11310         (simplify_builtin): Ditto.
11311         (fold_builtin_strchr): Ditto.
11312         (simplify_builtin_*): Rename remainders to fold_builtin_*.
11313         (expand_builtin): Fix up for above changes.
11314         (fold_builtin_1): Add new folders. Change for above.
11315         (expand_builtin_va_start): Call fold_builtin_next_arg.
11316         * gimplify.c (gimplify_call_expr): Fix calls to simplify_builtin.
11317         * tree.h: Remove prototype for simplify_builtin.
11318
11319 2004-09-23  Jan Hubicka  <jh@suse.cz>
11320
11321         PR debug/17389
11322         * dwarf2out.c (dwarf2out_finish): Deal with nested functions
11323         of fully inlined functions.
11324         * tree-inline.c (inline_forbidden_p_1): Nested functions can be
11325         inlined.
11326
11327         * cfgexpand.c (add_reg_br_prob_note): New function.
11328         (expand_gimple_cond_expr): Use it.
11329         (tree_expand_cfg): No longer kill the profile.
11330         * cfgrt.c (rtl_verify_flow_info_1): Check profile consistency
11331         only if it is present.
11332         * passes.c (rest_of_handle_loop_optimize): Kill the profile.
11333         * predict.c (combine_predictions_for_insn): Set the probabilities
11334         based on REG_BR_PROB note if present.
11335         * predict.c (branch_prob): Profile is read only with
11336         flag_branch_probabilities.
11337
11338 2004-09-22  Kelley Cook  <kcook@gcc.gnu.org>
11339
11340         * aclocal.m4: Add in gettext's m4 includes.
11341         (AC_ICONV, AC_LCMESSAGES, GCC_PATH_PROG): Remove.
11342         * configure.ac: Add in check for iconv.h
11343         * configure: Regenerate.
11344
11345 2004-09-22  Kelley Cook  <kcook@gcc.gnu.org>
11346
11347         * aclocal.m4: Update for rename of gettext-sister.m4.
11348
11349 2004-09-22  Daniel Berlin <dberlin@dberlin.org>
11350
11351         Fix PR tree-optimization/17587
11352         * tree-ssa-pre.c (fini_pre): Commit edge inserts here.
11353         (insert_aux): Instead of here.
11354
11355 2004-09-22  Diego Novillo  <dnovillo@redhat.com>
11356
11357         PR tree-optimization/16721
11358         * tree-dfa.c (dump_variable): Show TREE_THIS_VOLATILE.
11359         * tree-ssa-alias.c (create_memory_tag): Move setting of
11360         TREE_THIS_VOLATILE ...
11361         (get_tmt_for): ... here.
11362
11363 2004-09-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
11364
11365         * config/sparc/sparc.md (cmove splitter): Fix formatting.
11366         (conditional_trap expander): Reject inappropriate CCmodes.
11367         (conditional trap insn): Use V9 syntax if possible.
11368
11369 2004-09-22  Joseph S. Myers  <jsm@polyomino.org.uk>
11370
11371         PR c/16566
11372         * c-typeck.c (build_component_ref): Don't special-case
11373         COMPOUND_EXPR.
11374
11375 2004-09-22  Frank Ch. Eigler  <fche@redhat.com>
11376
11377         * dominance.c (verify_dominators): Don't SEGV if recount_dominator
11378         returns NULL.
11379
11380 2004-09-22  Kazu Hirata  <kazu@cs.umass.edu>
11381
11382         * doc/c-tree.texi (TRUTH_NOT_EXPR, TRUTH_ANDIF_EXPR,
11383         TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
11384         TRUTH_XOR_EXPR): Mention the restriction on types.
11385
11386 2004-09-22  Matt Austern  <austern@apple.com>
11387
11388         * config/darwin.c (darwin_make_decl_one_only):
11389         Allow coalesced symbol to appear in static archive's table of contents
11390
11391 2004-09-22  Kazu Hirata  <kazu@cs.umass.edu>
11392
11393         PR tree-optimization/17512
11394         * convert.c (convert_to_integer): Don't handle TRUTH_*_EXPR as
11395         special cases.
11396
11397 2004-09-22  David Edelsohn  <edelsohn@gnu.org>
11398
11399         * dbxout.c (get_lang_number): Do not define if
11400         DBX_OUTPUT_MAIN_SOURCE_DIRECTORY is defined.
11401
11402 2004-09-22  Ralf Corsepius  <corsepiu@faw.uni-ulm.de>
11403
11404         PR target/15583
11405         * config/rs6000/rtems.h (TARGET_OS_CPP_BUILTINS): Add
11406         builtin_define ("__USE_INIT_FINI__").
11407
11408 2004-09-22  P.J. Darcy  <darcypj@us.ibm.com>
11409
11410         * config/s390/s390-protos.h (s390_emit_tpf_eh_return): Add prototype.
11411         * config/s390/s390.c (s390_emit_tpf_eh_return): New function.
11412         * config/s390/s390.h (TARGET_TPF): New macro.
11413         * config/s390/s390.md ("eh_return"): New expander.
11414         * config/s390/t-tpf (LIB2ADDEH): Use unwind-dw2-fde.c rather than
11415         unwind-dw2-fde-glibc.c.  Add config/s390/tpf-eh.c.
11416         (LIB2ADDEHDEP): Remove unwind-dw2-fde.c.
11417         * config/s390/tpf.h (TARGET_TPF): Define to 1.
11418         (STACK_POINTER_OFFSET): Increase to 448.
11419         (TARGET_DEFAULT): Set -mtpf-trace on as default.
11420         (TPF_LOC_DIFF_OFFSET): New macro.
11421         (ASM_PREFERRED_EH_DATA_FORMAT): Redefine to always use absolute
11422         encoding.
11423         (__isPATrange): Add prototype.
11424         (MD_FALLBACK_FRAME_STATE_FOR): Define.
11425         * config/s390/tpf-eh.c: New file.
11426
11427 2004-09-22  Diego Novillo  <dnovillo@redhat.com>
11428
11429         * fold-const.c (fold): Avoid non INTEGER_TYPEs when widening
11430         operands in an integer comparison.
11431         * tree-cfg.c (find_taken_edge): Call fold() to determine
11432         whether the predicate is known.
11433
11434 2004-09-22  Kelley Cook  <kcook@gcc.gnu.org>
11435
11436         * aclocal.m4: Import AM_PROG_CC_C_O and AM_AUX_DIR_EXPAND.
11437         * configure.ac: Call AM_PROG_CC_C_O instead of AC_PROG_CC_C_O.
11438         Create build and doc directories along with the language directories.
11439         Don't create doc directory separately.
11440         * configure: Regenerate.
11441         * Makefile.in: Create all object and executables files built
11442         with the build compiler in a build/ directory.
11443         (genobjnames): Add missing build objects.
11444         (STAGESTUFF): Don't stage the gen* programs.
11445         (ggc-none.o): Define dependencies for the target compiler.
11446         (build-print-rtl.o): Rename to build/print-rtl.o.
11447         (build-errors.o): Rename to build/errors.o.
11448         (build-varray.o): Rename to build/varray.o.
11449         (maintainerclean): Delete the contents of the build directory.
11450         ($(genobjs): %.o): Explicitly use -o.
11451         (build/insn-conditions.o): Delete specfic rule to use generic rule.
11452         (build/gengtype-lex.o): Likewise.
11453         (build/gengtype-yacc.o): Likewise.
11454         (build/gcov-iov.o): Likewise.
11455
11456 2004-09-22  Nathan Sidwell  <nathan@codesourcery.com>
11457
11458         * vec.h (VEC_space): Return true if there _is_ space.
11459         (VEC_reserve): Adjust.
11460
11461 2004-09-22  Richard Sandiford  <rsandifo@redhat.com>
11462
11463         * config/mips/mips.c (mips_function_value): For o32, o64, n32 and n64,
11464         use FPRs for scalar, complex and vector types only.
11465
11466 2004-09-21 Jeff Law  <law@redhat.com>
11467
11468         * tree-ssa-dom.c (opt_stats): Move so that it lives just after
11469         the opt_stats_d structure.
11470         (vrp_data): Change from a varray into a hash table.
11471         (vrp_hash_elt): New structure for elements in the vrp hash table.
11472         (vrp_hash, vrp_eq):New functions for hashing and testing equality
11473         in the vrp hash table.
11474         (tree_ssa_dominator_optimize): Initialize VRP_DATA.  Reorganize
11475         initialization slightly to make it easier to read.  No longer need
11476         to grow/clear the varray.  Instead empty and delete the hash table.
11477         (dom_opt_finalize_block): Update due to change of VRP_DATA from
11478         a varray to a hash table.
11479         (simplify_cond_and_loop_avail_expr, record_range): Similarly.
11480
11481         * tree-ssa-ccp.c (get_default_value): If we have a constant
11482         value recorded for an SSA_NAME, then use that constant as
11483         the initial lattice value.
11484         (substitute_and_fold): Transfer equivalences discovered into
11485         SSA_NAME_EQUIV.
11486
11487         * tree.h (SSA_NAME_EQUIV): Add comments.
11488         (SET_SSA_NAME_EQUIV): Similarly.
11489
11490 2004-09-21  David Edelsohn  <edelsohn@gnu.org>
11491
11492         * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Default to POWER4.
11493
11494         * config/rs6000/rs6000.c (rs6000_adjust_cost): dep_insn is used.
11495
11496 2004-09-21  Mark Mitchell  <mark@codesourcery.com>
11497
11498         * c-decl.c (implicityl_declare): Call maybe_apply_renaming_pragma.
11499         (finish_decl): Likewise.
11500
11501 2004-09-21  Devang Patel  <dpatel@apple.com>
11502
11503         * tree.def (VEC_COND_EXPR): New tree node.
11504         * tree-ssa-operands.c (get_expr_operands): Handle VEC_COND_EXPR.
11505
11506 2004-09-21  Stan Shebs  <shebs@apple.com>
11507
11508         * config/rs6000/darwin-tramp.asm: Add __ppc64__ case.
11509         * config/rs6000/darwin-world.asm: Likewise.
11510
11511 2004-09-21  Daniel Berlin  <dberlin@dberlin.org>
11512
11513         * tree-ssa.c (verify_def): Use print_generic_stmt,
11514         not debug_generic_stmt.
11515         (verify_use): Ditto.
11516         (verify_phi_args): Ditto.
11517         (verify_ssa): Ditto.
11518
11519 2004-09-21  Paul Brook  <paul@codesourcery.com>
11520
11521         * varasm.c (default_assemble_integer): Return false for values wider
11522         than the target word size.  Works around GAS bug.
11523
11524 2004-09-21  Zack Weinberg  <zack@codesourcery.com>
11525
11526         * reg-notes.def (REG_DEP_TRUE): New entry, place first so it
11527         gets value 0.
11528         * print-rtl.c (print_rtx): Print the name of a REG_NOTE even
11529         if it has value 0.
11530
11531 2004-09-21  Daniel Berlin <dberlin@dberlin.org>
11532
11533         * c-typeck.c (build_function_call): Give name of object
11534         we are attempting to call in error message.
11535         * c-objc-common.c (c_tree_printer): Call pp_expression,
11536         not return false, for 'E' case.
11537
11538 2004-09-21  Steven Bosscher  <stevenb@suse.de>
11539
11540         PR rtl-optimization/17482
11541         * postreload-gcse.c (reg_avail_info, oprs_unchanged_p,
11542         load_killed_in_block_p): Clarify comments.
11543         (record_last_reg_set_info): Make static inline.
11544         (mark_call, mark_set, mark_clobber, mark_oprs_set): Remove.
11545         (record_opr_changes): New function to replace the above.
11546         (compute_hash_table): Clarify comments.  Use record_opr_changes.
11547         (reg_set_between_after_reload_p): Clean up.
11548         (reg_used_between_after_reload_p): Likewise.
11549         (eliminate_partially_redundant_load): Clarify comments.
11550
11551 2004-09-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
11552
11553         PR rtl-optimization/17266
11554         * regmove.c (optimize_reg_copy_3): Make a new SUBREG for each insn.
11555
11556 2004-09-21  Uros Bizjak  <uros@kss-loka.si>
11557
11558         PR rtl-optimization/14851
11559         * rtlanal.c (commutative_operand_precedence): Calculate
11560         precedence of stripped constant.
11561
11562 2004-09-20 Jeff Law  <law@redhat.com>
11563            Jan Hubicka  <jh@suse.cz>
11564
11565         * tree-ssanames.c (make_ssa_name): No longer need to clear, then
11566         initialize key elements here.
11567         (release_ssa_name): Zero the released SSA_NAME here.
11568         * tree.h (SSA_NAME_EQUIV, SET_SSA_NAME_EQUIV): New macros.
11569         (struct tree_ssa_name): Add new "equiv" field.
11570         * tree-ssa-dom.c (const_and_copies): Kill the global varray.
11571         (tree_ssa_dominator_optimize): No longer allocate, resize or
11572         clear CONST_AND_COPIES.
11573         (get_value_for, set_value_for): Kill.
11574         (thread_across_edge): Get/set the equivalency using
11575         SSA_NAME_EQUIV and SET_SSA_NAME_EQUIV.
11576         (restore_vars_to_original_value): Likewise.
11577         (record_equivalences_from_phis): Likewise.
11578         (record_dominating_conditions): Likewise.
11579         (record_const_or_copy, record_equality): Likewise.
11580         (lookup_avail_expr): Likewise.
11581         (record_equivalences_from_stmt, cprop_operand): Likewise.
11582         (cprop_into_successor_phis): No longer need to pass around
11583         CONST_AND_COPIES.  Callers updated. Get equivalences via
11584         SSA_NAME_EQUIV.
11585         (cprop_into_phis): Likewise.
11586
11587 2004-09-20  Matt Austern <austern@apple.com>
11588             Zack Weinberg  <zack@codesourcery.com>
11589
11590         * c-common.c (fix_string_type): Build the unqualified array
11591         type unconditionally, then use c_build_qualified_type to get
11592         the proper const-qualified variant, and set its
11593         TYPE_MAIN_VARIANT to refer to the unqualified type.
11594         * c-lex.c (c_lex_return_raw_string): New global.
11595         (c_lex_with_flags): Honor it.
11596         * c-pragma.h: Declare it.
11597
11598 2004-09-20  Daniel Berlin  <dberlin@dberlin.org>
11599
11600         * Makefile.in: Fix flags.h dependencies to be $(FLAGS_H).
11601
11602 2004-09-21  Jan Hubicka  <jh@suse.cz>
11603
11604         PR middle-end/17126
11605         * tree-optimize.c (update_inlined_to_pointers): Fix the recursion.
11606         (tree_rest_of_compilation): Cleanup.
11607
11608 2004-09-20  Ulrich Weigand  <uweigand@de.ibm.com>
11609
11610         * config/s390/s390.c (s390_select_rtx_section): Remove.
11611         (TARGET_ASM_SELECT_RTX_SECTION): Do not redefine.
11612
11613 2004-09-20  Kaz Kojima  <kkojima@gcc.gnu.org>
11614
11615         * config/sh/sh.c (sh_expand_prologue): Add a REG_FRAME_RELATED_EXPR
11616         note to pretend a direct save from the original register when an
11617         intermediate register is used for the save.
11618
11619 2004-09-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11620
11621         * tsystem.h (alloca): Provide a default definition.
11622
11623         Revert:
11624         2001-08-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11625             * unwind-dw2.c: Call __builtin_alloca, not alloca.
11626
11627 2004-09-20  Andrew Pinski  <pinskia@physics.uc.edu>
11628
11629         PR tree-opt/17558
11630         * tree-ssa-copy.c (may_propagate_copy): Only allow if the
11631         aliasing sets are the same rather than just conflicting.
11632
11633 2004-09-20  Jan Hubicka  <jh@suse.cz>
11634
11635         PR middle-end/16460
11636
11637         * cgraph.c (cgraph_unnest_node): New function.
11638         (c_finalize): Rename to ....
11639         (c_warn_unused_result_recursivly): ... this one; do only the warning
11640         (finish_function): Finalize the toplevel function; do not lower nested tree.
11641         * cgraph.h (cgraph_unnest_node): Declare.
11642         * cgraphunit.c (decide_is_function_needed): Do not use cgraph
11643         nestedness datastructure.
11644         * cse.c (cse_insn): Do not cprop nonlocal LABEL_REFs.
11645         * reload1.c (set_label_offsets): Fix call of set_label_offsets.
11646         * tree-nested.c (finlize_nesting_tree_1):  Use un-nesting code.
11647
11648 2004-09-20  Richard Henderson  <rth@redhat.com>
11649
11650         * config/alpha/alpha.c (some_small_symbolic_operand_int): Rename
11651         from some_small_symbolic_operand_1; export.
11652         (some_small_symbolic_operand): Remove.
11653         * config/alpha/alpha.md (some_small_symbolic_operand splitter): Remove
11654         extra C check.
11655         * config/alpha/predicates.md (some_small_symbolic_operand): New.
11656
11657 2004-09-20  Jan Hubicka  <jh@suse.cz>
11658
11659         * predict.c (return_prediction): New function.
11660         (apply_return_prediction): Likewise.
11661         (tree_bb_level_predictions): Likewise.
11662         (tree_estimate_probability): Add noreturn exit edges; call
11663         bb_level_predictions; fix logic of return heuristics.
11664         (predict_paths_leading_to):  Rescuesce from old CVS version of
11665         process_note_prediction function.
11666         * predict.def (PRED_TREE_EARLY_RETURN): New predictor.
11667
11668 2004-09-20  Andreas Krebbel  <krebbel1@de.ibm.com>
11669
11670         * config/s390/s390.c (s390_frame_info): Added alignment statement for
11671         floating point register area on stack.
11672
11673 2004-09-20  Jakub Jelinek  <jakub@redhat.com>
11674
11675         * predict.c (expr_expected_value): Use *_CLASS_P macros.
11676
11677 2004-09-20  Daniel Berlin  <dberlin@dberlin.org>
11678
11679         * tree-ssa-pre.c (compute_antic_aux): Use malloc'd worklist, to avoid
11680         generating useless garbage.
11681
11682 2004-09-20  Paolo Bonzini  <bonzini@gnu.org>
11683
11684         * builtins.c (fold_builtin): Call the new omonymous
11685         target hook for machine-dependent built-ins.
11686         * target-def.h (TARGET_FOLD_BUILTIN): New.
11687         * target.h (struct gcc_target): Add the fold_builtin hook.
11688         * targhooks.c (default_fold_builtin): New.
11689         * targhooks.h (default_fold_builtin): Declare it.
11690
11691 2004-09-20  Kazu Hirata  <kazu@cs.umass.edu>
11692
11693         * cfg.c, tree-ssa-threadupdate.c, tree-vectorizer.c: Fix
11694         comment typos.
11695
11696 2004-09-20  Richard Sandiford  <rsandifo@redhat.com>
11697
11698         PR target/17565
11699         * config/mips/mips.md (define_asm_attributes): Set can_delay to no.
11700
11701 2004-09-20  Jan Hubicka  <jh@suse.cz>
11702
11703         * predict.c (estimate_probability): Remove unnecesary code.
11704
11705 2004-09-19  Ira Rosen  <irar@il.ibm.com>
11706
11707         * tree-vectorizer.h (stmt_vec_info): Add vect_dr_base field.
11708         (STMT_VINFO_VECT_DR_BASE): Declare.
11709         (VECT_SMODULO): Declare.
11710         * tree-vectorizer.c (vect_compute_array_ref_alignment): New function.
11711         (vect_compute_array_base_alignment): New function.
11712         (vect_analyze_data_ref_access): Check array indices. Remove one
11713         dimensional arrays restriction.
11714         (vect_get_ptr_offset): New function.
11715         (vect_get_symbl_and_dr): New function.
11716         (vect_get_base_and_bit_offset): Support additional data refs. Renamed
11717         (former name vect_get_base_decl_and_bit_offset).
11718         (vect_create_index_for_array_ref): Removed.
11719         (vect_create_index_for_vector_ref): New function.
11720         (vect_create_addr_base_for_vector_ref): New function.
11721         (vect_create_data_ref): Handle additional data refs. Call
11722         vect_create_index_for_vector_ref and vect_create_addr_base_for_vector_ref.
11723         (vect_compute_data_ref_alignment): Support the changes. Call
11724         vect_get_base_and_bit_offset.
11725         (vect_analyze_data_refs): Call vect_get_symbl_and_dr. Support additional
11726         data refs. Store vect_dr_base.
11727         (vect_analyze_data_ref_accesses): Support nonconstant init.
11728         (new_stmt_vec_info): Initialize vect_dr_base field.
11729         (vect_is_simple_iv_evolution): Call initial_condition_in_loop_num.
11730         (get_vectype_for_scalar_type): Check for BLKmode.
11731         * tree-chrec.h (initial_condition_in_loop_num): Declare.
11732         * tree-chrec.c (initial_condition_in_loop_num): New function.
11733         (chrec_component_in_loop_num): New function.
11734         (evolution_part_in_loop_num): Call chrec_component_in_loop_num.
11735         * tree-data-ref.c (analyze_array_indexes): Change parameter (access_fns)
11736         to be pointer to varray_type.
11737
11738 2004-09-19  Jan Hubicka  <jh@suse.cz>
11739
11740         * basic-block.h (update_bb_profile_after_threading): Declare.
11741         * cfg.c (update_bb_profile_after_threading): Break out from ...
11742         * cfgcleanup.c (try_forward_edges): ... here; use it.
11743         * tree-ssa-dom.c (thread_across_edge): Use it.
11744         * tree-ssa-threadupdate.c (create_block_for_threading): Zero out
11745         profile of the new BB.
11746
11747 2004-09-19  Daniel Berlin  <dberlin@dberlin.org>
11748
11749         * tree-ssa-pre.c (insert_into_set): Don't put
11750         is_gimple_min_invariant values into the set.
11751
11752 2004-09-19  Andreas Jaeger  <aj@suse.de>
11753
11754         * tree-ssa-dom.c (restore_nonzero_vars_to_original_value): Fix
11755         prototype.
11756
11757 2004-09-18  Kazu Hirata  <kazu@cs.umass.edu>
11758
11759         * config/cris/cris.h: Preserve the original spelling in a
11760         quote.
11761
11762 2004-09-18 Jeff Law  <law@redhat.com>
11763
11764         * tree-ssa-dom.c (nonzero_vars_stack, vrp_variables_stack): New
11765         global varrays to replace the block local varrays.
11766         (struct dom_walk_block_data): Remove, no longer used.
11767         (get_eq_expr_value): No longer need to pass around pointers to local
11768         varrays.  Callers updated.  Unused markers added to unused parameters.
11769         (record_range, record_equivalences_from_stmt): Likewise.
11770         (record_equivalences_from_incoming_edge): Likewise.
11771         (record_var_is_nonzero): Likewise.  Update now that we have a
11772         single global varray of SSA_NAMEs that need restoring.
11773         (dom_opt_initialize_block_local_data): Kill, no longer used.
11774         (tree_ssa_dominator_optimize): Initialize new global varrays.
11775         Update callbacks in dominator walker structure.
11776         (dom_opt_initialize_block): Add markers to NONZERO_VAR_STACK and
11777         VRP_VARIABLES_STACK.
11778         (restore_nonzero_vars_to_original_value): Update now that we have
11779         a single global varray of SSA_NAMEs that need restoring.
11780         (dom_opt_finalize_block): Similarly for VRP_VARIABLES_STACK.
11781         Remove unused variables.
11782         (optimize_stmt): Remove unused variable.
11783
11784 2004-09-18  Jan Hubicka  <jh@suse.cz>
11785
11786         * tree-cfg.c (thread_jumps):  Fix updating of the profile.
11787
11788         * tree-optimize.c (tree_rest_of_compilation): Kill forgotten
11789         verify_cgraph call.
11790
11791 2004-09-18  Kazu Hirata  <kazu@cs.umass.edu>
11792
11793         * alias.c, crtstuff.c, dbxout.c, domwalk.c, domwalk.h, gcc.c,
11794         gcse.c, global.c, lambda-code.c, loop.c, mips-tdump.c,
11795         optabs.h, predict.c, reg-stack.c, regclass.c, sched-rgn.c,
11796         tree-optimize.c, tree-ssa-dom.c, tree-ssa-forwprop.c,
11797         tree-ssa-operands.c, tree-ssa-phiopt.c,
11798         tree-ssa-threadupdate.c: Fix comment typos.
11799
11800 2004-09-18  Kazu Hirata  <kazu@cs.umass.edu>
11801
11802         * config/darwin-c.c, config/arc/arc.c, config/arc/arc.md,
11803         config/arm/README-interworking, config/arm/arm-cores.def,
11804         config/arm/arm.c, config/arm/arm.h, config/arm/pe.c,
11805         config/arm/vfp.md, config/c4x/c4x.c, config/c4x/c4x.h,
11806         config/cris/cris.c, config/cris/cris.h, config/fr30/fr30.c,
11807         config/fr30/fr30.h, config/fr30/fr30.md, config/frv/frv.c,
11808         config/frv/frv.md, config/i386/winnt.c,
11809         config/ia64/unwind-ia64.c, config/iq2000/iq2000.c,
11810         config/iq2000/iq2000.h, config/m68hc11/m68hc11.c,
11811         config/m68hc11/m68hc11.md, config/m68k/m68k.c,
11812         config/mcore/mcore.c, config/mips/mips.h,
11813         config/mn10300/mn10300.md, config/pa/pa.c,
11814         config/pa/pa64-regs.h, config/pdp11/pdp11.c,
11815         config/rs6000/rs6000.c, config/sh/symbian.c,
11816         config/sparc/sparc.h: Fix comment typos.  Follow spelling
11817         conventions.
11818
11819 2004-09-18  Joseph S. Myers  <jsm@polyomino.org.uk>
11820
11821         PR c/17424
11822         * c-typeck.c (c_expr_sizeof_expr): Check for error_mark_node.
11823
11824 2004-09-18  Diego Novillo  <dnovillo@redhat.com>
11825
11826         * tree-ssa-alias.c (setup_pointers_and_addressables): Don't
11827         remove TREE_ADDRESSABLE from RESULT_DECL.
11828
11829 2004-09-18  Diego Novillo  <dnovillo@redhat.com>
11830
11831         * tree-ssa-alias.c (dump_alias_info): Ignore NULL SSA_NAMEs.
11832
11833 2004-09-18  Jan Hubicka  <jh@suse.cz>
11834
11835         * tree-into-ssa.c (rewrite_ssa_into_ssa):  Expect ssa_name to return
11836         NULL.
11837         * tree-ssa-alias.c (init_alias_info): Likewise.
11838         * tree-ssa.c (verify_flow_sensitive_alias_info): Likewise.
11839         (verify_ssa): Likewise.
11840         * tree-ssanames.c (make_ssa_name): Clear out ssa_names arrays.
11841
11842 2004-09-18  Jan Hubicka  <jh@suse.cz>
11843
11844         * i386.c (legitimize_pic_address): Fix splitting of PLUS with
11845         huge offset.
11846
11847 2004-09-18  Kaz Kojima  <kkojima@gcc.gnu.org>
11848
11849         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove.
11850         * config/sh/sh.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
11851         DW_EH_PE_sdata* for data.
11852         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
11853
11854 2004-09-17  Geoffrey Keating  <geoffk@apple.com>
11855
11856         * tree-inline.c (copy_tree_r): Don't duplicate constants, they're
11857         shared anyway.
11858
11859         PR pch/13361
11860         * c-typeck.c (constructor_asmspec): Delete.
11861         (struct initializer_stack): Delete field 'asmspec'.
11862         (start_init): Delete saving of asmspec.
11863         (finish_init): Don't update constructor_asmspec.
11864         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
11865         * stmt.c (expand_asm): Duplicate strings from tree.
11866         (expand_asm_operands): Likewise.
11867         * tree.c (tree_size): Update computation of size of STRING_CST.
11868         (make_node): Don't make STRING_CST nodes.
11869         (build_string): Allocate string with tree node.
11870         (tree_code_size): Clean up assertions, don't allow requests
11871         for "the size of a STRING_CST".
11872         * tree.def (STRING_CST): Update comment.
11873         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
11874         (tree_string): Place contents of string in tree node.
11875         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
11876         from tree.
11877
11878 2004-09-17  Zack Weinberg  <zack@codesourcery.com>
11879
11880         * Makefile.in (c-parse.o): Depend on $(C_PRAGMA_H).
11881         * objc/Make-lang.in (objc/objc-parse.o): Likewise.
11882
11883 2004-09-17  Jones Desougi  <jones@ingate.com>
11884
11885         * configure.ac: Replace AC_COMPILE_CHECK_SIZEOF with AC_CHECK_SIZEOF.
11886         * configure, config.in: Regenerate.
11887
11888 2004-09-17  Zack Weinberg  <zack@codesourcery.com>
11889
11890         * tree.c, tree.h (tree_class_strings): Make array const.
11891         Reindent per coding convention.  Move asterisk to proper place
11892         per coding convention.
11893
11894 2004-09-18  Andreas Schwab  <schwab@suse.de>
11895
11896         * Makefile.in (gimple-low.o): Depend on $(EXPR_H).
11897         (tree-vectorizer.o): Likewise.
11898         (targhooks.o): Likewise.
11899
11900 2004-09-17  Jeffrey D. Oldham  <oldham@codesourcery.com>
11901             Zack Weinberg  <zack@codesourcery.com>
11902
11903         * alias.c (find_base_decl): Remove unreachable case '3' block.
11904         * expr.c (safe_from_p): Abort if passed a type.
11905         * tree-gimple.c (recalculate_side_effects): Abort if passed
11906         anything other than an expression.
11907         * tree-ssa-pre.c (phi_translate): Return expr immediately if
11908         is_gimple_min_invariant is true for it.  Reorder cases for clarity.
11909         Abort on un-handled tree classes.
11910         (valid_in_set): Likewise.
11911         * tree.c (tree_code_class_strings): New static data.
11912
11913         * tree.h (enum tree_code_class): New.
11914         (tree_code_class_strings): Declare.
11915         (TREE_CODE_CLASS_STRING, EXCEPTIONAL_CLASS_P, CONSTANT_CLASS_P)
11916         (REFERENCE_CLASS_P, COMPARISON_CLASS_P, UNARY_CLASS_P, BINARY_CLASS_P)
11917         (STATEMENT_CLASS_P, EXPRESSION_CLASS_P, IS_TYPE_OR_DECL_P): New macros.
11918         (TYPE_P, DECL_P, IS_NON_TYPE_CODE_CLASS, IS_EXPR_CODE_CLASS)
11919         (checking macros, EXPR_LOCATION, SET_EXPR_LOCATION, EXPR_LOCUS): Update.
11920
11921         * tree.def, c-common.def, objc/objc-tree.def: Use
11922         tree_code_class enumeration constants instead of code letters.
11923
11924         * alias.c, builtins.c, c-common.c, c-format.c, c-lang.c, c-pragma.c
11925         * c-typeck.c, cgraphunit.c, convert.c, dbxout.c, dwarf2out.c
11926         * emit-rtl.c expr.c, fold-const.c, gimplify.c, lambda-code.c
11927         * langhooks.c, langhooks.h, predict.c, print-tree.c, reload1.c, stmt.c
11928         * tree-browser.c, tree-cfg.c, tree-chrec.c, tree-complex.c, tree-dfa.c
11929         * tree-dump.c, tree-eh.c, tree-gimple.c, tree-inline.c, tree-nested.c
11930         * tree-outof-ssa.c, tree-pretty-print.c, tree-sra.c, tree-ssa-ccp.c
11931         * tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-forwprop.c, tree-ssa-live.c
11932         * tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-operands.c
11933         * tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-propagate.c
11934         * tree-ssa.c, tree-ssanames.c, tree-tailcall.c, tree.c, varasm.c
11935         * config/sol2-c.c, config/arm/arm.c, config/i386/winnt.c
11936         * config/pa/pa.c, config/pa/pa.h, config/sh/sh.c, objc/objc-lang.c
11937         Update to match.
11938
11939         * LANGUAGES: Add note about change.
11940
11941 2004-09-17  Diego Novillo  <dnovillo@redhat.com>
11942
11943         PR tree-optimization/17319
11944         * tree-ssa-alias.c (compute_points_to_and_addr_escape): Also
11945         examine pointers on the LHS of an assignment.
11946         (collect_points_to_info_r): Handle RETURN_EXPR.
11947
11948 2004-09-17 Jeff Law  <law@redhat.com>
11949
11950         * tree-ssa-dom.c (const_and_copies_stack): New.
11951         (dom_walk_block_data): Remove const_and_copies field.
11952         (record_const_or_copy): No longer need to pass in varray_type *.
11953         Use CONST_AND_COPIES_STACK rather than passed in block local stack.
11954         Callers updated.
11955         (record_equality): Similarly.
11956         (restore_vars_to_original_value): Similarly.  Revamp to use new
11957         single global stack rather than per-block stacks.
11958         (tree_ssa_dominator_optimize): Initialize the CONST_AND_COPIES_STACK.
11959         (thread_across_edge): Remove now unused parameters.
11960         (dom_opt_initialize_block_local_data): No longer test the block
11961         local CONST_AND_COPIES.
11962         (dom_opt_initialize_block): Push a marker on CONST_AND_COPIES_STACK.
11963
11964 2004-09-17  Jan Hubicka  <jh@suse.cz>
11965
11966         PR tree-optimization/17509
11967         * tree-optimize.c (update_inlined_to_pointers): New function.
11968         (tree_rest_of_compilation): Use it.
11969
11970 2004-09-17  Devang Patel  <dpatel@apple.com>
11971
11972         * dbxout.c (get_lang_number): New.
11973         (dbxout_init): Include lang number in N_SO  stab.
11974         * dbxout.h (N_SO_AS, N_SO_C, N_SO_ANSI_C, N_SO_CC, N_SO_FORTRAN,
11975         N_SO_PASCAL, N_SO_FORTRAN90, N_SO_OBJC, N_SO_OBJCPLUS): New #define.
11976
11977 2004-09-17  Diego Novillo  <dnovillo@redhat.com>
11978
11979         PR tree-optimization/17273
11980         * tree-ssa.c (replace_immediate_uses): Call fold_stmt if the
11981         replacement is a constant.
11982
11983 2004-09-17  Joseph S. Myers  <jsm@polyomino.org.uk>
11984
11985         * c-tree.h (enum c_typespec_keyword): New.
11986         (struct c_declspecs): Adjust description of "type".  Remove
11987         specbits, explicit_int_p and explicit_char_p.  Rename
11988         typedef_signed_p to explicit_signed_p.  Add default_int_p, long_p,
11989         short_p, signed_p, unsigned_p and complex_p.
11990         (finish_declspecs): New.
11991         * c-parse.in (datadef, datadecl, setspecs, decl, component_decl,
11992         typename): Call finish_declspecs.
11993         * c-decl.c (finish_declspecs): New.
11994         (declspecs_add_type): Check for combinations which cannot occur in
11995         valid specifier lists.  Update comments.
11996         (shadow_tag_warned): Remove checks done in finish_declspecs.
11997         Don't report useless type name if type defaulted to int.
11998         (grokdeclarator): Remove checks and actions done in
11999         finish_declspecs.  Don't allow for type being NULL.  Update for
12000         datastructures changes.  Initialize decl_attr.
12001         (build_null_declspecs, quals_from_declspecs): Update for
12002         datastructures changes.
12003
12004 2004-09-17  Sylvain Pion  <Sylvain.Pion@sophia.inria.fr>
12005
12006         * doc/extend.texi: Fix duplicated word.
12007
12008 2004-09-17  Toon Moene  <toon@moene.indiv.nluug.nl>
12009
12010         * doc/invoke.texi: Remove stray explanation on
12011         -freduce-all-givs and -fmove-all-movables.
12012
12013 2004-09-17  James Morrison  <phython@gcc.gnu.org>
12014
12015         * doc/cfg.texi: Use @smallexample.
12016         * doc/md.texi: Likewise.
12017         * doc/tree-ssa.texi: Likewise.
12018         * doc/extend.texi: Likewise.  Use @r{} in comments.
12019         * doc/trouble.texi: Use @r{} in comments.
12020
12021 2004-09-17  Hans-Peter Nilsson  <hp@bitrange.com>
12022
12023         * configure.ac (gcc_cv_gld_version): Handle whitespace before
12024         "VERSION=".
12025         * aclocal.m4 (_gcc_COMPUTE_GAS_VERSION): Ditto.
12026         * configure: Regenerate.
12027
12028 2004-09-17  J"orn Rennecke <joern.rennecke@superh.com>
12029
12030         * sh.c (sh_gimplify_va_arg_expr): Don't call pass_by_reference.
12031         (sh_pass_by_reference): Work around std_gimplify_va_arg_expr bug.
12032         * t-sh (MULTILIB_CPUS): s/ML_m/ML_sh/g .
12033         * t-sh64 (MULTILIB_CPU_DIRS): Likewise.  Match dashes and trailing
12034         slashes in substitutions.
12035         (MULTILIB_DIRNAMES): Remove defunct removal of /media32.
12036
12037 2004-09-17  Kazu Hirata  <kazu@cs.umass.edu>
12038
12039         * basic-block.h, c-decl.c, c-parse.in, cgraphunit.c, ddg.c,
12040         gimplify.c, lambda-code.c, optabs.c, predict.c,
12041         tree-scalar-evolution.c, tree-sra.c, tree-ssa-loop-ch.c,
12042         tree-ssa.c, vec.h: Fix comment typos.  Follow spelling
12043         conventions.
12044
12045 2004-09-17  Kazu Hirata  <kazu@cs.umass.edu>
12046
12047         * doc/compat.texi, doc/cpp.texi, doc/cppopts.texi,
12048         doc/extend.texi, doc/install.texi, doc/invoke.texi,
12049         doc/sourcebuild.texi, doc/tm.texi, doc/tree-ssa.texi,
12050         doc/trouble.texi: Use @option around options.
12051
12052 2004-09-17  Richard Sandiford  <rsandifo@redhat.com>
12053
12054         * Makefile.in (gen-protos.o): Depend on errors.h.
12055
12056 2004-09-17  Steven Bosscher  <stevenb@suse.de>
12057
12058         PR tree-optimization/17513
12059         * cfgexpand.c (construct_init_block): Clear EDGE_EXECUTABLE
12060         for successors of the entry block.
12061
12062 2004-09-17  Uros Bizjak  <uros@kss-loka.si>
12063
12064         PR rtl-optimization/15187
12065         * ifcvt.c (noce_try_cmove_arith): Exit early if total
12066         insn_rtx_cost of both branches > BRANCH_COST
12067
12068 2004-09-16  Diego Novillo  <dnovillo@redhat.com>
12069
12070         PR tree-optimization/17528
12071         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Do not
12072         erase the may-alias set for a tag when merging it with
12073         another.
12074
12075 2004-09-16  Kaz Kojima  <kkojima@gcc.gnu.org>
12076
12077         * config/sh/sh.md (call): Extend 32-bit addresses to DImode
12078         for 32-bit TARGET_SHMEDIA.
12079         (call_value): Likewise.
12080
12081 2004-09-16  Diego Novillo  <dnovillo@redhat.com>
12082
12083         * tree-ssa-operands.c (add_call_clobber_ops): Make read-only
12084         test apply only to TREE_STATIC and DECL_EXTERNAL.
12085
12086 2004-09-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12087
12088         * Makefile.in (tree-cfg.o): Add CFGLAYOUT_H dependency.
12089         * basic-block.h (get_dominated_by_region): Declare.
12090         * dominance.c (get_dominated_by_region): New function.
12091         * tree-cfg.c: Include cfglayout.h.
12092         (tree_duplicate_bb): Duplicate also phi nodes.
12093         (struct ssa_name_map_entry): New type.
12094         (add_phi_args_after_copy_bb, add_phi_args_after_copy,
12095         ssa_name_map_entry_hash, ssa_name_map_entry_eq,
12096         allocate_ssa_names, rewrite_to_new_ssa_names_def,
12097         rewrite_to_new_ssa_names_use, rewrite_to_new_ssa_names_bb,
12098         rewrite_to_new_ssa_names, tree_duplicate_sese_region): New functions.
12099         * tree-flow.h (tree_duplicate_sese_region, add_phi_args_after_copy_bb,
12100         add_phi_args_after_copy, rewrite_to_new_ssa_names_bb,
12101         rewrite_to_new_ssa_names, allocate_ssa_names,
12102         rewrite_into_loop_closed_ssa, verify_loop_closed_ssa): Declare.
12103         * tree-ssa-loop-ch.c (duplicate_blocks): Removed.
12104         (copy_loop_headers): Use tree_duplicate_sese_region.
12105
12106 2004-09-16  Frank Ch. Eigler  <fche@redhat.com>
12107
12108         * profile.c (branch_prob): Restore support for USE_MAPPED_LOCATION.
12109
12110 2004-09-16 Jeff Law  <law@redhat.com>
12111
12112         * tree-into-ssa.c (block_defs_stack): New toplevel varray.
12113         (rewrite_block_data): Remove, no longer used.
12114         (rewrite_initialize_block_local_data): Remove, no longer used.
12115         (rewrite_initialize_block): Mark parameters as unused as needed.
12116         Change references to the block local block_defs to be block_defs_stack.
12117         Push a marker onto the block_defs_stack.
12118         (ssa_rewrite_initialize_block): Similarly.
12119         (rewrite_stmt, ssa_rewrite_stmt): Similarly.
12120         (ssa_register_new_def): No longer needs varray argument.  Use
12121         block_defs_stack instead.  No longer handle possibly null block_defs
12122         varray.  Reverse order of items we push on the stack to make it
12123         easier to identify our marker.
12124         (register_new_def): No longer handle possibly null block_defs
12125         varray.
12126         (rewrite_finalize_block): Revamp to look for markers in the global
12127         block_defs_stack varray rather than wiping a block local varray.
12128         Mark arguments as unused as needed.
12129         (ssa_rewrite_finalize_block): Similarly.
12130         (rewrite_into_ssa): Update initialization of dom walker structure
12131         to reflect that we don't need block local data anymore.  Initialize
12132         the block_defs_stack varray.
12133         (rewrite_ssa_into_ssa): Similarly.
12134         * tree-ssa-dom.c (block_defs_stack): New toplevel varray.
12135         (struct dom_walk_data): Kill block_defs field.
12136         (tree_ssa_dominator_optimize): Initialize block_defs_stack.
12137         (thread_across_edge): Use the global block_defs_stack instead of
12138         the old block_defs varray.
12139         (dom_opt_initialize_block_local_data): Update now that we don't have
12140         block_defs field to check anymore.
12141         (dom_opt_initialize_block): Push a marker onto block_defs_stack.
12142         (restore_currdefs_to_original_value): Use the new block_defs_stack
12143         instead of a block local varray.
12144         (dom_opt_finalize_block): Similarly.
12145         (record_equivalencs_from_phis): Similarly.
12146         (optimize_stmt, register_definitions_for_stmt): Similarly.
12147
12148 2004-09-16  Andrew MacLeod  <amacleod@redhat.com>
12149
12150         PR tree-optimization/17517
12151         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
12152         coalesce same-root variables without checking for abnormal PHI usage.
12153
12154 2004-09-16  Daniel Berlin  <dberlin@dberlin.org>
12155
12156         * cfgloop.h (duplicate_loop):  Add prototype.
12157         * cfgloopmanip.c (duplicate_loop): Make non-static.
12158         * lambda-code.c (perfect_nestify): Factor out test whether
12159         we can handle this loop into separate function.
12160         Call it.
12161         (can_convert_to_perfect_nest): New function.
12162         (replace_uses_of_x_with_y): Add modify_stmt call.
12163         * tree-loop-linear.c (linear_transform_loops): Call
12164         rewrite_into_loop_closed_ssa and free_df.
12165
12166 2004-09-16  Daniel Berlin  <dberlin@dberlin.org>
12167
12168         * lambda-code.c (invariant_in_loop): is_gimple_min_invariant is
12169         loop invariant as well.
12170         (perfect_nestify): new function.
12171         (gcc_loop_to_lambda_loop): New parameters to track lower bounds,
12172         upper bounds, and steps.
12173         Set outerinductionvar properly.
12174         (gcc_loopnest_to_lambda_loopnest): Add loops and need_perfect
12175         parameters.
12176         Return NULL if we need a perfect loop and can't make one.
12177         (lambda_loopnest_to_gcc_loopnest): Correct algorithm.
12178         (not_interesting_stmt): New function.
12179         (phi_loop_edge_uses_def): Ditto.
12180         (stmt_uses_phi_result): Ditto.
12181         (stmt_is_bumper_for_loop): Ditto.
12182         (perfect_nest_p): Ditto.
12183         (nestify_update_pending_stmts): Ditto.
12184         (replace_uses_of_x_with_y): Ditto.
12185         (stmt_uses_op): Ditto.
12186         (perfect_nestify): Ditto.
12187         * lambda-mat.c (lambda_matrix_id_p): New function.
12188         * lambda-trans.c (lambda_trans_matrix_id_p): Ditto.
12189         * lambda.h: Update prototypes.
12190         * tree-loop-linear (linear_transform_loop): Use new
12191         perfect_nest_p. Detect and ignore identity transform.
12192         * tree-ssa-loop.c (pass_linear_transform): Use TODO_write_loop_closed.
12193
12194 2004-09-16  Sebastian Pop  <pop@cri.ensmp.fr>
12195
12196         * tree-loop-linear.c (gather_interchange_stats): Add more comments.
12197         Gather also strides of accessed data.  Pass in the data references
12198         array.
12199         (try_interchange_loops): Add a new heuristic for handling the temporal
12200         locality.  Pass in the data references array.
12201         (linear_transform_loops): Pass the data references array to
12202         try_interchange_loops.
12203
12204 2004-09-16  Kazu Hirata  <kazu@cs.umass.edu>
12205
12206         * doc/invoke.texi: Fix typos.  Follow spelling conventions.
12207
12208 2004-09-16  Nathan Sidwell  <nathan@codesourcery.com>
12209
12210         * doc/c-tree.texi (Classes): Remove index entries for
12211         TREE_VIA_{PUBLIC,PROTECTED,PRIVATE}.
12212
12213 2004-09-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12214
12215         * fold-const.c (fold): Fold difference of addresses.
12216         (ptr_difference_const): Moved from tree-ssa-loop-ivopts, based on
12217         get_inner_reference.
12218         * tree-ssa-loop-ivopts.c (peel_address): Removed.
12219         (ptr_difference_const): Moved to fold-const.c.
12220         (split_address_cost): Use get_inner_reference instead of peel_address.
12221         (ptr_difference_cost): Change type of diff to HOST_WIDE_INT.
12222         * tree.h (ptr_difference_const): Export.
12223
12224         * tree-ssa-loop-ivopts.c (dump_iv, dump_use, dump_cand): Add induction
12225         variable type to the dump.  Fix indentation.
12226         (idx_find_step): Handle nonconstant array_ref_element_size and
12227         array_ref_low_bound.
12228         (idx_record_use): Handle array_ref_element_size and
12229         array_ref_low_bound.
12230         (find_interesting_uses_stmt): Handle memory = nontrivial_expression
12231         statements correctly.
12232         (get_computation_at, iv_value): Do not unshare expressions here.
12233         (rewrite_use_outer): Unshare the expression before it is emitted
12234         to code.
12235         * tree-ssa-loop-niter.c (unsigned_type_for, signed_type_for):
12236         Moved to tree.c.
12237         * tree.c (unsigned_type_for, signed_type_for): Moved from
12238         tree-ssa-loop-niter.c.  Use langhooks.
12239         * tree.h (signed_type_for): Export.
12240
12241 2004-09-16  David Edelsohn  <edelsohn@gnu.org>
12242
12243         * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section): Update
12244         prototype.
12245
12246 2004-09-15  Andrew Pinski  <pinskia@physics.uc.edu>
12247
12248         PR target/11572
12249         * c-incpath.h (target_c_incpath_s): Add extra_pre_includes.
12250         Add two parameters to extra_includes.
12251         (C_INCPATH_INIT): Remove.
12252         * c-incpath.c (register_include_chains): Call extra_pre_includes
12253         before adding the standard include directory.
12254         Update call to extra_includes.
12255         (!defined TARGET_EXTRA_INCLUDES): Update
12256         hook_void_charptr_charptr_int and add !define
12257         TARGET_EXTRA_PRE_INCLUDES.
12258         (!define TARGET_EXTRA_INCLUDES): Define as
12259         hook_void_charptr_charptr_int.
12260         (!define TARGET_EXTRA_PRE_INCLUDES): Likewise.
12261         (target_c_incpath): Always declare.
12262         * fixinclude.c (defined TARGET_EXTRA_INCLUDES): Declare a
12263         empty function.
12264         (define TARGET_EXTRA_PRE_INCLUDES): Likewise.
12265         * config/darwin.h: (darwin_register_frameworks): Update for
12266         the two new parameters.
12267         (darwin_register_objc_includes): Add prototype.
12268         (TARGET_EXTRA_PRE_INCLUDES): Define.
12269         * config/darwin-c.c (darwin_register_objc_includes): New function.
12270         (darwin_register_frameworks): Update for the two new parameters.
12271         (target_c_incpath): Remove.
12272         * config/t-darwin (darwin-c.o): Add $(PREPROCESSOR_DEFINES) to
12273         the compile line.
12274         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Document the two new
12275         parameters.
12276         (TARGET_EXTRA_PRE_INCLUDES): Document.
12277
12278         * gcc.c (spec_function): Add replace-outfile.
12279         (replace_outfile_spec_function): New function.
12280         * config/darwin.h (LINK_SPEC): Add replace
12281         -lobjc with -lobjc-gnu if -fgnu-runtime is
12282         supplied.
12283         * invoke.texi (replace-outfile): Document.
12284
12285 2004-09-13  Jan Hubicka  <jh@suse.cz>
12286
12287         * predict.c (expr_expected_value, strip_builtin_expect): New function.
12288         (tree_predict_by_opcode): Use it.
12289         (tree_estimate_probability): Add, for now disabled,
12290         strip_builtin_expect call.
12291
12292 2004-09-15  James E Wilson  <wilson@specifixinc.com>
12293
12294         PR target/17455
12295         * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Return false
12296         if current_function_decl is a sibcall.
12297
12298 2004-09-15  Mark Mitchell  <mark@codesourcery.com>
12299
12300         * varasm.c (default_function_rdodata_section): Make sure to pass
12301         along a decl for a link-once section.
12302
12303 2004-09-15  Richard Henderson  <rth@redhat.com>
12304
12305         * tree-ssa-operands.c (add_call_clobber_ops): Fix unused variable
12306         warning with code disable.  Fix formatting.
12307
12308 2004-09-15  Steven Bosscher  <stevenb@suse.de>
12309
12310         * Makefile.in (tree-ssa-dom.o): Depend on tree-ssa-propagate.h.
12311         * tree-ssa-dom.c (cprop_into_stmt): Recompute TREE_INVARIANT
12312         after propagating into an ADDR_EXPR.
12313
12314 2004-09-15  Andrew Pinski  <apinski@apple.com>
12315
12316         PR rtl-opt/17427
12317         * gcse.c (process_insert_insn): insn_invalid_p has side effects.
12318         Move it out of gcc_assert.
12319
12320 2004-09-15  Joseph S. Myers  <jsm@polyomino.org.uk>
12321
12322         * attribs.c, builtins.c, c-format.c, c-pch.c, coverage.c,
12323         except.c, fold-const.c, function.c, langhooks.c, params.c,
12324         reload.c, reload1.c, stmt.c, stor-layout.c, toplev.c, tree-cfg.c,
12325         tree-dump.c, tree-mudflap.c, tree.c, varasm.c: Use %<, %> and %q
12326         for quoting in diagnostics going through pretty-print.c.  Use ''
12327         for quoting in other diagnostic text.
12328         * langhooks.c: Include intl.h.  Mark text locating diagnostics for
12329         translation.
12330         * Makefile.in (langhooks.o): Update dependencies.
12331         * pretty-print.h (pp_printf): Mark as accepting GCC diagnostic
12332         formats.
12333
12334 2004-09-15  Mark Mitchell  <mark@codesourcery.com>
12335
12336         * configure.ac: Check for COMDAT support.  Robustify check for
12337         SHF_MERGE support.
12338         * configure: Regenerated.
12339         * config.in: Likewise.
12340         * langhooks-def.h (lhd_comdat_group): New function.
12341         (LANG_HOOKS_COMDAT_GROUP): New macro.
12342         (LANG_HOOKS_DECLS): Use it.
12343         * langhooks.c (lhd_comdat_group): Define.
12344         * langhooks.h (lang_hooks_for_decls): Add comdat_group.
12345         * output.h (named_section_flags): Make it a macro.
12346         (named_section_real): New function.
12347         (default_no_named_section): Add decl parameter.
12348         (default_elf_asm_named_section): Likewise.
12349         (default_coff_asm_named_section): Likewise.
12350         (default_pe_asm_named_section): Likewise.
12351         * target.h (gcc_target): Adjust type of named_section.
12352         * varasm.c (named_section_flags): Rename to named_section_real.
12353         Add decl parameter.
12354         (default_no_named_section): Add decl parameter.
12355         (default_elf_asm_named_section): Use COMDAT, if available.  Deal
12356         with the case that ASM_COMMENT_START is "@".
12357         (default_coff_asm_named_section): Add decl parameter.
12358         (default_pe_asm_named_section): Likewise.
12359         * config/alpha/alpha.c (vms_asm_named_section): Add decl
12360         parameter.
12361         (unicosmk_asm_named_section): Likewise.
12362         * config/arm/arm.c (arm_elf_asm_named_section): Remove.
12363         * config/arm/elf.h (TARGET_ASM_NAMED_SECTION): Likewise.
12364         * config/c4x/c4x.c (c4x_asm_named_section): Add decl parameter.
12365         * config/cris/cris-protos.h (cris_target_asm_named_section):
12366         Likewise.
12367         * config/cris/cris.c (cris_target_asm_named_section):
12368         Likewise.
12369         * config/darwin/darwin-protos.h (darwin_asm_named_section):
12370         Likewise.
12371         * config/darwin/darwin.c (darwin_asm_named_section): Likewise.
12372         * config/h8300/h8300.c (h8300_asm_named_section): Likewise.
12373         * config/i386/i386-protos.h (i386_pe_asm_named_section):
12374         Likewise.
12375         * config/i386/winnt.c (i386_pe_asm_named_section): Likewise.
12376         * config/m68k/m68k.c (m68k_coff_asm_named_section): Likewise.
12377         * config/mcore/mcore.c (mcore_asm_named_section): Likewise.
12378         * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section):
12379         Likewise.
12380         * config/sparc/sparc.c (sparce_elf_asm_named_section): Likewise.
12381         * cp/cp-lang.h (LANG_HOOKS_COMDAT_GROUP): Define.
12382         * cp/cp-tree.h (cxx_comdat_group): Declare.
12383         * cp/decl.c (cxx_comdat_group): New function.
12384
12385 2004-09-15  Jan Hubicka  <jh@suse.cz>
12386
12387         * tree-ssa.c (verify_flow_sensitive_alias_info): Do not walk dead nodes.
12388         * tree-tailcall.c (eliminate_tail_call): Release SSA name.
12389
12390         * tree-cfg.c (remove_bb): Release SSA defs.
12391
12392 2004-09-15  Kazu Hirata  <kazu@cs.umass.edu>
12393
12394         * doc/tm.texi: Follow spelling conventions.
12395
12396 2004-09-15  Kazu Hirata  <kazu@cs.umass.edu>
12397
12398         * tree-ssa-dom.c: Fix comment typos.
12399
12400 2004-09-15  Alan Modra  <amodra@bigpond.net.au>
12401
12402         * config/rs6000/linux-unwind.h (struct gcc_pt_regs): Extend to
12403         include ccr.
12404         (ppc_fallback_frame_state): Save location of CR.
12405
12406 2004-09-15  Jakub Jelinek  <jakub@redhat.com>
12407
12408         * expr.c (string_constant): Handle also read-only variables
12409         initialized to string literals.
12410
12411         * builtins.c (expand_builtin_memmove): Optimize memmove (x, y, 1)
12412         into memcpy (x, y, 1) if memcpy can be expanded inline.
12413
12414 2004-09-15  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12415
12416         PR tree-optimization/17468
12417         * tree-ssa.c (verify_use, verify_phi_args, verify_ssa):  Verify that
12418         definition inside a block precede uses.
12419         * tree-tailcall.c (adjust_return_value): Emit statements in the
12420         correct order.
12421
12422 2004-09-15  Richard Sandiford  <rsandifo@redhat.com>
12423
12424         * config/mips/mips.h (POINTERS_EXTEND_UNSIGNED): Delete.
12425
12426 2004-09-15  Eric Botcazou  <ebotcazou@libertysurf.fr>
12427
12428         * doc/install.texi (sparc-sun-solaris2*): Properly format warning.
12429
12430 2004-09-14 Jeff Law  <law@redhat.com>
12431
12432         * tree-ssa-dom.c (avail_exprs_stack): New global varray.
12433         (struct dom_walk_block_data): Remove avail_exprs member.
12434         (tree_ssa_dominator_optimize): Initialize avail_exprs_stack.
12435         (lookup_avail_expr): No longer need to pass in address of
12436         the block local available exprs stack.  All callers changed.
12437         (simplify_cond_and_lookup_avail_expr): Similarly.
12438         (simplify_switch_and_lookup_avail_expr): Similarly.
12439         (get_eq_expr_value, record_cond): Likewise.
12440         (record_dominating_conditions): Likewise.
12441         (update_rhs_and_lookup_avail_expr): Likewise.
12442         (record_equivalences_from_stmt): Likewise.
12443         (dom_opt_initialize_block_local_data): No longer test state of
12444         block local avail_exprs.
12445         (dom_opt_initialize_block): Mark unwind point in the global
12446         avail_expr stack.
12447         (remove_expressions_from_table): Update to unwind to the
12448         most recent unwind marker in the global avail_expr stack.
12449         All callers changed.
12450         (dom_opt_finalize_block): Mark unwind point in the global
12451         avail_expr stack as needed.
12452         (record_cond): Push elements into the global avail_exprs stack.
12453
12454         * tree-dfa.c (free_df_for_stmt): No longer static.
12455         (free_df): Update comments.
12456         * tree-flow.h (free_df_for_stmt): Prototype.
12457         * tree-ssa-dse.c (dse_optimize_stmt): Call free_df_for_stmt.  Also
12458         call release_defs.
12459
12460 2004-09-14  Diego Novillo  <dnovillo@redhat.com>
12461
12462         PR tree-optimization/17252
12463         * tree-ssa-alias.c (may_alias_p): Don't assume that a
12464         pointer may not point to itself when using relaxed
12465         aliasing rules.
12466
12467 2004-09-14  Richard Henderson  <rth@redhat.com>
12468
12469         PR middle-end/17397
12470         * gimplify.c (gimplify_addr_expr): Don't inadvertently change types
12471         while folding <ADDR_EXPR <INDIRECT_REF X>>.
12472
12473 2004-09-14  Andrew Pinski  <apinski@apple.com>
12474
12475         * tree-ssa-copy.c (may_propagate_copy): Don't check the aliasing
12476         sets of the pointers but the aliasing sets of what they point to.
12477
12478 2004-09-14  Roger Sayle  <roger@eyesopen.com>
12479
12480         PR rtl-optimization/9771
12481         * regclass.c (CALL_REALLY_USED_REGNO_P): New macro to eliminate
12482         conditional compilation in init_reg_sets_1.
12483         (init_reg_sets_1): Let global_regs[i] take priority over the frame
12484         (but not stack) pointer exceptions to regs_invalidated_by_call.
12485         (globalize_reg): Globalizing a fixed register may need to update
12486         regs_invalidated_by_call.
12487
12488 2004-09-14  Diego Novillo  <dnovillo@redhat.com>
12489
12490         PR tree-optimization/15262
12491         * tree-dfa.c (dump_variable): Also print the type of the
12492         variable.
12493         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If two
12494         memory tags are of conflicting alias sets but have no aliased
12495         symbols in common, add one tag to the alias set of the other.
12496         (setup_pointers_and_addressables): Remove hack to deal with
12497         programs with no aliased symbols.
12498         (may_alias_p): Don't special case aggregate types.
12499
12500 2004-09-14  Joseph S. Myers  <jsm@polyomino.org.uk>
12501
12502         PR c/15498
12503         * doc/invoke.texi (Environment Variables): Correct example locale.
12504
12505 2004-09-14  Jan Hubicka  <jh@suse.cz>
12506
12507         * cfg.c (expunge_block): Revert previous change adding ggc_free call.
12508
12509 2004-09-14  Mark Mitchell  <mark@codesourcery.com>
12510
12511         * config.gcc: Do not build a shared libgcc for arm-none-eabi.
12512
12513 2004-09-14  Joseph S. Myers  <jsm@polyomino.org.uk>
12514
12515         * c-tree.h (struct c_declspecs): Add const_p, volatile_p and
12516         restrict_p.
12517         (struct c_declarator): Change u.array.quals and pointer_quals to
12518         int.  Add u.array.attrs.
12519         (quals_from_declspecs): New.
12520         * c-decl.c (quals_from_declspecs): New.
12521         (shadow_tag_warned): Give more specific message for useless type
12522         qualifiers.
12523         (build_array_declarator, set_array_declarator_inner,
12524         grokdeclarator, make_pointer_declarator, build_null_declspecs,
12525         declspecs_add_qual): Update for changed structures.
12526
12527 2004-09-14  Jeff Law  <law@redhat.com>
12528
12529         * tree-ssa-dom.c (stmts_to_rescan): Move from a block-local
12530         to a global varray.
12531         (tree_ssa_dominator_optimize): Allocate stmts_to_rescan.
12532         (dom_opt_initialize_block_local_data): No longer test state
12533         of stmts_to_rescan.
12534         (dom_opt_finalize_block): Update due to change in scope of
12535         stmts_to_rescan.
12536         (optimize_stmt): Similarly.
12537
12538 2004-09-14  Kazu Hirata  <kazu@cs.umass.edu>
12539
12540         * cgraph.h, cgraphunit.c, fold-const.c, lambda-mat.c,
12541         lambda.h, profile.c, tree-optimize.c, tree-sra.c, vec.h: Fix
12542         comment typos.  Follow spelling conventions.
12543
12544 2004-09-14  Kazu Hirata  <kazu@cs.umass.edu>
12545
12546         * config/darwin-c.c, config/alpha/alpha.c, config/i386/i386.c,
12547         config/i386/predicates.md, config/sparc/sparc.c: Follow
12548         spelling conventions.
12549
12550 2004-09-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12551             Steven Bosscher  <stevenb@suse.de>
12552
12553         * Makefile.in (loop-unroll.o): Add HASHTAB_H and RECOG_H dependency.
12554         * basic-block.h (struct reorder_block_def): Add copy_number field.
12555         * cfgloop.h (biv_p): Declare.
12556         * cfgloopmanip.c (duplicate_loop_to_header_edge): Set copy_number.
12557         * common.opt (fsplit-ivs-in-unroller): New flag.
12558         * loop-iv.c (biv_p): New function.
12559         * loop-unroll.c: Include hashtab.h and recog.h.
12560         (struct iv_to_split, struct split_ivs_info): New types.
12561         (analyze_ivs_to_split, si_info_start_duplication, split_ivs_in_copies,
12562         free_si_info, si_info_hash, si_info_eq, analyze_iv_to_split_insn,
12563         determine_split_iv_delta, get_ivts_expr, allocate_basic_variable,
12564         insert_base_initialization, split_iv): New functions.
12565         (peel_loop_completely, unroll_loop_constant_iterations,
12566         unroll_loop_runtime_iterations, peel_loop_simple, unroll_loop_stupid):
12567         Use them.
12568         * doc/invoke.texi (-fsplit-ivs-in-unroller): Document.
12569
12570 2004-09-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12571
12572         * tree-cfg.c (thread_jumps): Update dominators correctly in
12573         case destination of threaded edge dominates its source.
12574
12575 2004-09-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12576
12577         * unroll.c: Removed.
12578         * loop.h: Removed.
12579         * Makefile.in (LOOP_H, unroll.o): Removed.
12580         (toplev.o, passes.o, stmt.o, integrate.o, loop.o): Remove LOOP_H
12581         dependency.
12582         * alias.c (init_alias_analysis): Remove flag_old_unroll_loops
12583         reference.
12584         * cfgloop.h (LOOP_PREFETCH, loop_optimize): Moved from loop.h.
12585         * common.opt (fold-unroll-loops, fold-unroll-all-loops): Removed.
12586         * loop.c: Do not include loop.h.
12587         (LOOP_INFO, LOOP_MOVABLES, LOOP_REGS, LOOP_IVS, INSN_LUID,
12588         REGNO_FIRST_LUID, REGNO_LAST_LUID, enum g_types, struct induction,
12589         struct iv_class, enum iv_mode, struct iv, REG_IV_TYPE, REG_IV_INFO,
12590         REG_IV_CLASS, struct loop_ivs, struct loop_mem_info, struct loop_reg,
12591         struct loop_regs, struct loop_movables, struct loop_info): Moved
12592         from loop.h.
12593         (back_branch_in_range_p, fold_rtx_mult_add, biv_total_increment,
12594         reg_dead_after_loop, final_biv_value, loop_find_equiv_value,
12595         find_common_reg_term, loop_iterations, final_giv_value): Moved
12596         from unroll.c.
12597         (uid_luid, uid_loop, max_uid_for_loop, max_reg_before_loop,
12598         loop_dump_stream, for_each_insn_in_loop, express_from,
12599         extend_value_for_giv, loop_iv_add_mult_emit_before,
12600         loop_iv_add_mult_sink, loop_iv_add_mult_hoist,
12601         loop_insn_first_p, get_condition_for_loop,
12602         loop_insn_emit_before, loop_insn_hoist,
12603         loop_insn_sink): Made static.
12604         (loop_invariant_p): Made static.  Removed flag_old_unroll_loops
12605         reference.
12606         (strength_reduce): Do not call unroller.
12607         (record_giv): Do not initialize unrolled field.
12608         (prescan_loop): Do not set loop_info->preconditioned.
12609         * passes.c: Do not include loop.h.
12610         (rest_of_handle_loop_optimize): Do not call unroller.
12611         * predict.c: Do not include loop.h.
12612         * rtl.h (NOTE_PRECONDITIONED): Removed.
12613         * stmt.c: Do not include loop.h.
12614         * toplev.c: Do not include loop.h.
12615         (process_options): Do not handle flag_old_unroll_loops.
12616
12617         * doc/invoke.texi (fold-unroll-loops, fold-unroll-all-loops):
12618         Documentation removed.
12619         * doc/passes.texi (unroll.c, loop.h): Documentation removed.
12620
12621 2004-09-14  Nathan Sidwell  <nathan@codesourcery.com>
12622
12623         * Makefile.in (STAGE1_CHECKING): New variable.
12624         (stage1_build): Use it.
12625         * tree-ssa.c (verify_ssa): Preserve state of dominance
12626         information.
12627
12628 2004-09-14  Uros Bizjak  <uros@kss-loka.si>
12629
12630         * config/i386/i386.c (output_fp_compare): Add generation
12631         of ftst instruction.
12632         * config/i386/i386.md (*cmpfp_0_sf, cmpfp_0_df, cmpfp_0_xf):
12633         Use output_fp_compare () function.
12634         (cmpfp_i, *cmpfp_i_sse, *cmpfp_i_sse_only): Fix insn constraint.
12635         (fix_truncdi_memory): Remove operands[5] copy.
12636
12637 2004-09-14  Kazu Hirata  <kazu@cs.umass.edu>
12638
12639         * config/m32r/m32r.md, config/m68k/m68kelf.h,
12640         config/mcore/mcore.md, config/rs6000/linux64.h,
12641         config/rs6000/rs6000.c, config/sparc/sparc.c: Fix comment
12642         typos.
12643
12644 2004-09-13  James E Wilson  <wilson@specifixinc.com>
12645
12646         * Makefile.in (GEN_PROTOS_OBJS): Add $(BUILD_ERRORS).
12647         * gen-protos.c: Include errors.h.
12648         (progname): Delete.
12649
12650 2004-09-14  Jan Hubicka  <jh@suse.cz>
12651
12652         * Makefile.in (predict.o): Depend on tree-scalar-evolution.h
12653         * predict.c: Include tree-scalar-evolution.h and cfgloop.h
12654         (predict_loops): Use number_of_iterations_exit to predict
12655         number of iterations on trees.
12656
12657 2004-09-13  Dale Johannesen  <dalej@apple.com>
12658
12659         PR 17408
12660         PR 17409
12661         * c-decl.c (start_decl): Repair TREE_STATIC for initialized
12662         objects declared extern.
12663
12664 2004-09-14  Paul Brook  <paul@codesourcery.com>
12665
12666         * config/arm/arm.c (arm_expand_prologue): Make args_to_push a
12667         HOST_WIDE_INT.
12668
12669 2004-09-13  Daniel Jacobowitz  <dan@debian.org>
12670
12671         * fold-const.c (fold_checksum_tree): Ignore TYPE_CACHED_VALUES.
12672         Only use TYPE_BINFO for aggregates.
12673
12674 2004-09-13  Daniel Jacobowitz  <dan@debian.org>
12675
12676         * expmed.c (synth_mult): Initialize latency.  Check cost before
12677         checking ops count.
12678
12679 2004-09-13  Kenneth Zadeck  <Kenneth.Zadeck@NaturalBridge.com>
12680
12681         * tree-ssa-operands.c (get_call_expr_operands): Added parm to
12682         add_call_clobber_ops and add_call_read_ops.
12683         (add_call_clobber_ops, add_call_read_ops): Added code to reduce
12684         the number of vdefs and vuses inserted based on analysis of global
12685         variables across calls.  * tree-dfa.c (find_referenced_vars):
12686         Needed to reset static var maps before each function is compiled.
12687         * cgraphunit.c:
12688         (static_vars_to_consider_by_tree,static_vars_to_consider_by_uid,
12689         static_vars_info,functions_to_static_vars_info,module_statics_escape,
12690         all_module_statics,searchc_env,dfs_info): New fields to support
12691         analysis of static global variables.
12692         (print_order, convert_UIDs_in_bitmap, new_static_vars_info,
12693         cgraph_reset_static_var_maps, get_global_static_vars_info,
12694         get_global_statics_not_read, get_global_statics_not_written,
12695         searchc, cgraph_reduced_inorder, has_proper_scope_for_analysis,
12696         check_rhs_var, check_lhs_var, get_asm_expr_operands,
12697         process_call_for_static_vars, scan_for_static_refs,
12698         cgraph_characterize_statics_local, cgraph_get_static_name_by_uid,
12699         clear_static_vars_maps, cgraph_propagate_bits,
12700         cgraph_characterize_statics): New. Functions to support analysis
12701         of static global variables.
12702         (cgraph_mark_local_and_external_functions): Renamed from:
12703         (cgraph_mark_local_functions)
12704         (cgraph_expand_all_functions): Remove call to
12705         cgraph_mark_local_and_external_functions.
12706         (cgraph_optimize): Added driver to analyze static variables whose
12707         scope is within the compilation unit.  * cgraph.h (struct
12708         cgraph_local_info, GTY): Added statics_read, statics_written,
12709         local, calls_read_all, calls_write_all, for_functions_valid.
12710         (struct cgraph_node): Added next_cycle.  * cgraph.c
12711         (dump_cgraph_node): Added print routines for new fields.  *
12712         makefile.in: macroized cgraph.h, added cgraphunit.c to the ggc
12713         list.
12714
12715 2004-09-13  Joseph S. Myers  <jsm@polyomino.org.uk>
12716
12717         * c-decl.c (grokdeclarator): Correct comments about where storage
12718         class specifiers are rejected by grammar and add corresponding
12719         asserts.  Diagnose typedefs and parameters declared inline.
12720         Change warning for inline main to a pedwarn.  Only diagnose inline
12721         main if hosted.
12722         (declspecs_add_scspec): Allow duplicate "inline".
12723
12724 2004-09-13  Steve Ellcey  <sje@cup.hp.com>
12725
12726         * config/ia64/ia64.c (ia64_scalar_mode_supported_p): New.
12727         (TARGET_SCALAR_MODE_SUPPORTED_P): New.
12728
12729 2004-09-13  Richard Henderson  <rth@redhat.com>
12730
12731         PR 17436
12732         * tree.h (TYPE_CONTAINS_PLACEHOLDER_INTERNAL): New.
12733         (tree_type): Replace spare with contains_placeholder_bits.
12734         (type_contains_placeholder_1): Rename from type_contains_placeholder_p,
12735         make static.  Remove seen_types list.
12736         (type_contains_placeholder_p): New.
12737
12738 2004-09-13  James E Wilson  <wilson@specifixinc.com>
12739
12740         * config/mips/mips.c (CODE_FOR_mips_sqrt_ps): New.
12741         (sb1_bdesc, bdesc_map, bdesc_arrays): New.
12742         (mips_expand_builtin): Add SB-1 support.  Use bdesc_map and
12743         bdesc_arrays instead of mips_bdesc.
12744         (mips_init_builtins): Likewise.
12745         * config/mips/mips.h (TARGET_SB1): New.
12746         (HAVE_SQRT_P): Delete.
12747         * config/mips/mips.md (divide_condition): Support V2SF.
12748         (sqrt_condition, recip_condition): New.
12749         (div<mode>3): Use ANYF instead of SCALARF.
12750         (*div<mode>3): Use ANYF instead of SCALARF.  Use UNITMODE instead of
12751         MODE.
12752         (*recip<mode>3, *rsqrt<mode>a, *rsqrt<mode>b): Use recip_condition
12753         instead of ISA_HAS_FP4.  Use ANYF instead of SCALARF.  Use UNITMODE
12754         instead of MODE.
12755         (sqrt<mode>2): Use sqrt_condition instead of HAVE_SQRT_P.  Use ANYF
12756         instead of SCALARF.  Use UNITMODE instead of MODE.
12757
12758 2004-09-13  Zack Weinberg  <zack@codesourcery.com>
12759
12760         * config.in: Regenerate after removal of libbanshee.
12761
12762 2004-09-13  Andrew MacLeod  <amacleod@redhat.com>
12763
12764         PR tree-optimization/17400
12765         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
12766         coalesce partitions when one occurs in an abnormal PHI.
12767
12768 2004-09-13  Andrew Pinski  <apinski@apple.com>
12769
12770         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Change variable size's
12771         name to _new_size.
12772
12773 2004-09-13  Richard Henderson  <rth@redhat.com>
12774
12775         PR inline-asm/6806
12776         * cselib.c (cselib_invalidate_rtx): Export.  Remove unused args.
12777         (cselib_invalidate_rtx_note_stores): New.
12778         (cselib_record_sets, cselib_process_insn): Update to match.
12779         * cselib.h (cselib_invalidate_rtx): Declare.
12780         * postreload.c (reload_cse_simplify): Invalidate asm clobbers.
12781
12782 2004-09-13  Richard Henderson  <rth@redhat.com>
12783
12784         PR tree-opt/10528
12785         * tree-inline.c (copy_body_r): Recompute bits for ADDR_EXPR,
12786         after copying its argument.
12787
12788 2004-09-13  Joseph S. Myers  <jsm@polyomino.org.uk>
12789
12790         * c-common.c, c-decl.c, c-lex.c, c-objc-common.c, c-opts.c,
12791         c-parse.in, c-pragma.c, c-typeck.c: Use %q, %< and %> for quoting
12792         in diagnostics.  Use %' for English apostrophes.
12793         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Define.
12794         (pedwarn_c90, pedwarn_c99): Use it.
12795         * c-decl.c (lookup_label): Quote label name in diagnostic.
12796         * c-parse.in (yyprint): Use ' instead of ` for left quote.
12797         * c-typeck.c (warn_for_assignment): Likewise.
12798
12799 2004-09-13  Jan Hubicka  <jh@suse.cz>
12800
12801         * i386.c (x86_schedule): New global variable.
12802         (override_options): Disable scheduling when not supported.
12803         * i386.h (x86_schedule): Declare.
12804         (TARGET_SCHEDULE): New macro.
12805
12806 2004-09-12  Richard Henderson  <rth@redhat.com>
12807
12808         PR c++/16254
12809         * fold-const.c (fold) <case CLEANUP_POINT_EXPR>: Remove.
12810         * tree.c, tree.h (has_cleanups): Remove.
12811
12812 2004-09-12  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12813
12814         * tree-ssa-loop-manip.c (split_loop_exit_edge): Handle non-ssaname
12815         arguments of the phi nodes correctly.
12816
12817 2004-09-12  Jan Hubicka  <jh@suse.cz>
12818
12819         * ggc-common.c (cmp_statistics): Fix sorting.
12820
12821 2004-09-12  David Edelsohn  <edelsohn@gnu.org>
12822
12823         PR target/16795
12824         * expmed.c (expand_divmod): If cheap power of 2 divide is
12825         available, use it for negative constant as well.
12826
12827 2004-09-12  Andrew Pinski  <apinski@apple.com>
12828
12829         * darwin.h (ASM_OUTPUT_COMMON): Make sure we do not have a
12830         size of 0.
12831
12832         * tree-chrec.c (initialize_scalar_evolutions_analyzer): Remove.
12833
12834 2004-09-12  Richard Henderson  <rth@redhat.com>
12835
12836         * config/i386/i386.c (ix86_split_ashldi): Special case op1 as one
12837         or minus one.
12838         (ix86_split_ashrdi, ix86_split_lshrdi): Clean up conditions for
12839         post-reload, and scratch NULL.
12840         * config/i386/i386.md (testqi_1): Use FLAGS_REG name.
12841         (x86_shift_adj_2): Use ix86_expand_clear.
12842         (ashldi3): Remove CMOVE expansion difference.
12843         (ashldi3_1): Remove.
12844         (*ashldi3_1): Rename from *ashldi3_2.  Use reg_or_pm1_operand and
12845         add constraints for immediates.  New peephole for split-with-temp.
12846         Run splitter after peep2 pass.
12847         (ashrdi3, ashrdi3_1, ashrdi3_2): Similarly.
12848         (lshrdi3, lshrdi3_1, lshrdi3_2): Similarly.
12849         (setcc_2): Rename with *.
12850         * config/i386/predicates.md (reg_or_pm1_operand): New.
12851         (ashldi_input_operand): New.
12852
12853 2004-09-12  Richard Henderson  <rth@redhat.com
12854
12855         * print-rtl.c (print_decl_name): New.
12856         (print_mem_expr): Use it.
12857
12858 2004-09-12  Richard Henderson  <rth@redhat.com
12859
12860         PR 17186, part deux
12861         * except.c (sjlj_emit_function_exit): Fix logic locating
12862         sjlj_exit_after in final block.
12863
12864 2004-09-12  Toon Moene  <toon@moene.indiv.nluug.nl>
12865
12866         * common.opt: Remove flags -fmove-all-movables and
12867         -freduce-all-givs.
12868         * loop-invariant.c (find_invariants_to_move):
12869         Remove all uses of flag_move_all_movables.
12870         * loop.c (move_movables): Remove all uses of
12871         flag_move_all_movables.
12872         (strength_reduce): Remove all uses of
12873         flag_reduce_all_givs.
12874         * doc/invoke.texi: Remove documentation of flags
12875         -fremove-all-movables and -freduce-all-givs.
12876
12877 2004-09-11  Roger Sayle  <roger@eyesopen.com>
12878
12879         PR middle-end/17411
12880         * tree-sra.c (generate_element_zero): Revert recent build_int_cst
12881         change. elt->type may be a floating point type, so use fold_convert.
12882
12883 2004-09-11  Geoffrey Keating  <geoffk@apple.com>
12884
12885         * config/darwin.c (machopic_validate_stub_or_non_lazy_ptr): Mark
12886         the thing referenced as used, not the stub itself.
12887
12888 2004-09-11  Joseph S. Myers  <jsm@polyomino.org.uk>
12889
12890         * c-tree.h (enum c_storage_class): New.
12891         (struct c_declspecs): Add storage_class, inline_p and thread_p.
12892         * c-decl.c (shadow_tag_warned): Give errors for "inline" in empty
12893         declarations and "auto" or "register" in file scope empty
12894         declarations.  Give more specific warnings for other cases of
12895         storage class specifiers in empty declarations.
12896         (grokdeclarator): Update for new structures.  Don't check for
12897         multiple storage classes.  Diagnose file-scope "register" if
12898         pedantic.
12899         (build_null_declspecs): Update.
12900         (declspecs_add_scspec): Update.  Diagnose multiple storage class
12901         specifiers and invalid uses of "__thread".
12902
12903 2004-09-11  Zack Weinberg  <zack@codesourcery.com>
12904
12905         * tree.c (tree_code_size): New function, bulk of code from tree_size.
12906         (tree_size, make_node): Use it.
12907         * tree-ssa-pre.c (init_pre): Use it.
12908         * tree.h: Prototype it.
12909
12910 2004-09-11  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12911
12912         * tree-cfg.c (set_bb_for_stmt): Use PHI_BB.
12913         * tree-dfa.c (compute_immediate_uses, add_immediate_use,
12914         redirect_immediate_use): Use PHI_DF.
12915         * tree-flow-inline.h (stmt_ann): Abort on phi nodes.
12916         (bb_for_stmt): Use PHI_BB.
12917         (get_immediate_uses): Use PHI_DF.
12918         * tree-ssa-dse.c (max_stmt_uid): New variable.
12919         (get_stmt_uid): New function.
12920         (dse_optimize_stmt, dse_record_phis, tree_ssa_dse): Do not use phi
12921         node annotations.
12922         * tree-ssa-loop-im.c (LIM_DATA): Do not use phi statement annotations.
12923         (max_uid): Renamed to max_stmt_uid.
12924         (get_stmt_uid): New function.
12925         (maybe_queue_var, single_reachable_address, determine_lsm): Do not use
12926         phi node annotations.
12927         * tree-ssa.c (replace_immediate_uses): Do not use phi node annotations.
12928         * tree.h (PHI_BB, PHI_DF): New accessor functions.
12929         (struct tree_phi_node): Add bb and df fields.
12930
12931 2004-09-11  Richard Henderson  <rth@redhat.com>
12932
12933         PR middle-end/17416
12934         * cfgexpand.c (expand_used_vars_for_block): Fix off-by-one bug
12935         in conflict loop.
12936
12937 2004-09-11  Jan Hubicka  <jh@suse.cz>
12938
12939         * i386.h (MODE_NEEDED): Calls need UNINITIALIZED mode; add comment.
12940         (EMIT_MODE_SET): UNINITIALIZED mode needs no set.
12941         * i386.md (i387_cw): Add 'uninitialized' mode.
12942
12943         * profile.c (BB_TO_GCOV_INDEX): move more to the front.
12944         (output_location): Break out from ....
12945         (branch_prob): ... here; handle gcov output on trees.
12946         * toplev.c (process_options): No longer be sorry about coverage for
12947         trees.
12948
12949 2004-09-11  Steven Bosscher  <stevenb@suse.de>
12950
12951         PR c++/17412
12952         * fold-const.c (fold): Do not try to fold the operand of a
12953         CLEANUP_POINT_EXPR if that operand does itself not have any
12954         operands.
12955
12956         PR middle-end/17417
12957         * langhooks.c (lhd_decl_printable_name): Make sure that this
12958         function is called with is a decl node that has an identifier.
12959         * tree-pretty-print.c (dump_function_name): New function to
12960         wrap PRINT_FUNCTION_NAME and dump_decl_name.
12961         (print_call_name): Use it.
12962
12963 2004-09-11  Mohan Embar  <gnustuff@thisiscool.com>
12964
12965         * ggc-none.c: Include "bconfig.h" if -DGENERATOR_FILE,
12966         "config.h" if not.
12967
12968 2004-09-11  Jakub Jelinek  <jakub@redhat.com>
12969
12970         * tree-ssa-alias.c (collect_points_to_info_r): Handle
12971         pointing to PTR + OFFSET as PTR, not as pointing to PTR or pointing
12972         to OFFSET.
12973
12974 2004-09-11  Richard Henderson  <rth@redhat.com>
12975
12976         * expr.c (expand_expr_addr_expr_1) Rename from expand_expr_addr_expr.
12977         (expand_expr_addr_expr): New function.  Take ADDR_EXPR instead of the
12978         operand of the ADDR_EXPR.
12979         (expand_expr_real_1): Update to match.
12980
12981 2004-09-11  David Edelsohn  <edelsohn@gnu.org>
12982
12983         PR target/17277
12984         * config/rs6000/aix.h (MD_FROB_UPDATE_CONTEXT): Use __64BIT__ to
12985         choose 64-bit version.
12986
12987 2004-09-11  Richard Henderson  <rth@redhat.com>
12988
12989         PR c/17396
12990         * c-typeck.c (build_unary_op): Add legacy offsetof hack.
12991
12992 2004-09-11  Kazu Hirata  <kazu@cs.umass.edu>
12993
12994         * doc/cfg.texi, doc/hostconfig.texi, doc/install.texi,
12995         doc/invoke.texi, doc/md.texi, doc/tm.texi, doc/tree-ssa.texi:
12996         Insert @: after i.e. or e.g.
12997
12998 2004-09-10  Geoffrey Keating  <geoffk@apple.com>
12999
13000         * tree-pretty-print.c (dump_decl_name): Print unnamed decls as
13001         D.xxx rather than <Dxxx>.
13002
13003 2004-09-10  Adam Nemet  <anemet@lnxw.com>
13004
13005         * configure.ac (AC_MSG_CHECKING(what linker to use)):
13006         in_tree_ld_is_elf should be true for LynxOS.
13007         * configure: Regenerate.
13008
13009 2004-09-10  Adam Nemet  <anemet@lnxw.com>
13010
13011         * Makefile.in (all.cross): Add srcextra.
13012
13013 2004-09-10  Roger Sayle  <roger@eyesopen.com>
13014
13015         PR middle-end/17024
13016         * fold-const.c (fold_cond_expr_with_comparison): Handle unordered
13017         floating point comparison operators.  Change aborts to gcc_asserts.
13018
13019 2004-09-10  Geoffrey Keating  <geoffk@apple.com>
13020
13021         * final.c (output_asm_insn): Correct problem with -fverbose-asm.
13022
13023 2004-09-10  James E Wilson  <wilson@specifixinc.com>
13024
13025         * Makefile.in (LIBGCC_DEPS): Delete duplicate stmp-int-hdrs reference.
13026         (stmp-fixproto): Change stmp-int-headers to stmp-int-hdrs in comment.
13027
13028         * convert.c (convert_to_vector): Replace recursive call with
13029         error_mark_node.
13030
13031         * emit-rtl.c (gen_const_vector): Renamed from gen_const_vector_0.
13032         Add integer argument named constant.  Use const_tiny_rtx instead of
13033         CONST0_RTX.
13034         (gen_rtx_CONST_VECTOR): Rewrite to handle checks for both CONST0_RTX
13035         and CONST1_RTX.
13036         (init_emit_once): Fix users of gen_const_vector.  Set CONST1_RTX for
13037         vector types.
13038         * expr.c (const_vector_from_tree): Call gen_rtx_CONST_VECTOR instead
13039         of gen_rtx_raw_CONST_VECTOR.
13040
13041 2004-09-10  Eric Christopher  <echristo@redhat.com>
13042
13043         PR c/16046
13044         * c-parse.in (attribute): Add NULL_TREE for error case
13045         for error recovery.
13046
13047 2004-09-10  Zack Weinberg  <zack@codesourcery.com>
13048
13049         * c-common.h (struct c_fileinfo): Comment moved here from cp-tree.h.
13050         (extract_interface_info): Delete prototype.
13051         * c-decl.c (extract_interface_info): Delete stub.
13052         * c-lex.c (get_fileinfo): Initialize file_info_tree here, if
13053         it's not already been done ...
13054         (init_c_lex): ... not here.
13055         (fe_file_change): Don't call extract_interface_info.
13056
13057 2004-09-11  Joseph S. Myers  <jsm@polyomino.org.uk>
13058
13059         * c-tree.h (struct c_declspecs): Remove typedef_decl.  Add
13060         typedef_p and typedef_signed_p.
13061         * c-decl.c (shadow_tag_warned): Check typedef_p, not typedef_decl.
13062         (grokdeclarator): Don't use typedef_decl for warn_deprecated_use.
13063         Check typedef_p and typedef_signed_p, not typedef_decl.
13064         (grokfield): Check typedef_p, not typedef_decl.
13065         (build_null_declspecs): Initialize typedef_p and typedef_signed_p,
13066         not typedef_decl.
13067         (declspecs_add_type): Set typedef_p and typedef_signed_p, not
13068         typedef_decl.
13069
13070 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
13071
13072         * doc/tm.texi, doc/tree-ssa.texi: Fix typos.
13073
13074 2004-09-10  Geoffrey Keating  <geoffk@apple.com>
13075
13076         * gimplify.c (create_tmp_var_raw): Don't name otherwise-nameless
13077         temporary variables.
13078
13079         * dbxout.c (dbxout_block): Update for
13080         current_function_func_begin_label a string.
13081         * dwarf2out.c (dwarf2out_begin_prologue): Likewise.
13082         * except.c (dw2_output_call_site_table): Likewise.
13083         * toplev.c (current_function_func_begin_label): Likewise.
13084         * tree.h (current_function_func_begin_label): Likewise.
13085         * config/rs6000/linux64.h (DBX_OUTPUT_BRAC): Likewise.
13086
13087         * final.c (output_asm_insn): Use strtoul instead of atoi, save a
13088         loop.
13089
13090         * config/darwin.c: Include target.h.
13091         (struct machopic_indirection): Make ptr_name a string.
13092         (machopic_indirection_hash): Update for ptr_name a string.
13093         (machopic_indirection_eq): Likewise.
13094         (machopic_indirection_name): Likewise.
13095         (machopic_output_indirection): Likewise.
13096         (machopic_validate_stub_or_non_lazy_ptr): Update for ptr_name a
13097         string.  Don't expect stub names to be in the identifier hash table.
13098         Do call strip_name_encoding before looking up entry in ID hash table.
13099         * config/t-darwin (darwin.o): Add target.h to dependencies.
13100
13101         * gcc/config/rs6000/rs6000.c (print_operand): Use fputs instead
13102         of fprintf for register names.
13103
13104         * output.h (unlikely_section_label): Delete declaration.
13105         (unlikely_text_section_name): Likewise.
13106         * varasm.c (unlikely_section_label_printed): Make static.
13107         (unlikely_section_label): Likewise.
13108         (unlikely_text_section_name): Likewise.
13109         (assemble_start_function): Use reconcat.
13110
13111         * rtl.def (REG): Add comment to describe third field.
13112
13113 2004-09-10  Andrew Pinski  <apinski@apple.com>
13114
13115         * config/darwin.c (machopic_mcount_stub_name): Call
13116         machopic_indirection_name instead of making the string
13117         ourselves.
13118
13119 2004-09-10  Diego Novillo  <dnovillo@redhat.com>
13120
13121         Revert
13122
13123         2004-09-08  Jie Zhang  <zhangjie@magima.com.cn>
13124
13125             * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If type
13126             memory tag is call clobbered, so are its aliases.
13127             (group_aliases): When two memory tags being grouped, if one is
13128             call clobbered, so are the other and its aliases.
13129             (add_may_alias): Remove call-clobbering stuff.
13130             (replace_may_alias): Likewise.
13131             (merge_pointed_to_info): Merge pt_global_mem
13132
13133 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
13134
13135         * bb-reorder.c, c-common.c, c-incpath.c, c-typeck.c,
13136         genrecog.c, lambda-code.c, mips-tdump.c, mips-tfile.c,
13137         passes.c, tree-data-ref.c, tree-data-ref.h, tree-mudflap.c,
13138         tree-scalar-evolution.c, tree-ssa-copyrename.c,
13139         tree-ssa-live.c, tree-ssa-live.h: Fix comment typos.
13140
13141 2004-09-10  Richard Sandiford  <rsandifo@redhat.com>
13142
13143         * config/frv/frv.md (UNSPEC_MASACCS, UNSPEC_MDASACCS): New constants.
13144         (maddaccs, msubaccs, *maddacc): Turn operand 0 into a single ACC/ACCG
13145         pair.  Remove match_dup from inputs.  Remove masaccs handling.
13146         (mdaddaccs, mdsubaccs, *mdaddacc): Likewise a dual ACC/ACCG pair.
13147         (masaccs, mdasaccs): Turn into define_insns.
13148
13149 2004-09-10  Richard Sandiford  <rsandifo@redhat.com>
13150
13151         * tree-tailcall.c (process_assignment): Only do accumulator transforms
13152         for floating-point types if flag_unsafe_math_optimizations.
13153
13154 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
13155
13156         * config/darwin.c, config/alpha/alpha.h, config/arm/arm.c,
13157         config/arm/arm.h, config/arm/arm.md, config/arm/bpabi.h,
13158         config/arm/predicates.md, config/frv/frv.c, config/frv/frv.md,
13159         config/h8300/h8300.md, config/i386/gmm_malloc.h,
13160         config/ia64/ia64.md, config/ip2k/libgcc.S,
13161         config/mips/mips-ps-3d.md, config/mips/mips.c,
13162         config/rs6000/rs6000.c, config/s390/s390.c,
13163         config/sh/symbian.c: Fix comment typos.
13164
13165 2004-09-10  Andreas Krebbel  <krebbel1@de.ibm.com>
13166
13167         * config/s390/s390.c (s390_emit_prologue): Added missing
13168         "{}" brackets.
13169
13170 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
13171
13172         * doc/extend.texi, doc/invoke.texi, doc/passes.texi: Fix
13173         typos.  Follow spelling conventions.
13174
13175 2004-09-10  Joseph S. Myers  <jsm@polyomino.org.uk>
13176
13177         * toplev.c (warn_deprecated_use): Correct logic for saying "type"
13178         in diagnostic.  Don't dereference NULL TYPE_NAME.
13179
13180 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
13181
13182         * c-common.c, c-pch.c, defaults.h, lambda-code.c, passes.c,
13183         tree-data-ref.c, tree-flow.h, tree-ssa-operands.c,
13184         tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vectorizer.h,
13185         value-prof.c: Fix comment typos.  Follow spelling conventions.
13186
13187 2004-09-10  Jan Hubicka  <jh@suse.cz>
13188
13189         * tree-ssa-dce.c (remove_dead_stmt): Update profile.
13190         * tree-split_edge.c (tree_split_edge): Likewise.
13191         (thread_jumps): Likewise.
13192
13193 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
13194
13195         * cgraphunit.c, predict.c, tree-ssa-loop-ivopts.c: Fix comment
13196         typos.
13197
13198 2004-09-10  Paolo Bonzini  <bonzini@gnu.org>
13199
13200         * cgraph.h (cgraph_dump_file): Do not declare.
13201         * cgraphunit.c (cgraph_dump_file): Declare as static.
13202         (init_cgraph): New.
13203         * toplev.c (cgraph_dump_file): Do not declare.
13204         (compile_file): Call init_cgraph.
13205         * tree-dump.c (dump_files): Add IPA dump file, remove
13206         XML dump of call graph.
13207         (get_dump_file_name): Support IPA dump file naming scheme.
13208         * tree.h (enum tree_dump_index): Add IPA dump file, remove
13209         XML dump of call graph.
13210         * doc/invoke.texi (Debugging Options): Document the new options.
13211
13212 2004-09-10  Richard Sandiford  <rsandifo@redhat.com>
13213
13214         * doc/extend.texi: Document the FR-V built-in functions.
13215
13216 2004-09-09  James E Wilson  <wilson@specifixinc.com>
13217
13218         * doc/sourcebuild.texi: Delete libbanshee reference.
13219
13220 2004-09-10  Kelley Cook  <kcook@gcc.gnu.org>
13221
13222         * Makefile.in (s-gtype): Add $(build_exeext) to gengtype command.
13223
13224 2004-09-09  James E Wilson  <wilson@specifixinc.com>
13225
13226         * c-typeck.c (convert_for_assignment): Check that rhs has VECTOR_TYPE
13227         before calling vector_types_convertible_p.
13228         (digest_init): Check that inside_init has VECTOR_TYPE before calling
13229         vector_types_convertible_p.  Don't give another error if
13230         convert_for_assignment returns error_mark_node.
13231
13232 2004-09-09  Roger Sayle  <roger@eyesopen.com>
13233
13234         PR middle-end/17055
13235         * fold-const.c (build_zero_vector): New function to construct a
13236         vector (either floating point or integer) of zeros.
13237         (fold_convert): Internally, enable conversions of integer zero
13238         to arbitrary vector types, using the new build_zero_vector.
13239
13240 2004-09-09  Roger Sayle  <roger@eyesopen.com>
13241
13242         * config/i386/i386.c (ix86_expand_ashlsi3_const): New function to
13243         expand a left shift by an immediate constant as either an ashl or
13244         a sequence of additions.
13245         (ix86_split_ashldi): Use new ix86_expand_ashlsi3_const function
13246         instead of calling gen_ashlsi3 with a constant directly.
13247
13248 2004-09-09  Roger Sayle  <roger@eyesopen.com>
13249
13250         * config/i386/i386.c (ix86_split_long_move): When optimizing for
13251         size, and the low and high parts of a DImode constant are equal,
13252         copy one register to another instead of loading the same immediate
13253         value twice.
13254
13255 2004-09-09  Richard Henderson  <rth@redhat.com>
13256
13257         PR middle-end/17367
13258         * function.c (assign_parm_setup_block): Only put PARALLELs into
13259         a register if use_register_for_decl.
13260
13261 2004-09-09  Eric Christopher  <echristo@redhat.com>
13262
13263         * ra-colorize.c (reset_lists): Move variable declaration inside
13264         ENABLE_CHECKING to avoid unused variable warnings when
13265         not --enable-checking.
13266         (check_colors): Ditto.
13267
13268 2004-09-09  Mike Stump  <mrs@apple.com>
13269
13270         * version.c (version_string): Bump to 4.0.0.
13271         * doc/include/gcc-common.texi (version-GCC): Likewise.
13272
13273 2004-09-10  Jakub Jelinek  <jakub@redhat.com>
13274
13275         * doc/extend.texi (nothrow attribute): The attribute is not
13276         implemented in 3.2 and earlier.
13277
13278 2004-09-09  Steve Ellcey  <sje@cup.hp.com>
13279
13280         * genrecog.c (compute_predicate_codes): Use op0_codes
13281         instead of codes.
13282
13283 2004-09-09  Ulrich Weigand  <uweigand@de.ibm.com>
13284
13285         * ra-colorize.c (hardregset_to_string): Adapt to HARD_REG_SET
13286         implementation changes.
13287
13288 2004-09-09  Ulrich Weigand  <uweigand@de.ibm.com>
13289
13290         * combine.c (try_combine): When swapping i2 and i3, newi2pat may be
13291         a PARALLEL instead of a SET due to added clobbers.
13292
13293 2004-09-09  Ulrich Weigand  <uweigand@de.ibm.com>
13294
13295         * reload.c (find_reloads_address): Pass correct operand to
13296         maybe_memory_address_p.
13297
13298 2004-09-09  Daniel Berlin  <dberlin@dberlin.org>
13299
13300         * Makefile.in: Remove libbanshee, tree-alias-*.
13301         Remove tree-alias-common.h dependencies.
13302         * common.opt: Remove -ftree-points-to.
13303         * configure.ac: Remove libbanshee.
13304         * flags.h: Remove pta_type, flag_tree_points_to.
13305         * gengtype.c (open_base_files): Remove tree-alias-type.h.
13306         * opts.c (OPT_ftree_points_to): Remove.
13307         * toplev.c: Remove tree-alias-common.h, flag_tree_points_to.
13308         * tree-dfa.c: Remove tree-alias-common.h
13309         * tree-into-ssa.c: Ditto.
13310         * tree-outof-ssa.c: Ditto.
13311         * tree-ssa-copyrename.c: Ditto.
13312         * tree-ssa-live.c: Ditto.
13313         * tree-optimize.c: Ditto.
13314         * tree-ssa.c: Ditto.
13315         Remove pass_build_pta, pass_del_pta.
13316         * tree-pass.h: Ditto.
13317         * tree-ssa-alias.c: Remove tree-alias-common.h.
13318         (struct alias_stats_d): Remove pta_queries, pta_resolved.
13319         (pass_may_alias): Remove PROP_pta requirement.
13320         (may_alias_p): Remove pta_queries, pta_resolved, use of andersens.
13321         (get_tmt_for): Ditto.
13322         (dump_alias_stats): Ditto.
13323         * doc/passes.texi: Remove blurb about points-to analysis.
13324         * fortran/Make-lang.in: Remove tree-alias-*.o.
13325
13326 2004-09-09  Richard Sandiford  <rsandifo@redhat.com>
13327
13328         * genattrtab.c (write_insn_cases): New function, split out from
13329         write_attr_case.  Correctly handle define_peepholes when printing
13330         the instruction name.
13331         (write_attr_case, write_const_num_delay_slots): Use write_insn_cases.
13332
13333 2004-09-09  Hans-Peter Nilsson  <hp@axis.com>
13334
13335         PR target/17377
13336         * config/cris/cris-protos.h (cris_return_address_on_stack): Declare.
13337         * config/cris/cris.c (cris_return_address_on_stack): New function.
13338         * config/cris/cris.md ("return"): For location of return address,
13339         also check cris_return_address_on_stack.
13340
13341 2004-09-09  Diego Novillo  <dnovillo@redhat.com>
13342
13343         * tree-outof-ssa.c (coalesce_abnormal_edges): Fix typo in
13344         calling phi_ssa_name_p.
13345
13346 2004-09-09  Richard Henderson  <rth@redhat.com>
13347
13348         PR c/17322
13349         * c-typeck.c (valid_compound_expr_initializer): Use only
13350         initializer_constant_valid_p, and not TREE_CONSTANT.
13351         (digest_init): Likewise.
13352         (output_init_element): Likewise.
13353
13354 2004-09-09  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
13355
13356         * ra-build.c (copy_insn_p, remember_move, defuse_overlap_p_1,
13357         live_out_1, prune_hardregs_for_mode, init_one_web_common,
13358         reinit_one_web, add_subweb, add_subweb_2, init_web_parts,
13359         record_conflict, compare_and_free_webs, init_webs_defs_uses,
13360         parts_to_webs_1, parts_to_webs, reset_conflicts,
13361         check_conflict_numbers, remember_web_was_spilled, handle_asm_insn,
13362         ra_build_free): Use gcc_assert and gcc_unreachable instead of abort.
13363         * ra-colorize.c (push_list, put_web, reset_lists, put_web_at_end,
13364         put_move, remove_move, combine, select_spill, colorize_one_web,
13365         try_recolor_web, insert_coalesced_conflicts, check_colors,
13366         break_precolored_alias, restore_conflicts_from_coalesce,
13367         sort_and_combine_web_pairs, check_uncoalesced_moves): Likewise.
13368         * ra-rewrite.c (spill_coalescing, slots_overlap_p, emit_loads,
13369         reloads_to_loads, rewrite_program2, emit_colors): Likewise.
13370         * ra.c (first_hard_reg, create_insn_info, find_subweb, init_ra,
13371         check_df): Likewise.
13372         * real.c (do_add, do_multiply, do_divide, do_compare, do_fix_trunc,
13373         real_arithmetic, real_compare, real_exponent, real_ldexp,
13374         real_identical, real_to_integer, real_to_integer2, real_to_decimal,
13375         real_to_hexadecimal, real_from_integer, ten_to_ptwo, ten_to_mptwo,
13376         real_digit, real_nan, real_maxval, round_for_format, real_convert,
13377         real_to_target, real_from_target, real_hash, encode_ieee_single,
13378         encode_ieee_double, encode_ieee_extended, encode_ieee_quad,
13379         encode_vax_f, encode_vax_d, encode_vax_g, encode_i370_single,
13380         encode_i370_double, encode_c4x_single, encode_c4x_extended): Likewise.
13381         * recog.c (validate_change, validate_replace_rtx_1, asm_operand_ok,
13382         extract_insn, peep2_next_insn, peep2_reg_dead_p,
13383         peep2_find_free_register, peephole2_optimize, store_data_bypass_p,
13384         if_test_bypass_p): Likewise.
13385         * reg-stack.c (record_label_references, get_asm_operand_n_inputs,
13386         stack_result, remove_regno_note, get_hard_regnum, emit_pop_insn,
13387         emit_swap_insn, swap_to_top, move_for_stack_reg,
13388         subst_stack_regs_pat, subst_asm_stack_regs, change_stack,
13389         compensate_edge, convert_regs_1): Likewise.
13390         * regclass.c (init_reg_sets, init_reg_sets_1,
13391         memory_move_secondary_cost): Likewise.
13392         * regrename.c (note_sets, clear_dead_regs, scan_rtx_reg, scan_rtx):
13393         Likewise.
13394         * reload.c (push_secondary_reload, find_valid_class, push_reload,
13395         operands_match_p, decompose, immune_p, find_reloads,
13396         find_reloads_toplev, find_reloads_address_1, subst_reloads,
13397         copy_replacements, refers_to_regno_for_reload_p,
13398         reg_overlap_mentioned_for_reload_p): Likewise.
13399         * reload1.c (compute_use_by_pseudos, replace_pseudos_in, reload,
13400         count_pseudo, find_reg, eliminate_regs, eliminate_regs_in_insn,
13401         verify_initial_elim_offsets, finish_spills, clear_reload_reg_in_use,
13402         reload_reg_free_p, reload_reg_reaches_end_p, reloads_conflict,
13403         choose_reload_regs, merge_assigned_reloads, emit_input_reload_insns,
13404         do_output_reload, fixup_abnormal_edges): Likewise.
13405         * reorg.c (stop_search_p, emit_delay_sequence, get_jump_flags,
13406         fill_slots_from_thread, relax_delay_slots): Likewise.
13407         * resource.c (mark_referenced_resources, mark_set_resources):
13408         Likewise.
13409         * rtl.c (copy_rtx, rtx_equal_p): Likewise.
13410         * rtlanal.c (insn_dependent_p, reg_overlap_mentioned_p,
13411         dead_or_set_p, find_reg_fusage, remove_note, replace_rtx,
13412         subreg_lsb_1, subreg_regno_offset, subreg_offset_representable_p,
13413         find_first_parameter_load, can_hoist_insn_p, hoist_update_store,
13414         hoist_insn_after, hoist_insn_to_edge, nonzero_bits1): Likewise.
13415         * rtlhooks.c (gen_lowpart_general): Likewise.
13416         * sbitmap.c (sbitmap_difference): Likewise.
13417         * sched-deps.c (add_dependence, sched_analyze_1, sched_analyze_2,
13418         sched_analyze, add_forward_dependence): Likewise.
13419         * sched-ebb.c (fix_basic_block_boundaries, schedule_ebb): Likewise.
13420         * sched-rgn.c (debug_regions, compute_trg_info, schedule_region,
13421         schedule_insns): Likewise.
13422         * sched-vis.c (print_pattern): Likewise.
13423         * sdbout.c (sdbout_symbol, sdbout_toplevel_data): Likewise.
13424         * simplify-rtx.c (simplify_unary_operation, simplify_binary_operation,
13425         simplify_const_relational_operation, simplify_ternary_operation,
13426         simplify_immed_subreg, simplify_subreg, simplify_gen_subreg):
13427         Likewise.
13428         * sreal.c (copy, sreal_sub, sreal_div): Likewise.
13429         * stmt.c (force_label_rtx, expand_goto, expand_asm_operands,
13430         resolve_operand_name_1, expand_return, expand_decl,
13431         expand_anon_union_decl, emit_case_bit_tests, expand_case): Likewise.
13432         * stor-layout.c (put_pending_size, smallest_mode_for_size,
13433         int_mode_for_mode, layout_decl, finish_builtin_struct, layout_type,
13434         set_sizetype, get_mode_bounds): Likewise.
13435
13436 2004-09-09  Zack Weinberg  <zack@codesourcery.com>
13437
13438         * defaults.h (MULTIPLE_SYMBOL_SPACES): Provide default.
13439         * config/arm/pecoff.h, config/i386/beos-elf.h
13440         * config/i386/cygming.h, config/i386/i386-interix.h:
13441         Define MULTIPLE_SYMBOL_SPACES to 1, not nothing.  Remove
13442         comment cloned from manual.
13443         * doc/tm.texi: Update description of MULTIPLE_SYMBOL_SPACES.
13444
13445 2004-09-09  Frank Ch. Eigler  <fche@redhat.com>
13446
13447         * builtins.c (build_va_arg_indirect_ref): New function.
13448         (std_gimplify_va_arg_expr): Call it instead of mudflap check and
13449         build_fold_indirect_ref.
13450         * config/i386/i386.c (ix86_gimplify_va_arg): Ditto.
13451         * config/ia64/ia64.c (ia64_gimplify_va_arg): Ditto.
13452         * tree.h: Declare new function.
13453
13454 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
13455
13456         * cgraphunit.c (cgraph_mark_functions_to_output): Renable node
13457         dumping for development builds.
13458         * emit-rtl.c (verify_rtx_sharing): Give verbose failure for
13459         development builds only.
13460         * genattrtab.c (write_eligible_delay): Fix typo in previous
13461         commit.
13462         * tree.c (iterative_hash_expr): Replace gcc_unreachable with
13463         gcc_assert.
13464
13465 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
13466
13467         * gcse.c (INSN_CUID, insert_set_in_table, find_avail_set,
13468         cprop_insn, do_local_cprop, local_cprop_pass, find_bypass_set,
13469         process_insert_insn, insert_insn_end_bb, pre_insert_copy_insn,
13470         hoist_code, extract_mentioned_regs_helper, compute_store_table,
13471         insert_store): Use gcc_assert and gcc_unreachable.
13472         * ggc-common.c (ggc_splay_alloc, ggc_splay_dont_free,
13473         gt_pch_note_object, gt_pch_note_reorder, relocate_ptrs,
13474         ggc_record_overhead): Likewise.
13475         * ggc-page.c (alloc_page, free_page, ggc_set_mark, ggc_marked_p,
13476         init_ggc, ggc_push_context, ggc_recalculate_in_use_p,
13477         ggc_pop_context, clear_marks, validate_free_objects,
13478         ggc_pch_read): Likewise.
13479         * ggc-zone.c (ggc_allocated_p, free_chunk, ggc_set_mark,
13480         ggc_marked_p, ggc_get_size, init_ggc, destroy_ggc_zone,
13481         ggc_push_context, check_cookies, ggc_collect,
13482         ggc_print_statistics): Likewise.
13483         * gimple-low.c (lower_function_body, lower_stmt,
13484         lower_bind_expr): Likewise.
13485         * gimplify.c (gimple_tree_eq, push_gimplify_context,
13486         pop_gimplify_context, gimple_pop_condition, create_tmp_var,
13487         declare_tmp_vars, gimple_add_tmp_var, annotate_all_with_locus,
13488         mostly_copy_tree_r, gimplify_return_expr, gimplify_switch_expr,
13489         gimplify_case_label_expr, gimplify_exit_block_expr,
13490         canonicalize_component_ref, gimplify_compound_lval,
13491         gimplify_self_mod_expr, gimplify_call_expr,
13492         gimplify_init_ctor_eval, gimplify_init_constructor,
13493         gimplify_modify_expr, gimplify_save_expr, gimplify_target_expr,
13494         gimplify_expr, check_pointer_types_r,
13495         force_gimple_operand): Likewise.
13496         * global.c (global_alloc, build_insn_chain): Likewise.
13497         * graph.c (clean_graph_dump_file,
13498         finish_graph_dump_file): Likewise.
13499         gcov-io.c (gcov_open): Use GCOV_CHECK.
13500
13501 2004-09-09  Richard Sandiford  <rsandifo@redhat.com>
13502
13503         * config/frv/frv.c (acc_operand, accg_operand): Use REGNO.
13504
13505 2004-09-09  Jan Hubicka  <jh@suse.cz>
13506
13507         middle-end/17128
13508         * tree-inline.c (expand_call_inline): Make overactive sanity check
13509         happy.
13510
13511 2004-09-09  Jan Hubicka  <jh@suse.cz>
13512
13513         * tree-ssa-loop-ivopts.c (peel_address): Fix abort on
13514         VIEW_CONVERT_EXPR.
13515
13516 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
13517
13518         * Makefile.in (gengtype): Use $(BUILD_ERRORS).
13519         (gengtype.o): Depend on errors.h.
13520         * genattrtab.c (strcmp_check): Use gcc_assert and gcc_unreachable.
13521         (attr_rtx_1, attr_printf, attr_copy_rtx, evaluate_eq_attr,
13522         attr_alt_subset_p, attr_alt_subset_of_compl_p,
13523         attr_alt_intersection, attr_alt_union, optimize_attrs, gen_insn,
13524         write_test_expr, write_attr_value, write_eligible_delay,
13525         make_internal_attr, make_numeric_value): Likewise.
13526         * genautomata.c (regexp_name, get_str_vect,
13527         gen_presence_absence_set, automaton_decl_hash,
13528         automaton_decl_eq_p, insn_decl_hash, insn_decl_eq_p, decl_hash,
13529         decl_eq_p, process_regexp, loop_in_regexp, check_loops_in_regexps,
13530         process_regexp_cycles, reserv_sets_cmp, set_unit_reserv,
13531         test_unit_reserv, it_is_empty_reserv_sets,
13532         reserv_sets_are_intersected, reserv_sets_shift, reserv_sets_or,
13533         reserv_sets_and, output_cycle_reservs, get_free_state,
13534         intersected_state_reservs_p, states_union, remove_arc,
13535         copy_insn_regexp, transform_1, transform_2, transform_3,
13536         regexp_transform_func, store_alt_unit_usage,
13537         check_regexp_units_distribution, process_seq_for_forming_states,
13538         process_alts_for_forming_states, make_automaton,
13539         form_arcs_marked_by_insn, create_composed_state,
13540         set_out_arc_insns_equiv_num, partition_equiv_class,
13541         process_insn_equiv_class, set_insn_equiv_classes,
13542         units_to_automata_heuristic_distr, form_regexp,
13543         longest_path_length, output_dfa_max_issue_rate, add_vect,
13544         out_state_arcs_num, add_vect_el, output_trans_table,
13545         output_state_alts_table, output_dead_lock_vect,
13546         output_max_insn_queue_index_def,
13547         output_min_insn_conflict_delay_func,
13548         output_internal_insn_latency_func, output_print_reservation_func,
13549         output_cpu_unit_reservation_p, output_state_arcs,
13550         make_insn_alts_attr, make_internal_dfa_insn_code_attr,
13551         make_default_insn_latency_attr,
13552         form_important_insn_automata_lists): Likewise.
13553         * genemit.c (gen_exp, output_add_clobbers,
13554         output_added_clobbers_hard_reg_p): Likewise.
13555         * genextract.c (print_path, main): Likewise.
13556         * genflags.c (gen_macro): Likewise.
13557         * gengenrtl.c: Include errors.h
13558         (type_from_format, accessor_from_format): Likewise.
13559         * gengtype.c (get_file_basename, output_mangled_typename,
13560         walk_type, write_types_process_field,
13561         write_types_local_process_field): Likewise.
13562         * genmodes.c (complete_mode): Likewise.
13563         * genopinit.c (gen_insn): Likewise.
13564         * genoutput.c (output_insn_data, check_constraint_len,
13565         constraint_len): Likewise.
13566         * genpreds.c (add_mode_tests):Likewise.
13567         * gen-protos.c (add_hash): Likewise.
13568         * genrecog.c (find_operand, find_matching_operand,
13569         validate_pattern, add_to_sequence, maybe_both_true,
13570         nodes_identical_1, merge_trees, write_switch, write_cond,
13571         write_action, is_unconditional, make_insn_sequence,
13572         debug_decision_2): Likewise.
13573         * gensupport.c (is_predicable, collect_insn_data,
13574         alter_predicate_for_insn, maybe_eval_c_test): Likewise.
13575
13576 2004-09-09  Jan Hubicka  <jh@suse.cz>
13577
13578         * basic-block.h (guess_outgoing_edge_probabilities): Declare.
13579         * cfgbuild.c (compute_outgoing_frequencies): When probability is
13580         missing, guess it.
13581         (find_many_sub_basic_blocks): Do update profile only when it is
13582         present.
13583         * predict.c (set_even_probabilities): Break out from ...
13584         (combine_predictions_for_insn): ... here; deal with
13585         !can_predict_insn_p insns.
13586         (combine_predictions_for_bb): Use set_even_probabilities.
13587         (bb_estimate_probability_locally): Break out from ....
13588         (estimate_probability): ... here.
13589         (guess_outgoing_edge_probabilities): New entry point.
13590
13591 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
13592
13593         * gcc.c (add_sysrooted_prefix, execute, do_self_spec, do_spec_1,
13594         handle_braces, process_brace_body, main, used_arg,
13595         set_multilib_dir, print_multilib_info): Use fatal, not abort.
13596
13597         * tree-nested.c (create_tmp_var_for): Correct missinverted assert.
13598
13599         * tree-outof-ssa.c (free_temp_expr_table): Add missed assert.
13600         * tree-ssa-ccp.c (set_lattice_value): Correct missapplied de
13601         Morgan's theorem in last checkin.
13602
13603 2004-09-09  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
13604             Nathan Sidwell  <nathan@codesourcery.com>
13605
13606         * targhooks.c (default_unwind_emit, default_scalar_mode_supported_p):
13607         Use gcc_assert, gcc_unreachable & internal_error instead of abort.
13608         * timevar.c (timevar_push, timevar_pop, timevar_start,
13609         timevar_stop): Likewise.
13610         * toplev.c (default_pch_valid_p): Likewise.
13611         * tracer.c (tail_duplicate): Likewise.
13612         * tree-alias-common.c (get_alias_var_decl,
13613         get_values_from_constructor, create_alias_var, delete_alias_vars,
13614         empty_points_to_set, same_points_to_set, ptr_may_alias_var):
13615         Likewise.
13616         * tree.c (tree_size, make_node_stat, copy_node_stat,
13617         build_int_cst_wide, integer_all_onesp, list_length, chainon,
13618         tree_node_structure, type_contains_placeholder_p, substitute_in_expr,
13619         substitute_placeholder_in_expr, tabilize_reference_1, build0_stat,
13620         build1_stat, build2_stat, build3_stat, build4_stat, is_attribute_p,
13621         lookup_attribute, type_hash_canon, host_integerp, iterative_hash_expr,
13622         build_method_type_directly, decl_type_context, get_callee_fndecl,
13623         get_set_constructor_bits, build_vector_type_for_mode, int_cst_value,
13624         tree_fold_gcd): Likewise.
13625         * tree-cfg.c (create_bb, make_ctrl_stmt_edges, make_exit_edges,
13626         make_cond_expr_edges, group_case_labels, tree_merge_blocks,
13627         cleanup_control_expr_graph, find_taken_edge,
13628         find_taken_edge_switch_expr, phi_alternatives_equal,
13629         is_ctrl_altering_stmt, disband_implicit_edges, set_bb_for_stmt,
13630         stmt_for_bsi, tree_find_edge_insert_loc, bsi_insert_on_edge_immediate,
13631         tree_split_edge, tree_verify_flow_info, thread_jumps,
13632         tree_redirect_edge_and_branch, tree_flow_call_edges_add): Likewise.
13633         * tree-chrec.c (chrec_fold_poly_cst, chrec_fold_plus_poly_poly,
13634         chrec_fold_multiply_poly_poly): Likewise.
13635         * tree-complex.c (extract_component, expand_complex_division,
13636         expand_complex_comparison, expand_complex_operations_1,
13637         build_replicated_const, expand_vector_operations_1): Likewise.
13638         * tree-data-ref.c (tree_fold_bezout, build_classic_dist_vector,
13639         build_classic_dir_vector): Likewise.
13640         * tree-dfa.c (compute_immediate_uses_for_phi,
13641         compute_immediate_uses_for_stmt, create_var_ann, create_stmt_ann,
13642         create_tree_ann, collect_dfa_stats, get_virtual_var): Likewise.
13643         * tree-dump.c (dequeue_and_dump): Likewise.
13644         * tree-eh.c (record_stmt_eh_region, add_stmt_to_eh_region,
13645         record_in_finally_tree, replace_goto_queue_1,
13646         maybe_record_in_goto_queue, verify_norecord_switch_expr,
13647         do_return_redirection): Likewise.
13648         * tree-if-conv.c (tree_if_convert_stmt, tree_if_convert_cond_expr,
13649         add_to_dst_predicate_list, find_phi_replacement_condition,
13650         replace_phi_with_cond_modify_expr, get_loop_body_in_if_conv_order):
13651         Likewise.
13652         * tree-inline.c (remap_decl, remap_type, remap_decls, copy_body_r,
13653         initialize_inlined_parameters, declare_return_variable,
13654         estimate_num_insns_1, expand_call_inline, expand_calls_inline,
13655         optimize_inline_calls, copy_tree_r): Likewise.
13656         * tree-into-ssa.c (rewrite_initialize_block_local_data, rewrite_stmt,
13657         ssa_rewrite_stmt, rewrite_into_ssa): Likewise.
13658         * tree-iterator.c (alloc_stmt_list, tsi_link_before, tsi_link_after,
13659         tsi_split_statement_list_after, tsi_split_statement_list_before):
13660         Likewise.
13661         * tree-mudflap.c (mf_varname_tree): Likewise.
13662         * tree-nested.c (create_tmp_var_for, lookup_field_for_decl,
13663         lookup_tramp_for_decl, convert_all_function_calls): Likewise.
13664         * tree-optimize.c (tree_rest_of_compilation): Likewise.
13665         * tree-outof-ssa.c (create_temp, eliminate_build, eliminate_phi,
13666         coalesce_abnormal_edges, coalesce_ssa_name, eliminate_virtual_phis,
13667         free_temp_expr_table, add_dependance, finish_expr, rewrite_trees):
13668         Likewise.
13669         * tree-phinodes.c (resize_phi_node, add_phi_arg,
13670         remove_all_phi_nodes_for): Likewise.
13671         * tree-pretty-print.c (op_prio, print_call_name): Likewise.
13672         * tree-profile.c (tree_gen_interval_profiler, tree_gen_pow2_profiler,
13673         tree_gen_one_value_profiler, tree_gen_const_delta_profiler): Likewise.
13674         * tree-sra.c (type_can_instantiate_all_elements, sra_hash_tree,
13675         sra_elt_eq, sra_walk_expr, instantiate_missing_elements,
13676         generate_one_element_ref, generate_element_copy,
13677         generate_element_zero, scalarize_copy, scalarize_init,
13678         scalarize_ldst): Likewise.
13679         * tree-ssa-alias.c (delete_alias_info, group_aliases, may_alias_p,
13680         add_may_alias, add_pointed_to_expr, add_pointed_to_var,
13681         collect_points_to_info_r, get_tmt_for, get_ptr_info): Likewise.
13682         * tree-ssa.c (walk_use_def_chains, check_phi_redundancy): Likewise.
13683         * tree-ssa-ccp.c (dump_lattice_value, get_default_value, get_value,
13684         set_lattice_value, likely_value, ccp_visit_phi_node, visit_assignment,
13685         widen_bitfield, ccp_fold_builtin): Likewise.
13686         * tree-ssa-copy.c (may_propagate_copy, merge_alias_info,
13687         replace_exp_1, propagate_tree_value): Likewise.
13688         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
13689         * tree-ssa-dce.c (set_control_dependence_map_bit,
13690         find_control_dependence, find_pdom, mark_operand_necessary,
13691         mark_stmt_if_obviously_necessary,
13692         mark_control_dependent_edges_necessary, remove_dead_stmt): Likewise.
13693         * tree-ssa-dom.c (dom_opt_initialize_block_local_data,
13694         simplify_switch_and_lookup_avail_expr, cprop_into_successor_phis,
13695         eliminate_redundant_computations, avail_expr_eq): Likewise.
13696         * tree-ssa-dse.c (fix_stmt_v_may_defs): Likewise.
13697         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p,
13698         duplicate_blocks): Likewise.
13699         * tree-ssa-loop-im.c (for_each_index, set_level,
13700         is_call_clobbered_ref): Likewise.
13701         * tree-ssa-loop-ivopts.c (dump_use, divide, stmt_after_ip_normal_pos,
13702         stmt_after_increment, set_iv, contains_abnormal_ssa_name_p,
13703         find_interesting_uses_outer_or_nonlin, add_derived_ivs_candidates,
13704         peel_address, ptr_difference_cost, may_replace_final_value,
13705         determine_use_iv_cost, rewrite_use_nonlinear_expr, rewrite_use_outer,
13706         rewrite_use, rewrite_uses): Likewise.
13707         * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa,
13708         check_loop_closed_ssa_use): Likewise.
13709         * tree-ssanames.c (make_ssa_name): Likewise.
13710         * tree-ssa-operands.c (finalize_ssa_defs, finalize_ssa_uses,
13711         finalize_ssa_v_must_defs, finalize_ssa_stmt_operands,
13712         get_stmt_operands, get_expr_operands, get_asm_expr_operands,
13713         get_indirect_ref_operands, add_stmt_operand): Likewise.
13714         * tree-ssa-pre.c (value_exists_in_set_bitmap,
13715         value_remove_from_set_bitmap, bitmap_insert_into_set, insert_into_set,
13716         phi_translate, valid_in_set, compute_antic,
13717         find_or_generate_expression, create_expression_by_pieces, insert_aux,
13718         create_value_expr_from, eliminate): Likewise.
13719         * tree-ssa-propagate.c (cfg_blocks_get): Likewise.
13720         * tree-ssa-threadupdate.c (remove_last_stmt_and_useless_edges):
13721         Likewise.
13722         * tree-tailcall.c (independent_of_stmt_p, adjust_return_value,
13723         eliminate_tail_call): Likewise.
13724         * tree-vectorizer.c (vect_create_index_for_array_ref,
13725         vect_align_data_ref, vect_create_data_ref,
13726         vect_create_destination_var, vect_get_vec_def_for_operand,
13727         vect_finish_stmt_generation, vect_transform_stmt,
13728         vect_transform_loop_bound, vect_transform_loop,
13729         vect_analyze_operations): Likewise.
13730         * tree-vn.c (vn_compute, set_value_handle, get_value_handle):
13731         Likewise.
13732         * tree-flow-inline.h (var_ann, get_var_ann, get_def_from_ptr,
13733         get_use_op_ptr, immediate_use, phi_ssa_name_p, bsi_start,
13734         bsi_after_labels, bsi_last): Likewise.
13735         * tree-ssa-live.c (var_union, change_partition_var,
13736         create_ssa_var_map, calculate_live_on_entry, root_var_init,
13737         type_var_init, add_coalesce, sort_coalesce_list, pop_best_coalesce):
13738         Likewise.
13739         * tree-ssa-live.h (partition_is_global, live_entry_blocks,
13740         tpa_find_tree): Likewise.
13741         (register_ssa_partition_check): Declare.
13742         (register_ssa_partition): use it.
13743         * tree-ssa-live.c: Include errors.h.
13744         (register_ssa_partition_check): New.
13745         * tree-ssa-operands.c: Include errors.h.
13746         * Makefile.in (tree-ssa-operands.o): Depend on errors.h.
13747
13748 2004-09-09  Richard Sandiford  <rsandifo@redhat.com>
13749             Catherine Moore  <clm@redhat.com>
13750
13751         * config/frv/frv-protos.h (FRV_CPU_FR550, FRV_CPU_FR450)
13752         (FRV_CPU_FR405): New processor enums.
13753         (frv_issue_rate, frv_acc_group): Declare.
13754         * config/frv/frv.h (CPP_SPEC, CPP_FRV_SPEC, CPP_FR500_SPEC): Delete.
13755         (CPP_FR400_SPEC, CPP_SIMPLE_SPEC): Delete.
13756         (MASK_DEFAULT_FR550, MASK_DEFAULT_FR450): New macros.
13757         (SUBTARGET_EXTRA_SPECS, EXTRA_SPECS, CPP_CPU_DEFAULT_SPEC): Delete.
13758         (TARGET_CPU_CPP_BUILTINS): Define the macros that were previously
13759         handled by CPP_SPEC.
13760         (MASK_LONG_CALLS, TARGET_LONG_CALLS): New macros.
13761         (MASK_ALIGN_LABELS, TARGET_ALIGN_LABELS): New macros.
13762         (ACC_MASK): New macro.
13763         (TARGET_MEDIA_REV2): Include FRV_CPU_{FR405,FR450,FR550}.
13764         (TARGET_MEDIA_FR450): New macro.
13765         (TARGET_FR500_FR550_BUILTINS, TARGET_FR405_BUILTINS): New macros.
13766         (TARGET_SWITCHES): Add -m{no-,}align-labels and -m{no-,}long-calls.
13767         (LABEL_ALIGN_AFTER_BARRIER): Define.
13768         (ACC_LAST, ACCG_LAST): Add four new accumulator registers.
13769         (IACC_FIRST, IACC_LAST): New pair of SPRs.
13770         (ACCG_FIRST, AP_FIRST, SPR_FIRST, SPR_LAST): Adjust accordingly.
13771         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER)
13772         (REGISTER_NAMES): Add entries for new registers.
13773         (REG_CLASS_CONTENTS): Update for new register ranges.
13774         (EXTRA_CONSTRAINT_FOR_S): Redefine in terms of call_operand.
13775         (ISSUE_RATE, CLEAR_VLIW_START, SET_VLIW_START): Delete.
13776         (PACKING_FLAG_USED_P): Delete.
13777         (FRV_BUILTIN_MQLCLRHS, FRV_BUILTIN_MQLMTHS, FRV_BUILTIN_MQSLLHI)
13778         (FRV_BUILTIN_MQSRAHI, FRV_BUILTIN_SMUL, FRV_BUILTIN_UMUL)
13779         (FRV_BUILTIN_PREFETCH0, FRV_BUILTIN_PREFETCH, FRV_BUILTIN_SMASS)
13780         (FRV_BUILTIN_SMSSS, FRV_BUILTIN_SMU, FRV_BUILTIN_SCUTSS)
13781         (FRV_BUILTIN_ADDSS, FRV_BUILTIN_SUBSS, FRV_BUILTIN_SLASS)
13782         (FRV_BUILTIN_IACCread{l,ll}, FRV_BUILTIN_IACCset{ll,l})
13783         (FRV_BUILTIN_SCAN): New members of frv_builtin_enum.
13784         (FRV_BUILTIN_FIRST_NONMEDIA): New macro.
13785         (CPU_UNITS_QUERY): Define to 1.
13786         * config/frv/frv.c: Include gt-frv.h
13787         (NUM_NOP_PATTERNS, NTH_UNIT, UNIT_NUMBER, PACKING_FLAG_P): New macros.
13788         (SET_PACKING_FLAG, CLEAR_PACKING_FLAG, FOR_EACH_REGNO): New macros.
13789         (frv_insn_group): New enumeration.
13790         (frv_unit_names, frv_unit_groups, frv_unit_codes): New variables.
13791         (frv_type_to_unit, frv_nops, frv_num_nops): New variables.
13792         (REGSTATE_DEAD, REGSTATE_LIVE, REGSTATE_UNUSED, REGSTATE_MASK)
13793         (REGSTATE_CONDJUMP): Delete.  Shuffle other numbers to cover the
13794         gap left by REGSTATE_LIVE.
13795         (regstate_t): New typedef.
13796         (TARGET_MACHINE_DEPENDENT_REORG): Define.
13797         (frv_default_flags_for_cpu): Handle FRV_CPU_{FR550,FR450,FR405}.
13798         (frv_override_options): Check for -mcpu={fr550,fr450,fr405}.
13799         Initialize frv_unit_codes[] and frv_type_to_unit[].
13800         (frv_conditional_register_usage): Remove redundant fixing of
13801         accumulator registers.
13802         (frv_insn_packing_flag): Update specification.
13803         (frv_function_prologue): Don't set frv_insn_packing_flag here.
13804         Zero out frv_nops[].
13805         (frv_expand_epilogue): Remove comments about the no-longer-present
13806         SIBCALL_P argument.
13807         (frv_asm_output_mi_thunk): Check frv_issue_rate() rather than
13808         PACKING_FLAG_USED_P() when deciding whether to pack instructions.
13809         (frv_asm_output_opcode, frv_final_prescan_insn): Simplify in light
13810         of the new meaning of frv_insn_packing_flag.  Emit an mnop.p if
13811         packing is disabled and if INSN can only issue to M1.
13812         (call_operand): Check TARGET_LONG_CALLS.
13813         (acc_operand, even_acc_operand, quad_acc_operand)
13814         (accg_operand): Simplify.  Don't accept pseudo registers.
13815         (output_move_single): Handle SPR<-zero moves.
13816         (frv_issue_rate): Make non-static.  Handle FRV_CPU_{FR550,FR450,FR405}.
13817         (frv_registers_update, frv_registers_used_p): Delete.
13818         (frv_registers_set_p): Delete.
13819         (frv_acc_group_1, frv_acc_group, frv_insn_unit): New functions.
13820         (frv_issues_to_branch_unit_p): New function.
13821         (frv_packet): New structure.
13822         (frv_cond_flags, frv_regstate_conflict_p): New functions.
13823         (frv_registers_conflict_p_1, frv_registers_conflict_p): New functions.
13824         (frv_registers_update_1, frv_registers_update): New functions.
13825         (frv_start_packet, frv_start_packet_block, frv_finish_packet)
13826         (frv_pack_insn_p, frv_add_insn_to_packet, frv_insert_nop_in_packet)
13827         (frv_for_each_packet, frv_sort_insn_group_1, frv_compare_insns)
13828         (frv_sort_insn_group, frv_reorder_packet): New functions.
13829         (frv_pack_insns): Use frv_reorder_packet.
13830         (frv_packet_address): New variable.
13831         (frv_fill_unused_units, frv_align_label, frv_reorg_packet)
13832         (frv_register_nop, frv_reorg): New functions.
13833         (bdesc_1arg): Add __SCUTSS.
13834         (bdesc_2arg): Add __MQLCLRHS, __MQLMTHS, __SMUL, __UMUL, __ADDSS,
13835         __SUBSS, __SLASS and __SCAN.
13836         (bdesc_2argimm): Add __MQSLLHI and __MQSRAHI.
13837         (bdesc_int_void2arg, bdesc_prefetches): New arrays.
13838         (frv_init_builtins): Register the above builtins.
13839         (frv_int_to_acc): Use ACC_MASK to check for valid accumulator
13840         registers.  Turn the referenced accumulators into global registers.
13841         (frv_read_iacc_argument): New function.
13842         (frv_expand_int_void2arg, frv_expand_prefetches): New functions.
13843         (frv_split_iacc_move): New function.
13844         (frv_expand_builtin): Handle the new builtins.
13845         * config/frv/frv.md: Replace old schedulers with new order-independent
13846         ones.  Add schedulers for the FR405, FR450 and FR550.  Describe new
13847         packing algorithm.
13848         (cpu): Add fr550, fr450 and fr405.
13849         (type): Add macc, scan, cut, fnop, fscmp, fdcmp, mnop, mqlimh and
13850         mqshift.  Replace fmas with fsmadd and fmad with fdmadd.  Delete m7.
13851         (*muladd[sd]f4, *mulsub[sd]f4): Fix types.
13852         (*cmp[sd]f_cc_fp): Use new f[sd]cmp types.
13853         (fnop, mnop): New patterns.
13854         (UNSPEC_MQLCLRHS, UNSPEC_MQLMTHS, UNSPEC_MQSLLHI, UNSPEC_MQSRAHI):
13855         New constants.
13856         (mexpdhw, *cond_exec_mexpdhw): Fix destination operands.
13857         (mclracca8): Use ACC_MASK to determine the upper set of accumulator
13858         registers.
13859         (mqlclrhs, mqlmths, mqsllhi, mqsrahi): New patterns.
13860         (UNSPEC_SMUL, UNSPEC_UMUL, UNSPEC_SMU, UNSPEC_ADDSS, UNSPEC_SUBSS)
13861         (UNSPEC_SLASS, UNSPEC_SCAN, UNSPEC_INTSS, UNSPEC_SCUTSS)
13862         (UNSPEC_PREFETCH0, UNSPEC_PREFETCH, UNSPEC_IACCreadll)
13863         (UNSPEC_IACCreadl, UNSPEC_IACCsetll, UNSPEC_IACCsetl, UNSPEC_SMASS)
13864         (UNSPEC_SMSSS, UNSPEC_IMUL, IACC0_REG): New constants.
13865         (smul, umul, smass, smsss, smu, addss, subss, slass, scan, scutss)
13866         (frv_prefetch0, frv_prefetch): New patterns.
13867         * config/frv/t-frv (MULTILIB_OPTIONS): Remove -mcpu=frv and
13868         -mcpu=simple.  Add -mcpu=fr550.
13869         (MULTILIB_DIRNAMES): Update accordingly.
13870         (MULTILIB_MATCHES): Use the fr400 multilibs for -mcpu=fr405 and
13871         -mcpu=fr450.
13872         * doc/invoke.texi: Document the new -mcpu={fr550,fr450,fr405},
13873         -mlong-calls and -malign-labels options for FR-V.
13874
13875 2004-09-09  Joseph S. Myers  <jsm@polyomino.org.uk>
13876
13877         PR c/8420
13878         * c-tree.h (struct c_declspecs): New.
13879         (struct c_declarator, struct c_type_name, struct c_parm): Update
13880         element types.
13881         (build_array_declarator, grokfield, shadow_tag, shadow_tag_warned,
13882         start_function, start_decl, build_c_parm,
13883         make_pointer_declarator): Update prototypes.
13884         (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
13885         declspecs_add_scspec, declspecs_add_attrs): New.
13886         (split_specs_attrs): Remove.
13887         * c-parse.in (%union): Add dsptype.
13888         (declspecs_nosc_nots_nosa_noea, declspecs_nosc_nots_nosa_ea,
13889         declspecs_nosc_nots_sa_noea, declspecs_nosc_nots_sa_ea,
13890         declspecs_nosc_ts_nosa_noea, declspecs_nosc_ts_nosa_ea,
13891         declspecs_nosc_ts_sa_noea, declspecs_nosc_ts_sa_ea,
13892         declspecs_sc_nots_nosa_noea, declspecs_sc_nots_nosa_ea,
13893         declspecs_sc_nots_sa_noea, declspecs_sc_nots_sa_ea,
13894         declspecs_sc_ts_nosa_noea, declspecs_sc_ts_nosa_ea,
13895         declspecs_sc_ts_sa_noea, declspecs_sc_ts_sa_ea, declspecs_ts,
13896         declspecs_nots, declspecs_ts_nosa, declspecs_nots_nosa,
13897         declspecs_nosc_ts, declspecs_nosc_nots, declspecs_nosc, declspecs,
13898         maybe_type_quals_attrs): Change to dsptype.
13899         (struct c_declspec_stack): New.
13900         (current_declspecs, declspec_stack): Change type.
13901         (PUSH_DECLSPEC_STACK, POP_DECLSPEC_STACK): Update to new
13902         structures.
13903         (extdefs): Likewise.
13904         (setspecs): Likewise.
13905         (fndef): Use current_declspecs for empty declspecs list.
13906         (declspecs_nosc_nots_nosa_noea, declspecs_nosc_nots_nosa_ea,
13907         declspecs_nosc_nots_sa_noea, declspecs_nosc_nots_sa_ea,
13908         declspecs_nosc_ts_nosa_noea, declspecs_nosc_ts_nosa_ea,
13909         declspecs_nosc_ts_sa_noea, declspecs_nosc_ts_sa_ea,
13910         declspecs_sc_nots_nosa_noea, declspecs_sc_nots_nosa_ea,
13911         declspecs_sc_nots_sa_noea, declspecs_sc_nots_sa_ea,
13912         declspecs_sc_ts_nosa_noea, declspecs_sc_ts_nosa_ea,
13913         declspecs_sc_ts_sa_noea, declspecs_sc_ts_sa_ea): Update to new
13914         structures and helper functions.  Update comments.
13915         (typespec_nonattr): Correct comment.
13916         (maybe_type_quals_attrs, typename): Update to new structures.
13917         * c-decl.c (grokdeclarator, build_array_declarator, grokfield,
13918         shadow_tag, shadow_tag_warned, start_function, start_decl,
13919         build_c_parm, make_pointer_declarator,
13920         set_array_declarator_inner, groktypename): Update to new
13921         structures.
13922         (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
13923         declspecs_add_scspec, declspecs_add_attrs): New.
13924         (split_specs_attrs): Remove.
13925         (shadow_tag_warned): Make warning for useless type names a
13926         pedwarn.  Give hard error for long, short, signed, unsigned or
13927         _Complex used with struct, union or enum in empty declaration.
13928         Make found_tag a bool.
13929         (grokdeclarator): Remove checks now done at parse time.
13930
13931 2004-09-09  Joseph S. Myers  <jsm@polyomino.org.uk>
13932
13933         * c-tree.h (enum c_declarator_kind, struct c_arg_info, struct
13934         c_declarator, struct c_type_name, struct c_parm): New.
13935         (build_array_declarator, set_array_declarator_inner,
13936         get_parm_info, grokfield, groktypename, grokparm, push_parm_decl,
13937         start_function, start_decl, build_c_parm, build_attrs_declarator,
13938         build_function_declarator, make_pointer_declarator, c_cast_expr,
13939         store_parm_decls_newstyle, c_expr_sizeof_type): Update prototypes.
13940         (build_id_declarator): New.
13941         * c-typeck.c (c_cast_expr, c_expr_sizeof_type): Update to new
13942         structures.
13943         * c-decl.c (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES,
13944         ARG_INFO_OTHERS): Remove.
13945         (build_id_declarator): New.
13946         (build_array_declarator, set_array_declarator_inner, groktypename,
13947         start_decl, grokparm, push_parm_decl, grokparms, get_parm_info,
13948         grokfield, start_function, store_parm_decls_newstyle,
13949         store_parm_decls_oldstyle, store_parm_decls,
13950         build_c_parm, build_attrs_declarator, build_function_declarator,
13951         make_pointer_declarator, grokdeclarator): Update to new
13952         structures.
13953         * c-parse.in (%union): Add arginfotype, dtrtype, typenametype and
13954         parmtype.
13955         (declarator, notype_declarator, after_type_declarator,
13956         parm_declarator, parm_declarator_starttypename,
13957         parm_declarator_nostarttypename, array_declarator, typename,
13958         absdcl, absdcl1, absdcl1_ea, absdcl1_noea, direct_absdcl1,
13959         absdcl_maybe_attribute, parm, firstparm, parms, parmlist,
13960         parmlist_1, parmlist_2, parmlist_or_identifiers,
13961         parmlist_or_identifiers_1): Use these types.
13962         (primary, after_type_declarator, parm_declarator_starttypename,
13963         notype_declarator, component_decl, component_declarator,
13964         component_notype_declarator, typename, absdcl,
13965         absdcl_maybe_attribute, absdcl1_ea, direct_absdcl1, parmlist_1,
13966         parmlist_2, parmlist_or_identifiers_1): Update to new structures.
13967
13968 2004-09-09  Joseph S. Myers  <jsm@polyomino.org.uk>
13969
13970         * c-tree.h (C_DECL_USED, parser_obstack, in_alignof, in_sizeof,
13971         in_typeof, record_maybe_used_decl, pop_maybe_used,
13972         c_expr_sizeof_expr, c_expr_sizeof_type): New.
13973         * c-decl.c (parser_obstack): New.
13974         (c_init_decl_processing): Initialize parser_obstack.
13975         (c_write_global_declarations_1): Check for used but undefined
13976         static functions.
13977         * c-parse.in (%union): Add otype.
13978         (save_obstack_position): New.
13979         (extdefs): Use it.
13980         (unary_expr): Update in_sizeof and in_alignof.  Use
13981         c_expr_sizeof_expr and c_expr_sizeof_type.
13982         (sizeof): Update in_sizeof.
13983         (alignof): Update in_alignof.
13984         (typeof): Update in_typeof.
13985         (typespec_nonreserved_nonattr): Call pop_maybe_used.
13986         * c-typeck.c (in_alignof, in_sizeof, in_typeof, struct
13987         maybe_used_decl, maybe_used_decls, record_maybe_used_decl,
13988         pop_maybe_used, c_expr_sizeof_expr, c_expr_sizeof_type): New.
13989         (build_external_ref): Set C_DECL_USED or call
13990         record_maybe_used_decl if appropriate.
13991         * toplev.c (check_global_declarations): Check TREE_NO_WARNING.
13992
13993 2004-09-08  Eric Christopher  <echristo@redhat.com>
13994
13995         * builtins.c: Fix prototype for fold_builtin_atan.
13996
13997 2004-09-08  Eric Christopher  <echristo@redhat.com>
13998
13999         * builtins.c (fold_builtin_strlen, fold_builtin_sqrt, fold_builtin_cbrt,
14000         fold_builtin_pow, fold_builtin_sin, fold_builtin_cos, fold_builtin_tan,
14001         fold_builtin_atan): New functions. Migrate function bodies...
14002         (fold_builtin_1): ... from here.
14003
14004 2004-09-09  Alan Modra  <amodra@bigpond.net.au>
14005
14006         * config/rs6000/rs6000.c (rs6000_stack_info): Correct alignment of
14007         save_size.
14008
14009 2004-09-08  David Edelsohn  <edelsohn@gnu.org>
14010
14011         * config/rs6000/power4.md (power4-lmul): du4 feeds iu1.
14012         * config/rs6000/power5.md (power5-lmul): Same.
14013
14014 2004-09-08  Richard Henderson  <rth@redhat.com>
14015
14016         PR rtl-opt/17186
14017         * function.c (expand_function_end): Have fall-off-the-end
14018         return path jump around return register setup.
14019
14020 2004-09-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
14021
14022         * config/sparc/sparc.c (sparc_indent_opcode): New variable.
14023         (output_return): Do not test for the presence of the 'unimp' insn.
14024         Use 'current_function_uses_only_leaf_regs' and 'final_sequence'
14025         as predicates instead of custom ones.  Return raw strings when
14026         possible.
14027         (output_sibcall): Likewise.  Concatenate strings.
14028         (output_ubranch): Remove kludge for TurboSPARC.
14029         (output_cbranch): Remove 'noop' parameter.  Do not output 'nop'.
14030         (output_v9branch): Likewise.
14031         (print_operand): Use 'final_sequence' instead of 'dbr_sequence_length'.
14032         <#>: Set sparc_indent_opcode if the delay slot is filled.
14033         <(>: Likewise.
14034         <)>: New operand to emit the displacement from the saved PC on return.
14035         <@>: Remove.
14036         * config/sparc/sparc.h (sparc_indent_opcode): Declare it.
14037         (ASM_OUTPUT_OPCODE): New macro.
14038         (PRINT_OPERAND_PUNCT_VALID_P): Remove '^' and add ')'.
14039         * config/sparc/sparc.md (normal_branch, inverted_branch,
14040         normal_fp_branch, inverted_fp_branch, normal_fpe_branch,
14041         inverted_fpe_branch): Adjust call to output_cbranch.
14042         (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust
14043         call to output_v9branch.
14044         * config/sparc/sparc-protos.h (output_cbranch): Adjust.
14045         (output_v9branch): Likewise.
14046
14047 2004-09-08  Devang Patel  <dpatel@apple.com>
14048
14049         * config/darwin.h  (TARGET_OPTION_TRANSLATE_TABLE): Add -segaddr,
14050         -segs_read_only_addr and -segs_read_write_addr.
14051         (WORD_SWITCH_TAKES_ARG): Same.
14052         (LINK_SPEC): Same.
14053         * doc/invoke.texi: Document -segaddr, -segs_read_only_addr and
14054         -segs_read_write_addr.
14055
14056 2004-09-08  Richard Henderson  <rth@redhat.com>
14057
14058         * function.c (reference_callee_copied): New.
14059         (assign_parm_setup_reg): Use it.
14060         * calls.c (initialize_argument_information): Likewise.
14061         (emit_library_call_value_1): Likewise.
14062         * function.h (reference_callee_copied): Declare.
14063
14064         * target.h (struct gcc_target): Add callee_copies.
14065         * target-def.h (TARGET_CALLEE_COPIES): New.
14066         (TARGET_PASS_BY_REFERENCE): Update default.
14067         * expr.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
14068         * targhooks.c (hook_callee_copies_named): New.
14069         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Rename from
14070         hook_pass_by_reference_false.
14071         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): New.
14072         * targhooks.h: Update decls.
14073         * config/arc/arc.c (TARGET_CALLEE_COPIES): New.
14074         * config/arc/arc.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
14075         * config/frv/frv-protos.h (frv_function_arg_callee_copies): Remove.
14076         * config/frv/frv.c (frv_function_arg_callee_copies): Remove.
14077         * config/frv/frv.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
14078         * config/iq2000/iq2000.c (TARGET_CALLEE_COPIES): New.
14079         * config/iq2000/iq2000.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
14080         * config/m68hc11/m68hc11.c (TARGET_CALLEE_COPIES): New.
14081         * config/m68hc11/m68hc11.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
14082         * config/mips/mips.c (TARGET_CALLEE_COPIES): New.
14083         (mips_callee_copies): New.
14084         * config/mips/mips.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
14085         * config/mmix/mmix.c (TARGET_CALLEE_COPIES): New.
14086         * config/mmix/mmix.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
14087         * config/mn10300/mn10300.c (TARGET_CALLEE_COPIES): New.
14088         * config/mn10300/mn10300.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
14089         * config/pa/pa.c (TARGET_CALLEE_COPIES): New.
14090         * config/pa/pa.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
14091         * config/sh/sh.c (sh_callee_copies): New.
14092         (TARGET_CALLEE_COPIES): New.
14093         * config/sh/sh.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
14094         * config/v850/v850.c (TARGET_CALLEE_COPIES): New.
14095         * config/v850/v850.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
14096         * doc/tm.texi (TARGET_CALLEE_COPIES): Replace documentation
14097         for FUNCTION_ARG_CALLEE_COPIES.
14098         * doc/rtl.texi (CALL_INSN_FUNCTION_USAGE): Update.
14099
14100 2004-09-08  Devang Patel  <dpatel@apple.com>
14101
14102         * tree-if-conv.c (find_phi_replacement_condition): Return true
14103         edge block.
14104         (replace_phi_with_cond_modify_expr): Select conditional expr args
14105         based on true edge basic block.
14106
14107 2004-09-08  Jan Hubicka  <jh@suse.cz>
14108
14109         * tree-ssa-operands.c (add_stmt_operand): Use V_MUST_DEF even for
14110         variables being alias set.
14111
14112 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
14113
14114         * final.c (shorten_branches, final, get_insn_template,
14115         output_alternate_entry_point, final_scan_insn, alter_subreg,
14116         alter_cond, output_operand, asm_fprintf, final_forward_branch_p,
14117         leaf_renumber_regs_insn): Use gcc_assert and gcc_unreachable.
14118         * fix-header.c (lookup_std_proto): Likewise.
14119         * flow.c (first_insn_after_basic_block_note, verify_wide_reg,
14120         verify_local_live_at_start, update_life_info, mark_reg,
14121         calculate_global_regs_live, allocate_reg_life_data,
14122         init_propagate_block_info, mark_set_regs, flush_reg_cond_reg_1,
14123         ior_reg_cond, not_reg_cond, and_reg_cond, elim_reg_cond,
14124         attempt_auto_inc, mark_used_reg, mark_used_regs): Likewise.
14125         * fold-const.c (force_fit_type, div_and_round_double,
14126         may_negate_without_overflow_p, int_const_binop, const_binop,
14127         size_binop, size_diffop, fold_convert_const, fold_convert,
14128         invert_tree_comparison, swap_tree_comparison,
14129         comparison_to_compcode, compcode_to_comparison, invert_truthvalue,
14130         range_binop, make_range, fold_cond_expr_with_comparison,
14131         fold_div_compare, fold, fold_checksum_tree, fold_negate_const,
14132         fold_abs_const, fold_not_const, fold_relational_const, round_up,
14133         round_down): Likewise.
14134         * function.c (find_function_data, assign_stack_temp_for_type,
14135         instantiate_virtual_regs_lossage, aggregate_value_p,
14136         assign_parm_find_entry_rtl, assign_parm_setup_block,
14137         expand_function_start, expand_function_end, keep_stack_depressed,
14138         handle_epilogue_set, thread_prologue_and_epilogue_insns): Likewise.
14139
14140 2004-09-08  Daniel Berlin  <dberlin@dberlin.org>
14141
14142         * Makefile.in (tree-loop-linear.o): Added.
14143         (OBJS-common): Add tree-loop-linear.o
14144         * common.opt: New flag, ftree-loop-linear.
14145         * timevar.def: New timevar, TV_TREE_LOOP_LINEAR.
14146         * tree-flow.h: Add prototype for linear_transform_loops.
14147         * tree-optimize.c: Add linear transform after vectorization.
14148         * tree-pass.h: Add struct pass_linear_transform.
14149         * tree-ssa-loop.c: Add pass_linear_transform.
14150         * tree-loop-linear.c: New file.
14151         * lambda-code.c: gcc_assertify.
14152         (gcc_loop_to_lambda_loop): Handle all exit tests.
14153         Handle case where we have (invariant >= induction var).
14154         (find_induction_var_from_exit_cond): Ditto.
14155
14156 2004-09-08  Jie Zhang  <zhangjie@magima.com.cn>
14157
14158         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If type
14159         memory tag is call clobbered, so are its aliases.
14160         (group_aliases): When two memory tags being grouped, if one is
14161         call clobbered, so are the other and its aliases.
14162         (add_may_alias): Remove call-clobbering stuff.
14163         (replace_may_alias): Likewise.
14164         (merge_pointed_to_info): Merge pt_global_mem
14165
14166 2004-09-08  Jan Hubicka  <jh@suse.cz>
14167
14168         * cgraph.c (cgraph_remove_node): Free DECL_INITIAL field of node.
14169         * cgraphunit.c (verify_cgraph): Don't verify on syntax errors.
14170         (cgraph_expand_function): Remove stale cgraph edges of currently
14171         compiled function; fix non-unit-at-a-time code copying function
14172         node for later reuse.
14173
14174 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
14175
14176         * vec.c (vec_p_reserve, vec_o_reserve): Rename to ...
14177         (vec_gc_p_reserve, vec_gc_o_reserve): ... here. Clone to
14178         (vec_heap_p_reserve, vec_heap_o_reserve): ... here, adjust.
14179         (vec_gc_free, vec_heap_free): New.
14180         * vec.h (DEF_VEC_GC_P, DEF_VEC_MALLOC_P): New.
14181         (DEF_VEC_P): Add allocator argument. Adjust.
14182         (DEF_VEC_GC_O, DEF_VEC_MALLOC_O): New.
14183         (DEF_VEC_O): Add allocator argument. Adjust.
14184         (VEC(free)): New.
14185
14186         * tree.h (tree): Define a GC'd vector.
14187         * lamba-code.c (lambda_loop): Likewise.
14188         * value-prof.h (histogram_value): Likewise.
14189
14190 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
14191
14192         * emit-rtl.c (immed_double_const): Use gcc_assert and gcc_unreachable.
14193         (gen_rtx_SUBREG, gen_reg_rtx, mark_user_reg, subreg_hard_regno,
14194         gen_lowpart_common, gen_highpart, gen_highpart_mode,
14195         subreg_highpart_offset, operand_subword, operand_subword_force,
14196         mem_expr_equal_p, set_mem_attributes_minus_bitpos,
14197         set_mem_alias_set, change_address_1, verify_rtx_sharing,
14198         copy_most_rtx, set_first_insn, set_last_insn, prev_cc0_setter,
14199         try_split, add_insn_after, add_insn_before, remove_insn,
14200         remove_unnecessary_notes, emit_insn_before, emit_jump_insn_before,
14201         emit_call_insn_before, emit_insn_after, emit_jump_insn_after,
14202         emit_call_insn_after, emit_insn, emit_jump_insn, emit_call_insn,
14203         set_unique_reg_note, emit, push_to_full_sequence, copy_insn_1,
14204         gen_const_vector_0, emit_copy_of_insn_after): Likewise.
14205         * et-forest.c (set_prev, set_next, et_check_occ_sanity,
14206         record_path_before_1, check_path_after_1, check_path_after): Likewise.
14207         * except.c (gen_eh_region, resolve_one_fixup_region,
14208         remove_unreachable_regions, convert_from_eh_region_ranges_1,
14209         add_ehl_entry, duplicate_eh_region_1, build_post_landing_pads,
14210         connect_post_landing_pads, sjlj_emit_function_exit,
14211         remove_exception_handler_label, remove_eh_handler,
14212         reachable_next_level, collect_one_action_chain,
14213         output_function_exception_table): Likewise.
14214         * explow.c (trunc_int_for_mode, copy_to_mode_reg,
14215         optimize_save_area_alloca, allocate_dynamic_stack_space,
14216         probe_stack_range, hard_function_value): Likewise.
14217         * expmed.c (mode_for_extraction, store_bit_field,
14218         store_fixed_bit_field, extract_bit_field, expand_shift,
14219         expand_mult_const, expand_mult, choose_multiplier,
14220         expand_mult_highpart, expand_divmod, emit_store_flag,
14221         do_cmp_and_jump): Likewise.
14222         * expr.c (convert_move, convert_modes, move_by_pieces,
14223         move_by_pieces_ninsns, move_by_pieces_1, emit_block_move,
14224         move_block_from_reg, gen_group_rtx, emit_group_load,
14225         emit_group_move, emit_group_store, use_reg, use_regs,
14226         can_store_by_pieces, store_by_pieces, store_by_pieces_1,
14227         emit_move_insn, emit_move_insn_1, emit_push_insn,
14228         expand_assignment, store_expr, count_type_elements,
14229         store_constructor, store_field, safe_from_p, expand_var,
14230         expand_expr_addr_expr, expand_expr_real_1, do_store_flag): Likewise.
14231
14232 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
14233
14234         * dbxout.c (dbxout_type, dbxout_type_name, dbxout_symbol): Use
14235         gcc_assert and gcc_unreachable.
14236         * ddg.c (create_ddg_dependence, add_deps_for_def,
14237         add_deps_for_use, create_ddg, add_edge_to_ddg): Likewise.
14238         * df.c (df_ref_unlink, df_ref_record, df_uses_record,
14239         df_reg_def_chain_create, df_reg_use_chain_create, df_analyze,
14240         df_insn_delete, df_refs_reg_replace, df_ref_reg_replace,
14241         df_insns_modify, df_pattern_emit_before, df_bb_reg_live_start_p,
14242         df_bb_reg_live_end_p, df_bb_regs_lives_compare,
14243         df_bb_single_def_use_insn_find, dataflow_set_a_op_b,
14244         dataflow_set_copy, hybrid_search, diagnostic.c,
14245         diagnostic_build_prefix, diagnostic_count_diagnostic): Likewise.
14246         * dojump.c (do_jump): Likewise.
14247         * dominance.c (calc_dfs_tree_nonrec, calc_dfs_tree,
14248         compute_dom_fast_query, calculate_dominance_info,
14249         free_dominance_info, get_immediate_dominator,
14250         set_immediate_dominator, get_dominated_by,
14251         redirect_immediate_dominators, nearest_common_dominator,
14252         dominated_by_p, verify_dominators, recount_dominator,
14253         iterate_fix_dominators, add_to_dominance_info,
14254         delete_from_dominance_info): Likewise.
14255         * dwarf2asm.c (size_of_encoded_value, eh_data_format_name,
14256         dw2_asm_output_delta_uleb128, dw2_asm_output_delta_sleb128,
14257         dw2_force_const_mem, dw2_asm_output_encoded_addr_rtx): Likewise.
14258         * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes, reg_save,
14259         initial_return_save, stack_adjust_offset, dwarf2out_stack_adjust,
14260         flush_queued_reg_saves, dwarf2out_frame_debug_expr,
14261         dwarf2out_frame_debug, dw_cfi_oprnd1_desc, output_cfi,
14262         output_call_frame_info, output_loc_operands, build_cfa_loc,
14263         decl_ultimate_origin, AT_flag, AT_int, AT_unsigned, AT_string,
14264         AT_string_form, add_AT_specification, AT_ref, set_AT_ref_external,
14265         AT_loc, AT_loc_list, AT_addr, AT_lbl, add_child_die,
14266         splice_child_die, attr_checksum, same_dw_val_p,
14267         break_out_includes, build_abbrev_table, size_of_die, mark_dies,
14268         unmark_dies, value_format, output_loc_list, output_die,
14269         output_pubnames, output_aranges, base_type_die, is_base_type,
14270         modified_type_die, dbx_reg_number, multiple_reg_loc_descriptor,
14271         mem_loc_descriptor, loc_descriptor, loc_descriptor_from_tree_1,
14272         field_byte_offset, add_data_member_location_attribute,
14273         add_const_value_attribute, rtl_for_decl_location,
14274         add_location_or_const_value_attribute, add_byte_size_attribute,
14275         add_bit_offset_attribute, add_bit_size_attribute,
14276         add_abstract_origin_attribute, pop_decl_scope, scope_die_for,
14277         decl_start_label, gen_formal_parameter_die,
14278         gen_type_die_for_member, gen_subprogram_die, gen_label_die,
14279         gen_typedef_die, gen_type_die, gen_tagged_type_instantiation_die,
14280         force_decl_die, force_type_die, gen_decl_die,
14281         dwarf2out_imported_module_or_decl, prune_unused_types_prune,
14282         dwarf2out_finish): Likewise.
14283
14284 2004-09-08  Andreas Tobler  <toa@pop.agri.ch>
14285
14286         * Makefile.in (builtins.o): Depend on tree-mudflap.h.
14287         * builtins.c: Include tree-mudflap.h.
14288
14289 2004-09-08  Uros Bizjak  <uros@kss-loka.si>
14290
14291         * config/i386/i386.c (ix86_prepare_fp_compare_args): Do not
14292         force operand 0.0 into register in XFmode. Also do not force
14293         operand 0.0 into register if !TARGET_CMOVE.
14294         * config/i386/i386.md (*cmpfp_0): Delete. Remove comment.
14295         (*cmpfp_0_sf, cmpfp_0_df, cmpfp_0_xf): New patterns to
14296         implement ftst x87 instruction.
14297         (*fp_jcc_7): New insn pattern. Change corresponding split
14298         pattern to handle "general_operand" instead of
14299         "nonimmediate_operand".
14300
14301 2004-09-08  Ben Elliston  <bje@au.ibm.com>
14302
14303         * doc/rtl.texi (Insns): Document NOTE_INSN_FUNCTION_BEG.
14304
14305 2004-09-07  Frank Ch. Eigler  <fche@redhat.com>
14306
14307         * builtins.c (std_gimplify_va_arg_expr): Mark INDIRECT_REF nodes
14308         generated from standard va_arg expansion.
14309         * tree-mudflap.c (mx_xform_derefs_1): Omit instrumentation from
14310         marked nodes.
14311         (mf_varname_tree, mf_file_function_line_tree): Add some support
14312         for column numbers if compiled with USE_MAPPED_LOCATION.
14313
14314 2004-09-07  Ziemowit Laski  <zlaski@apple.com>
14315
14316         * c-decl.c (groktypename_in_parm_context): Remove function.
14317         * c-tree.h (groktypename_in_parm_context): Remove prototype.
14318
14319 2004-09-07  Ziemowit Laski  <zlaski@apple.com>
14320
14321         * Makefile.in (c-parse.o): Depend on $(C_COMMON_H).
14322         * c-parse.in: Include c-common.h instead of objc-act.h.
14323         (ivar_decl_list, ivar_decls, ivar_decl, ivars, ivar_declarator,
14324         myparms, myparm): Remove %type declarations.
14325         (methodtype, optparms, OBJC_TYPE_QUAL, objc_quals, objc_qual,
14326         objc_typename, objc_try_catch_stmt, optellipsis): Add %type
14327         declarations.
14328         (objc_inherit_code, objc_public_flag): Remove.
14329         (typespec_nonreserved_nonattr): Call
14330         objc_get_protocol_qualified_type() instead of get_static_reference()
14331         and get_protocol_reference().
14332         (stmt_nocomp): Call grokparm() on @catch parameter.
14333         (objcdef): Move semantic action to objc_finish_implementation().
14334         (classdef): Move semantic action to objc_start_class_interface(),
14335         objc_continue_interface(), objc_finish_interface(),
14336         objc_start_class_implementation(), objc_continue_implementation(),
14337         objc_start_category_interface() and
14338         objc_start_category_implementation().
14339         (protocoldef): Move semantic actions to objc_start_protocol() and
14340         objc_finish_interface().
14341         (ivar_decl_list): Remove nonterminal.
14342         (visibility_spec): Move semantic actions to objc_set_visibility().
14343         (ivar_decls): Remove assignment to $$.
14344         (ivar_decl): Rephrase in terms of component_decl; call
14345         objc_add_instance_variable().
14346         (ivars, ivar_declarator): Remove nonterminals.
14347         (opt_semi): New nonterminal.
14348         (methodtype): Remove semantic actions.
14349         (methoddef): Move semantic actions to objc_set_method_type(),
14350         objc_start_method_definition() and objc_finish_method_definition().
14351         (methodproto): Move semantic actions to objc_set_method_type() and
14352         objc_add_method_declaration().
14353         (methoddecl): Use objc_typename instead of typename; move semantic
14354         actions to objc_build_method_signature().
14355         (optarglist, myxdecls, mydecl, myparms, myparm): Remove nonterminals.
14356         (optparmlist): Express in terms of optparms and optellipsis.
14357         (optparms, optellipsis, objc_qual, objc_quals, objc_typename): New
14358         nonterminals.
14359         (keyworddecl): Use objc_typename instead of typename.
14360         (rid_to_yy): Mark RID_IN, RID_OUT, RID_INOUT, RID_BYCOPY, RID_BYREF
14361         and RID_ONEWAY as returning OBJC_TYPE_QUAL to yyparse().
14362
14363 2004-09-08  Alan Modra  <amodra@bigpond.net.au>
14364
14365         * doc/tm.texi (MD_UNWIND_SUPPORT): Document.
14366         (MD_FALLBACK_FRAME_STATE_FOR): Update.
14367         * unwind-dw2.c (MD_UNWIND_SUPPORT): #include if defined.
14368         (uw_frame_state_for): Adjust MD_FALLBACK_FRAME_STATE_FOR invocation.
14369         (MD_FROB_UPDATE_CONTEXT): Remove default.
14370         (uw_update_context_1): Instead #ifdef invocation.
14371         * config/ia64/unwind-ia64.c (MD_UNWIND_SUPPORT): #include if defined.
14372         (uw_frame_state_for): Adjust MD_FALLBACK_FRAME_STATE_FOR invocation.
14373         * config/alpha/gnu.h (MD_FALLBACK_FRAME_STATE_FOR): Don't undef.
14374         (MD_UNWIND_SUPPORT): Undefine this instead.
14375         * config/i386/gnu.h: Likewise.
14376         * config/alpha/linux-unwind.h: New file, macro converted to
14377         function, extracted from..
14378         * config/alpha/linux.h (MD_FALLBACK_FRAME_STATE_FOR): ..this.
14379         (MD_UNWIND_SUPPORT): Define.
14380         * config/alpha/vms-unwind.h, config/alpha/vms.h: Likewise.
14381         * config/i386/linux-unwind.h, config/i386/linux.h,
14382         config/i386/linux64.h: Likewise.
14383         * config/ia64/linux-unwind.h, config/ia64/linux.h: Likewise.
14384         MD_HANDLE_UNWABI too.
14385         * config/mips/linux-unwind.h, config/mips/linux.h: Likewise.
14386         * config/pa/linux-unwind.h, config/pa/pa32-linux.h: Likewise.
14387         * config/rs6000/darwin-unwind.h, config/rs6000/darwin.h: Likewise.
14388         * config/s390/linux-unwind.h, config/s390/linux.h: Likewise.
14389         * config/sparc/linux-unwind.h, config/sparc/linux.h,
14390         config/sparc/linux64.h: Likewise.
14391         * config/sh/linux-unwind.h, config/sh/linux.h: Likewise, but merge
14392         SH_FALLBACK_FRAME_FLOAT_STATE into sh_fallback_frame_state.
14393         * config/rs6000/linux-unwind.h, config/rs6000/linux.h,
14394         config/rs6000/linux64.h: Likewise.  Split out get_sigcontext
14395         function.  Use ARG_POINTER_REGNUM for 32-bit temp reg too.
14396
14397 2004-09-07  Jan Hubicka  <jh@suse.cz>
14398
14399         * cse.c (fold_rtx):  Avoid building of
14400         (CONST (MINUS (CONST_INT) (SYMBOL_REF)))
14401
14402         * tree-ssa-pre.c (grand_bitmap_obstack): New.
14403         (value_insert_into_set_bitmap, bitmap_set_new): Use the obstack.
14404         (init_pre): Initialize obstack.
14405         (fini_pre): Free obstack.
14406
14407 2004-09-07  David Daney  <ddaney@avtrex.com>
14408
14409         * config.gcc: Added support for --with-divide=[breaks|traps] for
14410         mips targets.
14411         * config/mips/mips.h (MASK_DIVIDE_BREAKS): New target_flags bit.
14412         (TARGET_DIVIDE_TRAPS): New macro.
14413         (TARGET_SWITCHES): Added -mdivide-traps and -mdivide-breaks.
14414         (OPTION_DEFAULT_SPECS): Added --with-divide= support.
14415         * config/mips/mips.c (mips_idiv_insns): Generate proper count on
14416         GENERATE_DIVIDE_TRAPS.
14417         (mips_output_division): Emit conditional trap if
14418         GENERATE_DIVIDE_TRAPS is set.
14419         * doc/install.texi: Document --with-divide.
14420         * doc/invoke.texi: Document -mdivide-traps and -mdivide-breaks.
14421
14422 2004-09-07  Caroline Tice  <ctice@apple.com>
14423
14424         * cfgrtl.c (rtl_verify_flow_info_1):  Add new edge flag,
14425         EDGE_CROSSING, to flags test case.
14426
14427 2004-09-07  Jan Hubicka  <jh@suse.cz>
14428
14429         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Deal with '<'
14430         class too.
14431
14432 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
14433
14434         * cfganal.c (flow_depth_first_order_compute, dfs_enumerate_from,
14435         cfgbuild.c, inside_basic_block_p, control_flow_insn_p,
14436         make_label_edge, make_edges, find_basic_blocks_1): Use gcc_assert
14437         or gcc_unreachable.
14438         * cfg.c (clear_edges, initialize_bb_rbi, compact_blocks,
14439         remove_edge, alloc_aux_for_blocks, free_aux_for_blocks,
14440         alloc_aux_for_edges, free_aux_for_edges): Likewise.
14441         * cfgcleanup.c (try_forward_edges,
14442         merge_blocks_move_predecessor_nojumps,
14443         merge_blocks_move_successor_nojumps): Likewise.
14444         * cfgexpand.c (expand_gimple_cond_expr,
14445         expand_gimple_tailcall): Likewise.
14446         * cfghooks.c (duplicate_block): Likewise.
14447         * cfglayout.c (record_effective_endpoints,
14448         insn_locators_initialize, change_scope, fixup_reorder_chain,
14449         verify_insn_chain, fixup_fallthru_exit_predecessor,
14450         duplicate_insn_chain, cfg_layout_finalize): Likewise.
14451         * cfgloopanal.c (check_irred): Likewise.
14452         * cfgloop.c (superloop_at_depth, flow_loops_free,
14453         flow_loop_entry_edges_find, flow_loops_find,
14454         flow_loop_outside_edge_p, get_loop_body,
14455         get_loop_body_in_dom_order, get_loop_body_in_bfs_order,
14456         get_loop_exit_edges, num_loop_branches, cancel_loop,
14457         verify_loop_structure): Likewise.
14458         cfgloopmanip.c (find_path, remove_path, loop_delete_branch_edge,
14459         duplicate_loop_to_header_edge, create_preheader,
14460         create_loop_notes): Likewise.
14461         * cfgrtl.c (delete_insn, try_redirect_by_replacing_jump,
14462         edirect_branch_edge, force_nonfallthru_and_redirect,
14463         rtl_split_edge, insert_insn_on_edge, commit_one_edge_insertion,
14464         commit_edge_insertions, commit_edge_insertions_watch_calls,
14465         purge_dead_edges, cfg_layout_redirect_edge_and_branch,
14466         cfg_layout_redirect_edge_and_branch_force,
14467         cfg_layout_merge_blocks, rtl_flow_call_edges_add): Likewise.
14468         * cgraph.c (cgraph_node, cgraph_create_edge, cgraph_remove_edge,
14469         cgraph_redirect_edge_callee, cgraph_global_info, cgraph_rtl_info,
14470         cgraph_varpool_node): Likewise.
14471         * cgraphunit.c (cgraph_finalize_function,
14472         cgraph_finalize_compilation_unit, cgraph_mark_functions_to_output,
14473         cgraph_expand_function, cgraph_remove_unreachable_nodes,
14474         cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
14475         cgraph_mark_inline, cgraph_expand_all_functions,
14476         cgraph_build_static_cdtor): Likewise.
14477         * combine.c  (do_SUBST, try_combine, subst, combine_simplify_rtx,
14478         simplify_logical, distribute_notes, insn_cuid): Likewise.
14479         * conflict.c (conflict_graph_add, print_conflict): Likewise.
14480         * coverage.c (rtl_coverage_counter_ref, tree_coverage_counter_ref,
14481         coverage_checksum_string): Likewise.
14482         * cse.c (make_new_qty, make_regs_eqv, insert, invalidate,
14483         hash_rtx, exp_equiv_p, cse_basic_block, count_reg_usage,
14484         cse_cc_succs, cse_condition_code_reg): Likewise.
14485         * cselib.c (entry_and_rtx_equal_p, remove_useless_values,
14486         rtx_equal_for_cselib_p, wrap_constant, cselib_hash_rtx,
14487         new_cselib_val, cselib_subst_to_values, cselib_invalidate_regno,
14488         cselib_record_set): Likewise.
14489
14490 2004-09-07  Jan Hubicka  <jh@suse.cz>
14491
14492         * tree-ssa-loop-ivopts.c (iv_value): Avoid invalid sharing on niter.
14493
14494 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
14495
14496         * builtins.c (fold_builtin_strchr): Use build_int_cst, not
14497         fold_convert.
14498         (fold_builtin_strpbrk): Likewise.
14499         * expr.c (array_ref_low_bound): Likewise.
14500         * tree-scalar-evolution.c (chrec_is_positive, add_to_evolution_1,
14501         interpret_rhs_modify_expr, number_of_iterations_in_loop): Likewise.
14502         * tree-sra.c (generate_element_zero): Likewise.
14503         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
14504         * tree-ssa-loop-ivopts.c (determine_biv_step, idx_find_step,
14505         add_old_iv_candidates, add_iv_candidates): Likewise.
14506         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
14507
14508 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
14509
14510         * c-aux-info.c (gen_type): Use gcc_assert or gcc_unreachable.
14511         * c-common.c (c_type_hash, c_common_nodes_and_builtins,
14512         c_expand_expr, boolean_increment, nonnull_check_p,
14513         check_function_arguments_recurse, fold_offsetof_1): Likewise.
14514         * c-cppbuiltin.c (define__GNUC__, builtin_define_stdint_macros,
14515         builtin_define_type_max): Likewise.
14516         * c-decl.c (bind, pop_scope, merge_decls, pushdecl_top_level,
14517         implicit_decl_warning, builtin_function, build_compound_literal,
14518         complete_array_type, grokdeclarator, get_parm_info,
14519         start_function, store_parm_decls_oldstyle,
14520         c_write_global_declarations): Likewise.
14521         * c-format.c (get_constant, decode_format_attr,
14522         maybe_read_dollar_number, get_flag_spec, check_format_arg,
14523         check_format_types, format_type_warning,
14524         find_char_info_specifier_index, init_dynamic_asm_fprintf_info,
14525         init_dynamic_diag_info, handle_format_attribute): Likewise.
14526         * c-gimplify.c (push_context, pop_context, finish_bc_block):
14527         * c-lex.c (c_lex_with_flags, lex_string): Likewise.
14528         * c-objc-common.c (c_tree_printer): Likewise.
14529         * c-pch.c (pch_init): Likewise.
14530         * c-pragma.c (maybe_apply_pragma_weak): Likewise.
14531         * c-pretty-print.c (pp_c_tree_decl_identifier): Likewise.
14532         * c-typeck.c (c_incomplete_type_error, composite_type,
14533         common_pointer_type, common_type, same_translation_unit_p,
14534         tagged_types_tu_compatible_p, finish_init, pop_init_level,
14535         set_designator, set_nonincremental_init_from_string,
14536         process_init_element, c_finish_if_stmt): Likewise.
14537         * caller-save.c (init_caller_save, save_call_clobbered_regs,
14538         insert_restore, insert_save, insert_one_insn): Likewise.
14539         * calls.c (emit_call_1, compute_argument_block_size,
14540         precompute_arguments, expand_call, emit_library_call_value_1,
14541         store_one_arg): Likewise.
14542
14543 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
14544
14545         * configure.ac (enable-checking): Add release option. Reorganize
14546         to avoid repetition.
14547         * configure: Rebuilt.
14548         * doc/install.texi (enable-checking): Amend documentation.
14549
14550 2004-09-06  H.J. Lu  <hongjiu.lu@intel.com>
14551
14552         PR bootstrap/17313
14553         * Makefile.in (specs.ready): Depend on cc1$(exeext).
14554
14555 2004-09-06  James E Wilson  <wilson@specifixinc.com>
14556
14557         * config/mips/mips.md (movsf_hardfloat, movdf_hardfloat_64bit,
14558         movdf_hardfloat_32bit): Split fG into two alternatives.
14559         (movv2sf_hardfloat_64bit): Split fYG into two alternatives.
14560
14561         * emit-rtl.c (try_split): Check INSN_P before may_trap_p call.
14562
14563 2004-09-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
14564
14565         * final.c (output_in_slot): Delete.
14566         (final_scan_insn): Revert 2004-09-03 change.
14567         (output_asm_insn): Likewise.
14568         * config/sparc/sparc.c (output_return): Likewise.
14569         (output_sibcall): Likewise.
14570
14571 2004-09-06  Jan Hubicka  <jh@suse.cz>
14572
14573         * loop.c (loop_dump_aux): Do not print RTL when not available.
14574         * tree-ssa-loop-ivopts.c (add_standard_iv_candidates): Do not use
14575         frontend specific type nodes.
14576         (produce_memory_decl_rtl): Break out from ...
14577         (prepare_decl_rtl): ... here.  Handle ADDR_EXPR correctly.
14578         (get_computation_at): Avoid random tree sharing.
14579         (tree_ssa_iv_optimize): Verify tree sharing; dump loops.
14580
14581 2004-09-06  Zack Weinberg  <zack@codesourcery.com>
14582
14583         * Makefile.in (rtl.o, bitmap.o): Correct dependencies, remove
14584         unnecessary commands.
14585
14586 2004-09-06  Mohan Embar  <gnustuff@thisiscool.com>
14587
14588         * Makefile.in (rtl.o): Remove -DGENERATOR_FILE.
14589         (bitmap.o): Likewise.
14590
14591 2004-09-06  Paolo Bonzini  <bonzini@gnu.org>
14592
14593         Unify the management of RTL and tree-level dump files.
14594
14595         * cfgexpand.c (tree_expand_cfg): Fix incorrect comment.
14596         Don't print function name to the dump file, the pass manager
14597         would do this for us. Add code from the top of
14598         rest_of_compilation, up to the initial RTL dump.
14599         * passes.c (rest_of_handle_jump): Call fixup_tail_calls and
14600         close the DFI_sibling dump file.
14601         (rest_of_compilation): Don't do that here.  Remove code up to the
14602         initial RTL dump.
14603         (init_optimization_passes): Remove.
14604         (pass_rest_of_compilation): Change pass name to NULL.
14605         * toplev.c (lang_dependent_init): Do not use an empty dump file prefix.
14606         Do not call init_optimization_passes.
14607         * toplev.h (init_optimization_passes): Remove.
14608
14609         * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
14610         finish_graph_dump_file): Remove SUFFIX parameter.
14611         * graph.h (print_rtl_graph_with_bb, clean_graph_dump_file,
14612         finish_graph_dump_file): Likewise.
14613
14614         * tree-pass.h (struct tree_opt_pass): Add `letter' field.
14615         * cfgexpand.c (pass_expand): Adjust.
14616         * gimple-low.c (pass_lower_cf, pass_remove_useless_vars): Adjust.
14617         * passes.c (pass_rest_of_compilation): Adjust.
14618         * predict.c (pass_profile): Adjust.
14619         * tree-alias-common.c (pass_build_pta, pass_del_pta): Adjust.
14620         * tree-cfg.c (pass_build_cfg, pass_remove_useless_stmts,
14621         pass_split_crit_edges, pass_warn_function_return): Adjust.
14622         * tree-complex.c (pass_lower_vector_ssa, pass_pre_expand): Adjust.
14623         * tree-dfa.c (pass_referenced_vars): Adjust.
14624         * tree-eh.c (pass_lower_eh): Adjust.
14625         * tree-if-conv.c (pass_build_ssa): Adjust.
14626         * tree-into-ssa.c (pass_build_ssa): Adjust.
14627         * tree-mudflap.c (pass_mudflap_1, pass_mudflap_2): Adjust.
14628         * tree-nomudflap.c (pass_mudflap_1, pass_mudflap_2): Adjust.
14629         * tree-nrv.c (pass_nrv): Adjust.
14630         * tree-optimize.c (pass_gimple, pass_all_optimizations,
14631         pass_cleanup_cfg_post_optimizing, pass_free_datastructures,
14632         pass_init_datastructures): Adjust.
14633         * tree-outof-ssa.c (pass_del_ssa): Adjust.
14634         * tree-profile.c (pass_tree_profile): Adjust.
14635         * tree-sra.c (pass_sra): Adjust.
14636         * tree-ssa-alias.c (pass_may_alias): Adjust.
14637         * tree-ssa-ccp.c (pass_ccp, pass_fold_builtins): Adjust.
14638         * tree-ssa-copyrename.c (pass_rename_ssa_copies): Adjust.
14639         * tree-ssa-dce.c (pass_dce, pass_cd_dce): Adjust.
14640         * tree-ssa-dom.c (pass_dominator): Adjust.
14641         * tree-ssa-dse.c (pass_dse): Adjust.
14642         * tree-ssa-forwprop.c (pass_forwprop): Adjust.
14643         * tree-ssa-if-conv.c (pass_if_conversion): Adjust.
14644         * tree-ssa-loop-ch.c (pass_ch): Adjust.
14645         * tree-ssa-loop.c (pass_loop, pass_loop_init, pass_lim,
14646         pass_loop_done, pass_complete_unroll, pass_iv_canon,
14647         pass_iv_optimize, pass_vectorize): Adjust.
14648         * tree-ssa-phiopt.c (pass_phiopt): Adjust.
14649         * tree-ssa-pre.c (pass_pre, pass_fre): Adjust.
14650         * tree-ssa.c (pass_redundant_phi, pass_early_warn_uninitialized,
14651         pass_late_warn_uninnitialized): Adjust.
14652         * tree-tailcall.c (pass_tail_recursion, pass_tail_calls): Adjust.
14653
14654         * Makefile.in (tree-dump.o): Add new dependencies.
14655         * cgraph.c (cgraph_remove_node): TDF_all -> TDF_tree_all.
14656         * cgraphunit.c (cgraph_preserve_function_body_p, cgraph_optimize):
14657         Likewise.
14658         * toplev.c (dump_file_name): New.
14659         * tree-dump.c (dump_enable_all): Add LETTER parameter.
14660         (struct dump_file_info): Add NUM and LETTER fields.
14661         (dump_files): Adjust and add RTL dump files.
14662         (dump_register): Add NUM and LETTER fields.
14663         (get_dump_file_name, dump_initialized_p, enable_rtl_dump_file): New.
14664         (dump_begin): Use get_dump_file_name.
14665         (dump_switch_p_1): Adjust call to dump_enable_all.
14666         * tree-dump.h (dump_register): Adjust prototype.
14667         * tree-optimize.c (register_one_dump_file): Take dump file index.
14668         Support flags for RTL dumps.
14669         (register_dump_files): Fill in NUM field of struct dump_file_info.
14670         Track properties both when the gate is executed and when it is not.
14671         (execute_todo): Dump RTL.  Add PROPERTIES parameter.
14672         (execute_one_pass): Pass properties to execute_todo.  Handle VCG
14673         dumps of RTL.
14674         * tree-pass.h (dump_file_name): New.
14675         * tree.h (TDF_TREE, TDF_RTL, get_dump_file_name, dump_initialized_p):
14676         New.
14677
14678         * Makefile.in (passes.o): Add new dependencies.
14679         * passes.c (struct dump_file_info, enum dump_file_index,
14680         dump_file_tbl, init_optimization_passes): Remove.
14681         (open_dump_file, close_dump_file): Use tree-dumping infrastructure.
14682         (rest_of_handle_new_regalloc, rest_of_handle_old_regalloc): Use
14683         dump_enabled_p.
14684         (finish_optimization_passes): Update finish_graph_dump_file loop.
14685         (enable_rtl_dump_file): Remove.
14686         * tree-dump.c (dump_files): Adjust and add RTL dump files.
14687         (enable_rtl_dump_file): Add here.
14688         * tree.h (enum tree_dump_index): Add RTL dump file indices.
14689         * doc/invoke.texi (Debugging options): Document new RTL debugging
14690         options.  Update.
14691
14692 2004-09-05  Kazu Hirata  <kazu@cs.umass.edu>
14693
14694         * c-common.c, c-decl.c, combine.c, defaults.h, fold-const.c,
14695         gimplify.c, gthr-nks.h, hooks.c, lambda-code.c, lambda-mat.c,
14696         stor-layout.c, target.h, tree-cfg.c, tree-chrec.c,
14697         tree-if-conv.c, tree-inline.c, tree-into-ssa.c,
14698         tree-mudflap.c, tree-optimize.c, tree-scalar-evolution.c,
14699         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dce.c,
14700         tree-ssa-pre.c, tree-vectorizer.c, tree-vectorizer.h, tree.h,
14701         vec.h: Fix comment formatting.
14702
14703 2004-09-05  Kazu Hirata  <kazu@cs.umass.edu>
14704
14705         * c-common.c, cfgexpand.c, cgraphunit.c, defaults.h,
14706         et-forest.c, expr.c, gimplify.c, global.c, gthr-lynx.h,
14707         hard-reg-set.h, modulo-sched.c, optabs.c, postreload-gcse.c,
14708         tree-data-ref.c, tree-flow.h, tree-if-conv.c, tree-inline.c,
14709         tree-sra.c, tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c,
14710         tree-ssa-loop-niter.c, tree-ssa-operands.c,
14711         tree-ssa-operands.h, tree-ssa-propagate.c,
14712         tree-ssa-propagate.h, tree-ssa-threadupdate.c, value-prof.c,
14713         vec.c, vec.h: Fix comment typos.  Follow spelling conventions.
14714
14715 2004-09-05  Diego Novillo  <dnovillo@redhat.com>
14716
14717         * tree-if-conv.c (gate_tree_if_conversion): Enable only if the
14718         vectorizer is enabled.
14719
14720 2004-09-05  Andreas Jaeger  <aj@suse.de>
14721
14722         * tree-if-conv.c: Spell check comments and clean up whitespace.
14723
14724 2004-09-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14725
14726         * tree-ssa-loop-ivopts.c: New file.
14727         * Makefile.in (tree-ssa-loop-ivopts.c): Add.
14728         * cfgloop.h (target_avail_regs, target_res_regs, target_small_cost,
14729         target_pres_cost, target_spill_cost): Declare.
14730         * cfgloopanal.c (avail_regs, res_regs, small_cost, pres_cost,
14731         spill_cost): Renamed to ...
14732         (target_avail_regs, target_res_regs, target_small_cost,
14733         target_pres_cost, target_spill_cost): ... and exported.
14734         (init_set_costs, global_cost_for_size): Work with renamed variables.
14735         * common.opt (flag_ivopts): New flag.
14736         * expr.c (expand_expr_real_1): Handle SSA_NAME case.  Handle
14737         REF_ORIGINAL.
14738         * gimplify.c (struct gimplify_ctx): Add into_ssa field.
14739         (internal_get_tmp_var, gimplify_modify_expr, gimplify_expr): Support
14740         generating SSA form.
14741         (force_gimple_operand): New function.
14742         * timevar.def (TV_TREE_LOOP_IVOPTS): New timevar.
14743         * tree-cfg.c (stmt_bsi): New function.
14744         * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND,
14745         PARAM_IV_MAX_CONSIDERED_USES): New.
14746         * tree-flow.h (stmt_bsi, tree_ssa_iv_optimize, split_loop_exit_edge,
14747         bsi_insert_on_edge_immediate_loop. standard_iv_increment_position,
14748         ip_end_pos, ip_normal_pos, force_gimple_operand): Declare.
14749         * tree-gimple.c (is_gimple_formal_tmp_var): Accept ssa names.
14750         * tree-nested.c (build_addr): Export.
14751         * tree-optimize.c (init_tree_optimization_passes): Add
14752         pass_iv_optimize.
14753         * tree-pass.h (pass_iv_optimize): Declare.
14754         * tree-ssa-loop-im.c (for_each_index): Handle REALPART_EXPR and
14755         IMAGPART_EXPR.
14756         * tree-ssa-loop-manip.c (create_iv): Force the base to be acceptable
14757         as a phi node argument.
14758         (split_loop_exit_edge, bsi_insert_on_edge_immediate_loop,
14759         ip_end_pos, ip_normal_pos, standard_iv_increment_position): New
14760         functions.
14761         * tree-ssa-loop-niter.c (zero_p, unsigned_type_for): Export.
14762         * tree-ssa-loop.c (tree_ssa_loop_ivopts, gate_tree_ssa_loop_ivopts,
14763         pass_iv_optimize): New pass.
14764         * tree-ssa-operands.c (get_indirect_ref_operands): Handle REF_ORIGINAL.
14765         * tree-ssanames.c (release_ssa_name): Allow calling with var = NULL.
14766         * tree.c (build_int_cst_type, cst_and_fits_in_hwi): New functions.
14767         * tree.h (REF_ORIGINAL): New macro.
14768         (build_int_cst_type, unsigned_type_for, zero_p,
14769         cst_and_fits_in_hwi, build_addr): Declare.
14770         * doc/invoke.texi (-fivopts): Document.
14771         (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND,
14772         PARAM_IV_MAX_CONSIDERED_USES): Document.
14773         * doc/passes.texi: Document induction variable optimizations pass.
14774
14775 2004-09-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14776
14777         * builtin-attrs.def (ATTR_NOTHROW_SENTINEL_1): New.
14778         * builtins.def (BUILT_IN_EXECLE): Set ATTR_NOTHROW_SENTINEL_1.
14779         * c-common.c (c_common_attribute_table): Accept parameters to
14780         sentinel attribute.
14781         (check_function_sentinel, handle_sentinel_attribute): Likewise.
14782         * doc/extend.texi: Update accordingly.
14783
14784 2004-09-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14785
14786         * builtin-attrs.def (ATTR_SENTINEL, ATTR_SENTINEL_NOTHROW_LIST):
14787         New.
14788         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP): Add `sentinel'
14789         attribute.
14790         * c-common.c (handle_sentinel_attribute, check_function_sentinel):
14791         New functions.
14792         (c_common_attribute_table): Add `sentinel' attribute.
14793         (check_function_arguments): Handle `sentinel' attribute.
14794         * doc/extend.texi: Document `sentinel' attribute.
14795
14796 2004-09-04  H.J. Lu  <hongjiu.lu@intel.com>
14797
14798         * configure: Regenerated.
14799
14800 2004-09-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14801
14802         * gimplify.c (internal_get_tmp_var): Remove unused var CLASS.
14803
14804         * tree.c (save_expr): No longer TREE_READONLY.
14805
14806 2004-09-04  Jan Hubicka  <jh@suse.cz>
14807
14808         * passes.c (rest_of_clean_state):  Fix merge conflict made during
14809         commiting the patch.
14810
14811 2004-09-04  Jan Hubicka  <jh@suse.cz>
14812
14813         * passes.c (rest_of_clean_state):  Decompose the instruction stream.
14814
14815 2004-09-04  Richard Sandiford  <rsandifo@redhat.com>
14816
14817         * doc/md.texi (shift patterns): New anchor.  Add reference to
14818         TARGET_SHIFT_TRUNCATION_MASK.
14819         * doc/tm.texi (TARGET_SHIFT_TRUNCATION_MASK): Document.
14820         * target.h (shift_truncation_mask): New target hook.
14821         * targhook.h (default_shift_truncation_mask): Declare.
14822         * targhook.c (default_shift_truncation_mask): Define.
14823         * target-def.h (TARGET_SHIFT_TRUNCATION_MASK): Define.
14824         (TARGET_INITIALIZER): Include it.
14825         * simplify-rtx.c (simplify_binary_operation): Combine ASHIFT, ASHIFTRT
14826         and LSHIFTRT cases.  Truncate arg1 if SHIFT_COUNT_TRUNCATED, otherwise
14827         reject all out-of-range values.  Fix sign-extension code for modes
14828         whose width is smaller than HOST_BITS_PER_WIDE_INT.
14829         * optabs.c (simplify_expand_binop, force_expand_binop): New functions.
14830         (expand_superword_shift, expand_subword_shift): Likewise.
14831         (expand_doubleword_shift_condmove, expand_doubleword_shift): Likewise.
14832         (expand_binop): Use them to implement double-word shifts.
14833         * config/arm/arm.c (arm_shift_truncation_mask): New function.
14834         (TARGET_SHIFT_TRUNCATION_MASK): Define.
14835
14836 2004-09-04  Jan Hubicka  <jh@suse.cz>
14837
14838         * tree.c (iterate_hash_expr): Optimize, avoid use of iterative_hash_object.
14839         (mix): New macro copied from hashtab.c
14840         (iterative_hash_hashval_t, iterative_hash_pointer,
14841         iterative_hash_host_wide_int): New functions based on hashtab.c
14842         implementation.
14843
14844 2004-09-04  Richard Sandiford  <rsandifo@redhat.com>
14845
14846         * config/mips/mips.md (mask): New mode attribute.
14847         (zero_extendsidi2): Add memory alternative.
14848         (*zero_extendsidi2_mem): Delete.
14849         (zero_extend[qh]i[sd]i2): Redefine using :GPR and :SHORT.  Use
14850         memory_operand in the TARGET_MIPS16 check.
14851         (*zero_extend[qh]i[sd]i2{,_mips16}): Name previously unnamed patterns.
14852         Redefine using :GPR and :SHORT.
14853         (zero_extendqihi2): Use memory_operand in the TARGET_MIPS16 check.
14854
14855 2004-09-04  Uros Bizjak  <uros@kss-loka.si>
14856
14857         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_RINT{,F,L}
14858         using rint_optab.
14859         (expand_builtin): Expand BUILT_IN_RINT{,F,L} using
14860         expand_builtin_mathfn.
14861         * genopinit.c (optabs): Rename trunc_optab to btrunc_optab. Use
14862         btrunc?f patterns for btrunc_optab. Implement rint_optab using
14863         rint?f patterns.
14864         * optabs.c (init_optabs): Initialize rint_optab.
14865         * optabs.h (enum optab_index): Rename OTI_trunc to OTI_btrunc.
14866         Add new OTI_rint.
14867         (btrunc_optab): Rename macro from trunc_optab.
14868         (rint_optab): Define corresponding macro.
14869
14870         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FRNDINT_FLOOR,
14871         UNSPEC_FRNDINT_CEIL, UNSPEC_FRNDINT_TRUNC, UNSPEC_FRNDINT_MASK_PM.
14872
14873         * config/i386/i386-protos.h (emit_i387_cw_initialization):
14874         Change prototype. Add new int parameter.
14875         * config/i386/i386.c (emit_i387_cw_initialization):
14876         Handle new rounding modes.
14877
14878         * config/i386/i386.h (enum fp_cw_mode): Delete.
14879         (MODE_NEEDED): Handle new rounding modes.
14880         (EMIT_MODE_SET): Change condition to handle new rounding modes.
14881
14882         * config/i386/i386.md (UNSPEC_FRNDINT_FLOOR, UNSPEC_FRNDINT_CEIL,
14883         UNSPEC_FRNDINT_TRUNC, UNSPEC_FRNDINT_MASK_PM): New unspecs to
14884         represent different rounding modes of frndint insn.
14885         (type): Add frndint type.
14886         (i387, length, memory): Handle this type.
14887         (i387_cw): New attribute definition.
14888         (*fix_truncdi_1, fix_truncdi_nomemory, fix_truncdi_memory,
14889         *fix_truncsi_1, fix_truncsi_nomemory, fix_truncsi_memory,
14890         *fix_trunchi_1, fix_trunchi_nomemory, fix_trunchi_memory):
14891         Add "i387_cw" attribute defined to "trunc".
14892         (x86_fnstcw_1): Remove comment.
14893         (*frndintxf2): Rename insn definition to frndintxf2. Move
14894         insn definition near rint?f2 expanders.
14895         (rintdf2, rintsf2, rintxf2): New expanders to implement rint,
14896         rintf and rintl built-ins as inline x87 intrinsics.
14897         (frndintxf2_floor): New pattern to implement floor rounding
14898         mode with frndint x87 instruction.
14899         (floordf2, floorsf2, floorxf2): New expanders to implement floor,
14900         floorf and floorl built-ins as inline x87 intrinsics.
14901         (frndintxf2_ceil): New pattern to implement ceil rounding
14902         mode with frndint x87 instruction.
14903         (ceildf2, ceilsf2, ceilxf2): New expanders to implement ceil,
14904         ceilf and ceill built-ins as inline x87 intrinsics.
14905         (frndintxf2_trunc): New pattern to implement trunc rounding
14906         mode with frndint x87 instruction.
14907         (btruncdf2, btruncsf2, btruncxf2): New expanders to implement trunc,
14908         truncf and truncl built-ins as inline x87 intrinsics.
14909         (frndintxf2_mask_pm): New pattern to implement rounding
14910         mode with exceptions with frndint x87 instruction.
14911         (nearbyintdf2, nearbyintsf2, nearbyintxf2): New expanders to
14912         implement nearbyint, nearbyintf and nearbyintl built-ins as
14913         inline x87 intrinsics.
14914
14915 2004-09-04  Richard Sandiford  <rsandifo@redhat.com>
14916
14917         * config/mips/mips.md (SHORT): New mode macro.
14918         (size): New mode attribute.
14919         (extend[qh]i[sd]i2): Redefine using :GPR and :SHORT.
14920         (*extend[qh]i[sd]i2): New define_insn_and_split, combining previous
14921         *extend[qh]i[sd]i2 and *extend[qh]i[sd]i2_mem patterns.  Use only if
14922         !ISA_HAS_SEB_SEH.
14923         (*extend[qh]i[sd]i2_se[bh]): New pattern, combining previous
14924         *extend[qh]isi2_hw patterns and extending them to di.
14925         (extendqihi2): Implement as define_insn_and_split that produces
14926         extendqisi2 after reload.
14927
14928 2004-09-03  Devang Patel  <dpatel@apple.com>
14929
14930         * Makefile.in (OBJS-common): Add tree-if-conv.o
14931         (tree-if-conv.o): New rule.
14932         * cfgloop.c (flow_loop_exit_edges_find): Set EDGE_LOOP_EXIT flag.
14933         (get_loop_body_in_bfs_order): New.
14934         * cfgloop.h (get_loop_body_in_bfs_order): New.
14935         * tree-flow.h (enum move_pos): Move here from ..
14936         * tree-ssa-loop-im.c (enum move_pos): here.
14937         (movement_possibility): Make externally visible.
14938         * tree-optimize.c (init_tree_optimization_passes): New entry for
14939         if conversion pass.
14940         * tree-pass.h (pass_if_conversion): New.
14941         * tree-ssa-operands.c (get_expr_operands): Handle COND_EXPR.
14942         * tree-if-conv.c: New file.
14943         * doc/passes.texi: Document tree if-conversion pass.
14944         * doc/tree-ssa.texi: Same.
14945
14946 2004-09-03  H.J. Lu  <hongjiu.lu@intel.com>
14947
14948         PR target/14925:
14949         Makefile.in (LIB2ADDEHSTATIC): New.
14950         (LIB2ADDEHSHARED): New.
14951         (LIBUNWIND): New.
14952         (LIBUNWINDDEP): New.
14953         (SHLIBUNWIND_LINK): New.
14954         (SHLIBUNWIND_INSTALL): New.
14955         (libgcc.mk): Pass LIB2ADDEHSTATIC, LIB2ADDEHSHARED, LIBUNWIND,
14956         LIBUNWINDDEP, SHLIBUNWIND_LINK and SHLIBUNWIND_INSTALL.
14957         (clean): Remove libunwind*
14958         (stage1-start): Remove and copy stage1/libunwind*.
14959         (stage2-start): Remove and copy stage2/libunwind*.
14960         (stage3-start): Remove and copy stage3/libunwind*.
14961         (stage4-start): Remove and copy stage4/libunwind*.
14962         (stageprofile-start): Remove and copy stageprofile/libunwind*.
14963         (stagefeedback-start): Remove and copy stagefeedback/libunwind*.
14964
14965         * config.gcc (ia64*-*-linux*): Always add t-libunwind to
14966         tmake_file. Add t-libunwind-elf and ia64/t-glibc-libunwind to
14967         tmake_file if --with-system-libunwind isn't used.
14968
14969         * config/ia64/t-glibc-libunwind: New file.
14970         * config/t-libunwind-elf: Likewise.
14971         * unwind-compat.c: Likewise.
14972         * unwind-compat.h: Likewise.
14973         * unwind-dw2-fde-compat.c: Likewise.
14974
14975         * config/ia64/t-glibc (LIB2ADDEH): Updated.
14976         * config/ia64/t-hpux (T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS.
14977
14978         * config/ia64/unwind-ia64.c: Include "unwind-compat.h". Define
14979         aliases if needed.
14980         * unwind-dw2-fde-glibc.c: Likewise.
14981         * unwind-dw2.c: Likewise.
14982
14983         * config/t-libunwind (LIB2ADDEH): Updated.
14984         (LIB2ADDEHSTATIC): New.
14985         (T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS.
14986         (TARGET_LIBGCC2_CFLAGS): Set to -DUSE_GAS_SYMVER.
14987
14988         * configure.ac: Change --enable-libunwind-exceptions to
14989         --with-system-libunwind. Don't define USE_LIBUNWIND_EXCEPTIONS.
14990         * configure: Regenerated.
14991         * config.in: Updated.
14992
14993         * doc/install.texi (ia64-*-linux): Require libunwind 0.98 or
14994         above and mention --with-system-libunwind.
14995         (ia64-*-hpux*): Mention --enable-libunwind-exceptions is
14996         removed in gcc 3.4.3 and later.
14997
14998         * gcc.c (init_spec): Add -lunwind to -lgcc_s if
14999         USE_LIBUNWIND_EXCEPTIONS is defined.
15000
15001         * mklibgcc.in: Support libunwind.
15002
15003 2004-09-03  H.J. Lu  <hongjiu.lu@intel.com>
15004
15005         * config/i386/i386.c (x86_branch_hints): Remove m_PENT4 and
15006         m_NOCONA.
15007
15008 2004-09-03  Richard Henderson  <rth@redhat.com>
15009
15010         PR middle-end/9997
15011         * cfgexpand.c (LOCAL_ALIGNMENT): Provide default.
15012         (STACK_ALIGNMENT_NEEDED, FRAME_GROWS_DOWNWARD): Likewise.
15013         (struct stack_var, EOC, stack_vars, stack_vars_alloc, stack_vars_num,
15014         stack_vars_sorted, stack_vars_conflict, stack_vars_conflict_alloc,
15015         frame_phase, get_decl_align_unit, add_stack_var, triangular_index,
15016         resize_stack_vars_conflict, add_stack_var_conflict,
15017         stack_var_conflict_p, add_alias_set_conflicts, stack_var_size_cmp,
15018         union_stack_vars, partition_stack_vars, dump_stack_var_partition,
15019         expand_one_stack_var_at, expand_stack_vars, expand_one_stack_var,
15020         expand_one_static_var, expand_one_hard_reg_var,
15021         expand_one_register_var, expand_one_error_var, defer_stack_allocation,
15022         expand_one_var, expand_used_vars_for_block, clear_tree_used): New.
15023         (expand_used_vars): Rewrite.
15024         * Makefile.in (cfgexpand.o): Update dependencies.
15025
15026 2004-09-04  Jan Hubicka  <jh@suse.cz>
15027
15028         * cfg.c (free_edge): Use ggc_free.
15029         (expunge_block): Use ggc_free.
15030         * passes.c (rest_of_clean_state): Free after compilation.
15031         * tree-ssa.c (delete_tree_ssa): Free annotations; call release_defs
15032         * tree-ssanames.c (release_defs): Ignore non-SSA_NAME arguments.
15033
15034 2004-09-03  James E Wilson  <wilson@specifixinc.com>
15035
15036         * tree-ssa-alias.c (may_be_aliased): Move TREE_STATIC check after
15037         DECL_EXTERNAL check.
15038
15039 2004-09-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
15040
15041         * final.c (output_in_slot): New global variable.
15042         (final_scan_insn): Add new state '2' to the 'nopeepholes' parameter.
15043         Pass 2 as 'nopeepholes' to self for insns in a SEQUENCE.  Set
15044         'output_in_slot' before invoking output_asm_insn.
15045         (output_asm_insn): Add a space after the tab if 'output_in_slot'
15046         is set.
15047         * config/sparc/sparc.c (output_return): Pass 2 as 'nopeepholes' to
15048         final_scan_insn.
15049         (output_sibcall): Likewise.
15050
15051 2004-09-03  Jan Hubicka  <jh@suse.cz>
15052
15053         * tree-ssa-operands.c (fini_ssa_operands): ggc_free unused arrays.
15054         * tree-ssanames (init_ssanames): Likewise.
15055
15056 2004-09-03  Ziemowit Laski  <zlaski@apple.com>
15057
15058         * stub-objc.c (objc_is_id, objc_declare_alias, objc_declare_class,
15059         objc_declare_protocols, objc_start_protocol,
15060         objc_start_class_interface, objc_start_category_interface,
15061         objc_continue_interface, objc_finish_interface,
15062         objc_add_instance_variable, objc_set_visibility, objc_set_method_type,
15063         objc_start_class_implementation, objc_start_category_implementation,
15064         objc_continue_implementation, objc_finish_implementation,
15065         objc_add_method_declaration, objc_start_method_definition,
15066         objc_finish_method_definition, objc_build_keyword_decl,
15067         objc_build_method_signature, objc_build_encode_expr,
15068         objc_build_protocol_expr, objc_build_selector_expr,
15069         objc_build_message_expr, objc_build_string_object,
15070         objc_get_class_reference, objc_get_protocol_qualified_type,
15071         objc_static_init_needed_p, objc_generate_static_init_call): New stubs.
15072
15073 2004-09-03  James E Wilson  <wilson@specifixinc.com>
15074
15075         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Add __mips3d.
15076
15077         * config/mips/generic.md (generic_frecip_fsqrt_step): New.
15078         * config/mips/mips-ps-3d.md (mips_rsqrt1_<fmt>): Use frsqrt1 type.
15079         (mips_rsqrt2_<fmt>): Use frsqrt2 type.
15080         (mips_recip1_<fmt>): Use frdiv1 type.
15081         (mips_recip2_<fmt>): Use frdiv2 type.
15082         * config/mips/mips.md (type): Add frdiv1, frdiv2, frsqrt1, frsqrt2.
15083         * config/mips/sb1.md (ir_sb1_fpu_2pipes, ir_sb1_fpu_1pipe): Add frdiv1
15084         and frsqrt1.
15085         (ir_sb1_fpu_step2_2pipes, ir_sb1_fpu_step2_1pipe): New.
15086
15087 2004-09-03  Daniel Jacobowitz  <dan@debian.org>
15088
15089         * reload.c (find_reloads): Swap operand_loc pointers for
15090         find_dummy_reload if we have swapped two operands.
15091
15092 2004-09-03  Hans-Peter Nilsson  <hp@axis.com>
15093
15094         * config/cris/cris.h (ASM_OUTPUT_CASE_END): Use prev_nonnote_insn
15095         to get the tablejump-insn before the jump-table label.
15096
15097 2004-09-03  Ziemowit Laski  <zlaski@apple.com>
15098
15099         * c-common.h (objc_is_id, objc_declare_alias, objc_declare_class,
15100         objc_declare_protocols, objc_build_message_expr,
15101         objc_finish_message_expr, objc_build_selector_expr,
15102         objc_build_protocol_expr, objc_build_encode_expr,
15103         objc_build_string_object, objc_get_protocol_qualified_type,
15104         objc_get_class_reference, objc_get_class_ivars,
15105         objc_start_class_interface, objc_start_category_interface,
15106         objc_start_protocol, objc_continue_interface, objc_finish_interface,
15107         objc_start_class_implementation, objc_start_category_implementation,
15108         objc_continue_implementation, objc_finish_implementation,
15109         objc_set_visibility, objc_set_method_type, objc_build_method_signature,
15110         objc_add_method_declaration, objc_start_method_definition,
15111         objc_finish_method_definition, objc_add_instance_variable,
15112         objc_build_keyword_decl, objc_build_throw_stmt, objc_begin_try_stmt,
15113         objc_finish_try_stmt, objc_begin_catch_clause,
15114         objc_finish_catch_clause, objc_build_finally_clause,
15115         objc_build_synchronized, objc_static_init_needed_p,
15116         objc_generate_static_init_call): New prototypes.
15117
15118 2004-09-03  Steve Ellcey  <sje@cup.hp.com>
15119
15120         * config/ia64/ia64.c (ia64_function_arg): Use PARALLEL even if there
15121         is only one reg.
15122         (ia64_function_value): Ditto.
15123
15124 2004-09-03  Jan Beulich  <jbeulich@novell.com>
15125
15126         * config.gcc: Resurrect NetWare as a target. Handle special case of
15127         Novell linker to be used (specified through --with-ld=) and threading
15128         model of either Posix (default) or NKS.
15129         * config/i386/i386.c (ix86_return_pops_args): Conditionalize popping
15130         of incoming hidden argument on KEEP_AGGREGATE_RETURN_POINTER.
15131         * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): New.
15132         * config/i386/netware.c, config/i386/netware.h: New.
15133         * config/i386/nwld.c, config/i386/nwld.h: New.
15134         * config/i386/netware-crt0.c: New.
15135         * config/i386/netware-libgcc.c: New.
15136         * config/i386/netware-libgcc.def: New.
15137         * config/i386/netware-libgcc.exp: New.
15138         * config/i386/t-netware, config/i386/t-nwld: New.
15139         * gthr-nks.h: New.
15140         * doc/install.texi: Document NKS threading model.
15141
15142 2004-09-03  Jan Beulich  <jbeulich@novell.com>
15143
15144         PR c/7054
15145         * defaults.h (TARGET_DEFAULT_PACK_STRUCT): Provide default.
15146         * tree.h (initial_max_fld_align): Declare
15147         * stor-layout.c (initial_max_fld_align): Define and initialize.
15148         (maximum_field_alignment): Initialize to the same value.
15149         * common.opt: Add -fpack-struct= variant of switch.
15150         * opts.c: Handle -fpack-struct= variant of switch.
15151         * c-pragma.c: Change #pragma pack() handling so that it becomes
15152         compatible to other compilers: accept individual 'push' argument,
15153         make final pop restore (command line) default, correct interaction
15154         of push/pop and sole specification of a new alignment (so that the
15155         sequence #pragma pack(push) - #pragma pack(<n>) becomes identical
15156         to #pragma pack(push, <n>).
15157         * doc/extend.texi: New node "Structure-Packing Pragmas" under
15158         "Pragmas", describing #pragma pack.
15159         * doc/invoke.texi: Document -fpack-struct=<n> variant of switch.
15160         * doc/tm.texi: Adjust description for HANDLE_PRAGMA_PACK_PUSH_POP.
15161         Document new TARGET_DEFAULT_PACK_STRUCT.
15162
15163 2004-09-03  Devang Patel  <dpatel@apple.com>
15164
15165         * dwarf2out.c (gen_field_die). Equate decl number to die.
15166
15167 2004-09-03  Vladimir Makarov  <vmakarov@redhat.com>
15168
15169         PR target/15832
15170         * global.c (modify_reg_pav): New function.
15171         (make_accurate_live_analysis): Call the new function.  Move pavin
15172         modification by earlyclobber set into the new function.
15173
15174 2004-09-03  Andreas Schwab  <schwab@suse.de>
15175
15176         * config/m68k/m68k.c (output_andsi3): Use -1 instead of
15177         (HOST_WIDE_INT)0xffffffff since CONST_INT value are always sign
15178         extended.
15179
15180 2004-09-02  Jan Beulich  <jbeulich@novell.com>
15181
15182         * Makefile.in (LIB2ADDEHDEP): Add unwind.h and unwind-pe.h.
15183         * mklibgcc.in (libgcc_dep): New, covering general dependencies, but
15184         not unwind code specific ones.
15185         (libgcc2_c_dep): Replace general dependencies with use of libgcc_dep.
15186         Remove unwind code specific dependencies.
15187         (libgcov_c_dep): Replace general dependencies with use of libgcc_dep.
15188         Remove gbl-ctors.h.
15189         Add libgcc_dep to output generated for LIB2ADD, LIB2ADDEH, and
15190         LIB2ADD_ST. Add LIB2ADDEHDEP to output generated for LIB2ADDEH.
15191         * tsystem.h: Declare memcpy and memset when inhibit_libc.
15192
15193 2004-09-02  Roman Zippel  <zippel@linux-m68k.org>
15194
15195         * combine.c (try_combine): Delay modifying of insns which cannot
15196         be easily undone.
15197
15198 2004-09-02  Daniel Berlin  <dberlin@dberlin.org>
15199
15200         * gcc/common.opt: Rename ivcanon to tree-loop-ivcanon, tree-lim to
15201         tree-loop-im.
15202         * gcc/tree-ssa-loop.c: Ditto
15203         * gcc/tree-ssa-loop-ivcanon.c: Ditto
15204         * gcc/doc/invoke.texi: Ditto.
15205
15206 2004-09-02  Ziemowit Laski  <zlaski@apple.com>
15207
15208         * c-decl.c (store_parm_decls_newstyle): Make static.
15209         (store_parm_decls_from): New function.
15210         * c-tree.h (store_parm_decls_newstyle): Remove prototype.
15211         (store_parm_decls_from): New prototype.
15212
15213 2004-09-02  David Edelsohn  <edelsohn@gnu.org>
15214
15215         * config/rs6000/rs6000.c (expand_block_move): Use SImode and
15216         HImode with STRICT_ALIGNMENT.
15217
15218 2004-09-02  Mark Mitchell  <mark@codesourcery.com>
15219
15220         * config/arm/bpabi.h (TARGET_BPABI_CPP_BUILTINS): Define.
15221         (TARGET_OS_CPP_BUILTINS): Likewise.
15222         * config/arm/symbian.h (TARGET_OS_CPP_BUILTINS): Include
15223         TARGET_BPABI_CPP_BUILTINS.
15224
15225 2004-09-02  Roman Zippel  <zippel@linux-m68k.org>
15226
15227         * combine.c (distribute_notes): Don't add REG_LABEL to jump insn.
15228
15229 2004-09-02  Eric Christopher  <echristo@redhat.com>
15230
15231         * builtins.c (expand_builtin_cabs): Delete.
15232         (expand_builtin): If unable to fold the values do a normal
15233         library call for builtin_cab*.
15234         (fold_builtin_cabs): Depend on optimize and optimize_size.
15235         * optabs.c (expand_cmplxdiv_straight): Delete.
15236         (expand_cmplxdiv_wide): Ditto.
15237         (expand_vector_binop): Ditto.
15238         (expand_vector_unop): Ditto.
15239         (expand_complex_abs): Delete.
15240         (expand_binop): Remove calls to above functions.
15241         Remove open coding of complex arithmetic.
15242         (expand_unop): Ditto.
15243         * optabs.h: Remove prototypes.
15244
15245 2004-09-02  Ziemowit Laski  <zlaski@apple.com>
15246
15247         * c-decl.c (store_parm_decls_newstyle): Make externally visible.
15248         * c-tree.h (store_parm_decls_newstyle): New prototype.
15249
15250 2004-09-02  Geoffrey Keating  <geoffk@apple.com>
15251
15252         * config/rs6000/rs6000.c (expand_block_clear): Use vector
15253         instructions if available.
15254         (expand_block_move): Likewise.
15255
15256 2004-09-03  Jan Hubicka  <jh@suse.cz>
15257
15258         * rtl.def (RANGE_INFO, RANGE_REG, RANGE_VAR, RANGE_LIVE): Kill.
15259
15260 2004-09-02  Mark Mitchell  <mark@codesourcery.com>
15261
15262         * config/arm/symbian.h (LIB_SPEC): Define to empty.
15263         * config/arm/t-symbian (SHLIB_LC): Likewise.
15264
15265 2004-09-02  Paul Brook  <paul@codesourcery.com>
15266
15267         * config/arm/bpabi.c (__aeabi_ul2d, __aeabi_ul2f): Remove.
15268
15269 2004-09-02  Richard Sandiford  <rsandifo@redhat.com>
15270
15271         * config/mips/mips.c (mips_classify_symbol, mips_fetch_insns):
15272         (mips_restore_gp, mips_set_return_address, mips_expand_prologue)
15273         (mips16_fp_args, mips_avoid_hazard): Replace abort with gcc_assert.
15274         (build_mips16_call_stub): Likewise.  Remove daft CALL_INSN checks.
15275         (mips_issue_rate): Remove unreachable abort.
15276         (mips_symbolic_constant_p, mips_symbolic_address_p, mips_symbol_insns)
15277         (mips_output_move, mips_relational_operand_ok_p, mips_arg_info)
15278         (mips_block_move_straight, print_operand_address, mips_file_start)
15279         (mips_initial_elimination_offset, mips16_fp_args, dump_constants_1)
15280         (mips_output_conditional_branch, mips_expand_builtin_direct)
15281         (mips_expand_builtin_compare): Replace abort with gcc_unreachable.
15282         * config/mips/mips.md (rotr<mode>3, consttable_float): Replace abort
15283         with gcc_assert.
15284
15285 2004-09-02  Richard Sandiford  <rsandifo@redhat.com>
15286
15287         * config/mips/mips.md (*lea_high64): Change split condition to
15288         flow2_completed.  Add a peephole2 to generate a more parallel version.
15289
15290 2004-09-02  Jan Hubicka  <jh@suse.cz>
15291
15292         * gimplify.c (gimplify_compound_lval): Move "stack" varray out of
15293         GGC.
15294
15295         * ggc-page.c: include tree-flow.h.
15296         (extra_order_size_table): Add stmt_ann_d.
15297         (STAT_LABEL): Rename from ....
15298         (LABEL): ... this one.
15299         * Makefile.in (ggc-page.o): Add dependency.
15300
15301         * ggc-common.c (ggc_force_collect): New global variable.
15302         (loc_description): Add fields "freed", "collected"
15303         (ptr_hash): New static hash
15304         (ptr_hash_entry): New structure.
15305         (hash_ptr,eq_ptr,ggc_prune_ptr): New static functions.
15306         (ggc_record_overhead): Take ptr argument, record it
15307         (ggc_prune_overhead_list, ggc_free_overhead): New functions.
15308         (cmp_statistics): Imrove sorting.
15309         (dump_ggc_loc_statistics): Output newly collected statistics
15310         * ggc-page.c (ggc_alloc): Update call of ggc_record_overhead
15311         (ggc_free): Call ggc_free_overhead.
15312         (ggc_collect): Force collection when asked to be forced.
15313         (ggc_collect): Call ggc_prune_overhead_list.
15314         * ggc.h (ggc_force_collect): Declare
15315         (ggc_record_overhead): Update prototype.
15316         (ggc_free_overhead, ggc_prune_overhead_list): Declare.
15317
15318 2004-09-02  James E Wilson  <wilson@specifixinc.com>
15319
15320         * common.opt (ftrapping-math): Default to on.
15321
15322 2004-09-02  Richard Earnshaw  <rearnsha@arm.com>
15323
15324         * arm/predicates.md (arm_reload_memory_operand): Allow MEM.
15325
15326 2004-09-02  Denis Chertykov  <denisc@overta.ru>
15327
15328         PR target/16884
15329         * config/avr/avr.md ("movmemhi"): Substitute match_dup to
15330         match_scratch.
15331         (*movmemqi_insn): Likewise.
15332         (*movmemhi): Likewise.
15333         (clrmemhi): Likewise.
15334         (*clrmemqi): Likewise.
15335         (*clrmemhi): Likewise.
15336
15337 2004-09-02  Paul Brook  <paul@codesourcery.com>
15338
15339         * config.gcc (arm*-*-eabi* | arm*-*-symbianelf*): Set
15340         default_use_cxa_atexit=yes.
15341
15342 2004-09-02  Alan Modra  <amodra@bigpond.net.au>
15343
15344         * config/rs6000/linux64.h: Don't include signal.h or sys/ucontext.h.
15345         (struct kernel_old_ucontext): Delete.
15346         (struct gcc_pt_regs, gcc_sigcontext, gcc_ucontext): New.
15347         (MD_FALLBACK_FRAME_STATE_FOR): Use gcc_* structs.  Only define
15348         when IN_LIGGCC2.
15349
15350 2004-09-02  Richard Sandiford  <rsandifo@redhat.com>
15351
15352         * toplev.c (process_options): Fix typo.
15353
15354 2004-09-01  Richard Henderson  <rth@redhat.com>
15355
15356         PR middle-end/17258
15357         * calls.c (initialize_argument_information): Tighten pass-through
15358         conditions for pass-by-reference.  Remove dead TARGET_EXPR code.
15359         Use build_fold_addr_expr.
15360         (emit_library_call_value_1): Use build_fold_addr_expr.  Remove code
15361         that assumes ADDR_EXPR allocates stack space.
15362         * fold-const.c (build_fold_addr_expr_with_type): Look through
15363         WITH_SIZE_EXPR.
15364
15365 2004-09-01  Dan Nicolaescu  <dann@ics.uci.edu>
15366
15367         * gengenrtl.c (gendef): Use rtx_alloc, don't do PUT_CODE.
15368         * ggc.h (ggc_alloc_rtx): Delete.
15369
15370 2004-09-01  Roger Sayle  <roger@eyesopen.com>
15371
15372         * expmed.c (enum alg_code): Remove long unused enumeration values.
15373         (struct mult_cost): New structure to hold the "score" of a synthetic
15374         multiply sequence, including both a rtx_cost and a latency field.
15375         (MULT_COST_LESS): New macro to compare mult_cost to a constant.
15376         (CHEAPER_MULT_COST): New macro to compare two mult_costs.
15377         (struct algorithm): Change type of cost field to be mult_cost.
15378         (synth_mult): Change type of cost_limit argument to be a
15379         pointer to a mult_cost.  Update all cost comparisons to use the
15380         new mult_cost infrastructure.  For alg_add_factor and
15381         alg_sub_factor operations, latency is lower than the rtx_cost.
15382         (choose_mult_variant):  Update calls to synth_mult.  Perform
15383         cost comparisons using the new mult_cost infrastructure.
15384         (expand_mult_highpart): Use alg.cost.cost instead of alg.cost
15385         to optain the total rtx_cost of a synth_mult "algorithm".
15386
15387 2004-09-01  David Edelsohn  <edelsohn@gnu.org>
15388
15389         * config/rs6000/power4.md: Increase store latency to 12.
15390         * config/rs6000/power5.md: Same.
15391
15392 2004-09-01  James E Wilson  <wilson@specifixinc.com>
15393
15394         PR target/14064
15395         * config/avr/avr.c (avr_unique_section): Delete prototype and
15396         definition.
15397         (TARGET_ASM_UNIQUE_SECTION): Delete.
15398
15399 2004-09-01  Ziemowit Laski  <zlaski@apple.com>
15400
15401         * c-parse.in (primary): Call objc_build_message_expr(),
15402         objc_build_selector_expr(), objc_build_protocol_expr(),
15403         objc_build_encode_expr() and objc_build_string_object() instead of
15404         build_message_expr(), build_selector_expr(), build_protocol_expr(),
15405         build_encode_expr() and build_objc_string_object(), respectively.
15406         (component_decl_list2): Call objc_get_class_ivars() instead of
15407         get_class_ivars_from_name().
15408         (keyworddecl): Call objc_build_keyword_decl() instead of
15409         build_keyword_decl().
15410         (receiver): Call objc_get_class_reference() instead of
15411         get_class_reference().
15412         (reswords): Add blank line before @@ifobjc section, for clarity.
15413
15414 2002-09-01  Fariborz Jahanian <fjahanian@apple.com>
15415
15416         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Restrict alignment
15417         to Altivec vetors.
15418
15419 2004-09-01  Wu Yongwei  <adah@sh163.net>
15420             Danny Smith  <dannysmith@users.sourceforge.net>
15421
15422         * gthr-win32.h (__gthread_recursive_mutex_t): Use 'unsigned long',
15423         not Windows 'DWORD'.
15424         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Correct typo.
15425         (__GTHREAD_RECURSIVE_MUTEX_INIT_DEFAULT): Likewise.
15426         (__gthr_win32_recursive_mutex_init_function): Add prototype for
15427         __GTHREAD_HIDE_WIN32API case..
15428         (__gthr_win32_recursive_mutex_lock): Likewise.
15429         (__gthr_win32_recursive_mutex_trylock): Likewise.
15430         (__gthr_win32_recursive_mutex_unlock): Likewise.
15431         (__gthread_recursive_mutex_init_function); Add definition for
15432         __GTHREAD_HIDE_WIN32API case.
15433         (__gthread_recursive_mutex_lock): Correct call to InterlockedDecrement.
15434         * config/i386/grthr-win32.c (__gthread_recursive_mutex_lock): Correct
15435         call to InterlockedDecrement.
15436
15437 2004-09-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15438
15439         * tree-tailcall.c (find_tail_calls): Also fail is statement has
15440         volatile operands.
15441
15442         * tree-ssa.c (propagate_into_addr): Properly test for LHR.
15443
15444         * doc/c-tree.texi: Document new operands for ARRAY_REF and
15445         COMPONENT_REF.
15446
15447 2004-09-01  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15448
15449         * Makefile.in (rtl-profile.o, value-prof.o): Add GCC_H dependency.
15450         * common.opt (fspeculative-prefetching): New.
15451         * flags.h (flag_speculative_prefetching_set): Declare.
15452         * gcov-io.c (gcov_write_counter, gcov_read_counter): Allow negative
15453         values.
15454         * opts.c (flag_sepculative_prefetching_set): New variable.
15455         (common_handle_option): Handle -fspeculative-prefetching.
15456         * passes.c (rest_of_compilation): Ditto.
15457         * profile.c (instrument_values, compute_value_histograms, branch_prob):
15458         Use vectors instead of arrays.
15459         * toplev.c (process_options): Handle -fspeculative-prefetching.
15460         * rtl-profile.c: Include ggc.h.
15461         (rtl_gen_interval_profiler, rtl_gen_pow2_profiler,
15462         rtl_gen_one_value_profiler_no_edge_manipulation,
15463         rtl_gen_one_value_profiler, rtl_gen_const_delta_profiler): Type of
15464         argument changed.
15465         * tree-profile.c (tree_gen_interval_profiler, tree_gen_pow2_profiler,
15466         tree_gen_one_value_profiler, tree_gen_const_delta_profiler): Type of
15467         argument changed.
15468         * value-prof.c: Include ggc.h.
15469         (NOPREFETCH_RANGE_MIN, NOPREFETCH_RANGE_MAX): New
15470         macros.
15471         (insn_prefetch_values_to_profile, find_mem_reference_1,
15472         find_mem_reference_2, find_mem_reference, gen_speculative_prefetch,
15473         speculative_prefetching_transform): New.
15474         (value_profile_transformations): Call speculative_prefetching_transform.
15475         (insn_values_to_profile): Call insn_prefetch_values_to_profile.
15476         (insn_divmod_values_to_profile, rtl_find_values_to_profile,
15477         tree_find_values_to_profile, find_values to profile): Use vectors
15478         instead of arrays.
15479         (free_profiled_values): Removed.
15480         * value-prof.h (struct histogram_value): Renamed to
15481         struct histogram_value_t.
15482         (histogram_value, histogram_values): New types.
15483         (find_values_to_profile): Declaration changed.
15484         (free_profiled_values): Removed.
15485         (struct profile_hooks): Type of argument of the hooks changed to
15486         histogram_value.
15487         * doc/invoke.texi (-fspeculative-prefetching): Document.
15488
15489 2004-09-01  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15490
15491         PR rtl-optimization/16408
15492         * gcse.c (replace_store_insn): Fix LIBCALL/RETVAL notes.
15493
15494 2004-09-01  Richard Henderson  <rth@redhat.com>
15495
15496         * config/ns32k/ns32k.h (TRANSFER_FROM_TRAMPOLINE): Remove.
15497         (TRAMPOLINE_TEMPLATE): Merge code from __trampoline inline.
15498
15499 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
15500
15501         * libgcc-std.ver (GCC_3.4.2): Export also __trampoline_setup.
15502
15503 2004-09-01  Mike Stump  <mrs@apple.com>
15504
15505         * config/darwin.c (machopic_symbol_defined_p): In addition to
15506         being SYMBOL_REF_LOCAL_P, a symbol must also be
15507         ! SYMBOL_REF_EXTERNAL_P, as only those are _always_ locally
15508         defined in this output file, or translation unit in the case
15509         of IMA not being used.
15510         (machopic_output_indirection): SYMBOL_REF_LOCAL_P symbols
15511         never need .indirect_symbol when indirecting.
15512
15513 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
15514
15515         * Makefile.in (bb-reorder.o): Add several dependencies.
15516
15517 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
15518
15519         * fold-const.c (operand_equal_p): Require equal sign also for
15520         FIX_{CEIL,TRUNC,FLOOR,ROUND}_EXPR.
15521
15522 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
15523
15524         * config.gcc (--with-cpu on ARM): Preserve the canonical cpu name
15525         for use in configargs.h.  Put the cname in a separate variable.  Use
15526         that to set target_cpu_default2.
15527
15528 2004-09-01  J"orn Rennecke <joern.rennecke@superh.com>
15529             Nick Clifton  <nickc@redhat.com>
15530
15531         * config/sh/sh.md ("length"): Increase branch length when
15532         SH1 pic code to 18: 12 bytes of instructions, 4 byte for the
15533         constant, 2 byte for aligning the constant.
15534
15535 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
15536
15537         * arm/arm-cores.def (ARM_CORE): Add new field for the real name of the
15538         CPU.
15539         (arm7tdmi-s): New CPU name.
15540         * arm/arm.c (ARM_CORE): Update for new format.
15541         * arm/arm.h (ARM_CORE): Likewise.
15542         * arm/gentune.sh: Update for extra field.
15543         * config.gcc: Likewise.
15544         * arm/arm-tune.md: Regenerate.
15545         * doc/invoke.texi: Document the real processor names for ARM cpus.
15546
15547 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
15548
15549         * arm/ieee754-df.S (aeabi_ul2d, aeabi_l2d, floatundidf)
15550         (floatdidf): New functions.
15551         * arm/ieee754-sf.S (aeabi_ul2f, aeabi_l2f, floatundisf)
15552         (floatdisf): New functions.
15553         * t-arm-elf: Use them.
15554
15555 2004-09-01  Ziemowit Laski  <zlaski@apple.com>
15556
15557         * c-common.h (lookup_interface): Remove prototype.
15558         (is_class_name): Rename to objc_is_class_name.
15559         (lookup_objc_ivar): Rename to objc_lookup_ivar.
15560         (get_current_scope): Rename to objc_get_current_scope.
15561         * c-decl.c (get_current_scope): Rename to objc_get_current_scope.
15562         * c-parse.in (parmlist_or_identifiers_1): Get rid of unused variable.
15563         (yylexname): Call objc_is_class_name() instead of is_class_name().
15564         * c-typeck.c (build_external_ref): Call objc_lookup_ivar()
15565         instead of lookup_objc_ivar().
15566         * stub-objc.c (lookup_interface): Remove stub.
15567         (is_class_name): Rename to objc_is_class_name.
15568         (lookup_objc_ivar): Rename to objc_lookup_ivar.
15569
15570 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
15571
15572         * config.gcc (arm*-*-symbianelf*): Do not include t-bpabi.
15573         * config/arm/lib1funcs.asm: Do not include supplemental .S files
15574         when compiling for Symbian.
15575         * config/arm/symbian.h (RENAME_LIBRARY): New macro.
15576         (TARGET_OS_CPP_BUILTINS): Likewise.
15577         * config/arm/t-symbian (LIB1ASMFUNCS): Define.
15578
15579 2004-08-31  Stan Shebs  <shebs@apple.com>
15580
15581         * toplev.c (process_options): Ensure debug_hooks is initialized.
15582
15583 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
15584
15585         * target-def.h (TARGET_CXX): Add TARGET_CXX_EXPORT_CLASS_DATA.
15586         * target.h (cxx): Add export_class_data.
15587         * config/arm/arm.c (arm_cxx_export_class_data): New function.
15588         (TARGET_CXX_EXPORT_CLASS_DATA): Use it.
15589         * doc/tm.texi (TARGET_CXX_EXPORT_CLASS_DATA): Document it.
15590
15591 2004-08-31  Kaz Kojima  <kkojima@gcc.gnu.org>
15592
15593         * config/sh/sh.c (output_branch): Check the insn length possibly
15594         in the delayed slot.
15595
15596 2004-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15597
15598         * tree-pretty-print.c (dump_generic_node, case CONVERT_EXPR): Add
15599         blank after ')'.
15600         (op_symbol, case *_{DIV,MOD}_EXPR): Say what rounding is being used.
15601
15602         * c-common.c (c_alignof_expr): Use DECL_ALIGN_UNIT and TYPE_ALIGN_UNIT.
15603         (c_sizeof_of_alignof_type): Likewise.
15604         * expr.c (array_ref_element_size): Likewise.
15605         (highest_pow2_factor_for_target): Likewise.
15606         * gimplify.c (canonicalize_addr_expr): Likewise.
15607         (gimplify_compound_lval): Likewise.
15608         * stor-layout.c (finalize_record_size, finalize_type_size): Likewise.
15609         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.
15610         * varasm.c (assemble_variable): Likewise.
15611         (output_constant_def_contents): Alignments are unsigned.
15612
15613 2004-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15614             Jeff Law  <law@redhat.com>
15615
15616         * tree-cfg.c (cfg_remove_useless_stmts_bb): Also invalidate if VAL
15617         gets modified.
15618
15619 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
15620
15621         * hooks.c (hook_bool_void_true): New function.
15622         * hooks.h (hook_bool_void_true): Declare.
15623         * target-def.h (TARGET_CXX): Add
15624         TARGET_CXX_KEY_METHOD_MAY_BE_INLINE.
15625         * target.h (struct cxx): Add key_method_may_be_inline.
15626         * config/arm/arm.c (arm_cxx_key_method_may_be_inline): New
15627         function.
15628         (TARGET_CXX_KEY_METHOD_MAY_BE_INLINE): New macro.
15629         * config/arm/bpabi.h: Use __THUMB_INTERWORK__ instead of
15630         __THUMB_INTERWORK.
15631
15632 2004-08-31  Denis Chertykov  <denisc@overta.ru>
15633
15634         PR target/15417
15635         * config/avr/avr.c (avr_hard_regno_mode_ok): Enable usage of
15636         frame pointer register only in Pmode while reload in progress.
15637
15638 2004-08-31  Stephane Carrez  <stcarrez@nerim.fr>
15639
15640         PR target/15334
15641         * config/m68hc11/m68hc11.c (m68hc11_override_options): Disable -fweb
15642         because it breaks the 32-bit shift patterns that rely on a match_dup.
15643
15644 2004-08-31  Matt Austern  <austern@apple.com>
15645
15646         * config/darwin.c (darwin_make_decl_one_only): Allocate section
15647         names once per compilation, instead of once per symbol.
15648
15649 2004-08-31  Paolo Bonzini  <bonzini@gnu.org>
15650
15651         * Makefile.in (build_subdir): New substitution.
15652         (fixinc.sh): Simplify heavily since fixincludes is already built.
15653         (stmp-fixinc): Depend on specs.ready.
15654         (install-mkheaders): Use new location of fixincludes.
15655         (clean): Do not descend into fixinc.
15656         (FORBUILD): Replace with ../$(build_subdir).
15657         * configure.ac (build_subdir): Substitute.
15658         (FORBUILD): Do not set.
15659         (all_outputs): Remove fixinc/Makefile.
15660         (default commands): Do not create links in fixinc.
15661         * mkfixinc.sh: New, from fixinc/mkfixinc.sh without
15662         the fixincludes configuration steps and substituting
15663         @FIXINCL@ in fixinc.in.
15664         * fixinc.in: New, from fixinc/fixincl.sh.
15665
15666         * fixinc/*: Removed.
15667
15668 2004-08-31  Joseph S. Myers  <jsm@polyomino.org.uk>
15669
15670         * attribs.c (strip_attrs): Remove.
15671         (split_specs_attrs): Move ...
15672         * c-decl.c: ... to here.
15673         * tree.h (split_specs_attrs, strip_attrs): Remove.
15674         * c-tree.h (split_specs_attrs): Declare.
15675
15676 2004-08-31  Richard Sandiford  <rsandifo@redhat.com>
15677
15678         * read-rtl.c: Disable RTL checking.
15679         (apply_macro_to_rtx): Use XTMPL to access 'T' fields.
15680
15681 2004-08-31  Richard Sandiford  <rsandifo@redhat.com>
15682
15683         * config/mips/mips.md (fcond): New code macro and attribute.
15684         (sunordered_[sd]f, suneq_[sd]f, sunlt_[sd]f, sunle_[sd]f)
15685         (seq_[sd]f, slt_[sd]f, sle_[sd]f): Redefine using :SCALARF and fcond.
15686         (sgt_[sd]f, sge_[sd]f): Redefine using :SCALARF.
15687
15688 2004-08-30  Mark Mitchell  <mark@codesourcery.com>
15689
15690         Revert:
15691         2004-08-29  Mark Mitchell  <mark@codesourcery.com>
15692         PR rtl-optimization/16590
15693         * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes.
15694
15695 2004-08-30  Andrew Pinski  <apinski@apple.com>
15696
15697         * hard-reg-set.h:
15698         s/HOST_BITS_PER_WIDES_FAST_INT/HOST_BITS_PER_WIDEST_FAST_INT.
15699         * ChangeLog: Fix previous ChangeLog entry.
15700
15701         PR rtl-opt/13987
15702         * config.host (use_long_long_for_widest_fast_int): New, default is
15703         off.
15704         (ia64-*-hpux*): Enable use_long_long_for_widest_fast_int.
15705         * configure.ac: If use_long_long_for_widest_fast_int, then
15706         define USE_LONG_LONG_FOR_WIDEST_FAST_INT.
15707         * configure: Regenerate.
15708         * config.in: Regenerate.
15709         * hwint.h (HOST_WIDEST_FAST_INT, HOST_BITS_PER_WIDEST_FAST_INT):
15710         New: widest integer type supported efficiently in hardware for the
15711         host.
15712         * sbitmap.h (SBITMAP_ELT_BITS): Define based on
15713         HOST_BITS_PER_WIDEST_FAST_INT.
15714         (SBITMAP_ELT_TYPE): Define based on HOST_WIDEST_FAST_INT.
15715         * hard-reg-set.h (HARD_REG_ELT_TYPE): Define based on
15716         HOST_WIDEST_FAST_INT
15717         instead of HOST_WIDE_INT.
15718         (HARD_REG_SET_LONGS): Likewise.
15719         (UHOST_BITS_PER_WIDE_INT): Likewise.
15720         Change the checks for the fast cases to be based on
15721         HOST_BITS_PER_WIDEST_FAST_INT instead of HOST_BITS_PER_WIDE_INT.
15722
15723 2004-08-30  Steven Bosscher  <stevenb@suse.de>
15724
15725         * cfgcleanup.c (merge_memattrs): Look at the value of MEM_SIZE,
15726         not the pointers.
15727
15728 2004-08-30  Geoffrey Keating  <geoffk@apple.com>
15729
15730         PR 12738
15731         PR 17205
15732         Radar 3460526
15733         Radar 3775729
15734         * c-decl.c (grokdeclarator): Produce error for 'static' on local
15735         function declaration.
15736
15737 2004-08-30  Richard Henderson  <rth@redhat.com>
15738
15739         * expr.c (array_ref_element_size): Force aligned_size back to
15740         sizetype.
15741         (component_ref_field_offset): Similarly for aligned_offset.
15742         * tree.c (recompute_tree_invarant_for_addr_expr): Mark raw
15743         low-bound, element-size, field-offset fields rather than
15744         computed values.
15745
15746 2004-08-30  Joseph S. Myers  <jsm@polyomino.org.uk>
15747
15748         * c-parse.in (parmlist_or_identifiers_1): Remove unreachable and
15749         redundant code.
15750
15751 2004-08-30  Joseph S. Myers  <jsm@polyomino.org.uk>
15752
15753         * c-tree.h (struct language_function): Add arg_info element.
15754         * c-decl.c (current_function_arg_info): New.
15755         (grokdeclarator, store_parm_decls): Use it instead of
15756         DECL_ARGUMENTS.
15757         (c_push_function_context, c_pop_function_context): Save and
15758         restore it.
15759
15760 2004-08-30  Richard Henderson  <rth@redhat.com>
15761
15762         * c-typeck.c (build_unary_op): Don't expand ADDR_EXPR of a
15763         COMPONENT_REF to pointer arithmetic.
15764         * varasm.c (initializer_constant_valid_p): Allow "&(*c).f", for
15765         constant "c" as a valid constant initializer.  Allow narrowing of
15766         differences against the same base object, for any base object.
15767
15768 2004-08-30  Richard Henderson  <rth@redhat.com>
15769
15770         * expr.c (expand_expr_addr_expr): New.
15771         (expand_expr_real_1) <case ADDR_EXPR>: Use it.
15772
15773 2004-08-30  Richard Sandiford  <rsandifo@redhat.com>
15774
15775         * config/mips/mips.c (MIPS_FP_CONDITIONS): New macro.
15776         (mips_fp_condition): New enum.
15777         (mips_fp_conditions): New array.
15778         (print_fcc_operand): Delete.
15779         (print_operand): Remove %V, %v and %Q.  Redefine %Z so that it prints
15780         the operand and comma if and only if ISA_HAS_8CC.  Add %Y.
15781         (builtin_description): Add "cond" field.
15782         (DIRECT_BUILTIN): Initialize it.
15783         (CMP_{SCALAR,PS,4S}_BUILTINS, MOVTF_BUILTINS): Split INSN parameter
15784         into INSN and CODE.  Initialize the "cond" field.
15785         (CMP_BUILTINS): Update accordingly.
15786         (mips_bdesc): Use MIPS_FP_CONDITIONS to invoke CMP_BUILTINS.
15787         (mips_expand_builtin_movtf, mips_expand_builtin_compare): Take the
15788         mips_fp_condition as argument.  Make it the final operand of the
15789         comparison instruction.
15790         (mips_expand_builtin): Update accordingly.
15791         * config/mips/mips.md (UNSPEC_C_*, UNSPEC_CABS_*): Delete.
15792         (UNSPEC_C, UNSPEC_CABS): New constants.  Shuffle others to fill
15793         the gaps.
15794         * config/mips/mips-ps-3d.md (mips_cond_move_tf_ps, bc1any[24][ft]):
15795         Don't use the 'Q' operand prefix; just print the operand normally.
15796         (mips_cabs_*, mips_c_*): Delete, replacing with...
15797         (mips_c_cond_{ps,4s}, mips_cabs_cond_{s,d,ps,4s}): ...these new
15798         patterns.  Split the 4s versions into 2 ps patterns after reload.
15799
15800 2004-08-30  Richard Henderson  <rth@redhat.com>
15801
15802         * fold-const.c (tree_expr_nonzero_p): Use get_base_address before
15803         assuming an ADDR_EXPR is non-null.
15804
15805 2004-08-30  Jason Merrill  <jason@redhat.com>
15806
15807         * gthr-posix.h, gthr-dce.h: Add #pragma weaks.
15808
15809 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
15810
15811         * alias.c (mems_in_disjoint_alias_sets_p, record_alias_subset,
15812         record_set, rtx_equal_for_memref_p, init_alias_analysis): Use
15813         gcc_assert and gcc_unreachable instead of abort.
15814         * alloc-pool.c (abort, fancy_abort): Remove.
15815         (create_alloc_pool, free_alloc_pool, pool_alloc, pool_free): Use
15816         gcc_assert or gcc_unreachable.
15817         * attribs.c (init_attributes, decl_attributes): Likewise.
15818         * bb-reorder.c (FREE, find_traces_1_round, copy_bb,
15819         mark_bb_for_unlikely_executed_section,
15820         add_labels_and_missing_jumps, fix_crossing_conditional_branches,
15821         fix_crossing_unconditional_branches):  Likewise.
15822         * bitmap.c (bitmap_first_set_bit, bitmap_last_set_bit,
15823         bitmap_operation):  Likewise.
15824         * bt-load.c (insn_sets_btr_p, augment_live_range,
15825         move_btr_def):  Likewise.
15826         * builtins.c (c_readstr, expand_builtin_longjmp, apply_args_size,
15827         apply_result_size, expand_builtin_apply, expand_builtin_mathfn,
15828         expand_builtin_mathfn_2, expand_builtin_mathfn_3,
15829         builtin_memcpy_read_str, expand_movstr, expand_builtin_stpcpy,
15830         expand_builtin_memcmp, expand_builtin_args_info,
15831         std_gimplify_va_arg_expr, expand_builtin_unop,
15832         expand_builtin_fputs, expand_builtin_profile_func,
15833         expand_builtin_fork_or_exec, fold_builtin_bitop,
15834         fold_builtin_classify, fold_builtin_fputs): Likewise.
15835
15836 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
15837
15838         * gcov-io.c (GCOV_CHECK): Use gcc_assert when available.
15839         * gcov.c (abort): Remove undef.
15840
15841         * tree.h (BINFO_PRIMARY_BASE_OF): Remove.
15842         (struct tree_binfo): Remove primary field.
15843
15844 2004-08-30  Paolo Bonzini  <bonzini@gnu.org>
15845
15846         * fixinc/Makefile.in (machname.h): Remove.
15847         (fixincl.x): Do not pass $@ to genfixes.
15848         * fixinc/genfixes: Remove code to produce machname.h.
15849         * fixinc/fixincl.sh: Move it here instead.
15850         * fixinc/fixlib.c: Do not conditionalize on MN_NAME_PAT's presence,
15851         instead check if pz_mn_name_pat is NULL.  Make mn_get_regexps
15852         return a bool indicating whether pz_mn_name_pat is NULL.
15853         * fixinc/fixlib.h: Do not conditionalize on MN_NAME_PAT's presence.
15854         Declare extern C variables for the ENV_TABLE.
15855         * fixinc/fixfixes.c: Do not conditionalize on MN_NAME_PAT's presence,
15856         instead use the result of mn_get_regexps.
15857         * fixinc/fixtests.c: Likewise.
15858
15859 2004-08-30  Paolo Bonzini  <bonzini@gnu.org>
15860
15861         * configure.ac: Do not run fixincludes after stage1 during
15862         toplevel bootstrap.
15863         * configure: Regenerate.
15864
15865 2004-08-30  Richard Earnshaw  <rearnsha@arm.com>
15866
15867         * sched-deps.c (get_condition): Partially revert previous, by never
15868         trying to extract the condition from a condjump.
15869
15870 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
15871
15872         * c-common.c (c_sizeof_or_alignof_type): Use gcc_assert.
15873         (handle_visibility_attribute, c_determine_visibility): Likewise.
15874         * c-common.h (my_friendly_assert): Remove.
15875
15876 2004-08-30  Richard Sandiford  <rsandifo@redhat.com>
15877
15878         * config/mips/mips.md (UNSPEC_{RSQRT,RECIP}[12]_{S,D,PS}): Delete.
15879         (UNSPEC_{RSQRT,RECIP}[12]): New constants.
15880         (UNSPEC_MOVE_TF_PS): Renumber to avoid gaps.
15881         * config/mips/mips-ps-3d.md (*movcc_v2sf_[sd]i): Use :GPR.
15882         (mips_{rsqrt,recip}[12]_{s,d,ps}): Use :ANYF.
15883
15884 2004-08-30  Diego Novillo  <dnovillo@redhat.com>
15885
15886         * tree-pretty-print.c (dump_generic_node): Handle VALUE_HANDLE
15887         in COMPONENT_REF nodes.
15888
15889 2004-08-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
15890
15891         PR c++/15378
15892         * c-opts.c (c_common_handle_option): <case OPT_Werror> set
15893         global_dc->warning_as_error_requested.
15894         * diagnostic.c (diagnostic_initialize): Tidy.
15895         * diagnostic.h (diagnostic_context::x_data): Remove
15896         (diagnostic_context::issue_warnings_are_errors_message): Rename
15897         from warnings_are_errors_message.
15898         (diagnostic_context::warning_as_error_requested): New.
15899
15900 2004-08-30  Richard Earnshaw  <rearnsha@arm.com>
15901
15902         * sched-deps.c (get_condition): Fix breakage in previous patch.
15903
15904 2004-08-30  Paul Brook  <paul@codesourcery.com>
15905
15906         * doc/install.texi: Fix broken mpfr link.
15907
15908 2004-08-29  David O'Brien  <obrien@FreeBSD.org>
15909
15910         * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Sync '-p' handling with
15911         other FreeBSD platforms.
15912
15913 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
15914
15915         * arm.h (REVERSE_CONDITION): Define.
15916         (REVERSIBLE_CC_MODE): All comparisons are now reversible.
15917
15918 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
15919
15920         * flow.c (REVERSE_CONDEXEC_PREDICATES_P): Use the whole comparison, not
15921         just the codes, call reversed_comparison_code ().
15922         (ior_reg_cond): Update arguments to REVERSE_CONDEXEC_PREDICATES_P.
15923         (not_reg_cond): Use reversed_comparison_code.
15924         (and_reg_cond): Likewise.
15925         * ifcvt.c (cond_exec_process_if_block): Likewise.
15926         * doc/tm.texi (REVERSE_CONDEXEC_PREDICATES_P): Update documentation.
15927
15928 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
15929
15930         * sched-deps.c (get_condition): Rewrite using jump support functions.
15931         Use reversed_comparison_code.
15932         (conditions_mutex_p): Use reversed_comparison_code.
15933
15934 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
15935
15936         * config/mips/mips.c (override_options): Disable hot/cold partitioning
15937         for MIPS16.
15938
15939 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
15940
15941         * config/mips/mips.h (mips_builtins, mips_cmp_choice): Delete.
15942         (mips_function_type): Move to mips.c.
15943         * config/mips/mips.c (mips_builtin_type): New enum.
15944         (builtin_description): Replace code and ftype with builtin_type
15945         and function_type.
15946         (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS, CMP_4S_BUILTINS)
15947         (MOVTF_BUILTINS, CMP_BUILTINS): New macros.
15948         (CODE_FOR_mips_abs_ps): Define.
15949         (mips_bdesc): Use new macros.
15950         (mips_expand_builtin): Use builtin_type.  Update calls to subroutines.
15951         (mips_init_builtins): Use the mips_bdesc[] index as the function code.
15952         (mips_expand_builtin_direct): New function.
15953         (mips_expand_builtin_movtf): Renamed from mips_expand_ps_cond_move_
15954         builtin.  Replace boolean parameter with builtin_type.
15955         (mips_expand_compare_builtin, mips_expand_scalar_compare_builtin)
15956         (mips_expand_4s_compare_builtin): Delete, replacing with...
15957         (mips_expand_builtin_compare): ...this new function.
15958
15959 2004-08-29  Mark Mitchell  <mark@codesourcery.com>
15960
15961         PR rtl-optimization/16590
15962         * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes.
15963
15964 2004-08-29  Diego Novillo  <dnovillo@redhat.com>
15965
15966         * tree-ssa-ccp.c (ccp_visit_stmt): Remove #if 0 guards.
15967         * tree-ssa-propagate.c: Fix documentation.
15968
15969 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
15970
15971         * config/mips/mips.md (*mov[sd]f_on_*): Redefine using :SCALARF.
15972         (mov[sd]fcc): Likewise.
15973
15974 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
15975
15976         * config/mips/mips.md (cmp[sd]f): Redefine using :SCALARF.
15977
15978 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
15979
15980         * config/mips/mips.md (divide_condition): New mode attribute.
15981         (div[sd]f3, *div[sd]f3): Use it.  Redefine using :SCALARF.
15982         (sqrt[sd]f3): Redefine using SCALARF.
15983         (*recip[sd]f3, *rsqrt<mode>[ab]): Likewise.  Name formerly unnamed
15984         patterns.
15985
15986 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
15987
15988         * config/mips/mips.md (ANYF, SCALARF): New mode macros.
15989         (loadx, storex, fmt, UNITMODE): New mode attributes.
15990         (add{sf,df,v2sf}3, sub{sf,df,v2sf}3): Redefine using :ANYF.
15991         (mul[sd]f3): Redefine using :SCALARF.
15992         (*mul[sd]f3): Renamed from mul[sd]f3_internal.  Use :SCALARF.
15993         (*mul[sd]3_r4300): Likewise mul[sd]f3_r4300.
15994         (*m{add,sub}{sf,df,v2sf}3): Name formerly unnamed patterns.  Use :ANYF.
15995         Check TARGET_FUSED_MADD for V2SF too.
15996         (*nm{add,sub}{sf,df,v2sf}3{,_fastmath}): Likewise, except v2sf patterns
15997         were already named.
15998         (abs{sf,df,v2sf}3, neg{sf,df,v2sf}3): Redefine using :ANYF.
15999         (*[sl][wd]xc1_[sd]i): Redefine using :ANYF.
16000
16001 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
16002
16003         * config/mips/mips.c (mips_init_builtins): Simplify.  Only create
16004         V2SF_type_node if it will be needed.
16005
16006 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
16007
16008         * config/mips/mips.h (MIPS_CMP_MOVT, MIPS_CMP_MOVF): Delete.
16009         * config/mips/mips.c (mips_prepare_builtin_arg): New function.
16010         (mips_prepare_builtin_target): New function.
16011         (mips_expand_builtin): Use them.  Update calls to subroutines.
16012         (mips_expand_ps_cond_move_builtin): Use the new functions.  Replace
16013         cmp_choice with a boolean argument to select between movt and movf.
16014         Take the comparison's icode as an argument, not the function's fcode.
16015         (mips_expand_compare_builtin): New function.  Rename existing function
16016         to mips_expand_scalar_compare_builtin.
16017         (mips_expand_scalar_compare_builtin, mips_expand_4s_compare_builtin)
16018         (mips_expand_ps_compare_builtin): Use the new functions.  Take the
16019         comparison's icode as an argument, not the builtin's fcode.
16020
16021 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
16022
16023         * config/mips/mips.c (print_operand): Remove '%Y' and '%y'.
16024         (mips_expand_4s_compare_builtin): Redefine CCV4 to be 0 if all
16025         registers are false and -1 if all registers are true.
16026         (mips_expand_ps_compare_builtin): Likewise CCV2.  Use subregs for
16027         MIPS_CMP_UPPER and MIPS_CMP_LOWER.
16028         * config/mips/mips.md (mips_cond_move_tf_ps): Use %Q rather than %y.
16029         (bc1any4t, bc1any4f): Adjust for new CCV4 interpretation.
16030         (bc1any2t, bc1any2f): Likewise CCV2.
16031         (bc1upper2t, bc1lower2t, bc1upper2f, bc1lower2f): Delete.
16032
16033 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
16034
16035         * config/mips/mips.md (UNSPEC_MOVE_TF_PS): New.
16036         * config/mips/mips-ps-3d.md (mips_cond_move_tf_ps): Express as an
16037         UNSPEC rather than an IF_THEN_ELSE.
16038         * config/mips/mips.c (mips_expand_ps_cond_move_builtin): Emit
16039         mips_cond_move_tf_ps by name.
16040
16041 2004-08-29  Chao-ying Fu  <fu@mips.com>
16042             James E Wilson  <wilson@specifixinc.com>
16043
16044         * config/mips/mips-modes.def (V2SF, CCV2, CCV4): New modes. Give CCV2
16045         8 byte size and alignment.  Give CCV4 16 byte size and alignment.
16046         * config/mips/mips-ps-3d.md: New file.
16047         * config/mips/mips.c (TARGET_VECTOR_MODE_SUPPORTED_P,
16048         TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
16049         (mips_const_insns): Handle CONST_VECTOR the same as CONST_DOUBLE.
16050         (mips_output_move): Emit "mov.ps" for V2SFmode.
16051         (mips_arg_info): Add checks for VECTOR_FLOAT_TYPE_P and
16052         MODE_VECTOR_FLOAT.
16053         (override_options): Check if TARGET_MIPS3D and there was an explicit
16054         !TARGET_PAIRED_SINGLE_FLOAT.  Set MASK_PAIRED_SINGLE, if TARGET_MIPS3D.
16055         Check if TARGET_FLOAT64 and TARGET_HARD_FLOAT are both true, when
16056         TARGET_PAIRED_SINGLE_FLOAT is true.  Check if the ISA supports
16057         TARGET_PAIRED_SINGLE_FLOAT.  Allow MODE_VECTOR_FLOAT in fp registers,
16058         and allow CCV2 and CCV4 to occupy two and four CC registers.
16059         (print_fcc_operand): New function.
16060         (print_operand): Add %Y, %y, %V, %v, %Q for CCV2, CCV4, CC.  Modify
16061         %Z to call print_fcc_operand.
16062         (mips_function_value): Handle MODE_VECTOR_FLOAT.
16063         (mips_class_max_nregs): Check for ST_REGS, and handle CCmodes.
16064         (mips_vector_mode_supported_p): New function.
16065         (mips_hard_regno_nregs): Check for ST_REG_P, and handle CCmodes.
16066         (builtin_description): New struct.
16067         (mips_bdesc): New array of struct builtin_description.
16068         (mips_expand_builtin, mips_init_builtins,
16069         mips_expand_ps_cond_move_builtin, mips_expand_4s_compare_builtin,
16070         mips_expand_compare_builtin, mips_expand_ps_compare_builtin): New
16071         functions.
16072         * config/mips/mips.h (MASK_PAIRED_SINGLE, MASK_MIPS3D): New defines.
16073         (TARGET_PAIRED_SINGLE_FLOAT, TARGET_MIPS3D): New defines.
16074         (TARGET_CPU_CPP_BUILTINS): Add __mips_paired_single_float.
16075         (TARGET_SWITCHES): Added "-mpaired-single", "-mno-paired-single",
16076         "-mips3d", and "-mno-mips3d".
16077         (ASM_SPEC): Map -mips3d to -mips3d in gas.
16078         (EXTRA_CONSTRAINT_Y): New macro.
16079         (EXTRA_CONSTRAINT_STR): Renamed from EXTRA_CONSTRAINT.  Add new
16080         multi-letter constraint 'Y'.
16081         (CONSTRAINT_LEN): New macro.
16082         (enum mips_builtins): New for MIPS builtin functions.
16083         (enum mips_function_type): New for the types of MIPS builtin functions.
16084         (enum mips_cmp_choice): New for the MIPS comparison builtin functions.
16085         * config/mips/mips.md: New constants for paired single and MIPS-3D
16086         instructions.  Include the new mips-ps-3d.md file.
16087         (addv2sf3, subv2sf3, mulv2sf3, absv2sf2, negv2sf2, movv2sf,
16088         movv2sf_hardfloat_64bit): New named patterns.
16089         (madd.ps, msub.ps, nmaddv2sf, nmaddv2sf_fastmath, nmsubv2sf,
16090         nmsubv2sf_fastmath, ldxc1_v2sf_si, ldxc1_v2sf_di, sdxc1_v2sf_si,
16091         sdxc1_v2sf_di): New unnamed patterns.
16092         * config/mips/predicates.md (const_0_operand, const_1_operand): Add
16093         const_vector support.
16094         (const_0_or_1_operand): New predicate.
16095         * doc/invoke.texi (MIPS Options): Add -mpaired-single and -mips3d.
16096
16097 2004-08-29  Diego Novillo  <dnovillo@redhat.com>
16098
16099         * Makefile.in (OBJS-common): Add tree-ssa-propagate.o
16100         (tree-ssa-propagate.o): New rule.
16101         (GTFILES): Add tree-ssa-propagate.c.
16102         * tree-flow.h (struct stmt_ann_d): Remove field
16103         in_ccp_worklist.
16104         * tree-ssa-propagate.c: New file.
16105         * tree-ssa-propagate.h: New file.
16106         * tree-ssa-ccp.c: Re-write to use the routines from
16107         tree-ssa-propagate.c.
16108
16109 2004-08-28  Andrew Pinski  <apinski@apple.com>
16110
16111         * tree-ssa-loop.c: Remove extra include of basic-block.h.
16112
16113 2004-08-28  Ziemowit Laski  <zlaski@apple.com>
16114
16115         * c-common.h: Update comments about ObjC/ObjC++ entry points.
16116         (objc_is_reserved_word): New prototype.
16117         (get_current_scope, objc_mark_locals_volatile): Move prototypes to
16118         separate section; these are call-backs.
16119         * c-lex.c (c_lex_with_flags): Call objc_is_reserved_word() to detect
16120         ObjC/ObjC++ "@" keywords.
16121         * c-tree.h (get_current_scope, objc_mark_locals_volatile): Remove
16122         prototypes; they already live in c-common.h.
16123         * stub-objc.c: Update copyright notice.
16124         (objc_is_reserved_word): New stub.
16125
16126 2004-08-28  Nathan Sidwell  <nathan@codesourcery.com>
16127
16128         * system.h (gcc_assert): Remove __builtin_expect.  Evaluate EXPR
16129         even when not checking.
16130
16131 2004-08-27  Jason Merrill  <jason@redhat.com>
16132
16133         PR c++/13684
16134         * gimplify.c (gimplify_cleanup_point_expr): Handle CLEANUP_EH_ONLY.
16135         (gimple_push_cleanup): Add eh_only parm.
16136         (gimplify_target_expr): Pass it.
16137         * c.opt (-fno-threadsafe-statics): New option.
16138         * c-opts.c (c_common_handle_option): Handle it.
16139         * c-common.h (flag_threadsafe_statics): Declare it.
16140         * c-common.c (flag_threadsafe_statics): Record it.
16141         * doc/invoke.texi: Document it.
16142         * tsystem.h (_GNU_SOURCE): Define.
16143         * gthr-posix.h (__gthread_recursive_mutex_t): New typedef.
16144         (__GTHREAD_RECURSIVE_MUTEX_INIT): New macro.
16145         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): New macro.
16146         (__gthread_recursive_mutex_init_function): New fn.
16147         (__gthread_recursive_mutex_lock): New fn.
16148         (__gthread_recursive_mutex_trylock): New fn.
16149         (__gthread_recursive_mutex_unlock): New fn.
16150         * gthr-solaris.h, gthr-single.h, gthr-dce.h: Likewise.
16151         * gthr-win32.h, gthr-vxworks.h: Likewise.
16152         * gthr.h: Document.
16153
16154 2004-08-27  David Edelsohn  <edelsohn@gnu.org>
16155
16156         * config/rs6000/rs6000.c (rs6000_override_options): Increase
16157         maximum skip to 15.  Set function alignment, jump alignment, and
16158         loop alignment to 16 for processors that form dispatch groups.
16159         (rs6000_rtx_costs): outer_code is used.
16160
16161 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
16162
16163         * stor-layout.c (sizetype_set): Remove.
16164         (set_sizetype): Don't test or set it.
16165
16166         * tree.h (size_int_type): Remove.
16167         * fold-const.c: Do not #include gt-fold-const.h.
16168         (size_htab_hash, size_htab_eq): Remove.
16169         (size_int_kind): Use build_int_cst.
16170         (new_const, size_htab): Remove.
16171         (size_int_type): Remove.
16172         (round_up): Use build_int_cst.
16173         (round_down): Likewise. Remove spurious constant build.
16174
16175 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
16176
16177         * configure.ac: Add ENABLE_ASSERT_CHECKING control.
16178         Add is_release variable, use it for --enable-werror and
16179         --enable-checking defaults.
16180         * system.h (gcc_assert, gcc_unreachable): New.
16181         * doc/install.texi (--enable-checking): Update.
16182         * configure, config.in: Rebuilt.
16183
16184 2004-08-26  Richard Sandiford  <rsandifo@redhat.com>
16185
16186         * rtl.h (read_rtx): Change prototype.
16187         * read-rtl.c (read_rtx): Provide the caller with both an rtx and a
16188         line number.  Return true on success.
16189         * gensupport.c (process_include, init_md_reader_args_cb): Adjust
16190         callers accordingly.
16191
16192 2004-08-26  Richard Henderson  <rth@redhat.com>
16193
16194         * c-typeck.c (build_offsetof): Remove.
16195         * c-tree.h (build_offsetof): Remove.
16196         * c-common.c (fold_offsetof_1, fold_offsetof): New.
16197         * c-common.h (fold_offsetof): Declare.
16198         * c-parse.in (offsetof_base): New.
16199         (offsetof_member_designator): Use it.  Build references, not just
16200         a tree list.
16201         (primary): Use fold_offsetof, not build_offsetof.
16202
16203 2004-08-26  Richard Henderson  <rth@redhat.com>
16204
16205         * tree.c (staticp): Return the static object.
16206         * tree.h (staticp): Update decl.
16207         * langhooks.h (struct lang_hooks): Change staticp return type to tree.
16208         * langhooks.c (lhd_staticp): Return NULL_TREE.
16209         * langhooks-def.h (lhd_staticp): Update decl.
16210         * c-common.c (c_staticp): Return the static object.
16211         * c-common.h (c_staticp): Update decl.
16212
16213 2004-08-26  Richard Henderson  <rth@redhat.com>
16214
16215         * config/alpha/alpha.h (HARD_REGNO_MODE_OK): Allow complex float
16216         modes.
16217
16218 2004-08-26  Joseph S. Myers  <jsm@polyomino.org.uk>
16219
16220         PR c/13801
16221         * c-decl.c (struct c_binding): Add type and inner_comp fields.
16222         (bind): Set type and inner_comp fields.
16223         (pop_scope): Restore type of decl to the correct type from an
16224         outer scope.  Give error when popping file scope for incomplete
16225         arrays completed incompatibly with default initialization in an
16226         inner scope.
16227         (diagnose_mismatched_decls): Handle externs with initializers at
16228         block scope.
16229         (pushdecl): Set type of external declaration at block scope based
16230         only on the visible declarations.  Save type when changing the
16231         type of a declaration.  Merge an external declaration at block
16232         scope with a visible static declaration at file scope.
16233         (implicitly_declare): Give recycled old declaration the new type
16234         except for incompatible declarations of built-in functions, saving
16235         the old type.
16236
16237 2004-08-26  Ziemowit Laski  <zlaski@apple.com>
16238
16239         * c-parse.in (OBJC_TYPE_QUAL): New %token for ObjC use.
16240
16241 2004-08-26  Daniel Berlin  <dberlin@dberlin.org>
16242
16243         * tree-alias-common.c (gate_pta): New function.
16244         (pass_build_pta): Use it.
16245         (pass_del_pta): Use it.
16246         (delete_alias_vars): Don't check flag_tree_points_to.
16247
16248 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
16249
16250         * config/rs6000/rs6000.h (HARD_REGNO_CALL_PART_CLOBBERED): Added
16251         TFmode as additional register mode cloberred by call.
16252
16253 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
16254
16255         * config/rs6000/rs6000.c (rs6000_libcall_value): Generate
16256         parallel pattern for library call returning DImode in
16257         mixed mode.
16258
16259 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
16260
16261         * config/rs6000/rs6000.c (function_arg): Generate parallel
16262         pattern for more split args.
16263
16264 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
16265
16266         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Call
16267         either gen_movdi_di_update or gen_movdi_si_update depending on
16268         target mode.
16269         * config/rs6000/rs6000.md (movdi_update): Changed to movdi_<mode>_update,
16270         to generate two versions.
16271
16272 2004-08-26  Daniel Berlin  <dberlin@dberlin.org>
16273
16274         * Makefile.in (lambda-code.o): New.
16275         (lambda-trans.o): Ditto.
16276         (TREE_DATA_REF_H): Ditto.
16277         (LAMBDA_H): Ditto.
16278         (lambda-mat.o): Use LAMBDA_H.
16279         (tree-data-ref.o): Ditto.
16280         * lambda-code.c: New file.  Lambda code generation algorithm.
16281         * lambda-trans.c: Ditto. Lambda transformation matrix support.
16282         * lambda.h: Add lambda loop structures.
16283         Add lambda loopnest structures.
16284         Add lambda body vector structure.
16285         Add lambda linear expression structures.
16286         Add prototypes for functions in new files.
16287         * lambda-mat.c: Include tree.h
16288
16289 2004-08-26  Daniel Berlin <dberlin@dberlin.org>
16290             Sebastian Pop  <pop@cri.ensmp.fr>
16291
16292         * tree-data-ref.h: Include lambda.h
16293         (free_dependence_relation): Declared here.
16294         (free_dependence_relations): Ditto.
16295         (free_data_refs): Ditto.
16296         * tree-data-ref.c (free_dependence_relation): New function.
16297         (free_dependence_relations): Ditto.
16298         (free_data_refs): Ditot.
16299         (analyze_all_data_dependences): Free datarefs and dependence_relations.
16300         (build_classic_dist_vector): Store in the dependence_relations the
16301         information. Each arc in the dependence_relations graph is labelled
16302         with the distance and direction vectors.
16303         (build_classic_dir_vector): Ditto.
16304         (compute_rw_wr_ww_dependences): Renamed again compute_all_dependences.
16305         Now computes again the whole dependence graph including read-read
16306         relations.
16307         (compute_data_dependences_for_loop): Now dependence_relations contains
16308         all the data, and thus it doesn't need to initialize the classic_dir
16309         and classic_dist vectors.
16310         (analyze_all_data_dependences): Adjusted for using the new interface of
16311         compute_data_dependences_for_loop.  Remove the statistics dump.
16312
16313 2004-08-26  Bob Wilson  <bob.wilson@acm.org>
16314
16315         * config/xtensa/xtensa.c (xtensa_ld_opcodes, xtensa_st_opcodes): Delete.
16316         (xtensa_expand_block_move): Update comment.
16317         (override_options): Remove initialization of xtensa_{ld,st}_opcodes.
16318
16319 2004-08026  Richard Earnshaw  <rearnsha@arm.com>
16320
16321         PR target/13506
16322         * toplev.c (crash_signal): If we crashed while emitting
16323         a user asm, then die more gracefully.
16324
16325 2004-08-26  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
16326
16327         PR target/17119.
16328         * config/m32r.c (gen_compare): Use reg_or_int16_operand when
16329         checking for a valid constant, regardless of sign.
16330
16331 2004-08-25  Richard Henderson  <rth@redhat.com>
16332
16333         PR target/16974
16334         * config/alpha/alpha.md (adddi_fp_hack): Don't rely on splitting
16335         if the constant satisfies add_operand.
16336
16337 2004-08-25  Richard Henderson  <rth@redhat.com>
16338
16339         PR debug/10695
16340         * config/alpha/alpha.c (emit_frame_store_1, emit_frame_store): New.
16341         (alpha_expand_prologue): Handle >32-bit frames.  Generate proper
16342         unwind info for >16-bit frames.
16343
16344 2004-08-25  Richard B. Kreckel  <richard.kreckel@framatome-anp.com>
16345
16346         PR target/17171
16347         * config/i386/gas.h (ASM_COMMENT_START): Define to "#".
16348
16349 2004-08-25  Richard Henderson  <rth@redhat.com>
16350
16351         * config/alpha/alpha.c (alpha_cannot_force_const_mem): New.
16352         (TARGET_CANNOT_FORCE_CONST_MEM): New.
16353
16354 2004-08-25  Andrew MacLeod  <amacleod@redhat.com>
16355
16356         * doc/tree-ssa.texi: Document new operand iterator.
16357
16358 2004-08-26  Alan Modra  <amodra@bigpond.net.au>
16359
16360         PR target/16480
16361         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Don't abort
16362         on "(mem (symbol_ref ..))" rtl.  Look at LO_SUM base regs as well
16363         as PLUS base regs.
16364
16365 2005-08-28  Paul Brook  <paul@codesourcery.com>
16366
16367         * config/arm/symbian.h (SUBTARGET_ASM_FLOAT_SPEC): Default to
16368         -mfpu=vfp -march=armv5t
16369         * config/arm/t-symbian: Change multilib to mfloat-abi=softfp.
16370
16371 2004-08-25  Richard Henderson  <rth@redhat.com>
16372
16373         * target-def.h (TARGET_SCALAR_MODE_SUPPORTED_P): New.
16374         * target.h (struct gcc_target): Add scalar_mode_supported_p.
16375         * targhooks.c (default_scalar_mode_supported_p): New.
16376         * targhooks.h (default_scalar_mode_supported_p): Declare.
16377         * doc/tm.texi (TARGET_SCALAR_MODE_SUPPORTED_P): Document.
16378
16379         * c-common.c (handle_mode_attribute): Query scalar_mode_supported_p
16380         before attempting to create types.  Tidy.
16381         * expr.c (vector_mode_valid_p): Use scalar_mode_supported_p.
16382
16383         * config/alpha/alpha.c (alpha_scalar_mode_supported_p): New.
16384         (TARGET_SCALAR_MODE_SUPPORTED_P): New.
16385
16386 2004-08-25  Richard Henderson  <rth@redhat.com>
16387
16388         * config/i386/freebsd.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
16389         set REAL_MODE_FORMAT for TFmode.
16390
16391 2004-08-25  Ziemowit Laski  <zlaski@apple.com>
16392
16393         * c-decl.c (grokparm): New function.
16394         * c-tree.h (grokparm): New prototype.
16395
16396 2004-08-25  Andrew MacLeod  <amacleod@redhat.com>
16397
16398         * tree-ssa-operands.h (struct ssa_operand_iterator_d): New.  SSA operand
16399         iterator controlling structure.
16400         (SSA_OP_USE, SSA_OP_DEF, SSA_OP_VUSE, SSA_OP_VMAYUSE, SSA_OP_VMAYDEF,
16401         SSA_OP_VMUSTDEF, SSA_OP_VIRTUAL_USES, SSA_OP_VIRTUAL_DEFS,
16402         SSA_OP_ALL_USES, SSA_OP_ALL_DEFS, SSA_OP_ALL_OPERANDS): New.  Operand
16403         iterator flags.
16404         (FOR_EACH_SSA_TREE_OPERAND): New.  Iterate over operands as trees.
16405         (FOR_EACH_SSA_USE_OPERAND): New.  Iterate over operands as uses.
16406         (FOR_EACH_SSA_DEF_OPERAND): New.  Iterate over operands as defs.
16407         (FOR_EACH_SSA_MAYDEF_OPERAND): New.  Iterate over V_MAY_DEFs.
16408         * tree-ssa-operands.c (NULL_DEF_OPERAND_P, NULL_USE_OPERAND_P): New.
16409         Empty operand pointers.
16410         * tree-flow-inline.h (op_iter_done): New.  Return true if finished.
16411         (op_iter_next_use): New.  Return next use_operand_p.
16412         (op_iter_next_def): New.  Return next def_operand_p.
16413         (op_iter_next_tree): New.  Return next operands as a tree.
16414         (op_iter_init): New.  Initialize an iterator structure.
16415         (op_iter_init_use): New.  Initialize structure and get the first use.
16416         (op_iter_init_def): New.  Initialize structure and get the first def.
16417         (op_iter_init_tree): New.  Initialize structure and get the first tree.
16418         (op_iter_next_maydef): New.  Return next V_MAY_DEF operands.
16419         (op_iter_init_maydef): New.  Initialize structure and get the first
16420         V_MAY_DEF operands.
16421         * tree-cfg.c (tree_duplicate_bb): Use new operand iterator.
16422         * tree-dfa.c (compute_immediate_uses_for_stmt,
16423         redirect_immediate_uses): Use new operand iterator.
16424         (v_may_defs_disappeared_p, v_must_defs_disappeared_p): Delete.
16425         (mark_new_vars_to_rename): Use new operand iterator.  Count virtual
16426         operands instead of using *_disappeared_p routines.
16427         * tree-into-ssa.c (mark_def_sites, ssa_mark_def_sites, rewrite_stmt,
16428         ssa_rewrite_stmt): Use new operand iterator.
16429         * tree-outof-ssa.c (check_replaceable, find_replaceable_in_bb,
16430         rewrite_trees): Use new operand iterator.
16431         * tree-pretty-print.c (dump_vops): Use new operand iterator.
16432         * tree-sra.c (mark_all_v_defs): Use new operand iterator.
16433         * tree-ssa-alias.c (compute_points_to_and_addr_escape,
16434         dump_points_to_info): Use new operand iterator.
16435         * tree-ssa-ccp.c (cp_lattice_meet, visit_stmt, initialize,
16436         replace_uses_in, replace_vuse_in, likely_value, set_rhs): Use new
16437         operand iterator.
16438         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary,
16439         propagate_necessity): Use new operand iterator.
16440         * tree-ssa-dom.c (cprop_into_stmt, optimize_stmt): Use operand iterator.
16441         (register_definitions_for_stmt): Use new operand iterator.  Take stmt as
16442         a parameter instead of a stmt_ann_t.
16443         * tree-ssa-live.c (create_ssa_var_map, calculate_live_on_entry,
16444         build_tree_conflict_graph): Use new operand iterator.
16445         * tree-ssa-loop-im.c (determine_max_movement, single_reachable_address,
16446         rewrite_mem_refs): Use new operand iterator.
16447         * tree-ssa-loop-manip.c (find_uses_to_rename_stmt,
16448         check_loop_closed_ssa_use): Use new operand iterator.
16449         * tree-ssa.c (verify_ssa, replace_immediate_uses): Use operand iterator.
16450         * tree-ssanames.c (release_defs): Use new operand iterator.
16451         * tree-vectorizer.c (vect_create_data_ref): Use new operand iterator.
16452
16453 2004-08-25  Adam Nemet  <anemet@lnxw.com>
16454
16455         * tlink.c (initial_cwd): New variable.
16456         (tlink_init): Initialize it.
16457         (recompile_files): Use tlink_execute() instead of system().  Don't
16458         duplicate verbose output of collect_execute.  Restore initial_cwd.
16459         Update comment before the function.
16460
16461 2004-08-25  Ziemowit Laski  <zlaski@apple.com>
16462
16463         * c-typeck.c (build_c_cast): In ObjC, always preserve (and silently
16464         accept) a cast from one Objective-C pointer type to another.
16465
16466 2004-08-25  Paolo Carlini  <pcarlini@suse.de>
16467
16468         * doc/install.texi: Document that libstdc++-v3 requires
16469         now automake 1.9.1.
16470
16471 2004-08-25  Caroline Tice  <ctice@apple.com>
16472
16473         * bb-reorder.c (partition_hot_cold_basic_blocks):  Add more details
16474         to comments at start of function.
16475         * cfgbuild.c (make_edges):  Add more details to hot/cold partitioning
16476         comment.
16477         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
16478         merge_blocks_move_predecessor_nojumps,
16479         merge_blocks_move_successor_nojumps, merge_blocks_move,
16480         try_crossjump_to_edge, try_crossjump_bb): Likewise.
16481         * cfglayout.c (fixup_reorder_chain): Likewise.
16482         * cfgrtl.c (rtl_can_merge_blocks, try_redirect_by_replacing_jump,
16483         cfg_layout_can_merge_blocks_p):  Likewise.
16484         * ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
16485         * passes.c (rest_of_compilation): Update comments for calling
16486         optimization that partitions hot/cold basic blocks.
16487         * doc/invoke.texi:  Update documentation of
16488         freorder-blocks-and-partition flag.
16489
16490 2004-08-25  Richard Sandiford  <rsandifo@redhat.com>
16491
16492         * config/mips/mips.md (reg): Renamed mode attribute from ccreg.
16493         (*mov*_on_*): Adjust accordingly.  Add an explicit MOVECC: prefix.
16494
16495 2004-08-25  Richard Sandiford  <rsandifo@redhat.com>
16496
16497         * config/mips/mips.md (any_shift): New code macro.
16498         (optab, insn): New code attributes.
16499         ({ashl,ashr,lshr}[sd]i3): Redefine using :GPR and any_shift.
16500         Use the standard rather than internal patterns for the MIPS16
16501         double-shift optimization.
16502         (*{ashl,ashr,lshr}[sd]i3): New names for the non-mips16 shift patterns.
16503         Redefine using :GPR and any_shift.
16504         (*{ashl,ashr,lshr}si3_extend): Generalize ashlsi3_internal1_extend
16505         to cover all three shifts.
16506         (*{ashl,ashr,lshr}si3_mips16): New names for the mips16 SImode shifts.
16507         Redefine using any_shift.  Use :GPR and any_shift to combine splitters.
16508         (*{ashl,ashr,lshr}di3_mips16): New names for the mips16 DImode shifts.
16509
16510 2004-08-24  Geoffrey Keating  <geoffk@apple.com>
16511
16512         * gimplify.c (lookup_tmp_var): Separate temporaries when not
16513         optimizing.
16514
16515 2004-08-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16516
16517         PR libstdc++/17005 (fix for HP-UX 11.11)
16518         * config.gcc (hppa*-*-*): Move MASK_BIG_SWITCH to target_cpu_default2.
16519         (hppa*-*-hpux*): Consolidate hppa1.0-*-* code.  Rework handling of
16520         tm_file including pa-hpux1010.h or pa-hpux1111.h when appropriate.
16521         * config/pa/pa-hpux1010.h, config/pa/pa-hpux1111.h: New files.
16522         * config/pa/pa-hpux.h (TARGET_HPUX): Define.
16523         (LINK_SPEC): Handle march=1.0 option.
16524         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Predefine _XOPEN_UNIX
16525         and _XOPEN_SOURCE_EXTENDED for UNIX 95.
16526         (SUBTARGET_OPTIONS): New define.
16527         (LINK_SPEC): Handle march=1.0 option.
16528         (STARTFILE_SPEC): New define.
16529         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Predefine _XOPEN_UNIX
16530         and _XOPEN_SOURCE_EXTENDED for UNIX 95.  Additionally, predefine
16531         _INCLUDE__STDC_A1_SOURCE and _INCLUDE_XOPEN_SOURCE_500 for UNIX 98.
16532         (SUBTARGET_OPTIONS): New define.
16533         (LINK_SPEC): Handle march=1.0 option.
16534         (STARTFILE_SPEC): New define.
16535         * config/pa/pa.c (override_options): Add code to process -munix= option.
16536         * config/pa/pa.h (pa_unix_string, flag_pa_unix): Declare.
16537         (TARGET_HPUX, TARGET_HPUX_10_10, TARGET_HPUX_11_11): Provide default
16538         defines.
16539         (TARGET_OPTIONS): Add SUBTARGET_OPTIONS to option list.
16540         (SUBTARGET_OPTIONS): Provide default define.
16541         * config/pa/pa64-hpux.h (STANDARD_STARTFILE_PREFIX_1,
16542         STANDARD_STARTFILE_PREFIX_2): New defines.
16543         (STARTFILE_SPEC): Provide unix95.o or unix98.o startfiles as necessary.
16544         (ENDFILE_SPEC): Use %O.
16545         * doc/install.texi (hppa*-*-hpux*): Reword paragraph on -g and gas.
16546         Mention issue caused by changing namespace and runtime to UNIX 95/98.
16547         * doc/invoke.texi (HPPA options): Move misplaced text to FRV options.
16548         Document -munix=std option.
16549
16550 2004-08-25  Steven Bosscher  <stevenb@suse.de>
16551
16552         * cse.c (cse_around_loop, cse_check_loop_start,
16553         cse_set_around_loop): Remove.
16554         (cse_basic_block): Remove the around_loop argument.
16555         (cse_end_of_basic_block): Remove the after_loop argument.
16556         (cse_main): Likewise.
16557         * rtl.h (cse_main): Update prototype.
16558         * passes.c (rest_of_handle_cse, rest_of_handle_cse2,
16559         rest_of_handle_gcse): Update cse_main calls.
16560
16561 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
16562
16563         * tree.h  (build_int_cst): New, sign extended constant.
16564         (build_int_cstu): New, zero extended constant.
16565         (build_int_cst_wide): Renamed from build_int_cst.
16566         * tree.c (build_int_cst, build_int_cstu): New.
16567         (build_int_cst_wide): Renamed from build_int_cst.
16568         (make_vector_type, build_common_tree_nodes,
16569         build_common_tree_nodes_2): Adjust build_int_cst calls.
16570         * builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
16571         expand_builtin_strpbrk, expand_builtin_fputs,
16572         build_string_literal, expand_builtin_printf,
16573         expand_builtin_sprintf, fold_builtin_classify_type,
16574         fold_builtin_lround, fold_builtin_bitop, fold_builtin_isascii,
16575         fold_builtin_toascii, fold_builtin_isdigit,
16576         simplify_builtin_strstr, simplify_builtin_strpbrk,
16577         fold_builtin_fputs, simplify_builtin_sprintf): Likewise.
16578         * c-common.c (start_fname_decls, fix_string_type, shorten_compare,
16579         DEF_ATTR_INT): Likewise.
16580         * c-decl.c (complete_array_type, check_bitfield_type_and_width):
16581         Likewise.
16582         * c-lex.c (interpret_integer, lex_charconst): Likewise.
16583         * c-parse.in (primary) <TYPES_COMPATIBLE_P> Likewise.
16584         * c-pretty-print.c (pp_c_integer_constant): Likewise.
16585         * c-typeck.c (really_start_incremental_init, push_init_level,
16586         set_nonincremental_init_from_string): Likewise.
16587         * calls.c (load_register_parameters): Likewise.
16588         convert.c (convert_to_pointer): Likewise.
16589         coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
16590         build_fn_info_type, build_fn_info_value, build_ctr_info_value,
16591         build_gcov_info): Likewise.
16592         * except.c (init_eh, assign_filter_values): Likewise.
16593         * expmed.c (store_fixed_bit_field, extract_bit_field,
16594         extract_fixed_bit_field, extract_split_bit_field, expand_shift,
16595         expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
16596         expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
16597         * expr.c (convert_move, emit_group_load, emit_group_store,
16598         expand_assignment, store_constructor, store_field,
16599         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
16600         fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
16601         invert_truthvalue, optimize_bit_field_compare,
16602         decode_field_reference, all_ones_mask_p, constant_boolean_node,
16603         fold_div_compare, fold, fold_read_from_constant_string,
16604         fold_negate_const, fold_abs_const, fold_not_const, round_up,
16605         round_down): Likewise.
16606         * function.c (assign_parm_setup_block): Likewise.
16607         * stmt.c (shift_return_value, expand_case, estimate_case_costs):
16608         Likewise.
16609         * stor-layout.c (layout_type, initialize_sizetypes,
16610         set_min_and_max_values_for_integral_type): Likewise.
16611         * tree-chrec.c (chrec_fold_multiply_poly_poly,
16612         reset_evolution_in_loop): Likewise.
16613         * tree-chrec.h (build_polynomial_chrec): Likewise.
16614         * tree-complex.c (build_replicated_const): Likewise.
16615         * tree-eh.c (honor_protect_cleanup_actions,
16616         lower_try_finally_onedest, lower_try_finally_copy,
16617         lower_try_finally_switch): Likewise.
16618         * tree-mudflap.c (mf_build_string, mx_register_decls,
16619         mudflap_register_call, mudflap_enqueue_constant): Likewise.
16620         * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
16621         * tree-pretty-print.c (dump_generic_node): Likewise.
16622         * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
16623         Likewise.
16624         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
16625         * tree-ssa-loop-niter.c (number_of_iterations_cond,
16626         loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
16627         Likewise.
16628         * tree-ssa-loop-ivcanon.c (create_canonical_iv,
16629         canonicalize_loop_induction_variables): Likewise.
16630         * tree-vectorizer.c (vect_create_index_for_array_ref,
16631         vect_transform_loop_bound, vect_compute_data_ref_alignment):
16632         Likewise.
16633
16634         * config/alpha/alpha.c (alpha_initialize_trampoline, alpha_va_start,
16635         alpha_gimplify_va_arg_1): Likewise.
16636         * config/arm/arm.c (arm_get_cookie_size): Likewise.
16637         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
16638         * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
16639         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
16640         * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
16641         mips_gimplify_va_arg_expr): Likewise.
16642         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
16643         * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
16644         add_compiler_branch_island): Likewise.
16645         * config/s390/s390.c (s390_va_start): Likewise.
16646         * config/sh/sh.c (sh_va_start): Likewise.
16647         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
16648         Likewise.
16649         * config/xtensa/xtensa.c (xtensa_va_start,
16650         xtensa_gimplify_va_arg_expr): Likewise.
16651
16652         * objc/objc-act.c (build_objc_string_object,
16653         build_objc_symtab_template, init_def_list, init_objc_symtab,
16654         init_module_descriptor, generate_static_references,
16655         build_selector_translation_table, get_proto_encoding,
16656         build_typed_selector_reference, build_selector_reference,
16657         build_next_objc_exception_stuff,
16658         build_method_prototype_list_template, generate_descriptor_table,
16659         generate_protocols, build_protocol_initializer,
16660         build_ivar_list_template, build_method_list_template,
16661         build_ivar_list_initializer, generate_ivars_list,
16662         generate_dispatch_table, generate_protocol_list,
16663         build_category_initializer, build_shared_structure_initializer,
16664         generate_shared_structures, handle_impent,
16665         generate_objc_image_info): Likewise.
16666
16667 2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
16668
16669         * cfglayout.c (duplicate_insn_chain): Remove references to
16670         NOTE_INSN_LOOP_VTOP and NOTE_INSN_LOOP_CONT.
16671         * cfgloop.h (struct loop): Remove fields vtop, cont and cont_dominator.
16672         * cfgrtl.c (rtl_delete_block): Remove handling of NOTE_INSN_LOOP_CONT.
16673         * final.c (final_scan_insn): Remove references to NOTE_INSN_LOOP_VTOP
16674         and NOTE_INSN_LOOP_CONT.
16675         * insn-notes.def (NOTE_INSN_LOOP_VTOP, NOTE_INSN_LOOP_CONT): Remove.
16676         * jump.c (squeeze_notes): Remove references to NOTE_INSN_LOOP_VTOP
16677         and NOTE_INSN_LOOP_CONT.
16678         * loop.c (scan_loops, find_and_verify_loops, for_each_insn_in_loop,
16679         check_dbra_loop, loop_dump_aux): Remove references to removed notes
16680         and fields.
16681         * reorg.c (mostly_true_jump): Do not rely on NOTE_INSN_LOOP_VTOPs.
16682         * unroll.c (unroll_loop, copy_loop_body, loop_iterations): Remove
16683         references to removed notes and fields.
16684         (subtract_reg_term, ujump_to_loop_cont): Remove.
16685
16686 2004-08-25  Paolo Bonzini  <bonzini@gnu.org>
16687
16688         * doc/install.texi: Document that libcpp does not require
16689         Automake any longer.  Document that Automake 1.9.1 should
16690         work everywhere.
16691
16692 2004-08-25  Zack Weinberg  <zack@codesourcery.com>
16693
16694         * flags.h (enum debug_info_type): Remove DWARF_DEBUG.
16695         * defaults.h (PREFERRED_DEBUGGING_TYPE): Remove check for
16696         DWARF_DEBUGGING_INFO from choice-of-definition chain;
16697         restructure using C89 features (#elif, #error).
16698         * c-lex.c, final.c, opts.c, config/cris/cris.c, config/frv/frv.c
16699         * config/sh/sh.h: Remove references to DWARF_DEBUG.
16700         * doc/invoke.texi: Remove references to DWARF version 1;
16701         clarify why -gdwarf-2<n> doesn't work.
16702
16703 2004-08-25  Zack Weinberg  <zack@codesourcery.com>
16704
16705         * basic-block.h (BB_SET_PARTITION): Clear old value first.
16706         * cfg.c (clear_bb_flags): Don't clear partition setting.
16707         * ifcvt.c (find_if_case_1): Remove ??? comment.
16708
16709 2004-08-25  Alan Modra  <amodra@bigpond.net.au>
16710
16711         PR target/17052
16712         * config/rs6000/rs6000.h (machine_function): Remove sysv_varargs_p.
16713         * config/rs6000/sysv4.h (RS6000_VARARGS_AREA): Use
16714         current_function_stdarg in place of sysv_varargs_p.
16715         * config/rs6000/rs6000.c (setup_incoming_varargs): Don't set
16716         sysv_varargs_p.
16717
16718 2004-08-24  Richard Henderson  <rth@redhat.com>
16719
16720         PR target/16298
16721         * config/i386/i386.c (legitimate_constant_p): Rework to not accept
16722         random codes within CONST.
16723
16724 2004-08-24  James E Wilson  <wilson@specifixinc.com>
16725
16726         * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS): Remove
16727         -freorder-blocks-and-partition.
16728
16729 2004-08-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16730
16731         PR middle-end/17044
16732         * tree-ssa-threadupdate.c (redirection_data): Make static.
16733         (thread_block): Use ggc_alloc_cleared to allocate struct
16734         redirection_data.  Don't free elements in redirection_data.
16735
16736 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
16737
16738         * config/mips/predicates.md (small_data_pattern): Match prefetches.
16739
16740 2004-08-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
16741
16742         PR tree-optimization/17016
16743         * tree-ssa-loop-niter.c (number_of_iterations_cond,
16744         number_of_iterations_exit): Use POINTER_TYPE_P instead
16745         of testing for POINTER_TYPE.
16746
16747 2004-08-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
16748
16749         * tree-ssa-loop-ivcanon.c: New file.
16750         * tree-ssa-loop-manip.c (create_iv): New function.
16751         * Makefile.in (tree-ssa-loop-ivcanon.o): Add.
16752         (tree-ssa-loop.o, tree-ssa-loop-manip.o): Add SCEV_H dependency.
16753         * cfgloop.c (mark_single_exit_loops): New function.
16754         (verify_loop_structure): Verify single-exit loops.
16755         * cfgloop.h (struct loop): Add single_exit field.
16756         (LOOPS_HAVE_MARKED_SINGLE_EXITS): New constant.
16757         (mark_single_exit_loops): Declare.
16758         (tree_num_loop_insns): Declare.
16759         * cfgloopmanip.c (update_single_exits_after_duplication): New function.
16760         (duplicate_loop_to_header_edge): Use it.
16761         * common.opt (fivcanon): New flag.
16762         * timevar.def (TV_TREE_LOOP_IVCANON, TV_COMPLETE_UNROLL): New timevars.
16763         * tree-cfg.c (tree_find_edge_insert_loc): Return newly created block.
16764         (bsi_commit_edge_inserts_1): Pass null to tree_find_edge_insert_loc.
16765         (bsi_insert_on_edge_immediate): New function.
16766         * tree-flow.h (bsi_insert_on_edge_immediate,
16767         canonicalize_induction_variables, tree_unroll_loops_completely,
16768         create_iv): Declare.
16769         * tree-optimize.c (init_tree_optimization_passes): Add
16770         pass_iv_canon and pass_complete_unroll.
16771         * tree-pass.h (pass_iv_canon, pass_complete_unroll): Declare.
16772         * tree-scalar-evolution.c (get_loop_exit_condition,
16773         get_exit_conditions_rec, number_of_iterations_in_loop,
16774         scev_initialize): Use single_exit information.
16775         * tree-ssa-loop-niter.c (number_of_iterations_cond): Record
16776         missing assumptions.
16777         (loop_niter_by_eval):  Return number of iterations as unsigned
16778         int.
16779         * tree-ssa-loop.c (tree_ssa_loop_init): Mark single exit loops.
16780         (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_iv_canon,
16781         tree_complete_unroll, gate_tree_complete_unroll, pass_complete_unroll):
16782         New passes.
16783         (tree_ssa_loop_done): Call free_numbers_of_iterations_estimates.
16784         * tree-ssanames.c (make_ssa_name): Allow creating ssa name before
16785         the defining statement is ready.
16786         * tree-vectorizer.c (vect_create_iv_simple): Removed.
16787         (vect_create_index_for_array_ref, vect_transform_loop_bound):
16788         Use create_iv.
16789         (vect_transform_loop_bound): Use single_exit information.
16790         (vect_analyze_loop_form): Cleanup bogus tests.
16791         (vectorize_loops): Do not call flow_loop_scan.
16792         * tree.h (may_negate_without_overflow_p): Declare.
16793         * fold-const.c (may_negate_without_overflow_p): Split out from ...
16794         (negate_expr_p): ... this function.
16795         (tree_expr_nonzero_p): Handle overflowed constants correctly.
16796         * doc/invoke.texi (-fivcanon): Document.
16797         * doc/passes.texi: Document canonical induction variable creation.
16798
16799 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
16800
16801         * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): Delete.
16802         * config/mips/mips.c (print_operand): Fold %B/%b handling into %T/%t,
16803         using the mode of the operand to decide between them.
16804         * config/mips/mips.md (MOVECC): New mode macro.
16805         (ccreg): New mode attribute.
16806         (*mov{si,di,sf,df}_on_{cc,si,di}): Name formerly unnamed patterns.
16807         Redefine using :GPR and :MOVECC.  Use %T and %t for the condition.
16808         (mov[sd]icc): Redefine using :GPR.
16809
16810 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
16811
16812         * config/mips/mips-protos.h (mips_emit_prefetch): Delete.
16813         (mips_prefetch_cookie): New function.
16814         * config/mips/mips.c (print_operand_address): Fix handling of
16815         ADDRESS_CONST_INT.
16816         (mips_emit_prefetch): Delete.
16817         (mips_prefetch_cookie): New function.
16818         * config/mips/mips.md (prefetch): Turn into a define_insn.  Use a
16819         mode of QImode for the address_operand.  Use mips_prefetch_cookie
16820         to calculate the first "pref" operand.
16821         (prefetch_[sd]i, prefetch_[sd]i_address): Delete.
16822         (prefetch_indexed_[sd]i): Redefine using :P.  Use mips_prefetch_cookie.
16823
16824 2004-08-24  Richard Earnshaw  <rearnsha@arm.com>
16825
16826         * arm.md: Include predicates.md.
16827         * predicates.md: New file.
16828         * arm.c (s_register_operand, arm_hard_register_operand)
16829         (arm_general_register_operand, f_register_operand, reg_or_int_operand)
16830         (arm_immediate_operand, arm_neg_immediate_operand)
16831         (arm_not_immediate_operand, arm_rhs_operand, arm_rhsm_operand)
16832         (arm_add_operand, arm_addimm_operand, arm_not_operand)
16833         (offsettable_memory_operand, alignable_memory_operand)
16834         (arm_reload_memory_operand, arm_float_rhs_operand)
16835         (arm_float_add_operand, vfp_compare_operand, arm_float_compare_operand)
16836         (index_operand, shiftable_operator, logical_binary_operator)
16837         (shift_operator, equality_operator, arm_comparison_operator)
16838         (minmax_operator, cc_register, dominant_cc_register)
16839         (arm_extendqisi_mem_op, power_of_two_operand, nonimmediate_di_operand)
16840         (di_operand, nonimmediate_soft_df_operand, soft_df_operand)
16841         (const_shift_operand, load_multiple_operation)
16842         (store_multiple_operation, multi_register_push, thumb_cmp_operand)
16843         (thumb_cmpneg_operand, thumb_cbrch_target_operand)
16844         (cirrus_register_operand, cirrus_fp_register)
16845         (cirrus_shift_const): Delete, replaced with equivalents in
16846         predicates.md.
16847         (shift_op): Handle ROTATE.
16848         * arm-protos.h: Delete declarations for above.
16849         * arm.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete.
16850         * t-arm (MD_INCLUDES): Add predicates.md.
16851         (s-preds): Depends on MD_INCLUDES.
16852
16853 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
16854
16855         * config/mips/mips.c (mips_gen_conditional_trap): Fix mode.
16856         * config/mips/mips.md (*conditional_trap[sd]i): Name previously unnamed
16857         patterns.  Redefine using :GPR.  Give the match_operator a mode.
16858         Use '%2' rather than '%z2' for operand 2.
16859
16860 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
16861
16862         * config/mips/mips.md (load_call[sd]i): Redefine using :P.  Add mode
16863         attribute.
16864
16865 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
16866
16867         * config/mips/mips.md (indirect_jump): Use force_reg.  Adjust names
16868         of internal patterns.
16869         (indirect_jump[sd]i): Renamed from indirect_jump_internal[12].
16870         Redefine using :P.
16871         (tablejump): Use expand_binop to calculate address.  Adjust names
16872         of internal patterns.
16873         (tablejump[sd]i): Renamed from tablejump_internal[12].
16874         Redefine using :P.
16875         (tablejump_mips16[12]): Delete.
16876
16877 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
16878
16879         * config/mips/mips.md (*seq_[sd]i, *seq_[sd]i_mips16, *sne_[sd]i)
16880         (*sgt_[sd]i, *sgt_[sd]i_mips16, *sge_[sd]i, *slt_[sd]i)
16881         (*slt_[sd]i_mips16, *sle_[sd]i, *sle_[sd]i_mips16, *sgtu_[sd]i)
16882         (*sgtu_[sd]i_mips16, *sge_[sd]i, *sltu_[sd]i, *sltu_[sd]i_mips16)
16883         (*sleu_[sd]i, *sleu_[sd]i_mips16): Redefine using :GPR.
16884
16885 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
16886
16887         * config/mips/mips.md (cmpsi, cmpdi): Redefine using :GPR.
16888         (*branch_zero[sd]i): Renamed from branch_zero{,_di}.  Redefine
16889         using :GPR.
16890         (*branch_zero[sd]i_inverted): Likewise branch_zero{,_di}_inverted.
16891         (*branch_equality[sd]i): Likewise branch_equality{,_di}.
16892         (*branch_equality[sd]i_inverted): Likewise
16893         branch_equality{,_di}_inverted.
16894         (*branch_equality[sd]i_mips16): Name formerly unnamed patterns.
16895         Redefine using :GPR.
16896
16897 2004-08-24  Zack Weinberg  <zack@codesourcery.com>
16898
16899         * rtl.def: Reorganize, placing all codes used only in machine
16900         descriptions at the end.
16901
16902         * rtl.def: Wrap MD-only codes in #ifdef GENERATOR_FILE.
16903         * gengtype.c: Don't include rtl.h.  Define enum rtx_code and
16904         rtx_name, rtx_format arrays by direct reference to rtl.def,
16905         first undefining GENERATOR_FILE.  Define enum insn_note and
16906         note_insn_name array by direct reference to insn-notes.def.
16907         (adjust_field_rtx_def): Remove local definition of rtx_name.
16908         Use symbolic names for insn notes.
16909         * Makefile.in (gengtype.o): Update dependencies.
16910
16911 2004-08-24  Zack Weinberg  <zack@codesourcery.com>
16912
16913         * basic-block.h (struct basic_block_def): Reorder fields to
16914         eliminate interior padding.  Remove 'partition' field.
16915         (BB_DISABLE_SCHEDULE, BB_HOT_PARTITION, BB_COLD_PARTITION)
16916         (BB_UNPARTITIONED, BB_PARTITION, BB_SET_PARTITION)
16917         (BB_COPY_PARTITION): New macros.
16918         * bb-reorder.c, cfgcleanup.c, cfglayout.c, cfgrtl.c, ifcvt.c
16919         Replace all references to the 'partition' field of a basic
16920         block with new macros.
16921
16922         * insn-notes.def: Delete NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
16923         * final.c (final_scan_insn): Don't handle it.
16924         * modulo-sched.c: Set BB_DISABLE_SCHEDULE flag on g->bb
16925         instead of emitting a NOTE_INSN_DISABLE_SCHED_OF_BLOCK note.
16926         * sched-rgn.c (sched_is_disabled_for_current_region_p):
16927         Look for a BB_DISABLE_SCHEDULE flag on the block instead of a note.
16928
16929 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
16930
16931         * c-decl.c (c_init_decl_processing): Adjust
16932         build_common_tree_nodes call.
16933         * expmed.c (const_mult_add_overflow_p): Use
16934         build_distinct_type_copy.
16935         * stor-layout.c (early_type_list): Remove.
16936         (layout_type): Don't append to early_type_list.
16937         (initialize_sizetypes): Add signed_p argument.
16938         (set_sizetype): Overwrite the stub type nodes directly.
16939         * tree.c (copy_node_stat): Clear a type's value cache here ...
16940         (build_distinct_type): ... not here.
16941         (build_common_tree_nodes): Add signed_sizetype argument. Adjust.
16942         * tree.h (initialize_sizetypes): Add signed_p argument.
16943         (build_common_tree_nodes): Likewise.
16944
16945         * objc/objc-act.c (get_static_reference): Use
16946         build_variant_type_copy.
16947         (get_protocol_reference): Likewise.
16948         * objc/objc-act.h (TREE_STATIC_TEMPLATE): Use TREE_PRIVATE.
16949
16950 2004-08-24  Richard Henderson  <rth@redhat.com>
16951             Andrew Pinski  <apinski@apple.com>
16952
16953         * gimplify.c (gimplify_array_ref_to_plus): Delete.
16954         (gimplify_addr_expr): Do not call gimplify_array_ref_to_plus
16955         for ARRAY_REF.
16956
16957         * config/rs6000/rs6000.c (altivec_expand_builtin): Go passed
16958         ARRAY_REF also to get to the STRING_CST.
16959
16960 2004-08-24  Paul Brook  <paul@codesourcery.com>
16961
16962         * config/arm/arm.c (arm_override_options): Update error message.
16963         * config/arm/arm.h (TARGET_HARD_FLOAT): Rename to
16964         TARGET_HARD_FLOAT_ABI.
16965         (TARGET_SOFT_FLOAT_ABI): Rename to TARGET_HARD_FLOAT.
16966         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Use TARGET_HARD_FLOAT_ABI.
16967
16968 2004-08-24  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
16969
16970         PR target/17093
16971         * config/m32r.md (movsi_sda): Add SI mode specification to
16972         UNSPEC.
16973
16974 2004-08-24  Nick Clifton  <nickc@redhat.com>
16975
16976         * config/m32r/m32r.h (PREDICATE_CODES): Remove duplicate definition
16977         of seth_add3_operand.
16978
16979 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
16980
16981         * Makefile.in (PROTO_OBJS): Add errors.o.
16982         * protoize.c (fancy_abort): Remove.
16983         * mips-tfile.c (fancy_abort): Add parameters.
16984
16985 2004-08-24  Jonathan Wakely  <redi@gcc.gnu.org>
16986
16987         * doc/trouble.texi (C++ misunderstandings): Fix example code.
16988
16989 2004-08-24  Andreas Tobler  <a.tobler@schweiz.ch>
16990
16991         * Makefile.in (HOOKS_H): Add dependency on MACHMODE_H.
16992         (host-default.o): Add dependency on HOOKS_H.
16993         * config/x-linux: Likewise.
16994         * config/x-solaris: Likewise.
16995         * config/i386/x-mingw32: Likewise.
16996         * config/rs6000/x-darwin: Likewise.
16997
16998 2004-08-23  James E Wilson  <wilson@specifixinc.com>
16999
17000         * reg-notes.def (REG_NOTE): In comment, change DEF_INSN_NOTE to
17001         DEF_REG_NOTE.
17002
17003 2004-08-23  Mark Mitchell  <mark@codesourcery.com>
17004
17005         PR c/14492
17006         * dwarf2out.c (loc_descriptor_from_tree): Robustify.
17007
17008 2004-08-23  Diego Novillo  <dnovillo@redhat.com>
17009
17010         * cfg.c (check_bb_profile): Fix typos.
17011         * function.c (assign_parm_is_stack_parm): Likewise.
17012         * tree-nested.c: Likewise.
17013
17014 2004-08-23  Daniel Jacobowitz  <dan@debian.org>
17015
17016         * ggc-zone.c (struc alloc_chunk): Rearrange flag bits and SIZE.
17017         Remove TYPECODE.
17018         (ggc_alloc_zone_1): Mark TYPE as unused.  Don't save it in the chunk.
17019
17020 2004-08-23  Eric Christopher  <echristo@redhat.com>
17021
17022         * defaults.h (VECTOR_MODE_SUPPORTED_P): Remove macro.
17023         * system.h (VECTOR_MODE_SUPPORTED_P): Poison.
17024         * target-def.h (TARGET_VECTOR_MODE_SUPPORTED_P): Define.
17025         * target.h: Ditto.
17026         * hooks.h: Include machmode.h.
17027         (hook_bool_mode_false): Declare.
17028         * hooks.c (hook_bool_mode_false): Define.
17029         * expr.c (vector_mode_valid_p): Use targetm.vector_mode_supported_p.
17030         * stor-layout.c (layout_type): Ditto.
17031         * config/alpha/alpha.c (alpha_vector_mode_supported_p): New function.
17032         Define to target macro.
17033         * config/alpha/alpha.h (VECTOR_MODE_SUPPORTED_P): Delete.
17034         * config/arm/arm.c: Ditto. Use.
17035         * config/arm/arm.h: Ditto.
17036         * config/arm/arm-protos.h: Ditto.
17037         * config/i386/i386.c: Ditto.
17038         * config/i386/i386.h: Ditto.
17039         * config/rs6000/rs6000.c: Ditto.
17040         * config/rs6000/rs6000.h: Ditto.
17041         * config/sh/sh.c: Ditto.
17042         * config/sh/sh.h: Ditto.
17043         * config/sh/sh-protos.h: Ditto.
17044         * config/sh/sh.md: Use.
17045         * doc/tm.texi: Move documentation for VECTOR_MODE_SUPPORTED_P
17046         to TARGET_VECTOR_MODE_SUPPORTED_P.
17047
17048 2004-08-23  Nathan Sidwell  <nathan@codesourcery.com>
17049
17050         * Makefile.in (BUILD_ERRORS): Set to build-errors.
17051         (errors.o): New target for host.
17052         (build-errors.o): New target for build.
17053         (genobjs): Replace errors.o with build-errors.
17054         (gengenrtl$(buildexeext)): Add $(BUILD_ERRORS).
17055         (GCOV_OBJS, GCOV_DUMP_OBJS): Add errors.o.
17056         (fix-headers$(build_exeext)): Add $(BUILD_ERRORS).
17057         (fix-header.o): Add errors.h
17058         * collect2.c (fancy_abort): Add parameters.
17059         * collect2.h (fancy_abort): Don't declare.
17060         * errors.h (fancy_abort): Don't declare.
17061         * errors.c: Include either bconfig.h or config.h.
17062         (fancy_abort): Trim filename.
17063         * fix-header.c (v_fatal, fatal): Remove.
17064         (progname): Remove definition.
17065         (main): Set progname here.
17066         * gcc.c (fancy_abort): Add parameters.
17067         * gcc.h (fancy_abort): Remove declaration.
17068         * gcov.c (fancy_abort): Remove.
17069         * rtl.h (fancy_abort): Don't declare.
17070         (abort): Don't define.
17071         * tree.h (fancy_abort): Don't declare.
17072         (abort): Don't define.
17073         * system.h (fancy_abort): Declare.
17074         (abort): Define to fancy_abort.
17075         * fixinc/Makefile.in (ALLOBJ): Add ../build-errors.o
17076
17077         * tree.h (enum size_type_kind): Remove USIZETYPE, UBITSIZETYPE.
17078         (usize_type, ubitsizetype): Remove.
17079         * stor-layout.c (set_sizetype): Don't initialize usizetype,
17080         ubitsizetype.
17081         * fold-const.c (size_diffop): TYPE can never be ubitsizetype.
17082
17083         * tree.h (build_distinct_type_copy): New.
17084         (build_type_copy): ... here.  Rename to ...
17085         (build_variant_type_copy): ... here.
17086         * tree.c (build_qualified_type): Rename build_type_copy call.
17087         (build_distinct_type_copy): New, broken out of ...
17088         (build_type_copy): ... here.  Rename to ...
17089         (build_variant_type_copy): ... here.  Use
17090         build_distinct_type_copy.
17091         (build_common_tree_nodes_2): Rename build_type_copy call.
17092         * c-common.c (c_common_nodes_and_builtins): Rename build_type_copy
17093         call.
17094         (handle_packed_attribute, handle_unused_attribute,
17095         handle_transparanet_union_attribute, handle_aligned_attribute,
17096         handle_deprecated_attribute): Likewise.
17097         * c-decl.c (clone_underlying_type, store_parm_decls_oldstyle):
17098         Likewise.
17099         * config/arm/arm.c (arm_handle_isr_attribyte): Likewise.
17100         * config/rs6000/rs6000.c (rs6000_init_builtins): Use
17101         build_distinct_type_copy.
17102
17103 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
17104
17105         * config/mips/mips.md (mfhilo_[sd]i): Redefine using :GPR.  Add mode
17106         attribute.
17107
17108 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
17109
17110         * config/mips/mips.md (length): Don't use mips_fetch_insns for indexed
17111         loads and stores.
17112         (*lwxc1_<mode>, *ldxc1_<mode>, *swxc1_<mode>, *sdxc1_<mode>): Name
17113         formerly unnamed patterns.  Redefine using :P for the address.  Remove
17114         explicit length attributes.
17115
17116 2004-08-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
17117
17118         * tree-ssa-loop-im.c (fem_single_reachable_address, for_each_memref):
17119         New functions.
17120         (single_reachable_address): Use them.
17121         (schedule_sm): Add dump.
17122         (is_call_clobbered_ref): New function.
17123         (determine_lsm_reg): Check whether the reference is call clobbered.
17124         Only work for gimple_reg_type values.
17125
17126 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
17127
17128         * config/mips/mips.md (*mov<mode>_ra): Name previously unnamed MIPS16
17129         $31 store insns.  Redefine using :GPR.
17130
17131 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
17132
17133         * config/mips/mips.md (P): New mode macro.
17134         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i)
17135         (*load_got[sd]i, *low[sd]i, *low[sd]i_mips16): Redefine using :P.
17136         Add mode attributes.
17137
17138 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
17139
17140         * config/mips/mips.md (UNSPEC_[LS][WD][LR]): Delete in favor of...
17141         (UNSPEC_{LOAD,STORE}_{LEFT,RIGHT}): ...these new constants.  Shuffle
17142         later constants to cover the gap.
17143         (load, store): New mode attributes.
17144         (mov_l[wd]l, mov_l[wd]r, mov_s[wd]l, mov_s[wd]r): Redefine using :GPR.
17145         Use new unspec constants.
17146
17147 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
17148
17149         * config/mips/mips.md (one_cmpl[sd]i2): Redefine using :GPR.
17150         (and[sd]3, ior[sd]i3, xor[sd]i3): Likewise.  Change 32-bit patterns
17151         to use register_operand rather than uns_arith_operand as the predicate
17152         for operand 1.  Remove redundant MIPS16 force_reg() for operand 1.
17153         (*and[sd]i3, *ior[sd]i3, *xor[sd]i3): Name formerly unnamed patterns.
17154         Redefine using :GPR.  Make same predicate change here.  Extend the
17155         commutativity of operands 1 and 2 from the SImode version to the
17156         DImode one.
17157         (*and[sd]i3_mips16, *ior[sd]i3_mips16, *xor[sd]i3_mips16): Likewise,
17158         but with no predicate changes.
17159         (*nor[sd]i3): Redefine using :GPR.
17160
17161 2004-08-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
17162
17163         * tree-ssa-operands.c (get_call_expr_operands): Add VUSE operands for
17164         noreturn functions.
17165
17166 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
17167
17168         * config/mips/mips.h (ISA_HAS_DCLZ_DCLO): Delete.
17169         * config/mips/mips.md (abs[sd]i2): Redefine using :GPR.  Only use
17170         branch-likely insns for absdi2 if GENERATE_BRANCHLIKELY.  Use "%."
17171         rather than "%z2" (with a fake const0_rtx for operand 2).
17172         (ffs[sd]i2): Redefine using :GPR.
17173         (clz[sd]i2): Likewise.  Use ISA_HAS_CLO_CLZ for the 64-bit case.
17174
17175 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
17176
17177         * config/mips/mips.md ({,u}divmod[sd]i4): Redefine using :GPR.
17178
17179 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
17180
17181         * config/mips/mips.md (any_extend): New code macro.
17182         (u, su): New code attributes.
17183         ({,u}mulsidi3, {,u}mulsidi3_32bit_internal, {,u}mulsidi3_32bit_r4000)
17184         ({u,s}mulsi3_highpart, {u,s}mulsi3_highpart_internal)
17185         ({u,s}mulsi3_highpart_mulhi_internal, {s,u}muldi3_highpart)
17186         (*{s,u}mul_acc_di): Redefine using any_extend.
17187         (*{,u}muls_di, *{s,u}msac_di): Likewise.  Change names of patterns
17188         to reflect real insn names.
17189         (*mulsidi3_64bit, *mulsidi3_64bit_parts): Replace use of match_operator
17190         with an any_extend template.
17191         ({u,s}mulsi3_highpart_neg_mulhi_internal): Redefine using any_extend.
17192         Add '*' to name.
17193
17194 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
17195
17196         * config/mips/mips.h (GENERATE_MULT3_SI): Check TARGET_MAD.
17197         * config/mips/mips.md (mul[sd]i3, mul[sd]i3_internal)
17198         (mul[sd]i3_r4000): Redefine using :GPR.
17199         (mulsi3_mult3): Don't check TARGET_MAD separately.
17200         (muldi3_mult3): Moved after mulsi_mult3.
17201
17202 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
17203
17204         * config.gcc (mips-*-*): Remove definitions of MASK_GAS and
17205         OBJECT_FORMAT_ELF.  Set MASK_SPLIT_ADDR by default if using GNU ld.
17206         * config/mips/mips.h (MASK_GAS): Delete.  Shuffle later masks down.
17207         (TARGET_GAS, TARGET_MIPS_AS): Delete.
17208         (TARGET_GPWORD): Define to true for n32 on IRIX.
17209         (TARGET_SWITCHES): Remove -mmips-as.  Turn -mgas into a no-op.
17210         (MIPS_AS_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC): Delete.
17211         (GAS_ASM_SPEC): Delete, folding into ASM_SPEC.
17212         (ASM_ABI_DEFAULT_SPEC, TARGET_ASM_SPEC): Delete.
17213         (MDEBUG_ASM_SPEC): Delete, folding into...
17214         (SUBTARGET_ASM_DEBUGGING_SPEC): ...here.
17215         (ASM_SPEC): Inline old GAS_ASM_SPEC.  Use GNU names for ABI switches.
17216         (EXTRA_SPECS): Remove mips_as_asm_spec, gas_asm_spec, target_asm_spec,
17217         subtarget_mips_as_asm_spec, mdebug_asm_spec.  Use MULTILIB_ABI_DEFAULT
17218         to define asm_abi_default_spec.
17219         (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP): Delete.
17220         (TARGET_ASM_SELECT_SECTION): Delete.
17221         * config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): Define to 0x7ff0
17222         for non-mips16 code, removing previous workaround for SGI assemblers.
17223         (TARGET_ASM_INTEGER, mips_assemble_integer): Delete.
17224         (TARGET_ASM_ALIGNED_DI_OP): Define this instead.
17225         (override_options): Remove !TARGET_GAS and !have_named_sections code.
17226         (print_operand): Fold TARGET_GAS conditionals into asm strings.
17227         (mips_output_filename): Remove !TARGET_GAS code.  Replace use of
17228         ASM_STABS_OP and ASM_STABN_OP.
17229         (mips_file_start): Remove TARGET_MIPS_AS/TARGET_GAS checks.
17230         (mips_output_aligned_decl_common): Remove mention of SGI o32 assembler.
17231         (mips_output_function_prologue): Remove !TARGET_GAS code.
17232         (mips_select_rtx_section): Remove !have_named_sections code.
17233         (mips_select_section): Delete.
17234         * config/mips/mips.md (trap): Remove !TARGET_GAS check.
17235         * config/mips/linux.h (TARGET_DEFAULT): Remove use of MASK_GAS.
17236         * config/mips/sdb.h (PUT_SDB_DEF, PUT_SDB_PLAIN_DEF): Delete.
17237         (PUT_SDB_BLOCK_START, PUT_SDB_BLOCK_END): Fold TARGET_GAS conditional.
17238         * config/mips/vxworks.h (ASM_SPEC): As for mips.h.
17239         * config/mips/windiss.h (ASM_SPEC): Likewise.
17240
17241 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
17242
17243         * read-rtl.c (map_value, mapping, macro_group): New structures.
17244         (BELLWETHER_CODE): New macro.
17245         (modes, codes, bellwether_codes): New variables.
17246         (find_mode, uses_mode_macro_p, apply_mode_macro, find_code)
17247         (uses_code_macro_p, apply_code_macro, apply_macro_to_string)
17248         (apply_macro_to_rtx, uses_macro_p, add_condition_to_string)
17249         (add_condition_to_rtx, apply_macro_traverse, add_mapping)
17250         (add_map_value, initialize_macros): New functions.
17251         (def_hash, def_hash_eq_p): Generalize to anything that points to,
17252         or starts with, a char * field.
17253         (find_macro, read_mapping, check_code_macro): New functions.
17254         (read_rtx_1): New, split out from read_rtx.  Handle the new
17255         define_{mode,code}_{macro,attr} constructs.  Use find_macro
17256         to parse the name of a code or mode.  Use BELLWETHER_CODE to
17257         extract the format and to choose a suitable code for rtx_alloc.
17258         Modify recursive invocations to use read_rtx_1.
17259         (read_rtx): Call initialize_macros.  Apply code and mode macros
17260         to the rtx returned by read_rtx_1.  Cache everything after the
17261         first macro expansion for subsequent read_rtx calls.
17262         * doc/md.texi: Document new .md constructs.
17263         * config/mips/mips.md (GPR): New mode macro.
17264         (d, si8_di5): New mode attributes.
17265         (any_cond): New code macro.
17266         (add[sd]i3): Redefine using :GPR.
17267         (*add[sd]i3): Likewise, renaming from add[sd]i3_internal.
17268         (*add[sd]i3_sp[12], *add<mode>3_mips16): Redefine using :GPR, naming
17269         previously unnamed MIPS16 patterns.
17270         (*addsi3_extended): Renamed from addsi3_internal_2.  Fix overly long
17271         lines.  Don't match (plus (const_int 0) ...).
17272         (*addsi3_extended_mips16): Name previously unnamed MIPS16 pattern.
17273         Use a define_split to generate the addition.
17274         (sub[sd]i3): Redefine using :GPR.  Turn subsi3 into a define_insn.
17275         (subsi3_internal): Delete.
17276         (*subsi3_extended): Renamed from subsi3_internal_2.
17277         (bunordered, bordered, bunlt, bunge, buneq, bltgt, bunle, bungt)
17278         (beq, bne, bgt, bge, blt, ble, bgtu, bgeu, bltu, bleu): Redefine
17279         using an any_cond template.
17280
17281 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
17282
17283         * read-rtl.c (read_rtx): Tidy use of format_ptr.
17284
17285 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
17286
17287         * read-rtl.c (string_obstack): New file-scope variable.
17288         (read_string, read_quoted_string, read_braced_string)
17289         (read_escape): Remove obstack parameter and use string_obstack instead.
17290         (read_rtx): Remove function-local rtl_obstack and initialize
17291         string_obstack instead.  Update call to read_string.
17292
17293 2004-08-22  Andrew Pinski  <apinski@apple.com>
17294
17295         PR c/15262
17296         * c-typeck.c (build_unary_op): Use &a.b if the foldded lowered
17297         expression is not constant.
17298         (c_finish_return): Do not go through INDIRECT_REF when looking
17299         for the inner expression of an ADDR_EXPR for warning about.
17300
17301 2004-08-22  Richard Henderson  <rth@redhat.com>
17302
17303         PR 17075
17304         * cfgexpand.c (expand_gimple_tailcall): Detect when we can both
17305         create new blocks and fall through.
17306         (expand_gimple_basic_block): Update to match.
17307
17308 2004-08-22  Ulrich Weigand  <uweigand@de.ibm.com>
17309
17310         * reload.c (find_reloads_address): Make return value tri-state.
17311         Return -1 if LEGITIMIZE_RELOAD_ADDRESS succeeded.
17312         (find_reloads): Assume that reloaded addresses match 'o' or
17313         EXTRA_MEMORY_CONSTRAINT constraints only if find_reloads_address
17314         returned 1 (not -1).  Omit optional reloads for address operands
17315         only if find_reloads_address returned 1 (not -1).
17316
17317         * config/s390/s390.c (legitimize_reload_address): New function.
17318         * config/s390/s390-protos.h (legitimize_reload_address): Declare.
17319         * config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Define.  Call
17320         legitimize_reload_address.
17321
17322 2004-08-22  Richard Hendersion  <rth@redhat.com>
17323
17324         * tree.h (SAVE_EXPR_RESOLVED_P): New.
17325         * gimplify.c (gimplify_save_expr): Use it.
17326         * expr.c (expand_expr_real_1): Likewise.  Also set DECL_IGNORED_P
17327         on the temporary variable.
17328
17329 2004-08-22  Andrew Pinski  <pinskia@physics.uc.edu>
17330
17331         * fold-const.c (rtl_expr_nonnegative_p): Delete.
17332         * tree.h (rtl_expr_nonnegative_p): Remove.
17333
17334 2004-08-22  Steven Bosscher  <stevenb@suse.de>
17335
17336         * config/i386/ppro.md (ppro_complex_insn): Add missing check
17337         for cpu==pentiumpro.
17338
17339         * combine.c (struct reg_stat): Fix comment typo.
17340
17341 2004-08-22  Joseph S. Myers  <jsm@polyomino.org.uk>
17342
17343         * c-tree.h (c_sizeof_nowarn): Remove.
17344
17345 2004-08-21  Joseph S. Myers  <jsm@polyomino.org.uk>
17346
17347         * c-decl.c (set_array_declarator_type): Rename to
17348         set_array_declarator_inner.
17349         (build_c_parm, build_attrs_declarator, build_function_declarator):
17350         New functions.
17351         (make_pointer_declarator): Call build_attrs_declarator.
17352         * c-tree.h (set_array_declarator_type): Rename to
17353         set_array_declarator_inner.
17354         (build_c_parm, build_attrs_declarator, build_function_declarator):
17355         New prototypes.
17356         * c-parse.in (after_type_declarator,
17357         parm_declarator_starttypename, parm_declarator_nostarttypename,
17358         notype_declarator, absdcl_maybe_attribute, direct_absdcl1, parm,
17359         firstparm): Use these functions
17360
17361 2004-08-21  Joseph S. Myers  <jsm@polyomino.org.uk>
17362
17363         * c-decl.c (build_array_declarator, set_array_declarator_type,
17364         start_decl, grokdeclarator, grokparms): Change boolean parameters
17365         to type bool.
17366         * c-tree.h (build_array_declarator, set_array_declarator_type,
17367         start_decl): Update prototypes.
17368         * c-decl.c, c-parse.in: All callers changed.
17369
17370 2004-08-21  Mike Stump  <mrs@apple.com>
17371
17372         * config/rs6000/darwin.h (SUBTARGET_OPTIONS): Move from here, to...
17373         (darwin_fix_and_continue): Likewise.
17374         (darwin_fix_and_continue_switch): Likewise.
17375         * config/darwin.h (SUBTARGET_OPTIONS): ...here, to fix -mone-byte-bool.
17376         (darwin_fix_and_continue): Likewise.
17377         (darwin_fix_and_continue_switch): Likewise.
17378
17379 2004-08-21  Danny Smith  <dannysmith@users.sourceforge.net>
17380
17381         PR  c++/16030
17382         * config/i386/winnt/c (gen_stdcall_suffix, gen_fastcall_suffix):
17383         Remove, merging into ...
17384         (gen_stdcall_or_fastcall_suffix): New function, returning tree
17385         rather than const char*, and accepting additional parameter.
17386         Don't add suffix to '*'-prefixed symbols or variadic functions.
17387         (i386_pe_encode_section_info): Adjust for call to new function.
17388         Call change_decl_assembler_name.
17389
17390 2004-08-20  Mike Stump  <mrs@apple.com>
17391
17392         * config/darwin.c (machopic_indirect_data_reference): Mark
17393         stubs as defined.
17394         * config/386/386.c (darwin_local_data_pic): Add.
17395         (legitimate_constant_p): Reorder so that PLUS handling runs
17396         before darwin_local_data_pic to match the ordering in
17397         legitimate_pic_address_disp_p and so that MINUS runs after
17398         darwin_local_data_pic as otherwise the darwin_local_data_pic
17399         logic can be skipped, which would be very bad.
17400         (legitimate_pic_address_disp_p): Move from from here to
17401         darwin_local_data_pic so it can be reused.
17402
17403 2004-08-21  Alan Modra  <amodra@bigpond.net.au>
17404
17405         * config/rs6000/linux64.h (DOT_SYMBOLS): Define.
17406         (CRT_CALL_STATIC_FUNCTION): Define !DOT_SYMBOLS version.
17407         (ASM_DECLARE_FUNCTION_SIZE): Modify for !DOT_SYMBOLS.
17408         (ASM_OUTPUT_SOURCE_LINE, DBX_OUTPUT_BRAC, DBX_OUTPUT_NFUN): Likewise.
17409         (RS6000_ABI_NAME): Define as "linux".
17410         (SUBSUBTARGET_OVERRIDE_OPTIONS): Set dot_symbols.
17411         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Select
17412         ABI_AIX when rs6000_abi_name is "linux" and TARGET_64BIT.
17413         * config/rs6000/rs6000-protos.h (rs6000_output_function_entry): Decl.
17414         * config/rs6000/rs6000.c (dot_symbols): New global var.
17415         (rs6000_output_function_entry): New function, modified for
17416         !DOT_SYMBOLS..
17417         (print_operand <case 'z'>): ..extracted from here.
17418         (rs6000_assemble_visibility): Modify for !DOT_SYMBOLS.
17419         (rs6000_output_function_epilogue): Likewise.
17420         (rs6000_elf_declare_function_name): Likewise.
17421         * config/rs6000/rs6000.h (DOT_SYMBOLS): Define.
17422         (ASM_WEAKEN_DECL, ASM_OUTPUT_DEF_FROM_DECLS): Modify for !DOT_SYMBOLS.
17423         * configure.ac (HAVE_LD_NO_DOT_SYMS): Add new AC_DEFINE.
17424         * configure: Regenerate.
17425         * config.in: Regenerate.
17426
17427 2004-08-20  Mark Mitchell  <mark@codesourcery.com>
17428
17429         * reload.c (find_reloads_address): Fix thinko in previous change.
17430
17431         * reload.c (find_reloads_address): Reload the sum of a LO_SUM and
17432         a CONST_INT.
17433
17434 2004-08-20  Jakub Jelinek  <jakub@redhat.com>
17435
17436         PR rtl-optimization/17099
17437         * combine.c (force_to_mode): Check if inner_mask has any bits set
17438         outside of GET_MODE (x) instead of op_mode.
17439
17440 2004-08-20  Mark Mitchell  <mark@codesourcery.com>
17441
17442         * config.gcc (arm*-*-symbianelf*): Add t-symbian Makefile
17443         fragment.
17444         * config/arm/bpabi.h (RENAME_LIBRARY_SET): Fix typo.
17445         (SUBTARGET_EXTRA_ASM_SPEC): Pass -meabi=3 to the assembler.
17446         * config/arm/symbian.h (SUBTARGET_CPU_DEFAULT): Assume ARMV5
17447         architecture.
17448         (SUBTARGET_ASM_FLOAT_SPEC): Default to -mfpu=vfp for hard-float
17449         configurations.
17450         * config/arm/t-symbian: New file.
17451
17452 2004-08-20  Andrew Pinski  <apinski@apple.com>
17453
17454         * regrename.c (kill_value_regno): ANSIfy.
17455
17456 2004-08-20  Dale Johannesen  <dalej@apple.com>
17457
17458         * config/rs6000/rs6000.c (rs6000_rtx_costs): Improve DIV/MOD.
17459
17460 2004-08-20  Daniel Jacobowitz  <dan@debian.org>
17461
17462         * regrename.c (kill_value_one_regno): Renamed from kill_value_regno.
17463         (kill_value_regno): New function, derived from kill_value.
17464         (kill_value): Update.
17465         (copyprop_hardreg_forward_1): Update call to kill_value_regno.
17466
17467 2004-08-20  Daniel Berlin  <dberlin@dberlin.org>
17468
17469         Fix PR tree-optimization/17111
17470         * tree-ssa-pre.c (create_value_expr_from): Don't change the types
17471         of non-value_handles.
17472         (bitmap_set_contains): All constants are in every set.
17473
17474 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
17475
17476         * fold-const.c (round_up, round_down): Use build_int_cst.
17477         Optimize common case.
17478
17479 2004-08-20  Zack Weinberg  <zack@codesourcery.com>
17480             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17481
17482         * config/pa/pa-protos.h (readonly_data, one_only_readonly_data_section,
17483         one_only_data_section): Rename to som_readonly_data_section,
17484         som_one_only_readonly_data_section and som_one_only_data_section.
17485         * config/pa/pa.c (ONE_ONLY_TEXT_SECTION_ASM_OP,
17486         NEW_TEXT_SECTION_ASM_OP, DEFAULT_TEXT_SECTION_ASM_OP): Delete
17487         conditional defines.
17488         (som_text_section_asm_op): Replace ONE_ONLY_TEXT_SECTION_ASM_OP,
17489         NEW_TEXT_SECTION_ASM_OP and DEFAULT_TEXT_SECTION_ASM_OP with actual
17490         string values.
17491         (pa_select_section): Use renamed section functions.
17492         * config/pa/pa.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS,
17493         SOM_READONLY_DATA_SECTION_FUNCTION,
17494         SOM_ONE_ONLY_READONLY_DATA_SECTION_FUNCTION,
17495         SOM_ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION):
17496         Define here ...
17497         * config/pa/som.h: ... not here.
17498         (DEFAULT_TEXT_SECTION_ASM_OP, NEW_TEXT_SECTION_ASM_OP,
17499         ONE_ONLY_TEXT_SECTION_ASM_OP, READONLY_DATA_ASM_OP,
17500         ONE_ONLY_READONLY_DATA_SECTION_ASM_OP,
17501         ONE_ONLY_DATA_SECTION_ASM_OP): Delete.
17502         (READONLY_DATA_SECTION): Use som_readonly_data_section.
17503
17504 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
17505
17506         * fold-const.c (int_const_binop): Don't generate non-overflowing
17507         size-types specially.
17508         (fold_convert_const): Likewise.
17509
17510         * stor-layout.c (initialize_sizetypes): Set SIZETYPE earlier,
17511         clear cache on copied sizetype.
17512
17513 2004-08-20  Ben Elliston  <bje@au.ibm.com>
17514
17515         * configure.ac: Don't escape apostrophe in --enable-coverage help.
17516         * configure: Regenerate.
17517
17518 2004-08-20  Danny Smith  <dannysmith@users.sourceforge.net>
17519
17520         PR 5620
17521         * gcc.c (struct stat input_stat): Don't define if
17522         HOST_LACKS_INODE_NUMBERS
17523         (do_spec_1): If HOST_LACKS_INODE_NUMBERS, use lrealpath rather
17524         than stat to determine if temp file is same as input file.
17525         * doc/hostconfig.texi: Document HOST_LACKS_INODE_NUMBERS.
17526         * config/i386/xm-mingw32.h: Define HOST_LACKS_INODE_NUMBERS
17527
17528 2004-08-20  Richard Sandiford  <rsandifo@redhat.com>
17529
17530         * configure.ac (mips*-*-*): Print an error if not using GAS.
17531         * configure: Regenerated.
17532         * doc/install.texi: Remove irix5 bullet from --with-gnu-as.  Remove
17533         comments about buggy MIPSpro assemblers.
17534         * config.gcc (mips-sgi-irix[56]*): Combine stanzas.  Include elfos.h
17535         before mips.h and iris.h after it.  Use t-iris and t-slibgcc-irix.
17536         Use iris5.h only for IRIX 5 configs.  Use iris6.h and t-iris6 for
17537         IRIX 6 configs.  Define IRIX_USING_GNU_LD if using GNU ld.
17538         * config/mips/iris5.h (TARGET_IRIX, SWITCHES_NEED_SPACES)
17539         (DEFAULT_SIGNED_CHAR, WORD_SWITCH_TAKES_ARG, SUBTARGET_CC1_SPEC)
17540         (NO_IMPLICIT_EXTERN_C, MIPS_DEFAULT_GVALUE)
17541         (TARGET_ASM_EXTERNAL_LIBCALL): Move to iris.h.
17542         (WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS): Delete in favor
17543         of more general IRIX 6 definitions.
17544         (OBJECT_FORMAT_ELF, ASM_OUTPUT_ASCII, ASM_WEAKEN_LABEL)
17545         (HANDLE_SYSV_PRAGMA): Delete in favor of elfos.h definitions.
17546         (TARGET_IRIX5, ABICALLS_ASM_OP, BSS_SECTION_ASM_OP, HAS_INIT_SECTION)
17547         (LD_INIT_SWITCH, LD_FINI_SWITCH, SUBTARGET_ASM_OPTIMIZING_SPEC)
17548         (ASM_FINAL_SPEC, DBX_DEBUGGING_INFO, MIPS_DEBUGGING_INFO)
17549         (PREFERRED_DEBUGGING_TYPE, DWARF2_UNWIND_INFO, SET_FILE_NUMBER)
17550         (LABEL_AFTER_LOC, DOLLARS_IN_IDENTIFIERS, NO_DOLLAR_IN_LABEL)
17551         (TARGET_ASM_NAMED_SECTION, EXTRA_SECTION_FUNCTIONS)
17552         (ASM_DECLARE_FUNCTION_SIZE, ASM_OUTPUT_WEAK_ALIAS)
17553         (SUBTARGET_EXTRA_SPECS): Delete definitions or undefs.
17554         (LINK_SPEC): Move most of definition to iris.h.
17555         (SUBTARGET_LINK_SPEC): New macro.
17556         (IRIX_STARTFILE_SPEC): Fold into...
17557         (STARTFILE_SPEC): ...here.
17558         (IRIX_ENDFILE_SPEC): Fold into...
17559         (ENDFILE_SPEC): ...here.
17560         * config/mips/iris6.h (TARGET_IRIX5): Remove override.
17561         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE)
17562         (DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE, SET_ASM_OP)
17563         (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES, ASM_DECLARE_OBJECT_NAME)
17564         (ASM_FINISH_DECLARE_OBJECT, LOCAL_LABEL_PREFIX): Move to iris.h.
17565         (TARGET_OS_CPP_BUILTINS): Likewise.  Guard IRIX6-specific bits.
17566         (DWARF2_UNWIND_INFO, DWARF2_GENERATE_TEXT_SECTION_LABEL)
17567         (SUBTARGET_CPP_SPEC, DWARF2_DEBUGGING_INFO, MIPS_DEBUGGING_INFO)
17568         (PREFERRED_DEBUGGING_TYPE, DWARF2_FRAME_INFO, MD_EXEC_PREFIX)
17569         (ASM_DECLARE_FUNCTION_NAME, ASM_DECLARE_FUNCTION_SIZE)
17570         (FUNCTION_NAME_ALREADY_DECLARED, SUPPORTS_INIT_PRIORITY)
17571         (POPSECTION_ASM_OP, SUBTARGET_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC)
17572         (SUBTARGET_ASM_DEBUGGING_SPEC, SUBTARGET_ASM_OPTIMIZING_SPEC)
17573         (BSS_SECTION_ASM_OP*, READONLY_DATA_SECTION_ASM_OP*)
17574         (EH_FRAME_SECTION_NAME, MUST_USE_SJLJ_EXCEPTIONS, CTORS_SECTION_ASM_OP)
17575         (DTORS_SECTION_ASM_OP, TARGET_ASM_NAMED_SECTION, EH_FRAME_SECTION_NAME)
17576         (ASM_OUTPUT_ALIGN, ASM_OUTPUT_FILENAME, ASM_OUTPUT_ALIGNED_LOCAL)
17577         (ASM_OUTPUT_ALIGNED_BSS): Remove definitions or undefs.
17578         (TARGET_IRIX6): Define to 1.
17579         (DRIVER_SELF_SPECS): Define.
17580         (DWARF2_FRAME_INFO): Define to 1 rather than !TARGET_SGI_O32_AS.
17581         (SUBTARGET_CC1_SPEC): Remove in favor of DRIVER_SELF_SPECS.
17582         (SUBTARGET_LINK_SPEC): New macro.
17583         (IRIX_STARTFILE_SPEC): Fold into...
17584         (STARTFILE_SPEC): ...here.  Remove !mabi=* case.
17585         (SUBTARGET_{,DONT_}WARN_UNUSED_SPEC): New macros.
17586         (LIB_SPEC, LIBGCC_SPEC): Use them.
17587         (LIB_SPEC): Remove !mabi=* case.
17588         (IRIX_ENDFILE_SPEC): Fold into...
17589         (ENDFILE_SPEC): ...here.  Remove !mabi=* case.
17590         * config/mips/mips-protos.h (irix_output_external_libcall): Delete.
17591         * config/mips/mips.h (TARGET_IRIX5, TARGET_SGI_O32_AS): Delete.
17592         (TARGET_IRIX6): New macro.
17593         (ASM_ABI_DEFAULT_SPEC): Remove !ELF definition.
17594         (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX, SET_FILE_NUMBER)
17595         (LABEL_AFTER_LOC): Delete.
17596         * config/mips/mips.c (TARGET_ASM_FILE_START, TARGET_ASM_FILE_END)
17597         (TARGET_SECTION_TYPE_FLAGS): Remove TARGET_IRIX versions.
17598         (mips_build_builtin_va_list): Check TARGET_IRIX6.
17599         (override_options): Remove TARGET_SGI_O32_AS-related code.
17600         (irix_output_external_libcall): Make static.
17601         (mips_output_filename): Avoid use of SET_FILE_NUMBER and
17602         LABEL_AFTER_LOC.
17603         (mips_file_start): Tidy guard for ABI sections.  Remove use of
17604         ABICALLS_ASM_OP; use .abicalls instead.
17605         (mips_output_aligned_decl_common, mips_declare_object_name)
17606         (mips_finish_declare_object): Remove use of TARGET_SGI_O32_AS.
17607         (mips_output_function_prologue): Set TREE_ASM_WRITTEN if emitting
17608         .globl foo .text directives.
17609         (irix_asm_named_section_1, irix_asm_named_section)
17610         (irix_section_align_entry, irix_section_align_htab)
17611         (irix_orig_asm_out_file, irix_section_align_entry_eq)
17612         (irix_section_align_entry_hash, irix_asm_output_align)
17613         (irix_file_start, irix_section_align_1, copy_file_data)
17614         (irix_file_end, irix_section_type_flags): Delete.
17615         * config/mips/irix-crti.asm (__gcc_init): Move to .gcc_init section.
17616         Use standard section syntax.  Remove protective "jr $31".
17617         (__gcc_fini): Likewise .gcc_fini.
17618         * config/mips/irix-crtn.asm: Adjust sections accordingly.
17619         * config/mips/sdb.h (PUT_SDB_SIZE, PUT_SDB_TYPE): Moved from
17620         iris5gas.h.
17621         * config/mips/t-iris (irix-crti.o, irix-crtn.o): New rules, moved
17622         from t-irix-gld.
17623         (EXTRA_MULTILIB_PARTS): Define.
17624         * config/mips/t-iris6: Remove bogus comment.
17625         (EXTRA_MULTILIB_PARTS, CRTSTUFF_T_CFLAGS): Delete.
17626         * config/mips/iris5gas.h, config/mips/iris5gld.h,
17627         config/mips/iris6gas.h, config/mips/iris6gld.h,
17628         config/mips/t-iris5-as, config/mips/t-iris5-gas
17629         config/mips/t-irix-gld: Delete.
17630         * config/mips/iris.h: New file.
17631         * config/mips/t-slibgcc-irix: Renamed from t-iris5-6.
17632
17633 2004-08-20  Richard Earnshaw  <rearnsha@arm.com>
17634
17635         * postreload.c (reload_cse_move2add): Allow any condjump, but check
17636         that the implicit set isn't clobbered in the jump insn.
17637
17638 2004-08-19  Mark Mitchell  <mark@codesourcery.com>
17639
17640         * defaults.h (TARGET_LIBGCC_LIBFUNCS): Remove.
17641         * optabs.c (init_optabs): Don't check it.
17642         * config/arm/bpabi.h (TARGET_LIBGCC_LIBFUNCS): Do not define.
17643         * doc/tm.texi (TARGET_LIBGCC_FUNCS): Remove.
17644
17645 2004-08-18  Andreas Krebbel  <krebbel1@de.ibm.com>
17646
17647         * config/s390/s390.md (s390_warn_framesize_string)
17648         (s390_warn_dynamic_string, s390_stack_size_string)
17649         (s390_stack_guard_string): New global string variables.
17650         (s390_warn_framesize, s390_warn_dynamicstack_p, s390_stack_size)
17651         (s390_stack_guard): New global variables.
17652         (override_options): Added checks for the new options.
17653         (s390_emit_prologue): Emit stack check and trap code and perform
17654         compile time stack size checking.
17655
17656         * config/s390/s390.h (TARGET_OPTIONS): Added new options
17657         "warn-framesize", "warn-dynamicstack", "stack-size" and
17658         "stack-guard".
17659
17660         * doc/invoke.texi: Added documentation for the new options.
17661
17662 2004-08-19  Ulrich Weigand  <uweigand@de.ibm.com>
17663
17664         * unwind-dw2-fde.c (get_cie_encoding): Cast argument to strlen
17665         to eliminate warning.
17666         (linear_search_fdes): Declare p as unsigned.
17667         (binary_search_mixed_encoding_fdes): Likewise.
17668         * unwind-dw2.c (get_cie_encoding): Cast argument to strlen
17669         to eliminate warning.
17670         * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Add missing
17671         type cast.
17672
17673 2004-08-19  Ulrich Weigand  <uweigand@de.ibm.com>
17674
17675         * config/s390/s390-protos.h (preferred_la_operand_p): Adapt prototype.
17676         * config/s390/s390.c (preferred_la_operand_p): Accept two operands
17677         instead of one.  Check for strictly legitimate address.
17678         * config/s390/s390.md ("*la_31"/"*la_64" peepholes): Adapt call
17679         to preferred_la_operand_p, do not call gen_rtx_PLUS in predicate.
17680
17681 2004-08-19  Eric Christopher  <echristo@redhat.com>
17682
17683         * langhooks-def.h (LANG_HOOKS_UNSAVE_EXPR_NOW): Remove.
17684         * langhooks.h (unsave_expr_now): Ditto.
17685         * tree.h (unsave_expr_1): Remove prototype.
17686         (lhd_unsave_expr_now): Rename to unsave_expr_now.
17687         * tree-inline.c (unsave_expr_1): Move here
17688         from tree.c. Make static.
17689         (unsave_expr_now): Rename from lhd_unsave_expr_now.
17690         * tree-sra.c: Fix up for rename.
17691         * tree-ssa-copy.c: Ditto.
17692         * tree-eh.c: Ditto.
17693         * tree.c (unsave_expr_1): Move to tree-inline.c.
17694
17695 2004-08-19  Caroline Tice  <ctice@apple.com>
17696
17697         * config/i386/cygming.h (switch_to_section):  Fix typo (change
17698         in_unlikely_text_section to in_unlikely_executed_text).
17699
17700 2004-08-19  Daniel Berlin  <dberlin@dberlin.org>
17701
17702         * vec.h (VEC_lower_bound): New macro.
17703
17704 2004-08-19  Richard Sandiford  <rsandifo@redhat.com>
17705
17706         PR target/16446
17707         * config/mips/mips.c (struct mips_arg_info): Delete num_bytes.
17708         (mips_arg_info): Update accordingly.  Remove common treatment of fpr_p;
17709         treat each ABI separately.  Deal with n32/n64 complex float arguments.
17710         (function_arg): Add associated complex handling here.
17711
17712 2004-08-19  Richard Henderson  <rth@redhat.com>
17713
17714         * config/arm/arm.c (arm_gen_load_multiple): Use
17715         adjust_automodify_address.  Take base memory and offset instead
17716         of unchanging/struct/scalar bits.
17717         (arm_gen_store_multiple): Likewise.
17718         (arm_gen_movmemqi): Use adjust_automodify_address.
17719         * config/arm/arm-protos.h: Update decls.
17720         * config/arm/arm.md (load_multiple): Update arm_gen_load_multiple call.
17721         (store_multiple): Similarly.
17722
17723 2004-08-19  J"orn Rennecke <joern.rennecke@superh.com>
17724
17725         * regclass.c (globalize_reg): Update call_really_used_regs.
17726
17727 2004-08-19  Nathan Sidwell  <nathan@codesourcery.com>
17728
17729         * doc/invoke.texi (integer-share-limit): Document.
17730
17731         * tree.h (TYPE_CACHED_VALUES_P): New.
17732         (TYPE_CACHED_VALUES): New.
17733         (TYPE_ORIG_SIZE_TYPE): Adjust.
17734         * tree.def (INTEGER_CST): Update documentation.
17735         * tree.c: Inlcude params.h.
17736         (build_int_cst): Cache small values.
17737         (build_type_copy): Do not copy the value cache.
17738         * c-common.c (c_common_nodes_and_builtins): Add comment, remove
17739         unneeded zeroing.
17740         * c-typeck.c (build_c_cast): Add comment about OVERFLOW setting.
17741         * expmed.c (const_mult_add_overflow_p): Clear type copy's value
17742         cache.
17743         * fold-const.c (force_fit_type): Copy value when setting
17744         overflows.
17745         (int_const_binop): Likewise.
17746         * stor-layout.c: Include params.h
17747         (set_sizetype): Create values cache.
17748         (fixup_unsigned_type): Set UNSIGNED_P before caching any values.
17749         * params.def (PARAM_INTEGER_SHARE_LIMIT): New.
17750         * params.h (INTEGER_SHARE_LIMIT): New.
17751         * Makefile.in (tree.o, stor-layout.o): Depend on PARAMS_H.
17752
17753 2004-08-19  Paolo Bonzini  <bonzini@gnu.org>
17754
17755         * gimplify.c (gimplify_minimax_expr): Remove.
17756         (gimplify_expr) <MIN_EXPR, MAX_EXPR>: Remove special handling.
17757
17758 2004-08-19  Dorit Naishlos  <dorit@il.ibm.com>
17759
17760         * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace
17761         STACK_BOUDARY with PREFERRED_STACK_BOUNDARY.
17762
17763 2004-08-19  Mark Mitchell  <mark@codesourcery.com>
17764
17765         * bpabi.h (FPUTYPE_DEFAULT): Set it to FPUTYPE_VFP.
17766
17767 2004-08-18  Andrew Pinski  <apinski@apple.com>
17768
17769         * varasm.c (ecode_reg_name): Do nothing if the asmspec is empty.
17770
17771 2004-08-18  Mark Mitchell  <mark@codesourcery.com>
17772
17773         * config/arm/bpabi.c (__aeabi_ul2d): Give it default visibility.
17774         (__aeabi_ul2f): Likewise.
17775
17776 2004-08-18  Richard Henderson  <rth@redhat.com>
17777
17778         * config/xtensa/xtensa.c (xtensa_expand_block_move): Expand block
17779         move to rtl completely.
17780         (struct meminsnbuf, xtensa_emit_block_move): Remove.
17781         (xtensa_find_mode_for_size): Remove.
17782         * config/xtensa/xtensa-protos.h (xtensa_emit_block_move): Remove.
17783         * config/xtensa/xtensa.md (movmemsi_internal): Remove.
17784
17785 2004-08-18  Richard Henderson  <rth@redhat.com>
17786
17787         * config/mcore/mcore.c (mode_from_align): Remove DImode.
17788         (block_move_sequence): Rewrite to use adjust_address.
17789         (mcore_expand_block_move): Cleanup logic.  Accept only operands.
17790         Return boolean indicating success/failure.
17791         * config/mcore/mcore-protos.h (mcore_expand_block_move): Update decl.
17792         * config/mcore/mcore.md (movmemsi): Update to match.
17793
17794 2004-08-18  Mike Stump  <mrs@apple.com>
17795
17796         * doc/invoke.texi (-mfix-and-continue): Add support for
17797         fast turn around debugging.
17798         (-ffix-and-continue): Likewise.
17799         (-mindirect-data): Likewise.
17800         (-findirect-data): Likewise.
17801         * config/darwin.c (TARGET_FIX_AND_CONTINUE): Likewise.
17802         (indirect_data): Likewise.
17803         (machopic_data_defined_p): Likewise.
17804         (machopic_output_indirection): Likewise.
17805         (darwin_encode_section_info): Likewise.
17806         (darwin_fix_and_continue): Likewise.
17807         (darwin_fix_and_continue_switch): Likewise.
17808         * config/darwin.h (MACHO_SYMBOL_STATIC): Likewise.
17809         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Likewise.
17810         (SUBTARGET_OPTION_TRANSLATE_TABLE): Likewise.
17811         (SUBTARGET_OPTIONS): Likewise.
17812         (darwin_fix_and_continue): Likewise.
17813         (darwin_fix_and_continue_switch): Likewise.
17814         (TARGET_FIX_AND_CONTINUE): Likewise.
17815         * config/rs6000.c (rs6000_emit_prologue): Likewise.
17816
17817 2004-08-19  Steven Bosscher  <stevenb@suse.de>
17818
17819         * basic-block.h (struct edge_def): Remove crossing_edge.
17820         (EDGE_CROSSING): New define.
17821         (EDGE_ALL_FLAGS): Update.
17822         * bb-reorder.c (find_traces_1_round, better_edge_p,
17823         find_rarely_executed_basic_blocks_and_cr, fix_up_fall_thru_edges,
17824         find_jump_block, fix_crossing_conditional_branches,
17825         fix_crossing_unconditional_branches, add_reg_crossing_jump_notes):
17826         Replace all occurences of crossing_edge with an edge flag check
17827         or set/reset.
17828         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
17829         try_crossjump_bb): Likewise.
17830         * cfglayout.c (fixup_reorder_chain): Likewise.
17831         * cfgrtl.c (force_nonfallthru_and_redirect,
17832         commit_one_edge_insertion): Likewise.
17833
17834         * Makefile.in (cfganal.o): Depend on TIMEVAR_H.
17835         * tree-flow.h (compute_dominance_frontiers): Move prototype...
17836         * basic-block.h:  ...here.
17837         * tree-cfg.c (compute_dominance_frontiers_1,
17838         compute_dominance_frontiers): Move from here...
17839         * cfganal.c: ...to here.  Include timevar.h.
17840
17841 2004-08-18  James E Wilson  <wilson@specifixinc.com>
17842
17843         * config/mips/mips.h (ASM_SPEC): In comment, change -meabi= to -mabi=.
17844         * config/mips/sb1.md (ir_sb1_divsf_1pipe): Renamed from ...1pipes.
17845
17846         * config/mips/mips.md (type): Add frdiv.
17847         (divsf3+1, divsf3+2): Change type to frdiv.
17848         * config/mips/sb1.md (ir_sb1_recipsf_2pipes, ir_sb1_recipsf_1pipe,
17849         ir_sb1_recipdf_2pipes, ir_sb1_recipdf_1pipe): New.
17850
17851         * config/mips/3000.md (r3k_fdiv_single, r3k_fdiv_double): Add frdiv.
17852         * config/mips/4300.md (r4300_fdiv_single, r4300_fdiv_double): Likewise.
17853         * config/mips/4600.md (r4600_fdiv_single, f4600_fdiv_double): Likewise.
17854         * config/mips/5000.md (r5k_fdiv_single): Likewise.
17855         * config/mips/5400.md (ir_vr54_fdiv_sf, ir_vr54_fdiv_df): Likewise.
17856         * config/mips/5500.md (ir_vr55_fdiv_sf, ir_vr55_fdiv_df): Likewise.
17857         * config/mips/6000.md (r6k_fdiv_single, r6k_fdiv_double): Likewise.
17858         * config/mips/7000.md (rm7_fp_divsqrt_df, rm7_fp_divsqrt_sf): Likewise.
17859         * config/mips/9000.md (rm8k_fdivs, rm9k_fdivd): Likewise.
17860         * config/mips/generic.md (generic_fdiv_single, generic_fdiv_double):
17861         Likewise.
17862         * config/mips/sr71k.md (ir_sr70_fdiv_sf, ir_sr70_fdiv_df): Likewise.
17863
17864 2004-08-18  Robert Bowdidge <bowdidge@apple.com>
17865
17866         * config/rs6000/x-darwin: Remove XCFLAGS -mdynamic-no-pic to
17867         get regression tester working again.
17868
17869 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
17870
17871         * insn-notes.def, reg-notes.def: New files.
17872         * rtl.h: Use them to define enum insn_note and enum reg_note.
17873         * rtl.c: Use them to define note_insn_name and reg_note_name.
17874         * Makefile.in (RTL_BASE_H): Update.
17875
17876         * modulo-sched.c, sched-rgn.c, final.c: NOTE_DISABLE_SCHED_OF_BLOCK
17877         renamed to NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
17878
17879 2004-08-18  Richard Earnshaw  <rearnsha@arm.com>
17880
17881         * arm.c (arm_size_rtx_costs): New function.
17882         (arm_override_options): Use it if optimizing for space.
17883
17884 2004-08-18  Richard Henderson  <rth@redhat.com>
17885
17886         * emit-rtl.c (gen_const_mem): New.
17887         * rtl.h (gen_const_mem): Declare.
17888         * expr.c (do_tablejump): Use it.
17889         * varasm.c (force_const_mem): Likewise.
17890         * config/darwin.c (machopic_indirect_data_reference): Likewise.
17891         (machopic_legitimize_pic_address): Likewise.
17892         * config/arm/arm.c (legitimize_pic_address): Likewise.
17893         * config/i386/i386.c (legitimize_pic_address): Likewise.
17894         (legitimize_tls_address): Likewise.
17895         * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
17896         * config/ia64/ia64.md (load_fptr): Likewise.
17897         * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise.
17898         * config/pa/pa.c (legitimize_pic_address): Likewise.
17899         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
17900         (rs6000_emit_move): Likewise.
17901         * config/s390/s390.c (legitimize_pic_address): Likewise.
17902         (legitimize_tls_address): Likewise.
17903         * config/s390/s390.md (casesi): Likewise.
17904         * config/sh/sh.c (sh_reorg): Likewise.
17905         * config/sparc/sparc.c (legitimize_pic_address): Likewise.
17906         * config/v850/v850.md (casesi): Likewise.
17907
17908         * config/darwin.c (machopic_indirect_call_target): Set MEM_NOTRAP_P.
17909         * config/sh/sh.c (prepare_move_operands): Remove incorrect
17910         use of MEM_READONLY_P.
17911
17912 2004-08-18  Steven Bosscher  <stevenb@suse.de>
17913
17914         * Makefile.in (OBJS-common): Add postreload-gcse.c.
17915         Add new postreload-gcse.o.
17916         * cse.c (SAFE_HASH): Define as wrapper around safe_hash.
17917         (lookup_as_function, insert, rehash_using_reg, use_related_value,
17918         equiv_constant): Use SAFE_HASH instead of safe_hash.
17919         (exp_equiv_p): Export.  Add for_gcse argument when comparing
17920         for GCSE.
17921         (lookup, lookup_for_remove, merge_equiv_classes, find_best_addr,
17922         find_comparison_args, fold_rtx, cse_insn): Update callers.
17923         (hash_rtx): New function derived from old canon_hash and bits
17924         from gcse.c hash_expr_1.
17925         (canon_hash_string): Rename to hash_rtx_string.
17926         (canon_hash, safe_hash): Make static inline.  Call hash_rtx.
17927         * cselib.c (hash_rtx): Rename to cselib_hash_rtx.
17928         (cselib_lookup): Update this caller.
17929         * gcse.c (modify_mem_list_set, canon_modify_mem_list_set):
17930         Make static.
17931         (hash_expr): Call hash_rtx.
17932         (ldst_entry): Likewise.
17933         (expr_equiv_p): Call exp_equiv_p.
17934         (struct unoccr, hash_expr_1, hash_string_1, lookup_expr,
17935         reg_used_on_edge, reg_set_between_after_reload_p,
17936         reg_used_between_after_reload_p, get_avail_load_store_reg,
17937         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
17938         get_bb_avail_insn, hash_scan_set_after_reload,
17939         compute_hash_table_after_reload,
17940         eliminate_partially_redundant_loads, gcse_after_reload,
17941         get_bb_avail_insn, gcse_after_reload_main): Remove.
17942         * postreload-gcse.c: New file, reincarnating most of the above.
17943         * rtl.h (exp_equiv_p, hash_rtx): New prototypes.
17944         (gcse_after_reload_main): Update prototype.
17945         * timevar.def (TV_GCSE_AFTER_RELOAD): New timevar.
17946         * passes.c (rest_of_handle_gcse2): Use it.
17947
17948 2004-08-18  Diego Novillo  <dnovillo@redhat.com>
17949
17950         * tree-ssa-loop.c (pass_loop_init): Add TODO_dump_func.
17951         (pass_loop_done): Likewise.
17952
17953 2004-08-18  Andrew Pinski  <apinski@apple.com>
17954
17955         * config/rs6000/darwin.md: Delete the altivec patterns which are
17956         handled differently now.
17957         (load_macho_picbase_di): Make sure that is only happens for TARGET_64BIT
17958         (macho_correct_pic_di): Likewise.
17959         (call_indirect_nonlocal_darwin64): Likewise.
17960         Delete the save world/saveFP/saveVec patterns.
17961
17962         Revert the reversion of: 2004-08-16  Stan Shebs  <shebs@apple.com>
17963         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
17964         * config/rs6000/rs6000.md: Include darwin.md.
17965         (builtin_setjmp_receiver): Add DImode case.
17966         * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to
17967         Darwin bits.
17968
17969 2004-08-18  Matt Austern  <austern@apple.com>
17970
17971         Dead code stripping
17972         * darwin.h (EH_FRAME_SECTION_ATTR): Mark so it doesn't get stripped.
17973         * darwin.c (darwin_file_end): Mark file as potentially strippable.
17974
17975 2004-08-18  Richard Henderson  <rth@redhat.com>
17976
17977         * alias.c (readonly_fields_p): Remove.
17978         (objects_must_conflict_p): Don't call it.
17979         * tree.h (readonly_fields_p): Remove.
17980         * langhooks.h (struct lang_hooks): Remove honor_readonly.
17981         * langhooks-def.h (LANG_HOOKS_HONOR_READONLY): Remove.
17982
17983 2004-08-18  Diego Novillo  <dnovillo@redhat.com>
17984
17985         * tree-dfa.c (add_referenced_var): Only global variables are
17986         call-clobbered.
17987         * tree-flow.h (struct ptr_info_def): Add field pt_global_mem.
17988         * tree-ssa-alias.c (compute_points_to_and_addr_escape): Mark
17989         all pointers dereferenced if the statement dereferences them.
17990         (create_name_tags): Do not create memory tags for pointers
17991         that have PT_ANYTHING set.
17992         Also check if PT_VARS is not empty before creating a name tag.
17993         (compute_flow_sensitive_aliasing): Don't mark call-clobbered
17994         variables that share the same alias set with a pointer that
17995         may point anywhere.
17996         (add_may_alias): Add FIXME comment to remove clobbering
17997         aliased variables and tags.
17998         (replace_may_alias): Likewise.
17999         (set_pt_anything): Do not clear PT_VARS nor IS_DEREFERENCED.
18000         (merge_pointed_to_info): If the original variable has not
18001         points-to information, call set_pt_anything.
18002         (add_pointed_to_var): Do not prevent adding a pointed-to
18003         variable if the pointers is PT_ANYTHING.
18004         If the variable is a global, set PT_GLOBAL_MEM.
18005         (collect_points_to_info_r): Don't assume that PLUS_EXPRs of
18006         pointer type only come in PTR+OFFSET flavours.
18007         Always call merge_pointed_to_info on PHI arguments that are
18008         SSA_NAMEs.
18009         (get_nmt_for): Mark call-clobbered tags whose pointer points
18010         to global memory.
18011         * tree-ssa-operands.c (opf_kill_def, opf_no_vops): Switch
18012         values.
18013         (get_indirect_ref_operands): Always clear OPF_KILL_DEF from
18014         FLAGS.
18015         (add_stmt_operand): Abort if the caller tried to add a killing
18016         definition for a memory tag.
18017         * tree-ssa.c (verify_flow_sensitive_alias_info): Remove
18018         unnecessary checks.
18019
18020 2004-08-18  J"orn Rennecke <joern.rennecke@superh.com>
18021
18022         * sh.h (CONDITIONAL_REGISTER_USAGE): Don't exclude fixed registers
18023         from call_used_regs.  Update call_really_used_regs.
18024         (CALL_REALLY_USED_REGISTERS): Define.
18025         * sh.c (output_stack_adjust, shmedia_target_regs_stack_space):
18026         Replace call_used_regs with call_really_used_regs.
18027         (calc_live_regs, sh_media_register_for_return): Likewise.
18028         (sh5_schedule_saves, sh_expand_prologue, reg_unused_after): Likewise.
18029         * sh.md (return_media): Likewise.
18030
18031 2004-08-18  Andrew Pinski  <apinski@apple.com>
18032
18033         * config/darwin.c (machopic_legitimize_pic_address): Only set
18034         MEM_READONLY_P in the non TARGET_TOC case.
18035
18036 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
18037
18038         * rtl.def (NIL): Delete.
18039         * read-rtl.c (read_rtx): Handle (nil) like (define_constants).
18040         Tighten the syntax a little.
18041
18042         * cfgloop.h, combine.c, cse.c, loop-iv.c, postreload.c, reload.c
18043         * config/alpha/alpha.c, config/alpha/alpha.h, config/arc/arc.h
18044         * config/arm/arm.h, config/frv/frv.h, config/i386/i386.c
18045         * config/i386/predicates.md, config/m32r/m32r.h
18046         * config/m68hc11/m68hc11.c, config/mcore/mcore.h, config/mips/mips.c
18047         * config/mmix/mmix.c, config/pa/pa.h, config/sh/sh.h
18048         * config/sparc/sparc.h, doc/tm.texi:
18049         Replace all occurrences of NIL with UNKNOWN.
18050
18051 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
18052
18053         * dojump.c (do_jump <unordered_bcc>): Do not recursively call
18054         self with a TRUTH_ORIF_EXPR; generate the appropriate jump
18055         sequence inline.  Move drop_through_label code into this
18056         block, being the only place it is used.  Adjust comments.
18057
18058 2004-08-18  Fariborz Jahanian <fjahanian@apple.com>
18059
18060         * config/rs6000/altivec.md: Add new patterns for calls to
18061         save_world/rest_world functions.
18062
18063         * config/rs6000/rs6000-protos.h: (save_world_operation,
18064         restore_world_operation) new declarations.
18065
18066         * config/rs6000/rs6000.c: (struct rs6000_stack) new world_save_p
18067         field added.
18068         (rs6000_stack_info): Set world_save_p field.
18069         (save_world_operation): New function.
18070         (restore_world_operation): New function.
18071         (compute_save_world_info): New function.
18072         (rs6000_stack_info): Call compute_save_world_info.
18073         (rs6000_emit_prologue): Check for world_save_p and generate
18074         pattern to call save_world for saving all non-volatile and
18075         special registers.
18076         (rs6000_emit_epilogue): Check for world_save_p and generate
18077         pattern to call rest_world to restore saved registers.
18078
18079         config/rs6000/rs6000.h: macros FIRST_SAVED_ALTIVEC_REGNO,
18080         FIRST_SAVED_FP_REGNO, FIRST_SAVED_GP_REGNO defined.
18081         (rs6000_reg_names): New entries added for save_world_operation and
18082         restore_world_operation.
18083
18084 2004-08-18  Caroline Tice  <ctice@apple.com>
18085
18086         * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS) Add
18087         "-freorder-blocks-and-partition" to the flags used in second
18088         stage of profiledbootstrap.
18089         * bb-reorder.c (push_to_next_round_p): Add new variable,
18090         next_round_is_last; set and use variable to make sure, when
18091         partitioning, that the last trace construction round consists
18092         of all (and only) cold basic blocks.
18093         (rotate_loop): Don't copy blocks that end in a section
18094         crossing jump.
18095         (copy_bb): Correctly initialize "partition" of duplicated bb.
18096         (add_unlikely_executed_notes): Add a comment.
18097         (find_rarely_executed_basic_blocks_and_crossing_edges): Modify
18098         to make sure, if function contains hot blocks, that the
18099         successors of ENTRY_BLOCK_PTR are hot; also, only look for
18100         crossing edges if the architecture supports named sections.
18101         (mark_bb_for_unlikely_executed_section): Modify to always
18102         insert the NOTE_INSN_UNLIKELY_EXECUTED_CODE immediately after
18103         the basic block note insn.
18104         (fix_crossing_unconditional_branches): Remove extra space.
18105         (fix_edges_for_rarely_executed_code): Modify to only do
18106         partitioning work if the architecture supports named sections.
18107         (reorder_basic_blocks): Modify to only add
18108         NOTE_INSN_UNLIKELY_EXECUTED_CODE notes if the architecture
18109         supports named sections.
18110         * c-common.c (handle_section_attribute): Initialize new global
18111         variable, user_defined_section_attribute, to true if user has
18112         specified one.
18113         * cfgcleanup.c (try_forward_edges): Modify to not attempt to
18114         forward edges that cross section boundaries.
18115         * cfglayout.c (fixup_reorder_chain): Modify to only fix up
18116         partitioning information if the architecture supports named
18117         sections.
18118         * cfgrtl.c (target.h): Add statement to include this.
18119         (rtl_split_block): Make sure newly created bb gets correct
18120         partition.
18121         (try_redirect_by_replacing_jump): Make sure redirection isn't
18122         attempting to cross section boundaries.
18123         (force_nonfallthru_and_redirect): Only do partition fix up if
18124         architecture supports named sections.
18125         (rtl_split_edge): Make sure newly created bb ends up in
18126         correct partition.
18127         (commit_one_edge_insertion): Remove code that incorrectly
18128         updated basic block partition; Make sure partition fix up only
18129         happens if architecture supports named sections and it's not
18130         already done.
18131         (rtl_verify_flow_info_1): Fix if-condition on test/error
18132         condition that fallthru edges are not allowed to cross section
18133         boundaries.
18134         * defaults.h (NORMAL_TEXT_SECTION_NAME): Remove this.
18135         * final.c (final_scan_insn): Remove redundant test from if-statement;
18136         change calls to text_section into calls to function_section; add code
18137         to only to partitioning fix up if architecture supports named
18138         sections.
18139         * ifcvt.c (find_if_case_1): Make sure newly created bb has correct
18140         partition.
18141         (if_convert): Add targetm.have_named_sections to test.
18142         * output.h (unlikely_section_label): Extern declaration for new global
18143         variable.
18144         (unlikely_text_section_name): Likewise.
18145         * opts.c (decode_options): If both partitioning and DWARF debugging
18146         are turned on, issue a warning that this doesn't work, and change
18147         partitiong to basic block reordering (without hot/cold partitions).
18148         * passes.c (rest_of_handle_final): Re-set new global variable,
18149         user_defined_section_attribute, to false.
18150         (rest_of_compilation): Change options for calling partitioning
18151         function: Don't call if the user defined the section attribute, and
18152         don't call if DECL_ONE_ONLY is true for the current function.
18153         * predict.c (choose_function_section): Return immediately if we
18154         are doing hot/cold partitioning (i.e. let the basic block partitioning
18155         determine where the function belongs).
18156         * reg-stack.c (emit_swap_insn): Add condition to step over
18157         NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
18158         * toplev.c (user_defined_section_attribute): New global variable.
18159         * toplev.h (user_defined_section_attribute): Extern declaration
18160         for new global variable.
18161         * varasm.c (unlikely_section_label): New global variable.
18162         (unlikely_text_section_name): New global variable.
18163         (unlikely_text_section): Add code to initialize
18164         unlikely_text_section_name if necessary; modify to use
18165         unlikely_text_section_name and unlikely_section_label; also to use
18166         named_section properly.
18167         (in_unlikely_text_section):  Modify to work correctly with
18168         named_section and to use unlikely_text_section_name.
18169         (named_section):  Add code to work properly with cold section.
18170         (function_section): Clean up if-statement.
18171         * config/darwin.c (darwin_asm_named_section): Return to original
18172         code, removing use of SECTION_FORMAT_STRING.
18173         * config/arm/pe.h (switch_to_section):  Add case for
18174         in_unlikely_executed_text to switch statement.
18175         * config/i386/cygming.h (switch_to_section): Likewise.
18176         * config/i386/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.
18177         (SECTION_FORMAT_STRING): Likewise.
18178         * config/mcore/mcore.h (switch_to_section): Likewise.
18179         * config/rs6000/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.
18180         (SECTION_FORMAT_STRING): Remove.
18181
18182 2004-08-18  Roger Sayle  <roger@eyesopen.com>
18183
18184         * config/i386/i386.h (FIXED_REGISTERS): Update encoding to be
18185         -ffixed-reg safe, by preserving the meanings of zero and one.
18186         (CALL_USED_REGISTERS): Likewise.
18187         (CONDITIONAL_REGISTER_USAGE): Update to process new encodings.
18188
18189 2004-08-18  Kaz Kojima  <kkojima@gcc.gnu.org>
18190
18191         * config/sh/sh.c (split_branches): Check the result of
18192         next_active_insn.
18193         (sh_output_mi_thunk): Call init_flow if basic_block_info is null.
18194         Call rtl_register_cfg_hooks.
18195
18196 2004-08-18  Richard Henderson  <rth@redhat.com>
18197
18198         * rtl.h (MEM_READONLY_P): Replace RTX_UNCHANGING_P.
18199         * alias.c (true_dependence): Update to match new semantics.
18200         (canon_true_dependence, write_dependence_p): Likewise.
18201         (anti_dependence, output_dependence): Update write_dependence_p args.
18202         (unchanging_anti_dependence): Remove.
18203         * calls.c (purge_mem_unchanging_flag): Remove.
18204         (fixup_tail_calls): Don't call it.
18205         (expand_call): Don't add unchanging memory to function usage.
18206         * expr.c (emit_block_move_via_libcall): Likewise.
18207         (clear_storage_via_libcall): Don't clobber RTX_UNCHANGING_P mems.
18208         (get_subtarget): Don't use RTX_UNCHANGING_P.
18209         (expand_assignment, store_constructor, expand_expr_real_1): Likewise.
18210         (do_tablejump): Set MEM_READONLY_P, not RTX_UNCHANGING_P.
18211         * combine.c (get_last_value_validate): Use MEM_READONLY_P.
18212         * cse.c (insert): Don't use RTX_UNCHANGING_P.
18213         (cse_insn, canon_hash): Use MEM_READONLY_P.
18214         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use MEM_READONLY_P
18215         instead of RTX_UNCHANGING_P.
18216         * explow.c (maybe_set_unchanging): Remove.
18217         * expr.h (maybe_set_unchanging): Remove.
18218         * flow.c (insn_dead_p, mark_used_regs): Use anti_dependence.
18219         * function.c (assign_stack_temp_for_type): Don't use RTX_UNCHANGING_P.
18220         (assign_parm_setup_reg, expand_function_start): Likewise.
18221         * integrate.c (copy_rtx_and_substitute): Likewise.
18222         * ra-rewrite.c (emit_colors): Likewise.
18223         * regmove.c (copy_src_to_dest, regmove_optimize): Likewise.
18224         (fixup_match_1): Likewise.
18225         * reload1.c (reload, alter_reg): Likewise.
18226         * local-alloc.c (validate_equiv_mem): Check MEM_READONLY_P,
18227         not RTX_UNCHANGING_P.
18228         (equiv_init_varies_p): Likewise.
18229         * loop-invariant.c (check_maybe_invariant): Likewise.
18230         * resource.c (mark_referenced_resources, mark_set_resources): Likewise.
18231         * loop.c (note_addr_stored): Likewise.
18232         (prescan_loop): Likewise. Don't check function usage for clobbered
18233         unchanging memory.
18234         * rtlanal.c (rtx_unstable_p): Check MEM_READONLY_P,
18235         not RTX_UNCHANGING_P.
18236         (rtx_varies_p, modified_between_p, modified_in_p): Likewise.
18237         * varasm.c (force_const_mem): Likewise.
18238         * stmt.c (expand_decl): Don't set RTX_UNCHANGING_P.
18239         * web.c (entry_register): Likewise.
18240         * tree-gimple.h (get_base_address): Move decl ...
18241         * tree.h: ... here.
18242         * doc/rtl.texi (MEM_READONLY_P): Replace RTX_UNCHANGING_P.
18243
18244         * config/alpha/alpha.c (alpha_set_memflags_1): Rewrite to be
18245         called via for_each_rtx.  Copy MEM_SCALAR_P, MEM_NOTRAP_P too.
18246         (alpha_set_memflags): Update to match.
18247
18248         * config/darwin.c (machopic_indirect_data_reference): Set
18249         MEM_READONLY_P instead of RTX_UNCHANGING_P.
18250         (machopic_indirect_call_target): Likewise.
18251         (machopic_legitimize_pic_address): Likewise.
18252         * config/arm/arm.c (legitimize_pic_address, arm_gen_load_multiple,
18253         arm_gen_store_multiple, arm_gen_movmemqi): Likewise.
18254         * config/arm/arm.md (load_multiple, store_multiple): Likewise.
18255         * config/frv/frv.md (symGOT2reg): Likewise.
18256         * config/i386/i386.c (legitimize_pic_address,
18257         legitimize_tls_address, ix86_split_to_parts): Likewise.
18258         * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
18259         * config/ia64/ia64.md (load_fptr): Likewise.
18260         * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise.
18261         * config/m68k/m68k.c (legitimize_pic_address): Likewise.
18262         * config/mcore/mcore.c (block_move_sequence): Likewise.
18263         * config/mn10300/mn10300.md (symGOT2reg): Likewise.
18264         * config/pa/pa.c (legitimize_pic_address): Likewise.
18265         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
18266         (rs6000_emit_move): Likewise.
18267         * config/s390/s390.c (legitimize_pic_address): Likewise.
18268         (legitimize_tls_address): Likewise.
18269         * config/s390/s390.md (casesi): Likewise.
18270         * config/sh/sh.c (prepare_move_operands, sh_reorg): Likewise.
18271         * config/sh/sh.md (symGOT2reg): Likewise.
18272         * config/sparc/sparc.c (legitimize_pic_address): Likewise.
18273         * config/v850/v850.md (casesi): Likewise.
18274
18275         * config/ia64/ia64.c (gen_thread_pointer): Don't set RTX_UNCHANGING_P.
18276         * config/iq2000/iq2000.c (save_restore_insns): Likewise.
18277         * config/mips/mips.c (mips_restore_gp): Likewise.
18278         (mips_save_restore_reg, mips16_gp_pseudo_reg): Likewise.
18279         * config/sh/sh.c (sh_reorg): Likewise.
18280
18281 2004-08-18  Richard Henderson  <rth@redhat.com>
18282
18283         * tree.h (struct tree_decl): Add gimple_formal_temp.
18284         (DECL_GIMPLE_FORMAL_TEMP_P): New.
18285         * gimplify.c (pop_gimplify_context): Clear it.
18286         (lookup_tmp_var): Set it, if is_formal.
18287         (gimplify_init_constructor): Use rhs_predicate_for for COMPLEX.
18288         Use is_gimple_val for VECTOR.  Simplify return value.
18289         (gimplify_save_expr): Use and set DECL_GIMPLE_FORMAL_TEMP_P.
18290         (gimplify_expr): Likewise.
18291         * tree-gimple.c (is_gimple_formal_tmp_rhs): Rename from
18292         is_gimple_tmp_rhs for clarity.  Update all callers.
18293         (is_gimple_reg_rhs): Simplify logic.
18294         (is_gimple_formal_tmp_var): Rename from is_gimple_tmp_var for
18295         clarity; use DECL_GIMPLE_FORMAL_TEMP_P.
18296         (is_gimple_formal_tmp_reg): Similarly.
18297         * tree-gimple.h: Update decls.
18298         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Use
18299         DECL_IGNORED_P, not DECL_ARTIFICIAL.  Tidy formatting.
18300         * tree-ssa-live.c (var_union, type_var_init): Likewise.
18301
18302 2004-08-18  Paolo Bonzini  <bonzini@gnu.org>
18303
18304         * c4x.c (legitimize_operands): Remove calls to
18305         preserve_subexpressions_p.
18306
18307 2004-08-18  David Edelsohn  <edelsohn@gnu.org>
18308
18309         * varasm.c (MAX_OFILE_ALIGNMENT): Move ...
18310         * defaults.h (MAX_OFILE_ALIGNMENT): ... here.
18311
18312 2004-08-18  Ziemowit Laski  <zlaski@apple.com>
18313
18314         * gcc.c (default_compilers): Add info about ".mm", ".M" and ".mii"
18315         Objective-C++ extensions.
18316         * gengtype.c (get_file_basename): Match entire subdirectory name
18317         ('cp', 'objc', 'objcp') rather than just its suffix.
18318         (get_base_file_bitmap): Allow for files to belong to more than one
18319         language.
18320         (get_output_file_with_visibility): Treat objc/objc-act.h as a header
18321         used by more than one front-end.
18322
18323 2004-08-18  Richard Earnshaw  <rearnsha@arm.com>
18324
18325         * arm.md (addsi3, subsi3, andsi3, iorsi3, movsi, movhi): Rework to
18326         avoid use of preserve_subexpressions_p.
18327
18328 2004-08-17  Richard Henderson  <rth@redhat.com>
18329
18330         PR 17051
18331         * tree-sra.c (scalarize_use): Mark all v_defs for !is_output too.
18332
18333 2004-08-17  DJ Delorie  <dj@redhat.com>
18334
18335         * doc/extend.texi: Document new xstormy16 attribute.
18336
18337         * config/stormy16/stormy16.c (xstormy16_splittable_below100_operand): New.
18338         (xstormy16_splittable_below100_or_register): New.
18339         (combine_bnp): New.
18340         (xstormy16_reorg): New.
18341         (TARGET_MACHINE_DEPENDENT_REORG): Define.
18342
18343         * config/stormy16/stormy16.md (movqi_internal): Make name public.
18344         (movhi_internal): Likewise.
18345         (cbhranchhi): Likewise.
18346         (cbhranchhi_neg): Likewise.
18347         (andhi3): Only allow splittable below100 operands.
18348         (iorhi3): Likewise.
18349         (peephole2): New and/zero_extend->and peephole.
18350         (peephole2): New load/ior/save->set1 peephole.
18351         (peephole2): New load/and/save->clr1 peephole.
18352         (bclrx, bclrx2, bclr7, bclr15): New.
18353         (bsetx, bsetx2, bset7, bset15): New.
18354
18355         * config/stormy16/stormy16.c (xstormy16_print_operand): Be more
18356         liberal about acceptable 'B' masks.
18357
18358         * config/stormy16/stormy16-protos.h
18359         (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol,
18360         xstormy16_below100_operand, xstormy16_below100_or_register,
18361         xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New.
18362         (PREDICATE_CODES): Add new predicates.
18363
18364         * config/stormy16/stormy16.c
18365         (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol,
18366         xstormy16_below100_operand, xstormy16_below100_or_register,
18367         xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New.
18368         (xstormy16_expand_iorqi3, xstormy16_expand_andqi3): New.
18369         (xstormy16_legitimate_address_p): Allow below100 symbols.
18370         (xstormy16_extra_constraint_p): Add 'W' for below100 operands.
18371         (xstormy16_expand_move): Leave below100 operands as-is.
18372         (xstormy16_encode_section_info): Encode below100 symbols.
18373         (xstormy16_strip_name_encoding): New.
18374         (xstormy16_print_operand): Print 'b' as shift mask.
18375         (xstormy16_attribute_table): Add below100 attributes.
18376         (xstormy16_handle_below100_attribute): New.
18377
18378         * config/stormy16/stormy16.h (EXTRA_SECTIONS): add in_bss100.
18379         (XSTORMY16_SECTION_FUNCTION): New.
18380         (EXTRA_SECTION_FUNCTIONS): Define using the above.
18381         (ASM_OUTPUT_ALIGNED_DECL_COMMON, ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
18382         (ASM_OUTPUT_SYMBOL_REF): Handle encoded symbols.
18383         (ASM_OUTPUT_LABELREF): Define.
18384
18385         * config/stormy16/stormy16.md (movqi_internal): Add below100 support.
18386         (movhi_internal): Add below100 support.
18387         (andhi3): Add below100 support.
18388         (iorhi3): Add below100 support.
18389         (iorqi3, iorqi3_internal, andqi3, andqi3_internal): New.
18390
18391 2004-08-17  James E Wilson  <wilson@specifixinc.com>
18392
18393         * config/mips/mips.c (gen_conditional_move): Use GET_MODE (op0) instead
18394         of VOIDmode for comparison code mode.
18395         * config/mips/mips.md: For conditional move patterns, use mode of
18396         first compare operand for comparison mode, instead of VOIDmode.
18397
18398         * config/mips/mips.md: Add canonical nmadd and nmsub patterns for both
18399         normal and -ffast-math code.
18400
18401 2004-08-17  Mark Mitchell  <mark@codesourcery.com>
18402
18403         PR c++/15871
18404         * doc/invoke.texi (-fkeep-inline-functions): Update documentation.
18405
18406 2004-08-17  Robert Bowdidge  <bowdidge@apple.com>
18407
18408         * config/rs6000/x-darwin: Add -mdynamic-no-pic to gcc build flags.
18409
18410 2004-08-17  Andreas Tobler  <a.tobler@schweiz.ch>
18411
18412         * config/rs6000/darwin.md (*call_nonlocal_darwin64): Add #else clause
18413         for non Darwin targets.
18414         (*call_value_nonlocal_darwin64): Likewise.
18415
18416 2004-08-17  Fariborz Jahanian <fjahanian@apple.com>
18417
18418         * config/rs6000/rs6000.c (rs6000_function_value): Check for
18419         altivec mode for altivec return register.
18420
18421 2004-08-17  David Edelsohn  <edelsohn@gnu.org>
18422
18423         Revert 2004-08-16  Stan Shebs  <shebs@apple.com>
18424         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
18425         * config/rs6000/rs6000.md: Include darwin.md.
18426         (builtin_setjmp_receiver): Add DImode case.
18427         * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to
18428         Darwin bits.
18429
18430 2004-08-17  Dorit Naishlos  <dorit@il.ibm.com>
18431
18432         * tree-vectorizer.c: New File: loop vectorization on SSAed GIMPLE
18433         trees.
18434         * tree-vectorizer.h: New File: Same.
18435         * Makefile.in (tree-vectorizer.c, tree-vectorizer.h): Add new files.
18436         * common.opt (ftree-vectorize): New flag to enable vectorization.
18437         * timevar.def (TV_TREE_VECTORIZATION): New dump file for
18438         vectorization pass.
18439         * tree-data-ref.h (init_data_ref): Additional argument.
18440         (array_base_name_differ_p): Moved to tree-data-ref.c.
18441         * tree-data-ref.c (array_base_name_differ_p): Revised.
18442         (initialize_data_dependence_relation): Call array_base_name_differ_p
18443         with an extra argument.
18444         (analyze_all_data_dependences): Same.
18445         (init_data_ref): Additional argument is_read to set DR_IS_READ.
18446         * tree-ssa-phiopt.c (empty_block_p): Expose for usage out of this
18447         file.
18448         * tree-flow.h (vectorize_loops, empty_block_p): Add declaration.
18449         * tree-optimize.c (pass_vectorize): Schedule the vectorization pass.
18450         * tree-pass.h (tree_opt_pass pass_vectorize): Declare the new
18451         vectorization pass.
18452         * tree-ssa-loop.c (tree_ssa_loop_init): Call scev_initialize.
18453         (tree_ssa_loop_done): Call scev_finalize.
18454         (tree_vectorize): Define the new vectorization pass.
18455         * defaults.h (UNITS_PER_SIMD_WORD): Allow targets to specify the
18456         size of the vector they support (until support for multiple vector
18457         sizes is added to the vectorizer).
18458         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Define.
18459         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Define.
18460         * invoke.texi (fdump-tree-vect, ftree-vectorize): Add
18461         documentation.
18462
18463 2004-08-17  Nathan Sidwell  <nathan@codesourcery.com>
18464
18465         * objc/objc-act.c (build_protocol_initializer): Fix build_int_cst
18466         usage.
18467         (generate_protocol_list, handle_impent): Likewise.
18468
18469 2004-08-17  Roger Sayle  <roger@eyesopen.com>
18470
18471         * regclass.c (init_reg_sets_1): Add ENABLE_CHECKING sanity tests to
18472         ensure that call_used_regs is a superset of both fixed_regs and
18473         call_really_used_regs.
18474
18475 2004-08-17  Daniel Bornstein  <danfuzz@milk.com>
18476
18477         PR target/17019
18478         * arm.md (addsi3_cbranch_scratch): Correct case labels.
18479
18480 2004-08-17  Paolo Bonzini  <bonzini@gnu.org>
18481
18482         PR middle-end/17036
18483         * fold-const.c (fold): Check for integer operand when
18484         folding (A >> N) & 1 ? (1 << N) : 0.  Fix from Andrew
18485         Pinski  <pinskia@physics.uc.edu>.
18486
18487 2004-08-17  Paolo Bonzini  <bonzini@gnu.org>
18488
18489         * configure.ac: Trust toplevel's notion of BISON/FLEX/MAKEINFO.
18490         No need to check if in a cross configuration.
18491         * configure: Regenerate.
18492
18493         * calls.c (precompute_register_parameters):
18494         Inline preserve_subexpressions_p ().
18495         * expmed.c (expand_mult_const, emit_store_flag): Likewise.
18496         * optabs.c (expand_binop, expand_twoval_binop, prepare_cmp_insn):
18497         Likewise.
18498         * expr.c (get_subtarget): Likewise.
18499         * rtl.h (preserve_subexpressions_p): Remove.
18500         * stmt.c (preserve_subexpressions_p): Remove.
18501
18502         * dojump.c (do_jump) <COND_EXPR, EQ_EXPR, NE_EXPR,
18503         TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, COMPOUND_EXPR>:
18504         Abort on gimplified cases.
18505
18506 2004-08-16  James E Wilson  <wilson@specifixinc.com>
18507
18508         * tree.h (VECTOR_FLOAT_TYPE_P): New.
18509         (FLOAT_TYPE_P): Use it.
18510         * c-typeck.c (build_binary_op): After convert calls, check for
18511         check for ERROR_MARK operands.
18512
18513 2004-08-16  Zack Weinberg  <zack@codesourcery.com>
18514
18515         * Makefile.in (BUILD_PREFIX, BUILD_PREFIX_1): Delete.
18516         (BUILD_RTL, BUILD_PRINT, BUILD_ERRORS, BUILD_VARRAY): Update.
18517         (genobjs): Add build-rtl.o, build-print-rtl.o, build-varray.o.
18518         (genobjs static pattern rule): Remove %.c dependency.
18519         ($(BUILD_PREFIX_1)rtl.o, print-rtl.o, $(BUILD_PREFIX_1)varray.o):
18520         Rename rules; delete commands; fix dependencies.
18521         (mostlyclean): Do not delete temporary source copies.
18522         * configure.ac: Delete all references to BUILD_PREFIX and
18523         BUILD_PREFIX_1.
18524         * configure: Regenerate.
18525
18526         * print-rtl.c: Include bconfig.h #ifdef GENERATOR_FILE.
18527         Do not include tree.h, real.h, flags.h, hard-reg-set.h, or
18528         basic-block.h #ifdef GENERATOR_FILE.  Surround some more code
18529         with #ifndef GENERATOR_FILE so that nothing from those headers
18530         is used.
18531
18532         * rtl.c, varray.c: Include bconfig.h #ifdef GENERATOR_FILE.
18533
18534 2004-08-16  Adam Nemet  <anemet@lnxw.com>
18535
18536         * Makefile.in (LIBS): Move $(LIBIBERTY) after $(BANSHEELIB).
18537
18538 2004-08-16  Andrew Pinski  <apinski@apple.com>
18539
18540         * target-def.h (TARGET_EH_RETURN_FILTER_MODE): Remove
18541         extraneous semicolon.
18542
18543 2004-08-16  Devang Patel  <dpatel@apple.com>
18544
18545         * c-common.c (handle_used_attribute): Set DECL_PRESERVE_P.
18546         * print-tree.c (print_node): Print DECL_PRESERVE_P.
18547         * target-def.h (TARGET_ASM_MARK_DECL_PRESERVED): New #define.
18548         (TARGET_ASM_OUT): New member, TARGET_ASM_MARK_DECL_PRESERVED
18549         * target.h (struct gcc_target): New member, mark_decl_preserved.
18550         * hooks.c (hook_void_charptr): Rename to ...
18551         (hook_void_constcharptr): ... new name.
18552         * hooks.h (hook_void_charptr): Rename to ..
18553         (hook_void_constcharptr): ... new name.
18554         * tree.h (DECL_PRESERVE_P): New #define.
18555         (struct tree_decl): New member, preserve_flag.
18556         * varasm.c (assemble_start_function): Mark decl preserved.
18557         (assemble_variable): Same.
18558         * darwin.c (darwin_mark_decl_preserved): New function.
18559         * darwin.h (TARGET_ASM_MARK_DECL_preserved): New #define.
18560         * darwin-protos.h (darwin_mark_decl_preserved): New decl.
18561         * doc/tm.texi (TARGET_ASM_MARK_DECL_PRESERVED): Document.
18562
18563 2004-08-16  Joseph S. Myers  <jsm@polyomino.org.uk>
18564
18565         * c-decl.c (grokdeclarator): Allow for function definition where
18566         innermost declarator has attributes.
18567
18568 2004-08-16  Fariborz Jahanian <fjahanian@apple.com>
18569
18570         * except.c (get_exception_filter, build_post_landing_pads,
18571         dw2_build_landing_pads): Use target-specific mode for 'filter'.
18572         * target-def.h (TARGET_EH_RETURN_FILTER_MODE): macro defined and used.
18573         * target.h (eh_return_filter_mode): New field added.
18574         * targhooks.c (default_eh_return_filter_mode): Defined.
18575         * targhooks.h (default_eh_return_filter_mode): Declared.
18576         * config/rs6000/rs6000.c (rs6000_eh_return_filter_mode): Defined.
18577
18578 2004-08-16  Nathanael Nerode  <neroden@gcc.gnu.org>
18579
18580         * configure.ac: Replace _GCC_TOPLEV_NONCANONICAL_TARGET with
18581         ACX_NONCANONICAL_TARGET; remove now-unneeded AC_SUBST.
18582         * configure: Regenerate.
18583
18584 2004-08-16  Stan Shebs  <shebs@apple.com>
18585
18586         Basic support for 64-bit Darwin.
18587         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
18588         (machopic_legitimize_pic_address): Similarly, plus use Pmode
18589         instead of SImode.
18590         * config/rs6000/darwin.h (PTRDIFF_TYPE): Be "long int" if 64-bit.
18591         (TARGET_OS_CPP_BUILTINS): Add 64-bit preprocessor macro.
18592         (SUBTARGET_SWITCHES): Add -m32 and -m64 flags.
18593         (SUBTARGET_OVERRIDE_OPTIONS): Require 64-bit processor if -m64.
18594         (PROCESSOR_DEFAULT64): Define.
18595         * config/rs6000/darwin.md: New file, patterns specific to 64-bit
18596         Darwin.
18597         * config/rs6000/rs6000.md: Include darwin.md.
18598         (builtin_setjmp_receiver): Add DImode case.
18599         * config/rs6000/rs6000.c (TARGET_ASM_UNALIGNED_DI_OP): Define for
18600         Darwin.
18601         (TARGET_ASM_ALIGNED_DI_OP): Ditto.
18602         (rs6000_emit_move): Add DImode case to Darwin bits.
18603         (machopic_output_stub): Use .quad if 64-bit.
18604         * invoke.texi: Document -m32 and -m64.
18605
18606 2004-08-16  Janis Johnson  <janis187@us.ibm.com>
18607
18608         * doc/extend.texi (AltiVec builtins): Document additional differences
18609         from the Motorola AltiVec PIM.
18610
18611 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
18612
18613         * c-typeck.c (build_c_cast): Only copy overflow from expr nodes.
18614         * tree.h (IS_NON_TYPE_CODE_CLASS): Simplify.
18615         (struct tree_common): Update public_flag documentation.
18616
18617 2004-08-16  Nathanael Nerode  <neroden@gcc.gnu.org>
18618
18619         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
18620         Check for artificial variables, not is_gimple_tmp_var.
18621         * tree-ssa-live.c (var_union): Likewise.
18622
18623 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
18624
18625         * calls.c (load_register_parameters): Remove spurious FIXME token.
18626
18627 2004-08-15  Ziemowit Laski  <zlaski@apple.com>
18628
18629         * Makefile.in (C_PRETTY_PRINT_H): Add c-pretty-print.h.
18630         (c-lang.o): Depend on c-objc-common.h.
18631         (c-objc-common.o): Depend on $(C_PRETTY_PRINT_H) and
18632         c-objc-common.h; remove duplicate $(C_TREE_H) dependency.
18633         * c-lang.c: Include c-objc-common.h.
18634         (LANG_HOOKS_FINISH, LANG_HOOKS_INIT_OPTIONS,
18635         LANG_HOOKS_INITIALIZE_DIAGNOSTICS, LANG_HOOKS_HANDLE_OPTION,
18636         LANG_HOOKS_MISSING_ARGUMENT, LANG_HOOKS_POST_OPTIONS,
18637         LANG_HOOKS_GET_ALIAS_SET, LANG_HOOKS_SAFE_FROM_P,
18638         LANG_HOOKS_EXPAND_EXPR, LANG_HOOKS_MARK_ADDRESSABLE,
18639         LANG_HOOKS_PARSE_FILE, LANG_HOOKS_TRUTHVALUE_CONVERSION,
18640         LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL,
18641         LANG_HOOKS_STATICP, LANG_HOOKS_SET_DECL_ASSEMBLER_NAME,
18642         LANG_HOOKS_NO_BODY_BLOCKS, LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL,
18643         LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_FUNCTION_ENTER_NESTED,
18644         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_DUP_LANG_SPECIFIC_DECL,
18645         LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
18646         LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
18647         LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN,
18648         LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS,
18649         LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
18650         LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING,
18651         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
18652         LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN,
18653         LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION, LANG_HOOKS_TYPE_FOR_MODE,
18654         LANG_HOOKS_TYPE_FOR_SIZE, LANG_HOOKS_SIGNED_TYPE,
18655         LANG_HOOKS_UNSIGNED_TYPE, LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE,
18656         LANG_HOOKS_INCOMPLETE_TYPE_ERROR, LANG_HOOKS_TYPE_PROMOTES_TO,
18657         LANG_HOOKS_REGISTER_BUILTIN_TYPE, LANG_HOOKS_WRITE_GLOBALS):
18658         Move to c-objc-common.h.
18659         * c-objc-common.c: Include c-objc-common.h.
18660         * c-objc-common.h: New file.
18661
18662 2004-08-15  Andreas Tobler  <a.tobler@schweiz.ch>
18663             Andrew Pinski  <pinskia@physics.uc.edu>
18664
18665         PR target/14931
18666         * config/rs6000/darwin-tramp.asm (L_abort$stub): Change to new stub
18667         style.
18668
18669 2004-08-15  Nathan Sidwell  <nathan@codesourcery.com>
18670
18671         * tree.h (build_int_cst): New.
18672         (build_int_2): Remove.
18673         * tree.c (build_int_2): Remove.
18674         (build_int_cst): New.
18675         (make_vector_type, build_common_tree_nodes,
18676         build_common_tree_nodes_2): Use build_int_cst.
18677         * builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
18678         expand_builtin_strpbrk, expand_builtin_fputs,
18679         build_string_literal, expand_builtin_printf,
18680         expand_builtin_sprintf, fold_builtin_lround, fold_builtin_bitop,
18681         fold_builtin_bitop, fold_builtin_isascii, fold_builtin_toascii,
18682         fold_builtin_isdigit, simplify_builtin_strstr,
18683         simplify_builtin_strpbrk, fold_builtin_fputs,
18684         simplify_builtin_sprintf): Use build_int_cst.
18685         * c-common.c (start_fname_decls, fix_string_type,
18686         c_common_nodes_and_builtins, c_init_attributes,
18687         shorten_compare): Likewise.
18688         * c-decl.c (complete_array_type,
18689         check_bitfield_type_and_width): Likewise.
18690         * c-lex.c (interpret_integer, lex_charconst): Likewise.
18691         * c-parse.in (primary): <TYPES_COMPATIBLE_P> Likewise.
18692         * c-pretty-print.c (pp_c_integer_constant): Likewise.
18693         * c-typeck.c (really_start_incremental_init, push_init_level,
18694         set_nonincremental_init_from_string): Likewise.
18695         * calls.c (load_register_parameters): Likewise.
18696         * convert.c (convert_to_pointer): Likewise.
18697         * coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
18698         build_fn_info_type, build_ctr_info_value, build_gcov_info):
18699         Likewise.
18700         * except.c (init_eh, assign_filter_values, assign_filter_values):
18701         Likewise.
18702         * expmed.c (store_fixed_bit_field, extract_bit_field,
18703         extract_fixed_bit_field, extract_split_bit_field, expand_shift,
18704         expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
18705         expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
18706         * expr.c (convert_move, emit_group_load, emit_group_store,
18707         expand_assignment, store_constructor, store_field,
18708         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
18709         * fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
18710         invert_truthvalue, optimize_bit_field_compare,
18711         decode_field_reference, all_ones_mask_p, constant_boolean_node,
18712         fold_div_compare, fold, fold_read_from_constant_string,
18713         fold_negate_const, fold_abs_const, fold_not_const): Likewise.
18714         * function.c (assign_parm_setup_block): Likewise.
18715         * stmt.c (shift_return_value, expand_end_case_type,
18716         estimate_case_costs): Likewise.
18717         * stor-layout.c (layout_type, initialize_sizetypes,
18718         set_min_and_max_values_for_integral_type): Likewise.
18719         * tree-chrec.c (chrec_fold_multiply_poly_poly,
18720         reset_evolution_in_loop): Likewise.
18721         * tree-chrec.h (build_polynomial_chrec): Likewise.
18722         * tree-complex.c (build_replicated_const): Likewise.
18723         * tree-eh.c (honor_protect_cleanup_actions,
18724         lower_try_finally_onedest, lower_try_finally_copy,
18725         lower_try_finally_switch): Likewise.
18726         * tree-mudflap.c (mf_build_string, mx_register_decls,
18727         mudflap_register_call, mudflap_enqueue_constant): Likewise.
18728         * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
18729         * tree-pretty-print.c (dump_generic_node): Likewise.
18730         * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
18731         Likewise.
18732         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
18733         * tree-ssa-loop-niter.c (number_of_iterations_cond,
18734         loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
18735         Likewise.
18736
18737         * config/alpha/alpha.c (alpha_initialize_trampoline,
18738         alpha_va_start, alpha_gimplify_va_arg_1): Use build_int_cst.
18739         * config/arm/arm.c (arm_get_cookie_size): Likewise.
18740         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
18741         * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
18742         * config/i860/i860.c (i860_va_start): Likewise.
18743         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
18744         * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
18745         mips_gimplify_va_arg_expr): Likewise.
18746         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
18747         * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
18748         add_compiler_branch_island): Likewise.
18749         * config/s390/s390.c (s390_va_start): Likewise.
18750         * config/sh/sh.c (sh_va_start): Likewise.
18751         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
18752         Likewise.
18753         * config/xtensa/xtensa.c (xtensa_va_start,
18754         xtensa_gimplify_va_arg_expr): Likewise.
18755
18756         * objc/objc-act.c (build_objc_string_object,
18757         build_objc_symtab_template, init_def_list, init_objc_symtab,
18758         init_module_descriptor, generate_static_references,
18759         build_selector_translation_table, get_proto_encoding,
18760         build_typed_selector_reference, build_selector_reference,
18761         build_next_objc_exception_stuff,
18762         build_method_prototype_list_template, generate_descriptor_table,
18763         generate_protocols, build_protocol_initializer,
18764         build_ivar_list_template, build_method_list_template,
18765         build_ivar_list_initializer, generate_ivars_list,
18766         generate_dispatch_table, generate_protocol_list,
18767         build_category_initializer, build_shared_structure_initializer,
18768         generate_shared_structures, handle_impent,
18769         generate_objc_image_info): Use build_int_cst.
18770
18771 2004-08-15  Ben Elliston  <bje@au.ibm.com>
18772
18773         * vec.h: Comment improvements.
18774
18775 2004-08-14  Roger Sayle  <roger@eyesopen.com>
18776
18777         * c-common.c (shorten_compare, pointer_int_sum,
18778         c_common_truthvalue_conversion, boolean_increment): Replace calls
18779         to build with calls to buildN.
18780         * c-decl.c (complete_array_type, grokdeclarator): Likewise.
18781         * c-gimplify.c (c_build_bind_expr, gimplify_c_loop,
18782         gimplify_switch_stmt): Likewise.
18783         * c-typeck.c (default_function_array_conversion,
18784         build_component_ref, build_array_ref, build_function_call,
18785         pointer_diff, build_unary_op, build_conditional_expr,
18786         build_compound_expr, build_modify_expr, c_finish_goto_label,
18787         c_finish_goto_ptr, c_finish_return, c_finish_loop,
18788         c_finish_bc_stmt, c_finish_stmt_expr, c_end_compound_stmt,
18789         build_binary_op): Likewise.
18790
18791 2004-08-15  Steven Bosscher  <stevenb@suse.de>
18792
18793         * rtl.c (note_insn_name): Add NOTE_DISABLE_SCHED_OF_BLOCK.
18794
18795 2004-08-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18796
18797         * fixinc/inclhack.def (stdio_va_list): Also fix com_err.h, cps.h,
18798         curses.h, krb5.h, lc_core.h, pfmt.h, wchar.h and curses_colr/curses.h.
18799         * fixinc/fixincl.x: Rebuilt.
18800
18801 2004-08-14  Richard Sandiford  <rsandifo@redhat.com>
18802
18803         * config/mips/mips-protos.h (mips_symbolic_constant_p)
18804         (mips_atomic_symbolic_constant_p, mips_stack_address_p)
18805         (mips_small_data_pattern_p): Declare.
18806         * config/mips/mips.h (CONST_GP_P): Moved from mips.c.
18807         (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete.
18808         * config/mips/mips.c (mips_symbolic_constant_p): Make global.
18809         (mips_atomic_symbolic_constant_p, mips_stack_address_p): New functions.
18810         (uns_arith_operand, const_arith_operand, arith_operand, sle_operand)
18811         (sleu_operand, small_int, reg_or_0_operand, const_float_1_operand)
18812         (reg_or_const_float_1_operand, hilo_operand, extend_operator)
18813         (macc_msac_operand, equality_op, cmp_op, trap_cmp_op)
18814         (pc_or_label_operand, call_insn_operand, move_operand)
18815         (consttable_operand, symbolic_operand, general_symbolic_operand)
18816         (global_got_operand, local_got_operand, stack_operand)
18817         (fp_register_operand, lo_operand, fcc_register_operand): Delete.
18818         (mips_small_data_pattern_1): Renamed from small_data_pattern_1.
18819         (mips_small_data_pattern_p): Replace previous small_data_pattern
18820         predicate.  Turn into a bool () (rtx) function.
18821         * config/mips/predicates.md: New file.
18822         * config/mips/mips.md: Include it.  Use the target-independent
18823         comparison_operator instead of cmp_op.  Rename trap_cmp_op to
18824         trap_comparison_operator and equality_op to equality_operator.
18825         Replace uses of small_int with the equivalent const_arith_operand.
18826         Rename reg_or_const_float_1_operand to reg_or_1_operand.  Rename
18827         const_float_1_operand to const_1_operand.  Rename fcc_register_operand
18828         to fcc_reload_operand.
18829         * config/mips/sb1.md: Rename fp_register_operand to fpr_operand.
18830
18831 2004-08-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18832
18833         PR libstdc++/17005 partial fix.
18834         * pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define _INCLUDE__STDC_A1_SOURCE
18835         except when generating ANSI/C89 code.
18836
18837 2004-08-14  Nathan Sidwell  <nathan@codesourcery.com>
18838
18839         * c-common.c (shorten_compare): Use force_fit_type directly.
18840
18841 2004-08-14  Gerald Pfeifer  <gerald@pfeifer.com>
18842             Dimitri Papadopoulos-Orfanos  <papadopo@shfj.cea.fr>
18843             Dave Korn  <dk@artimi.com>
18844
18845         * doc/install.texi (Building): Avoid duplicate reference to GNU
18846         make requirement.
18847         (*-*-solaris2*): Do not recommend GNU make any longer.  Simplify.
18848
18849 2004-08-14  Richard Henderson  <rth@redhat.com>
18850
18851         * config/alpha/alpha.h (PROMOTE_MODE): Don't promote vector types.
18852         * config/alpha/alpha.c (function_value): Use PROMOTE_MODE.
18853
18854 2004-08-13  Richard Henderson  <rth@redhat.com>
18855
18856         * config/i386/i386.md (call_1, sibcall_1, call_1_rex64): Use Pmode
18857         for constant_call_address_operand.
18858         (call_value_pop_1, call_value_1): Likewise.
18859         (sibcall_value_1, call_value_1_rex64): Likewise.
18860
18861 2004-08-13  James E Wilson  <wilson@specifixinc.com>
18862
18863         * config/mips/sb1.md (ir_sb1_divdf_2pipes, ir_sb1_divdf_1pipe):
18864         Correct mode from SFmode to DFmode.
18865
18866 2004-08-13  Ziemowit Laski  <zlaski@apple.com>
18867
18868         * config/darwin.h (EXTRA_SECTION_FUNCTIONS): Mark the __sel_fixup,
18869         __cstring_object and __image_info sections with the no_dead_strip
18870         attribute.
18871
18872 2004-08-13  Roger Sayle  <roger@eyesopen.com>
18873             David Billinghurst  <David.Billinghurst@riotinto.com>
18874
18875         PR libgfortran/15930
18876         * fixinc/inclhack.def (irix___generic1, irix___generic2): New.
18877         * fixinc/fixincl.x: Regenerate.
18878         * fixinc/tests/base/internal/math_core.h: New file.
18879
18880 2004-08-13  Richard Henderson  <rth@redhat.com>
18881
18882         * dbxout.c (NO_DBX_FUNCTION_END): Default to zero.
18883         (dbxout_function_end): Remove ifdefs for it.
18884         (dbxout_begin_prologue): Protect N_BNSYM with it, and gdb extensions.
18885
18886 2004-08-13  Richard Henderson  <rth@redhat.com>
18887
18888         * Makefile.in (insn-preds.o): Depend on TREE_H.
18889         * genpreds.c (write_insn_preds_c): Include tree.h.
18890         * config/alpha/alpha.c (reg_or_0_operand, reg_or_6bit_operand,
18891         reg_or_8bit_operand, cint8_operand, add_operand, sext_add_operand,
18892         const48_operand, and_operand, or_operand, mode_width_operand,
18893         mode_mask_operand, mul8_operand, const0_operand,
18894         hard_fp_register_operand, hard_int_register_operand,
18895         reg_or_cint_operand, some_operand, some_ni_operand, input_operand,
18896         samegp_function_operand, direct_call_operand, small_symbolic_operand,
18897         global_symbolic_operand, call_operand, symbolic_operand,
18898         dtp16_symbolic_operand, dtp32_symbolic_operand,
18899         gotdtp_symbolic_operand, tp16_symbolic_operand, tp32_symbolic_operand,
18900         gottp_symbolic_operand, alpha_comparison_operator,
18901         alpha_zero_comparison_operator, alpha_swapped_comparison_operator,
18902         signed_comparison_operator, alpha_fp_comparison_operator,
18903         divmod_operator, fix_operator, aligned_memory_operand,
18904         unaligned_memory_operand, reg_or_unaligned_mem_operand,
18905         any_memory_operand, reg_not_elim_operand, normal_memory_operand,
18906         reg_no_subreg_operand, addition_operation): Move to predicates.md.
18907         (reg_or_const_int_operand): Remove.  Replace all users with
18908         reg_or_cint_operand.
18909         (tls_symbolic_operand_1): Export.  Don't check mode or for CONST.
18910         (resolve_reload_operand): Split out of aligned_memory_operand.
18911         * config/alpha/alpha-protos.h: Update for exports.
18912         * config/alpha/alpha.h (PREDICATE_CODES): Remove.
18913         * config/alpha/alpha.md: Include predicates.md.
18914         * config/alpha/predicates.md: New file.
18915
18916 2004-08-13  Richard Sandiford  <rsandifo@redhat.com>
18917
18918         * genattrtab.c (insn_ent): Replace insn_code, insn_index and lineno
18919         fields with a pointer to the instruction definition.
18920         (get_attr_value, fill_attr, make_length_attrs, remove_insn_ent)
18921         (insert_insn_ent, simplify_test_exp, optimize_attrs, write_attr_get)
18922         (write_attr_case, write_const_num_delay_slots): Update accordingly.
18923         (write_attr_case, write_const_num_delay_slots): Write the name of
18924         an insn next to its case statement.
18925         * genoutput.c (data): Add a filename field.
18926         (gen_insn, gen_peephole, gen_expand, gen_split): Set it.
18927         (output_insn_data): Print the location of each insn definition.
18928         * genrecog.c (write_action): Print the name of an insn above
18929         the statement that returns its code.
18930
18931 2004-08-12  Andrew Pinski  <pinskia@physics.uc.edu>
18932
18933         * config/darwin-c.c (find_subframework_file): Fix spelling of cannot.
18934         * config/libgloss.h: Likewise.
18935         * config/arm/arm.c (arm_gen_load_multiple): Likewise.
18936         * c4x/c4x-modes.def: Likewise.
18937         * config/c4x/c4x.c (c4x_hard_regno_rename_ok): Likewise.
18938         (c4x_rptb_nop_p): Likewise.
18939         (c4x_rptb_valid_p): Likewise.
18940         (c4x_rptb_insert): Likewise.
18941         (c4x_address_conflict): Likewise.
18942         * config/c4x/c4x.md: Likewise.
18943         * config/frv/frv.md: Likewise.
18944         * config/i386/athlon.md: Likewise.
18945         * config/i386/i386.md: Likewise.
18946         * config/i386/predicates.md: Likewise.
18947         * config/ia64/ia64.c: Likewise.
18948         * config/ia64/itanium1.md: Likewise.
18949         * config/ia64/itanium2.md: Likewise.
18950         * config/iq2000/iq2000.md: Likewise.
18951         * config/mcore/mcore.c: Likewise.
18952         * config/mips/mips.c: Likewise.
18953         * config/mips/r3900.h: Likewise.
18954         * config/mips/sb1.md: Likewise.
18955         * config/pa/milli64.S: Likewise.
18956         * config/pa/pa.c: Likewise.
18957         * config/pa/pa.h: Likewise.
18958         * config/rs6000/8540.md: Likewise.
18959
18960 2004-08-13  Daniel Berlin  <dberlin@dberlin.org>
18961
18962         * Makefile.in (BOOT_CFLAGS): Remove accidental addition of -dU.
18963
18964 2004-08-13  J"orn Rennecke <joern.rennecke@superh.com>
18965
18966         * sh.md (cbranch define_delay) Use cond_delay_slot for
18967         non-anulled condition too.
18968
18969 2004-08-12  David Edelsohn  <edelsohn@gnu.org>
18970
18971         * config/rs6000/rs6000.c (any_parallel_operand): New predicate.
18972         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
18973         any_parallel_operand, lmw_operation, stmw_operation,
18974         mfcr_operation, mtcrf_operation.  Remove PARALLEL from any_operand.
18975         * config/rs6000/rs6000.md (save_fpregs_{si,di}): Use
18976         any_parallel_operand.
18977         (return_and_restore_fpregs_{si,di}): Same.
18978
18979 2004-08-12  Zack Weinberg  <zack@codesourcery.com>
18980
18981         * genrecog.c (add_to_sequence): When processing a MATCH_PARALLEL,
18982         if pred->singleton != PARALLEL, issue a warning and pretend it was.
18983         Also issue a warning for any predicate we don't know about.
18984
18985 2004-08-12  Richard Henderson  <rth@redhat.com>
18986
18987         * config/i386/i386.c (internal_label_prefix): Export.
18988         (internal_label_prefix_len, struct ix86_address,
18989         ix86_decompose_address, maybe_get_pool_constant,
18990         ix86_fp_compare_code_to_integer, ix86_fp_comparison_codes,
18991         memory_address_length): Export.
18992         (any_fp_register_operand, fp_register_operand,
18993         register_and_not_any_fp_reg_operand, register_and_not_fp_reg_operand,
18994         x86_64_general_operand, x86_64_szext_general_operand,
18995         x86_64_nonmemory_operand, x86_64_movabs_operand,
18996         x86_64_szext_nonmemory_operand, x86_64_immediate_operand,
18997         x86_64_zext_immediate_operand, const_int_1_31_operand,
18998         symbolic_operand, pic_symbolic_operand, local_symbolic_operand,
18999         tls_symbolic_operand, global_dynamic_symbolic_operand,
19000         local_dynamic_symbolic_operand, initial_exec_symbolic_operand,
19001         local_exec_symbolic_operand, call_insn_operand, sibcall_insn_operand,
19002         constant_call_address_operand, const0_operand, const1_operand,
19003         const248_operand, const_0_to_3_operand, const_0_to_7_operand,
19004         const_0_to_15_operand, const_0_to_255_operand, incdec_operand,
19005         shiftdi_operand, reg_no_sp_operand, mmx_reg_operand,
19006         general_no_elim_operand, nonmemory_no_elim_operand,
19007         index_register_operand, q_regs_operand, flags_reg_operand,
19008         non_q_regs_operand, zero_extended_scalar_load_operand,
19009         vector_move_operand, no_seg_address_operand, sse_comparison_operator,
19010         ix86_comparison_operator, ix86_carry_flag_operator,
19011         fcmov_comparison_operator, promotable_binary_operator,
19012         cmp_fp_expander_operand, ext_register_operand, binary_fp_operator,
19013         mult_operator, div_operator, arith_or_logical_operator,
19014         memory_displacement_operand, cmpsi_operand, long_memory_operand,
19015         aligned_operand): Move to predicates.md as define_predicates.
19016         (tls_symbolic_operand_1): Remove.
19017         (x86_64_sign_extended_value): Merge into x86_64_immediate_operand.
19018         (x86_64_zero_extended_value): Merge into x86_64_zext_immediate_operand.
19019         (legitimize_address): Merge tls_symbolic_operand contents.
19020         (ix86_expand_move): Likewise.
19021         * config/i386/i386-protos.h: Update for exports.
19022         * config/i386/i386.h (EXTRA_CONSTRAINT): Update for renames.
19023         (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Remove.
19024         * config/i386/i386.md: Include predicates.md.
19025         * config/i386/predicates.md: New file.
19026
19027 2004-08-13  Mark Mitchell  <mark@codesourcery.com>
19028
19029         PR c++/16924
19030         * config/i386/winnt.c (i386_pe_mark_dllexport): Set
19031         SYMBOL_REF_DECL.
19032         (i386_pe_mark_dllimport): Likewise.
19033         (i386_pe_encode_section_info): Likewise, when overriding
19034         dllimport attribute.
19035
19036 2004-08-12  Geoffrey Keating  <geoffk@apple.com>
19037
19038         * configure.ac: When testing for flex, nm, ar, and bison, check
19039         that they will actually be built.
19040         * configure: Regenerate.
19041
19042 2004-08-12  Ulrich Weigand  <uweigand@de.ibm.com>
19043
19044         * config/s390/s390.h (MAX_FIXED_MODE_SIZE): Define.
19045         (MOVE_MAX_PIECES): Define.
19046
19047 2004-08-12  Devang patel  <dpatel@apple.com>
19048
19049         * dbxout.c (dbxout_begin_prologue): New function.
19050         (dbx_debug_hooks): Use new begin prologue hook.
19051         (dbxout_function_end): Emit N_ENSYM.
19052         * stab.def (N_BNSYM, N_ENSYM): Define and document these two new stabs.
19053
19054 2004-08-12  Janis Johnson  <janis187@us.ibm.com>
19055
19056         * config/rs6000/altivec.h (vec_dst): Fix C++ functions whose first
19057         argument is float*.
19058
19059         * config/rs6000/rs6000.c (altivec_init_builtins): Fix argument type
19060         for vec_dss.
19061
19062         * doc/extend.texi (AltiVec builtins): Fix description for recent
19063         changes.  Update operation list to match current support.
19064
19065 2004-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
19066
19067         * config/s390/s390.c (struct s390_frame_layout): New struct as element
19068         of struct machine_function.
19069         (cfun->machine->frame_size): Moved into cfun->machine->frame_layout and
19070         changed all uses.
19071         (cfun->machine->save_fprs_p): Replaced by cfun_save_high_fprs and
19072         changed all uses.
19073         (cfun_frame_layout, cfun_save_high_fprs_p, cfun_gprs_save_area_size)
19074         (cfun_set_fpr_bit, cfun_fpr_bit_p): New macros.
19075         (s390_frame_area, s390_register_info): New functions.
19076         (s390_optimize_prolog): Renamed to s390_optimize_prologue.  Added check
19077         for base register.
19078         (s390_return_addr_rtx, s390_return_address_offset)
19079         (s390_va_start, s390_gimplify_va_arg)
19080         (s390_emit_prologue, s390_emit_epilogue): Adjusted for new stack
19081         layouts.
19082         (s390_frame_info): Functionality partly moved to s390_register_info.
19083         Made adaptions for new stack layout.
19084         (save_gprs, restore_gprs): Changed meaning of second parameter and
19085         adapted all callers.
19086
19087         * config/s390/s390.h (s390_backchain_string): New global variable.
19088         (MASK_BACKCHAIN): Removed definition.
19089         (TARGET_BACKCHAIN): Changed check.
19090         (TARGET_KERNEL_BACKCHAIN): New macro.
19091         (TARGET_SWITCHES): Removed entries of "backchain" and "no-backchain".
19092         (TARGET_OPTIONS): Added "backchain", "no-backchain" and
19093         "kernel-backchain".
19094         (DYNAMIC_CHAIN_ADDRESS): Adjusted for new stack layouts.
19095
19096         * config/s390/s390.md ("allocate_stack"): Added TARGET_KERNEL_BACKCHAIN
19097         as condition.  Adjusted for new stack layout.
19098
19099         * doc/invoke.texi: Added documentation for new option
19100         "-mkernel-backchain" and adjusted documentation of "-mbackchain" and
19101         "-mno-backchain".
19102
19103 2004-08-12  Paul Brook  <paul@codesourcery.com>
19104
19105         * config/arm/lib1funcs.asm (ARM_FUNC_ALIAS): Also alias _L__name.
19106         (aeabi_uidivmod, aeabi_idivmod): Provide thumb implementation.
19107
19108 2004-08-12  David Daney  <ddaney@avtrex.com>
19109
19110         * java/gcj.texi:  Add subsection on signal usage.
19111
19112 2004-08-12  David Edelsohn  <edelsohn@gnu.org>
19113
19114         * expr.c (move_by_pieces): Set alignment for move to minimum of
19115         MOVE_MAX_PIECES mode alignment and the largest non-slow mode
19116         alignment, but not less than the original alignment.
19117         (move_by_pieces_ninsns): Same.
19118         (can_store_by_pieces): Similar for store with STORE_MAX_PIECES.
19119         (store_by_pieces_1): Same.
19120
19121 2004-08-12  Diego Novillo  <dnovillo@redhat.com>
19122
19123         PR tree-optimization/16867
19124         * tree.c (is_global_var): New function.
19125         (needs_to_live_in_memory): Check for TREE_ADDRESSABLE.
19126         Call is_global_var.
19127         * tree.h (DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL): Remove.
19128         Update all users.
19129         (is_global_var): Declare.
19130         * tree-dfa.c (dump_variable): Display global and addressable
19131         attributes.
19132         (add_referenced_var): Clarify documentation when marking
19133         variables call-clobbered.
19134         * tree-flow-inline.h (is_call_clobbered): Call is_global_var
19135         instead of needs_to_live_in_memory.
19136         (mark_call_clobbered): If the variable is a tag, mark it
19137         DECL_EXTERNAL.
19138         * tree-gimple.c (is_gimple_reg): Don't check for
19139         TREE_ADDRESSABLE.
19140         (is_gimple_non_addressable): Likewise.
19141         * tree-ssa-alias.c (get_nmt_for): Always check whether the tag
19142         needs to be marked call-clobbered.
19143         (setup_pointers_and_addressables): Call is_global_var instead
19144         of needs_to_live_in_memory.
19145         * tree-ssa-dce.c (need_to_preserve_store): Remove.
19146         Update all users with is_global_var.
19147         (mark_stmt_if_obviously_necessary): Fix processing of aliased
19148         stores.  Don't check the virtual definitions.  Rather, check
19149         whether the store is going into global memory.
19150         (find_obviously_necessary_stmts): Get the symbol from the PHI
19151         result.
19152         * tree-ssa-operands.c (get_call_expr_operands): Do not add
19153         clobbering may-defs if the call does not have side effects.
19154
19155 2004-08-12  Jakub Jelinek  <jakub@redhat.com>
19156
19157         PR c++/16276
19158         * output.h (default_function_rodata_section,
19159         default_no_function_rodata_section): New prototypes.
19160         * target.h (struct gcc_target): Add asm_out.function_rodata_section.
19161         * target-def.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define.
19162         (TARGET_ASM_OUT): Add it.
19163         * varasm.c (default_function_rodata_section,
19164         default_no_function_rodata_section): New functions.
19165         * final.c (final_scan_insn): Call
19166         targetm.asm_out.function_rodata_section instead of
19167         readonly_data_section.
19168         * config/darwin.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define.
19169         * config/mcore/mcore.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
19170         * config/ip2k/ip2k.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
19171         * config/rs6000/xcoff.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
19172         Likewise.
19173         * config/alpha/alpha.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
19174         * config/i386/cygming.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
19175         Likewise.
19176         * config/i386/i386-interix.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
19177         Likewise.
19178         * config/arm/pe.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
19179         * config/avr/avr.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
19180         * doc/tm.texi (TARGET_ASM_FUNCTION_RODATA_SECTION): Document.
19181
19182 2004-08-12  Paul Brook  <paul@codesourcery.com>
19183
19184         * dwarf2out.h (dwarf2out_frame_finish): Conditionalize outputting eh
19185         frame info.
19186         * doc/tm.texi: Document interaction between TARGET_UNWIND_INFO and
19187         DWARF2_UNWIND_INFO.
19188
19189 2004-08-12  Ben Elliston  <bje@au.ibm.com>
19190
19191         PR target/16286
19192         * config/rs6000/altivec.h: Change vector to __vector throughout.
19193         (Except for the `vector' macro itself).
19194
19195 2004-08-12  Zack Weinberg  <zack@codesourcery.com>
19196
19197         * genpreds.c: Add capability to generate predicate bodies as
19198         well as function prototypes.  Write function prototypes for
19199         the generic predicates too.
19200         (process_define_predicate, write_tm_preds_h, write_insn_preds_c)
19201         (write_predicate_subfunction, mark_mode_tests, add_mode_tests)
19202         (write_match_code, write_predicate_expr, write_one_predicate_function)
19203         (parse_option): New functions.
19204         (output_predicate_decls): Delete.
19205         (main): Read the machine description, process DEFINE_PREDICATE or
19206         DEFINE_SPECIAL_PREDICATE patterns, write tm-preds.h or insn-preds.c
19207         as appropriate.
19208
19209         * genrecog.c (struct decision_test): Replace index with
19210         struct pred_data pointer.
19211         (next_index): Remove, unused.
19212         (pred_table, preds, special_mode_pred_table): Delete.
19213         (compute_predicate_codes, process_define_predicate): New functions.
19214         (validate_pattern, add_to_sequence, write_switch): Update for
19215         new data structures.
19216         (main): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
19217         Check both error_count and have_error.
19218
19219         * gensupport.c (in_fname, first_predicate): New globals.
19220         (define_pred_queue, define_pred_tail): New RTL-pattern queue.
19221         (predicate_table, last_predicate, old_pred_table)
19222         (old_special_pred_table): New statics.
19223         (hash_struct_pred_data, eq_struct_pred_data, lookup_predicate)
19224         (add_predicate, init_predicate_table): New functions.
19225         (process_rtx): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
19226         (init_md_reader_args_cb): Use the global in_fname.  No need to zero
19227         it or max_include_len.  Call init_predicate_table.
19228         (read_rtx): Run the predicate queue after the attribute queue
19229         but before all the others.
19230         * gensupport.h (in_fname, struct pred_data, first_predicate)
19231         (lookup_predicate, add_predicate, FOR_ALL_PREDICATES): Declare.
19232         * rtl.def (MATCH_CODE, MATCH_TEST, DEFINE_PREDICATE)
19233         (DEFINE_SPECIAL_PREDICATE): New RTL codes.
19234         * dummy-conditions.c: Don't include bconfig.h, system.h,
19235         coretypes.h, tm.h, or system.h.  Do include stddef.h.
19236         Duplicate declaration of struct c_test from gensupport.h.
19237
19238         * Makefile.in (OBJS-common): Add insn-preds.o.
19239         (STAGESTUFF, .PRECIOUS): Add insn-preds.c.
19240         (insn-preds.c, insn-preds.o): New rules.
19241         (s-preds): Also generate insn-preds.c.
19242         (dummy-conditions.o, genpreds$(build_exeext), genpreds.o):
19243         Update dependencies.
19244         (print-rtl.o, print-rtl1.o): Correct dependencies.
19245
19246         * recog.h: Delete prototypes of predicate functions.
19247
19248         * doc/md.texi (Predicates): New section with complete
19249         documentation of operand/operator predicates.  Remove some
19250         incomplete documentation of predicates from other places.
19251         * doc/tm.texi (Misc): Move SPECIAL_MODE_PREDICATES next to
19252         PREDICATE_CODES; indicate that both are deprecated in favor
19253         of define_predicate/define_special_predicate.
19254
19255         * config/ia64/ia64.c: All predicate function definitions moved
19256         to ia64.md, except
19257         (small_addr_symbolic_operand, tls_symbolic_operand): Delete.
19258         (ia64_expand_load_address, ia64_expand_move):
19259         Check SYMBOL_REF_TLS_MODEL directly, don't use tls_symbolic_operand.
19260
19261         * config/ia64/ia64.md: All predicates now defined here.
19262         (symbolic_operand): Is now a special predicate.
19263
19264         * config/ia64/ia64.h: Declare ia64_section_threshold.
19265         (PREDICATE_CODES): Delete.
19266
19267 2004-08-12  Richard Henderson  <rth@redhat.com>
19268
19269         * c-common.h (STATEMENT_LIST_HAS_LABEL): New.
19270         * c-semantics.c (add_stmt): Set it.
19271         * c-decl.c (finish_decl): Use it to create a new BIND_EXPR
19272         before instantiating a variable sized type.
19273
19274 2004-08-12  Richard Henderson  <rth@redhat.com>
19275
19276         * stor-layout.c (round_up, round_down): Move ...
19277         * fold-const.c (round_up, round_down): ... here.  Use
19278         multiple_of_p to avoid any arithmetic at all.
19279
19280 2004-08-12  Richard Henderson  <rth@redhat.com>
19281
19282         * gimplify.c (struct gimplify_init_ctor_preeval_data): New.
19283         (gimplify_init_ctor_preeval_1): New.
19284         (gimplify_init_ctor_preeval): New.
19285         (gimplify_init_ctor_eval): New.
19286         (gimplify_init_constructor): Use them.  Always gimplify the LHS
19287         object first.
19288
19289 2004-08-12  Ziemowit Laski  <zlaski@apple.com>
19290
19291         (This patch is part of merge of objc-improvements-branch
19292         into mainline.)
19293
19294         * doc/frontends.texi: Mention Objective-C++ in addition to
19295         Objective-C.
19296         * doc/install.texi: Add 'obj-c++' to list of configurable
19297         languages.
19298         * doc/invoke.texi: Rename Objective-C option headings to
19299         indicate they also apply to Objective-C++.  List file
19300         extensions for Objective-C++ sources.  Mention that
19301         ObjC and ObjC++ compilations may also use C and C++ options,
19302         respectively.  Point users to doc/standards.texi for
19303         further info on ObjC and ObjC++.
19304         * doc/sourcebuild.texi: Mention the objcp/ directory and
19305         the Objective-C++ sources it contains.
19306         * doc/standards.texi: Update link to Apple ObjC site;
19307         add link to gcc readings.html WWW doc.
19308
19309 2004-08-12  Alan Modra  <amodra@bigpond.net.au>
19310
19311         * config/rs6000/rs6000.c (function_arg_padding): Revert 2004-07-28
19312         and 2004-07-14 changes.
19313
19314 2004-08-12  Paul Brook  <paul@codesourcery.com>
19315
19316         * doc/invoke.texi: Fix typo.
19317
19318 2004-08-11 Devang Patel  <dpatel@apple.com>
19319
19320         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add -dead_strip
19321         and -no_dead_strip_inits_and_terms.
19322         (LINK_SPEC): Same.
19323         * doc/invoke.texi (Darwin Options): Document -dead_strip and
19324         -no_dead_strip_inits_and_terms.
19325
19326 2004-08-11  Paul Brook  <paul@codesourcery.com>
19327
19328         * config/arm/arm-protos.h (arm_finalize_pic) Rename ...
19329         (arm_load_pic_register): ... to this.
19330         * config/arm/arm.c (arm_finalize_pic): Rename ...
19331         (arm_load_pic_register): ... to this.  Always output insns at the
19332         current location.  Load via low reg in thumb mode.
19333         (arm_expand_prologue): Call arm_load_pic_register.
19334         (thumb_expand_prologue): Ditto.
19335         * config/arm/arm.h (FINALIZE_PIC): Remove.
19336         * config/arm/arm.md (builtin_setjmp_receiver): Call
19337         arm_load_pic_register.
19338
19339 2004-08-11  Paul Brook  <paul@codesourcery.com>
19340
19341         * arm.c (thumb_force_lr_save): Add prototype.
19342         (thumb_compute_save_reg_mask): New function.
19343         (thumb_find_work_register): New function.
19344         (arm_get_frame_offsets): Use thumb_compute_save_reg_mask.
19345         (thumb_unexpanded_epilogue): Ditto.  Remove redundant code.
19346         Don't clobber r3 when removing pretend args.
19347         (thumb_expand_prologue): Use thumb_compute_save_reg_mask.
19348         (thumb_output_function_prologue): Use new functions.
19349         (thumb_set_return_address): Use thumb_compute_save_reg_mask.
19350         * arm.h (THUMB_REG_PUSHED_P): Remove.
19351
19352 2004-08-11  James E Wilson  <wilson@specifixinc.com>
19353
19354         PR rtl-optimization/16490
19355         * cfgrtl.c (cfg_layout_split_edge): Set global_live_at_start and
19356         global_live_at_end for new basic block if already set for other blocks.
19357
19358 2004-08-11 David Edelsohn  <edelsohn@gnu.org>
19359
19360         * config/rs6000/rs6000.h (MAX_FIXED_MODE_SIZE): Define.
19361
19362         * config/rs6000/rs6000.md (mfcr rlwinm patterns): Set length to 8.
19363         (mfcr rlwinm rlwinm patterns): Set length to 12.
19364
19365 2004-08-11  Andrew MacLeod  <amacleod@redhat.com>
19366
19367         * tree-flow-inline.h (get_def_ops, get_use_ops, get_v_may_def_ops,
19368         get_vuse_ops,get_v_must_def_ops): Add operand structure reference.
19369         (get_v_may_def_result_ptr, get_v_may_def_op_ptr): New access struct.
19370         (start_ssa_stmt_operands): Delete.
19371         * tree-flow.h (struct stmt_ann_d): Replace operand vectors with new
19372         struct stmt_operands_d.
19373         (build_ssa_operands): New extern entry point.
19374         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove operand
19375         building code, replace with create_ssa_artficial_load_stmt().
19376         * tree-ssa-operands.c (struct voperands_d): Delete.
19377         (allocate_v_may_def_optype): Allocate v_may_def_operand_type_t vector.
19378         (allocate_v_must_def_optype): Use sizeof (tree), not sizeof (tree *).
19379         (free_uses, free_defs, free_vuses, free_v_may_defs,
19380         free_v_must_defs): Remove dealloc parameter.
19381         (remove_vuses, remove_v_may_def, remove_v_must_defs): Delete.
19382         (finalize_ssa_defs, finalize_ssa_uses, finalize_ssa_v_may_defs,
19383         finalize_ssa_vuses, finalize_ssa_v_must_defs): Perform all operand
19384         vector comparisons, ssa_name reuse, and allocations here.
19385         (verify_start_operands): Delete.
19386         (finalize_ssa_stmt_operands): Set new operands by calling finalize
19387         routines.
19388         (start_ssa_stmt_operands): Move from tree-flow-inline.h.
19389         (append_def, append_usei): Simplify to simple accumulation.
19390         (append_v_may_def, append_vuse, append_v_must_def): Simplify to avoiding
19391         duplicates and simple accumulation.
19392         (free_ssa_operands): Free vectors in a stmt_operand structure.
19393         (build_ssa_operands): New. Create a new stmt_operand structure from
19394         a stmt and an old set of stmt_operands.
19395         (get_stmt_operands): Simplify and call build_ssa_operands.
19396         (get_expr_operands, get_asm_expr_operands, get_indirect_ref_operands,
19397         get_call_expr_operands, add_stmt_operand, add_call_clobber_ops,
19398         add_call_read_ops): Don't pass prev_vops around anymore.
19399         (note_addressable): Return if no stmt annotation.
19400         (copy_virtual_operands): Access v_may_def operands through a struct.
19401         (create_ssa_artficial_load_stmt): New.  Create a load stmt for DOM's
19402         hash tables without treating the stmt as a real stmt.
19403         * tree-ssa-operands.h (struct v_may_def_operand_type): New.  Access
19404         v_may_def def and use through a struct instead of 2 array elements.
19405         (struct v_may_def_optype_d): Use v_may_def_operand_type.
19406         (struct stmt_operands_d): New.  Struct for storing all operand vectors.
19407
19408 2004-08-11  Nick Clifton  <nickc@redhat.com>
19409
19410         * config/arm/arm.c (arm_is_longcall_p): Update comment describing
19411         this funciton's behaviour.  Return true when the current function
19412         has a section attribute and -mlong-calls is in effect.
19413         * config/arm/arm.h (ARM_DECLARE_FUNCTION_SIZE): Do not set the
19414         short-call marker when -mlong-calls is in effect and the function
19415         has a section attribute.
19416
19417 2004-08-10  Zack Weinberg  <zack@codesourcery.com>
19418
19419         * stmt.c (expand_return): If asked to return the RESULT_DECL,
19420         just call expand_value_return on result_rtl.
19421
19422 2004-08-10  Richard Henderson  <rth@redhat.com>
19423
19424         * builtins.def (BUILT_IN_STACK_ALLOC): Remove.
19425         * builtins.c (expand_builtin) <BUILT_IN_STACK_ALLOC>: Remove.
19426         * dwarf2out.c (loc_descriptor): Handle PARALLEL here ...
19427         (add_location_or_const_value_attribute): ... not here.  Use
19428         loc_descriptor_from_tree if possible.
19429         (loc_descriptor_from_tree_1): Rename from loc_descriptor_from_tree.
19430         Simplify address handling.  Handle DECL_VALUE_EXPR.  Handle register
19431         values specially.
19432         (loc_descriptor_from_tree): New.  Update callers.
19433         * expr.c (expand_var): Ignore DECL_VALUE_EXPR variables.
19434         * gimplify.c (gimplify_decl_expr): Lower variable sized types to
19435         pointer plus dereference.  Set DECL_VALUE_EXPR.  Set save_stack.
19436         (gimplify_call_expr): Do not recognize BUILT_IN_STACK_ALLOC
19437         and BUILT_IN_STACK_RESTORE.
19438         (gimplify_expr): Lower DECL_VALUE_EXPR decls.
19439         * stmt.c (expand_stack_alloc): Remove.
19440         * tree-mudflap.c (mx_register_decls): Don't look for
19441         BUILT_IN_STACK_ALLOC.
19442         * tree-nested.c (convert_local_reference): Likewise.
19443         * tree.h (DECL_VALUE_EXPR): New.
19444
19445 2004-08-10  Richard Henderson  <rth@redhat.com>
19446
19447         * stor-layout.c (round_up): Check for 0/1 before dividing.
19448         (round_down): Likewise.
19449
19450         * tree-tailcall.c (suitable_for_tail_opt_p): Also check DECL_EXTERNAL.
19451
19452 2004-08-09  Mark Mitchell  <mark@codesourcery.com>
19453
19454         * config.gcc (arm*-*-eabi*): New target.
19455         * defaults.h (TARGET_LIBGCC_FUNCS): New macro.
19456         (TARGET_LIB_INT_CMP_BIASED): Likewise.
19457         * expmed.c (expand_divmod): Try a two-valued divmod function as a
19458         last resort.
19459         * gthr.h: Remove bogus tokens at end of #pragma.
19460         * optabs.c (expand_twoval_binop_libfunc): New function.
19461         (prepare_cmp_insn): Handle the !TARGET_LIB_INT_CMP_BIASED case.
19462         (prepare_float_lib_cmp): Try reversing the condition.
19463         (debug_optab_libfuncs): New function.
19464         * optabs.h (expand_twoval_binop_libfunc): Declare.
19465         * config/arm/arm.c (arm_init_libfuncs): New function.
19466         (arm_compute_initial_eliminatino_offset): Return HOST_WIDE_INT.
19467         (TARGET_INIT_LIBFUNCS): Define it.
19468         * config/arm/arm.h (TARGET_BPABI): New macro.
19469         * config/arm/arm-protos.h
19470         (arm_compute_initial_elimination_offset): Return HOST_WIDE_INT.
19471         * config/arm/bpabi.S: New file.
19472         * config/arm/bpabi.c: Likewise.
19473         * config/arm/bpabi.h: Likewise.
19474         * config/arm/ieee754-df.S (__aeabi_dneg): New function or alias.
19475         (__aeabi_drsub): Likewise.
19476         (__aeabi_dsub): Likewise.
19477         (__aeabi_dadd): Likewise.
19478         (__aeabi_ui2d): Likewise.
19479         (__aeabi_i2d): Likewise.
19480         (__aeabi_f2d): Likewise.
19481         (__aeabi_dmul): Likewise.
19482         (__aeabi_ddiv): Likewise.
19483         (__aeabi_cdrcmple): Likewise.
19484         (__aeabi_cdcmpeq): Likewise.
19485         (__aeabi_cdcmple): Likewise.
19486         (__aeabi_dcmpeq): Likewise.
19487         (__aeabi_dcmplt): Likewise.
19488         (__aeabi_dcmple): Likewise.
19489         (__aeabi_dcmpge): Likewise.
19490         (__aeabi_dcmpgt): Likewise.
19491         (__aeabi_dcmpun): Likewise.
19492         (__aeabi_d2iz): Likewise.
19493         (__aeabi_d2uiz): Likewise.
19494         (__aeabi_d2f): Likewise.
19495         * config/arm/ieee754-sf.S (__aeabi_fneg): New function or alias.
19496         (__aeabi_frsub): Likewise.
19497         (__aeabi_fsub): Likewise.
19498         (__aeabi_fadd): Likewise.
19499         (__aeabi_ui2f): Likewise.
19500         (__aeabi_i2f): Likewise.
19501         (__aeabi_fmul): Likewise.
19502         (__aeabi_fdiv): Likewise.
19503         (__aeabi_cfrcmple): Likewise.
19504         (__aeabi_cfcmpeq): Likewise.
19505         (__aeabi_cfcmple): Likewise.
19506         (__aeabi_fcmpeq): Likewise.
19507         (__aeabi_fcmplt): Likewise.
19508         (__aeabi_fcmple): Likewise.
19509         (__aeabi_fcmpge): Likewise.
19510         (__aeabi_fcmpgt): Likewise.
19511         (__aeabi_fcmpun): Likewise.
19512         (__aeabi_f2iz): Likewise.
19513         (__aeabi_f2uiz): Likewise.
19514         * config/arm/lib1funcs.asm (ARM_CALL): New macro.
19515         (__aeabi_uidivmod): New function or alias.
19516         (__aeabi_idivmod): Likewise.
19517         (__aeabi_idiv0): Likewise.
19518         (__aeabi_ldiv0): Likewise.
19519         (__aeabi_llsr): Likewise.
19520         (__aeabi_lasr): Likewise.
19521         (__aeabi_llsl): Likewise.
19522         (bpabi.S): Include it.
19523         * config/arm/libgcc-bpabi.ver: New file.
19524         * config/arm/symbian.h (ARM_DEFAULT_ABI): Remove.
19525         (LINK_SPEC): Remove.
19526         * config/arm/t-arm-elf (LIB1ASMFUNCS): Add __aeabi_lcmp and
19527         __aeabi_ulcmp.
19528         * config/arm/t-bpabi: New file.
19529         * doc/tm.texi (TARGET_LIBGCC_FUNCS): New entry.
19530         (TARGET_LIB_INT_CMP_BIASED): Likewise.
19531
19532 2004-08-10  David Edelsohn  <edelsohn@gnu.org>
19533
19534         * config/rs6000/rs6000-protos.h (expand_block_clear): Declare.
19535         * config/rs6000/rs6000.md (clrmemsi): New pattern.
19536         * config/rs6000/rs6000.c (expand_block_clear): New function.
19537         (expand_block_move): Convert alignment to bits.  Use SImode and
19538         HImode for unaligned addresses if not STRICT_ALIGNMENT.
19539
19540 2004-08-10  Caroline Tice  <ctice@apple.com>
19541
19542         * varasm.c (unlikely_section_label): New global variable.
19543         (unlikely_text_section_name): New global variable.
19544         (text_section):  Remove alignment statement.
19545         (unlikely_text_section): Remove alignment statement; use
19546         unlikely_section_label rather than hard-coded string.
19547         (assemble_start_function): Initialize unlikely_section_label and
19548         unlikely_text_section_name;  make sure cold section is properly
19549         aligned at start of function; output unlikely_section_label if
19550         appropriate.
19551
19552 2004-08-10  Ulrich Weigand  <uweigand@de.ibm.com>
19553
19554         * config/s390/s390-protos.h (s390_canonicalize_comparison): Declare.
19555         * config/s390/s390.c (s390_canonicalize_comparison): New function.
19556         * config/s390/s390.h (CANONICALIZE_COMPARISON): Define.
19557         * config/s390/s390.md ("*tmdi_ext", "*tmsi_ext", "*tmqisi_ext",
19558         "*tmqidi_ext", "*tmdi_mem", "*tmsi_mem", "*tmhi_mem"): Remove.
19559         ("*tmqi_mem"): Remove SUBREG from pattern.
19560         ("*anddi3_cconly"): Prevent accidentally matching TM pattern.
19561         ("*andsi3_cconly"): Likewise.
19562
19563 2004-08-10  H.J. Lu  <hongjiu.lu@intel.com>
19564
19565         PR target/16909
19566         * config/i386/i386.md (*strsetdi_rex_1): Use DI instead of SI.
19567
19568 2004-08-10  Janis Johnson  <janis187@us.ibm.com>
19569
19570         * doc/sourcebuild.texi (compat testing): Document available test
19571         framework commands.  Use the preferred spelling of DejaGnu.
19572
19573 2004-08-10  Daniel Berlin <dberlin@dberlin.org>
19574
19575         * lambda.h: Add matrix type, and prototypes for remainder of
19576         matrix and vector functions.
19577         (lambda_vector_mult_const): New function.
19578         (lambda_vector_negate): Ditto.
19579         (lambda_vector_add): Ditto.
19580         (lambda_vector_add_mc): Ditto.
19581         (lambda_vector_copy): Ditto.
19582         (lambda_vector_zerop): Ditto.
19583         (lambda_vector_equal): Ditto.
19584         (lambda_vector_min_nz): Ditto.
19585         (lambda_vector_first_nz): Ditto.
19586         (lambda_vector_matrix_mult): Ditto.
19587         * lambda-mat.c: New file.
19588         * Makefile.in (lambda-mat.o): New.
19589
19590 2004-08-10  Andrew MacLeod  <amacleod@redhat.com>
19591
19592         * tree-cfg.c (bsi_insert_before, bsi_insert_after): Call modify_stmt
19593         after linking stmt into the program.
19594         (bsi_remove): Don't call modify_stmt.
19595         * tree-complex.c (update_complex_assignment,
19596         expand_complex_comparison): Call modify_stmt after changing the stmt.
19597         * tree-outof-ssa.c (rewrite_trees): Call modify_stmt only if not
19598         removing the stmt.
19599         * tree-ssa-ccp.c (substitute_and_fold): Call modify_stmt after changing
19600         the stmt, and only if needed.
19601         * tree-ssa-dom.c (thread_across_edge): Pass no annotation for a dummy
19602         expression.
19603         (simplify_rhs_and_lookup_avail_expr): Don't take an annotation param.
19604         (simplify_cond_and_lookup_avail_expr): Use modify_stmt.
19605         (simplify_switch_and_lookup_avail_expr): Don't take an annotation param.
19606         (eliminate_redundant_computations): Don't pass an annotation. Call
19607         modify_stmt rather than setting the annotation directly.
19608         (record_equivalences_from_stmt): Remove unused local 'j'.
19609         (cprop_operand): Take a stmt rather than an annotation as a parameter.
19610         Call modify_stmt.
19611         (cprop_into_stmt): Pass stmt rather than annotation.
19612         (update_rhs_and_lookup_avail_expr): Call modify_stmt.
19613         * tree-ssa-loop-im.c (schedule_sm): Call get_stmt_ann rather than
19614         modify_stmt.
19615         * tree-ssa.c (propagate_into_addr): Dont call modify_stmt.
19616
19617 2004-08-10  Jason Merrill  <jason@redhat.com>
19618
19619         PR middle-end/16948
19620         * function.c (expand_function_start): Handle DECL_BY_REFERENCE on
19621         the RESULT_DECL.
19622
19623 2004-08-10  Geoffrey Keating  <geoffk@apple.com>
19624
19625         * tree-vn.c (val_expr_pair_expr_eq): Compare vuses, to match the
19626         hash function.
19627
19628 2004-08-10  Roger Sayle  <roger@eyesopen.com>
19629
19630         * config/mips/mips.md: New reciprocal square root patterns that
19631         match sqrt(1.0/x) in addition to the existing 1.0/sqrt(x) insns.
19632
19633 2004-08-10  Paul Brook  <paul@codesourcery.com>
19634
19635         * config/arm/arm-protos.h (arm_set_return_address,
19636         thumb_set_return_address): Add prototypes.
19637         * config/arm/arm.h (ARM_FT_EXCEPTION_HANDLER): Remove.
19638         * config/arm/arm.c (arm_compute_func_type,
19639         use_return_insn, arm_compute_save_reg0_reg12_mask,
19640         arm_compute_save_reg_mask, arm_output_function_prologue,
19641         arm_output_epilogue): Replace ARM_FT_EXCEPTION_HANDLER with
19642         current_function_calls_eh_return.
19643         (thumb_exit, thumb_pushpop, thumb_unexpanded_epilogue): Replace
19644         old eh code.
19645         (arm_set_return_address, thumb_set_return_address): New functions.
19646         * config/arm/arm.h (MUST_USE_SJLJ_EXCEPTIONS, DWARF2_UNWIND_INFO,
19647         ARM_EH_STACKADJ_REGNUM, EH_RETURN_STACKADJ_RTX): Define.
19648         * config/arm/arm.md (VUNSPEC_EH_RETURN): Add.
19649         (epilogue): Use the stackadj register.
19650         (eh_return, arm_eh_return, thumb_eh_return): New pattern.
19651
19652 2004-08-10  Jakub Jelinek  <jakub@redhat.com>
19653
19654         PR target/3144
19655         * expr.c (move_by_pieces_ninsns): Add max_size argument.
19656         (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1 to it.
19657         (CLEAR_BY_PIECES_P): Pass STORE_MAX_PIECES + 1 to it.
19658         (STORE_BY_PIECES_P): Define similarly to CLEAR_BY_PIECES_P,
19659         but using MOVE_RATIO.
19660         (move_by_pieces): Pass max_size to move_by_pieces_ninsns.
19661         (can_store_by_pieces): Change max_size type to unsigned int.
19662         (store_by_pieces_1): Likewise.  Pass max_size to
19663         move_by_pieces_ninsns.
19664         * config/s390/s390.h (STORE_BY_PIECES_P): Define.
19665         * config/sh/sh.c (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1
19666         to move_by_pieces_ninsns.
19667         (STORE_BY_PIECES_P): Define.
19668         * config/ns32k/ns32k.h (STORE_BY_PIECES_P): Pass STORE_MAX_PIECES + 1
19669         to move_by_pieces_ninsns.
19670         * doc/tm.texi (STORE_BY_PIECES_P): Document changed default.
19671
19672         * config/i386/i386.h (CLEAR_RATIO): Define.
19673
19674 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
19675
19676         * expr.c (expand_expr_real_1): Add back code that was not dead.
19677
19678 2004-08-09  Andrew Pinski  <apinski@apple.com>
19679
19680         * c-common.c (c_common_get_alias_set): Set the aliasing set of the type
19681         which is found to be compatible before returning the aliasing set.
19682
19683 2004-08-09  Daniel Jacobowitz  <dan@debian.org>
19684
19685         * ggc-zone.c (struct alloc_zone): Add statistics counters.
19686         (always_collect): New flag.
19687         (ggc_alloc_zone_1): Update statistics support.  Don't include
19688         overhead in allocated counter.
19689         (sweep_pages): Update allocated counter for large pages.  Don'y
19690         include overhead.
19691         (ggc_collect_1): Always collect.
19692         (ggc_collect): Honor always_collect flag.  Sum all zones to decide
19693         whether to collect.
19694         (SCALE, LABEL): New macros.
19695         (ggc_print_statistics): Add statistics support.
19696
19697 2004-08-09  Roger Sayle  <roger@eyesopen.com>
19698
19699         * expmed.c (sdiv_pow2_cheap, smod_pow2_cheap): Change type to bool.
19700         (init_expmed): Fix potential overrun problem with "all.reg".
19701         (expand_sdiv2_pow2): Add an alternate implementation for signed
19702         division, if the target provides a suitable conditional move insn.
19703
19704 2004-08-09  Paul Brook  <paul@codesourcery.com>
19705         Richard Henderson  <rth@redhat.com>
19706
19707         * unwind-dw2.c (uw_install_context_1): Update target saved stack
19708         pointer.
19709
19710 2004-08-09  Geoffrey Keating  <geoffk@apple.com>
19711
19712         * ggc-common.c (ggc_rlimit_bound): Don't check RSS limit.
19713         Check DATA limit only if there's no AS limit.  Ignore insanely
19714         low DATA limits.
19715         (ggc_min_heapsize_heuristic): Don't divide AS or RSS limits by 8,
19716         but take care that the AS limit isn't overrun.
19717         * doc/invoke.texi: Update documentation of min-heapsize parameter.
19718
19719 2004-08-09  Jeff Law  <law@redhat.com>
19720
19721         * Makefile.in (OBJC-common): Add tree-ssa-threadupdate.c
19722         (tree-ssa-threadupdate.o): Add dependencies.
19723         * tree-ssa-threadupdate.c: New file.
19724         * tree-flow.h (incoming_edge_threaded): New flag in block annotation.
19725         (rewrite_vars_out_of_ssa): Remove prototype.
19726         (cleanup_tree_cfg): Returns a bool.
19727         * tree.h (thread_through_all_blocks): Prototype.
19728         * tree-outof-ssa.c  (SSANORM_*): Move into here.
19729         (remove_ssa_form): Now static.
19730         (rewrite_vars_out_of_ssa): Kill.
19731         * tree-ssa-live.c (register_ssa_partitions_for_vars): Kill.
19732         * tree-ssa-live.h (SSANORM_*): Moved into tree-outof-ssa.c.
19733         (remove_ssa_form, register_partitions_for_vars): Kill declarations.
19734         * tree-cfg.c (cleanup_tree_cfg): Return a value indicating if
19735         anything was changed.
19736         * tree-phinodes.c (add_phi_arg): Get the block for the PHI
19737         from the PHI's annotation rather than the edge associated with
19738         the new argument.
19739         * tree-ssa-dom.c (redirection_edges): Kill.
19740         (redirect_edges_and_update_ssa_graph): Kill.
19741         (tree_ssa_dominator_optimize): Do not reset forwardable flag
19742         for blocks anymore.  Do not initialize redirection_edges.
19743         Call thread_through_all_blocks.  Simplify code for cleanup
19744         of the CFG and iterating.  No longer call cleanup_tree_cfg
19745         outside the iteration loop.
19746         (thread_across_edge): No longer mess with forwardable blocks.
19747
19748 2004-08-09  Zack Weinberg  <zack@codesourcery.com>
19749
19750         * explow.c (memory_address): Use memory_address_p.
19751         * recog.c (general_operand): Likewise.
19752         * regrename.c: No need to define REG_OK_STRICT.
19753
19754 2004-08-09  Steven Bosscher  <stevenb@suse.de>
19755
19756         * timevar.def (TV_CPROP1, TV_CPROP2, TV_PRE, TV_HOIST, TV_LSM):
19757         New timers.
19758         * gcse.c: Include timevar.h.
19759         (const_prop_count, copy_prop_count): Rename to global_const_prop_count
19760         and global_copy_prop_count.
19761         (local_const_prop_count, local_copy_prop_count): New static globals.
19762         (gcse_main): Set the right timevar for each pass.
19763         (cprop_jump): Increment global_const_prop_count when a constant is
19764         propagated.  Add "GLOBAL" to dump output.
19765         (cprop_insn): Increment global_const_prop_count when a constant is
19766         propagated, or global_copy_prop_count when a copy is propagated.
19767         (do_local_cprop): Likewise for local_const_prop_count and
19768         local_copy_prop_count.
19769         (one_cprop_pass): Initialize const/cprop counters to zero.
19770         Print out results of local and global const/cprop separately.
19771         (bypass_block): Break over-length line.
19772         * Makefile.in (gcse.o): Add TIMEVAR_H dependency.  Fix dependencies
19773         for bb-reorder.o and tracer.o.
19774
19775 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
19776
19777         * Makefile.in (GTFILES): Remove stmt.c
19778         (stmt.o): Do not depend on gt-stmt.h.
19779         * emit-rtl.c (emit_line_note): Do not call
19780         set_file_and_line_for_stmt.
19781         * expr.c (expand_expr_real_1) <SWITCH_EXPR>: Let expand_case
19782         do everything.
19783         * function.c (free_after_parsing): Do not free STMT field.
19784         (allocate_struct_function): Do not call init_stmt_for_function.
19785         (assign_stack_temp_for_type): Do not accept values of keep
19786         other than 0 or 1.
19787         (init_temp_slots): Do not initialize removed variables.
19788         * function.h (struct function): Remove STMT, X_TARGET_TEMP_SLOT_LEVEL
19789         and X_VAR_TEMP_SLOT_LEVEL fields.
19790         * rtl.h (set_file_and_line_for_stmt): Remove.
19791         * stmt.c (struct nesting, ALLOC_NESTING, POPSTACK,
19792         struct stmt_status, cond_stack, case_stack, nesting_stack,
19793         nesting_depth, emit_locus, set_file_and_line_for_stmt,
19794         same_case_target_p, init_stmt_for_function, emit_nop,
19795         expand_start_cond, expand_start_elseif, expand_start_else,
19796         expand_elseif, expand_end_cond): Remove.
19797         (preserve_subexpressions_p): Remove references to CFUN->STMT.
19798         (expand_start_case, expand_end_case_type): Remove, merge into...
19799         (expand_case): ... this one, including other bits from
19800         expand_expr_real_1.  Inline same_case_target_p.  Turn members
19801         of CASE_STACK into local variables.
19802         (emit_case_bit_tests): Inline same_case_target_p.
19803         (add_case_node): Add HEAD argument, return new head of the list,
19804         do not handle default label here.
19805         * tree.h (expand_start_cond, expand_end_cond, expand_start_else,
19806         expand_start_elseif, current_nesting_level, expand_start_case,
19807         expand_end_case_type, expand_end_case, add_case_node,
19808         init_stmt_for_function, expand_elseif): Remove prototypes.
19809         (expand_case): Add prototype.
19810
19811 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
19812
19813         * expr.c (expand_expr_real_1): Use optab_for_tree_code.
19814
19815 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
19816
19817         * expr.c (var_rtx): Remove.
19818         (expand_expr_real_1) <LOOP_EXPR, EXIT_EXPR,
19819         LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR, TRUTH_ANDIF_EXPR,
19820         TRUTH_ORIF_EXPR, COMPOUND_EXPR, CONJ_EXPR, INIT_EXPR>:
19821         Abort.
19822         (expand_expr_real_1) <COND_EXPR>: Remove most special cases.
19823         * optabs.c (emit_clr_insn, emit_0_to_1_insn): Remove.
19824         * optabs.h (emit_clr_insn, emit_0_to_1_insn): Remove.
19825
19826 2004-08-08  Mostafa Hagog  <mustafa@il.ibm.com>
19827         Ayal Zaks <zaks@il.ibm.com>
19828
19829         * common.opt (freschedule-modulo-scheduled-loops): New flag.
19830         * final.c (final_scan_insn): Handle NOTE_DISABLE_SCHED_OF_BLOCK.
19831         * modulo-sched.c (sms_schedule): Emit a note to disable scheduling
19832         when -freschedule-modulo-scheduled-loops flag is not specified.
19833         (sms_schedule_by_order, ps_insn_advance_column, add_node_to_ps,
19834         add_node_to_ps, ps_has_conflicts, ps_add_node_check_conflicts):
19835         More accurate placing of insn in row of partial schedule.
19836         (ps_insn_find_column): New function.
19837         * rtl.h (NOTE_DISABLE_SCHED_OF_BLOCK): New note.
19838         * sched-rgn.c (sched_is_disabled_for_current_region_p): New.
19839         (schedule_region): Use sched_is_disabled_for_current_region_p.
19840         * docs/invoke.texi: Document -freschedule-modulo-scheduled-loops.
19841
19842 2004-08-07  H.J. Lu  <hongjiu.lu@intel.com>
19843
19844         * config/i386/i386.c (ix86_expand_clrmem): Revert the last
19845         change.
19846
19847 2004-08-07  H.J. Lu  <hongjiu.lu@intel.com>
19848
19849         * config/i386/i386.c (ix86_expand_clrmem): Properly call
19850         gen_strset for 64bit target.
19851
19852 2004-08-07  Olivier Hainque  <hainque@act-europe.fr>
19853
19854         * config/vxworks.h (HANDLE_SYSV_PRAGMA): Remove definition.
19855
19856 2004-08-07  Jason Merrill  <jason@redhat.com>
19857
19858         Make return in memory explicit.
19859         * function.c (aggregate_value_p): Check DECL_BY_REFERENCE.
19860         (assign_parm_find_data_types): Remove code for old front end
19861         invisible reference handling.
19862         (assign_parms): Handle DECL_BY_REFERENCE on the RESULT_DECL.
19863         (expand_function_end): Likewise.
19864         * gimplify.c (gimplify_return_expr): Handle a dereferenced
19865         RESULT_DECL.
19866         * tree-inline.c (copy_body_r): Don't bother looking for &* anymore.
19867         (declare_return_variable): Handle DECL_BY_REFERENCE.
19868         * cp/cp-gimplify.c (is_invisiref_parm): Also handle RESULT_DECL.
19869         (cp_genericize_r): Use convert_from_reference.
19870         Don't dereference a RESULT_DECL directly inside a RETURN_EXPR.
19871         (cp_genericize): Handle the RESULT_DECL.  Unset TREE_ADDRESSABLE.
19872
19873         * c-common.c (c_warn_unused_result): Check TREE_USED before
19874         warning about a CALL_EXPR with an unused value.
19875
19876 2004-08-06  Mark Mitchell  <mark@codesourcery.com>
19877
19878         * config/arm/symbian.h (CC1_SPEC): Avoid passing duplicate options
19879         to the compiler.  Use -fshort-wchar by default.
19880
19881 2004-08-06  Pat Haugen  <pthaugen@us.ibm.com>
19882
19883         * params.def (PARAM_MIN_CROSSJUMP_INSNS): New.
19884         * cfgcleanup.c (try_crossjump_to_edge): Add minimum insn match
19885         threshhold.
19886         * doc/invoke.texi (param): Document min-crossjump-insns.
19887
19888 2004-08-06  Richard Sandiford  <rsandifo@redhat.com>
19889
19890         PR c/13282
19891         * c.opt (Wmissing-field-initializers): New option.
19892         * c-opts.c (c_common_post_options): Make -Wextra turn it on by default.
19893         * c-typeck.c (pop_init_level): Guard the missing field warning with
19894         warn_missing_field_initializers rather than extra_warnings.
19895         * doc/invoke.texi (-Wmissing-field-initializers): Document, moving
19896         some of the explanation from...
19897         (-Wextra): ...here.  Say that the missing field warning can be
19898         seperately controlled by -Wmissing-field-initializers.
19899
19900 2004-08-06  Paolo Bonzini  <bonzini@gnu.org>
19901
19902         * expr.c (expand_expr_real_1) <ENTRY_VALUE_EXPR>: Remove.
19903         * tree-inline.c (estimate_num_insns_1) <ENTRY_VALUE_EXPR>: Remove.
19904         * tree-pretty-print.c (dump_generic_node) <ENTRY_VALUE_EXPR>: Remove.
19905         * tree.def (ENTRY_VALUE_EXPR): Remove.
19906
19907 2004-08-06  Jakub Jelinek  <jakub@redhat.com>
19908
19909         * config/i386/i386.c (ix86_expand_clrmem): Move gen_cld down to
19910         the places where it is actually needed.  Don't use repz; stosb
19911         for -Os with sufficiently small constant sizes.
19912         For sufficiently small repz; stos{l,q} repeat counts use a sequence
19913         of stos{l,q} instructions instead.
19914
19915 2004-08-06  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
19916
19917         PR tree-optimization/16807
19918         * loop-iv.c (dump_iv_info): Dump invariants correctly.
19919         (iv_subreg, iv_extend): Express value of invariant purely in
19920         base field.
19921
19922 2004-08-06  Mark Mitchell  <mark@codesourcery.com>
19923
19924         * config/arm/symbian.h (CC1_SPEC): Add -fno-short-enums.
19925         (CC1PLUS_SPEC): Define it to be the same as CC1_SPEC.
19926
19927 2004-08-06  Roman Zippel  <zippel@linux-m68k.org>
19928
19929         * config/m68k/m68k.c (post_inc_operand,pre_dec_operand): New.
19930         * config/m68k/m68k.h (PREDICATE_CODES): add post_inc_operand,
19931         pre_dec_operand.
19932         * config/m68k/m68k.md (zero_extend*2): delay the splitting of the
19933         pattern until reload is finished to allow better code generation
19934         and split them completely into separate instrunctions.
19935         (*andsi3_split): New pattern.
19936
19937 2004-08-05  Mark Mitchell  <mark@codesourcery.com>
19938
19939         * tree.c (handle_dll_attribute): Move here from i383/winnt.c.
19940         Replace use of DECL_INLINE with DECL_DECLARED_INLINE_P.  Set
19941         DECL_VISIBLITY.  Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
19942         * tree.h (handle_dll_attribute): Declare.  Test
19943         TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
19944         * c-common.h (c_determine_visibility): Declare.
19945         * c-common.c (c_determine_visibility): New function.
19946         * c-decl.c (finish_decl): Use it.
19947         (finish_function): Likewise.
19948         * defaults.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define it to
19949         zero, by default.  Use #if, not #ifdef, to test it.
19950         * config/arm/arm.c (arm_attribute_table): Use
19951         handle_dll_attribute.  Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with
19952         #if.
19953         * config/arm/pe.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define to 1.
19954         * config/i386/cygming.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
19955         to 1.
19956         * config/i386/i386-protos.h (ix86_handle_dll_attribute): Remove.
19957         * config/i386/i386.c (ix86_attribute_table): Use
19958         handle_dll_attribute for dllimport/dllexport.  Test
19959         TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
19960         * config/i386/winnt.c (ix86_handle_dll_attribute): Remove.
19961         * config/mcore/mcore.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
19962         it to 1.
19963         * config/mcore/mcore.c (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Test it
19964         with #if.
19965         * config/sh/symbian-pre.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
19966         it to 1.
19967         * doc/extend.texi (dllexport): Clarify and correct documentation.
19968         (dllimport): Likewise.
19969         * doc/tm.texi (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Mention
19970         handle_dll_attribute.
19971
19972 2004-08-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
19973
19974         * tree-ssa-loop-manip.c: New file.
19975         * Makefile.in (tree-ssa-loop-manip.o): Add.
19976         * tree-flow.h (rewrite_into_loop_closed_ssa, verify_loop_closed_ssa):
19977         Declare.
19978         * tree-ssa-loop.c (tree_loop_optimizer_init): Create loop closed ssa
19979         form.
19980         (tree_ssa_loop_done): Verify loop closed ssa form.
19981         * tree-ssa-loop-im.c (move_computations): Update loop closed ssa form.
19982
19983 2004-08-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19984
19985         * pa.c (pa_asm_output_aligned_bss, pa_asm_output_aligned_common,
19986         pa_asm_output_aligned_local): New functions.
19987         * pa-protos.h: Add prototypes for pa_asm_output_aligned_bss,
19988         pa_asm_output_aligned_common and pa_asm_output_aligned_local.
19989         * pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON): Use
19990         pa_asm_output_aligned_common.
19991         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
19992         * pa.h (ASM_OUTPUT_ALIGNED_BSS): New macro.
19993         (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
19994         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
19995         * pa64-hpux.h (MAX_OFILE_ALIGNMENT): New macro.
19996         (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
19997         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
19998         * som.h (MAX_OFILE_ALIGNMENT): Provide maximum alignment of global
19999         common data.
20000
20001 2004-08-05  Andrew Pinski  <apinski@apple.com>
20002
20003         * objc/objc-act.c (build_objc_string_object): Mark the address
20004         expression as constant.
20005
20006 2004-08-05  David Edelsohn  <edelsohn@gnu.org>
20007
20008         * config/rs6000/rs6000.c (rs6000_rtx_costs): Fix mask_operand
20009         and mask64_operand thinkos.  Handle ZERO_EXTRACT.  Handle
20010         SIGN_EXTEND / ZERO_EXTEND of MEM.  Handle rlwinm patterns.
20011
20012 2004-08-05  Joseph S. Myers  <jsm@polyomino.org.uk>
20013
20014         * config/linux.h, config/i386/linux.h, config/sparc/linux.h:
20015         Remove definitions conditioned on USE_GNULIBC_1 or conditioned
20016         out, and associated obsolete comments.
20017
20018 2004-08-05  Nathan Sidwell  <nathan@codesourcery.com>
20019
20020         * tree.h (force_fit_type): Return a tree, take three flags.
20021         * fold-const.c (force_fit_type): Set TREE_OVERFLOW and
20022         TREE_CONSTANT_OVERFLOW here.
20023         (int_const_binop, const_binop): Adjust.
20024         (size_int_type): Do sign extension here.
20025         (fold_convert_const, optimize_bit_field_compare,
20026         decode_field_reference, all_ones_mask_p, fold_div_compare, fold,
20027         fold_negate_const, fold_abs_const, fold_not_const): Adjust.
20028         * tree.c (size_in_bytes, int_fits_type_p): Adjust.
20029
20030 2004-08-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
20031
20032         PR tree-optimization/16864
20033         * tree-tailcall.c (eliminate_tail_call): Do not create phi nodes
20034         for ssa names without default_def.
20035
20036 2004-08-05  Richard Sandiford  <rsandifo@redhat.com>
20037
20038         * config/i386/i386.c (ix86_expand_prologue): If the function uses a
20039         frame pointer, restore eax with an ebp-relative address.
20040
20041 2004-08-04  Geoffrey Keating  <geoffk@apple.com>
20042
20043         PR 14516
20044         * c-common.c (c_expand_decl): Don't special-case static VAR_DECLs.
20045         * c-common.h (make_rtl_for_local_static): Delete.
20046         * c-decl.c (shadow_tag_warned): Clean up comment.
20047         (finish_decl): Clean up spacing.  Use set_user_assembler_name when
20048         appropriate.  Don't pass asmspec to rest_of_decl_compilation.
20049         * c-semantics.c (make_rtl_for_local_static): Delete.
20050         * expr.c (init_block_move_fn): Use set_user_assembler_name.
20051         (init_block_clear_fn): Likewise.
20052         * passes.c (rest_of_decl_compilation): Remove asmspec parameter,
20053         expect it to be in DECL_ASSEMBLER_NAME.  Update callers in many files.
20054         * toplev.h (rest_of_decl_compilation): Remove asmspec parameter.
20055         * tree.h (make_decl_rtl): Remove second parameter.
20056         (set_user_assembler_name): New.
20057         * varasm.c (set_user_assembler_name): New.
20058         (make_decl_rtl): Remove second parameter.  Update callers in many
20059         files.
20060
20061 2004-08-05  Adam Nemet  <anemet@lnxw.com>
20062
20063         * config.gcc (case i[34567]86-*-lynxos*): Update to LynxOS 4.0.
20064         (case rs6000-*-lynxos*): Rename it to powerpc-*-lynxos*.  Update
20065         to LynxOS 4.0.
20066         * gthr-lynx.h: New file.
20067         * config/lynx-ng.h: Remove file.
20068         * config/lynx.h: Update to LynxOS 4.0.
20069         * config/t-lynx: New file.
20070         * config/i386/lynx-ng.h: Remove file.
20071         * config/i386/lynx.h: Update to LynxOS 4.0.
20072         * config/rs6000/lynxbase.h: Remove file.
20073         * config/rs6000/lynx.h: Update to LynxOS 4.0.
20074         * config/rs6000/t-lynx: New file.
20075         * doc/install.texi (Options specification): Remove reference to
20076         LynxOS from systems where --with-gnu-as makes a difference.
20077
20078 2004-08-05  Joseph S. Myers  <jsm@polyomino.org.uk>
20079
20080         * c-common.c (c_stddef_cpp_builtins): Define __INTMAX_TYPE__ and
20081         __UINTMAX_TYPE__.
20082         * c-cppbuiltin.c (builtin_define_stdint_macros): New.  Define
20083         __INTMAX_MAX__.
20084         (c_cpp_builtins): Call it.
20085         * doc/cpp.texi: Update.
20086
20087 2004-08-04  David Edelsohn  <edelsohn@gnu.org>
20088
20089         * config/rs6000/rs6000.c (rs6000_rtx_costs): LABEL_REFs are zero
20090         cost.
20091
20092 2004-08-04  Jan Hubicka  <jh@suse.cz>
20093
20094         * basic-block.h (profile_staus): New global variable.
20095         * cfg.c (profile_status): Declare.
20096         (check_bb_profile): Break out from ....; use profile_status
20097         (dump_flow_info): ... here.
20098         * cfgbuild.c (find_basic_blocks): Set profile_status.
20099         * cfgexpand.c (tree_expand_cfg): Likewise.
20100         * predict.c (estimate_probability): Likewise.
20101         * profile.c (branch_prob): Likewise.
20102         * tree-cfg.c (build_tree_cfg): Likewise.
20103         (dump_function_to_file): Use check_bb_profile.
20104         * tree-pretty-print (dump_bb_header): Likewise.
20105         * tree-profile.c (do_tree_profiling): Cleanup.
20106
20107 2004-08-04  Zack Weinberg  <zack@codesourcery.com>
20108
20109         * Makefile.in (RTL_BASE_H, RTL_H): Correct.
20110         (BUILD_RTL): Remove $(BUILD_PREFIX) from ggc-none.o.
20111         (genobjs): Add errors.o, ggc-none.o, and min-insn-modes.o.
20112         (read-rtl.o, gensupport.o, genconfig.o, genflags.o, gencodes.o)
20113         (genconstants.o, genemit.o, genopinit.o, genrecog.o, genextract.o)
20114         (genpeep.o, genattr.o, genattrtab.o, genautomata.o, genoutput.o)
20115         (genconditions.o): Depend on $(RTL_BASE_H) not $(RTL_H).
20116         (ggc-none.o, errors.o): Move rule to generators section;
20117         correct dependencies.
20118         (min-insn-modes.o): Move rule to generators section; remove
20119         unnecessary explicit command; correct dependencies.
20120         (print-rtl.o, print-rtl1.o): Correct dependencies.
20121         ($(BUILD_PREFIX_1)errors.o. $(BUILD_PREFIX_1)ggc-none.o): Delete rule.
20122         (mostlyclean): Update.
20123
20124         * errors.c: Include bconfig.h not config.h.  Correct comment.
20125         * gengtype.c, genpreds.c: Don't define NO_GENRTL_H.
20126         * ggc-none.c: Include bconfig.h; not config.h or tm.h.
20127         * print-rtl.c: Don't include tm_p.h.
20128
20129         * rtl.h: Move forward-decl of struct function down where it's
20130         needed.  Include genrtl.h #ifndef GENERATOR_FILE, not
20131         #ifndef NO_GENRTL_H.  Remove unnecessary #ifdef BUFSIZ statements.
20132
20133 2004-08-04  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
20134             Jeff Law  <law@redhat.com>
20135
20136         * tree-cfg.c (tree_duplicate_bb): Mark duplicated definitions.
20137         * tree-flow.h (rewrite_ssa_into_ssa): Declaration changed.
20138         * tree-into-ssa.c (rewrite_ssa_into_ssa): Use new interface to
20139         manipulate the duplicated ssa names.
20140         * tree-ssanames.c (ssa_names_to_rewrite): New variable.
20141         (marked_for_rewrite_p, any_marked_for_rewrite_p, mark_for_rewrite,
20142         unmark_all_for_rewrite, marked_ssa_names, release_ssa_name_force):
20143         New functions.
20144         (release_ssa_name): Do not release ssa names that may have multiple
20145         definitions.
20146         * tree.h (release_ssa_name_force, mark_for_rewrite,
20147         unmark_all_for_rewrite, marked_for_rewrite_p, any_marked_for_rewrite_p,
20148         marked_ssa_names): Declare.
20149         * tree-ssa-loop-ch.c (mark_defs_for_rewrite): Remove.
20150         (duplicate_blocks): Remove call to mark_defs_for_rewrite.
20151         Update call to rewrite_ssa_into_ssa.
20152
20153 2004-08-04  Mark Mitchell  <mark@codesourcery.com>
20154
20155         * defaults.h (TARGET_DECLSPEC): New macro.
20156         * c-cppbuiltin.c (c_cpp_builtins): Handle TARGET_DECLSPEC.
20157         * config/arm/pe.h (SUBTARGET_CPP_SPEC): Remove __declspec support.
20158         * config/arm/symbian.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define.
20159         * config/i386/beof-elf.h (TARGET_OS_CPP_BUILTINS): Remove
20160         __declspec support.
20161         (TARGET_DECLSPEC): Define.
20162         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Remove
20163         __declspec support.
20164         * config/i386/i386-interix.h (TARGET_OS_CPP_BUILTINS): Remove
20165         __declspec support.
20166         (TARGET_DECLSPEC): Define.
20167         * config/mcore/mcore.h (TARGET_CPU_CPP_BUILTINS): Remove
20168         __declspec support.
20169         * config/sh/symbian-pre.h (SUBTARGET_CPP_SPEC): Remove __declspec
20170         support.
20171         * doc/tm.texi (TARGET_DECLSPEC): Document.
20172
20173         * doc/extend.texi: Fix typo in comment.
20174
20175 2004-08-04  Paul Brook  <paul@codesourcery.com>
20176
20177         * target-def.h (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
20178         (TARGET_CXX): Use it.
20179         * target.h (struct gcc_target): Add cdtor_returns_this.
20180         * config/arm/arm.c (arm_cxx_cdtor_returns_this): New function.
20181         (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
20182         * doc/tm.texi: Document TARGET_CXX_CDTOR_RETURNS_THIS.
20183
20184 2004-08-03  Nathan Sidwell  <nathan@codesourcery.com>
20185
20186         * c-lex.c (narrowest_unsigned_type, narrowest_signed_type): Take
20187         low/high pair. Do range checking directly.
20188         (interpret_integer): Adjust.
20189
20190 2004-08-04  Nick Clifton  <nickc@redhat.com>
20191
20192         * config/sh/sh.h (TARGET_SWITCHES): Add no-renesas to select the
20193         GCC ABI.
20194         * doc/invoke.texi: Document this new switch and also the -mrenesas
20195         switch.
20196
20197 2004-08-04  Nathan Sidwell  <nathan@codesourcery.com>
20198
20199         * cfglayout.c (insn_locators_initialize): Update the current
20200         location before initializing a location.
20201
20202 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
20203
20204         * dbxout.c (dbxout_function_decl): Always call dbxout_function_end.
20205         (dbxout_function_end): Return after emitting the "Lscope" symbol
20206         under the same conditions that this function formerly wasn't called.
20207         Add explanatory comments.
20208
20209         PR 14860
20210         * c-decl.c (record_builtin_type): Call debug_hooks->type_decl
20211         on the new decl.
20212
20213         PR 13956
20214         * dbxout.c (dbx_output_lbrac, dbx_output_rbrac): New
20215         functions, broken out of dbxout_block.
20216         (dbxout_block): The block at depth 0 should get LBRAC/RBRAC
20217         stabs too, if it contains symbols.  Use the begin_label and
20218         the Lscope label (emitted by dbxout_function_end) for the
20219         range of this block.
20220
20221 2004-08-03  Nathanael Nerode  <neroden@gcc.gnu.org>
20222
20223         * doc/install.texi: Update autoconf version requirements.
20224
20225 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
20226
20227         * defaults.h (LEGITIMATE_PIC_OPERAND_P): Provide default definition.
20228         * recog.c (general_operand, immediate_operand, nonmemory_operand)
20229         (asm_operand_ok): Remove #ifdefs on LEGITIMATE_PICOPERAND_P.
20230         * regclass.c (record_reg_classes): Likewise.
20231         * reload.c (find_reloads): Likewise.
20232         * reload1.c (reload): Likewise.
20233
20234 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
20235
20236         * gensupport.c (init_md_reader_args_cb): Renamed from
20237         init_md_reader_args.  Add third option, callback function for
20238         parsing program-specific options.  Add diagnosis of incorrect
20239         number of input files.
20240         (init_md_reader): Fold into init_md_reader_args_cb.
20241         (init_md_reader_args): Now a thin wrapper around
20242         init_md_reader_args_cb.
20243         * gensupport.h: Update prototypes.
20244
20245         * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c
20246         * genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c
20247         * genrecog.c: No need to diagnose lack of an input file;
20248         init_md_reader_args will handle it.
20249         * genconditions.c: Likewise, and use init_md_reader_args.
20250         * genconstants.c: Likewise, and no need to call read_md_rtx.
20251
20252 2004-08-03  Joseph S. Myers  <jsm@polyomino.org.uk>
20253
20254         * c-decl.c (implicitly_declare): Diagnose incompatible implicit
20255         declarations.
20256
20257 2004-08-03  Mike Stump  <mrs@apple.com>
20258
20259         * config/darwin-c.c: Don't search in "/Local/Library/Frameworks"
20260         for frameworks.
20261         * doc/invoke.texi (Darwin Options): Update to reflect above.
20262
20263 2004-08-03  Roger Sayle  <roger@eyesopen.com>
20264
20265         PR middle-end/16790
20266         * fold-const.c (extract_muldiv_1) <NOP_EXPR>: Disallow local
20267         truncations, not just global truncations.
20268
20269 2004-08-03  Andrew Pinski  <apinski@apple.com>
20270
20271         PR bootstrap/16865
20272         * loop-iv.c (simplify_using_assignment): Initialize lhs.
20273
20274 2004-08-03  Paul Brook  <paul@codesourcery.com>
20275
20276         * gcc/doc/install.texi: Document MPFR requirement.
20277
20278 2004-08-03  Maciej W. Rozycki  <macro@linux-mips.org>
20279
20280         * aclocal.m4 (gcc_AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
20281         and mmap() explicitly instead of relying on preset autoconf cache
20282         variables.
20283         * configure: Regenerate.
20284
20285 2004-08-03  H.J. Lu  <hongjiu.lu@intel.com>
20286
20287         PR target/16570
20288         * config.gcc (i[34567]86-*-* | x86_64-*-*): Add i386/t-gmm_malloc
20289         to tmake_file.
20290         (i[34567]86-*-linux*aout* | i[34567]86-*-linux*libc1): Likewise.
20291         (i[34567]86-*-linux* | x86_64-*-linux*): Add i386/t-pmm_malloc
20292         to tmake_file.
20293
20294         * config/i386/t-gmm_malloc: New file.
20295         * config/i386/t-pmm_malloc: Likewise.
20296
20297         * config/i386/xmmintrin.h: Include <mm_malloc.h>.
20298
20299 2004-08-03  H.J. Lu  <hongjiu.lu@intel.com>
20300             Tanguy Fautrà <tfautre@pandora.be>
20301
20302         * config/i386/pmm_malloc.h: New file.
20303
20304 2004-08-03  Danny Smith  <dannysmith@users.sourceforge.net>
20305
20306         * config/i386/gmm_malloc.h: New file.
20307
20308 2004-08-03  Dale Johannesen  <dalej@apple.com>
20309
20310         * config/rs6000/rs6000.c (machopic_output_stub):  Align Darwin stubs.
20311         * c-common.c: Include opts.h.
20312         (c_common_get_alias_set): Fix check for a single input file.
20313         * toplev.c: Remove current_file_decl.
20314         * tree.h: Ditto.
20315
20316 2004-08-03  Mark Mitchell  <mark@codesourcery.com>
20317
20318         * config.gcc (arm*-*-symbianelf*): New target.
20319         * config/arm/symbian.h: New file.
20320
20321         * gthr-gnat.c: Add visibility #pragmas.
20322         * gthr-gnat.h : Likewise.
20323         * gthr.h: Likewise.
20324         * libgcc2.c (__ffsSI2): Move prototype to libgcc2.h.
20325         (__ffsDI2): Likewise.
20326         (__clzSI2): Likewise.
20327         (__ctzSI2): Likewise.
20328         (__ctzDI2): Likewise.
20329         (__popcountSI2): Likewise.
20330         (__popcountDI2): Likewise.
20331         (__paritySI2): Likewise.
20332         (__parityDI2): Likewise.
20333         * libgcc2.h: Add visibility #pragmas.
20334         (__clzDI2): Add prototype.
20335         (__clzSI2): Likewise.
20336         (__ctzSI2): Likewise.
20337         (__ffsDI2): Likewise.
20338         (__ffsSI2): Likewise.
20339         (__ctzDI2): Likewise.
20340         (__popcountSI2): Likewise.
20341         (__popcountDI2): Likewise.
20342         (__paritySI2): Likewise.
20343         (__parityDI2): Likewise.
20344         * unwind-dw2-fde.h: Add visibility #pragmas.
20345         * unwind.h: Likewise.
20346
20347 2004-08-03  David Edelsohn  <edelsohn@gnu.org>
20348             Dale Johannesen  <dalej@apple.com>
20349             Roger Sayle  <roger@eyesopen.com>
20350
20351         * config/rs6000/rs6000.c (rs6000_rtx_costs): Calculate cost of
20352         constants more accurately.  Adjust costs for FMA instructions.
20353         Add cases for most logical and float operations.  Recurse into
20354         most operands.
20355
20356 2004-08-03  Richard Earnshaw  <rearnsha@arm.com>
20357
20358         * config.gcc (strongarm-*, xscale-*): Add t-arm to tmake_files.
20359
20360 2004-08-03  Pat Haugen  <pthaugen@us.ibm.com>
20361
20362         * ra-build.c (conflicts_between_webs): For webs that cross a call add
20363         conflicts to regs_invalidated_by_call.
20364
20365 2004-08-03  Paul Brook  <paul@codesourcery.com>
20366
20367         * config/arm/arm.c (emit_sfm): Only emit a single frame adjustment.
20368
20369 2004-08-03  Jan Hubicka  <jh@suse.cz>
20370
20371         * coverage.c (tree_coverage_counter_ref): Fix computation of the new
20372         ARRAY_REF argument.
20373
20374 2004-08-03  Richard Earnshaw  <rearnsha@arm.com>
20375
20376         * arm-cores.def: Sort by architecture.  Add arm946es, arm966es,
20377         arm968es, arm10e, arm1020e, arm1022e.
20378         * invoke.texi: Update list of ARM cores.
20379         * arm-tune.md: Regenerate.
20380
20381 2004-08-03  Richard Earnshaw <rearnsha@arm.com>
20382
20383         * arm/gentune.sh: New file.
20384         * arm/t-arm: New file.
20385         * arm/arm-tune.md: New file (autogenerated).
20386         * config.gcc (arm*-*-*): Add t-arm to tmake_file for all variants.
20387         * arm.md (attribute tune): Delete.  Include arm-tune.md.
20388
20389 2004-08-03  Paolo Bonzini <bonzini@gnu.org>
20390
20391         * gcc.c (add_prefix, add_sysrooted_prefix): Remove
20392         penultimate parameter.  All callers adjusted.
20393         (struct prefix_list): Remove used_flag_ptr.
20394         (find_a_file): Do not set *pl->used_flag_ptr.
20395         (warn_B, warn_std_ptr): Remove.
20396
20397 2004-08-03  Yossi Markovich <yossim@il.ibm.com>
20398             Mostafa Hagog <mustafa@il.ibm.com>
20399
20400         * config/rs6000/altivec.md (altivec_vnmsubfp): Fix wrong pattern.
20401
20402 2004-08-02  Geoffrey Keating  <geoffk@apple.com>
20403
20404         * dwarf2out.c (output_call_frame_info): Don't change data format
20405         due to TARGET_USES_WEAK_UNWIND_INFO.  Always refer to the local
20406         label.  Use 'true' not '1'.
20407         * doc/install.texi (powerpc-*-darwin*): Mention cctools version
20408         required.
20409
20410 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
20411
20412         * gdbinit.in: Reflect previous changes to rtunion_def.
20413
20414 2004-08-02  Roger Sayle  <roger@eyesopen.com>
20415
20416         * fold-const.c (fold) <TRUNC_MOD_EXPR>: The transformation "X % -Y"
20417         -> "X % Y" is only valid for TRUNC_MOD_EXPR.
20418
20419 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
20420
20421         * vec.h (DEF_VEC_P): Add proper cast to uses of vec_o_reserve and
20422         vec_p_reserve.
20423         * langhooks.h (lang_hooks::builtin_function): Rename parameter
20424         from "class" to "bt_class".
20425
20426 2004-08-02  Paul Brook  <paul@codesourcery.com>
20427
20428         PR rtl-optimization/15068
20429         * flow.c (init_propagate_block_info): Check condition is reversible.
20430
20431 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
20432
20433         * gengtype.h (options::info): Change type to const char *.
20434         (enum gc_used_enum): Move out of struct type scope.
20435         * gengtype.c (create_option): Convert initializer for option::info to
20436         appropiate type.
20437         (adjust_field_type, walk_type, write_func_for_structure,
20438         write_root, write_roots): Remove pointless cast.
20439
20440 2004-08-02  J"orn Rennecke <joern.rennecke@superh.com>
20441
20442         * genopinit.c (gen_insn): Check for MODE_COMPLEX_FLOAT patterns for $F.
20443
20444 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
20445
20446         * rtl.h (union rtunion_def): Have all members  start with the
20447         prefix "rt_".
20448         (XINT, XSTR, XEXP, XVEC, XMODE, XBITMAP, XTREE, XBBDEF, XTMPL,
20449         X0INT, X0UINT, X0STR, X0EXP, X0VEC, X0MODE, X0BITMAP, X0TREE,
20450         X0MEMATTR, X0BBDEF, X0REGATTR, XCINT, XCUINT, XCSTR, XCEXP,
20451         XCVEC, XCMODE, XCBITMAP, XCTREE, XCBBDEF, XC2EXP): Adjust members
20452         access.
20453         * gengtype.c (adjust_field_rtx_def): Likewise.
20454         * rtlanal.c (loc_mentioned_in_p): Likewise.
20455
20456 2004-08-02  Richard Sandiford  <rsandifo@redhat.com>
20457
20458         * config.gcc (mips*-*-elf*, mips*-*-rtems*): Add elfos.h to tm_file.
20459         Replace uses of mips/elf64.h with mips/elf.h
20460         * config/mips/elf.h (MAX_OFILE_ALIGNMENT, TARGET_ASM_NAMED_SECTION)
20461         (TYPE_OPERAND_FMT, TYPE_ASM_OP, SIZE_ASM_OP, BSS_SECTION_ASM_OP)
20462         (ASM_OUTPUT_ALIGNED_BSS, ASM_WEAKEN_LABEL, ASM_OUTPUT_WEAK_ALIAS)
20463         (MAKE_DECL_ONE_ONLY, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP)
20464         (HANDLE_SYSV_PRAGMA): Delete.
20465         (ASM_OUTPUT_DEF): Fix formatting.
20466         * config/mips/elf64.h: Delete.
20467
20468 2004-08-01  Zack Weinberg  <zack@codesourcery.com>
20469
20470         * config/ia64/ia64.c (got_symbolic_operand): Do require a
20471         symbol+offset operand to have its offset be zero mod 0x3fff
20472         when GOT entries are in use.  Clarify logic in SYMBOL_REF
20473         case.  Clarify comments.
20474         (ia64_expand_load_address): Split a symbol+offset load when
20475         the offset is nonzero mod 0x3fff, not 0x1fff.
20476
20477 2004-08-01  Geoffrey Keating  <geoffk@apple.com>
20478
20479         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Just abort
20480         if trying to *store* to a non-offsettable address.
20481         * config/rs6000/rs6000.md (movtf_internal): Don't move GPRs to
20482         a nonoffsettable address.
20483         (movdi_internal32): Don't move GPRs to a nonoffsettable address.
20484         Clean up.
20485         (movti_string): Don't move GPRs to a nonoffsettable address.
20486         (movti_ppc64): Don't move GPRs to a nonoffsettable address.  Clean up.
20487
20488 2004-08-02  Ben Elliston  <bje@au.ibm.com>
20489
20490         PR target/16155
20491         * config/rs6000/altivec.h: Replace typeof with __typeof__.
20492
20493 2004-08-01  Richard Henderson  <rth@redhat.com>
20494
20495         * expr.c (expand_expr_real_1) <normal_inner_ref>: Fix crash with
20496         variable sized types.
20497
20498 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
20499
20500         * doc/invoke.texi: In the MIPS options section, remove the passage
20501         saying that -mexplicit-relocs is usually disabled for -mabicalls
20502         -fno-unit-at-a-time.
20503         * config/mips/mips.c (override_options): Remove the code that enforced
20504         this rule.
20505
20506 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
20507
20508         * config/mips/mips.md (cprestore): Provide two alternatives, one for
20509         an in-range offset and one for an out-of-range offset.  Wrap the latter
20510         in .set macro/.set nomacro if it's inside a .set nomacro block.
20511
20512 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
20513
20514         * config/mips/mips-protos.h (mips_gp_save_slot): Remove.
20515         (mips_restore_gp): Declare.
20516         * config/mips/mips.c (mips_add_offset): Add a scratch register
20517         argument.  Reimplement in rtl only, reusing MIPS16 logic from
20518         mips_output_mi_thunk.
20519         (mips_legitimize_address, mips_legitimize_const_move): Adjust calls
20520         to mips_add_offset.
20521         (mips_gp_save_slot): Delete.
20522         (mips_restore_gp): New function.
20523         (mips_set_return_address, mips_output_mi_thunk): Use mips_add_offset.
20524         * config/mips/mips.md (exception_receiver): Turn into a
20525         define_insn_and_split.  Use mips_restore_gp to do the split.
20526         (call_internal, call_value_internal, call_value_multiple_internal): Use
20527         mips_restore_gp to restore $gp.
20528
20529 2004-07-31  Andrew Pinski  <apinski@apple.com>
20530
20531         PR other/16842
20532         * mkheaders.in (libsubdir): s/gcc-lib/gcc/.
20533
20534 2004-07-31  Joseph S. Myers  <jsm@polyomino.org.uk>
20535
20536         * c-decl.c (diagnose_mismatched_decls): Give error for external
20537         redeclaration of identifier declared with no linkage, not just
20538         warning with -Wtraditional.  Do not check DECL_CONTEXT to give
20539         error for redeclaration with no linkage.
20540
20541 2004-07-30  Geoffrey Keating  <geoffk@apple.com>
20542             Fariborz Jahanian <fjahanian@apple.com>
20543
20544         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Permit
20545         non-offsettable addresses even for DImode.
20546         (rs6000_split_multireg_move): Cope with non-offsettable addresses
20547         being moved into multiple GPRs.
20548
20549         * config/rs6000/rs6000.c (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Default
20550         to 64.
20551         (rs6000_override_options): Use RS6000_DEFAULT_LONG_DOUBLE_SIZE.
20552         * config/rs6000/darwin.h (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define
20553         to 128.
20554         * config/rs6000/darwin-ldouble.c (isless): New macro.
20555         (inf): New macro.
20556         (nonfinite): New macro.
20557         (FPKINF): Delete.
20558         (_xlqadd): Completely rewrite.
20559         (_xlqmul): Correct overflow handling.
20560         (_xlqdiv): Correct overflow handling.
20561         * config/rs6000/darwin-ldouble-format: New file.
20562
20563 2004-07-30  Roger Sayle  <roger@eyesopen.com>
20564             Richard Henderson  <rth@redhat.com>
20565
20566         * config/i386/i386.md: New peephole2's to convert imul by 3, 5 or
20567         9 into the equivalent lea instruction.
20568
20569 2004-07-30  Richard Henderson  <rth@redhat.com>
20570
20571         * gimplify.c (gimplify_expr) <case CONST_DECL>: Don't replace
20572         with DECL_INITIAL if fb_lvalue.
20573         * tree-gimple.c (is_gimple_id): Add CONST_DECL.
20574         * tree-pretty-print.c (dump_decl_name): Dump unnamed CONST_DECL
20575         with <Cxxx>.
20576         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Fold CONST_DECL.
20577
20578 2004-07-30  Diego Novillo  <dnovillo@redhat.com>
20579
20580         * tree-ssa-alias.c (compute_points_to_and_addr_escape): If a
20581         pointer escapes through a function call, assume that the
20582         callee will dereference it.
20583         (add_pointed_to_var): Assume that VALUE is always an
20584         ADDR_EXPR.
20585         (collect_points_to_info_r): Only call add_pointed_to_var if
20586         the value is an ADDR_EXPR.
20587
20588 2004-07-30  Diego Novillo  <dnovillo@redhat.com>
20589
20590         * tree-ssa-alias.c (create_alias_map_for): Do not get the
20591         alias set of the inner type of ARRAY_TYPEs.
20592
20593 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
20594
20595         * tree-ssa-ccp.c (visit_assignment): Move code to prevent
20596         setting a non-register to UNDEFINED right before the call to
20597         set_lattice_value.
20598
20599 2004-07-29  Kaz Kojima  <kkojima@gcc.gnu.org>
20600
20601         * config/sh/lib1funcs.asm: Make aliases movstr* for movmem*.
20602
20603 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
20604
20605         * tree-ssa.c (verify_flow_sensitive_alias_info): When
20606         comparing points-to sets of different pointers, make sure the
20607         second pointer is actually referenced in the code.
20608
20609 2004-07-29  Zack Weinberg  <zack@codesourcery.com>
20610
20611         * config/ia64/ia64.c (setjmp_operand): Delete, unused.
20612         (got_symbolic_operand): Remove unreachable code.
20613         * config/ia64/ia64.h (PREDICATE_CODES): Remove entry for
20614         setjmp_operand; add entry for tls_symbolic_operand.
20615         * config/ia64/ia64-protos.h: Remove all prototypes of
20616         predicate functions.
20617
20618 2004-07-29  Mark Mitchell  <mark@codesourcery.com>
20619
20620         * c-common.h (lang_post_pch_load): New variable.
20621         * c-pch.c (lang_post_pch_load): Define it.
20622         (c_common_read_pch): Use it.
20623         * cgraphunit.c (record_call_1): Give the front end a chance to
20624         record additional needed entities when a variable is marked as
20625         needed.
20626         * tlink.c (recompile_files): Robustify.
20627         (scan_linker_output): If a symbol is assigned to a file,
20628         but after recompilation is not present there, issue an error
20629         message.
20630
20631 2004-07-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
20632
20633         * tree-ssa-loop-im.c (force_move_till_expr, force_move_till):
20634         Take orig_loop argument and pass it to set_level.
20635         (schedule_sm): Pass the correct orig_loop to force_move_till.
20636
20637 2004-07-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
20638
20639         * cfgloop.c (update_latch_info): Update dominator of the new block.
20640         (canonicalize_loop_headers, flow_loops_find): Do not free dominance
20641         info.
20642         * dominance.c (verify_dominators): Check that the dominance tree is
20643         connected.
20644         (recount_dominator): Ignore unreachable blocks.
20645         (iterate_fix_dominators): Cleanup old dominance information before
20646         recomputing it.
20647
20648 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
20649
20650         * tree-ssa-operands.c (get_expr_operands): Revert changes
20651         to ADDR_EXPR processing introduced by:
20652             2004-06-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20653             * tree-ssa-operands.c (get_expr_operands): Minor rearrangements.
20654
20655 2004-07-29  Joseph S. Myers  <jsm@polyomino.org.uk>
20656
20657         * doc/implement-c.texi: Add C90 subclause references.  Point to
20658         preprocessor documentation instead of duplicating it.  Add points
20659         only present in C90.  Fill in documentation for all points.
20660
20661 2004-07-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20662
20663         * pa.c (output_movb): Correct typo.
20664
20665 2004-07-29  Pat Haugen  <pthaugen@us.ibm.com>
20666
20667         * ra.h (single_reg_in_regclass): Declare.
20668         * ra.c (single_reg_in_regclass): Define.
20669         (first_hard_reg): New.
20670         (init_ra): Initialize single_reg_in_regclass.
20671         * ra-colorize.c (ok_class): New.
20672         (coalesce, aggressive_coalesce, extended_coalesce_2): Use it.
20673
20674 2004-07-29  Nathan Sidwell  <nathan@codesourcery.com>
20675
20676         * gcov-io.h: Allow zero tag as EOF indicator.
20677         (gcov_is_eof): Remove.
20678         (gcov_truncate): Remove.
20679         * gcov-io.c (gcov_seek): Always SEEK_SET.
20680         * libgcov.c (gcov_exit): Don't use gcov_truncate.  Write explicit
20681         EOF tag.
20682         * coverage.c (read_counts_file): Don't use gcov_is_eof.
20683         * gcov-dump.c (dump_file): Likewise.
20684         * gcov.c (read_graph_file, read_count_file): Likewise.
20685
20686         * c-decl.c (complete_array_type): Don't gratuitously copy
20687         maxindex.  Check it always has a type.
20688
20689 2004-07-29  Steven Bosscher  <stevenb@suse.de>
20690
20691         * rtl.c (currently_expanding_to_rtl): New.
20692         * rtl.h (currently_expanding_to_rtl): Export it.
20693         * cfgexpand.c (tree_cfg_expand): Set/clear it at entry/exit.
20694
20695         * config/alpha/alpha.c (alpha_expand_mov): Remove old RTL
20696         inliner hack.
20697         * config/sh/sh.c: Replace rtx_equal_function_value_matters
20698         with currently_expanding_to_rtl.
20699         * config/sh/sh.md: Likewise.
20700         * config/ia64/ia64.c (got_symbolic_operand): Likewise.
20701
20702 2004-07-29  Alexandre Oliva  <aoliva@redhat.com>
20703
20704         Introduce sh2a support.
20705         2004-07-29  Alexandre Oliva  <aoliva@redhat.com>
20706         * config.gcc: Build multilibs for sh2a and sh2a-single by
20707         default.
20708         * config/sh/sh.h (SUPPORT_SH2A, SUPPORT_SH2A_SINGLE): Define by
20709         default.  Split their tests out of the corresponding SH4
20710         multilibs.
20711         * config/sh/t-sh (MULTILIB_MATCHES): Don't ever use SH4 or SH4a
20712         multilibs for SH2a.
20713         2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
20714         * config.gcc: Handle sh2a multilibs and cpu selection.
20715         * config/sh/sh.h: Likewise.  Handle sh2a command line flags.
20716         * config/sh/t-mlib-sh2a: New.
20717         * config/sh/t-mlib-sh2a-nofpu: New.
20718         * config/sh/t-mlib-sh2a-single: New.
20719         * config/sh/t-mlib-sh2a-single-only: New.
20720         2004-07-09  Nick Clifton  <nickc@redhat.com>
20721         Issue 43400
20722         * config/sh/sh.h (DRIVER_SELF_SPECS): Issue an error message if
20723         -ml and -m2a are used together.
20724         2004-03-23  DJ Delorie  <dj@redhat.com>
20725         * config/sh/sh.c (sh_builtin_saveregs): Use the double code only
20726         when we have a double-sized FPU.
20727         2004-02-24  Corinna Vinschen <vinschen@redhat.com>
20728         * config/sh/lib1funcs.asm (set_fpscr): Don't build if __SH2A_NOFPU__
20729         is set.
20730         * config/sh/elf.h (SUBTARGET_ASM_ISA_SPEC): Add cases for -msh2a-nofpu,
20731         -msh2a-single and -msh2a-single-only
20732         2004-02-24  Corinna Vinschen <vinschen@redhat.com>
20733         * config/sh/crt1.asm: Don't generate FPU instructions if __SH2A_NOFPU__
20734         is set.
20735         2004-02-20  DJ Delorie  <dj@delorie.com>
20736         * config/sh/sh.md (movsf_i, movsf_ie, movsf, ble, bge): Disable for sh2a-nofpu.
20737         2004-02-20  Fred Fish <fnf@redhat.com>,
20738         Corinna Vinschen <vinschen@redhat.com>
20739         * config/sh/t-sh (MULTILIB_OPTIONS): Add 2a-nofpu.
20740         (MULTILIB_EXCEPTIONS): Don't build littel-endian on sh2a.
20741         2004-02-18  DJ Delorie  <dj@redhat.com>
20742         * config/sh/sh.c (broken_move): Add support for movi20.
20743         * config/sh/sh.h: Likewise.
20744         (SHIFT_COUNT_TRUNCATED): Set for sh2a.
20745         * config/sh/sh.md (udivsi3_sh2a): New.
20746         (udivsi3): Call it.
20747         (divsi3_sh2a): New.
20748         (divsi3): Call it.
20749         (mul_r): New.
20750         (ashlsi3_sh2a): New.
20751         (ashrsi3_sh2a): New.
20752         (lshrsi3_sh2a): New.
20753         (movsi_i): Disable for sh2a.
20754         (movsi_ie): Add movi20.
20755         (movsf_i, movsf_ie, movsf, ble, untyped_call): Explicitly enable
20756         sh2a, for -m2a-nofpu mode.
20757         2004-02-13  DJ Delorie  <dj@redhat.com>
20758         * config/sh/lib1funcs.asm: Handle double vs single better.
20759         * config/sh/sh.h: Likewise.
20760         2004-02-09  DJ Delorie  <dj@redhat.com>
20761         * config/sh/crt1.asm: Add support for sh2a.
20762         * config/sh/elf.h: Likewise.
20763         * config/sh/lib1funcs.asm: Likewise.
20764         * config/sh/sh.c: Likewise.
20765         * config/sh/sh.md: Likewise.
20766         * config/sh/sh.h: Likewise.
20767         * config/sh/t-sh: Likewise.
20768
20769 2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
20770
20771         * config/frv/frv.md (movqi_internal, movhi_internal,
20772         movsi_internal): Add backup alternatives for memory inputs.
20773
20774 2004-07-28  Matt Austern  <austern@apple.com>
20775
20776         * config/darwin.c (darwin_one_byte_bool): New global variable.
20777         * config/darwin.h (darwin_one_byte_bool): Declare.
20778         (SUBTARGET_OPTIONS): Define macro.  (for -mone-byte-bool flag.)
20779         * config/rs6000/darwin.h (BOOL_TYPE_SIZE): Conditionalize on
20780         value of darwin_one_byte_bool.
20781         * doc/invoke.texi: Document -mone-byte-bool flag.
20782
20783 2004-07-28  Eric Christopher  <echristo@redhat.com>
20784
20785         * c-common.c (c_common_unsafe_for_reeval): Delete.
20786         * c-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete use.
20787         * c-pretty-print.c (pp_c_expression): Delete UNSAVE_EXPR case.
20788         * calls.c (fix_unsafe_tree): Delete.
20789         (expand_call): Delete code which used above.
20790         * dojump.c (do_jump): Delete UNSAVE_EXPR case.
20791         * expr.c (expand_expr_real_1): Ditto.
20792         * fold-const.c (non_lvalue): Ditto.
20793         * langhooks-def.h (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
20794         (lhd_unsafe_for_reeval): Ditto.
20795         * langhooks.c (lhd_unsafe_for_reeval): Ditto.
20796         * langhooks.h (unsafe_for_reeval): Ditto.
20797         (unsave_expr_now): Adjust comment.
20798         * tree-inline.c (copy_body_r): Delete UNSAVE_EXPR bits.
20799         (estimate_num_insns_1): Ditto.
20800         * tree-pretty-print.c (dump_generic_node): Ditto.
20801         * tree.c (expr_align): Ditto.
20802         (unsave_expr): Delete.
20803         (unsafe_for_reeval): Ditto.
20804         * tree.h (unsafe_for_reeval, unsave_expr): Ditto.
20805         * tree.def (UNSAVE_EXPR): Delete.
20806         * objc/objc-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
20807
20808 2004-07-28  Zack Weinberg  <zack@codesourcery.com>
20809
20810         * tree.h (enum tls_model): Move ...
20811         * coretypes.h: ... here.
20812
20813 2004-07-28  Richard Sandiford <rsandifo@redhat.com>
20814
20815         * config/frv/frv.h (EPILOGUE_USES): New.  Use LR.
20816
20817 2004-07-28  Richard Sandiford  <rsandifo@redhat.com>
20818
20819         * cse.c (validate_canon_reg): New function, split out from...
20820         (canon_reg): ...here.  Use validate_canon_reg for both 'e' and 'E'.
20821
20822 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
20823
20824         * tree-ssa-alias.c (maybe_create_global_var): Don't just
20825         return if .GLOBAL_VAR has been created.
20826
20827 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
20828
20829         * tree-ssa.c (verify_flow_insensitive_alias_info): Process
20830         every variable that may have aliases, not just tags.
20831
20832 2004-07-28  Aldy Hernandez  <aldyh@redhat.com>
20833
20834         * config/rs6000/rs6000.md ("move_from_CR_gt_bit"): Rename to
20835         move_from_CR_eq_bit.
20836         Rename UNSPEC_MV_CR_GT to UNSPEC_MV_CR_EQ.
20837
20838
20839         * config/rs6000/spe.md ("e500_flip_gt_bit"): Rename to
20840         e500_flip_eq_bit.
20841
20842         * config/rs6000/rs6000-protos.h: Rename output_e500_flip_gt_bit to
20843         output_e500_flip_eq_bit.
20844
20845         * config/rs6000/rs6000.c (output_e500_flip_gt_bit): Rename to
20846         output_e500_flip_eq_bit.
20847         (rs6000_emit_sCOND): Rename call to output_e500_flip_gt_bit to
20848         output_e500_flip_eq_bit.
20849         Rename gen_move_from_CR_gt_bit to gen_move_from_CR_eq_bit.
20850         (print_operand): case D.  Get to EQ bit.
20851
20852 2004-07-28  Richard Sandiford  <rsandifo@redhat.com>
20853
20854         * gcov.c (function_summary): Add missing \n.
20855
20856 2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
20857
20858         Introduce sh4a support.
20859         * config.gcc: Handle sh4a multilibs and cpu selection.
20860         * config/sh/sh.h: Likewise.  Handle sh4a command line flags.
20861         * config/sh/t-mlib-sh4a: New.
20862         * config/sh/t-mlib-sh4al: New.
20863         * config/sh/t-mlib-sh4a-nofpu: New.
20864         * config/sh/t-mlib-sh4a-single: New.
20865         * config/sh/t-mlib-sh4a-single-only: New.
20866         2004-02-20  DJ Delorie  <dj@redhat.com>
20867         * config/sh/sh.md ("movua"): Change constraint from "m" to "Sua".
20868         * config/sh/sh.h (EXTRA_CONSTRAINT_S): Add "Sua" support.
20869         2003-08-22  Eric Christopher  <echristo@redhat.com>
20870         * config/sh/sh4a.md: Update for chip errata.
20871         2003-08-07  Eric Christopher  <echristo@redhat.com>
20872         * config/sh/sh4a.md: New file. sh4a processor description.
20873         2003-07-08  Alexandre Oliva  <aoliva@redhat.com>
20874         * config/sh/sh.h (TARGET_SWITCHES): Added 4al.  Adjust description
20875         of -m4a-nofpu.
20876         (SH_ASM_SPEC): Pass -dsp for -m4al, not -m4a-nofpu.
20877         * config/sh/t-sh (MULTILIB_MATCHES): Map -m4al to -m4a-nofpu.
20878         * doc/invoke.texi (SH Options): Document -m4al.
20879         2003-07-03  Alexandre Oliva  <aoliva@redhat.com>
20880         * config/sh/sh.c (expand_block_move): Remove commented-out code
20881         checked in by mistake.
20882         (sh_cannot_change_mode_class): Enable SUBREGs to be used to select
20883         single elements from SFmode vectors.
20884         * config/sh/sh.md (fsca): Use VEC_CONCAT to initialize the output
20885         register.
20886         (sinsf2, cossf2, sindf2, cosdf2): Don't emit CLOBBER.
20887         2003-07-01  Alexandre Oliva  <aoliva@redhat.com>
20888         * config/sh/sh.h (sh_fsca_sf2int, sh_fsca_df2int,
20889         sh_fsca_int2sf): Remove variable declarations.
20890         * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int,
20891         sh_fsca_int2sf): New functions.
20892         (sh_fsca_sf2int_rtx, sh_fsca_df2int_rtx,
20893         sh_fsca_int2sf_rtx): New static variables.
20894         * config/sh/sh-protos.h (sh_fsca_sf2int, sh_fsca_df2int,
20895         sh_fsca_int2sf): Declare.
20896         * config/sh/sh.md: Adjust.
20897         * doc/invoke.texi (SH Options): Document new options.
20898         * config/sh/lib1funcs.asm (ic_invalidate): Remove SH4a forward
20899         compatibility from SH4 code.
20900         2003-06-27  Alexandre Oliva  <aoliva@redhat.com>
20901         * config/sh/sh.c (expand_block_move): Don't emit POST_INC too
20902         early.
20903         (memory_movsrc_operand): Renamed to...
20904         (unaligned_load_operand): ... this.  Simplified.
20905         * config/sh/sh.h (PREDICATE_CODES): Adjust.
20906         * config/sh/sh.md (movua, extv, extzv): Likewise.  Change movua's
20907         input operand to SImode, and adjust the others.  Introduce
20908         post-increment by peephole.
20909         * config/sh/sh.c (expand_block_move): Give the target address the
20910         same mode as the temp reg.
20911         * config/sh/sh.c (expand_block_move): Use a temp reg for unaligned
20912         copying.
20913         2003-06-26  Alexandre Oliva  <aoliva@redhat.com>
20914         Introduce support for SH4a.
20915         * config/sh/lib1funcs.asm (ic_invalidate): Use icbi if
20916         __SH4A__.  Emit 4 4kb blocks and touch all of them otherwise.
20917         * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int,
20918         sh_fsca_int2sf): New.
20919         (sh_init_builtins): Initialize them.
20920         (print_operand): Support `d'.
20921         (expand_block_move): Use movua if src is misaligned.
20922         (memory_movsrc_operand): New.
20923         * config/sh/sh.h (TARGET_CPU_CPP_BUILTINS): Define __SH4A__
20924         and one of the SH4 macros.
20925         (SH4A_BIT, TARGET_SH4A_ARCH, TARGET_SH4A_FP,
20926         SELECT_SH4A_NOFPU, SELECT_SH4A_SINGLE_ONLY, SELECT_SH4A,
20927         SELECT_SH4A_SINGLE): New.
20928         (TARGET_NONE): Add SH4A_BIT.
20929         (TARGET_SWITCHES): Add 4a-single-only, 4a-single, 4a-nofpu and 4a.
20930         (SH_ASM_SPEC): Pass -dsp if -m4a-nofpu.
20931         (sh_fsca_sf2int, sh_fsca_df2int, sh_fsca_int2sf): Declare.
20932         (OVERRIDE_OPTIONS): Set cpu to CPU_SH4A when appropriate.
20933         (enum processor_type): Added PROCESSOR_SH4A.
20934         (PREDICATE_CODES): Add memory_movsrc_operand.
20935         * config/sh/sh.md: Removed unused variables.
20936         (attr cpu): Add sh4a.
20937         (attr type): Add movua, fsrra and fsca.
20938         (prefetch): New, for SH4.
20939         (ic_invalidate_line, ic_invalidate_line_sh4a): Use icbi.
20940         (toggle_sz): Set type to fp.
20941         (toggle_pr, rsqrtsf2, fsca, sinsf2, cossf2, sindf2, cosdf2): New.
20942         (movua, extv, extzv): New.
20943         * config/sh/t-sh: Add multilibs for 4a, 4a-nofpu, 4a-single
20944         and 4a-single-only.
20945
20946 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
20947
20948         * tree-optimize.c (init_tree_optimization_passes): Schedule
20949         pass_may_alias right after the program is renamed into SSA.
20950         * tree-pass.h (PROP_alias): Define.
20951         * tree-outof-ssa.c (pass_del_ssa): Require PROP_alias.
20952         * tree-sra.c (pass_sra): Likewise.
20953         * tree-ssa-ccp.c (pass_ccp): Likewise.
20954         * tree-ssa-copyrename.c (pass_rename_ssa_ccp): Likewise.
20955         * tree-ssa-dce.c (pass_dce): Likewise.
20956         * tree-ssa-dom.c (pass_dominator): Likewise.
20957         * tree-ssa-dse.c (pass_dse): Likewise.
20958         * tree-ssa-forwprop.c (pass_forwprop): Likewise.
20959         * tree-ssa-loop-ch.c (pass_ch): Likewise.
20960         * tree-ssa-phiopt.c (pass_phiopt): Likewise.
20961         * tree-ssa-pre.c (pass_pre): Likewise.
20962         * tree-tailcall.c (pass_tail_recursion): Likewise.
20963         * tree-ssa.c (pass_redundant_phi): Likewise.
20964         * tree-ssa-alias.c (aliases_computed_p): Remove.
20965         Update all users.
20966         (init_alias_info): Do not mark all type tags for renaming
20967         unconditionally.
20968         Clear may_aliases from every symbol.
20969         (setup_pointers_and_addressables): If a pointer has not been
20970         dereferenced and it had a type tag, clear it and mark the old
20971         tag for renaming.
20972
20973 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
20974
20975         PR tree-optimization/16705
20976         * tree-ssa-alias.c (create_global_var): Set DECL_EXTERNAL on
20977         .GLOBAL_VAR.
20978
20979 2004-07-27  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20980
20981         * expr.c (expand_expr_real_1, case PARM_DECL): Remove obsolete error
20982         check.
20983
20984         * gimplify.c (maybe_with_size_expr): If already have WITH_SIZE_EXPR,
20985         don't make another one.
20986
20987         PR optimization/15077
20988         * function.h (struct function): Add field saved_static_chain_decl.
20989         Fix comment for static_chain_decl.
20990         * tree-inline.c (save_body): Add new arg and handle static_chain_decl.
20991         * tree-inline.h (save_body): Add new arg.
20992         * tree-optimize.c (tree_rest_of_compilation): Handle saving
20993         static_chain_decl.
20994
20995 2004-07-27  Richard Henderson  <rth@redhat.com>
20996
20997         * gimplify.c (is_gimple_addr_expr_arg_or_indirect): Remove.
20998         (gimplify_modify_expr, gimplify_addr_expr, gimplify_expr): Use
20999         is_gimple_addressable.
21000         * tree-gimple.c (is_gimple_addressable): Rename from
21001         is_gimple_addr_expr_arg; accept INDIRECT_REF.
21002         (is_gimple_lvalue): Don't test INDIRECT_REF directly.
21003         * tree-gimple.h, tree-sra.c, tree-ssa-loop-im.c: Update for
21004         rename to is_gimple_addressable.
21005
21006 2004-07-28  Alan Modra  <amodra@bigpond.net.au>
21007
21008         * config/rs6000/rs6000.c (function_arg_padding): Pad SFmode upwards.
21009
21010 2004-07-27  Richard Henderson  <rth@redhat.com>
21011
21012         * function.c (assign_stack_local_1): Widen alignment to HOST_WIDE_INT
21013         before rounding.
21014
21015 2004-07-27  Zack Weinberg  <zack@codesourcery.com>
21016
21017         * libgcc2.c: Change all conditionals testing
21018         LIBGCC2_LONG_DOUBLE_TYPE_SIZE == 96 to == 80.
21019         * libgcc2.h: Likewise.
21020         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Set
21021         TYPE_PRECISION of float80_type to 80.
21022         * config/ia64/ia64.c (ia64_init_builtins): Set TYPE_PRECISION
21023         of fpreg_type and float80_type to 80.
21024         * config/i386/i386.h, config/ia64/ia64.h, config/m68k/m68k.h
21025         * config/m68k/netbsd-elf.h:
21026         Change LONG_DOUBLE_TYPE_SIZE and possibly LIBGCC2_LONG_DOUBLE_TYPE_SIZE
21027         to evaluate to 80 whenever they would formerly have evaluated to 96.
21028         * config/i386/sco5.h: Remove unnecessary redefinition of
21029         LONG_DOUBLE_TYPE_SIZE.
21030         * doc/rtl.texi: Clarify uses of XFmode and TFmode.
21031         * config/i386/i386-modes.def: Use FRACTIONAL_FLOAT_MODE for
21032         XFmode, with a bitsize of 80.  Update commentary.
21033         * config/ia64/ia64-modes.def: Likewise.
21034         * config/m68k/m68k-modes.def: Likewise.
21035
21036 2004-07-27  Steven Bosscher  <stevenb@suse.de>
21037
21038         * cfgexpand.c (tree_expand_cfg): Fix comment.
21039
21040         * calls.c (expand_call): Ignore rtx_equal_function_value_matters.
21041         * function.c (purge_single_hard_subreg_set, purge_hard_subreg_sets):
21042         Remove.
21043         (prepare_function_start): Don't set rtx_equal_function_value_matters.
21044         * integrate.c (copy_rtx_and_substitute): Don't test for it.
21045         * passes.c (rest_of_compilation): Don't call purge_hard_subreg_sets.
21046         Don't set rtx_equal_function_value_matters.  Don't register RTL hooks
21047         here again.  Update leading comment.
21048         * rtl.c (rtx_equal_function_value_matters): Remove.
21049         (rtx_equal_p): Don't test for it.
21050         * simplify-rtx.c (simplify_binary_operation, simplify_subreg):
21051         Likewise.
21052
21053         * rtl.h (enum insn_note): Remove NOTE_INSN_LOOP_END_TOP_COND.
21054         * rtl.c (note_insn_name): Likewise.
21055         * emit-rtl.c (remove_unnecessary_notes): Don't handle it.
21056         * final.c (final_scan_insn): Likewise.
21057
21058         * except.c (finish_eh_generation): Don't call cfg_cleanup from here.
21059         * passes.c (rest_of_handle_eh): Do it here.
21060
21061         * stmt.c (struct nesting): Remove struct nesting block member.
21062         (struct stmt_status): Remove x_block_start_count field.
21063         (current_block_start_count): Remove.
21064
21065 2004-07-27  Brian Booth  <bbooth@redhat.com>
21066
21067         * tree-optimize.c (register_one_dump_file): Update condition that uses
21068         static_pass_number.
21069         (dup_pass_1): Replace with...
21070         (next_pass_1): This.
21071         (NEXT_PASS): Call next_pass_1.
21072         (DUP_PASS): Remove.
21073         (init_tree_optimization_passes): Remove uses of DUP_PASS.
21074         (execute_one_pass): Update condition that uses
21075         static_pass_number.
21076         * tree-pass.h (tree_opt_pass): Declare static_pass_number as a signed
21077         integer.
21078
21079 2004-07-27  Nick Clifton  <nickc@redhat.com>
21080
21081         * config/m32r/m32r.c: Include integrate.h in order to get the
21082         prototype for get_hard_reg_initial_val().
21083
21084         * config/m32r/m32r.md (m32rpipeline): Remove unused value "m32r"
21085         and tidy up indentation.
21086         (final_presence_set): Use absence_set instead, so that if there is
21087         nothing in the "o" pipe the "s" pipe can be scheduled.
21088
21089 2004-07-27  Diego Novillo  <dnovillo@redhat.com>
21090
21091         * tree-ssa-alias.c (create_name_tags): Ignore pointers that
21092         don't have PT_VARS nor PT_MALLOC set.
21093         Clear name tag from pointers that have not been dereferenced.
21094         (set_pt_anything, set_pt_malloc): Forward declare.
21095         * tree-ssa-copy.c (may_propagate_copy): Compare alias sets,
21096         not type compatibility when determining if a pointer can be
21097         copy propagated.
21098
21099 2004-07-27  Richard Sandiford  <rsandifo@redhat.com>
21100
21101         * expr.h (canonicalize_condition, get_condition): Add an int argument.
21102         * gcse.c (fis_get_condition): Reimplement using get_condition, leaving
21103         it to check whether the condition is still valid at the jump insn.
21104         * ifcvt.c (noce_get_condition): Likewise.
21105         (noce_get_alt_condition): Update call to canonicalize_condition.
21106         * loop-iv.c (simplify_using_initial_values): Update call to
21107         get_condition.  Remove FIXME.
21108         (check_simple_exit): Update call to get_condition.
21109         * loop-unswitch.c (may_unswitch_on): Likewise.
21110         * loop.c (check_dbra_loop): Likewise.
21111         (canonicalize_condition, get_condition): Add an argument to say whether
21112         the condition must still be valid at INSN.
21113         (get_condition_for_loop): Update call to get_condition.  Require that
21114         the condition be valid at INSN.
21115         * predict.c (estimate_probability): Update call to get_condition.
21116         Remove unused earliest parameter.
21117         (expected_value_to_br_prob): Update call to canonicalize_condition.
21118
21119 2004-07-26  Eric Christopher  <echristo@redhat.com>
21120
21121         * tree-dfa.c (add_referenced_var): Register initializers of global
21122         variables.
21123
21124 2004-07-26  Paolo Bonzini  <bonzini@gnu.org>
21125
21126         * config/i386/i386.c (function_arg): Always treat 8-
21127         and 16-byte wide vectors the same, even if MMX/SSE
21128         are disabled.
21129         (contains_128bit_aligned_vector_p): Add comment.
21130
21131 2004-07-26  J"orn Rennecke <joern.rennecke@superh.com>
21132
21133         * ra.h (enum node_type): Rename to:
21134         (enum ra_node_type).
21135         * ra-colorize.c: Likewise.
21136
21137 2004-07-26  Richard Sandiford  <rsandifo@redhat.com>
21138
21139         * cfgcleanup.c (try_simplify_condjump): Call update_forwarder_flag
21140         after simplifying the jump.
21141
21142 2004-06-26  Richard Henderson  <rth@redhat.com>
21143
21144         * calls.c (combine_pending_stack_adjustment_and_call): Make
21145         preferred_unit_stack_boundary argument unsigned.  Make
21146         unadjusted_alignment unsigned.
21147         (expand_call): Make preferred_stack_boundary and
21148         preferred_unit_stack_boundary variables unsigned.
21149         * function.c (assign_stack_local_1): Make alignment unsigned.
21150         * function.h (struct function): Make stack_alignment_needed,
21151         preferred_stack_boundary unsigned.
21152         * config/i386/i386.c (ix86_preferred_stack_boundary): Make unsigned.
21153         (ix86_compute_frame_layout): Make stack_alignment_needed,
21154         preferred_alignment variables unsigned.
21155         * config/i386/i386.h (ix86_preferred_stack_boundary): Make unsigned.
21156
21157 2004-07-26  Tom Tromey  <tromey@redhat.com>
21158
21159         * tree.h: Fix typo in comment.
21160
21161 2004-07-26  Daniel Jacobowitz  <dan@debian.org>
21162
21163         PR bootstrap/12804
21164         * ggc-zone.c (struct alloc_chunk): Remove attribute packed.
21165         (MAX_FREE_BIN_SIZE): Increase on 64-bit targets.
21166         (ggc_free): Remove incorrect freeing.
21167         (sweep_pages): Advance PP for large pages.  Fix indentation.
21168
21169 2004-07-26  Richard Sandiford  <rsandifo@redhat.com>
21170
21171         PR rtl-optimization/16643
21172         * cfglayout.h (cfg_layout_initialize): Add a flags parameter.
21173         * cfglayout.c (cfg_layout_initialize): Pass it to cleanup_cfg.
21174         * basic-block.h (reorder_basic_blocks): Add a flags parameter.
21175         * cfglayout.c (reorder_basic_blocks): Pass it to cfg_layout_initialize.
21176         (partition_hot_cold_basic_blocks): Pass 0 to cfg_layout_initialize.
21177         * function.c (thread_prologue_and_epilogue_insns): Likewise.
21178         * rtl.h (tracer): Add a flags parameter.
21179         * tracer.c (tracer): Pass it to cfg_layout_initialise.
21180         * passes.c (rest_of_handle_stack_regs): Pass 0 to reorder_basic_blocks.
21181         (rest_of_handle_reorder_blocks): Update calls to tracer and
21182         reorder_basic_blocks, passing CLEANUP_UPDATE_LIFE if appropriate.
21183         (rest_of_handle_tracer): Pass 0 to tracer.
21184         (rest_of_handle_loop2): Pass 0 to cfg_layout_initialize.
21185
21186 2004-07-25  David Edelsohn  <edelsohn@gnu.org>
21187
21188         PR target/16239
21189         * config/rs6000/rs6000.md (movdi_internal64): Further disparage
21190         f->f.
21191
21192 2004-07-24  Nathan Sidwell  <nathan@codesourcery.com>
21193
21194         * tree.h (BINFO_BASE_ACCESSES): Accesses are a VEC(tree).
21195         (BINFO_BASE_ACCESS): Adjust.
21196         (BINFO_BASE_ACCESS_APPEND): New.
21197         (struct tree_binfo): Make base_accesses a VEC(tree) pointer.
21198         * dbxout.c (dbxout_type): Adjust binfo access accessing.
21199         * dwarf2out.c (gen_member_die): Likewise.
21200         * tree-dump.c (deque_and_dump): Likewise.
21201
21202 2004-07-26  Falk Hueffner  <falk@debian.org>
21203
21204         * config/alpha/alpha.c (alpha_rtx_cost_data): Tweak int_div
21205         costs.
21206
21207 2004-07-25  Roger Sayle  <roger@eyesopen.com>
21208
21209         * config/i386/i386.c (output_fp_compare): Use ffreep to pop top
21210         value off of the stack if TARGET_USE_FFREEP.
21211
21212 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
21213
21214         * gengtype.c (oprintf): Replace xrealloc () with XRESIZEVEC ().
21215         * gengtype-yacc.y: Likewise.  Replace free() with XDELETE ().
21216         * c-typeck.c (PUSH_SPELLING): Remove redundant NULL-pointer
21217         check on invocation of XRESIZEVEC ().
21218
21219 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
21220
21221         * c-common.c (disable_builtin_function): Rename variable n to
21222         new_disabled_builtin.
21223         * c-decl.c (duplicate_decls): Rename parameter decl to new_decl.
21224         Rename local variable old to old_decl.
21225         * gensupport.c (shift_output_template): Rename parameter old to src.
21226         * simplify-rtx.c (simplify_replace_rtx): Rename parameter oldx to
21227         old_rtx and newx to new_rtx.
21228
21229 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
21230
21231         * Makefile.in (C_PRAGMA_H): New variable to track dependencies
21232         of c-pragma.h.
21233         * c-pragma.h (c_lex, c_lex_with_flags): Change returntype to
21234         enum cpp_ttype.
21235         * c-lex.c: Likewise.
21236
21237 2004-07-25  Roger Sayle  <roger@eyesopen.com>
21238
21239         * fold-const.c (constant_boolean_node): Make extern.
21240         (make_range): Wrap long lines.
21241         (fold_cond_expr_with_comparison): Remove unnecessary call to
21242         pedantic_non_lvalue.  Add missing calls to fold_convert.
21243         (fold_truthop): Add missing calls to fold_convert.
21244         (fold): Likewise.
21245         * tree.h (constant_boolean_node): Add prototype here.
21246         * builtins.c (expand_builtin_strncmp): Add missing calls to
21247         fold_convert.
21248         * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
21249         Call fold_convert and constant_boolean_node to correct types.
21250         * tree-ssa-forwprop.c (substitute_single_use_vars): Add
21251         missing call to fold_convert to correct types.
21252
21253 2004-07-26  Niall Douglas  <s_fsfeurope2@nedprod.com>
21254             Brian Ryner  <bryner@brianryner.com>
21255
21256         PR c++/9283
21257         PR c++/15000
21258         * c-common.c (c_common_attribute_table): Allow
21259         handle_visibility_attribute to be called for types.
21260         (handle_visibility_attribute) When given a type, set the visibility
21261         bits on the TYPE_NAME.  When given a decl, don't set no_add_attrs
21262         so that we can check later whether the attribute was present. Added
21263         warning if attribute applied to non class type.
21264         * c-decl.c (diagnose_mismatched_decls): Updated rules for merging
21265         decls and checking that they are consistent.
21266         * common.opt: Added -fvisibility.
21267         * c.opt, c-opts.c: Added -fvisibility-inlines-hidden.
21268         * c-pragma.h, c-pragma.c: Added handle_pragma_visibility().
21269         * flags.h, tree.h: Added assorted support defines for overall patch
21270         * opts.c: Added parsing support for -fvisibility.
21271         * tree.c (build_decl): Set visibility for all decls to be whatever
21272         is in force at that time.
21273         * varasm.c (default_binds_local_p_1): Reworked logic determining
21274         when to make a symbol locally bound.
21275         * doc/invoke.texi: Added documentation for -fvisibility and
21276         -fvisibility-inlines-hidden.
21277
21278 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
21279
21280         * basic-block.h (reorder_block_def): Rename to reorder_block_def_p.
21281         * c-common.c: Add missing casts from void * to other types.
21282         * c-decl.c: Likewise.
21283         * c-format.c: Likewise.
21284         * c-lex.c: Likewise.
21285         * c-pragma.c: Likewise.
21286         * c-typeck.c: Likewise.
21287         * defaults.h: Likewise.
21288         * genconstants.c: Likewise.
21289         * gengtype-lex.l: Likewise.
21290         * genmodes.c: Likewise.
21291         * read-rtl.c: Likewise.
21292         * rtl.c: Likewise.
21293
21294 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
21295
21296         * bitmap.c: Use type-safe memory allocation macros from libiberty.
21297         * c-common.c: Likewise.
21298         * c-decl.c: Likewise.
21299         * c-lang.c: Likewise.
21300         * c-lex.c: Likewise.
21301         * c-opts.c: Likewise.
21302         * c-parse.in: Likewise.
21303         * c-typeck.c: Likewise.
21304         * genconditions.c: Likewise.
21305         * gengtype-lex.l: Likewise.
21306         * gengtype-yacc.y: Likewise.
21307         * gengtype.c: Likewise.
21308         * genmodes.c: Likewise.
21309         * gensupport.c: Likewise.
21310         * read-rtl.c: Likewise.
21311         * read-rtl.c (read_constants): Use INSERT instead of TRUE in call to
21312         htab_find_slot().
21313
21314 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
21315
21316         * c-decl.c (groktypename, groktypename_in_param_context): Rename
21317         variable typename to type_name.
21318         * c-lex.c (interpret_float): Likewise.
21319
21320 2004-07-25  Roger Sayle  <roger@eyesopen.com>
21321
21322         * convert.c (convert_to_real, convert_to_integer,
21323         convert_to_complex): Replace calls to build with calls to buildN.
21324         * coverage.c (tree_coverage_counter_ref): Likewise.
21325         * dojump.c (do_jump): Likewise.
21326         * dwarf2out.c (loc_descriptor_from_tree): Likewise.
21327         * emit-rtl.c (component_ref_for_mem_expr,
21328         set_mem_attributes_minus_bitpos): Likewise.
21329         * explow.c (update_nonlocal_goto_save_area): Likewise.
21330         * expmed.c (expand_shift, make_tree, const_mult_add_overflow_p,
21331         expand_mult_add): Likewise.
21332         * expr.c (emit_block_move_via_libcall, clear_storage_via_libcall,
21333         store_constructor, get_inner_reference, expand_expr_real_1,
21334         try_casesi, try_tablejump): Likewise.
21335         * function.c (expand_function_start): Likewise.
21336         * stmt.c (emit_case_bit_tests, expand_end_case_type,
21337         node_has_low_bound, node_has_high_bound, emit_case_nodes): Likewise.
21338         * stor-layout.c (place_union_field, layout_type): Likewise.
21339         * tree.c (substitute_in_expr, tree_fold_gcd): Likewise.
21340         * varasm.c (copy_constant): Likewise.
21341
21342 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
21343
21344         * c-common.c: Rename all identifiers named `new'.
21345         * c-decl.c: Likewise.
21346         * gensupport.c: Likewise.
21347         * simplify-rtx.c: Likewise.
21348         * c-common.c (disable_builtin_function): Replace a call to xmalloc()
21349         with XNEW().
21350         * gensupport.c (alter_output_for_insn): Replace two calls to xmalloc()
21351         with XNEWVEC().
21352
21353 2004-07-25  Joseph S. Myers  <jsm@polyomino.org.uk>
21354
21355         PR c/15360
21356         * c-decl.c (start_decl): Do not set DECL_EXTERNAL for initialized
21357         declarations until after calling pushdecl.
21358         (grokdeclarator): Set DECL_EXTERNAL for variables based on use of
21359         "extern" and not on whether the declaration is initialized.
21360
21361 2004-07-25  Daniel Jacobowitz  <dan@debian.org>
21362
21363         * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*)
21364         (sparc-*-solaris2*): Include sol2.o and sol2-protos.h.
21365         * config/sol2-c.c: Include "tm.h", "tm_p.h", "toplev.h",
21366         "cpplib.h", "c-pragma.h", "c-common.h".
21367         (solaris_pragma_align, solaris_pragma_init, solaris_pragma_fini)
21368         (solaris_register_pragmas): New functions.
21369         * config/sol2-protos.h: New file.
21370         * config/sol2.c: New file.
21371         * config/sol2.h (SOLARIS_ATTRIBUTE_TABLE, ASM_DECLARE_FUNCTION_SIZE)
21372         (REGISTER_TARGET_PRAGMAS): New macros.
21373         (solaris_pending_aligns, solaris_pending_inits)
21374         (solaris_pending_finis): New variables.
21375         * config/t-sol2 (sol2-c.o): Update dependencies.
21376         (sol2.o): New rule.
21377         * config/i386/i386.c (TARGET_INSERT_ATTRIBUTES): Define in terms of
21378         SUBTARGET_INSERT_ATTRIBUTES.
21379         (ix86_attribute_table): Include SUBTARGET_ATTRIBUTE_TABLE.
21380         * config/i386/sol2.h (SUBTARGET_INSERT_ATTRIBUTES)
21381         (SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define.
21382         * config/sparc/elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine.
21383         * config/sparc/sp64-elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine.
21384         * config/sparc/sol2.h (SUBTARGET_INSERT_ATTRIBUTES)
21385         (SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define.
21386         * config/sparc/sparc.c (sparc_attribute_table): New.
21387         (TARGET_INSERT_ATTRIBUTES): Define in terms of
21388         SUBTARGET_INSERT_ATTRIBUTES.
21389         (TARGET_ATTRIBUTE_TABLE): Define if SUBTARGET_ATTRIBUTE_TABLE
21390         is defined.
21391         * doc/extend.texi (Solaris Pragmas): New section.
21392
21393 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
21394
21395         * c-common.c: Rename all identifiers named `class' to `cl'.
21396         * c-common.h: Likewise.
21397         * c-parse.in: Likewise.
21398         * c-typeck.c: Likewise.
21399         * genmodes.c: Likewise.
21400         * real.c: Likewise.
21401         * real.h: Likewise.
21402         * recog.c: Likewise.
21403         * recog.h: Likewise.
21404         * regrename.c: Likewise.
21405         * tree.h: Likewise.
21406         * c-common.c (builtin_function_2): Change type of 5th parameter from
21407         int to enum built_in_function. Change type of 8th parameter from int
21408         to bool.
21409         * c-decl (builtin_function): Replace call to ggc_alloc_cleared ()
21410         with GGC_CNEW().
21411         * c-typeck.c (convert_arguments): Change type of formal_prec from
21412         int to unsigned int.
21413         * genmodes.c (blank_mode): Make a few negative constants unsigned.
21414         (complete_all_modes, calc_wider_mode, emit_insn_modes_h,
21415         emit_mode_name, emit_mode_class, emit_mode_precision, emit_mode_size,
21416         emit_mode_nunits, emit_mode_wider, emit_mode_mask, emit_mode_inner,
21417         emit_mode_base_align, emit_class_narrowest_mode): Pass an integer
21418         iterator to for_all_modes () instead of an enum because enums can't
21419         be incremented in C++.
21420
21421
21422 2004-07-25  Daniel Jacobowitz  <dan@debian.org>
21423
21424         * regmove.c (optimize_reg_copy_1): Don't try to replace call-used
21425         hard registers.
21426
21427 2004-07-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21428
21429         * tree-ssa-operands.c (get_stmt_operands, get_expr_operands):
21430         Handle ARRAY_RANGE_REF like ARRAY_REF.
21431
21432 2004-07-25  Joseph S. Myers  <jsm@polyomino.org.uk>
21433
21434         * c-typeck.c (digest_init): Don't allow arrays of signed or
21435         unsigned variants of wchar_t to be initialized by wide string
21436         constants.  Do allow arrays of enumerated types compatible with
21437         wchar_t to be initialized by wide string constants.  Refine tests
21438         distinguishing wide and narrow strings and arrays.  Give specific
21439         error for arrays of other integer types initialized by string
21440         constants.
21441         (output_init_element, process_init_element): Check for
21442         INTEGRAL_TYPE_P rather than just for INTEGER_TYPE when
21443         initializing with string constants.
21444
21445 2004-07-25  Richard Henderson  <rth@redhat.com>
21446
21447         * c-decl.c (start_function): Set DECL_ARTIFICIAL and DECL_IGNORED_P
21448         on the RESULT_DECL.
21449         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
21450         * integrate.c (copy_decl_for_inlining): Copy DECL_ARTIFICIAL and
21451         DECL_IGNORED_P to new decl.
21452
21453 2004-07-24  Zack Weinberg  <zack@codesourcery.com>
21454
21455         * config/ia64/ia64.c (general_xfmode_operand)
21456         (destination_xfmode_operand): Delete.
21457         * config/ia64/ia64.h (PREDICATE_CODES): Remove them.
21458         * config/ia64/ia64.md (*movxf_internal): Use general_operand
21459         and destination_operand.
21460
21461 2004-07-24  Alexander Kabaev  <kan@freebsd.org>
21462
21463         * config/ia64/ia64.h (SUBTARGET_EXTRA_SPECS): Default to nothing.
21464         (EXTRA_SPECS): Use SUBTARGET_EXTRA_SPECS.
21465
21466 2004-07-24  Alexander Kabaev  <kan@freebsd.org>
21467             Zack Weinberg  <zack@codesourcery.com
21468
21469         PR 16684
21470         * c-decl.c (diagnose_mismatched_decls): Don't issue a
21471         redundant-declaration warning the first time a builtin is
21472         declared explicitly.
21473
21474 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
21475
21476         * tree.h (staticp): Change return type to bool.
21477
21478 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
21479
21480         * c-common.c (c_staticp): Last episode of the staticp saga.
21481
21482 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
21483
21484         * c-common.h (c_staticp): Change return type from int to bool.
21485         * tree.c (staticp): Likewise.
21486         * langhooks.h (staticp): Likewise.
21487
21488 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
21489
21490         * langhooks-def.h (lhd_staticp): Change return type from int to
21491         bool in prototype to match definition.
21492
21493 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
21494
21495         * system.h (bool, true, false): Don't redefine as preprocessor macros
21496         in C++.
21497
21498 2004-07-24  Roger Sayle  <roger@eyesopen.com>
21499
21500         * expmed.c (init_expmed): A signed modulus by a power of two is
21501         considered cheap if its less than or equal to four instructions.
21502
21503 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
21504
21505         * ggc.h (GGC_NEW, GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR,
21506         GGC_CNEWVAR): New macros.
21507
21508 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
21509
21510         * c-common.c: Convert ATTRIBUTE_UNUSED to ARG_UNUSED in parameter
21511         lists.
21512         * c-decl.c: Likewise.
21513         * c-format.c: Likewise.
21514         * c-lex.c: Likewise.
21515         * c-opts.c: Likewise.
21516         * c-pragma.c: Likewise.
21517         * c-typeck.c: Likewise.
21518         * gencheck.c: Likewise.
21519         * genconditions.c: Likewise.
21520         * genconfig.c: Likewise.
21521         * genflags.c: Likewise.
21522         * gengtype.c: Likewise.
21523         * gensupport.c: Likewise.
21524         * ggc-none.c: Likewise.
21525         * langhooks.c: Likewise.
21526         * statistics.h: Likewise.
21527         * stub-objc.c: Likewise.
21528         * java/decl.c: Likewise.
21529
21530 2004-07-24  Roman Zippel  <zippel@linux-m68k.org>
21531
21532         * config/m68k/m68k.c (output_scc_di): Fix coding style.
21533         (symbolic_operand): Fix prototype.
21534         * config/m68k/m68k.h (PREDICATE_CODES): Add symbolic_operand.
21535         * config/m68k/m68k.md: Add constants for registers a0 and sp and
21536         use them, change from the "{...}" syntax to the simpler {...}
21537         syntax.
21538         (*cfv4_extendqisi2): Fix destination predicate.
21539         * config/m68k/m68k-protos.h: Remove various declarations also
21540         generated via PREDICATE_CODES.
21541
21542 2004-07-23  Mike Stump  <mrs@apple.com>
21543
21544         * c-typeck.c (convert_for_assignment): Tightened up pointer
21545         converstions that differ in signedness.
21546
21547 2004-07-23  Zack Weinberg  <zack@codesourcery.com>
21548
21549         * genmodes.c (make_vector_modes): Mark with ATTRIBUTE_UNUSED.
21550
21551 2004-07-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21552
21553         * tree.def (VIEW_CONVERT_EXPR): Change to class 'r'.
21554         * tree-ssa-operands.c (get_expr_operands, case VIEW_CONVERT_EXPR): New.
21555
21556         * gimplify.c (gimplify_compound_lval): Check for no handled
21557         operations, rather than checking for explicit list of nodes.
21558         (is_gimple_addr_expr_arg_or_indirect): New function.
21559         (gimplify_addr_expr): Call it and handle INDIRECT_REF; remove
21560         redundant setting of TREE_INVARIANT.
21561         (gimplify_expr, case VIEW_CONVERT_EXPR): Call gimplify_compound_lval.
21562         * tree-gimple.c (is_gimple_addr_expr_arg): Call handled_component_p.
21563
21564 2004-07-23  Diego Novillo  <dnovillo@redhat.com>
21565
21566         PR tree-optimization/16688
21567         PR tree-optimization/16689
21568         * tree-ssa-alias.c (setup_pointers_and_addressables): Remove
21569         unnecessary initialization of 'tag'.
21570         (get_tmt_for): Check that the new type tag has the same alias
21571         set as the pointed-to type.
21572         (group_aliases): Only regular variables need to be removed
21573         from the alias set of a name tag.
21574         * tree-ssa-copy.c (may_propagate_copy): Do not allow copy
21575         propagation if the two types are not compatible.
21576         (merge_alias_info): Rename from replace_ssa_names_ann.
21577         Add more checking.
21578         (replace_exp_1): If both arguments are SSA_NAMEs, check that
21579         the propagation can be done.
21580         Only call merge_alias_info on pointers.
21581         (propagate_value): Likewise.
21582         * tree-ssa-copyrename.c: Include langhooks.h.
21583         (copy_rename_partition_coalesce): Call replace_ssa_name_symbol
21584         to do the merging.
21585         Do not coalesce variables with incompatible types.
21586         (rename_ssa_copies): Call replace_ssa_name_symbol.
21587         * tree-ssa.c (verify_ssa_name): Verify that the SSA_NAME has
21588         the same type as the underlying _DECL.
21589         * tree-ssanames.c (replace_ssa_name_symbol): New function.
21590         * tree.h (replace_ssa_name_symbol): Declare.
21591
21592 2004-07-23  Richard Henderson  <rth@redhat.com>
21593
21594         PR c++/16277
21595         * gimplify.c (gimplify_cond_expr): Gimplify TARGET to a min_lval;
21596         unshare it properly.
21597         (gimplify_modify_expr_rhs): Push assignment from a conditional into
21598         the conditional for all non-register types.
21599
21600 2004-07-23  Richard Henderson  <rth@redhat.com>
21601
21602         * expr.c (expand_expr_real_1): Don't handle non-local variables.
21603         * expr.h (fix_lexical_addr): Remove.
21604         * function.c (NEED_SEPARATE_AP): Remove.
21605         (fix_lexical_addr): Remove.
21606         * tree-alias-common.c (get_alias_var_decl): Check TREE_STATIC,
21607         not null decl_function_context.
21608         (create_alias_vars): Likewise.
21609         * tree-cfg.c (make_ctrl_stmt_edges): Don't check for non-local labels.
21610         (simple_goto_p): Likewise.
21611         * tree-dfa.c (add_referenced_var): Don't check for non-local variables.
21612         * tree-ssa-ccp.c (get_default_value): Likewise.
21613         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
21614         * tree.c (needs_to_live_in_memory): Likewise.
21615         * tree-flow-inline.h (may_be_aliased): Move...
21616         * tree-ssa-alias.c (may_be_aliased): ... here.  Enhance check for
21617         when TREE_STATIC variables may be addressable.
21618
21619 2004-07-24  Jakub Jelinek  <jakub@redhat.com>
21620
21621         * Makefile.in (site.exp): Add HOSTCC and HOSTCFLAGS to site.exp.
21622
21623 2004-07-23  Zack Weinberg  <zack@codesourcery.com>
21624
21625         * print-rtl.c (print_rtx <case 'b'>): Don't attempt to print
21626         bitmap contents if GENERATOR_FILE is defined.
21627         * Makefile.in (BUILD_RTL): Remove $(BUILD_PREFIX)bitmap.o.
21628         ($(BUILD_PREFIX_1)bitmap.o): Delete rule.
21629
21630 2004-07-23  Joseph S. Myers  <jsm@polyomino.org.uk>
21631
21632         * c-decl.c (start_function): Form composite type of function types
21633         rather than copying type from previous prototype declaration.
21634
21635 2004-07-23  Janis Johnson  <janis187@us.ibm.com>
21636
21637         * config/rs6000/altivec.h (vec_lvewx, vec_lvehx, vec_lvwbx): Remove
21638         the const qualifier for the second argument in the C++ functions.
21639
21640         * config/rs6000/altivec.h (vec_stvewx, vec_stvehx, vec_stvebx): Use
21641         specific pointer types.
21642
21643         * config/rs6000/altivec.h (vec_vadduwm): (vec_vadduwm, vec_vadduhm,
21644         vec_vaddubm, vec_vsubuwm, vec_vsubuhm, vec_vsububm): Fix types used
21645         for vector bool and/or vector pixel, add C++ and C missing support.
21646         (vec_vaddsws, vec_vaddshs, vec_vaddsbs, vec_vmaxsw, vec_vmaxsh,
21647         vec_vmaxsb, vec_vmrghw, vec_vmrghh, vec_vmrghb, vec_vmrglw, vec_vmrglh,
21648         vec_vmrglb, vec_vminsw, vec_vminsh, vec_vminsb, vec_vpkuwum,
21649         vec_vpkuhum, vec_vspltw, vec_vsplth, vec_vspltb, vec_vsubsws,
21650         vec_vsubshs, vec_vsubsbs, vec_vupklsh, vec_vupkhsh, vec_vupklsb): Add
21651         missing C++ and C support for vector bool and/or vector pixel.
21652         (vec_vadduws, vec_vadduhs, vec_vaddubs, vec_vcmpeqfp, vec_vcmpequw,
21653         vec_vcmpequh, vec_vcmpequb, vec_vcmpgtfp, vec_vcmpgtsw, vec_vcmpgtuw,
21654         vec_vcmpgtsh, vec_vcmpgtuh, vec_vcmpgtsb, vec_vcmpgtub, vec_vmaxuw,
21655         vec_vmaxuh, vec_vmaxub, vec_vminuw, vec_vminuh, vec_vminub,
21656         vec_vsubuws, vec_vsubuhs, vec_vsububs, vec_vupkhpx, vec_vupklpx): Fix
21657         C++ and C types used for vector bool and/or vector pixel.
21658         (vec_st, vec_stl): Add C++ support for vector pixel.
21659         (vec_unpackh, vec_unpackl, vec_any_ge): Fix C++ support for vector bool.
21660         (vec_all_ne): Add C++ support for vector pixel.
21661
21662         * config/rs6000/altivec.h (vec_vcmpgtsh): Fix C++ function name.
21663         (vec_vmulesb): Add missing C++ function.
21664         (vec_perm): Fix type of third argument in C++ function.
21665         (vec_vsum4shs): Fix C++ function name.
21666         (vec_any_ge): Remove C++ functions for unsupported arg combinations.
21667         (vec_vcmpgtsw, vec_vcmpgtuw, vec_minsb, vec_vmsummbm): Fix the
21668         argument passed to the error handler in C macro.
21669         (vec_nmsub): Remove extra parens around argument names in C macro.
21670         (vec_packpx): Add missing parens in C macro.
21671
21672 2004-07-22  Paolo Bonzini  <bonzini@gnu.org>
21673
21674         * machmode.def: Remove vector modes.
21675         * config/alpha/alpha-modes.def: Add supported vector modes.
21676         * config/arm/arm-modes.def: Likewise.
21677         * config/frv/frv-modes.def: Likewise.
21678         * config/i386/i386-modes.def: Likewise.
21679         * config/rs6000/rs6000-modes.def: Likewise.
21680         * config/sh/sh-modes.def: Likewise.
21681
21682 2004-07-23  Matthias Klose  <doko@debian.org>
21683
21684         * intl.c (gcc_init_libintl): Use PACKAGE for the text domain.
21685         * configure.ac: Add AC_DEFINE_UNQUOTED for PACKAGE.
21686         * config.h: Regenerate.
21687         * configure: Likewise.
21688
21689 2004-07-22  Mark Mitchell  <mark@codesourcery.com>
21690
21691         * dwarf2out.c (output_call_frame_info): Set SYMBOL_FLAG_LOCAL on
21692         generated SYMBOL_REFs for labels.
21693         * config/darwin-protos.h (machopic_validate_stub_or_non_lazy_ptr):
21694         Change prototype.
21695         (machopic_stub_name): Remove.
21696         (machopic_indirection_name): New function.
21697         (machopic_mcount_stub_name): Likewise.
21698         (machopic_classify_name): Remove.
21699         (machopic_function_base_sym): New function.
21700         (machpoic_classify_symbol): Likewise.
21701         (machopic_classify_ident): Remove.
21702         (machopic_define_ident): Likewise.
21703         (machopic_define_name): Likewise.
21704         (machopic_name_defined_p): Likewise.
21705         (machopic_ident_defined_p): Likewise.
21706         (darwin_strip_name_encoding): Likewise.
21707         (machopic_define_symbol): New function.
21708         * config/darwin.c (hashtab.h): Include.
21709         (machopic_defined_list): Remove.
21710         (machopic_classify_ident): Likewise.
21711         (machopic_classify_name): Likewise.
21712         (machopic_ident_defined_p): Likewise.
21713         (machopic_define_ident): Likewise.
21714         (machopic_define_name): Likewise.
21715         (machopic_symbol_defined_p): New function.
21716         (machopic_classify_symbol): Likewise.
21717         (machopic_data_defined_p): Use machopic_classify_symbol.
21718         (machopic_define_symbol): New function.
21719         (machopic_function_base_sym): New function.
21720         (machopic_non_lazy_pointers): Remove.
21721         (machopic_non_lazy_ptr_name): Likewise.
21722         (machopic_stubs): Likewise.
21723         (machopic_stub_name): Likewise.
21724         (NON_LAZY_POINTER_SUFFIX): New macro.
21725         (STUB_SUFFIX): Likewise.
21726         (machopic_indirection): New structure.
21727         (machopic_indirections): New variable.
21728         (machopic_indirection_hash): New function.
21729         (machopic_indirection_eq): Likewise.
21730         (machopic_indirection_name): Likewise.
21731         (machopic_mcount_stub_name): New function.
21732         (machopic_validate_stub_or_non_lazy_pointer): Reimplement to use
21733         hash table.
21734         (machopic_indirect_data_reference): Rework to use new functions.
21735         (machopic_indirect_call_target): Likewise.
21736         (machopic_legitimize_pic_address): Likewise.
21737         (machopic_output_indirection): New function.
21738         (machopic_finish): Use it.
21739         (machopic_operand_p): Rework to use new functions.
21740         (darwin_encode_seciton_info): Use SYMBOL_REF_FLAGS.
21741         (darwin_strip_name_encoding): Remove.
21742         (update_non_lazy_ptrs): Remove.
21743         (update_stubs): Likewise.
21744         (darwin_non_lazy_pcrel): Use new functions.
21745         * config/darwin.h (ASM_DECLARE_OBJECT_NAME): Likewise.
21746         (ASM_OUTPUT_LABELREF): Likewise.
21747         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
21748         (MACHO_SYMBOL_FLAG_VARIABLE): New macro.
21749         (MACHO_SYMBOL_FLAG_DEFINED): Likewise.
21750         (TARGET_STRIP_NAME_ENCODING): Do not use
21751         darwin_strip_name_encoding.
21752         (GEN_LAZY_PTR_NAME_FOR_SYMBOL): Do not use
21753         darwin_strip_name_encoding.
21754         * config/i386/darwin.h (FUNCTION_PROFILER): Use
21755         machopic_mcount_stub_name.
21756         * config/i386/i386.c (x86_output_mi_thunk): Use
21757         machopic_indirection_name, not machopic_stub_name.
21758         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Use
21759         machopic_function_base_sym.
21760         (print_operand): Use machopic_classify_symbol.
21761         (rs6000_emit_prologue): Use machopic_function_base_sym.
21762         (output_profile_hook): Do not use machopic_stub_name.
21763         (macho_branch_isalnds): Do not use darwin_strip_name_encoding.
21764
21765 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
21766
21767         PR c/7284
21768         * fold-const.c (extract_muldiv_1): Do not treat signed left shift
21769         as multiplication.
21770
21771 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
21772
21773         * doc/implement-c.texi: New file.
21774         * doc/extend.texi (C Implementation): Move to there.
21775         * doc/gcc.texi: Include implement-c.texi.
21776         * Makefile.in (TEXI_GCC_FILES): Add implement-c.texi.
21777
21778 2004-07-22  Jason Merrill  <jason@redhat.com>
21779
21780         * integrate.c (copy_decl_for_inlining): Remove invisible reference
21781         handling.
21782         * tree-inline.c (setup_one_parameter): Likewise.
21783
21784 2004-07-22  Brian Booth  <bbooth@redhat.com>
21785
21786         * tree-ssa-ccp.c (latticevalue): Add UNKNOWN_VAL.
21787         (substitute_and_fold): Propigate into VUSE operands when possible.
21788         (visit_phi_node): Handle UNKNOWN_VAL latticevalue.
21789         (cp_lattice_meet): Handle merging of latticevalues when
21790         UNKNOWN_VAL is present.
21791         (visit_stmt): Visit assignments with V_MUST_DEFs.
21792         (visit_assignment): Gather ccp information for V_MUST_DEF operands.
21793         (ccp_fold): Deal with RHS' that are constant and virtual.
21794         (evaluate_stmt): Handle UNKNOWN_VAL likely values.
21795         (dump_lattice_value): Dump UNKNOWN_VAL latticevalues.
21796         (initialize): Mark statements with V_MUST_DEFs as VARYING only if the
21797         V_MUST_DEF operand is VARYING. Fix comment and include VOPS when
21798         computing immediate uses.
21799         (set_lattice_value): Disallow a UNKNOWN_VAL->UNDEFINED state
21800         transition.
21801         (replace_vuse_in): New function.
21802         (likely_value): Add check of vuse operands.
21803         (get_default_value): Set the default value of virtually defined
21804         variables to UKNOWN_VAL instead of VARYING.
21805
21806 2004-07-22  Richard Henderson  <rth@redhat.com>
21807
21808         * expr.c (emit_push_insn): Don't use set_mem_attributes.
21809
21810 2004-07-22  Richard Henderson  <rth@redhat.com>
21811
21812         * tree-ssa-live.c (create_ssa_var_map): Avoid defined-but-not-used
21813         variables due to conditional compilation.
21814
21815 2004-07-22  Diego Novillo  <dnovillo@redhat.com>
21816
21817         * tree-into-ssa.c (set_livein_block): Fix typo in comment.
21818         (rewrite_ssa_into_ssa): Start iterating over SSA names at 1.
21819         Release SSA names that have been re-renamed.
21820         * tree-phinodes.c (make_phi_node): Set same TREE_TYPE as the
21821         variable.
21822         * tree-ssa-alias.c (init_alias_info): If aliases have been
21823         computed before, clear existing alias information.
21824         (create_name_tags): Do no fixup PT_ANYTHING pointers.
21825         If the new name tag for a pointer is different than the one it
21826         had before, mark the old tag for renaming.
21827         (replace_may_alias): New function.
21828         (group_aliases): Call it.
21829         (setup_pointers_and_addressables): Always call get_tmt_for.
21830         (maybe_create_global_var): Don't create .GLOBAL_VAR more than
21831         once.
21832         (set_pt_anything): New local function.
21833         (set_pt_malloc): New local function.
21834         (merge_pointed_to_info): Don't merge pointed-to variables from
21835         the original pointer if the destination is pointing to an
21836         unknown location.
21837         (add_pointed_to_expr): Call set_pt_anything and set_pt_malloc.
21838         (add_pointed_to_var): Do not add a variable to the points-to
21839         set if the pointer is already pointing to anywhere.
21840         (collect_points_to_info_r): If the defining statement is a PHI
21841         node, only merge pointed-to information if the argument has
21842         already been visited.
21843         (get_tmt_for): Only create a new tag if the pointer didn't
21844         have one already.
21845         (dump_alias_info): Emit more information.
21846         (dump_points_to_info_for): Likewise.
21847         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't
21848         try to get the annotation of an SSA_NAME.
21849         * tree-ssa-operands.c (add_stmt_operand): Only check for empty
21850         alias sets when checking is enabled.
21851         * tree-ssa-pre.c (need_eh_cleanup): New local variable.
21852         (eliminate): Mark basic blocks that will need
21853         EH information cleaned up.
21854         (init_pre): Split ENTRY_BLOCK->0 if block 0 has more than one
21855         predecessor.
21856         Initialize need_eh_cleanup.
21857         (fini_pre): Call tree_purge_all_dead_eh_edges and
21858         cleanup_tree_cfg if needed.
21859         Free need_eh_cleanup.
21860         * tree-ssa.c (verify_ssa_name): New function.
21861         (verify_def): Call it.
21862         Re-arrange to avoid printing too many error messages.
21863         (verify_use): Likewise.
21864         (verify_phi_args): Likewise.
21865         (verify_flow_insensitive_alias_info): New function.
21866         (verify_flow_sensitive_alias_info): New function.
21867         (verify_alias_info): New function.
21868         (verify_ssa): Call verify_alias_info.
21869         Clear TREE_VISITED on all the SSA_NAMEs before scanning the
21870         program.
21871         Re-arrange to avoid printing too many error messages.
21872         * tree-ssanames.c (make_ssa_name): Clear
21873         SSA_NAME_IN_FREE_LIST.
21874         (release_ssa_name): Never release a default definition.
21875         (release_defs): New function.
21876         * tree.h: Declare it.
21877         * tree-ssa-dce.c (remove_dead_stmt): Call it.
21878
21879 2004-07-22  Diego Novillo  <dnovillo@redhat.com>
21880
21881         * tree-ssa.c (walk_use_def_chains_1): Add new argument IS_DFS.
21882         If true, do a depth-first search.  Do a breadht-first search,
21883         otherwise.
21884         (walk_use_def_chains): Add new argument IS_DFS.
21885         Update all users.
21886         * tree-flow.h (walk_use_def_chains): Update prototype.
21887
21888 2004-07-22  Hans-Peter Nilsson  <hp@axis.com>
21889
21890         * config/cris/cris.md: Tweak formatting.
21891         (asrandb, asrandw, lsrandb, lsrandw, moversideqi, movemsideqi)
21892         (mover2side, moverside, movemside, movei, op3, andu): Replace
21893         live define_peephole:s with define_peephole2 near-equivalents.
21894         Delete the rest.
21895         ("*mov_sidesisf_biap"): Rename from "*mov_sidesi_biap".  Match all
21896         word-size modes.
21897         ("*mov_sidesisf", "*mov_sidesisf_biap_mem", "*mov_sidesisf_mem"):
21898         Similar for "*mov_sidesi", "*mov_sidesi_biap_mem" and
21899         "*mov_sidesi_mem" respectively.
21900
21901 2004-07-22  Paolo Bonzini  <bonzini@gnu.org>
21902
21903         * tree-cfg.c (gimplify_val): Move from tree-complex.c.
21904         (gimplify_build1): Move from tree-complex.c do_unop.
21905         (gimplify_build2): Move from tree-complex.c do_binop.
21906         (gimplify_build3): New.
21907         * tree-complex.c (gimplify_val, do_unop, do_binop): Remove.
21908         Adjust throughout to call the functions above.
21909         * tree-flow.h: Declare the functions above.
21910         * tree-nested.c (gimplify_val): Rename to...
21911         (tsi_gimplify_val): ... this.
21912
21913         * Makefile.in (tree_complex.o): Update dependencies.
21914         (stor-layout.o): Depend on regs.h.
21915         * c-common.c (handle_vector_size_attribute): Update for
21916         vector types without corresponding vector modes.
21917         * expr.c (expand_expr): Treat VECTOR_CST's like CONSTRUCTORS if
21918         a corresponding vector mode is not available.
21919         * print-tree.c (print_node): Print nunits for vector types
21920         * regclass.c (have_regs_of_mode): New.
21921         (init_reg_sets_1): Initialize it and use it instead
21922         of allocatable_regs_of_mode.
21923         * regs.h (have_regs_of_mode): Declare it.
21924         * stor-layout.c (layout_type): Pick a mode for vector types.
21925         * tree-complex.c (build_word_mode_vector_type, tree_vec_extract,
21926         build_replicated_const, do_unop, do_binop, do_plus_minus,
21927         do_negate, expand_vector_piecewise, expand_vector_parallel,
21928         expand_vector_addition, expand_vector_operations_1,
21929         expand_vector_operations, tree_lower_operations,
21930         pass_lower_vector_ssa, pass_pre_expand): New.
21931         (expand_complex_operations, pass_lower_complex): Remove.
21932         * tree-optimize.c (init_tree_optimization_passes): Adjust
21933         pass ordering for changes in tree-complex.c.
21934         * tree-pass.h: Declare new passes.
21935         * tree.c (finish_vector_type): Remove.
21936         (make_vector_type): New.
21937         (build_vector_type_for_mode, build_vector_type): Rewritten.
21938         * tree.def (VECTOR_TYPE): Document where the number of
21939         subparts is stored.
21940         * tree.h (TYPE_VECTOR_SUBPARTS): Use TYPE_PRECISION field.
21941         (make_vector): Remove declaration.
21942
21943 2004-07-21  Richard Henderson  <rth@redhat.com>
21944
21945         * gimple-low.c (expand_var_p): Don't look at TREE_ADDRESSABLE,
21946         TREE_THIS_VOLATILE, may_aliases, or optimization level.
21947         (remove_useless_vars): Dump debugging info.
21948         (expand_used_vars): Move ...
21949         * cfgexpand.c (expand_used_vars): ... here.  Make static.
21950         * tree-flow-inline.h (set_is_used): New.
21951         (set_default_def): Use get_var_ann.
21952         * tree-flow.h: Update decls.
21953         * tree-ssa-live.c (mark_all_vars_used_1, mark_all_vars_used): New.
21954         (create_ssa_var_map): Use it.
21955         * tree-ssa.c (set_is_used): Remove.
21956
21957 2004-07-22  Ben Elliston  <bje@au.ibm.com>
21958
21959         * gdbinit.in: Set a breakpoint on internal_error.
21960
21961 2004-07-21  Richard Henderson  <rth@redhat.com>
21962
21963         * cfgexpand.c (expand_gimple_tailcall): Fix case where we need
21964         to create a new basic block.
21965
21966 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
21967
21968         PR c/15052
21969         * c-decl.c (grokdeclarator): Only pedwarn for qualified void
21970         return type on function definitions.  Move other warnings for
21971         qualified return type to -Wreturn-type.  Do not condition any such
21972         warnings on -pedantic.  Update comments.
21973         (start_function): Only copy function type from previous prototype
21974         declaration if return types are compatible.
21975         * c-typeck.c (function_types_compatible_p): Don't condition
21976         warning for incompatibility of volatile qualifiers on the return
21977         type on -pedantic.  Update comment.
21978         * doc/invoke.texi (-Wreturn-type, -Wextra): Update.
21979
21980 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
21981
21982         * c-typeck.c (set_init_index): Require designator to be of integer
21983         type.
21984
21985 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
21986
21987         PR c/11250
21988         * c-parse.in (init): Change to exprtype.
21989         (primary): Set original_code for STRING to STRING_CST.
21990         Call maybe_warn_string_init for compound literals.
21991         (initdcl, notype_initdcl): Call maybe_warn_string_init.
21992         (initval): Update.
21993         * c-tree.h (maybe_warn_string_init): New.
21994         (pop_init_level, process_init_element): Use struct c_expr.
21995         (struct c_expr): Update comment.
21996         * c-typeck.c (maybe_warn_string_init): New function.
21997         (digest_init): Call it.  Additional parameter strict_string.  All
21998         callers changed.
21999         (output_init_element): Likewise.
22000         (struct constructor_stack): Use struct c_expr for
22001         replacement_value.
22002         (really_start_incremental_init, push_init_level): Update.
22003         (pop_init_level): Update.  Return struct c_expr.
22004         (process_init_level): Update.  Take struct c_expr argument.
22005
22006 2004-07-21  David S. Miller  <davem@nuts.davemloft.net>
22007
22008         * config/sparc/sparc.c (sparc_rtx_costs): Fix typo in previous
22009         commit.
22010
22011 2004-07-21  Eric Christopher  <echristo@redhat.com>
22012
22013         * builtins.c (expand_builtin_setjmp_receiver): Fix comment for code
22014         removal.
22015         * c-decl.c (pop_scope): Ditto.
22016         * calls.c (expand_call): Remove call to current_nesting_level,
22017         update comment accordingly. Remove calls to expand_start_target_temps
22018         and expand_end_target_temps.
22019         * cfgexpand.c (construct_init_block): Remove call to
22020         expand_start_bindings_and_block.
22021         (construct_exit_block): Remove call to expand_end_bindings.
22022         * expr.c (safe_from_p): Remove BIND_EXPR handling.
22023         (expand_expr_real_1): Ditto. Fix formatting.
22024         (expand_vars): Delete.
22025         * stmt.c (POPSTACK): Remove block_stack.
22026         (stmt_status): Remove x_block_stack.
22027         (block_stack): Delete.
22028         (expand_start_bindings_and_block): Ditto.
22029         (expand_start_target_temps): Ditto.
22030         (expand_end_target_temps): Ditto.
22031         (current_nesting_level): Ditto.
22032         (warn_about_unused_variables): Ditto.
22033         (expand_end_bindings): Ditto.
22034         * tree.h: Remove declarations for above.
22035
22036 2004-07-21  Steven Bosscher  <stevenb@suse.de>
22037
22038         * rtl.h (insn_note): Remove NOTE_INSN_PREDICTION.
22039         * rtl.c (note_insn_name): Likewise.
22040         * print-rtl.c (print_rtx): Don't print it.
22041         * cfgrtl.h (can_delete_note_p): Don't handle it.
22042         (rtl_delete_block): Likewise.
22043         * passes.c (rest_of_handle_guess_branch_prob): Remove.
22044         (rest_of_compilation): Don't call it.
22045         * predict.c (process_note_predictions, process_note_prediction,
22046         note_prediction_to_br_prob): Remove.
22047         * basic-block.c (note_prediction_to_br_prob): Remove prototype.
22048         * stmt.c (return_prediction): Remove.
22049         (expand_value_return): Don't call it.  Don't add prediction
22050         notes for return statements.
22051
22052 2004-07-21  Josef Zlomek  <zlomekj@suse.cz>
22053
22054         * var-tracking.c (vt_find_locations): Set the in_pending bitmap at
22055         once.
22056
22057 2004-07-21  Paolo Bonzini  <bonzini@gnu.org>
22058
22059         * c-common.c (vector_types_convertible_p): Use vector types'
22060         TYPE_SIZE and TREE_TYPE instead of their mode.
22061         * convert.c (convert_to_integer): Likewise.
22062         (convert_to_vector): Likewise.
22063         * fold-const.c (fold_convert): Likewise.
22064         * varasm.c (output_constant): Likewise.
22065         * expr.c (store_constructor): Split ARRAY_TYPE and VECTOR_TYPE.
22066         Allow a VECTOR_TYPE initializer to be made of several vectors.
22067         For ARRAY_TYPEs and VECTOR_TYPES, simplify a bit the handling
22068         of cleared and need_to_clear, and use fold_convert.
22069         * c-typeck.c (build_binary_op): Do not use RDIV_EXPR for
22070         integer vectors.
22071
22072 2004-07-20  Richard Henderson  <rth@redhat.com>
22073
22074         * cfgexpand.c (expand_gimple_cond_expr, expand_gimple_tailcall): Split,
22075         (expand_gimple_basic_block): out from here.  Renamed from expand_block.
22076
22077 2004-07-20  David S. Miller  <davem@nuts.davemloft.net>
22078
22079         * config/sparc/sparc.c (sparc_rtx_costs case MULT): Emit
22080         enormous cost if not TARGET_HARD_MUL.
22081
22082 2004-07-20  Andrew Pinski  <apinski@apple.com>
22083
22084         PR target/16557
22085         * config/i386/darwin.h (CC1_SPEC): Move the -g SPECs from ...
22086         (ASM_SPEC): here.
22087
22088 2004-07-21  Paul brook  <paul@codesourcery.com>
22089
22090         * config/arm/arm.c (thumb_expand_prologue): Remove bogus GEN_INT.
22091
22092 2004-07-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22093
22094         * fold-const.c (operand_equal_p): Temporarily support NULL args.
22095         (operand_equal_p, case ARRAY_REF): Compare args 2 and 3.
22096         (operand_equal_p, case COMPONENT_REF): Likewise, for arg 2.
22097
22098 2004-07-20  Zack Weinberg  <zack@codesourcery.com>
22099
22100         * rtl.h (plus_constant): Delete.
22101         (plus_constant_wide): Rename to plus_constant.
22102         (plus_constant_for_output_wide): Delete vestigial prototype.
22103         (GEN_INT): Remove unnecessary cast.
22104         * tree.h (build_int_2, size_int_type): Delete.
22105         (build_int_2_wide): Rename to build_int_2.
22106         (size_int_wide): Rename to size_int_kind.
22107         (size_int_type_wide): Rename to size_int_type.
22108         (size_int, ssize_int, bitsize_int, sbitsize_int): Use size_int_kind.
22109         Remove unnecessary cast.
22110         * tree.c (build_int_2_wide): Rename build_int_2; update comment.
22111         * explow.c (plus_constant_wide): Rename plus_constant; update comment.
22112         * fold-const.c (size_int_wide): Rename size_int_kind. Use size_int_type.
22113         (size_int_type_wide): Rename size_int_type.
22114         (int_const_binop): Use size_int_type.
22115         * c-lex.c (interpret_integer): Use build_int_2.
22116         * final.c (split_double): Remove unnecessary casts.
22117         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Use build_int_2.
22118
22119 2004-07-20  Richard Henderson  <rth@redhat.com>
22120
22121         * gimplify.c (is_gimple_tmp_var): Move to tree-gimple.c.
22122         (gimplify_compound_lval): Use is_gimple_tmp_reg.
22123         * tree-gimple.c (is_gimple_tmp_var): Move from gimplify.c.
22124         (is_gimple_tmp_reg): New.
22125         * tree-gimple.h (is_gimple_tmp_reg): Declare.
22126
22127 2004-07-20  Richard Henderson  <rth@redhat.com>
22128
22129         * tree-pretty-print.c (dump_generic_node): Dump
22130         CALL_EXPR_HAS_RETURN_SLOT_ADDR.
22131
22132 2004-07-20  Frank Ch. Eigler  <fche@redhat.com>
22133
22134         * tree-mudflap.c (mf_set_options_fndecl): New tree.
22135         (mudflap_init): Set it.
22136         (mudflap_register_call): Remove __mf_init call.
22137         (mudflap_finish_file): Emit call to __mf_init here.  Emit a call to
22138         to pass "-ignore-reads" option to libmudflap if needed.
22139
22140 2004-07-20  John David Anglin  <dava.anglin@nrc-cnrc.gc.ca>
22141
22142         PR c++/14607
22143         * config/pa/pa-hpux10.h (SUPPORTS_ONE_ONLY): Define.
22144         (MAKE_DECL_ONE_ONLY): Undefine.
22145         * pa-protos.h (som_text_section_asm_op, one_only_readonly_data_section,
22146         readonly_data, one_only_data_section, forget_section): New prototypes.
22147         * pa.c (pa_init_machine_status, som_text_section_asm_op): New
22148         functions.
22149         (pa_select_section): Add one-only (COMDAT) support.
22150         * pa.h (struct machine_function): Define.
22151         * som.h (ASM_OUTPUT_FUNCTION_PREFIX): Delete.
22152         (TEXT_SECTION_ASM_OP): Call som_text_section_asm_op.
22153         (DEFAULT_TEXT_SECTION_ASM_OP, NEW_TEXT_SECTION_ASM_OP,
22154         ONE_ONLY_TEXT_SECTION_ASM_OP, ONE_ONLY_READONLY_DATA_SECTION_ASM_OP,
22155         ONE_ONLY_DATA_SECTION_ASM_OP): New defines.
22156         (EXTRA_SECTIONS): Add in_one_only_readonly_data and in_one_only_data.
22157         (EXTRA_SECTION_FUNCTIONS): Rework to use individual function macros.
22158         (READONLY_DATA_FUNCTION, ONE_ONLY_READONLY_DATA_SECTION_FUNCTION,
22159         ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION): New defines
22160         for EXTRA_SECTION_FUNCTIONS.
22161         * doc/install.texi: Update binutils requirements.
22162
22163 2004-07-20  Nathan Sidwell  <nathan@codesourcery.com>
22164
22165         * vec.h (VEC_T_length, VEC_T_index, VEC_T_iterate, VEC_T_truncate,
22166         VEC_T_replace, VEC_T_quick_insert, VEC_T_safe_insert,
22167         VEC_T_ordered_remove, VEC_T_unordered_remove): Use unsigned, not
22168         size_t.
22169         (struct VEC): Use unsigned for num and alloc.
22170         * vec.c (struct vec_prefix): Likewise.
22171         (vec_o_reserve): Adjust.
22172
22173         * dbxout.c (dbxout_type): Fix printf format.
22174
22175         * tree.h (binfo_member): Remove.
22176         * tree.c (binfo_member): Remove.
22177
22178 2004-07-20  Nathan Sidwell  <nathan@codesourcery.com>
22179
22180         * tree.h: Include vec.h
22181         (DEF_VEC_P(tree)): New type.
22182         (BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): Adjust.
22183         (BINFO_BASE_APPEND, BINFO_BASE_ITERATE): New.
22184         (BINFO_LANG_SLOT): Remove.
22185         (BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, BINFO_PRIMARY_BASE_OF): New.
22186         (struct tree_binfo): Turn base_binfos into a trailing
22187         VEC(tree). Add vtt_subvtt, vtt_vptr, primary fields.
22188         (binfo_lang_slots): Remove.
22189         * tree.c (binfo_lang_slots): Remove.
22190         (make_tree_binfo_stat): Take a base binfo count, not a
22191         lang slot count.  Adjust.
22192         * Makefile.in (TREE_H): Add vec.h
22193         * alias.c (record_component_aliases): Adjust BINFO access.
22194         * dbxout.c (dbxout_type): Likewise.
22195         * dwarf2out.c (gen_member_die): Likewise.
22196         * sdbout.c (sdbout_one_type): Likewise.
22197         * tree-dump.c (deque_and_dump): Likewise.
22198         * config/i386/i386.c (classify_argument,
22199         contains_128bit_aligned_vector_p): Likewise.
22200         * config/sh/symbian.c (symbian_export_vtable_and_rtti_p): Likewise.
22201         * doc/c-tree.texi (Classes): Update BINFO documentation.
22202
22203 2004-07-20  Steven Bosscher  <stevenb@suse.de>
22204
22205         * c-common.h (check_case_value): Remove prototype.
22206         (c_add_case_label): Adjust prototype.
22207         * c-common.c (check_case_value): Make static.
22208         (check_case_bounds): New function.
22209         (c_add_case_label): Use it.  Take new argument orig_type.
22210         * c-typeck.c (struct c_switch): New orig_type field.
22211         (c_start_case): Set it.
22212         (do_case): Pass it to c_add_case_label.
22213         * expr.c (expand_expr_real_1): Don't warn for out-of-bounds
22214         cases from here.  Add the labels in reverse order.
22215         * stmt.c (struct case_node): Adjust comment.  Remove balance field.
22216         (add_case_node): Return nothing, don't check for duplicate cases.
22217         Insert new case nodes in a list, not in an AVL tree.
22218         (expand_end_case_type): Don't turn a case tree into a case list.
22219         (case_tree2list): Remove.
22220         * tree.h (add_case_node): Adjust prototype.
22221
22222 2004-07-19  Paolo Bonzini  <bonzini@gnu.org>
22223
22224         * genattr.c (struct range, struct function_unit,
22225         write_units, extend_range, init_range): Remove them.
22226         (main): Remove code dealing with DEFINE_FUNCTION_UNIT.
22227         Output "#define INSN_SCHEDULING" here.
22228         * genattrtab.c (struct range, struct function_unit_op,
22229         struct function_unit, struct dimension, enum operator,
22230         operate_exp, expand_units, simplify_knowing,
22231         encode_units_mask, simplify_by_exploding,
22232         find_and_mark_used_attributes, unmark_used_attributes,
22233         add_values_to_cover, increment_current_value,
22234         test_for_current_value, simplify_with_current_value,
22235         simplify_with_current_value_aux, gen_unit,
22236         write_unit_name, write_function_unit_info,
22237         write_complex_function, write_toplevel_expr,
22238         find_single_value, extend_range): Remove.
22239         (write_attr_get): Do not handle common_av->value
22240         being an FFS.
22241         (struct attr_desc): Remove func_units_p and blockage_p.
22242         (write_attr_valueq): Do not handle them.
22243         (find_attr): Do not clear them.
22244         (make_internal_attr): Do not initialize them.
22245         (main): Remove code dealing with DEFINE_FUNCTION_UNIT.
22246         * sched-vis.c (init_target_units, insn_print_units,
22247         init_block_visualization, print_block_visualization,
22248         visualize_scheduled_insns, visualize_no_unit,
22249         visualize_stall_cycles, visualize_alloc,
22250         visualize_free, target_units, get_visual_tbl_length,
22251         MAX_VISUAL_LINES, INSN_LEN, n_visual_lines,
22252         visual_tbl_line_length, visual_tbl, n_vis_no_unit,
22253         MAX_VISUAL_NO_UNIT, vis_no_unit): Remove.
22254         * haifa-sched.c (blockage_range, clear_units,
22255         schedule_unit, actual_hazard, potential_hazard,
22256         insn_unit, unit_last_insn, unit_tick,
22257         actual_hazard_this_instance, potential_hazard,
22258         schedule_unit, max_insn_queue_index_value): Remove.
22259         (MAX_INSN_QUEUE_INDEX): Removed, renamed throughout to
22260         max_insn_queue_index.
22261         * rtl.def (DEFINE_FUNCTION_UNIT): Remove.
22262         * doc/md.texi (Processor pipeline description): Remove
22263         references to old pipeline descriptions.
22264         (Automaton pipeline description): Merge with the above.
22265         (Old pipeline description, Comparison of the two descriptions):
22266         Remove.
22267
22268         * bt-load.c (migrate_btr_def): Remove references to
22269         use_pipeline_interface.
22270         * haifa-sched.c (insn_cost, schedule_insn,
22271         schedule_block, advance_one_cycle, sched_init,
22272         queue_to_ready, sched_finish): Likewise.
22273         * modulo-sched.c (sms_schedule, advance_one_cycle,
22274         ps_has_conflicts): Likewise.
22275         * sched-rgn.c (init_ready): Likewise.
22276         (debug_dependencies): Likewise, and remove an "if (1)".
22277         * target.h (use_dfa_pipeline_interface): Remove.
22278         * config/alpha/alpha.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
22279         * config/arc/arc.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
22280         * config/arm/arm.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
22281         * config/c4x/c4x.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
22282         * config/frv/frv.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
22283         * config/i386/i386.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
22284         * config/ia64/ia64.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
22285         * config/iq2000/iq2000.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
22286         * config/m32r/m32r.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
22287         * config/mcore/mcore.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
22288         * config/mips/mips.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
22289         * config/pa/pa.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
22290         * config/rs6000/rs6000.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
22291         * config/s390/s390.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
22292         * config/sh/sh.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
22293         * config/sparc/sparc.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
22294         * config/v850/v850.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
22295         * config/xtensa/xtensa.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
22296         * doc/tm.texi (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
22297
22298 2004-07-19  Roger Sayle  <roger@eyesopen.com>
22299
22300         * rtlanal.c (reg_set_p): Add check for regs_invalidated_by_call.
22301
22302 2004-07-19  Jeff Law  <law@redhat.com>
22303
22304         * tree-ssa-dom.c (single_incoming_edge_ignoring_loop_edges): New.
22305         (get_eq_expr_value): Use it.  Simplify slightly.
22306
22307 2004-07-19  Maciej W. Rozycki  <macro@linux-mips.org>
22308
22309         * config/mips/mips.md (mulsidi3_32bit_r4000): Fix the clobber list.
22310         (umulsidi3_32bit_r4000): Likewise.
22311
22312 2004-07-19  Nathan Sidwell  <nathan@codesourcery.com>
22313
22314         * vec.h: Propagate location information properly.
22315         (VEC_T_iterate): Add result pointer parameter.
22316         (VEC_T_space): New.
22317         (VEC_T_reserve): Use it.
22318
22319 2004-07-19  Daniel Jacobowitz  <dan@debian.org>
22320
22321         * Makefile.in (c-format.o): Depend on c-format.h.
22322         * c-format.h: New file.
22323         (struct format_char_info): Add CHAIN member.
22324         * c-format.c: Move some types and constants to c-format.h.
22325         (format_type_error): Set to -1.
22326         (struct function_format_info): Use an int for format_type.
22327         (decode_format_type): Return an int.  Return format_type_error
22328         on error.
22329         (print_char_table, asm_fprintf_char_table, gcc_diag_char_table)
22330         (gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table)
22331         (scan_char_table, time_char_table, monetary_char_table): Initialize
22332         CHAIN to NULL.
22333         (n_format_types): New variable.
22334         (check_format_info_main): Handle CHAIN in format_char_info.
22335         (handle_format_attribute): Handle TARGET_FORMAT_TYPES and
22336         TARGET_N_FORMAT_TYPES.
22337         * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*)
22338         (sparc-*-solaris2*): Include config/t-sol2 and config/sol2-c.c.
22339         * config/sol2-c.c: New file.
22340         * config/t-sol2: New file.
22341         * config/sol2.h (TARGET_N_FORMAT_TYPES, TARGET_FORMAT_TYPES): Define.
22342         * config/sparc/elf.h, config/sparc/sp64-elf.h: Undefine
22343         TARGET_N_FORMAT_TYPES and TARGET_FORMAT_TYPES.
22344
22345         * doc/extend.texi (Target Format Checks): New section.
22346         (Function Attributes): Mention it.
22347         * doc/invoke.texi: Mention target format checks.
22348         * doc/sourcebuild.texi: Mention target format checks.
22349         * dc/tm.texi (Misc): Document TARGET_N_FORMAT_TYPES and
22350         TARGET_FORMAT_TYPES.
22351
22352 2004-07-19  Andreas Krebbel  <krebbel1@de.ibm.com>
22353
22354         * config/s390/s390-protos.h (s390_return_address_offset): Prototype
22355         added.
22356         * config/s390/s390.c (regclass_map initializer): Register 35 added to
22357         ADDR_REGS.
22358         (load_multiple_operation, store_multiple_operation): Removed
22359         pointless sanity check.
22360         (s390_decompose_address): Added check for return_address_pointer_rtx.
22361         (s390_return_addr_rtx): Use return_address_pointer_rtx for count == 0.
22362         (s390_return_address_offset): New function.
22363         * config/s390/s390.h (FIRST_PSEUDO_REGISTER): Increased to 36.
22364         (FRAME_REGNO_P): Added check for register 35.
22365         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
22366         REG_ALLOC_ORDER): Appended entry for register 35.
22367         (REG_CLASS_CONTENTS): Adjusted class masks for register 35.
22368         (EH_RETURN_HANDLER_RTX): Use return_address_pointer_rtx.
22369         (RETURN_ADDRESS_POINTER_REGNUM): New macro.
22370         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): Return address pointer
22371         is eliminable using stack pointer or hard frame pointer.
22372         (REGISTER_NAMES): Added name for register 35.
22373         * config/s390/s390.md ("load_multiple", "store_multiple"): Removed
22374         pointless sanity check.
22375
22376 2004-07-19  Roger Sayle  <roger@eyesopen.com>
22377
22378         * fold-const.c (tree_expr_nonzero_p): Add function prototype.
22379         (fold) <EQ_EXPR>: Move tree_expr_nonzero_p optimization from
22380         fold_relational_const to here, i.e. "(x | 5) == 0" -> false.
22381         (fold) (UNEQ_EXPR>: Add optimizations for unordered comparisons
22382         of the form "x op x" where op is UNLE, UNGE, UNEQ or LTGT.
22383         (fold_relational_const): Tidy up handling of floating point
22384         comparisons by calling real_compare.  Remove tree_expr_nonzero_p
22385         transformation; fold_relational_const assumes constant operands.
22386
22387 2004-07-19  Gabriel Dos Reis  <gdr@integrable-solution.net>
22388
22389         * doc/sourcebuild.texi: Add libcpp, now that CPP has its own
22390         directory.
22391
22392 2004-07-19  Joseph S. Myers  <jsm@polyomino.org.uk>
22393
22394         * c-tree.h (struct c_expr): Define.
22395         (C_SET_EXP_ORIGINAL_CODE): Remove.
22396         (parser_build_binary_op, build_compound_expr): Update prototypes.
22397         * c-parse.in (%union): Add exprtype.
22398         (FUNC_NAME): Mark as ttype.
22399         (expr, expr_no_commas, cast_expr, unary_expr, primary): Change to
22400         exprtype.
22401         (expr): Update.  Define directly in terms of expr_no_commas
22402         instead of using nonnull_exprlist.
22403         (nonnull_exprlist, unary_expr, cast_expr, expr_no_commas, primary,
22404         offsetof_member_designator, typespec_nonreserved_nonattr, init,
22405         initval, designator, component_declarator,
22406         component_notype_declarator, enumerator, array_declarator,
22407         condition, exexpr, switch_statement, stmt_nocomp, stmt,
22408         nonnull_asm_operands, ivar_declarator, receiver): Update.  Don't
22409         set C_EXP_ORIGINAL_CODE.  Use TREE_NO_WARNING for assignments
22410         where appropriate.
22411         * c-common.h (C_EXP_ORIGINAL_CODE): Remove.
22412         * c-common.c (c_common_truthvalue_conversion): Don't check
22413         C_EXP_ORIGINAL_CODE.
22414         * c-typeck.c (parser_build_binary_op): Use c_expr structures.
22415         Don't use C_EXP_ORIGINAL_CODE.
22416         (default_conversion, default_function_array_conversion): Don't use
22417         C_EXP_ORIGINAL_CODE.  Preserve TREE_NO_WARNING.
22418         (internal_build_compound_expr): Merge into build_compound_expr.
22419         (build_compound_expr): Take two operands instead of a TREE_LIST.
22420         * objc/objc-act.c (get_super_receiver): Update calls to
22421         build_compound_expr.
22422
22423 2004-07-18  Paolo Bonzini  <bonzini@gnu.org>
22424
22425         * config/sh/sh.c (sh_use_dfa_interface): Remove.
22426         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Set to
22427         hook_int_void_1.
22428         * config/sh/sh.md: Extract pipeline descriptions
22429         into separate files.
22430         * config/sh/sh1.md: New file, extracted from sh.md.
22431         * config/sh/sh4.md: New file, extracted from sh.md.
22432         * config/sh/shmedia.md: New file, extracted from sh.md
22433         and rewritten using new-style pipeline description.
22434
22435 2004-07-18  Zack Weinberg  <zack@codesourcery.com>
22436
22437         * config/pa/pa.md: Delete the two remaining define_peephole
22438         patterns.
22439
22440 2004-07-18  Steven Bosscher  <stevenb@suse.de>
22441             Joseph S. Myers  <jsm@polyomino.org.uk>
22442
22443         * c-common.c (c_common_truthvalue_conversion): Don't warn if
22444         TREE_NO_WARNING is set.
22445
22446 2004-07-18  Roger Sayle  <roger@eyesopen.com>
22447
22448         * builtins.c (simplify_builtin_memcmp, simplify_builtin_strcmp,
22449         simplify_builtin_strncmp): Delete.
22450         (fold_builtin_memcmp, fold_builtin_strcmp, fold_builtin_strncmp):
22451         Change argument to accept an arglist instead of an "exp".  Assume
22452         that the return type is always integer_type_node.  Copy missing
22453         transformations from their now obsolete simplify_builtin_*
22454         equivalents.
22455         (fold_builtin_1): Pass arglist instead of exp to fold_builtin_memcmp,
22456         fold_builtin_strcmp and fold_builtin_strncmp.
22457         (simplify_builtin): Call fold_builtin_memcmp, fold_builtin_strcmp
22458         and fold_builtin_strncmp instead of simplify_builtin_memcmp,
22459         simplify_builtin_strcmp and simplify_builtin_strncmp respectively.
22460
22461 2004-07-18  Daniel Jacobowitz  <dan@debian.org>
22462
22463         * Makefile.in (tree-alias-common.o): Update dependencies.
22464
22465 2004-07-17  Sebastian Pop  <pop@cri.ensmp.fr>
22466
22467         * cfgloop.c (flow_loop_nested_p): Fix comment.
22468
22469 2004-07-17  Jason Merrill  <jason@redhat.com>
22470
22471         PR c++/16115
22472         * stor-layout.c (relayout_decl): New fn.
22473         * tree.h: Declare it.
22474         (DECL_BY_REFERENCE): New macro.
22475
22476 2004-07-17  Eric Botcazou  <ebotcazou@act-europe.fr>
22477
22478         * libgcc2.c (__enable_execute_stack): New symbol.
22479         * libgcc-std.ver (GCC_3.4.2): New version.  Inherit from GCC_3.4
22480         and declare __enable_execute_stack.
22481         * mklibgcc.in (lib2funcs): Add _enable_execute_stack.
22482         * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): ANSIfy.
22483         * config/sol2.h (TRANSFER_FROM_TRAMPOLINE): Rename into
22484         ENABLE_EXECUTE_STACK.
22485         * config/alpha/alpha.c (alpha_initialize_trampoline): Conditionalize
22486         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
22487         * config/alpha/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Rename into
22488         ENABLE_EXECUTE_STACK.
22489         * config/alpha/osf.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
22490         * config/i386/i386.c (x86_initialize_trampoline): Conditionalize
22491         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
22492         * config/i386/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Rename into
22493         ENABLE_EXECUTE_STACK.
22494         * config/i386/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
22495         * config/i386/netbsd64.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
22496         * config/sparc/freebsd.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
22497         * config/sparc/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
22498         * config/sparc/sparc.c (sparc_initialize_trampoline): Conditionalize
22499         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
22500         (sparc64_initialize_trampoline): Likewise.
22501         * doc/tm.texi (trampolines): Add ENABLE_EXECUTE_STACK macro.
22502
22503 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
22504
22505         * langhooks.h (builtin_function): New langhook.
22506         * langhooks-def.h (LANG_HOOKS_BUILTIN_FUNCTION): New.
22507         (LANG_HOOKS_INITIALIZER): Update.
22508         * tree.h (builtin_function): Remove.
22509         * doc/tm.texi: Update.
22510         * c-tree.h (builtin_function): Declare.
22511         * c-common.c, config/alpha/alpha.c, config/arm/arm.c,
22512         config/c4x/c4x.c, config/frv/frv.c, config/i386/i386.c,
22513         config/ia64/ia64.c, config/iq2000/iq2000.c,
22514         config/rs6000/rs6000.c, config/s390/s390.c, config/sh/sh.c,
22515         config/stormy16/stormy16.c: All callers of builtin_function
22516         changed.
22517
22518 2004-07-17  Andrew Pinski  <pinskia@physics.uc.edu>
22519
22520         PR target/16556
22521         * config/i386/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
22522         Remove white space after the backslash.
22523
22524 2004-07-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
22525
22526         PR rtl-optimization/16294
22527         * resource.c (return_insn_p): New predicate.
22528         (mark_target_live_regs): Use it.  Special-case return insns.
22529         (init_resource_info): Use it.  Don't scan the epilogue past
22530         a return.
22531
22532 2004-07-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
22533
22534         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Do not
22535         destroy dominance information.
22536         * passes.c (rest_of_handle_loop2):  Free dominance information.
22537         * tree-cfg.c (cleanup_tree_cfg): Remove unreachable blocks before
22538         jump threading.
22539         (thread_jumps): Update dominance information and remove unreachable
22540         blocks.
22541         * tree-ssa-phiopt.c (replace_phi_with_stmt):  Update dominance
22542         information and remove the unreachable block.
22543
22544 2004-07-17  Graham Stott  <graham.stott@btinternet.com>
22545
22546         * emit-rtl.c (reorder_insns): Don't set BB for a BARRIER insn.
22547
22548 2004-07-17  Toon Moene  <toon@moene.indiv.nluug.nl>
22549
22550         * doc/sourcebuild.texi: Remove libf2c entry.
22551
22552 2004-07-17  Paolo Bonzini  <bonzini@gnu.org>
22553
22554         * config/i386/i386.md (movv16qi_internal): Fix typo.
22555
22556 2004-07-17  Steven Bosscher  <stevenb@suse.de>
22557
22558         * final.c (final_scan_insn): Fix broken commit from previous
22559         patch.
22560
22561 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
22562
22563         * c-typeck.c (parser_build_binary_op): Condition warnings for
22564         X<=Y<=Z on -Wparentheses instead of -Wextra.
22565         * doc/invoke.texi: Update.  Document that most of -Wparentheses is
22566         supported for C only.
22567
22568 2004-07-17  Steven Bosscher  <stevenb@suse.de>
22569
22570         * cfgcleanup.c (try_simplify_condjump): Don't remove line
22571         notes to avoid unreachable code warnings.
22572         * toplev.c (backend_init): Don't emit line notes for
22573         unreachable code warnings.
22574
22575         * combine.c (distribute_notes): Don't distribute a
22576         REG_VTABLE_REF note.
22577         * final.c (final_scan_insn): Don't handle it.
22578         * rtl.c (reg_note_name): Remove it.
22579         * rtl.h (enum reg_node): Dito.
22580
22581         * emit-rtl.c (force_line_numbers, restore_line_number_status):
22582         Remove.
22583         * rtl.h (force_line_numbers, restore_line_number_status):
22584         Remove prototypes.
22585
22586         * stmt.c (using_eh_for_cleanups_p, using_eh_for_cleanups): Move...
22587         * tree-eh.c (using_eh_for_cleanups_p): ...here.  Make static.
22588         (using_eh_for_cleanups): Also moved here.
22589
22590         * expr.c (expand_expr_real_1) <CASE_LABEL_EXPR>: Die if we see one.
22591         <SWITCH_EXPR>: Die if we have a non-NULL SWITCH_BODY.  Update calls
22592         to expand_start_case and add_case_node.
22593         * stmt.c (struct nesting): Cleanup unused fields condition_code,
22594         last_unconditional_cleanup, nominal_type, printname, and
22595         line_number_status.
22596         (struct fixup_goto): Remove.
22597         (struct stmt_status): Remove x_goto_fixup_chain field.
22598         (goto_fixup_chain): Remove.
22599         (strip_default_case_nodes, group_case_nodes, emit_jump_if_reachable,
22600         pushcase, pushcase_range): Remove.
22601         (expand_start_bindings_and_block): Don't set unused fields in
22602         the nesting stack.
22603         (expand_start_case, add_case_node): Cleanup unused formal arguments.
22604         (expand_end_case_type): Don't simplify the case-list.  Use emit_jump
22605         instead of emit_jump_if_reachable.
22606         (emit_case_nodes): Likewise.
22607         * tree-cfg.c (group_case_labels, cleanup_dead_labels): No longer
22608         static.
22609         (update_eh_label): Work around left-over exception handing regions.
22610         * tree-flow.h (group_case_labels, cleanup_dead_labels): Add protos.
22611         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): New function.
22612         (pass_cleanup_cfg_post_optimizing): New pass.
22613         (init_tree_optimization_passes): Run the new pass after all
22614         optimizations.
22615         * tree.h (pushcase, pushcase_range): Remove prototypes.
22616         (expand_start_case, add_case_node): Update prototypes.
22617
22618 2004-07-16  Krister Walfridsson  <cato@df.lth.se>
22619
22620         * tree-inline.c (estimate_num_insns_1): Correct increase of count.
22621
22622 2004-07-16  Richard Henderson  <rth@redhat.com>
22623
22624         * builtins.c (std_expand_builtin_va_arg): Remove.
22625         (expand_builtin_va_arg): Remove.
22626         * expr.h: Don't declare them.
22627         * gimplify.c (mark_decls_volatile_r): Remove.
22628         (copy_if_shared_r): Don't call it.
22629         * target-def.h: Don't test EXPAND_BUILTIN_VA_ARG.
22630         * expr.c (expand_expr_real_1): Don't handle VA_ARG_EXPR.
22631         * gimple-low.c (lower_stmt): Likewise.
22632         * tree-cfg.c (cfg_remove_useless_stmts_bb): Likewise.
22633         * tree-gimple.c (is_gimple_tmp_rhs, is_gimple_stmt): Likewise.
22634         * tree-ssa-operands.c (get_expr_operands): Likewise.
22635         * doc/tm.texi (TARGET_GIMPLIFY_VA_ARG_EXPR): Don't mention
22636         EXPAND_BUILTIN_VA_ARG.
22637         * system.h (EXPAND_BUILTIN_VA_ARG): Poison.
22638         * config/alpha/alpha.h, config/alpha/unicosmk.h, config/i386/i386.h,
22639         config/ia64/ia64.h, config/rs6000/rs6000.h, config/s390/s390.h,
22640         config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Remove.
22641
22642 2004-07-16  Daniel Berlin  <dberlin@dberlin.org>
22643
22644         * tree-ssa-pre.c (insert_aux): Break out if we hit
22645         a critical edge.
22646
22647 2004-07-16  Richard Henderson  <rth@redhat.com>
22648
22649         * basic-block.h (remove_fake_exit_edges): Declare.
22650         * cfganal.c (remove_fake_predecessors): Rename from
22651         remove_fake_successors; iterate over predecessors.
22652         (remove_fake_exit_edges): New.
22653         * cfgcleanup.c (try_optimize_cfg): Use it.
22654         * gcse.c (one_pre_gcse_pass, store_motion): Likewise.
22655         * predict.c (estimate_probability): Likewise.
22656         (tree_estimate_probability, note_prediction_to_br_prob): Likewise.
22657         * tree-cfg.c (make_edges): Likewise.
22658         * tree-ssa-pre.c (fini_pre): Likewise.
22659         * profile.c (instrument_edges): Don't remove_fake_edges.
22660         (branch_prob): Do it earlier here.
22661
22662 2004-07-16  Richard Henderson  <rth@redhat.com>
22663
22664         * tree-ssa-operands.c (get_expr_operands): Fix 2004-07-15
22665         switchification wrt CONSTRUCTOR.  Document the reason.
22666
22667 2004-07-16  Frank Ch. Eigler  <fche@redhat.com>
22668
22669         * tree-mudflap.c (mf_file_function_line_tree): Correct typo
22670         that prevented descriptive __mf_check source location strings.
22671
22672 2004-07-16  Richard Henderson  <rth@redhat.com>
22673
22674         * tree-def (WITH_SIZE_EXPR): New.
22675         * explow.c (expr_size, int_expr_size): Handle WITH_SIZE_EXPR.
22676         * expr.c (expand_expr_real_1): Likewise.
22677         * gimplify.c (maybe_with_size_expr): New.
22678         (gimplify_arg, gimplify_modify_expr): Use it.
22679         (gimplify_modify_expr_to_memcpy): Take size parameter.
22680         (gimplify_modify_expr_to_memset): Likewise.
22681         (gimplify_expr): Handle WITH_SIZE_EXPR.
22682         * tree-alias-common.c (find_func_aliases): Likewise.
22683         * tree-eh.c (tree_could_trap_p): Likewise.
22684         (tree_could_throw_p): Likewise.
22685         * tree-gimple.c (is_gimple_lvalue): Likewise.
22686         (get_call_expr_in): Likewise.
22687         * tree-inline.c (estimate_num_insns_1): Likewise.
22688         (expand_calls_inline): Likewise.
22689         * tree-nested.c (convert_call_expr): Likewise.
22690         * tree-pretty-print.c (dump_generic_node): Likewise.
22691         * tree-sra.c (sra_walk_expr): Likewise.
22692         * tree-ssa-alias.c (add_pointed_to_expr): Likewise.
22693         * tree-ssa-ccp.c (get_rhs, set_rhs): Likewise.
22694         * tree-ssa-operands.c (get_expr_operands): Likewise.
22695         * tree-tailcall.c (find_tail_calls): Likewise.
22696
22697         * calls.c (expand_call): Reset old_stack_allocated after
22698         calling emit_stack_restore.
22699
22700 2004-07-16  Richard Henderson  <rth@redhat.com>
22701
22702         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_COPY_RES_DECL_FOR_INLINING,
22703         lhd_tree_inlining_copy_res_decl_for_inlining): Remove.
22704         * langhooks.c (lhd_tree_inlining_copy_res_decl_for_inlining): Remove.
22705         * langhooks.h (struct lang_hooks_for_tree_inlining): Remove
22706         copy_res_decl_for_inlining.
22707
22708         * tree-inline.c (declare_return_variable): New modify_dest argument.
22709         Use it as the return value, when possible or manditory.  Handle
22710         TREE_ADDRESSABLE types.
22711         (expand_call_inline): Extract MODIFY_EXPR lhs for call.  Simplify
22712         replacement of CALL_EXPR.
22713
22714 2004-07-16  Richard Henderson  <rth@redhat.com>
22715
22716         * tree-flow.h (struct var_ann_d): Remove has_hidden_use.
22717         * gimple-low.c (expand_var_p): Don't check it.
22718         * tree-ssa-alias.c (setup_pointers_and_addressables): Likewise.
22719         * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
22720         * tree-ssa-operands.c (add_stmt_operand): Likewise.
22721         * tree-dfa.c (find_hidden_use_vars, find_hidden_use_vars_r): Kill.
22722         (find_referenced_vars): Don't call them.
22723         * tree-flow-inline.h (has_hidden_use, set_has_hidden_use): Kill.
22724
22725 2004-07-16  Richard Henderson  <rth@redhat.com>
22726
22727         * function.c (pass_by_reference): True for all variable sized types.
22728
22729 2004-07-16  Sebastian Pop  <pop@cri.ensmp.fr>
22730
22731         * Makefile.in (tree-pretty-print.o): Depend on tree-chrec.h.
22732         * tree-pretty-print.c: Include tree-chrec.h.
22733         (dump_generic_node): Pretty print SCEV_KNOWN, SCEV_NOT_KNOWN
22734         and POLYNOMIAL_CHREC nodes.
22735
22736 2004-07-16  Steve Ellcey  <sje@cup.hp.com>
22737
22738         * builtins.c (expand_builtin_stpcpy): Do not create temporary
22739         reg with VOIDmode.
22740
22741 2004-07-16  Segher Boessenkool  <segher@kernel.crashing.org>
22742
22743         * config/rs6000/eabi.asm (__eabi_convert): Fix typo (cmpi vs. cmpwi).
22744
22745 2004-07-16  Andreas Krebbel  <krebbel1@de.ibm.com>
22746
22747         * config/s390/s390.md: Changed every occurence of BASE_REGISTER
22748         to BASE_REGNUM.
22749         * config/s390/s390.c: Likewise.
22750         * config/s390/s390.h: Likewise.
22751
22752 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
22753
22754         * config/mips/mips.md (addsi3, adddi3): Remove special handling
22755         of $sp adds.  Remove REGNO checks from mips16 patterns.
22756
22757 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
22758
22759         * config/mips/mips.md: Delete outdated comment.
22760
22761 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
22762
22763         * config/mips/mips.c (get_float_compare_codes): Delete.
22764         (mips_emit_compare): New function, mostly extracted from
22765         get_float_compare_codes and gen_conditional_branch.
22766         (gen_conditional_branch, gen_conditional_move): Use it.
22767
22768 2004-07-16  Segher Boessenkool  <segher@kernel.crashing.org>
22769
22770         * genautomata.c (add_vect): Speedup by using integers as
22771         bit-vectors for walking through the comb_vect and finding
22772         a match.
22773
22774 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
22775
22776         * config/mips/mips.c (mips_zero_if_equal): Only use XORs if the second
22777         operand is an uns_arith_operand; use subtraction otherwise.
22778         * config/mips/mips.md (cmpsi, cmpdi): Allow any nonmemory_operand,
22779         not just arith_operands.
22780
22781 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
22782
22783         * config/mips/mips-protos.h (gen_int_relational): Delete.
22784         (mips_emit_scc): Declare.
22785         * config/mips/mips.c (internal_test): Delete.
22786         (sle_operand, sleu_operand): New functions.
22787         (map_test_to_internal_test, gen_int_relational): Delete.
22788         (mips_emit_binary, mips_relational_operand_ok_p)
22789         (mips_emit_int_relational, mips_zero_if_equal)
22790         (mips_emit_scc): New functions.
22791         (gen_conditional_branch): Rework to use mips_emit_int_relational.
22792         * config/mips/mips.h (PREDICATE_CODES): Add sle_operand and
22793         sleu_operand.
22794         * config/mips/mips.md (seq, sne, sgt, sge, slt, sle, sgtu, sgeu)
22795         (sltu, sleu): Use mips_emit_scc.
22796         (*sge_[sd]i, *sgeu_[sd]i): New patterns.
22797         (*sle_[sd]i, *sle_[sd]i_mips16): Use sle_operand.
22798         (*sleu_[sd]i, *sleu_[sd]i_mips16): Use sleu_operand.
22799
22800 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
22801
22802         * config/mips/mips.md (*sgt_di_mips16): Fix destination constraint.
22803
22804 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
22805
22806         * config/mips/mips.md (*seq_[sd]i): Renamed from seq_[sd]i_zero.
22807         (*sne_[sd]i): Likewise sne_[sd]i_zero.
22808         (*sgt_[sd]i): ...and sgt_[sd]i.
22809         (*slt_[sd]i): ...and slt_[sd]i.
22810         (*sgtu_[sd]i): ...and sgtu_[sd]i.
22811         (*sltu_[sd]i): ...and sltu_[sd]i.
22812         (*sleu_[sd]i): ...and sleu_[sd]i_const.
22813         Name previously unnamed mips16 patterns.  Formatting fixes.
22814
22815 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
22816
22817         * config/mips/mips.c (cmp_operands): Renamed from branch_cmp.
22818         (branch_type): Delete.
22819         (gen_conditional_branch, gen_conditional_move)
22820         (mips_gen_conditional_trap): Update after name change.  Get the
22821         comparison mode from cmp_operands[0].
22822         * config/mips/mips.h (cmp_type, branch_type): Delete.
22823         (cmp_operands): Renamed from branch_cmp.
22824         * config/mips/mips.md (cmpsi, cmpdi, cmpsf, cmpdf): Update after
22825         name change.  Don't set branch_type.
22826         (seq, sne, sgt, sge, slt, sle, sgtu, sgeu, sltu, sleu): Check the
22827         mode class of cmp_operands[0] rather than branch_type.  Update after
22828         name change.
22829
22830 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
22831
22832         * config/mips/mips.c (mips_rtx_costs): In mips16 code, set the cost
22833         of 0...255 to 0 when inside a SET.
22834
22835 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
22836
22837         * config/mips/mips.md: Remove mips16 define_peepholes.
22838
22839 2004-07-16  Daniel Berlin  <dberlin@dberlin.org>
22840
22841         * tree-ssa-pre.c (init_pre): Connect infinite loops to exit.
22842         (fini_pre): Remove fake edges.
22843
22844 2004-07-15  Richard Henderson  <rth@redhat.com>
22845
22846         * tree-ssa-operands.c (get_expr_operands): Use a switch.  Split out...
22847         (get_indirect_ref_operands, get_call_expr_operands): ... these.
22848
22849 2004-07-15  Nathan Sidwell  <nathan@codesourcery.com>
22850
22851         * vec.h (VEC_address): New function.
22852
22853 2004-07-14  Jason Merrill  <jason@redhat.com>
22854
22855         PR middle-end/15885
22856         * gimplify.c (gimplify_arg): New fn, split out from...
22857         (gimplify_call_expr): Here.  Special-case BUILT_IN_VA_START.
22858
22859 2004-07-15  Roman Zippel  <zippel@linux-m68k.org>
22860
22861         * config/m68k/m68k.c (output_move_qimode): Abort on an attempt to
22862         generate code which is generated by pushqi1 now
22863         * config/m68k/m68k.h (MOVE_BY_PIECES_P): Remove.
22864
22865 2004-07-15  Roman Zippel  <zippel@linux-m68k.org>
22866
22867         * combine.c (simplify_set): match the mode of the constant 0 with
22868         the tested operand to match the compare behaviour and the
22869         simplify_relational_operation() expectation.
22870
22871 2004-07-15  Aldy Hernandez  <aldyh@redhat.com>
22872
22873         * config/rs6000/rs6000.md ("bunordered"): Disable for e500.
22874         ("bordered"): Same.
22875
22876 2004-07-15  Aldy Hernandez  <aldyh@redhat.com>
22877
22878         * config/rs6000/rs6000.md ("*cceq_ior_compare"): Allow
22879         unconditionally.
22880         * config/rs6000/spe.md ("e500_cceq_ior_compare"): Remove.
22881
22882 2004-07-15  Richard Sandiford  <rsandifo@redhat.com>
22883
22884         * config/mips/mips.c (mips_adjust_insn_length): Fix handling of
22885         calls in mips16 code.
22886
22887 2004-07-15  Richard Sandiford  <rsandifo@redhat.com>
22888
22889         * config/mips/mips.md: In the mips16 li/neg splitter, use SImode for
22890         the destination of the li as well as for the neg.
22891
22892 2004-07-15  Frank Ch. Eigler  <fche@redhat.com>
22893
22894         g++/15861
22895         * cgraphunit.c (cgraph_build_static_cdtor): Add priority argument.
22896         * cgraph.h: Update declaration.
22897         * c-decl.c (build_cdtor): Update call with default priority.
22898         * coverage.c (create_coverage): Ditto.
22899         * tree-mudflap.c (mf_init_fndecl): New tree.
22900         (mudflap_init): Set it.
22901         (mudflap_register_call): Arrange to call __mf_init before the first
22902         __mf_register call.
22903         (mudflap_finish_file): Mark the mudflap static initializer as extra
22904         high priority, to beat all C++ static constructors.
22905
22906 2004-07-15  Jeff Law  <law@redhat.com>
22907
22908         * loop.c (check_insn_for_givs): Restore check for code labels that was
22909         accidentally deleted by a recent checkin.
22910
22911 2004-07-15  Nathan Sidwell  <nathan@codesourcery.com>
22912
22913         * vec.h (VEC_T_truncate): Allow truncation of an empty vector.
22914         (VEC_T_quick_insert, VEC_T_ordered_remove): Fix sizeof(T) thinko.
22915
22916 2004-07-14  Richard Henderson  <rth@redhat.com>
22917
22918         * print-tree.c (print_node): Fix casts last change.
22919
22920 2004-07-15  Paul Brook  <paul@codesourcery.com>
22921
22922         * dwarf2out.c (dwarf2out_begin_prologue): Rename IA64_UNWIND_INFO
22923         to TARGET_UNWIND_INFO.
22924         * except.c (output_function_exception_table): Ditto.
22925         * except.h: Ditto.
22926         * opts.c (decode_options): Ditto.
22927         * passes.c (rest_of_handle_final): Ditto.
22928         * final.c (final_start_function): Ditto.
22929         (final_scan_insn, final_scan_insn): Replace IA64_UNWIND_EMIT with
22930         target hook.
22931         * targhooks.h (default_unwind_emit): Declare.
22932         * targhooks.c (default_unwind_emit): New function.
22933         * target-def.h: Define and use TARGET_UNWIND_EMIT.
22934         * target.h (struct gcc_target): Add unwind_emit.
22935         * config/ia64/ia64.c (TARGET_UNWIND_EMIT): Define.
22936         * config/ia64/ia64.h: Rename IA64_UNWIND_INFO to TARGET_UNWIND_INFO.
22937         Remove IA64_UNWIND_EMIT.
22938         * doc/tm.texi: Document TARGET_UNWIND_EMIT and TARGET_UNWIND_INFO.
22939
22940 2004-07-14  Richard Henderson  <rth@redhat.com>
22941
22942         * print-tree.c (print_node): Handle SSA_NAME.
22943
22944 2004-07-14  James E Wilson  <wilson@specifixinc.com>
22945
22946         PR target/16325
22947         * config/mips/mips.h (STARTING_FRAME_OFFSET): When flag_profile_value
22948         and ! TARGET_64BIT, include REG_PARM_STACK_SPACE.
22949
22950 2004-07-15  Jakub Jelinek  <jakub@redhat.com>
22951
22952         * expr.c (expand_assignment): Reenable bitfield += optimizations.
22953         Use alias set 0 for memory, do proper mode calculations and adjust
22954         address for memories.
22955
22956 2004-07-14  Per Bothner  <per@bothner.com>
22957
22958         * input.h:  If USE_MAPPED_LOCATION, define separate expanded_location
22959         structure with extra column field.
22960         * tree.c (expand_location):  Also fill in column field.
22961         * gengtype-lex.l:  Ignore expanded_location typedef, sinze gengtype
22962         gets confused by the two conditionally-compiled definitions.
22963
22964 2004-07-14  Eric Christopher  <echristo@redhat.com>
22965
22966         * calls.c (expand_call): Fix typo in comment.
22967
22968 2004-07-14  Steve Ellcey  <sje@cup.hp.com>
22969
22970         * config/ia64/ia64.c (ia64_expand_compare): Allow ORDERED
22971         comparision of TFmode.
22972
22973 2004-07-14  Richard Henderson  <rth@redhat.com>
22974
22975         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Move indirect ...
22976         (alpha_gimplify_va_arg): ... handling here.  Use pass_by_reference.
22977         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Use pass_by_reference.
22978         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
22979         * config/i860/i860.c (i860_gimplify_va_arg_expr): Likewise.
22980         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
22981         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
22982         * config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise.
22983         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
22984
22985 2004-07-14  Mike Stump  <mrs@apple.com>
22986
22987         * config/darwin.h (WINT_TYPE): Define to be int to match
22988         system header files.
22989
22990 2004-07-14  Bob Wilson  <bob.wilson@acm.org>
22991
22992         * config/xtensa/xtensa.c (function_arg_advance): Check for args
22993         that must be passed in the stack.
22994         (xtensa_gimplify_va_arg_expr): Skip special-case padding for small
22995         arguments if the size is not a constant.
22996
22997 2004-07-14  Per Bothner  <per@bothner.com>
22998
22999         * c-typeck.c (emit_side_effect_warnings):  Use EXPR_HAS_LOCATION
23000         instead of EXPR_LOCUS in a boolean context, which is always true
23001         if --enable-mapped-location.
23002         * stmt.c (warn_if_unused_value):  Likewise.  Also use EXPR_LOCATION.
23003
23004 2004-07-14  Richard Henderson  <rth@redhat.com>
23005
23006         * dominance.c (struct dom_info): Add fake_exit_edge.
23007         (init_dom_info): Allocate it.
23008         (free_dom_info): Free it.
23009         (calc_dfs_tree): Set it.  Handle noreturn and infinite loops
23010         in two passes.
23011         (calc_idoms): Honor fake_exit_edge.
23012
23013 2004-07-13  Jason Merrill  <jason@redhat.com>
23014
23015         * tree-gimple.c (is_gimple_reg_rhs, is_gimple_mem_rhs): New fns.
23016         (rhs_test_for): New fn.
23017         (is_gimple_tmp_rhs): Rename from is_gimple_rhs.
23018         * tree-gimple.h: Declare them.
23019         * gimplify.c (gimplify_modify_expr): Use the new fns.
23020
23021 2004-07-14  Richard Henderson  <rth@redhat.com>
23022
23023         * config/arm/arm-protos.h (arm_va_arg): Remove.
23024         * config/arm/arm.c (arm_va_arg): Remove.
23025         (arm_init_expanders): Fix alignment of arg_pointer_rtx.
23026         * config/arm/arm.h (EXPAND_BUILTIN_VA_ARG): Remove.
23027
23028 2004-07-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23029
23030         * pa.c (fix_range): New function to mark a range(s) of registers as
23031         fixed registers.
23032         (override_options): Call fix_range if the -mfixed-range option string
23033         is not empty.
23034         * pa.h (TARGET_OPTIONS): Add -mfixed-range option.
23035         * doc/invoke.texi (-mfixed-range): Document new option.
23036
23037 2004-07-14  David Edelsohn  <edelsohn@gnu.org>
23038
23039         * config/rs6000/rs6000.c (function_arg_padding): Do not pad SFmode
23040         for TARGET_64BIT.
23041         (rs6000_gimplify_va_arg): Use size_int instead of build_int_2.
23042
23043 2004-07-14  Roger Sayle  <roger@eyesopen.com>
23044
23045         * expmed.c (expand_sdiv_pow2): New function to expand signed division
23046         by a positive power of two, split out from expand_divmod.  Provide
23047         an alternate implementation when shifts are expensive.  Lower the
23048         threshold for using a branchless implementation to BRANCH_COST >= 2.
23049         (expand_divmod): Call expand_sdiv_pow2 for suitable divisions.
23050
23051 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
23052
23053         * tree-dfa.c (make_rename_temp): *Really* work just
23054         like create_tmp_var if called while outside SSA form.
23055
23056 2004-07-14  Ulrich Weigand  <uweigand@de.ibm.com>
23057
23058         * config/s390/s390.md ("udivsi3"): Ensure trap is generated
23059         for division by zero.
23060         ("umodsi3"): Likewise.
23061
23062 2004-07-14  Richard Sandiford  <rsandifo@redhat.com>
23063
23064         * config/mips/mips.c (mips_output_move): When generating mips16 code,
23065         force loads of negative constants to be split.
23066         * config/mips/mips.md (*movhi_mips16, *movqi_mips16): Likewise.
23067         Generalize SImode li/neg splitter to cope with other modes.
23068
23069 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
23070
23071         * expmed.c: Remove more references to QUEUED in the comments.
23072         * expr.c: Likewise.
23073
23074 2004-07-14  Richard Sandiford  <rsandifo@redhat.com>
23075
23076         Revert:
23077         2004-07-13  Richard Henderson  <rth@redhat.com>
23078         * config/mips/mips.c (mips_pass_by_reference): Handle mode sizes
23079         correctly.
23080
23081 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
23082
23083         * tree-dfa.c (make_rename_temp): Work just like
23084         create_tmp_var if called while outside SSA form.
23085
23086 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
23087
23088         * expr.c (enqueue_insn, finish_expr_for_function,
23089         protect_from_queue, queued_subexp_p, mark_queue,
23090         emit_insns_enqueued_after_mark, emit_queue,
23091         expand_increment): Remove.
23092         (store_constructor): Expand increment as an assignment.
23093         (expand_expr_real_1 <case PREINCREMENT_EXPR,
23094         case PREDECREMENT_EXPR, case POSTINCREMENT_EXPR,
23095         case POSTDECREMENT_EXPR>): Abort.
23096         * expr.h (QUEUED_VAR, QUEUED_INSN, QUEUED_COPY,
23097         QUEUED_BODY, QUEUED_NEXT, finish_expr_for_function,
23098         protect_from_queue, emit_queue, queued_subexp_p): Remove.
23099         * function.h (pending_chain, x_pending_chain): Remove.
23100         * rtl.def (QUEUED): Remove.
23101
23102         * emit-rtl.c (copy_insn_1, copy_most_rtx,
23103         set_used_flags, verify_rtx_sharing): Remove references to QUEUED.
23104         * genattrtab.c (attr_copy_rtx, clear_struct_flag,
23105         encode_units_mask): Likewise.
23106         * local-alloc.c (equiv_init_varies_p): Likewise.
23107         * rtl.c (copy_rtx): Likewise.
23108         * rtlanal.c (rtx_unstable_p, rtx_varies_p): Likewise.
23109         * simplify-rtx.c (simplify_gen_subreg): Likewise.
23110         * config/mn10300/mn10300.c (legitimate_pic_operand_p): Likewise.
23111
23112         * builtins.c (expand_builtin, expand_builtin_apply,
23113         expand_builtin_mathfn, expand_builtin_mathfn_2,
23114         expand_builtin_mathfn_3, expand_builtin_setjmp_setup):
23115         Remove calls to emit_queue and protect_from_queue.
23116         * calls.c (expand_call, precompute_arguments,
23117         precompute_register_parameters, rtx_for_function_call,
23118         store_one_arg): Likewise.
23119         * dojump.c (do_compare_and_jump, do_jump): Likewise.
23120         * explow.c (memory_address): Likewise.
23121         * expmed.c (clear_by_pieces_1, clear_storage,
23122         clear_storage_via_libcall, emit_group_load,
23123         emit_group_store, emit_store_flag,
23124         expand_expr_real_1, store_by_pieces,
23125         store_constructor, store_expr, try_casesi,
23126         try_tablejump): Likewise.
23127         * function.c (expand_pending_sizes): Likewise.
23128         * optabs.c (emit_cmp_and_jump_insns,
23129         emit_conditional_add, emit_conditional_move,
23130         expand_fix, expand_float, prepare_cmp_insn): Likewise.
23131         * stmt.c (emit_case_bit_tests,
23132         expand_asm_expr, expand_computed_goto,
23133         expand_decl_init, expand_end_case_type,
23134         expand_end_stmt_expr, expand_expr_stmt_value,
23135         expand_return, expand_start_case,
23136         optimize_tail_recursion): Likewise.
23137         * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
23138         * config/s390/s390.c (s390_expand_cmpmem): Likewise.
23139
23140 2004-07-14  Ben Elliston  <bje@au.ibm.com>
23141
23142         * vec.h: Comment fix.
23143
23144 2004-07-13  Richard Henderson  <rth@redhat.com>
23145
23146         * target.h (struct gcc_target): Add calls.pass_by_reference.
23147         * target-def.h (TARGET_PASS_BY_REFERENCE): New.
23148         * function.c (pass_by_reference): Use the hook.
23149         * system.h (FUNCTION_ARG_PASS_BY_REFERENCE): Poison.
23150         * targhooks.c, targhooks.h (hook_pass_by_reference_false): New.
23151         (hook_pass_by_reference_must_pass_in_stack): New.
23152         * config/alpha/alpha.c (function_arg): Don't query pass-by-ref.
23153         (alpha_pass_by_reference): New.
23154         (TARGET_PASS_BY_REFERENCE): New.
23155         * config/alpha/alpha.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
23156         * config/arc/arc.c (arc_pass_by_reference): New.
23157         (TARGET_PASS_BY_REFERENCE): New.
23158         * config/arc/arc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
23159         (FUNCTION_ARG_CALLEE_COPIES): True.
23160         * config/arm/arm-protos.h (arm_function_arg_pass_by_reference): Remove.
23161         * config/arm/arm.c (TARGET_PASS_BY_REFERENCE): New.
23162         (arm_pass_by_reference): Rename from arm_function_arg_pass_by_reference.
23163         * config/arm/arm.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
23164         * config/c4x/c4x.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
23165         * config/cris/cris.c (cris_pass_by_reference): New.
23166         (TARGET_PASS_BY_REFERENCE): New.
23167         * config/cris/cris.h (FUNCTION_ARG): Don't query pass-by-ref.
23168         (FUNCTION_INCOMING_ARG, FUNCTION_ARG_ADVANCE): Likewise.
23169         (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
23170         * config/fr30/fr30.c (TARGET_PASS_BY_REFERENCE): New.
23171         * config/fr30/fr30.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
23172         * config/frv/frv-protos.h (frv_function_arg_pass_by_reference): Kill.
23173         * config/frv/frv.c (TARGET_PASS_BY_REFERENCE): New.
23174         (frv_function_arg_pass_by_reference): Remove.
23175         * config/frv/frv.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
23176         * config/i386/i386-protos.h (function_arg_pass_by_reference): Remove.
23177         * config/i386/i386.c (TARGET_PASS_BY_REFERENCE): New.
23178         (ix86_pass_by_reference): Rename from function_arg_pass_by_reference.
23179         * config/i386/i386.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
23180         * config/ia64/ia64-protos.h (ia64_function_arg_pass_by_reference): Kill.
23181         * config/ia64/ia64.c (TARGET_PASS_BY_REFERENCE): New.
23182         (ia64_pass_by_reference): Rename from
23183         ia64_function_arg_pass_by_reference.
23184         * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
23185         * config/ip2k/ip2k.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
23186         * config/iq2000/iq2000-protos.h (function_arg_pass_by_reference): Kill.
23187         * config/iq2000/iq2000.c (TARGET_PASS_BY_REFERENCE): New.
23188         (iq2000_pass_by_reference): Rename from function_arg_pass_by_reference.
23189         * config/iq2000/iq2000.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
23190         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
23191         * config/m32r/m32r-protos.h (m32r_pass_by_reference): Remove.
23192         * config/m32r/m32r.c (TARGET_PASS_BY_REFERENCE): New.
23193         (m32r_pass_by_reference): Adjust prototype.  Make static.
23194         Handle mode sizes correctly.
23195         * config/m32r/m32r.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
23196         * config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c
23197         (m68hc11_function_arg_pass_by_reference): Remove.
23198         * config/m68hc11/m68hc11.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
23199         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
23200         * config/mcore/mcore.c (TARGET_PASS_BY_REFERENCE): New.
23201         * config/mcore/mcore.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
23202         * config/mips/mips-protos.h (function_arg_pass_by_reference): Remove.
23203         * config/mips/mips.c (TARGET_PASS_BY_REFERENCE): New.
23204         (mips_va_arg): Use pass_by_reference.
23205         (mips_pass_by_reference): Rename from function_arg_pass_by_reference.
23206         Handle mode sizes correctly.
23207         * config/mips/mips.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
23208         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
23209         * config/mmix/mmix-protos.h (mmix_function_arg_pass_by_reference): Kill.
23210         * config/mmix/mmix.c (TARGET_PASS_BY_REFERENCE): New.
23211         (mmix_pass_by_reference): Rename from
23212         mmix_function_arg_pass_by_reference.
23213         * config/mmix/mmix.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
23214         (FUNCTION_ARG_CALLEE_COPIES): True.
23215         * config/mn10300/mn10300.c (TARGET_PASS_BY_REFERENCE): New.
23216         (mn10300_pass_by_reference): New.
23217         * config/mn10300/mn10300.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
23218         (FUNCTION_ARG_CALLEE_COPIES): True.
23219         * config/pa/pa.c (pa_pass_by_reference): New.
23220         (TARGET_PASS_BY_REFERENCE): New.
23221         * config/pa/pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
23222         (FUNCTION_ARG_CALLEE_COPIES): True.
23223         * config/rs6000/rs6000-protos.h (function_arg_pass_by_reference): Kill.
23224         * config/rs6000/rs6000.c (TARGET_PASS_BY_REFERENCE): New.
23225         (rs6000_pass_by_reference): Rename from function_arg_pass_by_reference.
23226         * config/rs6000/rs6000.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
23227         * config/s390/s390-protos.h (s390_function_arg_pass_by_reference): Kill.
23228         * config/s390/s390.c (TARGET_PASS_BY_REFERENCE): New.
23229         (s390_pass_by_reference): Rename from
23230         s390_function_arg_pass_by_reference.
23231         (s390_function_arg_advance): Don't query pass-by-ref.
23232         (s390_function_arg): Likewise.
23233         (s390_gimplify_va_arg): Use pass_by_reference.
23234         (s390_call_saved_register_used): Likewise.
23235         * config/s390/s390.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
23236         * config/sh/sh.c (TARGET_PASS_BY_REFERENCE): New.
23237         (shcompact_byref, sh_pass_by_reference): New.
23238         * config/sh/sh.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
23239         (SHCOMPACT_BYREF): Remove.
23240         * config/sparc/sparc-protos.h (function_arg_pass_by_reference): Kill.
23241         * config/sparc/sparc.c (TARGET_PASS_BY_REFERENCE): New.
23242         (sparc_pass_by_reference): Rename from function_arg_pass_by_reference.
23243         (sparc_gimplify_va_arg): Use pass_by_reference.
23244         * config/sparc/sparc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
23245         * config/stormy16/stormy16.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
23246         * config/v850/v850.c (TARGET_PASS_BY_REFERENCE): New.
23247         (v850_pass_by_reference): New.
23248         * config/v850/v850.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
23249         (FUNCTION_ARG_CALLEE_COPIES): True.
23250         * doc/tm.texi (TARGET_PASS_BY_REFERENCE): Update from
23251         FUNCTION_ARG_PASS_BY_REFERENCE docs.
23252
23253 2004-07-14  Richard Henderson  <rth@redhat.com>
23254             Richard Sandiford  <rsandifo@redhat.com>
23255
23256         * config/mips/mips-protos.h (mips_va_arg): Delete.
23257         * config/mips/mips.h (EXPAND_BUILTIN_VA_ARG): Delete.
23258         * config/mips/mips.c: Include tree-gimple.h.
23259         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
23260         (mips_arg_info): Remove special handling of must_pass_in_stck args.
23261         (mips_gimplify_va_arg_expr): Rewritten from mips_va_arg.
23262         (function_arg_pass_by_reference): Return true if must_pass_in_stack.
23263
23264 2004-07-13  Bob Wilson  <bob.wilson@acm.org>
23265
23266         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Swap
23267         arguments for COND_EXPR in big-endian adjustment code.
23268
23269 2004-07-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23270
23271         * pa-64.h (ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Delete.
23272         * pa.h (ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Modify for hppa64.
23273         * pa32-regs.h (REG_ALLOC_ORDER): Reorder caller-saved registers.
23274         * pa64-regs.h (REG_ALLOC_ORDER): Likewise.
23275
23276 2004-07-13  Diego Novillo  <dnovillo@redhat.com>
23277
23278         PR tree-optimization/16443
23279         * tree-ssa-alias.c: Add more description for
23280         CALL_CLOBBERED_VARS and ADDRESSABLE_VARS.
23281         * tree-ssa-operands.c (get_asm_expr_operands): Re-order the
23282         clobbering of call-clobbered and addressable variables.  If
23283         there are any before aliases have been computed, add them.
23284
23285 2004-07-13  Diego Novillo  <dnovillo@redhat.com>
23286
23287         * tree-optimize.c (execute_todo): Flush DUMP_FILE before
23288         verification.
23289
23290 2004-07-13  Ulrich Weigand  <uweigand@de.ibm.com>
23291
23292         * config/s390/s390.c (s390_gimplify_va_arg): Use size_int instead
23293         of build_int_2.  Convert both operands of PLUS_EXPR and MULT_EXPR
23294         to the same type.
23295
23296 2004-07-13  Per Bothner  <per@bothner.com>
23297
23298         * collect2.c (main):  Handle --no-demangle and --demangle flags.
23299
23300 2004-07-13  Sebastian Pop  <pop@cri.ensmp.fr>
23301
23302         * Makefile.in (OBJS-common): Add tree-data-ref.o.
23303         (tree-scalar-evolution.o): Add missing dependences on tree-pass.h flags.h.
23304         (tree-data-ref.o): New rule.
23305         * lambda.h: New file.
23306         * tree-data-ref.c: New file.
23307         * tree-data-ref.h: New file.
23308         * tree.c (int_cst_value, tree_fold_gcd): New functions.
23309         * tree.h (int_cst_value, tree_fold_gcd): Declared here.
23310
23311 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
23312
23313         PR target/13926
23314         * config/sparc/sparc-protos.h (output_ubranch): New prototype.
23315         * config/sparc/sparc.c (output_ubranch): New function.
23316         * config/sparc/sparc.md (jump pattern): Use it.
23317
23318 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
23319
23320         PR target/16494
23321         * config/sparc/sparc.c (output_cbranch): Properly guard
23322         the code handling far branches with TARGET_V9.
23323         * config/sparc/sparc.md (length attribute): Document the
23324         side-effect of having a length greater or equal to 3.
23325
23326 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
23327             Lloyd Parkes  <lloyd@must-have-coffee.gen.nz>
23328
23329         PR target/15186
23330         * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Pass
23331         /usr/ucblib/sparcv9 as -R path when -compat-bsd is specified.
23332
23333 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
23334             Martin Sebor  <sebor@roguewave.com>
23335
23336         PR target/12602
23337         * doc/invoke.texi (SPARC options): Document -threads
23338         and -pthreads on Solaris.
23339
23340 2004-07-13  Richard Henderson  <rth@redhat.com>
23341
23342         * builtins.c (std_gimplify_va_arg_expr): Handle types passed
23343         by reference.
23344         (ind_gimplify_va_arg_expr): Remove.
23345         * tree.h (ind_gimplify_va_arg_expr): Remove.
23346         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Don't use it.
23347         * config/mmix/mmix.c (mmix_function_arg_pass_by_reference): Allow
23348         argsp to be null.
23349
23350         * config/arc/arc.c (arc_gimplify_va_arg_expr): Remove.
23351         (TARGET_GIMPLIFY_VA_ARG_EXPR): Remove.
23352         * config/cris/cris.c, config/fr30/fr30.c, config/frv/frv.c,
23353         config/iq2000/iq2000.c, config/m32r/m32r.c, config/mmix/mmix.c,
23354         config/mn10300/mn10300.c, config/v850/v850.c: Similarly.
23355
23356 2004-07-13  Richard Henderson  <rth@redhat.com>
23357
23358         * function.c (pass_by_reference): New.
23359         (assign_parm_find_data_types): Use it.
23360         * calls.c (initialize_argument_information): Likewise.
23361         (emit_library_call_value_1): Likewise.
23362         * expr.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
23363         * function.h (pass_by_reference): Declare.
23364
23365 2004-07-13  Richard Henderson  <rth@redhat.com>
23366
23367         * target-def.h (TARGET_MUST_PASS_IN_STACK): New.
23368         * target.h (struct gcc_target): Add calls.must_pass_in_stack.
23369         * expr.h (MUST_PASS_IN_STACK): Remove.
23370         * system.h (MUST_PASS_IN_STACK): Poison.
23371         * tree.h (must_pass_in_stack_var_size): Declare.
23372         (must_pass_in_stack_var_size_or_pad): Declare.
23373         * calls.c (must_pass_in_stack_var_size): New.
23374         (must_pass_in_stack_var_size_or_pad): Rename from
23375         default_must_pass_in_stack.
23376         * config/alpha/alpha.c (unicosmk_must_pass_in_stack): New.
23377         (TARGET_MUST_PASS_IN_STACK): New.
23378         * config/alpha/unicosmk.h (MUST_PASS_IN_STACK): Remove.
23379         * config/fr30/fr30.c (fr30_must_pass_in_stack): New.
23380         (TARGET_MUST_PASS_IN_STACK): New.
23381         * config/fr30/fr30.h (MUST_PASS_IN_STACK): Remove.
23382         * config/frv/frv.c (frv_must_pass_in_stack): New.
23383         (TARGET_MUST_PASS_IN_STACK): New.
23384         * config/frv/frv.h (MUST_PASS_IN_STACK): Remove.
23385         * config/i386/i386-protos.h (ix86_must_pass_in_stack): Remove.
23386         * config/i386/i386.c (TARGET_MUST_PASS_IN_STACK): New.
23387         (ix86_must_pass_in_stack): Make static.
23388         * config/i386/i386.h (MUST_PASS_IN_STACK): Remove.
23389         * config/ia64/ia64.c (TARGET_MUST_PASS_IN_STACK): New.
23390         * config/ia64/ia64.h (MUST_PASS_IN_STACK): Remove.
23391         * config/m32r/m32r.c (TARGET_MUST_PASS_IN_STACK): New.
23392         * config/m32r/m32r.h (MUST_PASS_IN_STACK): Remove.
23393         * config/mcore/mcore-protos.h (mcore_must_pass_on_stack): Remove.
23394         * config/mcore/mcore.c (TARGET_MUST_PASS_IN_STACK): New.
23395         (mcore_must_pass_on_stack): Remove.
23396         * config/mcore/mcore.h (MUST_PASS_IN_STACK): Remove.
23397         * config/mips/mips.c (TARGET_MUST_PASS_IN_STACK): New.
23398         * config/mips/mips.h (MUST_PASS_IN_STACK): Remove.
23399         * config/pa/pa.c (TARGET_MUST_PASS_IN_STACK): New.
23400         * config/pa/pa.h (MUST_PASS_IN_STACK): Remove.
23401         * config/rs6000/aix.h (MUST_PASS_IN_STACK): Remove.
23402         * config/rs6000/linux64.h (MUST_PASS_IN_STACK): Remove.
23403         * config/rs6000/rs6000.c (rs6000_must_pass_in_stack): New.
23404         (TARGET_MUST_PASS_IN_STACK): New.
23405         * config/sh/sh.c (TARGET_MUST_PASS_IN_STACK): New.
23406         * config/sh/sh.h (MUST_PASS_IN_STACK): Remove.
23407         * config/sparc/sparc.c (TARGET_MUST_PASS_IN_STACK): New.
23408         * config/sparc/sparc.h (MUST_PASS_IN_STACK): Remove.
23409         * config/xtensa/xtensa.c (TARGET_MUST_PASS_IN_STACK): New.
23410         * config/xtensa/xtensa.h (MUST_PASS_IN_STACK): Remove.
23411         * doc/tm.texi (TARGET_MUST_PASS_IN_STACK): Update from
23412         MUST_PASS_IN_STACK.
23413
23414         * calls.c, function.c, config/alpha/alpha.c, config/alpha/alpha.h,
23415         config/alpha/unicosmk.h, config/alpha/vms.h, config/c4x/c4x.c,
23416         config/cris/cris.h, config/fr30/fr30.c, config/fr30/fr30.h,
23417         config/frv/frv.c, config/i386/i386.c, config/iq2000/iq2000.c,
23418         config/mcore/mcore.c, config/mcore/mcore.h, config/mips/mips.c,
23419         config/mmix/mmix.c, config/mmix/mmix.h, config/rs6000/rs6000.c,
23420         config/sh/sh.c, config/sh/sh.h, config/stormy16/stormy16.c,
23421         config/xtensa/xtensa.c: Use target hook.
23422
23423 2004-07-13  Anthony Heading  <aheading@jpmorgan.com>
23424
23425         * configure.ac (gcc_cv_as_offsetable_lo10): Fix a typo.
23426         * configure: Rebuilt.
23427
23428 2004-07-13  Richard Sandiford  <rsandifo@redhat.com>
23429
23430         * doc/invoke.texi: Remove documentation for MIPS -mrnames option.
23431         * config/mips/mips.h (mips_reg_names): Don't declare.
23432         (MASK_NAME_REGS): Delete.  Shuffle other MASK_* values down.
23433         (TARGET_NAME_REGS): Delete.
23434         (TARGET_SWITCHES): Remove -mrnames.
23435         (REGISTER_NAMES): Initialise with the old contents of mips_reg_names[].
23436         (ADDITIONAL_REGISTER_NAMES): Remove entries for names mentioned
23437         in REGISTER_NAMES.
23438         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Delete.
23439         (override_options): Remove handling of TARGET_NAME_REGS.
23440
23441 2004-07-13  Richard Sandiford  <rsandifo@redhat.com>
23442
23443         * config/mips/mips.h (TARGET_*): Boolify.
23444
23445 2004-07-12  Nick Clifton  <nickc@redhat.com>
23446
23447         * config.gcc: Add sh-*-symbianelf target.
23448         * config/sh/sh.c: Add new target macros:
23449         TARGET_ENCODE_SECTION_INFO, TARGET_STRIP_NAME_ENCODING,
23450         TARGET_CXX_IMPORT_EXPORT_CLASS.
23451         (sh_file_start): Create a definition of the .directive section.
23452         (sh_attribute): Add dllimport and dllexport attributes.
23453         * config/sh/symbian-pre.h: New file.
23454         * config/sh/symbian-post.h: New file.
23455         * config/sh/symbian.c: New file. Contains Symbian specific
23456         functions.
23457         * config/sh/sh-protos.h: Add prototypes for new functions
23458         provided by symbian.c.
23459         * config/sh/t-symbian: New file.
23460         * doc/extend.texi: Document support for dllimport and dllexport
23461         attributes by the sh-symbianelf target.
23462
23463 2004-07-12  James E Wilson  <wilson@specifixinc.com>
23464
23465         * Makefile.in (AR): Use @AR@ not ar.
23466         (NM): New.
23467         (AR_FOR_TARGET): Use $(AR) not ar for native.
23468         (NM_FOR_TARGET): Use $(NM) not nm for native.
23469         * configure.ac: Add AC_CHECK_PROG calls for NM and AR.
23470         * configure: Regenerate.
23471
23472 2004-07-12  David S. Miller  <davem@nuts.davemloft.net>
23473
23474         * config/sparc/sparc.md (ashlsi3): Eliminate const 1
23475         special case.
23476         (ashldi3_sp64): Likewise.
23477
23478 2004-07-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23479
23480         PR target/16477
23481         * pa.c (function_arg): Update comment.
23482         * pa.h (BLOCK_REG_PADDING): Define.
23483
23484 2004-07-12  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
23485
23486         PR tree-optimization/16461
23487         * tree-tailcall.c (independent_of_stmt_p): Handle non-SSA name
23488         arguments of phi nodes.
23489
23490 2004-07-12  Devang Patel  <dpatel@apple.com>
23491
23492         * doc/invoke.texi (Darwin Options): Document -gused and -gfull.
23493
23494 2004-07-12  Steve Ellcey  <sje@cup.hp.com>
23495
23496         * function.c (expand_function_start): Ensure r_save is in Pmode.
23497         * calls.c (prepare_call_address): Ensure static_chain_value is
23498         in Pmode.
23499         * builtins.c (expand_builtin_nonlocal_goto): Ensure r_label and
23500         r_save_area are in Pmode.
23501         * config/ia64/ia64.c (ia64_initialize_trampoline): Ensure addr,
23502         fnaddr, and static_chain are in Pmode.
23503
23504 2004-07-12  Vladimir Makarov  <vmakarov@redhat.com>
23505
23506         PR target/16445
23507         * config/ia64/ia64.c (bundling): Don't count ignored insns.
23508
23509 2004-07-12  Richard Henderson  <rth@redhat.com>
23510
23511         * target.h (struct gcc_target): Move gimplify_va_arg_expr
23512         next to build_builtin_va_list.
23513         * target-def.h (TARGET_GIMPLIFY_VA_ARG_EXPR): Update to match.
23514         * builtins.c (gimplify_va_arg_expr): Likewise.
23515         * gimplify.c (copy_if_shared_r): Likewise.
23516
23517 2004-07-12  Alexandre Oliva  <aoliva@redhat.com>
23518
23519         * passes.c (rest_of_decl_compilation): Don't defer call of
23520         assemble_variable if its DECL_RTL is already set.
23521
23522 2004-07-12  Sebastian Pop  <pop@cri.ensmp.fr>
23523
23524         * cfgloop.h (struct loop): Add nb_iterations field.
23525         (current_loops): Declare.
23526         * tree-chrec.c (chrec_not_analyzed_yet,
23527         chrec_dont_know, chrec_known, count_ev_in_wider_type,
23528         chrec_contains_symbols_defined_in_loop): Remove the temporary
23529         hooks.
23530         * tree-flow-inline.h (loop_containing_stmt): New function.
23531         * tree-scalar-evolution.c: Add implementation.
23532         * tree-scalar-evolution.h: Add declarations.
23533
23534 2004-07-12 Vladimir Makarov <vmakarov@redhat.com>
23535
23536         PR rtl-optimization/15921
23537         * Makefile.in (global.o): Add recog.h.
23538
23539         * global.c (recog.h): Add the include-clause.
23540         (bb_info): New member earlyclobber.
23541         (allocate_bb_info, free_bb_info): Initialize/finish the new
23542         member.
23543         (earlyclobber_regclass, earlyclobber_regclass_length): The new
23544         global variables.
23545         (check_earlyclobber, regclass_intersect,
23546         mark_reg_use_for_earlyclobber, mark_reg_use_for_earlyclobber_1):
23547         New functions.
23548         (calculate_local_reg_bb_info): Calculate value of earlyclobber.
23549         (make_accurate_live_analysis): Modify pavin.
23550
23551 2004-07-12  Diego Novillo  <dnovillo@redhat.com>
23552
23553         * tree-cfg.c (find_taken_edge): Statically compute the truth
23554         value of a predicate comparing an SSA_NAME to itself.
23555
23556 2004-07-12  Roger Sayle  <roger@eyesopen.com>
23557
23558         * config/rs6000/rs6000.c (rs6000_rtx_costs): Indicate that the
23559         rs6000 doesn't have shift-and-add or shift-and-sub instructions
23560         by returning the cost of a multiplication plus an addition.
23561
23562 2004-07-12  Paolo Bonzini  <bonzini@gnu.org>
23563
23564         PR tree-optimization/14107
23565         * gimplify.c (gimplify_return_expr): Accept a
23566         RETURN_EXPR with an error argument.
23567         * tree-optimize.c (init_tree_optimization_passes):
23568         Run pass_warn_function_return at -O0.
23569
23570 2004-07-12  Roger Sayle  <roger@eyesopen.com>
23571
23572         * doc/invoke.texi: Correct -fasynchronous-unwind-tables option
23573         index entry.
23574
23575 2004-07-12  Richard Sandiford  <rsandifo@redhat.com>
23576
23577         * config/mips/mips.c (mips_use_dfa_pipeline_interface): Delete.
23578         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
23579         * config/mips/3000.md: Add copyright notice.  Remove automota and
23580         function units; use generic ones instead.  Only define reservations
23581         for things that are different from generic.md.  Extend each clause
23582         to include r3900.
23583         * config/mips/{4000,4100,4300,4600,5000,6000,generic}.md: New files.
23584         * config/mips/mips.md: Include them. Remove define_function_units.
23585         (alu, imuldiv): New automata and units.
23586
23587 2004-07-12  Ben Elliston  <bje@au.ibm.com>
23588
23589         * doc/invoke.texi (Optimize Options): Document -frename-registers
23590         not being enabled by default at -O3.
23591
23592 2004-07-11  Roger Sayle  <roger@eyesopen.com>
23593
23594         * fold-const.c (fold) <PLUS_EXPR>: Canonicalize X + -C as X - C for
23595         floating point additions, to keep real immediate constant positive.
23596         <MINUS_EXPR>:  For floating point subtractions, only transform X - -C
23597         into X + C, and leave positive real constants as X - C.
23598
23599 2004-07-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23600
23601         * pa.c (hppa_gimplify_va_arg_expr): Remove comment.
23602
23603 2004-07-11  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
23604
23605         PR tree-optimization/15654
23606         * tree-tailcall.c (eliminate_tail_call): Remove unreachable code.
23607
23608 2004-07-11  Roger Sayle  <roger@eyesopen.com>
23609
23610         * builtins.c (fold_builtin_fputs): Don't bother converting the
23611         return type to integer_type_node, as we've already checked that
23612         the result will be ignored.
23613
23614         * tree-eh.c (tree_could_trap_p): Add support for -ftrapv such
23615         that signed addition, subtraction, multiplication, division,
23616         remainder, negation and absolute value may potentially trap.
23617
23618         * fold-const.c (fold_ignored_result): New function to strip
23619         non-side-effecting tree nodes from an expression whose result
23620         is ignored.
23621         (fold_convert): Call fold_ignored_result when casting a value
23622         to VOID_TYPE.
23623         (omit_one_operand):  Call fold_ignored_result on the "omitted"
23624         operand when building a COMPOUND_EXPR.
23625         (pedantic_omit_one_operand): Likewise.
23626         * tree.h (fold_ignored_result): Prototype here.
23627         * tree-ssa-ccp.c (ccp_fold_builtin): Call fold_ignored_result
23628         when we're going to ignore the result.
23629
23630 2004-07-11  Richard Henderson  <rth@redhat.com>
23631
23632         PR tree-opt/16383
23633         * tree-ssa-ccp.c (fold_stmt_r): Split out...
23634         * tree.c (fields_compatible_p, find_compatible_field): ... new.
23635         * tree.h (fields_compatible_p, find_compatible_field): Declare.
23636         * tree-sra.c (sra_hash_tree): Hash fields by offset.
23637         (sra_elt_eq): Use fields_compatible_p.
23638         (generate_one_element_ref): Use find_compatible_field.
23639
23640 2004-07-11  Richard Henderson  <rth@redhat.com>
23641
23642         PR tree-opt/16422
23643         * tree-sra.c (generate_one_element_init): New.
23644         (generate_element_init): Use it.
23645         (scalarize_init): Push/pop gimplify context around it.
23646         (find_new_referenced_vars_1, find_new_referenced_vars): New.
23647         * gimplify.c (gimplify_expr): Allow SSA_NAME.
23648
23649 2004-07-11  Roger Sayle  <roger@eyesopen.com>
23650
23651         * rtlanal.c (insn_rtx_cost): New function, moved and renamed from
23652         combine.c's combine_insn_cost.
23653         * rtl.h (insn_rtx_cost): Prototype here.
23654         * combine.c (combine_insn_cost): Delete function.
23655         (combine_validate_cost): Update callers of combine_insn_cost to
23656         call insn_rtx_cost instead.
23657         (combine_instructions): Likewise.  Use NONJUMP_INSN_P to avoid
23658         requesting the rtx_cost of call and/or jump instructions.
23659
23660         * ifcvt.c (total_bb_rtx_cost): Use insn_rtx_cost instead of calling
23661         rtx_cost directly.  Don't request/use the cost of call or jump
23662         instructions.  Return -1 if the cost of any instruction can't be
23663         determined (or the BB contains a function call).
23664         (find_if_case_1): Abort transformation if total_bb_rtx_cost returns
23665         -1 (i.e. can't determine the cost of any instruction or the basic
23666         block contains a subroutine call).
23667         (find_if_case_2): Likewise.
23668
23669 2004-07-11  Roger Sayle  <roger@eyesopen.com>
23670
23671         * rs6000.c (struct processor_costs): Change semantics of fields to
23672         include the COST_N_INSNS scaling, and update all initializers.
23673         (rs6000_rtx_costs): Don't use COSTS_N_INSNS on rs6000_cost fields.
23674         Use COSTS_N_INSNS(1) for NOT, SIGN_EXTEND, ZERO_EXTEND and COMPARE.
23675         Use rs6000_cost->fp for both FLOAT_TRUNCATE and UNSPEC_FRSP.  When
23676         optimizing for size, use COSTS_N_INSNS(1) for CALL and IF_THEN_ELSE.
23677
23678 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
23679
23680         * LANGUAGES: Remove obsolete information.
23681
23682 2004-07-11  Ulrich Weigand  <uweigand@de.ibm.com>
23683
23684         * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): For SIGSEGV and
23685         SIGBUS signal frames, the PSW address points *to* the faulting
23686         instruction, not after it.
23687
23688 2004-07-11  Ulrich Weigand  <uweigand@de.ibm.com>
23689
23690         * config/s390/s390.c (legitimize_tls_address): Handle constant offsets
23691         added to TLS symbol addresses.
23692
23693 2004-07-11  Richard Henderson  <rth@redhat.com>
23694
23695         * expmed.c (init_expmed): Use stack-local structures for
23696         temporary rtl.  Don't recognize shifts.
23697
23698 2004-07-11  Richard Henderson  <rth@redhat.com>
23699
23700         * expr.c (store_expr): Don't fiddle subreg promotion for types
23701         with precision smaller than the mode.
23702
23703 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
23704
23705         * tree.h (all_types_permanent): Remove.
23706
23707 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
23708
23709         * langhooks.h (estimate_num_insns, pushlevel, poplevel, set_block,
23710         maybe_build_cleanup, update_decl_after_saving): Remove hooks.
23711         * langhooks.c (lhd_clear_binding_stack): Remove.
23712         * langhooks-def.h (lhd_clear_binding_stack,
23713         LANG_HOOKS_MAYBE_BUILD_CLEANUP,
23714         LANG_HOOKS_UPDATE_DECL_AFTER_SAVING,
23715         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS, LANG_HOOKS_PUSHLEVEL,
23716         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
23717         (LANG_HOOKS_CLEAR_BINDING_STACK): Define to lhd_do_nothing.
23718         * system.h (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
23719         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_SET_BLOCK,
23720         LANG_HOOKS_MAYBE_BUILD_CLEANUP,
23721         LANG_HOOKS_UPDATE_DECL_AFTER_SAVING, LANG_HOOKS_POPLEVEL): Poison.
23722         * tree.h (poplevel): Don't declare.
23723         * c-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,
23724         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
23725         * objc/objc-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK,
23726         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK):
23727         Remove.
23728
23729 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
23730
23731         PR tree-optimization/16437
23732         * c-common.c (shorten_compare): Don't mark result of conversion to
23733         narrower signed type as overflowing.
23734         * fold-const.c (decode_field_reference): Determine whether
23735         signedness comes from outer type using precision rather than size.
23736
23737 2004-07-11  Phil Edwards  <phil@codesourcery.com>
23738
23739         * configure.ac:  Alphabetize --enable-checking list, add
23740         missing valgrind entry.
23741         * configure:  Regenerate.
23742
23743 2004-07-11  Phil Edwards  <phil@codesourcery.com>
23744
23745         * doc/install.texi (Testing):  Fix syntax in "make check" example.
23746
23747 2004-07-10  James E Wilson  <wilson@specifixinc.com>
23748
23749         * config/gofast.h (gofast_maybe_init_libfuncs): Use SImode for litodp.
23750
23751 2004-07-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
23752
23753         PR rtl-optimization/16001
23754         * loop-iv.c (iv_number_of_iterations): Prevent copy propagation in
23755         niter_expr.
23756
23757 2004-07-10  Geoffrey Keating  <geoffk@apple.com>
23758
23759         * config/darwin.h (LINK_COMMAND_SPEC): Don't call c++filt.
23760
23761 2004-07-10  Steve Kargl  <sgk@troutmask.apl.washington.edu>
23762             James Morrison  <phython@gcc.gnu.org>
23763
23764         * doc/contrib.texi (Contributors): Add gfortran contributors and
23765         fix a couple of typos.
23766
23767 2004-07-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
23768
23769         PR rtl-optimization/15387
23770         * calls.c (check_sibcall_argument_overlap_1): Handle pointers
23771         to incoming args space correctly.
23772
23773 2004-07-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23774
23775         * pa.c (output_indirect_call): Only use %r2 as the link register in
23776         indirect calls with the long PA 2.0 pc-relative branch.
23777
23778 2004-07-10  Daniel Jacobowitz  <dan@debian.org>
23779
23780         * config/i386/i386.c (override_options): Pick a 64-bit CPU
23781         for the default tuning if TARGET_64BIT.
23782
23783 2004-07-10  Richard Henderson  <rth@redhat.com>
23784
23785         * builtins.c (std_gimplify_va_arg_expr): Widen align/boundary
23786         to HOST_WIDE_INT.  Fold pad-args-down arithmetic.
23787
23788 2004-07-10  Jakub Jelinek  <jakub@redhat.com>
23789
23790         * expr.h (store_bit_field, extract_bit_field): Remove last argument.
23791         * expmed.c (store_bit_field, extract_bit_field): Remove last
23792         argument.
23793         * builtins.c (expand_builtin_signbit): Adjust callers.
23794         * optabs.c (expand_vector_binop, expand_vector_unop): Likewise.
23795         * calls.c (store_unaligned_arguments_into_pseudos): Likewise.
23796         * ifcvt.c (noce_emit_move_insn): Likewise.
23797         * stmt.c (expand_return): Likewise.
23798         * expr.c (emit_group_load, emit_group_store, copy_blkmode_from_reg,
23799         store_field, expand_expr_real_1): Likewise.
23800
23801 2004-07-10  Richard Henderson  <rth@redhat.com>
23802
23803         * builtins.c (std_gimplify_va_arg_expr): Fix borked BIT_AND_EXPR.
23804
23805 2004-07-09  Mike Stump  <mrs@apple.com>
23806
23807         * config/darwin.c (no_dead_strip): Add.
23808         (HAVE_DEAD_STRIP): Add.
23809         (darwin_emit_unwind_label): Ensure that we don't dead code strip
23810         the .eh label.
23811
23812 2004-07-09  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
23813
23814         * tree-ssa-loop-im.c: New file.
23815         * Makefile.in (tree-ssa-loop-im.o): Add.
23816         * cfgloop.c (superloop_at_depth): New function.
23817         * cfgloop.h (superloop_at_depth): Declare.
23818         * common.opt (ftree-lim): New flag.
23819         * expr.c (array_ref_up_bound): New function.
23820         * params.def (PARAM_LIM_EXPENSIVE): New parameter.
23821         * timevar.def (TV_LIM): New timevar.
23822         * tree-dfa.c (compute_immediate_uses): Respect TDFA_USE flags when
23823         computing immediate uses of a phi node.
23824         * tree-flow.h (struct tree_ann_common_d): Add aux field.
23825         (loop_commit_inserts, for_each_index, tree_ssa_lim): Declare.
23826         * tree-optimize.c (init_tree_optimization_passes): Add pass_lim.
23827         * tree-pass.h (pass_lim): Declare.
23828         * tree-ssa-loop.c (tree_ssa_loop_im, gate_tree_ssa_loop_im): New
23829         functions.
23830         (pass_lim): New pass structure.
23831         * tree-eh.c (tree_could_trap_p): Handle ARRAY_REFs correctly.
23832         * tree.c (in_array_bounds_p): New function.
23833         * tree.h (TREE_THIS_NOTRAP): Define also for ARRAY_REFs.
23834         (in_array_bounds_p, array_ref_up_bound): Declare.
23835         * doc/invoke.texi (-ftree-lim, --param lim-expensive): Document.
23836         * doc/passes.texi (tree-ssa-loop-im.c): Document.
23837
23838 2004-07-09  Richard Henderson  <rth@redhat.com>
23839
23840         * builtins.c (expand_builtin_stpcpy): Don't modify len.
23841
23842         * tree-ssa-ccp.c (ccp_fold_builtin): Strip conversion exprs
23843         with prejudice.
23844
23845 2004-07-10  Kelley Cook  <kcook@gcc.gnu.org>
23846
23847         * flags.h: Delete redundant prototypes that are being generated
23848         in options.h from common.opt.
23849         * common.opt: Add in the expository comments formerly in flags.h.
23850
23851 2004-07-09  Jan Beulich  <jbeulich@novell.com>
23852
23853         * config/i386/i386.c (init_cumulative_args): Set mmx/sse registers
23854         available for use only when TARGET_MMX/_SSE is set, and check for
23855         variable argument function if any register count is non-zero.
23856         (function_arg): Correctly suppress repeated warnings for passing SSE
23857         vectors are arguments without SSE enabled.
23858         (ix86_function_arg_boundary): Without SSE enabled, the use of what
23859         would be SSE register modes does no longer influence the alignment.
23860
23861 2004-07-09  Richard Henderson  <rth@redhat.com>
23862
23863         * builtins.c (std_gimplify_va_arg_expr): Deny ARGS_GROW_DOWNWARD.
23864         Always align upward to arg boundary.  Use size_in_bytes/round_up.
23865         Maintain type-correctness of constants.
23866         * stor-layout.c (round_up, round_down): Special-case powers of 2.
23867
23868 2004-07-09  David S. Miller  <davem@nuts.davemloft.net>
23869
23870         * config/sparc/sparc.c (*_costs): Scale instruction costs
23871         by COSTS_N_INSNS.
23872         (sparc_rtx_costs): Adjust as appropriate.
23873
23874 2004-07-09  Jan Beulich  <jbeulich@novell.com>
23875
23876         * config/i386/mm3dnow.h: New.
23877         * config.gcc: Add mm3dnow.h to extra_headers for i?86 and x86-64.
23878
23879 2004-07-09  Richard Henderson  <rth@redhat.com>
23880
23881         * simplify-rtx.c (simplify_const_relational_operation): Only
23882         look at bounds of scalar integers.
23883
23884 2004-07-09  Jan Beulich  <jbeulich@novell.com>
23885
23886         * config/i386/i386.md (sse2_clflush): Use correct operand for clflush.
23887
23888 2004-07-09  Andrew Pinski  <apinski@apple.com>
23889
23890         * objc/objc-act.c (build_module_descriptor): Mark UOBJC_MODULES_decl as
23891         always referenced.
23892         (synth_forward_declarations): Likewise for UOBJC_CLASS_decl and
23893         UOBJC_METACLASS_decl.
23894
23895 2004-07-09  James E Wilson  <wilson@specifixinc.com>
23896
23897         PR target/16364
23898         * config/ia64/ia64.c (ia64_function_arg): For a single element HFA,
23899         do return a parallel if hfa_mode == XFmode and mode == TImode.
23900
23901 2004-07-09  Jan Beulich  <jbeulich@novell.com>
23902
23903         * c-typeck.c (build_unary_op): include VECTOR_TYPE in set of codes
23904         permissible for unary plus.
23905
23906 2004-07-09  Jan Beulich  <jbeulich@novell.com>
23907
23908         * builtin-types.def (BT_UINT): Rename from BT_UNSIGNED.
23909         (BT_FN_UINT): Rename from BT_FN_UNSIGNED.
23910         (BT_FN_PTR_UINT): Rename from BT_FN_PTR_UNSIGNED.
23911         (BT_ULONG, BT_ULONGLONG, BT_UINTMAX, BT_FN_INT_UINT, BT_FN_INT_ULONG,
23912         BT_FN_INT_ULONGLONG, BT_FN_INT_INTMAX, BT_FN_INT_UINTMAX): New.
23913         * builtins.def (BUILTIN_CLZxxx, BUILTIN_CTXxxx, BUILTIN_PARITYxxx,
23914         BUILTIN_POPCOUNTxxx): Arguments are unsigned.
23915         (BUILTIN_xxxIMAX): New.
23916         * builtins.c (expand_builtin): Handle BUILT_IN_FFSIMAX,
23917         BUILT_IN_CLZIMAX, BUILT_IN_CTZIMAX, BUILT_IN_POPCOUNIMAX, and
23918         BUILT_IN_PARITYIMAX.
23919
23920 2004-07-09  David S. Miller  <davem@nuts.davemloft.net>
23921
23922         * config/sparc/sparc.h (processor_costs): Define.
23923         (sparc_costs): Declare.
23924         * config/sparc/sparc.c (cypress_costs, supersparc_costs,
23925         hypersparc_costs, sparclet_costs, ultrasparc_costs,
23926         ultrasparc3_costs): New.
23927         (sparc_override_options): Set sparc_costs as appropriate.
23928         (sparc_rtx_costs): Use sparc_costs instead of messy
23929         conditionals.
23930
23931 2004-07-09  Steven Bosscher  <stevenb@suse.de>
23932
23933         * doc/md.texi (Processor pipeline description): Mention that
23934         the old pipeline description is deprecated.
23935
23936         * config/rs6000/7450.md (automaton ppc7450): Split up, move
23937         mciu_7450 function unit to...
23938         (automaton ppc7450mciu): ...new automaton.
23939
23940         * haifa-sched.c (insert_schedule_bubbles_p): Remove.
23941         (schedule_block): Don't consider inserting bubbles.
23942         (sched_init): Don't initialize DFA bubbles.
23943         * target-def.h (TARGET_SCHED_INIT_DFA_BUBBLES,
23944         TARGET_SCHED_DFA_BUBBLE): Remove.
23945         * target.h (init_dfa_bubbles, dfa_bubble): Remove hooks.
23946         * doc/tm.texi (TARGET_SCHED_INIT_DFA_BUBBLES,
23947         TARGET_SCHED_DFA_BUBBLE): Remove documentation.
23948
23949         * stmt.c (conditional_context): Remove prototype.
23950         * tree.h (conditional_context): Remove.
23951         * tree-cfg.c (pre_insert_on_edge): Remove.
23952
23953         * c-common.h (c_expand_asm_operands): Remove prototype.
23954         * c-typeck.c (c_expand_asm_operands): Remove.
23955
23956 2004-07-09  Jan Beulich  <jbeulich@novell.com>
23957
23958         * config/i386/i386.c (classify_argument): Treat V1xx modes the same as
23959         their base modes. CTImode, TCmode, and XCmode must be passed in memory.
23960         TFmode (__float128) must be is an SSE/SSEUP pair. V2SImode, V4HImode,
23961         and V8QI are class SSE. All sufficiently small remaining vector modes
23962         must be passed in one or two integer registers.
23963         (ix86_libcall_value): TFmode must be returned in xmm0, XCmode must be
23964         returned in memory.
23965         (bdesc_2arg, ix86_init_mmx_sse_builtins): __builtin_ia32_pmuludq and
23966         __builtin_ia32_pmuludq128 have non-uniform argument and return types
23967         and must thus be handled explicitly.
23968         * config/i386/i386.md (*movdi_1_rex64): Add cases for moving between
23969         MMX and XMM regs.
23970         (movv8qi_internal, movv4hi_internal, movv2si_internal,
23971         movv2sf_internal): Permit moving between MMX and XMM registers (since
23972         MMX areguments and return values are passed in XMM registers).
23973         (sse2_umulsidi3): Correct type and mode.
23974
23975 2004-07-09  Richard Henderson  <rth@redhat.com>
23976
23977         * tree-cfg.c (dump_cfg_stats): Fix 64-bit format mismatch errors.
23978
23979 2004-07-09  Eric Christopher  <echristo@redhat.com>
23980
23981         * config/rs6000/40x.md: Split into two automatons.
23982
23983 2004-07-09  Zack Weinberg  <zack@codesourcery.com>
23984             Andrew Pinski  <apinski@apple.com>
23985
23986         * c-opts.c (c_common_post_options): Force unit-at-a-time mode
23987         on when we have more than one input file.
23988         (c_common_parse_file): Restore loop over all input files.
23989         Clarify diagnostic for -dy when YYDEBUG wasn't defined.
23990
23991         * c-decl.c (set_type_context): New function.
23992         (pop_scope): Use it to set context of types.  When we
23993         encounter a TYPE_DECL, set the context of the attached type too.
23994         (pop_file_scope): Don't call cpp_undef_all here.
23995         (diagnose_mismatched_decls): Do not complain about a second
23996         definition of an 'extern inline' function if it's not in the
23997         same translation unit.  Do not complain about inline
23998         declaration after use if the use was in a different
23999         translation unit.
24000         (merge_decls): Don't clobber olddecl's DECL_CONTEXT.
24001         (pushdecl): Do not put DECL_EXTERNAL, !TREE_PUBLIC decls in
24002         the external scope.
24003         (pushdecl_top_level): Likewise.
24004         (grokdeclarator): Clarify what is going on with setting
24005         DECL_EXTERNAL on function types, a little.
24006         (c_write_global_declarations): Don't do anything if
24007         -fsyntax-only or errors have been encountered.
24008
24009 2004-07-09  Zack Weinberg  <zack@codesourcery.com>
24010
24011         * vec.c, vec.h (vec_assert_fail): Use unsigned int for LINE argument.
24012
24013 2004-07-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
24014
24015         PR target/16459
24016         * pa.c (output_indirect_call): Use %r2 as the link register when
24017         calling $$dyncall with a pc-relative branch.
24018
24019 2004-07-08  Gerald Pfeifer  <gerald@pfeifer.com>
24020
24021         * doc/install.texi (Binaries): Mention OpenPKG.
24022
24023 2004-07-09  Diego Novillo  <dnovillo@redhat.com>
24024
24025         Fix PR tree-optimization/15555
24026         * tree-dfa.c (dump_variable): If the variable is a pointer
24027         SSA_NAME, also dump its points-to information.
24028         * tree-flow.h (struct ptr_info_def): Add field
24029         is_dereferenced.
24030         (dump_points_to_info_for): Declare.
24031         (debug_points_to_info_for): Declare.
24032         * tree-optimize.c (init_tree_optimization_passes): Add a
24033         second alias analysis pass after DOM2.
24034         Move pass_del_pta to a later spot.
24035         * tree-ssa-alias.c (compute_points_to_and_addr_escape): Do not
24036         create a name tags when we find a dereferenced pointer.  Just
24037         mark the pointer dereferenced.
24038         (collect_points_to_info_for): Move code to clear points-to
24039         information to create_name_tags.
24040         (create_name_tags): New function.
24041         (compute_flow_sensitive_aliasing): Call it.
24042         (setup_pointers_and_addressables): Mark type tags for renaming
24043         here instead of ...
24044         (create_memory_tag): ... here.
24045         (merge_pointed_to_info): Do not merge PT_MALLOC attributes.
24046         (dump_points_to_info_for): Declare extern.
24047         (debug_points_to_info_for): New function.
24048
24049 2004-07-09  Paolo Bonzini  <bonzini@gnu.org>
24050
24051         * config/arc/arc.md: Switch to DFA-based scheduler description.
24052         * config/arc/arc.c: Switch to DFA-based scheduler description.
24053
24054 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
24055
24056         * arm/unknown-elf.h (TARGET_DEFAULT): Don't require an APCS frame
24057         pointer.
24058
24059 2004-07-09  Richard Henderson  <rth@redhat.com>
24060
24061         * config/xtensa/xtensa-protos.h (xtensa_va_arg): Remove.
24062         * config/xtensa/xtensa.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
24063         (xtensa_gimplify_va_arg_expr): Rewrite from xtensa_va_arg.
24064         * config/xtensa/xtensa.h (EXPAND_BUILTIN_VA_ARG): Remove.
24065
24066         * config/v850/v850-protos.h (v850_va_arg): Remove.
24067         * config/v850/v850.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
24068         (v850_gimplify_va_arg_expr): Rewrite from v850_va_arg.
24069         * config/v850/v850.h (EXPAND_BUILTIN_VA_ARG): Remove.
24070         (FUNCTION_ARG_PASS_BY_REFERENCE): Handle variable size types.
24071         (FUNCTION_ARG_CALLEE_COPIES): Use FUNCTION_ARG_PASS_BY_REFERENCE.
24072
24073 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
24074
24075         PR target/12133
24076         * arm.c (arm_legitimate_index_p) Allow DFmode for soft-float
24077         and DImode to use +/-4k offset.
24078
24079 2004-07-09  Richard Henderson  <rth@redhat.com>
24080
24081         * config/stormy16/stormy16-protos.h (xstormy16_expand_builtin_va_arg):
24082         Remove.
24083         * config/stormy16/stormy16.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
24084         (xstormy16_gimplify_va_arg_expr): Rewrite from
24085         xstormy16_expand_builtin_va_arg.
24086         * config/stormy16/stormy16.h (EXPAND_BUILTIN_VA_ARG): Remove.
24087
24088         * config/sparc/sparc-protos.h (sparc_va_arg): Remove.
24089         * config/sparc/sparc.c (sparc_gimplify_va_arg): Mark static.
24090
24091         * config/sh/sh-protos.h (sh_va_arg): Remove.
24092         * config/sh/sh.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
24093         (sh_gimplify_va_arg_expr): Rewrite from sh_va_arg.
24094         * config/sh/sh.h (EXPAND_BUILTIN_VA_ARG): Remove.
24095
24096         * config/pa/pa-protos.h (hppa_va_arg): Remove.
24097         * config/pa/pa.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
24098         (hppa_gimplify_va_arg_expr): Rewrite from hppa_va_arg.
24099         * config/pa/pa.h (EXPAND_BUILTIN_VA_ARG): Remove.
24100
24101         * config/mn10300/mn10300-protos.h (mn10300_va_arg): Remove.
24102         * config/mn10300/mn10300.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
24103         (mn10300_gimplify_va_arg_expr): Rewrite from mn10300_va_arg.
24104         * config/mn10300/mn10300.h (EXPAND_BUILTIN_VA_ARG): Remove.
24105
24106 2004-07-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
24107
24108         * config/sparc/sparc.md (return): Rewrite length formula.
24109         * config/sparc/sparc.c (output_return): Pass 1 as 5th
24110         argument to final_scan_insn when in a delay slot.
24111         (output_sibcall): Likewise.
24112
24113 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
24114
24115         * arm.c (arm_cpp_interwork): New variable.
24116         (arm_override_options): Set it if TARGET_INTERWORK was on the command
24117         line.
24118         * arm.h (arm_cpp_interwork): Declare it.
24119         (TARGET_CPU_CPP_BUILTINS): Use it to control definition of
24120         __THUMB_INTERWORK__ in the preprocessor.
24121
24122 2004-07-09  Nathan Sidwell  <nathan@codesourcery.com>
24123
24124         * vec.h (VEC_T_alloc): Fix MEM_STAT_DECL pasto.
24125
24126 2004-07-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
24127
24128         PR target/16416
24129         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): New macro.
24130         Override default settings to account for -m32 and -m64.
24131
24132 2004-07-08  Randolph Chung  <tausq@debian.org>
24133
24134         * pa32-linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define.
24135
24136 2004-07-09  Alexandre Oliva  <aoliva@redhat.com>
24137
24138         * builtins.c (fold_builtin_strncpy): Make sure len is a constant
24139         before comparing it as such.
24140
24141 2004-07-08  Richard Henderson  <rth@redhat.com>
24142
24143         * builtins.c (std_gimplify_va_arg_expr): Hoist valist into a
24144         temporary.  Use bit arithmetic to align.
24145
24146 2004-07-08  Jerry Quinn  <jlquinn@optonline.net>
24147
24148         * alias.c (nonlocal_mentioned_p, nonlocal_referenced_p,
24149         nonlocal_set_p, init_alias_analysis): Use, LABEL_P, JUMP_P, CALL_P,
24150         NONJUMP_INSN_P, INSN_P, NOTE_P, BARRIER_P.
24151         * bb-reorder.c (mark_bb_for_unlikely_executed_section,
24152         add_labels_and_missing_jumps, find_jump_block,
24153         fix_crossing_unconditional_branches, add_reg_crossing_jump_notes):
24154         Likewise.
24155         * bt-load.c (btr_referenced_p, compute_defs_uses_and_gen,
24156         link_btr_uses, move_btr_def): Likewise.
24157         * builtins.c (expand_builtin_longjmp, expand_builtin_nonlocal_goto,
24158         expand_builtin_expect_jump): Likewise.
24159         * caller-save.c (save_call_clobbered_regs, insert_one_insn): Likewise.
24160         * calls.c (expand_call, emit_library_call_value_1): Likewise.
24161         * cfganal.c (forwarder_block_p): Likewise.
24162         * cfgbuild.c (inside_basic_block_p, count_basic_blocks,
24163         make_label_edge, rtl_make_eh_edge, make_edges, find_basic_blocks_1,
24164         find_bb_boundaries): Likewise.
24165         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
24166         merge_blocks_move_predecessor_nojumps,
24167         merge_blocks_move_successor_nojumps, insns_match_p,
24168         flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge,
24169         try_optimize_cfg): Likewise.
24170         * cfgexpand.c (expand_block, construct_exit_block): Likewise.
24171         * cfglayout.c (skip_insns_after_block, label_for_bb,
24172         record_effective_endpoints, insn_locators_initialize,
24173         fixup_reorder_chain, update_unlikely_executed_notes): Likewise.
24174         * cfgmainloop.c (create_loop_notes): Likewise.
24175         * cfgrtl.c (delete_insn, delete_insn_chain,
24176         create_basic_block_structure, rtl_delete_block, free_bb_for_insn,
24177         update_bb_for_insn, rtl_merge_blocks, rtl_can_merge_blocks,
24178         block_label, try_redirect_by_replacing_jump, last_loop_beg_note,
24179         redirect_branch_edge, force_nonfallthru_and_redirect,
24180         rtl_tidy_fallthru_edge, back_edge_of_syntactic_loop_p,
24181         rtl_split_edge, commit_one_edge_insertion, print_rtl_with_bb,
24182         update_br_prob_note, rtl_verify_flow_info_1, rtl_verify_flow_info,
24183         purge_dead_edges, cfg_layout_redirect_edge_and_branch,
24184         cfg_layout_delete_block, cfg_layout_can_merge_blocks_p,
24185         cfg_layout_merge_blocks, rtl_block_ends_with_call_p,
24186         need_fake_edge_p, rtl_flow_call_edges_add): Likewise.
24187         * combine.c (combine_instructions, can_combine_p, try_combine,
24188         find_split_point, record_dead_and_set_regs, reg_dead_at_p,
24189         distribute_notes, distribute_links, insn_cuid): Likewise.
24190         * cse.c (fold_rtx, cse_insn, cse_around_loop,
24191         invalidate_skipped_block, cse_set_around_loop,
24192         cse_end_of_basic_block, cse_main, cse_basic_block,
24193         cse_condition_code_reg): Likewise.
24194         * cselib.c (cselib_process_insn): Likewise.
24195         * ddg.c (create_ddg): Likewise.
24196         * df.c (df_insn_refs_record, df_bb_rd_local_compute, df_insns_modify):
24197         Likewise.
24198         * dwarf2out.c (dwarf2out_stack_adjust, dwarf2out_frame_debug,
24199         gen_label_die, dwarf2out_var_location): Likewise.
24200         * emit-rtl.c (get_first_nonnote_insn, get_last_nonnote_insn,
24201         next_insn, previous_insn, next_nonnote_insn, prev_nonnote_insn,
24202         last_call_insn, active_insn_p, next_label, prev_label,
24203         link_cc0_insns, next_cc0_user, try_split, add_insn_after,
24204         add_insn_before, remove_insn, add_function_usage_to,
24205         reorder_insns, find_line_note, remove_unnecessary_notes,
24206         emit_insn_after_1, classify_insn): Likewise.
24207         * except.c (convert_from_eh_region_ranges_1, emit_to_new_bb_before,
24208         connect_post_landing_pads, sjlj_mark_call_sites,
24209         sjlj_emit_function_enter, sjlj_emit_function_exit, reachable_handlers,
24210         can_throw_internal, can_throw_external, set_nothrow_function_flags,
24211         convert_to_eh_region_ranges): Likewise.
24212         * explow.c (optimize_save_area_alloca): Likewise.
24213         * expr.c (expand_expr_real): Likewise.
24214         * final.c (insn_current_reference_address, compute_alignments,
24215         shorten_branches, final, scan_ahead_for_unlikely_executed_note,
24216         final_scan_insn, output_asm_label, leaf_function_p): Likewise.
24217         * flow.c (first_insn_after_basic_block_note, delete_dead_jumptables,
24218         propagate_block_delete_insn, propagate_one_insn,
24219         init_propagate_block_info, propagate_block, libcall_dead_p,
24220         mark_set_1, attempt_auto_inc, find_auto_inc, try_pre_increment):
24221         Likewise.
24222         * function.c (instantiate_virtual_regs, reorder_blocks_1,
24223         expand_function_start, expand_function_end, contains,
24224         thread_prologue_and_epilogue_insns,
24225         reposition_prologue_and_epilogue_notes): Likewise.
24226         * gcse.c (constprop_register, bypass_conditional_jumps,
24227         insert_insn_end_bb, gcse_after_reload): Likewise.
24228         * genemit.c (gen_expand, gen_split): Likewise.
24229         * genpeep.c (gen_peephole, main): Likewise.
24230         * global.c (build_insn_chain): Likewise.
24231         * graph.c (node_data, print_rtl_graph_with_bb): Likewise.
24232         * haifa-sched.c (unlink_other_notes, unlink_line_notes,
24233         get_block_head_tail, no_real_insns_p, rm_line_notes, save_line_notes,
24234         restore_line_notes, rm_redundant_line_notes, rm_other_notes,
24235         ok_for_early_queue_removal, set_priorities, sched_init): Likewise.
24236         * ifcvt.c (count_bb_insns, first_active_insn, last_active_insn,
24237         cond_exec_process_insns, end_ifcvt_sequence, noce_process_if_block,
24238         merge_if_block, block_jumps_and_fallthru_p, find_if_block,
24239         dead_or_predicable): Likewise.
24240         * integrate.c (try_constants): Likewise.
24241         * jump.c (rebuild_jump_labels, cleanup_barriers,
24242         purge_line_number_notes, init_label_info, mark_all_labels,
24243         squeeze_notes, get_label_before, get_label_after,
24244         reversed_comparison_code_parts, simplejump_p, pc_set,
24245         returnjump_p, onlyjump_p, follow_jumps, mark_jump_label,
24246         delete_barrier, delete_prior_computation, delete_computation,
24247         delete_related_insns, delete_for_peephole, redirect_jump):
24248         Likewise.
24249         * lcm.c (optimize_mode_switching): Likewise.
24250         * local-alloc.c (validate_equiv_mem, update_equiv_regs, block_alloc):
24251         Likewise.
24252         * loop-doloop.c (doloop_valid_p, doloop_optimize): Likewise.
24253         * loop-invariant.c (find_exits, find_invariants_bb): Likewise.
24254         * loop-iv.c (simplify_using_assignment): Likewise.
24255         * loop.c (compute_luids, loop_optimize, scan_loop, libcall_other_reg,
24256         libcall_benefit, skip_consec_insns, move_movables, prescan_loop,
24257         find_and_verify_loops, labels_in_range_p, for_each_insn_in_loop,
24258         loop_bivs_init_find, strength_reduce, check_insn_for_bivs,
24259         check_insn_for_givs, check_final_value, update_giv_derive,
24260         basic_induction_var, product_cheap_p, check_dbra_loop,
24261         loop_insn_first_p, last_use_this_basic_block,
24262         canonicalize_condition, get_condition, loop_regs_scan, load_mems,
24263         try_copy_prop, LOOP_BLOCK_NUM, loop_dump_aux): Likewise.
24264         * modulo-sched.c (doloop_register_get, find_line_note, sms_schedule,
24265         sms_schedule_by_order): Likewise.
24266         * optabs.c (emit_no_conflict_block, emit_libcall_block): Likewise.
24267         * postreload.c (reload_cse_simplify_operands, reload_combine,
24268         reload_cse_move2add): Likewise.
24269         * predict.c (can_predict_insn_p, estimate_probability,
24270         expected_value_to_br_prob, process_note_predictions): Likewise.
24271         * print-rtl.c (print_rtx, print_rtl, print_rtl_single): Likewise.
24272         * profile.c (branch_prob): Likewise.
24273         * ra-build.c (live_out_1, livethrough_conflicts_bb,
24274         detect_webs_set_in_cond_jump): Likewise.
24275         * ra-debug.c (ra_print_rtx_object, ra_debug_insns,
24276         ra_print_rtl_with_bb): Likewise.
24277         * ra-rewrite.c (insert_stores, rewrite_program2): Likewise.
24278         * recog.c (next_insn_tests_no_inequality, find_single_use,
24279         split_all_insns, peephole2_optimize, if_test_bypass_p): Likewise.
24280         * reg-stack.c (next_flags_user, record_label_references,
24281         emit_swap_insn, swap_rtx_condition, subst_stack_regs,
24282         compensate_edge, convert_regs_1): Likewise.
24283         * regclass.c (scan_one_insn): Likewise.
24284         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
24285         regmove_optimize, fixup_match_1, single_set_for_csa,
24286         combine_stack_adjustments_for_block): Likewise.
24287         * regrename.c (build_def_use, copyprop_hardreg_forward_1): Likewise.
24288         * reload.c (find_reloads, find_reloads_address_1, subst_reloads,
24289         find_equiv_reg): Likewise.
24290         * reload1.c (reload, calculate_needs_all_insns, set_label_offsets,
24291         reload_as_needed, emit_input_reload_insns, do_output_reload,
24292         delete_output_reload, delete_address_reloads_1, fixup_abnormal_edges):
24293         Likewise.
24294         * reorg.c (find_end_label, emit_delay_sequence,
24295         delete_from_delay_slot, delete_scheduled_jump, optimize_skip,
24296         get_jump_flags, rare_destination, mostly_true_jump,
24297         try_merge_delay_insns, redundant_insn, own_thread_p,
24298         fill_simple_delay_slots, fill_slots_from_thread,
24299         fill_eager_delay_slots, relax_delay_slots, make_return_insns,
24300         dbr_schedule): Likewise.
24301         * resource.c (find_basic_block, next_insn_no_annul,
24302         find_dead_or_set_registers, mark_target_live_regs): Likewise.
24303         * rtl.h (RTX_PREV): Likewise.
24304         * rtlanal.c (global_reg_mentioned_p, no_labels_between_p,
24305         no_jumps_between_p, reg_used_between_p, reg_referenced_between_p,
24306         reg_set_p, find_last_value, dead_or_set_regno_p, find_reg_fusage,
24307         find_regno_fusage, pure_call_p, replace_label, rtx_referenced_p_1,
24308         tablejump_p, computed_jump_p, insns_safe_to_move_p,
24309         find_first_parameter_load, can_hoist_insn_p): Likewise.
24310         * sched-deps.c (get_condition, add_dependence, sched_analyze_2,
24311         sched_analyze_insn, sched_analyze, add_forward_dependence): Likewise.
24312         * sched-ebb.c (fix_basic_block_boundaries, add_deps_for_risky_insns,
24313         schedule_ebbs): Likewise.
24314         * sched-rgn.c (is_cfg_nonregular, find_conditional_protection,
24315         is_conditionally_protected, can_schedule_ready_p,
24316         add_branch_dependences, debug_dependencies): Likewise.
24317         * stmt.c (emit_nop, expand_start_case, emit_jump_if_reachable):
24318         Likewise.
24319         * unroll.c (unroll_loop, copy_loop_body, back_branch_in_range_p,
24320         reg_dead_after_loop, loop_find_equiv_value, loop_iterations,
24321         set_dominates_use, ujump_to_loop_cont): Likewise.
24322         * var-tracking.c (prologue_stack_adjust, vt_initialize): Likewise.
24323         * varasm.c (output_constant_pool_1): Likewise.
24324
24325 2004-07-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
24326
24327         * tree-scalar-evolution.c: New file.
24328         * tree-scalar-evolution.h: New file.
24329         * tree-ssa-loop-niter.c: New file.
24330         * Makefile.in (SCEV_H): New.
24331         (tree-scalar-evolution.o, tree-ssa-loop-niter.o): Add new files.
24332         * cfgloop.h (struct loop): Add bounds field.
24333         * tree-flow.h (struct tree_niter_desc): New type.
24334         (number_of_iterations_cond, number_of_iterations_exit,
24335         loop_niter_by_eval, find_loop_niter_by_eval,
24336         estimate_numbers_of_iterations, can_count_iv_in_wider_type,
24337         free_numbers_of_iterations_estimates): Declare.
24338         * tree.h (lower_bound_in_type, upper_bound_in_type): Declare.
24339         * params.def (PARAM_MAX_ITERATIONS_TO_TRACK): New parameter.
24340         * doc/invoke.texi (max-iterations-to-track): Document.
24341
24342 2004-07-08  Kaz Kojima  <kkojima@gcc.gnu.org>
24343
24344         * config/sh/sh.c (sh_va_arg): Initinalize lab_over.
24345         * config/sh/sh.h (CONST_OK_FOR_J16): Use parentheses.
24346         (MODE_AFTER): Add cast appropriately.
24347         * config/sh/sh.md (movdi splitter): Likewise.
24348         (casesi_worker_2): Add const qualifier appropriately.
24349         (eh_return): Remove unused variable.
24350         (insv): Initialize v;
24351
24352 2004-07-08  Richard Henderson  <rth@redhat.com>
24353
24354         * config/mmix/mmix-protos.h (mmix_expand_builtin_va_arg): Remove.
24355         * config/mmix/mmix.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
24356         (mmix_gimplify_va_arg_expr): Rewrite from mmix_expand_builtin_va_arg.
24357         * config/mmix/mmix.h (EXPAND_BUILTIN_VA_ARG): Remove.
24358         (FRAME_POINTER_REQUIRED): Use current_function_has_nonlocal_label.
24359
24360         * config/m32r/m32r-protos.h (m32r_va_arg): Remove.
24361         * config/m32r/m32r.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
24362         (m32r_gimplify_va_arg_expr): Rewrite from m32r_va_arg.
24363         * config/m32r/m32r.h (EXPAND_BUILTIN_VA_ARG): Remove.
24364
24365         * config/iq2000/iq2000-protos.h (iq2000_va_arg): Remove.
24366         * config/iq2000/iq2000.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
24367         (iq2000_gimplify_va_arg_expr): Rewrite from iq2000_va_arg.
24368         * config/iq2000/iq2000.h (EXPAND_BUILTIN_VA_ARG): Remove.
24369
24370         * config/frv/frv-protos.h (frv_expand_builtin_va_arg): Remove.
24371         * config/frv/frv.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
24372         (frv_gimplify_va_arg_expr): Rewrite from frv_expand_builtin_va_arg.
24373         * config/frv/frv.h (EXPAND_BUILTIN_VA_ARG): Remove.
24374
24375         * config/i860/i860-protos.h (i860_va_arg): Remove.
24376         * config/i860/i860.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
24377         (i860_gimplify_va_arg_expr): Rewrite from i860_va_arg.
24378         * config/i860/i860.h (EXPAND_BUILTIN_VA_ARG): Remove.
24379
24380 2004-05-31  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
24381
24382         * system.h: Prototype getpagesize if missing.
24383         * configure.ac: Add getpagesize to gcc_AC_CHECK_DECLS.
24384         * configure: Regenerate.
24385         * config.in: Regenerate.
24386
24387 2004-07-08  Richard Henderson  <rth@redhat.com>
24388
24389         * config/fr30/fr30-protos.h (fr30_va_arg): Remove.
24390         * config/fr30/fr30.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
24391         (fr30_gimplify_va_arg_expr): New.
24392         (fr30_pass_by_reference, fr30_pass_by_value, fr30_va_arg): Remove.
24393         * config/fr30/fr30.h (EXPAND_BUILTIN_VA_ARG): Remove.
24394
24395 2004-07-08  Vladimir Makarov  <vmakarov@redhat.com>
24396
24397         PR target/16414
24398         * config/ia64/ia64.c (ia64_dfa_new_cycle): Fix typo in comparison
24399         of asm_noperands result.
24400
24401 2004-07-08  Richard Henderson  <rth@redhat.com>
24402
24403         * config/cris/cris-protos.h (cris_expand_builtin_va_arg): Remove.
24404         * config/cris/cris.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
24405         (cris_gimplify_va_arg_expr): Rewrite from cris_expand_builtin_va_arg.
24406         * config/cris/cris.h (EXPAND_BUILTIN_VA_ARG): Remove.
24407
24408 2004-07-08  Richard Henderson  <rth@redhat.com>
24409
24410         * builtins.c (ind_gimplify_va_arg_expr): New.
24411         * tree.h (ind_gimplify_va_arg_expr): Declare.
24412         * config/arc/arc.c (arc_gimplify_va_arg_expr): Use it.
24413
24414 2004-07-08  Jan Beulich  <jbeulich@novell.com>
24415
24416         * expmed.c (extract_bit_field): Correct condition to use vec_extract
24417         patterns also on vector elements other than the first one.
24418         * config/i386/i386.md (vec_extractv2df, vec_extractv4sf): Add missing
24419         break statements.
24420
24421 2004-07-08  Geoffrey Keating  <geoffk@apple.com>
24422
24423         * config/rs6000/darwin-ldouble.c: Correct reference
24424         to the Linnainmaa paper.
24425
24426 2004-07-08  Richard Henderson  <rth@redhat.com>
24427
24428         * config/arc/arc-protos.h (arc_va_arg): Remove.
24429         * config/arc/arc.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
24430         (arc_gimplify_va_arg_expr): Rewrite from arc_va_arg.
24431         * config/arc/arc.h (EXPAND_BUILTIN_VA_ARG): Remove.
24432
24433         * config/c4x/c4x-protos.h (c4x_va_arg): Remove.
24434         * config/c4x/c4x.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
24435         (c4x_gimplify_va_arg_expr): Rewrite from c4x_va_arg.
24436         * config/c4x/c4x.h (EXPAND_BUILTIN_VA_ARG): Remove.
24437
24438 2004-07-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
24439
24440         * pa.md (prefetch_32, prefetch_64): Simplify constraint checks.
24441
24442 2004-07-08  Zack Weinberg  <zack@codesourcery.com>
24443
24444         * c-decl.c (static_ctors, static_dtors): Make static.
24445         (pop_file_scope): Call c_common_write_pch and
24446         cgraph_finalize_compilation_unit here.
24447         (build_cdtor): Moved here from c-objc-common.c; simplify.
24448         (c_write_global_declarations_1): Clarify comment.
24449         (c_write_global_declarations): Close the external scope before
24450         doing anything else.  Call build_cdtor, cgraph_optimize, and
24451         mudflap_finish_file here.
24452         * c-lang.c (finish_file): Don't call c_objc_common_finish_file.
24453         Clarify comment.
24454         * c-objc-common.c: No need to include cgraph.h.
24455         (build_cdtor): Moved to c-decl.c.
24456         (c_objc_common_finish_file): Delete.
24457         * c-tree.h: Update to match.
24458         * objc/objc-act.c (finish_file): Don't call c_objc_common_finish_file.
24459         (generate_static_references): Set TREE_USED before calling finish_decl.
24460         Eliminate unnecessary dummy declaration.  Call rest_of_decl_compilation
24461         on the static_instances_decl.
24462
24463 2004-07-08  Zack Weinberg  <zack@codesourcery.com>
24464
24465         * c-decl.c (pop_scope): Do not set DECL_CONTEXT on file-scope
24466         decls when there is only one input translation unit.
24467         * langhooks.c (lhd_set_decl_assembler_name): Partially revert
24468         change of 2004-07-05; do not treat declarations with
24469         DECL_CONTEXT a TRANSLATION_UNIT_DECL specially.
24470         * opts.c (cur_in_fname): Delete.
24471         * opts.h: Likewise.
24472         * tree.c: Revert changes of 2004-07-05; no special treatment
24473         for TRANSLATION_UNIT_DECLs.
24474         * Makefile.in (tree.o): Update dependencies.
24475
24476 2004-07-08  Roger Sayle  <roger@eyesopen.com>
24477
24478         * builtins.c (fold_builtin_strcpy): Merge functionality from
24479         simplify_builtin_strcpy.  Add additional len argument.  No longer
24480         static.  Remove function prototype.
24481         (fold_builtin_strncpy): Likewise integrate functionality from
24482         simplify_builtin_strncpy.  Add additional slen argument.  No
24483         longer static.  Remove function prototype.
24484         (simplify_builtin_strcy, simplify_builtin_strncpy): Delete.
24485         (simplify_builtin_fputs): Rename to fold_builtin_fputs.  Change
24486         types of "ignore" and "unlocked" parameters to bool.
24487         (fold_builtin_1):  Add additional ignore argument.  Call renamed
24488         fold_builtin_fputs to simplify GCC "fputs" and "fputs_unlocked"
24489         builtins.  Update arguments to fold_builtin_strncpy and
24490         fold_builtin_strcpy.  Add function prototype.
24491         (fold_builtin): Add additional Boolean ignore argument to pass
24492         to fold_builtin_1.
24493         (simplify_builtin): Call fold_builtin_fputs, fold_builtin_strcpy
24494         and fold_builtin_strncpy instead of simplify_builtin_fputs,
24495         simplify_builtin_strcpy and simplify_builtin_strncpy respectively.
24496
24497         * expr.h (simplify_builtin_fputs, simplify_builtin_strcpy,
24498         simplify_builtin_strncpy): Delete function prototypes.
24499         * tree.h (fold_builtin_fputs, fold_builtin_strcpy,
24500         fold_builtin_strncpy): Add function prototypes here.
24501         (fold_builtin): Update function prototype with new "bool ignore".
24502
24503         * tree-ssa-ccp.c (ccp_fold): Update call to fold_builtin.
24504         (ccp_fold_builtin):  Update call to fold_builtin.  Call
24505         fold_builtin_fputs, fold_builtin_strcpy and fold_builtin_strncpy
24506         instead of simplify_builtin_fputs, simplify_builtin_strcpy and
24507         simplify_builtin_strncpy respectively.
24508         * fold-const.c (fold): Update call to fold_builtin.
24509
24510 2004-07-08  Alexandre Oliva  <aoliva@redhat.com>
24511
24512         * builtins.c (expand_builtin_stpcpy): Un-simplify decay of stpcpy
24513         to strcpy.
24514
24515         * expr.h (FUNCTION_ARG_PARTIAL_NREGS): Default to 0.
24516         (FUNCTION_ARG_PASS_BY_REFERENCE): Likewise.
24517         (FUNCTION_ARG_CALLEE_COPIES): Likewise.
24518         * calls.c: Remove ifdefs of macros above.
24519         * functions.c: Likewise.
24520         * expr.c: Likewise.
24521
24522 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
24523
24524         * config/sparc/sparc.md (UNSPECV_GOTO_V9): Delete.
24525         (arch attribute): Delete.
24526         (current_function_calls_alloca attribute): Rename into calls_alloca.
24527         (calls_eh_return): New attribute.
24528         (leaf_function): Likewise.
24529         (length attribute): Fix formula for sibcalls.
24530         (return insn): Correctly compute the 'length' attribute.
24531         (do_builtin_setjmp_setup): Adjust use of current_function_calls_alloca.
24532
24533 2004-07-08  Richard Henderson  <rth@redhat.com>
24534
24535         * tree-cfg.c (make_exit_edges): Use get_call_expr_in.
24536         (remove_useless_stmts_1, is_ctrl_altering_stmt): Likewise.
24537         (tree_block_ends_with_call_p, need_fake_edge_p): Likewise.
24538         * tree-eh.c (lower_eh_constructs_1): Likewise.
24539         * tree-sra.c (sra_walk_modify_expr): Likewise.
24540         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
24541         (eliminate_unnecessary_stmts): Likewise.
24542         * tree-ssa-dse.c (dse_optimize_stmt): Likewise.
24543         * tree-tailcall.c (optimize_tail_call): Likewise.
24544         * tree-ssa-ccp.c (get_rhs, set_rhs): Reorg to use switch.
24545
24546 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
24547             Jakub Jelinek  <jakub@redhat.com>
24548
24549         * config/i386/i386.c (override_options): Enable
24550         SSE prefetches with -mtune, as long as we are
24551         compiling for i686 or higher.  All i686 processors
24552         accept SSE prefetches as NOPS, some i586's don't.
24553
24554 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
24555
24556         PR target/10567
24557         * config/sparc/sparc.md (update_return): Honor flag_delayed_branch.
24558
24559 2004-07-08  Diego Novillo  <dnovillo@redhat.com>
24560
24561         * tree-ssa-operands.c (get_asm_expr_operands): Fix thinkos in
24562         the handling of clobbering ASM_EXPRs.
24563
24564 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
24565
24566         PR target/16430
24567         * config/sparc/sparc.c (function_value): In 64-bit mode,
24568         return the aggregates larger than 16 bytes like unions.
24569
24570 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
24571
24572         PR target/16199
24573         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): When
24574         'temp' is zero, generate new pseudos as needed and emit the
24575         sequence of insns in single-assignment form.  Resync comments
24576         with code.
24577         (sparc_emit_set_const64): Pass zero as 'temp' argument to above
24578         function before reload.
24579
24580 2004-07-08  Nathan Sidwell  <nathan@codesourcery.com>
24581
24582         * vec.c (vec_assert_fail): Remove duplicate 'function'.
24583
24584         * vec.c (vec_p_reserve, vec_o_reserve): Allocation is signed.
24585
24586         * vec.h (VEC_alloc, VEC_embedded_size, VEC_embedded_init):
24587         Allocation is signed.
24588         (VEC_reserve): Return flag, allocation is signed.
24589
24590 2004-07-08  Richard Henderson  <rth@redhat.com>
24591
24592         * tree-ssa-ccp.c (fold_stmt): Get type directly from
24593         OBJ_TYPE_REF_OBJECT.
24594
24595 2004-07-08  Joseph S. Myers  <jsm@polyomino.org.uk>
24596             Neil Booth  <neil@daikokuya.co.uk>
24597
24598         PR c/2511
24599         PR c/3325
24600         * c-decl.c (finish_struct): Ensure bit-fields are given the
24601         correct type.
24602         * c-common.c (c_common_signed_or_unsigned_type): For C, require
24603         the precision to match as well as the mode.
24604         * expr.c (reduce_to_bit_field_precision): New function.
24605         (expand_expr_real_1): Reduce expressions of bit-field type to
24606         proper precision.
24607         * langhooks.h (reduce_bit_field_operations): New hook.
24608         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
24609         Define.
24610         * c-lang.c, objc/objc-lang.c
24611         (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Define.
24612         * objc/objc-act.c (check_ivars): Convert types to bit-field types
24613         before checking.
24614         * tree.c (build_nonstandard_integer_type): New function.
24615         * tree.h (build_nonstandard_integer_type): New prototype.
24616         * tree-ssa.c (tree_ssa_useless_type_conversion_1): Don't treat
24617         conversions between integer and boolean types as useless.
24618
24619 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
24620
24621         * c-common.c (c_common_nodes_and_builtins): Do not
24622         create __builtin_ptrdiff_t and __builtin_size_t.
24623
24624 2004-07-08  Andrew Pinski  <apinski@apple.com>
24625
24626         * Makefile.in (libbackend.o): Add -combine to the gcc
24627         command line.
24628
24629 2004-07-08  Nick Clifton  <nickc@redhat.com>
24630
24631         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Define.
24632         Set to -Os.
24633
24634 2004-07-08  Richard Henderson  <rth@redhat.com>
24635
24636         * except.c (expand_eh_region_start, expand_eh_region_end,
24637         expand_eh_handler, expand_eh_region_end_cleanup,
24638         expand_start_all_catch, expand_start_catch, expand_end_catch,
24639         expand_end_all_catch, expand_eh_region_end_allowed,
24640         expand_eh_region_end_must_not_throw, expand_eh_region_end_throw,
24641         expand_eh_region_end_fixup): Remove.
24642         * stmt.c (struct nesting): Remove stack_level, innermost_stack_block,
24643         cleanups, outer_cleanups, label_chain, exception_region.
24644         (struct goto_fixup): Remove stack_level, cleanup_list_list.
24645         (struct label_chain): Remove.
24646         (struct stmt_status): Remove x_stack_block_stack.
24647         (stack_block_stack, expand_goto_internal, expand_fixup, expand_fixups,
24648         fixup_gotos, save_stack_pointer, expand_decl_cleanup,
24649         expand_decl_cleanup_eh, expand_cleanups, start_cleanup_deferral,
24650         end_cleanup_deferral, last_cleanup_this_contour,
24651         containing_blocks_have_cleanups_or_stack_level,
24652         any_pending_cleanups): Remove.
24653         (expand_null_return_1): Take no arguments.
24654         (expand_label, expand_naked_return, expand_return,
24655         expand_start_bindings_and_block, expand_end_bindings, expand_decl,
24656         expand_anon_union_decl, expand_start_case, pushcase, pushcase_range,
24657         expand_end_case_type): Don't use any of them.
24658         * calls.c (expand_call): Likewise.
24659         * dojump.c (do_jump): Likewise.
24660         * function.c (expand_function_end): Likewise.
24661         * expr.c (store_expr, expand_expr_real_1): Likewise.
24662         (safe_from_p): Don't handle WITH_CLEANUP_EXPR, CLEANUP_POINT_EXPR.
24663         (expand_expr_real_1): Don't handle WITH_CLEANUP_EXPR,
24664         CLEANUP_POINT_EXPR, TARGET_EXPR, TRY_CATCH_EXPR, CATCH_EXPR,
24665         EH_FILTER_EXPR, TRY_FINALLY_EXPR, GOTO_SUBROUTINE_EXPR.
24666         * fold-const.c (fold_checksum_tree): Use first_rtl_op.
24667         * gengtype.c (adjust_field_tree_exp): Remove rtl op handling.
24668         * gimplify.c (gimplify_cleanup_point_expr): Renumber operands
24669         for WITH_CLEANUP_EXPR.
24670         (gimple_push_cleanup): Likewise.
24671         * integrate.c (copy_decl_for_inlining): Don't DECL_TOO_LATE.
24672         * print-tree.c (print_node): Likewise.
24673         * tree-pretty-print.c (dump_generic_node): Remove GOTO_SUBROUTINE_EXPR.
24674         * tree.c (first_rtl_op): Always just TREE_CODE_LENGTH.
24675         (has_cleanups): Remove GOTO_SUBROUTINE_EXPR.
24676         * tree.def (WITH_CLEANUP_EXPR): Remove op1 and op2.
24677         (GOTO_SUBROUTINE_EXPR): Remove.
24678         * tree.h (WITH_CLEANUP_EXPR_RTL): Remove.
24679         (DECL_TOO_LATE): Remove.
24680         * except.h, tree.h: Update decls.
24681
24682 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
24683
24684         * explow.c (optimize_save_area_alloca): Do not accept parameters.
24685         * passes.c (rest_of_handle_final): Handle symout.
24686         (rest_of_handle_new_regalloc, rest_of_handle_old_regalloc):
24687         Push timevar here.
24688         (rest_of_handle_sched): Break out SMS.  Remove ifs for
24689         flag_schedule_insns and flag_modulo_sched.
24690         (rest_of_handle_addressof, rest_of_handle_cse2): Garbage
24691         collect at the end.
24692         (rest_of_handle_gcse2): Put under timevar TV_RELOAD_CSE_REGS.
24693         (rest_of_handle_partition_blocks, rest_of_handle_sms,
24694         rest_of_handle_if_after_reload, rest_of_handle_peephole2,
24695         rest_of_handle_mode_switching, rest_of_handle_jump,
24696         rest_of_handle_guess_branch_prob, rest_of_handle_eh,
24697         rest_of_handle_jump2, rest_of_handle_postreload,
24698         rest_of_handle_flow2, rest_of_clean_state,
24699         rest_of_handle_shorten_branches,
24700         rest_of_handle_prologue_epilogue,
24701         rest_of_handle_branch_target_load_optimize): New.
24702         (rest_of_compilation): Call the above.  Remove ggc_collect
24703         calls moved to rest_of_handle_*.
24704         * rtl.h (optimize_save_area_alloca): Do not accept parameters.
24705
24706         * dwarf2out.c (dwarf2out_begin_prologue): Use TREE_NOTHROW.
24707         * except.c (set_nothrow_function_flags): Set TREE_NOTHROW.
24708         * except.h (set_nothrow_function_flags): Update comment.
24709         * function.c (current_function_nothrow): Remove.
24710         * output.h (current_function_nothrow): Remove.
24711         * passes.c (rest_of_compilation): Do not set TREE_NOTHROW.
24712         * config/arm/arm.c (arm_compute_func_type): Use TREE_NOTHROW.
24713
24714 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
24715
24716         PR bootstrap/16326
24717         * reorg.c: Revert 2004-06-30 change.
24718         (find_end_label): If HAVE_epilogue and !HAVE_return,
24719         return 0 instead of creating a label at the end of the insn chain.
24720         (optimize_skip): Account for the failure mode of find_end_label.
24721         (fill_simple_delay_slots): Likewise.
24722         (fill_slots_from_thread): Likewise.
24723         (relax_delay_slots): Likewise.
24724
24725 2004-07-08  Diego Novillo  <dnovillo@redhat.com>
24726
24727         * tree-flow.h (addressable_vars): Declare.
24728         * tree-ssa-alias.c (addressable_vars): Define.
24729         (setup_pointers_and_addressables): Add addressable variables
24730         to addressable_vars.
24731         * tree-ssa-operands.c (get_stmt_operands): Move
24732         handling of ASM_EXPRs ...
24733         (get_asm_expr_operands): ... here.
24734         When the ASM_EXPR clobbers memory, also clobber addressable
24735         variables.
24736         * tree-ssa.c (init_tree_ssa): Initialize addressable_vars.
24737         (delete_tree_ssa): Reset addressable_vars.
24738
24739 2004-07-07  Jan Beulich  <jbeulich@novell.com>
24740             Richard Henderson  <rth@redhat.com>
24741
24742         * varasm.c (assemble_variable): Use assemble_zeros for
24743         zero-initialized variables.
24744         (categorize_decl_for_section): Honor flag_zero_initialized_in_bss
24745         for SECCAT_BSS and SECCAT_TBSS.
24746
24747 2004-07-07  Jan Beulich  <jbeulich@novell.com>
24748
24749         * varasm.c (asm_output_bss): Don't declare unless BSS_SECTION_ASM_OP.
24750
24751         * expmed.c (emit_store_flag): Also special-case double-word
24752         (in-)equality comparison against -1.
24753
24754         * config/i386/i386.c (ix86_gimplify_va_arg): Don't need temporary for
24755         passing arguments the containers for which are registers.
24756
24757         * calls.c (emit_library_call_value_1): Use mode of function parameter
24758         rather than that of argument since constants have none.
24759
24760 2004-07-08  Alexandre Oliva  <aoliva@redhat.com>
24761
24762         Introduce H8SX support.
24763         * expr.c (expand_strcpy): Renamed and moved to...
24764         * builtins.c (expand_movstr): ... here.  Tweak.
24765         (expand_builtin_strcpy): Adjust.  Use movstr if len can't be
24766         computed or has side effects.
24767         (expand_builtin_stpcpy): Likewise.  Use strcpy if return value is
24768         unused, or if mempcpy fails.  Adjust the return value in the
24769         latter case.  Use movstr if everything else fails.
24770         * doc/md.texi (movstr): Document.
24771         (movmemM, clrmemM): Fix explanation of memory block operands.
24772         * config/h8300/h8300.md (stpcpy): Renamed to...
24773         (movstr): ... this.  Adjust.
24774         2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
24775         * config/h8300/h8300.md: Rename movstr*, except for movstrict*, to
24776         movmem* and clrstr* to clrmem*.
24777         2004-06-27  Alexandre Oliva  <aoliva@redhat.com>
24778         * config/h8300/h8300.c (h8300_reg_class_from_letter): Map 'D' to
24779         GENERAL_REGS, always.
24780         (h8300_swap_into_er6, h8300_swap_into_er6): Handle the case of
24781         getting the stack pointer as addr.
24782         * config/h8300/h8300.h (PREDICATE_CODES): Remove constant rtxes
24783         from general_operand_dst.
24784         * config/h8300/h8300.md (movmd_internal_normal): New, normal-mode
24785         variant of...
24786         (movmd_internal): ... this.  Add modes to operands.  Disparage `D'
24787         instead of requiring it to match only before reload.
24788         (stpcpy_internal_normal): New, normal-mode variant of...
24789         (stpcpy_internal): ... this.  Add modes to operands.  Disparage
24790         `D' instead of requiring it to match only before reload.
24791         * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Add
24792         mode argument.
24793         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Pass it to...
24794         * config/h8300/h8300.c (h8300_legitimate_address_p): Pass it to
24795         h8300_get_index.
24796         * config/h8300/h8300.md (attr type): Add call.
24797         (attr can_delay): If type is call, set it no.
24798         (call, call_value): Set type to call.
24799         2004-06-21  Alexandre Oliva  <aoliva@redhat.com>
24800         * config/h8300/h8300.md (logicalhi3_sn, logicalsi3_sn): New.
24801         2004-06-16  Alexandre Oliva  <aoliva@redhat.com>
24802         * tree.c (get_narrower): Don't narrow integral types into
24803         non-integral types.
24804         * config/h8300/h8300.c (h8300_expand_epilogue): Initialize
24805         frame_size *before* the first use.
24806         * config/h8300/h8300.md (movstrictqi): Reintroduce post-increment
24807         on input.
24808         (peephole2): Don't widen instructions that push SP.  Move
24809         decrement of SP to the end of all stm-generating peepholes.
24810         2003-07-24  Richard Sandiford  <rsandifo@redhat.com>
24811         * config/h8300/h8300.md (insv): Prefer to use AND to clear a bitfield
24812         and OR to set it to all ones.
24813         2003-07-24  Richard Sandiford  <rsandifo@redhat.com>
24814         * config/h8300/h8300.md (can_delay): Default to "no" for bit branches.
24815         (call, call_value): Set can_delay to "no".
24816         2003-07-22  Richard Sandiford  <rsandifo@redhat.com>
24817         * config/h8300/h8300.md (extzv): Make subreg check more robust.
24818         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
24819         * config/h8300/h8300.md (*brabit): Remove.
24820         * config/h8300/h8300.md (*brabc, *brabs): Remove mode from
24821         zero_extract.  Use bit_memory_operand as the predicate for
24822         operand 1 and 'WU' as the constraint.  Check the difference
24823         between the base length and the final one when deciding which
24824         type of branch to use.
24825         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
24826         * config/h8300/h8300.md (extzv): Remove mode from operands 0 and 1.
24827         Use convert_move to extend the result for TARGET_H8300SX.  Check
24828         for QImode memory references.  Optimize the case where the
24829         destination is a paradoxical subreg.
24830         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
24831         * config/h8300/h8300.md (*movsf_h8sx): Add an r <- G alternative.
24832         * config/h8300/h8300.md (andqi): Remove bclr from h8sx version.
24833         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
24834         * config/h8300/h8300.md: Include mova.md
24835         (length_table): Add mova and mova_zero.
24836         * config/h8300/h8300.c (print_operand): Handle '%o'.  Print a length
24837         after all constant addresses for '%R', '%X', '%T' and '%S'.
24838         (h8300_mova_length): New function.
24839         (h8300_insn_length_from_table): Use it to handle mova and mova_zero.
24840         * config/h8300/t-h8300 (mova.md): Generate from genmova.sh.  Add to
24841         dependencies for s-config, etc.
24842         * config/h8300/gemova.sh: New file.
24843         * config/h8300/mova.md: Generated.
24844         2003-07-20  Alexandre Oliva  <aoliva@redhat.com>
24845         * config/h8300/h8300.c (h8300_bitfield_length): New.
24846         (nibble_operand): Adjust.
24847         (h8300_binary_length): Handle conditional binary op.
24848         (h8300_insn_length_from_table): Handle bitfield and bitbranch.
24849         * config/h8300/h8300.h: Change constraints W# and Y# to P#>X and
24850         P#<X, respectively.  The original P is now IP4>X.  Introduced P#>0
24851         and P#<0, unused so far.  W and Y are now prefixes to multi-letter
24852         constraints.  WU is introduced as a variant of U that requires a
24853         mem, and is therefore considered an EXTRA_MEMORY_CONSTRAINT.
24854         * config/h8300/h8300.md (attr type): Added bitbranch.
24855         (attr length_table): Added bitfield and bitbranch.
24856         (attr length): Compute bitbranch length.
24857         (andqi): Separate pattern for H8300SX.  Use bfld for loading the
24858         least-significant bit of a byte.
24859         (brabit, brabc, brabs): New.
24860         (insv, extzv): Emit bfst and bfld on H8300SX.
24861         (bfld, bfst, seq, sne): New.
24862         (bstzhireg, cmpstz, bstz, bistz): New.
24863         (cmpcondbset, condbset, cmpcondbclr, condbclr): New.
24864         (cmpcondbsetreg, condbsetreg, cmpcondbclrreg, condbclrreg): New.
24865         2003-07-11  Richard Sandiford  <rsandifo@redhat.com>
24866         * config/h8300/h8300.c (h8sx_binary_memory_operator): New function.
24867         (h8sx_unary_memory_operator): New function.
24868         * config/h8300/h8300.h (EXTRA_MEMORY_CONSTRAINT): Disable.
24869         (PREDICATE_CODES): Add h8sx_{unary,binary}_memory_operator.
24870         * config/h8300/h8300.md: Add peepholes to combine reloads and
24871         arithmetic insns.
24872         2003-07-10  Richard Sandiford  <rsandifo@redhat.com>
24873         * config/h8300/h830.md (cmpqi): Use 'i' rather than 'n' in constraints.
24874         (*cmphi_h8300hs, *addqi3, *addhi3_h8sx, subhi3): Likewise.
24875         (and?i, ior?i, xor?i): Likewise.
24876         2003-07-10  Richard Sandiford  <rsandifo@redhat.com>
24877         * config/h8300/h8300.c: Move enums and prototypes to head of file.
24878         Various whitespace fixes.
24879         (h8300_constant_length): New function, split out from...
24880         (h8300_displacement_size): ...here.  Rename h8300_displacement_length.
24881         (h8300_classify_operand): Use IN_RANGE.
24882         (h8300_classify_operand): Use h8300_constant_length.
24883         (h8300_short_move_mem_p): Tighten size check.
24884         (h8sx_mergeable_memrefs_p): Tighten equality check.
24885         2003-06-30  Richard Sandiford  <rsandifo@redhat.com>
24886         * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Define __H8300SX__
24887         for -msx.
24888         * config/h8300/crti.asm: Use .h8300sx or .h8300sxn for -msx code.
24889         * config/h8300/crtn.asm: Likewise.
24890         * config/h8300/lib1funcs.asm: Likewise.  Use 32-bit pointers
24891         if __H8300SX__ is defined.
24892         2003-06-27  Richard Sandiford  <rsandifo@redhat.com>
24893         * config/h8300/h8300-protos.h (h8300_get_index): Add mode parameter.
24894         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Update accordingly.
24895         (GO_IF_MODE_DEPENDENT_ADDRESS): Treat POST_DEC, PRE_INC and indexed
24896         addresses as mode-dependent.
24897         * config/h8300/h8300.c (print_operand_address): Update call to
24898         h8300_get_index.
24899         (h8300_get_index): Take a mode argument.  Rework to fix an
24900         earlier misunderstanding.
24901         2003-06-26  Richard Sandiford  <rsandifo@redhat.com>
24902         * config/h8300/h8300.c (zero_extendqisi2): Force the source operand
24903         into a register if TARGET_H8300SX.
24904         (*zero_extendqisi2_h8300hs, *extendqisi2_h8300): Disable for
24905         TARGET_H8300SX.  Also disable related define_splits.
24906         (*zero_extendqisi2_h8sx, *extendqisi2_h8sx): New patterns.
24907         2003-06-23  Richard Sandiford  <rsandifo@redhat.com>
24908         * config/h8300/h8300.c (h8300_rtx_costs): Add h8sx handling.
24909         2003-06-20  Richard Sandiford  <rsandifo@redhat.com>
24910         * config/h8300/h8300.h (OK_FOR_Z): New macro.
24911         (EXTRA_CONSTRAINT_STR): Check it.
24912         * config/h8300/h8300.c (h8300_classify_operand): Accept null
24913         class arguments.
24914         (h8300_insn_length_from_table): Handle LENGTH_TABLE_MOV_IMM4.
24915         * config/h8300/h8300.md (length_table): Add mov_imm4.
24916         (movqi, movhi): Add Z <- W4 alternatives to h8sx patterns.
24917         2003-06-20  Richard Sandiford  <rsandifo@redhat.com>
24918         * genattrtab.c (write_eligible_delay): Allow candidate_insn to
24919         be a label.
24920         * config/h8300/h8300.h (DELAY_SLOT_LENGTH): New macro.
24921         * config/h8300/h8300.c (h8300_reorg): New function.
24922         (TARGET_MACHINE_DEPENDENT_REORG): Define.
24923         * config/h8300/h8300.md (length): Subtract the length of the
24924         delay slot from (pc) when checking the range of forward branches.
24925         (delay_slot, can_delay): New attributes.
24926         (define_delay): Add bra/s handling.
24927         (movmd_internal, return_h8sx, *return_1): Set can_delay to no.
24928         (jump): Add delayed-branch handling.
24929         2003-06-17  Richard Sandiford  <rsandifo@redhat.com>
24930         * expr.c (expand_strcpy): New function.
24931         * builtins.c (expand_builtin_strcpy): Fall back on expand_strcpy.
24932         (expand_builtin_stpcpy): Likewise.
24933         * config/h8300/h8300-protos.h (h8sx_split_movmd): Remove.
24934         (h8300_swap_into_er6, h8300_swap_out_of_er6): Declare.
24935         * config/h8300/h8300.c (h8300_reg_class_from_letter): Tweak 'd'
24936         handling to improve register allocation for -fno-omit-frame-pointer.
24937         (h8sx_split_movmd): Delete, moving er6 handling into...
24938         (h8300_swap_into_er6, h8300_swap_out_of_er6): ...these new functions.
24939         * config/h8300/h8300.md (UNSPEC_STPCPY): New unspec constant.
24940         (movmd): Add calls to copy_rtx.
24941         (movmd_internal): In the second alternative, allow the initial and
24942         final destination registers to be different .  Update the splitter
24943         accordingly.  Call h8300_swap_into_er6 and h8300_swap_out_of_er6
24944         instead of h8sx_split_movmd.
24945         (stpcpy, movsd): New expanders.
24946         (movsd_internal): New define_insn.
24947         2003-06-13  Richard Sandiford  <rsandifo@redhat.com>
24948         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Declare.
24949         (h8sx_emit_movmd, h8sx_split_movmd): Declare.
24950         * config/h8300/h8300.h (reg_class): Add COUNTER_REGS, SOURCE_REGS
24951         and DESTINATION_REGS.
24952         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
24953         (REGNO_REG_CLASS): Map er4, er5 and er6 to the new classes.
24954         (REG_CLASS_FROM_LETTER): Use h8300_reg_class_from_letter.
24955         (h8300_move_ratio): Declare.
24956         (MOVE_RATIO): Use it.
24957         * config/h8300/h8300.c (h8300_move_ratio): New variable.
24958         (h8300_init_once): Initialize it.
24959         (h8300_reg_class_from_letter): New function.
24960         (print_operand): Add an 'm' prefix for printing ".b", ".w" or ".l".
24961         (h8sx_emit_movmd, h8sx_split_movmd): New functions.
24962         * config/h8300/h8300.md (UNSPEC_MOVMD): New unspec constant.
24963         (COUNTER_REG, SOURCE_REG, DESTINATION_REG): New register constants.
24964         (movstrsi, movmd): New expanders.
24965         (movmd_internal): New insn.
24966         2003-06-06  Richard Sandiford  <rsandifo@redhat.com>
24967         * config/h8300/h8300.h (EXTRA_MEMORY_CONSTRAINT): Define.
24968         2003-06-04  Richard Sandiford  <rsandifo@redhat.com>
24969         * config/h8300/elf.h (LINK_SPEC): Use -m h8300sxnelf for -msx -mn.
24970         * config/h8300/h8300.c (asm_file_start): Use .h8300sxn likewise.
24971         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
24972         * config/h8300/h8300.c (nibble_operand): Fix warning.
24973         * config/h8300/h8300.md (movstricthi): Set adjust_length to no.
24974         (movsi_h8sx): Likewise here and the normal h8sx movhi pattern.
24975         (movsf_h8300h): Disable for TARGET_H8300SX.
24976         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
24977         * config/h8300/h8300.h (PREDICATE_CODES): Add h8300_ldm_parallel,
24978         h8300_stm_parallel and h8300_return_parallel.
24979         * config/h8300/h8300.c (h8300_push_pop, h8300_stack_offset_p,
24980         h8300_ldm_stm_regno, h8300_ldm_stm_parallel, h8300_ldm_parallel,
24981         h8300_stm_parallel, h8300_return_parallel): New functions.
24982         (h8300_expand_prologue): Don't enforce ldm/stm register alignment
24983         if TARGET_H8300SX.  Use h8300_push_pop.
24984         (h8300_expand_epilogue): Likewise.  Try to merge the return insn
24985         and final pop when generating h8sx code.  Always emit some form
24986         of return insn.
24987         * config/h8300/h8300.md: Don't enforce register alignment in
24988         stm peepholes if TARGET_H8300SX.
24989         (ldm_h8300s, stm_h8300s, return_h8sx): New patterns.
24990         (ldm_h8300s_[234], stm_h8300_[234]): Disable.
24991         (epilogue): Expect h8300_expand_epilogue to emit a return insn.
24992         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
24993         * config/h8300/t-h8300 (MULTILIB_OPTIONS): Add a -msx multilib.
24994         (MULTILIB_DIRNAMES): Add a directory for it.
24995         (MULTILIB_MATCHES): Delete.
24996         2003-05-28  Richard Sandiford  <rsandifo@redhat.com>
24997         * final.c (walk_alter_subreg): Handle addresses with subregs
24998         inside a ZERO_EXTEND or AND.
24999         * config/h8300/h8300-protos.h (h8300_get_index): Declare.
25000         * config/h8300/h8300.h (INDEX_REG_CLASS): Set to GENERAL_REGS
25001         if TARGET_H8300SX.
25002         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_get_index.
25003         * config/h8300/h8300.c (print_operand_address): Handle @(dd,RnL.b),
25004         @(dd,Rn.w) and @(dd,ERn.L).
25005         (h8300_displacement_size): Take the whole address as argument.
25006         (h8300_classify_operand, h8300_short_move_mem_p): Adjust accordingly.
25007         2003-05-28  Richard Sandiford  <rsandifo@redhat.com>
25008         * config/mips/mips-protos.h (h8300_operands_match_p): Declare.
25009         (h8sx_mergeable_memrefs_p): Declare.
25010         * config/h8300/h8300.h (HAVE_POST_DECREMENT): Define to TARGET_H8300SX.
25011         (HAVE_PRE_INCREMENT): Likewise.
25012         (GO_IF_LEGITIMATE_ADDRESS): Accept pre/post increment/decrement
25013         addresses for TARGET_H8300SX,
25014         * config/h8300/h8300.c (print_operand_address): Deal with PRE_INC
25015         and POST_DEC.
25016         (movb_length_table, movl_length_table): New tables.
25017         (movw_length_table): Define to movb_length_table.
25018         (h8300_displacement_size): New, split out from...
25019         (h8300_classify_address): ...here.  Handle pre/post inc/dec.
25020         (h8300_short_immediate_length): Allow H8OP_MEM_COMPLEX operands.
25021         (h8300_insn_length_from_table): Add cases for movb, movw and movl.
25022         (h8sx_mergeable_memrefs_p, h8300_operands_match_p): New functions.
25023         (output_plussi): Use add.l #xx:3,Rn and sub.l #xx:3,Rn for h8sx.
25024         (compute_plussi_length, compute_plussi_cc): Update accordingly.
25025         (h8sx_unary_shift_operator): Get the mode from the operator.
25026         (binary_shift_operator): Likewise.
25027         * config/h8300/h8300.md: If a peephole2 applies gen_lowpart to
25028         a memory reference, check whether the reference is offsettable.
25029         (length_table): Add movb, movw and movl.
25030         (movqi): Add new h8sx pattern.  Don't force one operand to be a
25031         register when generating h8sx code.
25032         (movhi, movsi, movsf): Likewise.
25033         (movstrictqi): Use the length_table attribute.
25034         (movstricthi): Likewise.  Add h8sx alternative for mov.w #xx:3,Rn.
25035         (addqi3): Split into a define_expand and define_insn.  Don't accept
25036         memory operands in the expander.  Use h8300_operands_match_p to
25037         check for matching operands in the define_insn.
25038         (subqi3, negqi2, one_cmplqi2): Likewise.
25039         (add[hs]i3): Don't accept memory operands in the expander.  Likewise
25040         in any patterns that are unused in h8sx code.  In the h8sx patterns,
25041         use h8300_operands_match_p to check whether operands match.
25042         (sub[hs]i3, and[hi]3, ior[hs]i3, xor[hs]i3, neg[hsi]3,
25043         one_cmpl[hs]i3): Likewise.
25044         (andqi3, iorqi3, xorqi3): Likewise.  Don't call fix_bit_operand
25045         in the expander.
25046         2003-05-23  Richard Sandiford  <rsandifo@redhat.com>
25047         * config/h8300/h8300-protos.h (expand_a_shift): Return a bool.
25048         (h8300_insn_length_from_table): Add a second parameter.
25049         (output_h8sx_shift): Declare.
25050         * config/h8300/h8300.h (OK_FOR_W, OK_FOR_Y): New macros.
25051         (EXTRA_CONSTRAINT): Replace with...
25052         (EXTRA_CONSTRAINT_STR): ...this.  Use OK_FOR_W and OK_FOR_Y.
25053         (CONSTRAINT_LEN): Define, returning 2 for 'W' and 'Y'.
25054         (PREDICATE_CODES): Add entries for h8sx_unary_shift_operator
25055         and h8sx_binary_shift_operator.
25056         * config/h8300/h8300.c (two_insn_adds_subs_operand): Return false
25057         for TARGET_H8300SX.
25058         (bit_operand): Replace use of EXTRA_CONSTRAINT with OK_FOR_U.
25059         (bit_memory_operand, fix_bit_operand): Likewise.
25060         (h8300_length_table_for_insn): Remove.
25061         (h8300_classify_operand): Fix check for 16-bit operands in 32-bit
25062         instructions.
25063         (h8300_short_immediate_length, h8300_binary_length): New functions.
25064         (h8300_insn_length_from_table): Add an opcodes parameter.  Rework.
25065         (output_plussi): Use sub to add negative constants.
25066         (compute_plussi_length): Adjust accordingly.
25067         (h8sx_single_shift_type): New enum.
25068         (h8sx_single_shift, h8sx_unary_shift_operator,
25069         h8sx_binary_shift_operator, output_h8sx_shift): New functions.
25070         (expand_a_shift, expand_a_rotate): Emit nothing if the shift is a
25071         single h8sx instruction.  Return false in this case.
25072         * config/h8300/h8300.md (length_table): Add short_immediate.
25073         (length): Pass the operand array to h8300_insn_length_from_table.
25074         (adjust_length): Assume "no" for insns with a length_table attribute.
25075         (*cmphi_h8300hs, cmpsi): Add alternatives for #xx:3.
25076         (*addhi3_h8300hs): Don't use for h8sx.
25077         (*addhi3_h8sx): New pattern, with alternatives for add.w #xx:3
25078         and sub.w #xx:3.
25079         (ashl[qhs]i3, lshr[qhs]i3, ashr[qhs]i3, rotl[qhs]i3): Change operand
25080         1's predicate to nonimmediate_operand.  Only skip default expansion
25081         if expand_a_shift or expand_a_rotate returns true.  Add new patterns
25082         for single h8sx shift instructions.
25083         2003-05-22  Alexandre Oliva  <aoliva@redhat.com>
25084         * config/h8300/h8300.c (nibble_operand): Split out of...
25085         (reg_or_nibble_operand): ... this.
25086         * config/h8300/h8300.h (PREDICATE_CODES): Added nibble_operand.
25087         * config/h8300/h8300.md: (mulqihi3, mulhisi3, umulqihi3,
25088         umulhisi3): Introduce expand, and introduce separate insns for
25089         sign- or zero-extended REG and already-extended CONST_INT.
25090         2003-05-20  Richard Sandiford  <rsandifo@redhat.com>
25091         * config/h8300/h8300.c (h8300_unary_length): Fix miscounting.
25092         * config/h8300/h8300.md (subqi3): Generalize for h8sx.
25093         (subhi3): Likewise.  Don't accept immediates for operand 1.
25094         Remove the early clobber from second alternative of the h8300s pattern.
25095         (subsi3): Generalize for h8sx.  Force operand 2 into a register
25096         on plain h8300 targets.
25097         (subsi3_h8300): Use h8300_dst_operand for consistency with expander.
25098         (subsi3_h8300h): Generalize for h8sx.
25099         (one_cmplqi2, one_cmplhi2, one_cmplsi2): Likewise.
25100         2003-05-19  Alexandre Oliva  <aoliva@redhat.com>
25101         * config/h8300/h8300.c (reg_or_nibble_operand): New.
25102         * config/h8300/h8300.h (PREDICATE_CODES): Adjust.
25103         (TARGET_H8300SXMUL): New.
25104         (CONST_OK_FOR_P): New.
25105         (CONST_OK_FOR_LETTER_P): Adjust.
25106         * config/h8300/h8300.md (mulqihi3, mulhisi3, umulqihi3,
25107         umulhisi3): Accept 4-bit immediate on H8SX.
25108         (mulhi3, mulsi3, smulsi3_highpart, umulsi3_highpart): New.
25109         (udivsi3, divhi3, udivsi3, divsi3): New.
25110         2003-05-19  Richard Sandiford  <rsandifo@redhat.com>
25111         * config/h8300/h8300-protos.h (h8300_insn_length_from_table): Declare.
25112         * config/h8300/h8300.h (OK_FOR_Q): New macro.
25113         (EXTRA_CONSTRAINT): Use it to check the 'Q' constraint.
25114         (PREDICATE_CODES): Add h8300_src_operand and h8300_dst_operand.
25115         Add ADDRESSOF to the bit_operand entry.
25116         * config/h8300/h8300.c (h8300_dst_operand): New predicate.
25117         (h8300_src_operand): Likewise.
25118         (bit_operand): Check nonimmediate_operand rather than general_operand.
25119         Accept any nonimmediate_operand in h8sx code.
25120         (h8300_and_costs): Initialize operands[1].
25121         (h8300_rtx_costs) <AND>: Return false if the operands aren't valid.
25122         (h8300_operand_class): New enum.
25123         (h8300_length_table): New typedef.
25124         (addb_length_table, addw_length_table, addl_length_table,
25125         logicl_length_table): New tables.
25126         (logicb_length_table, logicw_length_table): New macros.
25127         (h8300_classify_operand, h8300_length_from_table,
25128         h8300_length_table_for_insn, h8300_unary_length,
25129         h8300_insn_length_from_table): New functions.
25130         (output_plussi): Only use adds and subs for register destinations.
25131         Disable redundant clause.
25132         (compute_plussi_cc): Likewise.
25133         (compute_plussi_length): Likewise.  Use h8300_length_from_table
25134         to work out the length of an insn.
25135         (output_logical_op): Only use narrower immediate instructions
25136         if the destination is a register.
25137         (compute_logical_op_cc): Likewise.
25138         (compute_logical_op_length): Likewise.  Use h8300_length_from_table.
25139         (h8300_adjust_insn_length): Tighten check for reg<->mem moves.
25140         * config/h8300/h8300.md (length_table): New attribute.
25141         (length): When an instruction has a length_table attribute, use
25142         h8300_insn_length_from_table to calculate its default length.
25143         (cmpqi): Use h8300_dst_operand for the first operand and
25144         h8300_src_operand for the second.
25145         (cmphi, *cmphi_h8300hs, cmpsi, negqi2, neghi2, neghi2_h8300h, negsi2,
25146         negsi2_h8300h, addqi3, addhi3, *addhi3_h8300, *addhi3_h8300hs, addsi3,
25147         addsi_h8300, addsi_h8300h, andhi3, andsi3, iorhi3,
25148         iorsi3, xorhi3, xorsi3): Likewise.
25149         (andqi3): Use h8300_src_operand for operand 2.  Adjust the condition
25150         so that it allows any combination of operands for TARGET_H8300SX.
25151         (iorqi3, xorqi3): Likewise.
25152         (cmpqi): Use the length_table attribute.
25153         (*cmphi_h8300hs, cmpsi, addqi, *addhi3_h8300hs, andqi3, iorqi3,
25154         xorqi3, negqi2, neghi2_h8300h, negsi2_h8300h): Likewise.
25155         (cmpqi): Add 'Q' constraint.
25156         (*cmphi_h8300hs, cmpsi, addqi, *addhi3_h8300hs, addsi_h8300h, andqi3,
25157         iorqi3, xorqi3, negqi2, neghi2_h8300h, negsi2_h8300h): Likewise.
25158         2003-05-14  Richard Sandiford  <rsandifo@redhat.com>
25159         * config/h8300/h8300.h (MASK_H8300SX): New macro.
25160         (TARGET_H8300S): True for both -ms and -msx.
25161         (TARGET_H8300SX): New macro.
25162         (TARGET_SWITCHES): Add entries for -msx and -mno-sx.
25163         * config/h8300/h8300.c (asm_file_start): Write .h8300sx for -msx.
25164         * config/h8300/elf.h (LINK_SPEC): Use -m h8300sxelf for -msx.
25165         * config/h8300/t-h8300 (MULTILIB_MATCHES): Use -ms multilibs for -msx.
25166         [Temporary change.]
25167         2003-02-28  Alexandre Oliva  <aoliva@redhat.com>
25168         * config/h8300/h8300.h (SIZE_TYPE, PTRDIFF_TYPE): Use short with
25169         16-bit pointers and 32-bit ints.
25170         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Accept
25171         CONST_DOUBLE with mode no wider than SImode.
25172         * config/h8300/h8300.md (extendqisi2_h8300): Add constraints for
25173         output operand.
25174         2003-02-27  Alexandre Oliva  <aoliva@redhat.com>
25175         * config/h8300/h8300.c (general_operand_src): Match CONSTANT_P_RTX
25176         or SUBREG thereof.
25177         * config/h8300/h8300.h (PREDICATE_CODES): Adjust.
25178         2003-02-22  Alexandre Oliva  <aoliva@redhat.com>
25179         * config/h8300/h8300.c (dosize): Truncate sign * size to Pmode.
25180
25181 2004-05-28  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
25182
25183         * config.gcc (i[34567]86-*-mingw32*): Enable threads by default.
25184
25185 2004-07-07  Per Bothner  <per@bothner.com>
25186
25187         * flow.c (attempt_auto_inc):  Remove now-redundant PUT_CODE.
25188
25189 2004-07-07  Mike Stump  <mrs@apple.com>
25190
25191         * darwin.h (ASM_OUTPUT_LABELREF): Fix -fno-leading-underscore.
25192         * darwin.c (machopic_non_lazy_ptr_name, machopic_stub_name)
25193         (machopic_finish): Likewise.
25194
25195 2004-07-07  Richard Henderson  <rth@redhat.com>
25196
25197         * tree-ssa-dom.c (simplify_switch_and_lookup_avail_expr): Look
25198         through any value-preserving cast.
25199
25200 2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
25201
25202         * function.c (assign_parm_find_data_types): Call
25203         FUNCTION_ARG_PASS_BY_REFERENCE only if it's defined.
25204
25205 2004-07-07  Steven Bosscher  <stevenb@suse.de>
25206
25207         * tree-cfg.c (group_case_labels): Remove case labels that have
25208         the same target as the default case.
25209
25210 2004-07-07  Steven Bosscher  <stevenb@suse.de>
25211
25212         * tree-inline.c (optimize_inline_calls): Set DECL_INLINED_FNS
25213         regardless of DECL_LANG_SPECIFIC being present or not.
25214         * tree.h (DECL_NUM_STMTS): Purge.
25215
25216 2004-07-07  Andrew Pinski  <apinski@apple.com>
25217
25218         * configure: Regenerate with the right autoconf.
25219
25220 2004-07-07  David Edelsohn  <edelsohn@gnu.org>
25221
25222         * ifcvt.c (total_bb_rtx_cost): New function.
25223         (find_if_case_1): Compare rtx_cost of basic block to cost of
25224         BRANCH_COST insns.
25225         (find_if_case_2): Same.
25226
25227 2004-07-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
25228
25229         PR target/10567
25230         * config/sparc/sparc.c (load_pic_register): Honor flag_delayed_branch.
25231         (output_return): Likewise.
25232         (output_sibcall): Abort if !flag_delayed_branch.
25233         (sparc_function_ok_for_sibcall): Return 0 if !flag_delayed_branch.
25234         (emit_and_preserve): New function.
25235         (sparc_output_mi_thunk): Use it.  Honor flag_delayed_branch.  Emit an
25236         indirect jump to the thunked-to function if !flag_delayed_branch.
25237         * config/sparc/sparc.md (delayed_branch): New attribute.
25238         (load_pcrel_sym): Honor flag_delayed_branch.  Use above
25239         attribute to compute the length of the insn.
25240         (goto_handler_and_restore): Likewise.
25241
25242 2004-07-07  Andrew Pinski  <apinski@apple.com>
25243
25244         PR tree-optimization/15777
25245         * fold-const.c (fold_single_bit_test): Fold the x^1 expression.
25246
25247         * expr.c (expand_expr_real_1): Fix formating.
25248         BUFFER_REF and IN_EXPR are dead.
25249         * fold-const.c (non_lvalue): BUFFER_REF is dead.
25250         * tree-inline.c (estimate_num_insns_1): Likewise.
25251         * tree-pretty-print.c (dump_generic_node): BUFFER_REF,
25252         IN_EXPR, SET_LE_EXPR, and CARD_EXPR are dead.
25253         * tree.def (BUFFER_REF, IN_EXPR, SET_LE_EXPR, CARD_EXPR): Kill.
25254
25255 2004-07-07  H.J. Lu  <hongjiu.lu@intel.com>
25256
25257         * collect2.c (dump_file): Don't call cplus_demangle if
25258         HAVE_LD_DEMANGLE is defined.
25259         (main): Pass "--demangle" to ld if no_demangle is not 0 and
25260         HAVE_LD_DEMANGLE is defined. Don't set current_demangling_style
25261         if HAVE_LD_DEMANGLE is defined.
25262
25263         * configure.ac (--with-demangler-in-ld): Added
25264         (HAVE_LD_DEMANGLE): Define if ld supports --demangle when
25265         --with-demangler-in-ld is used.
25266         * config.in: Regenerated.
25267         * configure: Likewise.
25268
25269 2004-07-07  Roger Sayle  <roger@eyesopen.com>
25270
25271         * config/rs6000/rs6000.c (struct processor_costs): Add new fields
25272         for simple floating point operations "fp", double precision
25273         multiplication "dmul", and single and double precision division
25274         "sdiv" and "ddiv".  Update all CPU variant tables as appropriate.
25275         (ppc630_cost): New table split from ppc620_cost, to distinguish
25276         differences in floating point latencies.
25277         (rs6000_override_options): Use ppc630_cost for PROCESSOR_PPC630.
25278         (rs6000_rtx_costs): Add support for single and double precision
25279         floating point addition, subtraction, multiplication, division,
25280         fused-multiply-add, fused-multiply-sub, negation, absolute value
25281         and negative absolute value.  Tweak MEM case to use prefered idiom.
25282
25283 2004-07-07  Richard Henderson  <rth@redhat.com>
25284
25285         * tree-flow-inline.h (may_propagate_copy): Move...
25286         * tree-ssa-copy.c (may_propagate_copy): ... here.  Fail if we
25287         attempt to copy between types requiring conversion.
25288         * tree-flow.h (may_propagate_copy): Update decl.
25289         * tree-ssa-dom.c (cprop_operand): Tidy redundant tests.
25290
25291 2004-07-07  Jakub Jelinek  <jakub@redhat.com>
25292
25293         * config/i386/i386.c (override_options): Don't set x86_prefetch_sse
25294         from -mtune= option.
25295
25296 2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
25297
25298         * builtins.c: Rename movstr*, except for movstrict*, to
25299         movmem* and clrstr* to clrmem*.
25300         * expr.c: Likewise.
25301         * expr.h: Likewise.
25302         * genopinit.c: Likewise.
25303         * integrate.c: Likewise.
25304         * local-alloc.c: Likewise.
25305         * optabs.c: Likewise.
25306         * optabs.h: Likewise.
25307         * config/alpha/alpha.h: Likewise.
25308         * config/alpha/alpha.md: Likewise.
25309         * config/arm/arm-protos.h: Likewise.
25310         * config/arm/arm.c: Likewise.
25311         * config/arm/arm.md: Likewise.
25312         * config/avr/avr.md: Likewise.
25313         * config/c4x/c4x.c: Likewise.
25314         * config/c4x/c4x.md: Likewise.
25315         * config/frv/frv.md: Likewise.
25316         * config/i386/i386-protos.h: Likewise.
25317         * config/i386/i386.c: Likewise.
25318         * config/i386/i386.h: Likewise.
25319         * config/i386/i386.md: Likewise.
25320         * config/i860/i860.c: Likewise.
25321         * config/i860/i860.md: Likewise.
25322         * config/ip2k/ip2k.md: Likewise.
25323         * config/ip2k/libgcc.S: Likewise.
25324         * config/ip2k/t-ip2k: Likewise.
25325         * config/m32r/m32r.c: Likewise.
25326         * config/m32r/m32r.md: Likewise.
25327         * config/mcore/mcore.md: Likewise.
25328         * config/mips/mips.c: Likewise.
25329         * config/mips/mips.md: Likewise.
25330         * config/ns32k/ns32k.c: Likewise.
25331         * config/ns32k/ns32k.h: Likewise.
25332         * config/ns32k/ns32k.md: Likewise.
25333         * config/pa/pa.c: Likewise.
25334         * config/pa/pa.md: Likewise.
25335         * config/pdp11/pdp11.h: Likewise.
25336         * config/pdp11/pdp11.md: Likewise.
25337         * config/rs6000/rs6000.c: Likewise.
25338         * config/rs6000/rs6000.md: Likewise.
25339         * config/s390/s390-protos.h: Likewise.
25340         * config/s390/s390.c: Likewise.
25341         * config/s390/s390.md: Likewise.
25342         * config/sh/lib1funcs.asm: Likewise.
25343         * config/sh/sh.c: Likewise.
25344         * config/sh/sh.md: Likewise.
25345         * config/sh/t-sh: Likewise.
25346         * config/sparc/sparc.h: Likewise.
25347         * config/vax/vax.md: Likewise.
25348         * config/xtensa/xtensa.c: Likewise.
25349         * config/xtensa/xtensa.md: Likewise.
25350         * doc/invoke.texi: Likewise.
25351         * doc/md.texi: Likewise.
25352         * doc/rtl.texi: Likewise.
25353
25354 2004-07-07  Richard Sandiford  <rsandifo@redhat.com>
25355
25356         PR target/16407
25357         * config/mips/mips-protos.h (mips_declare_common_object): Declare.
25358         * config/mips/mips.c (mips_declare_common_object): New function,
25359         mostly split out from...
25360         (mips_output_aligned_decl_common): ...here.
25361         * config/mips/mips.h (ASM_OUTPUT_LOCAL): Remove in favor of...
25362         (ASM_OUTPUT_ALIGNED_LOCAL): ...this new definition.
25363         * config/mips/iris6.h (ASM_OUTPUT_ALIGNED_LOCAL): Undefine this
25364         rather than ASM_OUTPUT_LOCAL.  Call mips_declare_common_object.
25365
25366 2004-07-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
25367
25368         PR c/16392
25369         * function.c (assign_parms): Fix typo from previous change.
25370
25371 2004-07-07  Jason Merrill  <jason@redhat.com>
25372
25373         PR c++/15815
25374         * doc/extend.texi (C++ Interface): Correct information and
25375         discourage use.
25376
25377 2004-07-07  Vladimir Makarov  <vmakarov@redhat.com>
25378
25379         PR target/16130
25380         PR target/16142
25381         PR target/16143
25382         * config/ia64/ia64.c (ia64_dfa_new_cycle): Reset DFA state for asm
25383         insn.
25384
25385 2004-07-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
25386
25387         PR target/1679.
25388         * config/m32r/m32r.c (m32r_function_symbol): New function:
25389         Generate a symbol name RTX with the correct m32r specific flags
25390         set.
25391         (block_move_call): Use new function to generate correct symbol.
25392         * config/m32r/m32r-protos.h: Add prototype for new funcion.
25393         * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Use the new
25394         function.
25395
25396 2004-07-07  Nathan Sidwell  <nathan@codesourcery.com>
25397
25398         * tree.h (TYPE_BINFO_OFFSET, TYPE_BINFO_VTABLE,
25399         TYPE_BINFO_VIRTUALS, TYPE_BINFO_BASETYPES,
25400         TYPE_BINFO_BASETYPE): Remove.
25401         (BINFO_BASETYPES, BINFO_N_BASETYPES, BINFO_BASETYPE): Rename
25402         to ...
25403         (BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): ...
25404         here.
25405         (BINFO_BASEACCESSES, BINFO_BASEACCESS): Rename to ...
25406         (BINFO_BASE_ACCESSES, BINFO_BASE_ACCESS): ... here.
25407         (BINFO_INHERITANCE_CHAIN): Redocument as it is actually used.
25408         (struct tree_binfo): Rename base_types to base_binfos.
25409         * alias.c (record_component_aliases): Adjust BINFO macros.
25410         * dbxout.c (dbxout_type): Likewise.
25411         * dwarf2out.c (gen_member_die): Likewise.
25412         * sdbout.c (sdbout_one_type): Likewise.
25413         * tree-dump.c (deque_and_dump): Likewise.
25414         * config/i386/i386.c (classify_argument,
25415         contains_128bit_aligned_vector_p): Likewise.
25416
25417 2004-07-07  Nick Clifton  <nickc@redhat.com>
25418
25419         * config/fr30/fr30.c (fr30_setup_incoming_varargs): Change
25420         arguments to match TARGET_SETUP_INCOMING_VARARGS prototype.
25421
25422 2004-07-07  Nathan Sidwell  <nathan@codesourcery.com>
25423
25424         * vec.h: Fix the example use.
25425
25426 2004-07-06  Richard Henderson  <rth@redhat.com>
25427
25428         * langhooks-def.h (LANG_HOOKS_GIMPLE_BEFORE_INLINING): Remove.
25429         * langhooks.h (struct lang_hooks): Remove gimple_before_inlining.
25430         * tree-inline.c (copy_body_r, setup_one_parameter,
25431         initialize_inlined_parameters, expand_call_inline,
25432         declare_inline_vars): Don't check it.
25433         (expand_calls_inline): Remove old version, rename new version
25434         from gimple_expand_calls_inline.
25435         * tree-optimize.c (execute_gimple): Remove.
25436         (pass_gimple): Don't run anything.
25437
25438 2004-07-06  Joseph S. Myers  <jsm@polyomino.org.uk>
25439
25440         * doc/sourcebuild.texi: Use semicolons instead of commas in
25441         section title.
25442
25443 2004-07-06  Richard Henderson  <rth@redhat.com>
25444
25445         * tree-sra.c (struct sra_walk_fns): Revert 2004-07-05 change.
25446         (sra_walk_modify_expr, scan_init): Likewise.
25447         (generate_element_zero): Check visited before scanning children.
25448         (generate_element_init): Set visited on error.
25449         (scalarize_init): Handle generate_element_init failure similar
25450         to use_block_copy.
25451
25452 2004-07-06  Joseph S. Myers  <jsm@polyomino.org.uk>
25453
25454         * toplev.h (NO_FRONT_END_DIAG, ATTRIBUTE_GCC_FE_DIAG): Define.
25455         (warning, error, pedwarn, sorry): Use ATTRIBUTE_GCC_FE_DIAG.
25456
25457 2004-07-06  Richard Henderson  <rth@redhat.com>
25458
25459         * config/i386/i386.c (legitimize_pic_address): Make static.
25460         (legitimize_address): Handle CONST with TLS operand.
25461         (ix86_expand_move): Don't call legitimize_pic_address directly.
25462         * config/i386/i386-protos.h (legitimize_pic_address): Remove.
25463
25464 2004-07-06  Roger Sayle  <roger@eyesopen.com>
25465
25466         * ifcvt.c (struct noce_if_info): Add a Boolean b_unconditional field.
25467         (noce_try_sign_mask): Tweak rtx_cost check if t is evaluated anyway.
25468         (noce_process_if_block): Initialize if_info.b_unconditional if insn_b
25469         is currently executed unconditionally, i.e. not in "else_bb".
25470
25471 2004-07-06  Steven Bosscher  <stevenb@suse.de>
25472
25473         * config/alpha/alpha.c (alpha_use_dfa_pipeline_interface): Remove.
25474         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
25475         * config/arm/arm.c (arm_use_dfa_pipeline_interface): Remove.
25476         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
25477         * config/frv/frv.c (frv_use_dfa_pipeline_interface): Remove.
25478         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
25479         * config/i386/i386.c (ia32_use_dfa_pipeline_interface): Remove.
25480         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
25481         * config/ia64/ia64.c (ia64_use_dfa_pipeline_interface): Remove.
25482         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
25483         * config/pa/pa.c (hhpa_use_dfa_pipeline_interface): Remove.
25484         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
25485         * config/sparc/sparc.c (sparc_use_dfa_pipeline_interface): Remove.
25486         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
25487         * config/v850/v850.c (v850_use_dfa_pipeline_interface): Remove.
25488         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
25489
25490 2004-07-06  Daniel Berlin  <dberlin@dberlin.org>
25491
25492         * dojump.c (do_jump): REFERENCE_EXPR is dead.
25493         * expr.c (expand_expr_real_1): Ditto.
25494         * tree-inline.c (estimate_num_insns_1): Ditto.
25495         * tree-pretty-print.c (dump_generic_node): Ditto.
25496         (op_symbol): Ditto.
25497         * tree.def: Ditto.
25498
25499 2004-07-06  Daniel Berlin  <dberlin@dberlin.org>
25500
25501         * tree-ssa-pre.c (reference_node_pool): New pool.
25502         (find_or_generate_expression): Class 'r' is okay too.
25503         (create_value_expr_from): Ditto.
25504         (add_to_sets): LHS should not include vuses.
25505         (eliminate): Ditto.
25506         (compute_avail): Reverse ordering of tests.
25507         Valuize INDIRECT_REF as well.
25508
25509 2004-07-06  Richard Sandiford  <rsandifo@redhat.com>
25510
25511         PR rtl-optimization/16380
25512         * loop.c (check_dbra_loop): Sink comparison instructions if they
25513         do something other than set cc0.
25514
25515 2004-07-06  James E Wilson  <wilson@specifixinc.com>
25516
25517         * doc/interface.texi (longjmp and automatic variables): Delete
25518         paragraph recommending taking the address of a variable.
25519
25520 2004-07-06  Nathan Sidwell  <nathan@codesourcery.com>
25521
25522         * vec.h (VEC_embedded_alloc): Remove.
25523         (VEC_embedded_size, VEC_embedded_init): New.
25524         (VEC_alloc, VEC_reserve, VEC_safe_push, VEC_safe_insert): Add
25525         MEM_STAT_INFO.
25526         (VEC_truncate): New.
25527         (vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL.
25528         (vec_embedded_alloc): Remove.
25529         * vec.c (vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL, adjust.
25530         (vec_embedded_alloc): Remove.
25531
25532 2004-07-06  Mark Mitchell  <mark@codesourcery.com>
25533
25534         * Makefile.in (langhooks.o): Do not depend on gt-langhooks.h.
25535         (gt-langhooks.h): Remove.
25536
25537 2004-07-06  George Helffrich <george@gly.bris.ac.uk>
25538
25539         * xcoffout.h (DBX_FINISH_SYMBOL): Fix typo.
25540
25541 2004-07-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
25542
25543         * config/sparc/sparc.c (get_pc_symbol): Rename into
25544         add_pc_to_pic_symbol.
25545         (get_pc_symbol_name): Rename into add_pc_to_pic_symbol_name.
25546         (load_pic_register): Account for previous changes.
25547         Use reg_names.  Don't create the label twice.
25548         * config/sparc/sparc.md (UNSPEC_GET_PC): Rename into
25549         UNSPEC_LOAD_PCREL_SYM.
25550         (get_pc): Rename into load_pcrel_sym.  Add predicate to
25551         operands.  Remove condition.
25552
25553 2004-07-06  Nathan Sidwell  <nathan@codesourcery.com>
25554
25555         * dbxout.c (dbxout_type): Don't test whether the binfo slot of
25556         RECORD, UNION & QUAL_UNION is actually a binfo.
25557
25558         * tree.h (TREE_VIA_VIRTUAL): Rename to ...
25559         (BINFO_VIRTUAL_P): ... here. Require TREE_BINFO only.
25560         (BINFO_MARKED, BINFO_FLAG_[16]): New binfo flags.
25561         * dbxout.c (dbxout_type): Use BINFO_VIRTUAL_P.
25562         * dwarf2out.c (add_data_member_location_attribute): Likewise.
25563         (gen_inheritance_die): Likewise.
25564         * tree-dump.c (deque_and_dump): Likewise.
25565         * doc/c-tree.texi (Binfos): Add under reconstruction note.
25566
25567 2004-07-06  Steven Bosscher  <stevenb@suse.de>
25568
25569         * config/mcore/mcore.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
25570         Define.
25571         * config/mcore/mcore.md: Model memory latency with a simple DFA
25572         pipeline description instead of a define_function_unit.
25573
25574 2004-07-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25575
25576         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P): Extra arg.
25577         * langhooks.h (var_mod_type_p): Likewise.
25578         * c-decl.c (finish_decl): Add extra arg to variably_modified_type_p.
25579         * expr.c (count_type_elements): Properly handle return from
25580         array_type_nelts and properly test for overflow.
25581         * gimplify.c (gimplify_init_constructor): Properly handle return
25582         from array_type_nelts.
25583         (gimplify_addr_expr): Remove redundant clear of TREE_SIDE_EFFECTS.
25584         * integrate.c (copy_decl_for_inlining): Correct comments.
25585         * tree-inline.c (remap_decl): Update comments, remove dead code,
25586         and copy DECL_FIELD_OFFSET and DECL_QUALIFIER, if they exist.
25587         (remap_type): Only remap if variably modified by vars in function
25588         being inlined.
25589         (copy_body_r): Use compatible_type langhooks to see when can fold.
25590         (setup_one_parameter): Don't remap type.
25591         (inline_forbidden_p_1): Add arg to variably_modified_type_p.
25592         * tree.c (recompute_tree_invarant_for_addr_expr): Properly
25593         compute TREE_INVARIANT for decl case.
25594         (find_var_from_fn): New function.
25595         (variably_modified_type_p): Add arg and call new function.
25596         * tree.h (variably_modified_type_p): Add extra arg.
25597
25598 2004-07-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
25599
25600         * config/sparc/sparc.md (nonlocal_goto): Remove disabled code.
25601         (goto_handler_and_restore_v9): Delete disabled insn.
25602         (goto_handler_and_restore_v9_sp64): Likewise.
25603
25604 2004-07-05  Roger Sayle  <roger@eyesopen.com>
25605
25606         * calls.c (load_register_parameters): Call expand_shift instead
25607         of expand_binop with ashl_optab (or other shift optab) directly.
25608         * expr.c (emit_group_load, emit_group_store): Likewise.
25609         * function.c (assign_parm_setup_block): Likewise.
25610         * stmt.c (shift_return_value): Likewise.
25611
25612 2004-07-05  Jakub Jelinek  <jakub@redhat.com>
25613
25614         * expr.c (expand_assignment): Disable the bitfield += optimizations.
25615
25616 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
25617
25618         * doc/sourcebuild.texi: Revert previous patch.
25619
25620 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
25621
25622         * c-decl.c, config/m32r/m32r.c, expr.c, optabs.c: Don't check
25623         TARGET_MEM_FUNCTIONS.
25624         * system.h: Poison TARGET_MEM_FUNCTIONS.
25625         * libfuncs.h (LTI_bcopy, LTI_bcmp, LTI_bzero, bcopy_libfunc,
25626         bcmp_libfunc, bzero_libfunc): Remove.
25627         * optabs.c (init_obtabs): Don't set bcopy_libfunc, bcmp_libfunc or
25628         bzero_libfunc.
25629         * doc/tm.texi (TARGET_MEM_FUNCTIONS): Remove.
25630         * doc/standards.texi: Don't mention calling BSD string functions.
25631         * doc/invoke.texi: Likewise.  Mention that memmove may be called.
25632         * config/vax/t-memfuncs: New.
25633         * config/memcmp.c, config/memcpy.c, config/memmove.c,
25634         config/memset.c: New.
25635         * config/pdp11/t-pdp11 (LIB2FUNCS_EXTRA): Use these files.
25636         * config.gcc (vax-*-bsd*, vax-*-sysv*, vax-*-ultrix*): Use
25637         vax/t-memfuncs.
25638         * config/alpha/alpha.h, config/arc/arc.h, config/arm/arm.h,
25639         config/avr/avr.h, config/c4x/c4x.h, config/cris/aout.h,
25640         config/elfos.h, config/gnu.h, config/h8300/h8300.h,
25641         config/i386/gas.h, config/ia64/ia64.h, config/interix.h,
25642         config/ip2k/ip2k.h, config/lynx-ng.h, config/m32r/m32r.h,
25643         config/mcore/mcore.h, config/mips/mips.h, config/mmix/mmix.h,
25644         config/netbsd.h, config/openbsd.h, config/pa/pa.h,
25645         config/rs6000/rs6000.h, config/rtems.h, config/s390/s390.h,
25646         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
25647         config/svr3.h: Don't define TARGET_MEM_FUNCTIONS.
25648
25649 2004-07-05  Richard Henderson  <rth@redhat.com>
25650
25651         * function.c (assign_parm_setup_reg): Properly rename variables in
25652         FUNCTION_ARG_CALLEE_COPIES section.
25653
25654 2004-07-05  Zack Weinberg  <zack@codesourcery.com>
25655
25656         * tree-mudflap.c: Include cgraph.h.
25657         (mf_init_extern_trees): Rename to mudflap_init.  Export.
25658         Rewrite to create synthetic declarations instead of looking
25659         up declarations from mf-runtime.h.
25660         (mf_make_builtin, mf_make_cache_struct_type): New functions.
25661         (mf_cache_shift_decl, mf_cache_mask_decl, mf_unregister_fndecl):
25662         Correct commentary.
25663         (execute_mudflap_function_decls, mudflap_register_call):
25664         Don't call mf_init_extern_trees.
25665         (mudflap_finish_file): Use cgraph_build_static_cdtor.
25666
25667         * tree-mudflap.h: Update prototypes.
25668         * c-mudflap.c: Delete file.
25669         * c-common.c: Include tree-mudflap.h.
25670         (c_common_nodes_and_builtins): Call mudflap_init if appropriate.
25671         * Makefile.in: Remove all references to c-mudflap.o.
25672         Update dependencies.
25673
25674 2004-07-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
25675
25676         * pa.md (prefetch, prefetch_32, prefetch_64): Only allow short
25677         displacements with the spatial-locality cache-control completer.
25678
25679 2004-07-05  Zack Weinberg  <zack@codesourcery.com>
25680
25681         * langhooks.c: Don't include gt-langhooks.h.
25682         (var_labelno): Delete.
25683         (lhd_set_decl_assembler_name): Do not append a distinguishing
25684         number to file-scope internal-linkage declarations for the first
25685         input file, even if they have DECL_CONTEXT set.  Use DECL_UID of
25686         the declaration itself (if at block scope), or its containing
25687         TRANSLATION_UNIT_DECL (if at file scope) for the distinguishing
25688         number.
25689
25690         * opts.c (cur_in_fname): New global.
25691         * opts.h: Declare it.
25692         * tree.c: Include opts.h.
25693         (make_node_stat): If creating a TRANSLATION_UNIT_DECL, give it
25694         DECL_UID equal to cur_in_fname.
25695         (copy_node_stat): Do not change DECL_UID when copying a
25696         TRANSLATION_UNIT_DECL.
25697         (build_common_tree_nodes): Adjust next_decl_uid to reserve the
25698         range 0 .. num_in_fnames-1 for TRANSLATION_UNIT_DECLs.
25699
25700         * c-decl.c (c_static_assembler_name): Delete.
25701         * c-tree.h (c_static_assembler_name): Delete prototype.
25702         * c-lang.c, objc/objc-lang.c: Don't override
25703         LANG_HOOKS_SET_DECL_ASSEMBLER_NAME.
25704
25705         * Makefile.in (tree.o): Update dependencies.
25706         (GTFILES): Remove langhooks.c.
25707
25708 2004-07-05  Roger Sayle  <roger@eyesopen.com>
25709
25710         * fold-const.c (fold) <TRUNC_MOD_EXPR>: Optimize unsigned modulus
25711         by a power of two into a bit-wise AND, i.e. "X % C" as "X & (C-1)".
25712         Normalize "X % C" as "X % -C" for signed modulus and negative C.
25713         Optimize "X % -Y" as "X % Y" for signed modulus.
25714         <EQ_EXPR>: Recursively call "fold" when transforming "(X % Y) == 0"
25715         into "((unsigned) X % Y) == 0".
25716
25717 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
25718
25719         * sourcebuild.texi (Config Fragments): Use @comma{} in
25720         cross-reference to section title.
25721
25722 2004-07-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25723
25724         * tree.h (DECL_SEEN_IN_BIND_EXPR_P): New macro.
25725         * gimplify.c (gimple_add_tmp_var, gimplify_bind_expr): Use it.
25726         (gimplify_target_expr, gimplify_expr): Likewise.
25727         (copy_if_shared_r): No longer need special case for BIND_EXPR.
25728         (unshare_body, unvisit_body): Only look at nested if BODY_P is
25729         whole function.
25730         (gimplify_compound_lval): See if we can strip any useless conversion.
25731         (gimplify_modify_expr, gimplify_modify_expr_to_memcpy): Take size
25732         from RHS, not LHS.
25733         (gimplify_modify_expr_to_memset): Likewise.
25734         (gimplify_expr, case CONSTRUCTOR): Handle use as statement.
25735         * tree-inline.c (setup_one_parameter): Use DECL_SEEN_IN_BIND_EXPR_P.
25736         (declare_inline_vars): Likewise.
25737         (walk_type_fields): New function.
25738         (walk_tree): Use it.
25739         * tree-nested.c (create_tmp_var_for): Show seen in BIND_EXPR.
25740
25741         * tree-sra.c (struct sra_walk_fns): Init function now returns bool.
25742         (sra_walk_modify_expr): Allow init function to fail.
25743         (scan_init): Now returns bool.
25744         (generate_element_init): If can't understand INIT, return false.
25745         (scalarize_init): Return false if generate_element_init does.
25746
25747         * tree-pretty-print.c (dump_generic_node, case ARRAY_TYPE): Properly
25748         print bounds.
25749
25750         * expr.c (expand_expr_real_1, case SWITCH_EXPR): Don't check against
25751         bounds if bounds aren't constant.
25752
25753         * tree-cfg.c (verify_expr): Use CHECK_OP in binary case.
25754
25755         * function.c, langhooks-def.h, langhooks.h: Move max_size hook
25756         to type hooks; remove bogus PARAMS.
25757
25758 2004-07-05  Nathan Sidwell  <nathan@codesourcery.com>
25759
25760         * c-tree.h (TYPE_ACTUAL_ARG_TYPES): Use TYPE_LANG_SLOT_1.
25761         * dwarf2out.c (add_data_member_location_attribute): Check for
25762         TREE_BINFO.
25763         * tree.c (tree_node_kinds): Add "binfos".
25764         (binfo_lang_slots): New.
25765         (make_node_stat): Add TREE_BINFO.
25766         (make_tree_binfo_stat): New.
25767         (tree_node_structure): Add TREE_BINFO.
25768         * tree.def (TREE_BINFO): New.
25769         * tree.h (REC_OR_UNION_CHECK): Rename to ...
25770         (RECORD_OR_UNION_CHECK): ... here.
25771         (NOT_RECORD_OR_UNION_CHECK): New.
25772         (TRE_VIA_VIRTUAL): Allow TREE_LIST or TREE_BINFO.
25773         (TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD): Adjust for
25774         RECORD_OR_UNION_CHECK.
25775         (TYPE_BINFO): Use RECORD_OR_UNION_CHECK.
25776         (TYPE_LANG_SLOT_1): New.
25777         (BINFO_TYPE, BINFO_OFFSET, BINFO_VTABLE, BINFO_VIRTUALS,
25778         BINFO_BASETYPES, TYPE_BINFO_BASETYPES, BINFO_VPTR_FIELD,
25779         BINFO_BASEACCESSES, BINFO_INHERITANCE_CHAIN): Adjust.
25780         (BINFO_ELTS): Remove.
25781         (BINFO_LANG_SLOT): New.
25782         (struct tree_binfo): New.
25783         (binfo_lang_slots): Declare.
25784         (enum tree_node_structure_enum): Add TS_BINFO.
25785         (union tree_node): Add binfo.
25786         (make_tree_binfo_stat): Declare.
25787         (make_tree_binfo): New.
25788         (enum tree_node_kind): Add binfo_kind.
25789
25790         * objc/objc-act.c (start_class, objc_declare_protocols,
25791         start_protocols): Use TYPE_LANG_SLOT_1.
25792         * objc/objc-act.h (CLASS_BINFO_ELTS, PROTOCOL_BINFO_ELTS): Rename
25793         to ...
25794         (CLASS_LANG_SLOT_ELTS, PROTOCOL_LANG_SLOT_ELTS): ... here.
25795         (CLASS_IVARS, CLASS_RAW_IVARS, CLASS_STATIC_TEMPLATE,
25796         CLASS_CATEGORY_LIST, CLASS_PROTOCOL_LIST, CLASS_OWN_IVARS,
25797         PROTOCOL_LIST, PROTOCOL_FORWARD_DECL): Use TYPE_LANG_SLOT_1.
25798
25799 2004-07-05  Steven Bosscher  <stevenb@suse.de>
25800
25801         * rtl.h (struct rtx_def): Remove the integrated flag.
25802         Use the return_val flag for MEM_SCALAR_P.
25803         Reshuffle and update flags in CLEAR_RTX_FLAGS.
25804
25805 2004-07-05  Richard Sandiford  <rsandifo@redhat.com>
25806
25807         PR target/16357
25808         * config/mips/mips.c (mips_block_move_straight): Pass BLKmode memrefs
25809         to mips_expand_unaligned_load, mips_expand_unaligned_store, and
25810         move_by_pieces.
25811
25812 2004-07-05  Josef Zlomek  <zlomekj@suse.cz>
25813
25814         * var-tracking.c: Fix some comments.
25815         (frame_stack_adjust): New.
25816         (vt_stack_adjustments): Init stack_adjust of entry block to
25817         minus stack adjustment of function prologue.
25818         (adjust_stack_reference): Do not adjust if adjustment == 0.
25819         (compute_bb_dataflow): Use plus_constant instead of gen_rtx_PLUS.
25820         (emit_notes_in_bb): Likewise.
25821         (vt_add_function_parameters): Do not adjust locations of
25822         function arguments.
25823         (vt_initialize): Compute the stack adjustment of function
25824         prologue and offset the initial "location" of frame_base_decl
25825         from the stack pointer after prologue.
25826
25827 2004-07-04  Richard Henderson  <rth@redhat.com>
25828
25829         * function.c (struct assign_parm_data_all): New.
25830         (struct assign_parm_data_one): New.
25831         (assign_parms_initialize_all, assign_parms_augmented_arg_list,
25832         assign_parm_find_data_types, assign_parms_setup_varargs,
25833         assign_parm_find_entry_rtl, assign_parm_is_stack_parm,
25834         assign_parm_find_stack_rtl, assign_parm_adjust_entry_rtl,
25835         assign_parm_adjust_stack_rtl, assign_parm_setup_block_p,
25836         assign_parm_setup_block, assign_parm_setup_reg,
25837         assign_parm_setup_stack, assign_parms_unsplit_complex): Split from ...
25838         (assign_parms): ... here.
25839
25840 2004-07-04  Daniel Berlin  <dberlin@dberlin.org>
25841
25842         * tree-ssa-pre.c (bb_value_sets): phi_gen, tmp_gen, new_sets
25843         now are bitmap_set_t's.
25844         (bitmap_insert_into_set): No point in inserting the value if
25845         it's invariant.
25846         (bitmap_set_contains): New function.
25847         (bitmap_set_replace_value): Add comment on why we do it
25848         this way.
25849         (set_contains): Removed.
25850         (bitmap_set_subtract_from_value_set): New name of
25851         set_subtract now that it's arguments are two different
25852         types of sets.
25853         Update callers.
25854         (bitmap_find_leader): Change algorithm used.
25855         (find_or_generate_expression): Update use of functions for new
25856         bitmap sets.
25857         (create_expression_by_pieces): Ditto.
25858         (insert_aux): Ditto.
25859         (insert): Ditto.
25860         (add_to_sets): Ditto.
25861         (init_pre): Ditto.
25862         (execute_pre): Ditto.
25863         (compute_avail): Ditto.
25864         Also ignore virtual phis.
25865
25866 2004-07-04  Richard Sandiford  <rsandifo@redhat.com>
25867
25868         * combine.c (simplify_comparison): Fix comment typo.
25869
25870 2004-07-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
25871
25872         * config/sparc/sparc.c (SIBCALL_SLOT_EMPTY_P): Rename
25873         into LEAF_SIBCALL_SLOT_RESERVED_P after negation.
25874         (eligible_for_sibcall_delay): Adjust use of SIBCALL_SLOT_EMPTY_P.
25875         (output_restore): Change parameter from 'insn' to 'pat'.
25876         (output_return): Adjust call to output_restore.
25877         (output_sibcall): Adjust use of SIBCALL_SLOT_EMPTY_P.
25878         Adjust call to output_restore.
25879
25880 2004-07-04  Neil Booth  <neil@duron.akihabara.co.uk>
25881
25882         * config/netbsd.h (NETBSD_OS_CPP_BUILTINS_COMMON): Define __unix__
25883         and assert system is bsd.
25884
25885 2004-07-04  Richard Sandiford  <rsandifo@redhat.com>
25886
25887         * config/mips/mips.h (MASK_DEBUG_C, TARGET_DEBUG_C_MODE): Delete.
25888         (TARGET_SWITCHES): Remove -mdebugc.
25889         * config/mips/mips.md (seq, sne, sgt, sge, slt, sle, sgtu, sgeu)
25890         (sltu, sleu): Remove TARGET_DEBUG_C_MODE handling.
25891         (seq_[sd]i, sne_[sd]i, sge_[sd]i, sle_[sd]i_reg, sgeu_[sd]i)
25892         (sle_[sd]i_reg): Delete.
25893
25894 2004-07-04  Steven Bosscher  <stevenb@suse.de>
25895
25896         * config/iq2000/iq2000.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
25897         Define.
25898         * config/iq2000/iq2000.md: Translate old pipeline description to an
25899         equivalent new one.
25900
25901 2004-07-04  Roger Sayle  <roger@eyesopen.com>
25902
25903         * tree-ssa-ccp.c (set_rhs): Change function to return a bool.
25904         Ensure the replacement rhs is valid gimple before performing
25905         the substitution.  Return false if these sanity checks fail.
25906         (fold_stmt): Only set changed to true, if set_rhs returns true.
25907         (execute_fold_all_builtins): Only call modify_stmt if set_rhs
25908         succeeds.
25909
25910 2004-07-04  Richard Henderson  <rth@redhat.com>
25911
25912         PR c/16348
25913         * c-typeck.c (c_finish_loop): Don't clear cond for cond_is_first loops.
25914
25915 2004-07-04  Mark Mitchell  <mark@codesourcery.com>
25916
25917         * configure.ac (ranlib_flags): New variable.
25918         * Makefile.in (RANLIB_FLAGS): New variable.
25919         (libbackend.a): Use it.
25920         * configure: Regenerated.
25921
25922 2004-07-04  Roger Sayle  <roger@eyesopen.com>
25923
25924         * ifcvt.c (noce_try_sign_mask): Call emit_store_flag to generate
25925         a "sign mask" instead of using ashr_optab directly.
25926
25927 2004-07-04  Neil Booth  <neil@duron.akihabara.co.uk>
25928
25929         * doc/cpp.texi: Don't document what we do for ill-formed expressions.
25930         * doc/cppopts.texi: Clarify processing of command-line defines.
25931
25932 2004-07-04  Gerald Pfeifer  <gerald@pfeifer.com>
25933
25934         * doc/contrib.texi (Contributors): Adjust link for GNU Classpath.
25935
25936 2004-07-04  Richard Henderson  <rth@redhat.com>
25937
25938         * rtl.def (ADDRESSOF): Remove.
25939         * alias.c (rtx_equal_for_memref_p): Don't handle addressof.
25940         (find_base_term, memrefs_conflict_p): Likewise.
25941         * cse.c (fixed_base_plus_p, find_best_addr: Likewise.
25942         (fold_rtx, cse_insn, set_live_p): Likewise.
25943         * dwarf2out.c (mem_loc_descriptor): Likewise.
25944         (add_location_or_const_value_attribute): Likewise.
25945         * emit-rtl.c (copy_insn_1): Likewise.
25946         * explow.c (memory_address): Likewise.
25947         * expmed.c (store_split_bit_field): Likewise.
25948         * expr.c (expand_expr_real_1): Likewise.
25949         * function.c (instantiate_decl
25950         (instantiate_virtual_regs_1, fix_lexical_addr): Likewise.
25951         * genrecog.c (preds, validate_pattern): Likewise.
25952         * integrate.c (copy_rtx_and_substitute): Likewise.
25953         * recog.c (general_operand, register_operand): Likewise.
25954         (memory_address_p): Likwise.
25955         * reload1.c (eliminate_regs, elimination_effects): Likewise.
25956         * rtl.c (copy_rtx): Likewise.
25957         * rtlanal.c (rtx_unstable_p, rtx_varies_p): Likewise.
25958         (rtx_addr_can_trap_p, nonzero_address_p, address_cost): Likewise.
25959         * rtlhooks.c (gen_lowpart_general): Likewise.
25960         * stmt.c (expand_asm_operands): Likewise.
25961         * web.c (entry_register, replace_ref, web_main): Likewise.
25962         * config/alpha/alpha.c (input_operand, alpha_legitimate_address_p,
25963         alpha_expand_block_move, alpha_expand_block_clear): Likewise.
25964         * config/arm/arm.c (thumb_rtx_costs): Likewise.
25965         * config/c4x/c4x.c (c4x_valid_operands): Likewise.
25966         * config/frv/frv.c (move_destination_operand, move_source_operand,
25967         condexec_dest_operand, condexec_source_operand,
25968         condexec_memory_operand): Likewise.
25969         * config/h8300/h8300.h (PREDICATE_CODES): Likewise.
25970         * config/ia64/ia64.c (general_xfmode_operand): Likewise.
25971         (destination_xfmode_operand): Likewise.
25972         * config/mips/mips.h (PREDICATE_CODES): Likewise.
25973         * config/mn10300/mn10300.c (mn10300_address_cost_1): Likewise.
25974         * config/s390/s390.c (general_s_operand): Likewise.
25975         * config/s390/s390.md (mov*): Likewise.
25976         * config/sparc/sparc.h (PREDICATE_CODES): Likewise.
25977
25978         * c-typeck.c (c_mark_addressable): Don't put_var_into_stack.
25979         * expr.c (expand_expr_real_1): Likewise.
25980         * stmt.c (expand_decl): Likewise.
25981         * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
25982
25983         * function.c (struct fixup_replacement, struct insns_for_mem_entry,
25984         postponed_insns, put_var_into_stack, put_reg_into_stack,
25985         schedule_fixup_var_refs, fixup_var_refs, find_fixup_replacement,
25986         fixup_var_refs_insns, fixup_var_refs_insns_with_hash,
25987         fixup_var_refs_insn, fixup_var_refs_1, fixup_memory_subreg,
25988         walk_fixup_memory_subreg, fixup_stack_1, optimize_bit_field,
25989         gen_mem_addressof, flush_addressof, put_addressof_into_stack,
25990         purge_bitfield_addressof_replacements, purge_addressof_replacements,
25991         purge_addressof_1, insns_for_mem_hash, insns_for_mem_comp,
25992         struct insns_for_mem_walk_info, insns_for_mem_walk,
25993         compute_insns_for_mem, is_addressof, purge_addressof, setjmp_protect,
25994         setjmp_protect_args): Remove.
25995         (push_function_context_to): Don't handle var_refs_queue.
25996         (pop_function_context_from, free_after_compilation): Likewise.
25997         (instantiate_virtual_regs): Don't handle parm_reg_stack_loc.
25998         (assign_parms, allocate_struct_function): Likewise.
25999         (use_register_for_decl): New.
26000         (expand_function_end): Don't setjmp_protect.
26001         * function.h (struct emit_status): Update commentary.
26002         (struct function): Remove x_max_parm_reg, x_parm_reg_stack_loc.
26003         (max_parm_reg, parm_reg_stack_loc): Remove.
26004         * passes.c (DFI_addressof): Remove.
26005         (dump_file_info): Remove addressof.
26006         (rest_of_handle_addressof): Remove.
26007         (rest_of_compilation): Don't call it.
26008         * rtl.h (ADDRESSOF_REGNO, ADDRESSOF_DECL): Remove.
26009         * stmt.c (expand_decl): Use use_register_for_decl.
26010         * tree.h: Update decls.
26011         * web.c (mark_addressof): Remove.
26012         * doc/invoke.texi (-dF): Remove.
26013
26014 2004-07-03  Richard Henderson  <rth@redhat.com>
26015
26016         * config/ia64/ia64.c (spill_xfmode_operand): Use assign_stack_temp
26017         instead of gen_mem_addressof.
26018         * config/ia64/ia64.md (movxf): Use assign_stack_temp to handle
26019         TImode output register.
26020
26021 2004-07-03  Richard Henderson  <rth@redhat.com>
26022
26023         PR tree-optimization/16341
26024         * tree-sra.c (sra_walk_function): Increment to next stmt before
26025         processing the current stmt.
26026         (sra_insert_after): Always use BSI_SAME_STMT.
26027
26028 2004-07-03  Richard Henderson  <rth@redhat.com>
26029
26030         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Don't fold
26031         fp plus with minus.
26032
26033 2004-07-03  Joseph S. Myers  <jsm@polyomino.org.uk>
26034
26035         * tree.c (type_hash_eq): Allow TYPE_MIN_VALUE which compares equal
26036         with tree_int_cst_equal.
26037
26038 2004-07-03  Andreas Schwab  <schwab@suse.de>
26039
26040         * config/ia64/ia64.md: Define new attribute "empty".
26041         (prologue_use, nop_x, insn_group_barrier): Set it.
26042
26043         * config/ia64/ia64.c (ia64_reorg): When looking for trailing call
26044         skip over "empty" insns.
26045
26046 2004-07-03  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
26047
26048         * tree-inline.c (initialize_inlined_parameters): Pass proper function
26049         context to gimplify_body.
26050         (walk_tree): Don't walk into types twice.
26051         (walk_tree, case POINTER_TYPE): Deal with mutually recursive pointers.
26052
26053         * tree-sra.c (generate_element_init): Remove any useless conversions.
26054
26055         * gimplify.c (gimplify_conversion): Remove stripping useless
26056         conversions from here.
26057         (gimplify_expr): Put it here, in place of call to STRIP_MAIN_TYPE_NOPS.
26058         (gimplify_modify_expr_to_memcpy, gimplify_variable_sized_compare):
26059         Unshare before substituting PLACEHOLDER_EXPR.
26060         (gimplify_modify_expr_to_memset): Likewise.
26061         Pass address of TO to memset, not TO itself.
26062         (gimplify_init_constructor): Make copy of OBJECT so we have it each
26063         time we make an expression (to match a PLACEHOLDER_EXPR).
26064
26065         * tree-ssa.c (tree_ssa_useless_type_conversion): Also look at
26066         VIEW_CONVERT_EXPR and NON_LVALUE_EXPR.
26067         * tree-ssa-ccp.c (fold_stmt): Call just STRIP_USELESS_TYPE_CONVERSION.
26068         * tree-ssa-dom.c (local_fold): Likewise.
26069
26070         * langhooks-def.h (LANG_HOOKS_TYPE_MAX_SIZE): New langhook.
26071         * langhooks.h (strct lang_hooks): New field type_max_size.
26072         * function.c (assign_temp): Call it.
26073
26074 2004-07-03  Steven Bosscher  <stevenb@suse.de>
26075
26076         * config/sh/sh.c (sh_use_dfa_interface): Add TARGET_SH1.
26077         * config/sh/sh.md: Convert the SH1 pipeline description to
26078         a DFA model.
26079
26080 2004-07-02  Zack Weinberg  <zack@codesourcery.com>
26081
26082         * c-decl.c (struct c_binding): Remove contour field; add
26083         depth, invisible, nested fields.
26084         (B_IN_SCOPE, B_IN_CURRENT_SCOPE, B_IN_FILE_SCOPE)
26085         (B_IN_EXTERNAL_SCOPE): New convenience macros.
26086         (bind): Add invisible and nested arguments. Initialize
26087         new fields of struct c_binding; adjust loop scanning for
26088         insertion point.
26089         (free_binding_and_advance): Clear structure with memset.
26090         (pop_scope): Adjust to match.  Set DECL_CONTEXT on everything
26091         in file scope, even if it's in external scope too.
26092         (pushdecl): Adjust to match.  Create invisible file-scope
26093         declarations for block-scope forward declarations of static functions.
26094         (pushtag, warn_if_shadowing, pushdecl_top_level, implicitly_declare)
26095         (undeclared_variable, lookup_label, declare_label, define_label)
26096         (lookup_tag, lookup_name, lookup_name_in_scope, builtin_function)
26097         (c_make_fname_decl, store_parm_decls_newstyle, identifier_global_value)
26098         (store_parm_decls_oldstyle): Adjust to match.
26099         (diagnose_mismatched_decls): Correct handling of linkage clashes.
26100         (merge_decls): No need to copy C_DECL_IN_EXTERNAL_SCOPE.
26101
26102         * c-tree.h (C_DECL_IN_EXTERNAL_SCOPE): Delete.
26103         (C_DECL_DECLARED_BUILTIN, C_DECL_REGISTER): Slide down one.
26104
26105 2004-07-02  Richard Henderson  <rth@redhat.com>
26106
26107         * c-decl.c (grokdeclarator): Don't frob current_function_decl
26108         around variable_size.
26109         (set_decl_nonlocal): Remove.
26110         (store_parm_decls): Add stmts for pending sizes.
26111         * calls.c (calls_function, calls_function_1): Remove.
26112         (precompute_arguments): Don't call it.
26113         * cfgexpand.c (set_save_expr_context): Remove.
26114         (tree_expand_cfg): Don't call it.
26115         * dwarf2out.c (add_bound_info): Don't handle SAVE_EXPR.
26116         (dwarf2out_finish): Likewise.
26117         * expr.c (emit_block_move): Adjust addresses to BLKmode.
26118         (store_constructor): Don't pre-evaluate SAVE_EXPR.
26119         (safe_from_p): Don't queue SAVE_EXPRs.
26120         (expand_expr_real_1 <case SAVE_EXPR>): Rewrite to expect,
26121         or build plain VAR_DECLs.
26122         * fold-const.c (twoval_comparison_p): Don't look at SAVE_EXPR_RTL.
26123         (fold): Likewise.
26124         (fold_checksum_tree): Don't special-case SAVE_EXPR.
26125         * function.c (free_after_compilation): Don't clear x_save_expr_regs.
26126         (put_var_into_stack): Don't handle SAVE_EXPR.
26127         (gen_mem_addressof): Likewise.
26128         * function.h (struct function): Remove x_save_expr_regs.
26129         (save_expr_regs): Remove.
26130         * gengtype.c (adjust_field_tree_exp): Don't special-case SAVE_EXPR.
26131         * print-tree.c (print_node): Don't dump SAVE_EXPR_NOPLACEHOLDER.
26132         * stor-layout.c (variable_size): Don't set it.
26133         (force_type_save_exprs, force_type_save_exprs_1): Remove.
26134         * tree-inline.c (remap_save_expr): Remove fn argument.  Update
26135         all callers.  Don't set SAVE_EXPR_CONTEXT.
26136         * tree-inline.h (remap_save_expr): Update decl.
26137         * tree.c (save_expr): Update build size.
26138         (first_rtl_op): Don't handle SAVE_EXPR.
26139         (unsave_expr_1, contains_placeholder_p): Likewise.
26140         (decl_function_context): Likewise.
26141         * tree.def (SAVE_EXPR): Remove args 1 and 2.
26142         * tree.h (SAVE_EXPR_CONTEXT, SAVE_EXPR_RTL): Remove.
26143         (SAVE_EXPR_NOPLACEHOLDER, SAVE_EXPR_PERSISTENT_P): Remove.
26144
26145 2004-07-03  Joseph S. Myers  <jsm@polyomino.org.uk>
26146
26147         * doc/bugreport.texi, doc/configterms.texi, doc/contrib.texi,
26148         doc/contribute.texi, doc/cpp.texi, doc/cppinternals.texi,
26149         doc/extend.texi, doc/install.texi, doc/invoke.texi, doc/md.texi,
26150         doc/portability.texi, doc/tree-ssa.texi, doc/trouble.texi: Avoid
26151         some first-person references and patronizing comments.  Based on
26152         printed manual.
26153         * doc/invoke.texi: Don't reference fortran@gnu.org.
26154         * doc/trouble.texi (Warning when a non-void function value is
26155         ignored): Rewrite.  From Russ Allbery and Chris Devers.
26156
26157 2004-07-02  Daniel Berlin  <dberlin@dberlin.org)
26158
26159         * tree-ssa-pre.c (bitmap_set_t): New.
26160         (bb_value_sets): avail_out is now a bitmap_set_t.
26161         (bitmap_find_leader): New function.
26162         (bitmap_value_insert_into_set): Ditto.
26163         (bitmap_set_copy): Ditto.
26164         (bitmap_value_replace_in_set): Ditto.
26165         (bitmap_set_contains_value): Ditto.
26166         (bitmap_set_new): Ditto.
26167         (bitmap_set_pool): New pool.
26168         (find_or_generate_expression): Use bitmap_ functions on AVAIL sets.
26169         (insert_aux): Ditto.
26170         (add_to_sets): Ditto.
26171         (compute_avail): Ditto
26172         (eliminate): Ditto.
26173         (init_pre): Ditto.
26174         (fini_pre): Ditto.
26175         (execute_pre): Ditto.
26176
26177 2004-07-02  Roger Sayle  <roger@eyesopen.com>
26178
26179         * config/rs6000/rs6000.c (struct processor_costs): New structure
26180         used to hold instruction latencies/sizes for processor types.
26181         (rs6000_cost): New global variable pointing to current CPU's costs.
26182         (rs6000_override_options): Initialize rs6000_cost to point to the
26183         appropriate cost table based upon rs6000_cpu and optimize_size.
26184         (rs6000_rtx_costs): Use rs6000_cost to avoid hardcoding processor
26185         timings inline.
26186
26187 2004-07-02  Richard Henderson  <rth@redhat.com>
26188
26189         * expmed.c (make_tree): Don't use SET_DECL_RTL.
26190
26191 2004-07-02  Steven Bosscher  <stevenb@suse.de>
26192
26193         * tree-flow.h (bb_ann_d): Remove ephi_nodes field.
26194
26195 2004-07-01  Richard Henderson  <rth@redhat.com>
26196
26197         * config/alpha/alpha.c (struct machine_function): Add gp_save_rtx.
26198         (alpha_gp_save_rtx): Use assign_stack_local instead of
26199         gen_mem_addressof.
26200
26201 2004-07-01  Richard Henderson  <rth@redhat.com>
26202
26203         * config/alpha/alpha.c (struct alpha_rtx_cost_data): Add int_div.
26204         (alpha_rtx_cost_data): Update to match.
26205         (alpha_rtx_cost_size): New.
26206         (alpha_rtx_costs): Honor optimize_size.
26207
26208 2004-07-01  Richard Henderson  <rth@redhat.com>
26209
26210         * gimple-low.c (lower_function_body): Don't reset_block_changes here.
26211         * cfgexpand.c (tree_expand_cfg): Do it here.
26212         * config/alpha/alpha.c (alpha_output_mi_thunk_osf): And here.
26213         * config/ia64/ia64.c (ia64_output_mi_thunk): And here.
26214         * config/mips/mips.c (mips_output_mi_thunk): And here.
26215         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): And here.
26216         * config/sh/sh.c (sh_output_mi_thunk): And here.
26217         * config/sparc/sparc.c (sparc_output_mi_thunk): And here.
26218
26219 2004-07-01  Richard Henderson  <rth@redhat.com>
26220
26221         * tree.def (RTL_EXPR): Remove.
26222         * c-typeck.c (lvalue_p): Don't handle it.
26223         * expr.c (safe_from_p): Likewise.
26224         (expand_expr_real_1): Likewise.
26225         * fold-const.c (non_lvalue, operand_equal_p, fold): Likewise.
26226         (fold_checksum_tree, tree_expr_nonnegative_p): Likewise.
26227         * gengtype.c (adjust_field_tree_exp): Likewise.
26228         * stmt.c (warn_if_unused_value): Likewise.
26229         * tree-gimple.c (recalculate_side_effects): Likewise.
26230         * tree-pretty-print.c (dump_generic_node): Likewise.
26231         * tree.c (make_node_stat, first_rtl_op, unsave_expr_1): Likewise.
26232         (unsafe_for_reeval, stabilize_reference, build1_stat): Likewise.
26233         * tree.h (RTL_EXPR_SEQUENCE, RTL_EXPR_RTL, RTL_EXPR_ALT_RTL): Remove.
26234
26235         * stmt.c (struct stmt_status): Remove x_last_expr_type,
26236         x_last_expr_value, x_last_expr_alt_rtl, x_expr_stmts_for_value.
26237         (last_expr_type, last_expr_value, last_expr_alt_rtl): Remove.
26238         (expand_expr_stmt): Merge with expand_expr_stmt_value.  Remove
26239         all the bits that tracked last_expr.
26240         (expand_end_bindings): Don't track last_expr.
26241         (expand_start_stmt_expr, expand_end_stmt_expr): Remove.
26242         (clear_last_expr): Remove.
26243         (expand_asm): Don't call it.
26244         (expand_asm_operands, expand_end_cond): Likewise.
26245         (expand_naked_return, expand_null_return_1): Likewise.
26246         * c-typeck.c (c_begin_compound_stmt): Likewise.
26247         * cfgexpand.c (expand_block): Use expand_expr_stmt.
26248         * expr.c (expand_expr_real_1): Likewise.
26249         * tree.h: Update prototypes.
26250
26251         * function.h (struct sequence_stack): Remove sequence_rtl_expr.
26252         (struct emit_status): Remove sequence_rtl_expr.
26253         (struct function): Remove x_rtl_expr_chain.
26254         (seq_rtl_expr, rtl_expr_chain): Remove.
26255         * function.c (struct temp_slot): Remove rtl_expr.
26256         (assign_stack_temp_for_type): Don't set it.
26257         (free_temp_slots, pop_temp_slots): Don't check it.
26258         (free_after_compilation): Don't clear x_rtl_expr_chain.
26259         (fixup_var_refs): Don't search it.
26260         (preserve_rtl_expr_result, free_temps_for_rtl_expr): Remove.
26261         * emit-rtl.c (start_sequence): Don't use sequence_rtl_expr
26262         or seq_rtl_expr.
26263         (push_topmost_sequence): Likewise.
26264         (end_sequence, init_emit): Likewise.
26265         (start_sequence_for_rtl_expr): Remove.
26266         * expmed.c (make_tree): Build a VAR_DECL instead of an RTL_EXPR.
26267         * rtl.h (preserve_rtl_expr_result): Remove.
26268
26269 2004-07-02  Kazu Hirata  <kazu@cs.umass.edu>
26270
26271         * ifcvt.c, modulo-sched.c, tree-alias-common.c, tree-sra.c,
26272         tree-ssa-copy.c, tree-ssa-dom.c, tree-ssa-pre.c: Fix comment
26273         typos.
26274
26275 2004-07-02  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
26276
26277         * gcc.c (STANDARD_STARTFILE_PREFIX_1): Define.
26278         (STANDARD_STARTFILE_PREFIX_2): Define.
26279         (standard_startfile_prefix_1): Initialize to
26280         STANDARD_STARTFILE_PREFIX_1.
26281         (standard_startfile_prefix_2): Initialize to
26282         STANDARD_STARTFILE_PREFIX_2.
26283         * config/i386/mingw32.h (MD_STARTFILE_PREFIX): Remove.
26284         (STANDARD_STARTFILE_PREFIX_1): Define.
26285         (STANDARD_STARTFILE_PREFIX_2): Define.
26286         * doc/tm.texi (STANDARD_STARTFILE_PREFIX_1): Document.
26287         (STANDARD_STARTFILE_PREFIX_2): Document.
26288
26289 2004-07-01  Richard Henderson  <rth@redhat.com>
26290
26291         * tree-sra.c (sra_walk_expr): Don't maybe_lookup_element_for_expr
26292         in order to disable scalarization.  Instead set a flag and wait
26293         for a candidate decl.
26294
26295 2004-07-01  Joseph S. Myers  <jsm@polyomino.org.uk>
26296
26297         * doc/cppinternals.texi, doc/install.texi, doc/invoke.texi,
26298         doc/md.texi, doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi:
26299         Use terminology "testsuite" and "enumerated".
26300
26301 2004-07-01  Richard Henderson  <rth@redhat.com>
26302
26303         * dwarf2out.c (reg_save): Use INVALID_REGNUM.
26304         (dwarf2out_reg_save, dwarf2out_return_save): Likewise.
26305         (initial_return_save): Likewise.
26306         (flush_queued_reg_saves): Remap register numbers.
26307         (dwarf2out_return_reg): Likewise.
26308
26309 2004-07-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
26310
26311         * gimplify.c (gimplify_one_sizepos): Don't do anything if any VAR_DECL.
26312
26313         * tree-pretty-print.c (dump_generic_node, case ARRAY_REF): Use
26314         access functions for lower bound and element size and only output
26315         if lower bound nonzero or element size not same as that of type.
26316         (dump_generic_node, case COMPONENT_REF): Use access func. for offset.
26317
26318 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
26319
26320         * c-pretty-print.c (pp_c_postfix_expression): Fix pasto.
26321
26322 2004-07-01  Per Bothner  <per@bothner.com>
26323
26324         * final.c (final):  Fix typo reported by Aaron W. LaFramboise.
26325
26326 2004-07-01  Jakub Jelinek  <jakub@redhat.com>
26327
26328         * expr.c (expand_assignment): Optimize bitfld += cst for 1 bit
26329         bitfields as well.  STRIP_NOPS from src operand and PLUS_EXPR's
26330         first operand.  Don't optimize if the bitfield is volatile.
26331
26332 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
26333
26334         * c-pretty-print.c (pp_c_postfix_expression): Handle
26335         floating-point comparison operators.
26336         (pp_c_expression): Pass floating-point comparison
26337         operators to pp_c_postfix_expression.
26338
26339 2004-07-01  Roger Sayle  <roger@eyesopen.com>
26340
26341         * simplify-rtx.c (simplify_binary_operation) <PLUS, MINUS>: Use
26342         rtx_cost instead of "had_mult" to determine whether the transformed
26343         expression is cheaper than the original.
26344
26345 2004-07-01  Jerry Quinn  <jlquinn@optonline.net>
26346
26347         * alias.c (get_alias_set, canon_rtx, get_addr,
26348         nonoverlapping_memrefs_p, nonlocal_referenced_p_1, memory_modified_1):
26349         Use MEM_P.
26350         * builtins.c (expand_builtin_prefetch, expand_builtin_profile_func,
26351         expand_builtin): Likewise.
26352         * calls.c (expand_call, emit_library_call_value_1, store_one_arg):
26353         Likewise.
26354         * combine.c (can_combine_p, combinable_i3pat, try_combine,
26355         find_split_point, combine_simplify_rtx, simplify_set, make_extraction,
26356         rtx_equal_for_field_assignment_p, gen_lowpart_for_combine,
26357         record_dead_and_set_regs_1, get_last_value_validate,
26358         mark_used_regs_combine, move_deaths, unmentioned_reg_p_1): Likewise.
26359         * cse.c (check_dependence, canon_hash, equiv_constant,
26360         gen_lowpart_if_possible, cse_insn, invalidate_from_clobbers,
26361         cse_around_loop, cse_check_loop_start, cse_set_around_loop,
26362         count_reg_usage): Likewise.
26363         * cselib.c (rtx_equal_for_cselib_p, add_mem_for_addr, cselib_lookup,
26364         cselib_invalidate_mem, cselib_invalidate_rtx, cselib_record_set,
26365         cselib_record_sets): Likewise.
26366         * dbxout.c (PARM_PASSED_IN_MEMORY, dbxout_symbol,
26367         dbxout_symbol_location, dbxout_parms, dbxout_reg_parms): Likewise.
26368         * ddg.c (mark_mem_use, mark_mem_store, rtx_mem_access_p): Likewise.
26369         * df.c (df_uses_record): Likewise.
26370         * dojump (do_jump): Likewise.
26371         * dwarf2out.c (stack_adjust_offset, mem_loc_descriptor,
26372         loc_descriptor_from_tree, rtl_for_decl_location, add_bound_info,
26373         decl_start_label): Likewise.
26374         * emit-rtl.c (gen_complex_constant_part, gen_highpart,
26375         operand_subword, change_address_1, make_safe_from): Likewise.
26376         * explow.c (break_out_memory_refs, copy_all_regs, validize_mem,
26377         stabilize, force_not_mem): Likewise.
26378         * expmed.c (store_bit_field, store_split_bit_field, extract_bit_field,
26379         expand_mult_const, expand_divmod, emit_store_flag): Likewise.
26380         * expr.c (convert_move, convert_modes, emit_block_move,
26381         emit_group_load, emit_group_store, clear_storage, emit_move_insn,
26382         emit_move_insn_1, expand_assignment, store_expr,
26383         store_constructor_field, store_constructor, store_field,
26384         force_operand, safe_from_p, expand_expr_real_1, expand_increment):
26385         Likewise.
26386         * final.c (cleanup_subreg_operands, alter_subreg,
26387         get_mem_expr_from_op): Likewise.
26388         * flow.c (notice_stack_pointer_modification_1,
26389         init_propagate_block_info, insn_dead_p, mark_set_1, mark_used_regs):
26390         Likewise.
26391         * function.c (mark_temp_addr_taken, preserve_temp_slots,
26392         preserve_rtl_expr_result, put_var_into_stack, fixup_var_refs_1,
26393         optimize_bit_field, flush_addressof, purge_addressof_1,
26394         instantiate_decl, instantiate_virtual_regs_1, assign_parms,
26395         setjmp_protect, setjmp_protect_args, fix_lexical_addr,
26396         keep_stack_depressed): Likewise.
26397         * ifcvt.c (noce_try_cmove_arith, noce_try_abs, noce_operand_ok,
26398         noce_process_if_block, find_memory): Likewise.
26399         * integrate.c (subst_constants, allocate_initial_values): Likewise.
26400         * local-alloc.c (validate_equiv_mem_from_store, memref_referenced_p,
26401         update_equiv_regs): Likewise.
26402         * loop.c (scan_loop, prescan_loop, note_addr_stored, check_store,
26403         maybe_eliminate_biv_1, find_mem_in_note_1): Likewise.
26404         * optabs.c (expand_abs, emit_unop_insn): Likewise.
26405         * passes.c (rest_of_handle_final): Likewise.
26406         * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands,
26407         move2add_note_store): Likewise.
26408         * ra-build.c (detect_remat_webs): Likewise.
26409         * ra-debug.c (dump_static_insn_cost): Likewise.
26410         * ra-rewrite.c (slots_overlap_p, insert_stores): Likewise.
26411         * recog.c (validate_change, apply_change_group, cancel_changes,
26412         validate_replace_rtx_1, general_operand, register_operand,
26413         nonmemory_operand, push_operand, pop_operand, memory_operand,
26414         indirect_operand, asm_operand_ok, offsettable_memref_p,
26415         offsettable_nonstrict_memref_p, constrain_operands,
26416         store_data_bypass_p): Likewise.
26417         * reg-stack.c (subst_stack_regs_pat): Likewise.
26418         * regclass.c (record_operand_costs, scan_one_insn, record_reg_classes,
26419         copy_cost, reg_scan_mark_refs): Likewise.
26420         * regmove.c (optimize_reg_copy_3, stack_memref_p,
26421         combine_stack_adjustments_for_block): Likewise.
26422         * regrename.c (copyprop_hardreg_forward_1): Likewise.
26423         * reload.c (can_reload_into, push_reload, decompose, immune_p,
26424         find_reloads, find_reloads_address, find_reloads_address_1,
26425         reg_overlap_mentioned_for_reload_p, refers_to_mem_for_reload_p,
26426         find_equiv_reg): Likewise.
26427         * reload1.c (reload, eliminate_regs, eliminate_regs_in_insn,
26428         reload_as_needed, choose_reload_regs, emit_input_reload_insns,
26429         do_input_reload, emit_reload_insns, gen_reload, delete_output_reload,
26430         delete_address_reloads): Likewise.
26431         * resource.c (mark_referenced_resources): Likewise.
26432         * rtlanal.c (get_jump_table_offset, count_occurrences,
26433         reg_referenced_p, reg_set_p, set_of_1, set_noop_p,
26434         reg_overlap_mentioned_p, note_uses, replace_regs, nonzero_bits1,
26435         num_sign_bit_copies1): Likewise.
26436         * rtlhooks.c (gen_lowpart_general): Likewise.
26437         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
26438         * sdbout.c (PARM_PASSED_IN_MEMORY, sdbout_symbol,
26439         sdbout_toplevel_data, sdbout_parms, sdbout_reg_parms,
26440         sdbout_global_decl): Likewise.
26441         * simplify-rtx.c (simplify_subreg): Likewise.
26442         * stmt.c (expand_asm_operands, expand_expr_stmt_value, expand_decl,
26443         expand_anon_union_decl, expand_end_case_type): Likewise.
26444         * unroll.c (calculate_giv_inc): Likewise.
26445         * var-tracking.c (stack_adjust_offset_pre_post,
26446         bb_stack_adjust_offset, track_expr_p, count_uses, add_uses,
26447         add_stores, compute_bb_dataflow, vt_get_decl_and_offset,
26448         vt_add_function_parameters): Likewise.
26449         * varasm.c (make_var_volatile, notice_global_symbol,
26450         assemble_external, decode_addr_const, mark_weak,
26451         default_encode_section_info): Likewise.
26452
26453 2004-07-01  Steven Bosscher  <stevenb@suse.de>
26454
26455         * stmt.c (check_seenlabel): Remove.
26456         (pushcase, pushcase_range, expand_end_case_type): Don't call it.
26457
26458 2004-07-01  Richard Henderson  <rth@redhat.com>
26459
26460         * function.h (struct function): Remove x_function_call_count.
26461         (function_call_count): Remove.
26462         * calls.c (expand_call): Don't set it.
26463         * integrate.c (copy_rtx_and_substitute): Likewise.
26464
26465         * function.h (struct function): Remove x_cleanup_label.
26466         (cleanup_label): Remove.
26467         * stmt.c (expand_value_return): Don't use it.
26468         * function.c (free_after_compilation): Don't set it.
26469         (expand_function_start): Likewise.  Remove parms_have_cleanups arg.
26470         * cfgexpand.c (tree_expand_cfg): Update call.
26471         * tree.h (expand_function_start): Update decl.
26472
26473 2004-07-01  Joseph S. Myers  <jsm@polyomino.org.uk>
26474
26475         PR c/1027
26476         * c-lang.c (c_initialize_diagnostics): Move from here ...
26477         * c-objc-common.c: ... to here.  Include "c-pretty-print.h".
26478         (c_tree_printer): Use pretty-printer to format %T.
26479         * c-pretty-print.c (pp_c_specifier_qualifier_list): Include space
26480         before '*' if not C++.
26481         (pp_c_direct_abstract_declarator): Don't try to print array upper
26482         bound for flexible array members.
26483         * c-tree.h: Include "diagnostic.h".
26484         (c_initialize_diagnostics): Declare.
26485         * objc/objc-lang.c (LANG_HOOKS_INITIALIZE_DIAGNOSTICS): Define.
26486         * c-format.c (format_type_warning): New function.  Improve
26487         diagnostics for incorrect format argument types.
26488         (check_format_types): Use it.  Add two parameters.  Use the
26489         TYPE_MAIN_VARIANT of wanted_type.
26490         (check_format_info_main): Pass new parameters to
26491         check_format_types.
26492         (struct format_wanted_type): Update comment.
26493
26494 2004-07-01  Nick Clifton  <nickc@redhat.com>
26495
26496         * target.h (struct gcc_target): Add new field to struct cxx:
26497         import_export_class.
26498         * target-def.h (TARGET_CXX): Initialise the new field.
26499         (TARGET_CXX_IMPORT_EXPORT_CLASS): Provide a default value for
26500         the new field.
26501         * doc/tm.texi: Document the new target hook.
26502
26503 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
26504
26505         * builtins.c (fold_builtin_classify): Fix typo.
26506
26507 2004-07-01  Richard Henderson  <rth@redhat.com>
26508
26509         * function.c (identify_blocks, identify_blocks_1): Remove.
26510         * function.h (identify_blocks): Remove.
26511         * rtl.h (NOTE_INSN_BLOCK_BEG): Update comment.
26512
26513 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
26514
26515         * builtins.c (fold_builtin_classify): New.
26516         (fold_builtin_unordered_cmp): Fix commentary.
26517         (fold_builtin): Use it.
26518         * builtins.def: Define builtins for isnan,
26519         isnanf, isnanl, finite, finitef, finitel,
26520         isinf, isinff, isinfl.
26521
26522 2004-07-01  Richard Henderson  <rth@redhat.com>
26523
26524         * function.h (struct function): Remove dont_emit_block_notes.
26525         * gimple-low.c (lower_function_body): Don't set it.
26526         * cfgexpand.c (expand_block): Don't check it.
26527         * cfglayout.c (insn_locators_initialize): Likewise.
26528         * expr.c (expand_expr_real, expand_expr_real_1): Likewise.
26529         * passes.c (rest_of_compilation): Likewise.
26530         * stmt.c (expand_start_bindings_and_block): Likewise.
26531         (expand_end_bindings): Likewise.
26532
26533 2004-07-01  Richard Henderson  <rth@redhat.com>
26534
26535         * cgraph.h (cgraph_build_static_cdtor): Declare.
26536         * cgraphunit.c (cgraph_build_static_cdtor): New.
26537         * c-objc-common.c (build_cdtor): Use it.
26538         * coverage.c (create_coverage): Likewise.
26539         * libfuncs.h (LTI_gcov_init, gcov_init_libfunc): Remove.
26540         * optabs.c (init_optabs): Don't set gcov_init_libfunc.
26541
26542 See ChangeLog.11 for earlier changes.