OSDN Git Service

5526fcb685e1e08bc65bea0b87585fb658462843
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-12-27  Jeff Law  <law@redhat.com>
2
3         * tree-ssa-dom.c (thread_across_edge): Remove broken code to
4         avoid threading into a loop.
5
6 2004-12-27  Richard Henderson  <rth@redhat.com>
7
8         PR target/17406
9         * config/i386/i386.c (ix86_expand_prologue): Add REG_FRAME_RELATED_EXPR
10         note for allocate_stack_worker insn.
11
12 2004-12-27  Jason Merrill  <jason@redhat.com>
13
14         * doc/tm.texi (TARGET_RELAXED_ORDERING): Document.
15         * target.h (struct gcc_target): Add relaxed_ordering field.
16         * target-def.h (TARGET_RELAXED_ORDERING): Define default.
17         (TARGET_INITIALIZER): Add it.
18         * config/alpha/alpha.c (TARGET_RELAXED_ORDERING): Define.
19         * config/ia64/ia64.c (TARGET_RELAXED_ORDERING): Define.
20         * config/rs6000/rs6000.c (TARGET_RELAXED_ORDERING): Define.
21         * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Define.
22
23 2004-12-27  Roger Sayle  <roger@eyesopen.com>
24
25         PR driver/16118
26         * doc/invoke.texi: Document the interaction between -save-temps
27         and -x.
28
29 2004-12-27  David Edelsohn  <edelsohn@gnu.org>
30
31         * config/rs6000/rs6000.c (rs6000_eliminate_indexed_memrefs):
32         Do not break apart constant pool addresses.
33         (rs6000_emit_move): Only force source into REG if target is MEM.
34
35 2004-12-27  Mark Mitchell  <mark@codesourcery.com>
36
37         PR c++/19148
38         * gimplify.c (gimplify_cond_expr): Add post_p parameter.
39         (gimplify_modify_expr_rhs): Adjust call to gimplify_cond_expr.
40         (gimplify_expr): Likewise.
41
42 2004-12-27  Richard Henderson  <rth@redhat.com>
43
44         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Don't use MMX/3DNOW.
45
46 2004-12-26  Richard Henderson  <rth@redhat.com>
47
48         * config/i386/i386.c (ix86_gimplify_va_arg): Also pass the result
49         of type_natural_mode to examine_argument.
50
51         * config/i386/i386.md (mov<MMXMODEI>_internal_rex64): New.
52         (movv2sf_internal_rex64): New.
53         (mov<MMXMODEI>_internal): Use no register preferences at all.
54         (movv2sf_internal): Likewise.
55
56 2004-12-26  Richard Henderson  <rth@redhat.com>
57
58         * simplify-rtx.c (simplify_relational_operation_1): Don't simplify
59         plus/minus across EQ for floating-point.
60         
61 2004-12-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
62
63         PR target/17643
64         * pa.c (pa_function_ok_for_sibcall): Sibcalls are not ok when
65         generating code for the portable runtime.
66
67 2004-12-25  Richard Henderson  <rth@redhat.com>
68
69         * expr.c (clear_storage): Validate CONST0_RTX extant.  Special case
70         complex modes.
71
72 2004-12-25  Zdenek Dvorak  <dvorakz@suse.cz>
73
74         PR rtl-optimization/19078
75         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_generic,
76         determine_use_iv_cost_outer): Fix computing of cost for the original
77         bivs.
78         (dump_use): Handle case related_cands == NULL.
79
80 2004-12-25  Marek Michalkiewicz  <marekm@amelek.gda.pl>
81
82         PR target/19059
83         * config/avr/avr.c (avr_mcu_types): Move attiny{13,2313} from avr4
84         to avr2.
85         * config/avr/avr.h (LINK_SPEC): Ditto.
86         * config/avr/t-avr (MULTILIB_MATCHES): Ditto.
87
88 2004-12-25  Alan Modra  <amodra@bigpond.net.au>
89
90         PR target/19137
91         * config/rs6000/rs6000.md (movti_power, movti_string): Relax
92         operand[1] predicate to input_operand, and add r<-n alternative.
93         Move TImode const_double_operand splitter to where it belongs.
94
95 2004-12-25  Alan Modra  <amodra@bigpond.net.au>
96
97         PR target/19147
98         * config/rs6000/rs6000.md (andsi3_internal7, andsi3_internal8): Delete.
99
100 2004-12-24  Uros Bizjak  <uros@kss-loka.si>
101
102         * config/i386/i386.md (*fix_trunc{d,s,h}i_1):
103         Rename to *fix_trunc{d,s,h}i_i387.
104         (fix_trunc{d,s}fdi2): Reorder tests.
105
106 2004-12-24  Daniel Berlin  <dberlin@dberlin.org>
107         
108         Fix PR debug/14638
109
110         * tree.h (DECL_DEBUG_ALIAS_OF): New macro.
111         * var-tracking.c (track_expr_p): Don't disqualify tracking of variables
112         that are aliases of variables we want to track, unless the
113         original variable is also ignored for debugging purposes.
114         (VARIABLE_HASH_VAL): Use DECL_UID, so that this is deterministic.
115         * tree-outof-ssa.c (create_temp): Note who we are a debug alias of.
116         * dwarf2out.c (dwarf2out_var_location): Add us to the location of
117         the decl we are an alias of.
118
119 2004-12-24  Alan Modra  <amodra@bigpond.net.au>
120
121         PR target/19142
122         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Allow
123         DFmode for 32-bit again.
124
125 2004-12-23  Roger Sayle  <roger@eyesopen.com>
126
127         * reload.c (regno_clobbered_p): Add a gcc_assert that regno
128         refers to a hard register.
129
130 2004-12-23  Mark Mitchell  <mark@codesourcery.com>
131
132         * gimplify.c (gimplify_modify_expr_rhs): Use types_compatible_p.
133
134 2004-12-23  DJ Delorie  <dj@redhat.com>
135
136         * genrecog.c (did_you_mean_codes): New.
137         (compute_predicate_codes): Fail unmatched codes.
138
139 2004-12-23  Eric Christopher  <echristo@redhat.com>
140
141         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Add
142         assert for machine=mips for !TARGET_IRIX.
143         * config/mips/linux.h: Remove machine=mips assert.
144         * config/mips/netbsd.h: Ditto.
145         * config/mips/openbsd.h: Ditto.
146
147 2004-12-23  Dale Johannesen  <dalej@apple.com>
148
149         * tree.c (iterative_hash_expr):  Canonicalize builtins.
150
151 2004-12-23  Alexandre Oliva  <aoliva@redhat.com>
152
153         PR target/16819
154         * calls.c (load_register_parameters): Don't call use_regs when
155         nregs is zero.
156
157 2004-12-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
158
159         PR middle-end/17746
160         * expr.c (get_inner_reference): Add 'keep_aligning' parameter.
161         Break on aligning VIEW_CONVERT_EXPR nodes on STRICT_ALIGNMENT
162         platforms only if keep_aligning is true.
163         (expand_assignment): Adjust call to get_inner_reference.
164         (expand_expr_addr_expr_1): Likewise.
165         (expand_expr_real_1): Likewise.
166         * dojump.c (do_jump): Likewise.
167         * dwarf2out.c (loc_descriptor_from_tree_1): Likewise.
168         * fold-const.c (optimize_bit_field_compare): Likewise.
169         (decode_field_reference): Likewise.
170         (split_address_to_core_and_offset): Likewise.
171         * tree-ssa-loop-ivopts.c (split_address_cost): Likewise.
172         * tree.h (get_inner_reference): Adjust prototype.
173
174 2004-12-23  Richard Henderson  <rth@redhat.com>
175
176         * config/i386/i386.c (override_options): Revert last change
177         wrt fancy 387 math.
178
179 2004-12-23  Richard Henderson  <rth@redhat.com>
180
181         * config/alpha/alpha.md (one_cmpl<mode>2, and<mode>3, andnot<mode>3,
182         ior<mode>3, iornot<mode>3, xor<mode>3, xornot<mode>3): New macroized
183         vector operate patterns.
184
185 2004-12-23  Richard Henderson  <rth@redhat.com>
186
187         * config/i386/i386.c (ix86_expand_vector_move): Tidy.
188         (ix86_expand_vector_move_misalign): New.
189         (ix86_misaligned_mem_ok): Remove.
190         (TARGET_VECTORIZE_MISALIGNED_MEM_OK): Remove.
191         * config/i386/i386-protos.h: Update.
192         * config/i386/i386.md (SSEMODEI): Rename from SSEINT16.
193         (MMXMODEI): Rename from MMXINT8.
194         (SSEMODE, MMXMODE, movmisalign<mode>): New.
195
196 2004-12-23  Mark Mitchell  <mark@codesourcery.com>
197
198         PR c++/16405
199         * gimplify.c (gimplify_modify_expr_rhs): Handle
200         INDIRECT_REF/ADDR_EXPR combinations.
201
202 2004-12-22  Richard Henderson  <rth@redhat.com>
203
204         * config/alpha/alpha.c (alpha_expand_mov): Split out ...
205         (alpha_expand_movmisalign): ... misaligned vector support.
206         (TARGET_VECTORIZE_MISALIGNED_MEM_OK): Remove.
207         * config/alpha/alpha-protos.h: Update.
208         * config/alpha/alpha.md (VEC): New macro.
209         (movv8qi, movv4hi, movv2si): Compress with VEC.
210         (movv8qi_fix, movv4hi_fix, movv2si_fix): Likewise.
211         (movv8qi_nofix, movv4hi_nofix, movv2si_nofix): Likewise.
212         (movmisalign<mode>): New.
213
214 2004-12-22  Richard Henderson  <rth@redhat.com>
215
216         * optabs.h (OTI_movmisalign, movmisalign_optab): New.
217         * optabs.c (init_optabs): Create it.
218         * genopinit.c (optabs): Initialize it.
219         * expr.c (expand_expr_real_1) <MISALIGNED_INDIRECT_REF>: Use it.
220         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
221         * target-def.h (TARGET_VECTORIZE_MISALIGNED_MEM_OK): Remove.
222         * target.h (vectorize.misaligned_mem_ok): Remove.
223         * targhooks.c (default_vect_misaligned_mem_ok): Remove.
224         * doc/md.texi (movmisalign): New.
225         * doc/tm.texi (TARGET_VECTORIZE_MISALIGNED_MEM_OK): Remove.
226
227 2004-12-22  Richard Henderson  <rth@redhat.com>
228
229         * config/i386/emmintrin.h (_mm_loadh_pd): Don't cast pointer arg
230         to __v2si.
231         (_mm_storeh_pd, _mm_loadl_pd, _mm_storel_pd): Likewise.
232         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use double* or
233         const double* for __builtin_ia32_loadhpd, __builtin_ia32_loadlpd,
234         __builtin_ia32_storehpd, __builtin_ia32_storelpd.
235         (ix86_expand_builtin): Update to match.
236         (ix86_expand_vector_init): Use sse2_loadlpd.
237         * config/i386/i386.md (vec_setv2df): Use sse2_loadlpd, sse2_loadhpd.
238         (vec_extractv2df): Use sse2_storelpd, sse2_storehpd.
239         (sse2_storehpd, sse2_loadhpd, sse2_storelpd, sse2_loadlpd): New.
240         (sse2_movhpd): Remove.
241
242 2004-12-23  Alan Modra  <amodra@bigpond.net.au>
243
244         PR target/18751
245         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Return
246         false for anything larger than 32 bits in 32-bit code.
247
248 2004-12-22  Richard Henderson  <rth@redhat.com>
249
250         * config/i386/i386.md (btsq, btrq, btcq): Fix modes.
251         (bt peepholes): Likewise.
252
253         * varasm.c (force_const_mem): Call set_mem_align.
254
255 2004-12-22  Richard Henderson  <rth@redhat.com>
256
257         * config/i386/predicates.md (sse_comparison_operator): Fix
258         typo in ieee test.
259         (arith_or_logical_operator): Downcase codes.
260
261 2004-12-23  Kaz Kojima  <kkojima@gcc.gnu.org>
262
263         PR target/18511
264         * reload1.c (emit_output_reload_insns): Check if OLD is a hard
265         register before calling regno_clobbered_p.
266         * reload.c: Update comment for regno_clobbered_p.
267
268 2004-12-22  Richard Henderson  <rth@redhat.com>
269
270         * config/i386/i386.c (override_options): Respect user disable of
271         fancy 387 math, sse, mmx.
272         (construct_container): Generate error if we need an sse regster
273         and sse has been disabled.
274         * config/i386/i386.h (TARGET_SWITCHES): Disabling sse also disables
275         later sse generations.  Disabling mmx also disables 3dnow.
276
277 2004-12-22  Daniel Berlin  <dberlin@dberlin.org>
278
279         * tree-inline.c (struct inline_data): Remove inlined_fns.
280         (expand_call_inline): Remove dead code setting
281         inlined_fns.
282         (optimize_inline_calls): Remove dead code setting DECL_INLINED_FNS.
283         * tree.h (struct tree_decl): Remove inlined_fns.
284
285 2004-12-22  Roger Sayle  <roger@eyesopen.com>
286
287         * tree-browser.c: Remove obsolete #ifdef HOST_EBCDIC code.
288
289 2004-12-23  Alan Modra  <amodra@bigpond.net.au>
290
291         PR target/18896
292         * function.c (split_complex_args): Set DECL_ARTIFICIAL, DECL_IGNORED_P
293         for real and imaginary parts if the parm is addressable.
294         (assign_parms_unsplit_complex): If parm addressable, save real
295         and imaginary parts to a stack temp.  Pass assign_parm_data_all.
296         (assign_parms): Adjust assign_parms_unsplit_complex call.
297
298 2004-12-22  Daniel Berlin  <dberlin@dberlin.org>
299
300         * tree.h (DECL_PTA_ALIASVAR): Dead.
301         (struct tree_decl): Remove alias_var field.
302
303 2004-12-22  Nathan Sidwell  <nathan@codesourcery.com>
304
305         * system.h (IN_RANGE): Restore HOST_WIDE_INT cast.
306         * tree.h (IS_EXPR_CODE_CLASS): Do not use IN_RANGE.
307
308 2004-12-22  Richard Henderson  <rth@redhat.com>
309             Uros Bizjak  <uros@kss-loka.si>
310
311         * config/i386/i386.md (truncdfsf2): Don't create stack temp when
312         using sse math only.  Use truncdfsf2_with_temp.
313         (truncdfsf2_with_temp): New.
314         (truncdfsf_fast_i387): Rename from truncdfsf2_noop.  Add memory
315         output alternative.
316         (truncdfsf_mixed): Rename from truncdfsf2_1_sse.  Compress duplicate
317         alternatives.
318         (truncdfsf_fast_sse): Rename from truncdfsf2_2.  Remove f alternative.
319         (truncdfsf2_3, truncdfsf2_sse_only): Remove.
320         (truncdfsf_i387): Rename from truncdfsf2_1.  Compress duplicates.
321         (truncdfsf_fast_mixed): New.
322         (truncdfsf splitters): Remove all except the 387 load/store split.
323         (truncxfsf2_1, truncxfdf2_1): Unify enable constraint with
324         respect to TARGET_SSE2, TARGET_80387, TARGET_SSE_MATH and
325         TARGET_MIX_SSE_I387.
326         (*truncxf{s,d}f2_1): Rename to *truncxf{s,d}f2_mixed.
327         (truncxf{s,d}f2_noop) Rename to truncxf{d,s}f2_i387_noop.
328         (*truncxf{s,d}f2_i387): New patterns.
329         (*truncxf{s,d}f2_2): Rename to *truncxf{s,d}f2_i387_1.
330         (truncxf{s,d}f2, fmod{s,d}f3, drem{s,d}f3, log1p{s,d}f2,
331         rint{s,d}f2, floor{s,d}f2, ceil{s,d}f2, btrunc{s,d}f2,
332         nearbyint{s,d}f2): Use renamed patterns.
333
334 2004-12-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
335
336         * tree.h (TYPE_SIZES_GIMPLIFIED): New.
337         * function.c (gimplify_parm_type): Don't gimplify type if already done.
338         * gimplify.c (gimplify_decl_expr): Likewise.
339         (gimplify_type_sizes): Set TYPE_SIZES_GIMPLIFIED.  Examine nested
340         array types.
341
342 2004-12-22  Richard Henderson  <rth@redhat.com>
343
344         * gimplify.c (eval_save_expr): Remove.
345         (gimplify_one_sizepos): Unshare expr before gimplifying.
346         * stor-layout.c (variable_size): Revert 2004-12-19 change.
347         (layout_decl): Revert 2004-12-18 change.
348         (layout_type): Revert 2004-12-21 change.
349
350 2004-12-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
351
352         * tree-sra.c (type_can_be_decomposed_p): Reject variable sized types.
353
354 2004-12-22  Mark Mitchell  <mark@codesourcery.com>
355
356         * Makefile.in (install-common): Remove special-case code for when
357         SPECS is defined.
358
359 2004-12-22  Jan Beulich  <jbeulich@novell.com>
360
361         * config.gcc: Add dbxelf.h to NetWare's tm_file.
362         * config/i386/netware-crt0.c: Prototype __init_environment and
363         __deinit_environment prior to their definition.
364         (__init_environment): Correct invokation of constructor function.
365         * config/i386/netware.h (TARGET_OS_CPP_BUILTINS): Use
366         builtin_define_std rather than builtin_define on IAPX386.
367         * config/i386/nwld.h: Disable stabs debugging info with the linker
368         this file supports.
369         * config/i386/t-nwld (SHLIB_LINK): Do not use a temporary file for
370         the output. Add -posix to the options as that is the more compatible
371         mode.
372         * gthr-nks.h: Formatting.
373         (__gthread_mutex_init_function): Kill the dubious use of
374         NX_MUTEX_RECURSIVE as it is now clear that the traditional mutexes
375         were not meant to be recursive.
376         (__gthread_recursive_mutex_t, __GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION,
377         __gthread_recursive_mutex_init_function,
378         __gthread_recursive_mutex_lock, __gthread_recursive_mutex_trylock,
379         __gthread_recursive_mutex_unlock): New.
380
381 2004-12-22  Alexandre Oliva  <aoliva@redhat.com>
382
383         * config/mips/t-linux64: Remove code that messed with $(SPECS).
384         (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, MULTILIB_OSDIRNAMES): Move
385         n32 to the front.
386         (MULTILIB_EXTRA_OPTS, CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S):
387         Removed.
388         * config/mips/linux64.h (DRIVER_SELF_SPECS): Don't handle
389         -mabi-fake-default.
390         (SUBTARGET_TARGET_SWITCHES): Likewise.
391
392 2004-12-21  Andrew Pinski  <pinskia@physics.uc.edu>
393
394         PR c++/18984
395         * pointer-set.c (pointer_set_contains): Add back.
396         * pointer-set.h (pointer_set_contains): Add back.
397
398 2004-12-21  Richard Henderson  <rth@redhat.com>
399
400         * gimplify.c (eval_save_expr): New.
401         (gimplify_one_sizepos): Use it.
402         * stor-layout.c (layout_type): Unshare TYPE_MIN/MAX_VALUE.
403
404 2004-12-21  Nathan Sidwell  <nathan@codesourcery.com>
405
406         * system.c (IN_RANGE): Use plain unsigned, not unsigned
407         HOST_WIDE_INT.
408         * tree.def (VOID_TYPE, INTEGER_TYPE, REAL_TYPE, COMPLEX_TYPE,
409         VECTOR_TYPE, OFFSET_TYPE, ENUMERAL_TYPE, BOOLEAN_TYPE, CHAR_TYPE,
410         POINTER_TYPE, REFERENCE_TYPE, METHOD_TYPE, FUNCTION_TYPE,
411         FILE_TYPE, ARRAY_TYPE, RECORD_TYPE, UNION_TYPE,
412         QUAL_UNION_TYPE): Reorder for better code efficiency.
413         (CONST_DECL, TYPE_DECL, VAR_DECL, FIELD_DECL, PARM_DECL): Likewise.
414         (INDIRECT_REF, ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF): Likewise.
415         * tree.h (INDIRECT_REF_P): Reorder checks for better optimization.
416         (IS_EXPR_CODE_CLASS): Use IN_RANGE.
417         (INTEGRAL_TYPE_P, FLOAT_TYPE_P): Reorder checks for better
418         optimization.
419
420 2004-12-21  David O'Brien  <obrien@FreeBSD.org>
421
422         * config/freebsd-spec.h:  Use KSE pthread lib for -pthread.
423
424 2004-12-21  James A. Morrison  <phython@gcc.gnu.org>
425
426         PR c/18963
427         * c-decl.c (pushdecl): Remove block trying to merge static function
428         declarations at block scope to file scope declarations.
429
430 2004-12-21  James A. Morrison  <phython@gcc.gnu.org>
431
432         PR c/18596
433         * c-parse.in (initdcl): Don't process a declaration if start_decl fails.
434         (notype_initdcl):  Don't process a declaration if start_decl fails.
435         * c-decl.c (start_decl): Fail if grokdeclarator fails.
436         (grokdeclarator): Fail if a function definition has an invalid storage
437         class.
438         * c-typeck.c (start_init): Treat error_mark_node the same as 0.
439
440 2004-12-21  Richard Henderson  <rth@redhat.com>
441
442         * config/i386/i386.c (x86_sse_split_regs): Rename from
443         x86_sse_partial_regs.
444         * config/i386/i386.h (x86_sse_split_regs): Likewise.
445         (TARGET_SSE_SPLIT_REGS): Rename from TARGET_SSE_PARTIAL_REGS.
446         * config/i386/i386.md (*): Update to match.  Remove two
447         floatsisf splitters that use it.
448
449         * config/i386/i386.h (x86_sse_partial_regs_for_cvtsd2ss): Remove.
450
451         * config/i386/i386.c (x86_sse_partial_regs_for_cvtsd2ss): Remove.
452         * config/i386/i386.h (TARGET_SSE_PARTIAL_REGS_FOR_CVTSD2SS): Remove.
453         * config/i386/i386.md (truncdfsf2_1_sse): Don't test it.
454         (truncdfsf2_2, truncdfsf2_sse_only): Likewise.
455         (truncdfsf2_1_sse_nooverlap, truncdfsf2_2_nooverlap): Remove.
456         (truncdfsf2_sse_only_nooverlap): Remove.
457
458         * config/i386/i386.h (TARGET_SSE_TYPELESS_LOAD0): Remove.
459
460 2004-12-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
461
462         * expr.c (emit_group_load_1): Return the source if the move
463         is a regular move between complex values.
464
465 2004-12-20  Roger Sayle  <roger@eyesopen.com>
466
467         PR middle-end/18683
468         * config/rs6000/rs6000.c (current_file_function_operand): Only check
469         current_function_decl's DECL_RTL if it has already been set.
470
471 2004-12-20  Roger Sayle  <roger@eyesopen.com>
472
473         PR middle-end/18683
474         * function.c (pop_function_context_from): Don't reset reg_renumber.
475
476 2004-12-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
477
478         PR middle-end/18776
479         * expr.c (write_complex_part): Use a subreg if the original object
480         is a hard reg that spans an even number of regs or a MEM.
481         (read_complex_part): Likewise.
482
483 2004-12-20  Mark Mitchell  <mark@codesourcery.com>
484
485         * Makefile.in (install-common): Do not install the specs file
486         unless SPECS is defined.
487
488 2004-12-20  Zdenek Dvorak  <dvorakz@suse.cz>
489
490         PR rtl-optimization/18942
491         * simplify-rtx.c (simplify_relational_operation_1): Simplify
492         x + cst1 == cst2 to x == cst2 - cst1.  Made static.
493
494 2004-12-20  Matt Austern  <austern@apple.com>
495
496         PR c++/19044
497         * c-common.c (set_builtin_user_assembler_name): New.
498         * c-common.h (set_builtin_user_assembler_name): Declare.
499         * c-decl.c (finish_decl): Use set_builtin_user_assembler_name
500
501 2004-12-20  Diego Novillo  <dnovillo@redhat.com>
502
503         PR tree-optimization/19080
504
505         Merge from tree-cleanup-branch
506
507         * tree-flow-inline.h (clear_call_clobbered): New function.
508         * tree-ssa-alias.c (init_alias_info): Call it.
509
510 2004-12-20  Richard Henderson  <rth@redhat.com>
511
512         * config/i386/i386.md (sse2_movsd): Remove ix86_binary_operator_ok
513         check.
514
515 2004-12-20  Steven Bosscher  <stevenb@suse.de>
516             Andrew Pinski  <pinskia@physics.uc.edu>
517
518         PR middle-end/18191
519         PR middle-end/18965
520         PR middle-end/18999
521         * expr.c (categorize_ctor_elements_1): Count the total number
522         of elements in the constructor.
523         (categorize_ctor_elements): Return it in a new argument.
524         * tree.h (categorize_ctor_elements): Adjust prototype.
525         * gimplify.c (gimplify_init_ctor_eval_range): New.
526         (gimplify_init_ctor_eval): Gimplify RANGE_EXPR.
527         (gimplify_init_constructor): Block clear the object if the
528         constructor has fewer elements than the object type.  Only try
529         to add assignments to individual elements when we have to.
530
531 2004-12-20  Richard Henderson  <rth@redhat.com>
532
533         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use
534         long_long_integer_type_node in building V2DI_type_node.
535
536         * config/i386/emmintrin.h: Use __vector_size__ instead of vector_size.
537         * config/i386/mmintrin.h, config/i386/xmmintrin.h: Likewise.
538
539 2004-12-20  Ben Elliston  <bje@au.ibm.com>
540
541         * doc/md.texi (Expander Definitions): Use @emph instead of @strong
542         around Note: text to workaround a limitation of the Info format.
543         * doc/cpp.texi (Invocation): Likewise.
544         * doc/cppopts.texi: Likewise.
545
546 2004-12-19  Dale Johannesen  <dalej@apple.com>
547
548         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p):  Don't
549         reference operand 1 of ADDR_EXPRs.
550
551 2004-12-19  Mark Mitchell  <mark@codesourcery.com>
552
553         * defaults.h (ASM_OUTPUT_INTERNAL_LABEL): New macro.
554         * output.h (assemble_name_raw): Declare it.
555         * system.h (ASM_OUTPUT_INTERNAL_LABEL): Do not poison it.
556         * varasm.c (assemble_name_raw): New function.
557         (assemble_name): Use it.
558         (default_internal_label): Likewise.
559         * config/darwin.c (darwin_asm_output_dwarf_delta): Likewise.
560         * doc/tm.texi (ASM_OUTPUT_INTERNAL_LABEL): Document.
561
562 2004-12-19  Richard Henderson  <rth@redhat.com>
563
564         PR 18067
565         * stor-layout.c (variable_size): Force creation of a SAVE_EXPR.
566
567 2003-12-19  Steven Bosscher  <stevenb@suse.de>
568
569         * config/i386/i386.c (ix86_split_to_parts): Use an array with
570         four elements for decoding a CONST_DOUBLE on 64 bits targets.
571
572 2004-12-19  Bernardo Innocenti  <bernie@develer.com>
573
574         * config/m68k/m68kemb.h (TARGET_OS_CPP_BUILTINS): Remove redundant
575         definition of mc68000, already present in TARGET_CPU_CPP_BUILTINS.
576
577 2004-12-18  Daniel Berlin  <dberlin@dberlin.org>
578
579         * lambda-code.c (can_convert_to_perfect_nest): Make checking
580         match up with what perfect_nestify can actually handle.
581         (perfect_nestify): Don't return false in the phi node loop.
582
583 2004-12-18  Richard Henderson  <rth@redhat.com>
584
585         * config/i386/i386.md (SSEINT16): New.
586         (movv16qi, movv8hi, movv4si, movv2di): Compress via macros.
587         (movv16qi_internal, movv8hi_internal, movv4si_internal,
588         movv2di_internal): Compress via macros.  Add SSE zero alternative.
589         Fix pure SSE alternatives to use 'x' instead of 'Y'.
590         (MMXINT8): New.
591         (movv8qi, movv4hi, movv2si, movv8qi_internal, movv4hi_internal,
592         movv2si_internal): Compress via macros.
593         (SSEPUSH, MMXPUSH): New.
594         (pushv18qi, pushv8hi, pushv4si, pushv2di, pushti, pushv4sf, pushv2df,
595         pushv8qi, pushv4hi, pushv2si, pushv2sf): Compress via macros.
596
597 2004-12-18  Richard Henderson  <rth@redhat.com>
598
599         PR middle-end/16417
600         * c-decl.c (store_parm_decls): Clarify get_pending_sizes insertion
601         comment.
602         * c-objc-common.c (c_cannot_inline_tree_fn): Remove pending sizes
603         checks.
604         * c-tree.h (struct lang_decl): Remove pending_sizes.
605         * function.c: Include tree-gimple.h
606         (assign_parm_setup_reg): Remove callee-copies code.
607         (gimplify_parm_type, gimplify_parameters): New functions.
608         (expand_pending_sizes): Remove.
609         (expand_function_start): Don't call it.
610         * gimplify.c (gimplify_expr): Examine DECL_VALUE_EXPR for PARM_DECL.
611         (gimplify_body): Add do_parms argument.  Use gimplify_parameters.
612         (gimplify_function_tree): Setup cfun.  Update gimplify_body call.
613         * tree-gimple.h (gimplify_body): Update decl.
614         * tree-inline.c (initialize_inlined_parameters): Update gimplify_body
615         call.
616         * tree.h (gimplify_parameters): Declare.
617         * Makefile.in (function.o): Depend on TREE_GIMPLE_H.
618
619 2004-12-18  Richard Henderson  <rth@redhat.com>
620
621         * c-decl.c (finish_struct): Add DECL_EXPR for variable sized
622         structures seen inside functions.
623
624 2004-12-18  Richard Henderson  <rth@redhat.com>
625
626         * c-decl.c (grokdeclarator): Save variable array size before
627         subtracting 1, rather than after.
628
629 2004-12-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
630
631         PR middle-end/15486
632         * varasm.c (asm_emit_uninitialised): Return early if
633         a custom section is requested.
634         (assemble_variable): Revert 2002-03-15 patch.
635
636 2004-12-18  Richard Henderson  <rth@redhat.com>
637
638         * stor-layout.c (layout_decl): Use unshare_expr, not unsave_expr.
639
640 2004-12-18  Zdenek Dvorak  <dvorakz@suse.cz>
641
642         PR tree-optimization/18800
643         * params.def (PARAM_IV_ALWAYS_PRUNE_CAND_SET_BOUND): New parameter.
644         * tree-ssa-loop-ivopts.c (struct iv_ca): Add n_cands field.
645         (ALWAYS_PRUNE_CAND_SET_BOUND): New macro.
646         (iv_ca_set_no_cp, iv_ca_set_cp, iv_ca_new): Update n_cands field.
647         (iv_ca_delta_join, iv_ca_delta_reverse, iv_ca_n_cands, iv_ca_prune):
648         New functions.
649         (iv_ca_extend): Return number of candidates in the set.
650         (try_add_cand_for): Add argument to iv_ca_extend calls.
651         (try_improve_iv_set): Use iv_ca_prune.
652         * doc/invoke.texi (iv-always-prune-cand-set-bound): Document.
653
654 2004-12-18  Zdenek Dvorak  <dvorakz@suse.cz>
655
656         PR rtl-optimization/19001
657         * loop-iv.c (iv_number_of_iterations): Record assumptions for loops
658         with power of two step to 'infinite' field.
659
660 2004-12-18  Roger Sayle  <roger@eyesopen.com>
661
662         * Makefile.in (stor-layout.o): Depend upon gt-stor-layout.h.
663         (tree-ssa-propagate.o): Depend upon gt-tree-ssa-propagate.h.
664         (tree-ssa-operands.o): Depend upon gt-tree-ssa-operands.h.
665         (tree-mudflap.o): Depend upon gt-tree-mudflap.h.
666         (expr.o): Depend upon gt-expr.h.
667         (regclass.o): Depend upon gt-regclass.h.
668         (bitmap.o): Depend upon gt-bitmap.h.
669         (lists.o): Depend upon gt-lists.h.
670
671         (cfgexpand.o): Don't depend upon gt-tree-cfg.h.
672
673         (GTFILES): Remove fold-const.c.
674         (gt-stmt.h, gt-fold-const.h, gt-input.h, gt-tree-ssa-ccp.h):
675         Remove rules.
676
677 2004-12-18  Richard Henderson  <rth@redhat.com>
678
679         * stor-layout.c (layout_decl): Unshare size expressions copied
680         from the type.
681
682         * fold-const.c (multiple_of_p): Handle BIT_AND_EXPR when
683         BOTTOM is a power of two.
684
685 2004-12-18  Richard Henderson  <rth@redhat.com>
686
687         * tree-nested.c (save_tmp_var): New.
688         (struct walk_stmt_info): Add is_lhs.
689         (walk_stmts) <MODIFY_EXPR>: Be more accurate with setting of
690         val_only; set is_lhs.
691         (convert_nonlocal_reference): Use save_tmp_var when is_lhs;
692         clear is_lhs when appropriate.
693         (convert_local_reference): Likewise.
694
695 2004-12-18  Richard Earnshaw  <rearnsha@arm.com>
696
697         * arm/ieee754-sf.S (floatdisf): Fix label definition in FPA
698         compatibility code.
699
700 2004-12-18  Roger Sayle  <roger@eyesopen.com>
701
702         * ifcvt.c (total_bb_rtx_cost): Rename function to cheap_bb_rtx_cost_p.
703         Take a max_cost argument to avoid scanning large blocks, by returning
704         a Boolean instead of a total.  Include the cost of a "fstp %st(0)"
705         instruction required to pop dead values off of a register stack.
706
707 2004-12-18  Roger Sayle  <roger@eyesopen.com>
708
709         PR middle-end/18548
710         * expr.c (expand_expr_real_1) <MAX_EXPR>: Ensure that target, op0
711         and op1 are all registers (or constants) before expanding the RTL
712         comparison sequence [to avoid reg_overlap_mentioned (target, op1)].
713
714 2004-12-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
715
716         PR rtl-optimization/16968
717         * loop.c (scan_loop): Stop scanning the loop for movable
718         insns as soon as an optimization barrier is encountered.
719
720 2004-12-17  Zack Weinberg  <zack@codesourcery.com>
721
722         PR 18897
723         * toplev.c (compile_file): Call process_pending_assemble_externals
724         just before targetm.asm_out.file_end.
725
726 2004-12-17  Diego Novillo  <dnovillo@redhat.com>
727
728         tree-optimization/18501
729         * tree-optimize.c (init_tree_optimization_passes): Run
730         pass_late_warn_uninitialized before the last DCE run.
731
732 2004-12-17  Richard Henderson  <rth@redhat.com>
733
734         * config/i386/i386.c (x86_64_reg_class_name): Re-indent.
735         (classify_argument, examine_argument, construct_container,
736         merge_classes): Remove prototypes.
737         (type_natural_mode): Split out from ...
738         (function_arg): ... here.
739         (gen_reg_or_parallel): Remove alt_mode argument.  Update callers.
740         Use orig_mode unless it's BLKmode.
741         (construct_container): Add orig_mode argument.  Update callers.
742         Use gen_reg_or_parallel for SSE registers.
743         (ix86_function_value): Use type_natural_mode.
744         (ix86_gimplify_va_arg): Likewise.
745         (ix86_hard_regno_mode_ok): Always accept all SSE, MMX, 3DNOW modes in
746         SSE registers; always accept all MMX, 3DNOW modes in MMX registers.
747         * config/i386/i386.h (VALID_SSE2_REG_MODE): Don't include
748         VALID_MMX_REG_MODE.
749         * config/i386/i386.md (attribute mode): Add V1DF.
750         (movsi_1): Use 'x' instead of 'Y' constraints.
751         (movsi_1_nointernunit, movdi_2, movdi_1_rex64): Likewise.
752         (movdi_1_rex64_nointerunit): Likewise.
753         (movdf_nointeger, movdf_integer): Likewise.  Handle SSE1.
754         (movsf_1, movsf_1_nointerunit): Line up constraint alternatives.
755         (swapsf): Use fp_register_operand, don't disable for TARGET_SSE.
756         (swapdf): Likewise.
757         (swapxf): Enable only for TARGET_80387.
758         (movv2sf, movv2sf_internal, pushv2sf): Enable for MMX.
759         (movtf): Remove double-check for TARGET_64BIT.
760         (movv2df_internal): Enable for SSE1.
761         (movv8hi_internal, movv16qi_internal): Likewise.
762         (movv2df, movv8hi, movv16qi): Likewise.
763         (pushv2di, pushv8hi, pushv16qi, pushv4si): Likewise.
764         (pushdi2_rex64, movv4sf_internal, movv4si_internal, movv2di_internal,
765         movv8qi_internal, movv4hi_internal, movv2sf_internal,
766         movv2df_internal, movv8hi_internal, movv16qi_internal,
767         movti_internal): Add leading '*' to name.
768
769 2004-12-17  Dale Johannesen  <dalej@apple.com>
770
771         * c-decl.c (diagnose_mismatched_decls):  Accept mismatched
772         function types: void with previous implicit int.
773
774 2004-12-17  Andreas Krebbel  <krebbel1@de.ibm.com>
775
776         * config/s390/s390.c (s390_gimplify_va_arg): Set alias set to
777         s390_sr_alias_set.
778
779 2004-12-17  Jan Beulich  <jbeulich@novell.com>
780
781         PR target/17603
782         * config/i386/i386.c (enum x86_64_reg_class): Define
783         X86_64_COMPLEX_X87_CLASS.
784         (x86_64_reg_class_names): Add name for X86_64_COMPLEX_X87_CLASS.
785         (merge_classes): Handle X86_64_COMPLEX_X87_CLASS.
786         (classify_argument): XCmode is X86_64_COMPLEX_X87_CLASS.
787         (examine_argument): X86_64_COMPLEX_X87_CLASS requires two
788         registers when dealing with a return value.
789         (construct_container): Handle X86_64_COMPLEX_X87_CLASS.
790         Eliminate impossible case of two X87/X87UP pairs (this now is
791         being expressed by a single COMPLEX_X87).
792         (x86_libcall_value): XCmode gets returned in st0/st1.
793
794 2004-12-17  Steven Bosscher  <stevenb@suse.de>
795
796         * tree.c (type_contains_placeholder_1): Always return false
797         for VECTOR_TYPE if its TREE_TYPE does not contain a placeholder.
798
799 2004-12-17  Uros Bizjak  <uros@kss-loka.si>
800
801         * config/i386/i386.md (extendsfdf2, *extendsfdf2_1,
802         *extendsfdf2_1_sse_only): Unify enable constraint with
803         respect to TARGET_SSE2, TARGET_80387, TARGET_SSE_MATH
804         and TARGET_MIX_SSE_I387.
805         (*extendsfdf2_i387): New insn pattern.
806         (*extendsfdf2_1): Rename to *extendsfdf2_mixed. Fix
807         register constraint for operand 0.
808         (*extendsfdf2_1_sse_only): Rename to *extendsfdf2_sse.
809         (*extend{s,d}fxf2_1): Rename to *extend{s,d}fxf2_i387.
810
811 2004-12-16  Andrew Pinski  <pinskia@physics.uc.edu>
812
813         PR target/19041
814         * config/darwin.c (machopic_symbol_defined_p): Return false
815         if the binds local and is a common symbol.
816
817 2004-12-16  Richard Henderson  <rth@redhat.com>
818
819         * config/i386/i386.md (extv, extzv, insv): Revalidate the
820         operand with ext_register_operand.
821
822 2004-12-16  Kazu Hirata  <kazu@cs.umass.edu>
823
824         * global.c: Fix a comment typo.
825
826 2004-12-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
827             Roger Sayle  <roger@eyesopen.com>
828
829         PR tree-optimization/18707
830         * cfgloopmanip.c (create_preheader): Move the preheader
831         only if the latch was falling through to the header.
832
833 2004-12-16  Danny Smith  <dannysmith@users.sourceforge.net>
834
835         PR target/18997
836         * config/i386/cygwin.h (GTHREAD_USE_WEAK): Define to 0.
837
838 2004-12-16  Richard Henderson  <rth@redhat.com>
839             Aldy Hernandez  <aldyh@redhat.com>
840
841         * simplify-rtx.c (simplify_replace_rtx): Do not blindly replace
842         hard registers.
843
844 2004-12-16  H.J. Lu  <hongjiu.lu@intel.com>
845
846         PR other/18508
847         * config/alpha/t-osf4 (SHLIB_LINK): Use `.backup' as the suffix
848         to back up the existing shared library.
849         * config/arm/t-netbsd (SHLIB_LINK): Likewise.
850         * config/mips/t-slibgcc-irix (SHLIB_LINK): Likewise.
851         * config/pa/t-hpux-shlib (SHLIB_LINK): Likewise.
852         * config/sh/t-linux (SHLIB_LINK): Likewise.
853         * config/t-libunwind-elf (SHLIBUNWIND_LINK): Likewise.
854         * config/t-slibgcc-darwin (SHLIB_LINK): Likewise.
855         * config/t-slibgcc-elf-ver (SHLIB_LINK): Likewise.
856         * config/t-slibgcc-sld (SHLIB_LINK): Likewise.
857
858         * config/i386/t-nwld (SHLIB_LINK): Don't use the temporary
859         file.
860
861 2004-12-16  Richard Henderson  <rth@redhat.com>
862
863         * Makefile.in (MD_DEPS, s-mddeps): New.
864         (s-config, s-conditions, s-flags, s-codes, s-constants, s-emit,
865         s-recog, s-opinit, s-extract, s-peep, s-attr, s-attrtab, s-output,
866         s-preds): Depend on MD_DEPS instead of md_file.
867         (genobjnames): Add genmddeps.o
868         (build/genmddeps, build/genmddeps.o): New.
869         (mostlyclean): Remove mddeps.mk.
870         * genmddeps.c: New file.
871         * gensupport.c (include_callback): New.
872         (process_include): Call it.
873         * gensupport.h (include_callback): Declare.
874
875 2004-12-16  Nathan Sidwell  <nathan@codesourcery.com>
876
877         * local-alloc.c (block_alloc): Replace IN_RANGE with simple
878         comparison.
879
880         * doc/c-tree.texi (CONSTRUCTOR): Mention RANGE_EXPRs.
881
882 2004-12-16  Mark Dettinger  <dettinge@de.ibm.com>
883
884         * config/s390/s390.c (struct processor_costs): Two new fields:
885         madbr, maebr.
886         (s390_rtx_costs): Added handling of multipy and add in SFmode.
887         More precise values for cost of multiply and add.
888
889 2004-12-15  Richard Henderson  <rth@redhat.com>
890
891         PR target/19028
892         * config/i386/i386.md (sse compare splitter): Test for SF and DFmode
893         explicitly instead of using VALID_SSE_REG_MODE.
894
895 2004-12-15  Richard Henderson  <rth@redhat.com>
896
897         PR target/19005
898         * config/i386/i386.md (swaphi_1): Swap with swaphi_2, allow with
899         optimize_size.
900         (swapqi_1): Rename from swapqi.  Enable only for no partial reg
901         stall and optimize_size.
902         (swapqi_2): New.
903         (swaphi_1, swaphi_2, swapqi_1): Add athlon_decode.
904         (swapsi, swaphi_1, swaphi_2, swapqi_1, swapdi): Remove modrm override.
905
906 2004-12-16  Uros Bizjak  <uros@kss-loka.si>
907
908         * config/i386/i386.md (*floathisf2_i387, *floathidf2_i387):
909         Also enable for TARGET_MIX_SSE_I387.
910
911 2004-12-16  Uros Bizjak  <uros@kss-loka.si>
912
913         * config/i386/i386.md (sqrt{s,d}f2_1, sqrt{s,d}f2_1_sse_only,
914         sqrt{s,d}f2_i387): Unify enable constraint with respect to
915         TARGET_SSE, TARGET_SSE2, TARGET_USE_FANCY_MATH_387,
916         TARGET_SSE_MATH and TARGET_MIX_SSE_I387.
917         (sqrt{s,d}f2_1): Rename to *sqrt{s,d}f2_mixed.
918         (sqrt{s,d}f2_1_sse_only): Rename to *sqrt{s,d}f2_sse.
919         (sqrt{s,d}f2_i387): Rename to *sqrt{s,d}f2_i387.
920         (*sqrtextendsfdf2): Also enable for TARGET_MIX_SSE_I387.
921         (*sqrtextend?f?f2): Rename to *sqrtextendsfdf2_i387.
922
923 2004-12-16  Uros Bizjak  <uros@kss-loka.si>
924
925         * config/i386/i386.md (*fop_?f_comm_{,sse,nosse},
926         *fop_?f_1_{,sse,nosse}, *fop_{d,x}f_{2,3,4,5,6}): Unify enable
927         constraint with respect to TARGET_80387, TARGET_SSE, TARGET_SSE2,
928         TARGET_SSE_MATH and TARGET_MIX_SSE_I387.
929         (*fop_?f_{comm,1}): Rename to *fop_?f_{comm,1}_mixed.
930         (*fop_?f_{comm,1}_nosse): Rename to *fop_?f_{comm,1}_i387.
931         (*fop_{d,x}f_{2,3,4,5,6}): Rename to *fop_{d,x}f_{2,3,4,5,6}_i387.
932
933 2004-12-15  H.J. Lu  <hongjiu.lu@intel.com>
934
935         PR target/18153
936         * configure.ac: Define HAVE_LD_STATIC_DYNAMIC if linker supports
937         -Bstatic/-Bdynamic option.
938         * config.in: Regenerated.
939         * configure: Likewise.
940
941         * gcc.c (init_spec): Pass -Bstatic/-Bdynamic to ld for static
942         -lunwind if possible.
943
944 2004-12-15  Daniel Berlin  <dberlin@dberlin.org>
945
946         * cfgloop.c (flow_loops_dump): Don't print out levels.
947         (flow_loops_find): Don't set loop->levels.
948         (flow_loops_level_compute): Make void.
949         * cfgloop.h (struct loops): Remove levels member.
950         Add comment about loops in parray possibly being NULL.
951
952 2004-12-15  Alexandre Oliva  <aoliva@redhat.com>
953
954         * reload.c (SMALL_REGISTER_CLASS_P): New.
955         (push_secondary_reload, find_reusable_reload, find_reloads): Use
956         it instead of testing only the class size.
957
958 2004-12-15  Eric Botcazou  <ebotcazou@libertysurf.fr>
959
960         PR c++/17972
961         * tree-inline.c (expand_call_inline): Set TREE_SIDE_EFFECTS
962         on the STMT_EXPR wrapping up the inlined body.
963
964 2004-12-15  Vladimir Makarov  <vmakarov@redhat.com>
965             Steven Bosscher  <stevenb@suse.de>
966         PR middle end/17340
967
968         * global.c: Update comments in a few places.
969         (check_earlyclobber): Return true if there are early clobber
970         classes.
971         (calculate_local_reg_bb_info): Do not try to mark earlyclobber
972         regs if there are none.
973         (bb_info, allocate_bb_info, free_bb_info, modify_reg_pav,
974         make_accurate_live_analysis): Rename pavin, pavout to live_pavin,
975         live_pavout.
976         (modify_bb_reg_pav): Remove.
977         (calculate_reg_pav): Use code from modify_bb_reg_pav.
978         (temp_bitmap): New variable.
979         (calculate_reg_pav): Allocate/deallocate temp_bitmap.
980
981 2004-12-15  Richard Henderson  <rth@redhat.com>
982
983         PR target/19010
984         * config/i386/i386.c (ix86_must_pass_in_stack): Don't return true
985         for TImode vectors.
986         (gen_reg_or_parallel): New.
987         (function_arg): Use it.
988         (ix86_hard_regno_mode_ok): Test SSE1 and SSE2 separately,
989         MMX and 3DNOW separately.
990         (ix86_rtx_costs): Simplify FLOAT_EXTEND case.
991         (ix86_vector_mode_supported_p): Test SSE1 and SSE2 separately.
992         * config/i386/i386.h (VALID_SSE2_REG_MODE): Move SSE2 cases from ...
993         (VALID_SSE_REG_MODE): ... here.
994
995 2004-12-15  David Edelsohn  <edelsohn@gnu.org>
996
997         * xcoffout.c (xcoffout_declare_function): Change strncpy to memcpy.
998
999 2004-12-15  Ian Lance Taylor  <ian@wasabisystems.com>
1000
1001         * config/arm/arm.c (arm_xscale_rtx_costs): Increase cost of
1002         COMPARE of MULT.
1003         * config/arm/arm.md (mulsi3_compare0): Don't check
1004         arm_arch_xscale.
1005         (mulsi_compare0_scratch, mulsi3_addsi_compare0): Likewise.
1006         (mulsi3addsi_compare0_scratch): Likewise.
1007
1008 2004-12-15  Eric Botcazou  <ebotcazou@libertysurf.fr>
1009
1010         PR other/18665
1011         * libgcc-std.ver (GCC_3.4.4): Inherit from GCC_3.4.2.
1012         Export __absvti2, __addvti3, __mulvti3, __negvti2 and __subvti3.
1013         * libgcc2.c (__addvsi3): Rename to __addvSI3.
1014         New version if COMPAT_SIMODE_TRAPPING_ARITHMETIC.
1015         (__addvdi3): Rename to __addvDI3.
1016         (__subvsi3): Rename to __subvSI3.  Use word type for the result.
1017         New version if COMPAT_SIMODE_TRAPPING_ARITHMETIC.
1018         (__subvdi3): Rename to __subvDI3.
1019         (_mulvsi3): Rename to _mulvSI3.
1020         New version if COMPAT_SIMODE_TRAPPING_ARITHMETIC.
1021         (_mulvdi3): Rename to _mulvDI3.
1022         (__negvsi2): Rename to __negvSI2.
1023         New version if COMPAT_SIMODE_TRAPPING_ARITHMETIC.
1024         (__negvdi2): Rename to __negvDI2.
1025         (__absvsi2): Rename to __absvSI2.
1026         New version if COMPAT_SIMODE_TRAPPING_ARITHMETIC.
1027         (__absvdi2): Rename to __absvDI2.
1028         * libgcc2.h (64-bit targets): Define COMPAT_SIMODE_TRAPPING_ARITHMETIC.
1029         (__absvSI2, __addvSI3, __subvSI3, __mulvSI3, __negvSI2, __absvDI2,
1030         __addvDI3, __subvDI3, __mulvDI3, __negvDI2): Define to the appropriate
1031         symbol and declare.
1032         (__absvsi2, __addvsi3, __subvsi3, __mulvsi3, __negvsi2): Declare if
1033         COMPAT_SIMODE_TRAPPING_ARITHMETIC.
1034
1035 2004-12-15  Kazuhiro Inaoka <inaoka.kazuhiro@reneasas.com>
1036
1037         * config/m32r/m32r.h (PREFERRED_DEBUGGING_TYPE):
1038         Use DWARF2_DEBUG.
1039
1040         * config/m32r.c (m32r_legitimize_pic_address): Changed
1041         to support GOTOFF relocation.
1042         * config/m32r.md (UNSPEC_GOTOFF): New.
1043         (gotoff_load_addr): New.
1044
1045 2004-12-15  Richard Sandiford  <rsandifo@redhat.com>
1046
1047         * config/mips/mips.c (mips_arg_info): Use FUNCTION_ARG_BOUNDARY to
1048         decide whether an argument is double-word aligned.
1049
1050 2004-12-15  Richard Henderson  <rth@redhat.com>
1051
1052         * config/i386/i386.md: Fix missing modes on cmove splitters.
1053
1054 2004-12-15 Jan Beulich  <jbeulich@novell.com>
1055
1056         * mklibgcc.in (libgcc2_c_dep): Add dependency on libgcc2.h.
1057
1058 2004-12-15  Uros Bizjak  <uros@kss-loka.si>
1059
1060         * config/i386/i386.md (floathisf2, *floathisf2_1, floatsisf2,
1061         *floatsisf2_i387, *floatsisf2_sse, floatdisf2,
1062         *floatdisf2_i387_only, *floatdisf2_i387, *floatdisf2_sse,
1063         floathidf2, *floathidf2_1, *floatsidf2_i387, *floatsidf2_sse,
1064         floatdidf2, *floatdidf2_i387_only, *floatdidf2_i387,
1065         *floatdidf2_sse, floatunssisf2, floatunsdisf2, floatunsdidf2):
1066         Unify enable constraint with respect to TARGET_80387, TARGET_SSE,
1067         TARGET_SSE2, TARGET_64BIT, TARGET_SSE_MATH and TARGET_MIX_SSE_I387.
1068         (*float?i?f_i387): Rename to *float?i?f2_mixed.
1069         (*float?i?f2_1): Rename to *float?i?f2_i387.
1070         (*float?i?f2_i387_only): Rename to *float?i?f2_i387.
1071         (float?ixf2): Penalize integer register operand.
1072
1073 2004-12-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1074
1075         PR c++/17242
1076         * configure.ac: Add GAS check for HP-UX .nsubspa comdat.
1077         * configure, config.in: Rebuilt.
1078         * config/pa/pa-hpux10.h (SUPPORTS_ONE_ONLY, MAKE_DECL_ONE_ONLY): Delete
1079         defines.
1080         * config/pa/pa.c (pa_select_section): Allow uninitialized variables in
1081         one-only (comdat) subspaces.
1082         * config/pa/som.h (SUPPORTS_SOM_COMDAT): New define.
1083         (SUPPORTS_ONE_ONLY): True if SUPPORTS_WEAK or SUPPORTS_SOM_COMDAT are
1084         true.
1085         (MAKE_DECL_ONE_ONLY): Place uninitialized variables in common.
1086
1087 2004-12-14  Ian Lance Taylor  <ian@wasabisystems.com>
1088
1089         * combine.c (combine_validate_cost): Consider cost of
1090         undobuf.other_insn rather than always allowing the recombination
1091         if it is set.
1092
1093 2004-12-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1094
1095         * pa-host.c (MAP_FAILED): Define if not defined.
1096         (pa_gt_pch_use_address): Handle short reads.
1097
1098 2004-12-14  Richard Henderson  <rth@redhat.com>
1099
1100         PR target/17990
1101         * config/i386/i386.c (x86_use_bt): New.
1102         (ix86_expand_unary_operator): Use MEM_P.
1103         (ix86_expand_fp_absneg_operator): New.
1104         * config/i386/i386.h (x86_use_bt): Declare.
1105         (TARGET_USE_BT): New.
1106         * config/i386/i386-protos.h: Update.
1107         * config/i386/i386.md (negsf2): Use ix86_expand_fp_absneg_operator.
1108         (negdf2, negxf2, abssf2, absdf2, absxf2): Likewise.
1109         (negsf2_memory, negsf2_ifs, negsf2_if, negdf2_memory, negdf2_ifs,
1110         negdf2_ifs_rex64, negdf2_if, negdf2_if_rex64, negxf2_if,
1111         abssf2_memory, abssf2_ifs, abssf2_if, absdf2_memory, absdf2_ifs,
1112         absdf2_ifs_rex64, absdf2_if, absxf2_if): Remove.
1113         (absnegsf2_mixed, absnegsf2_sse, absnegsf2_i387, absnegdf2_mixed,
1114         absnegdf2_sse, absnegdf2_i387, absnegxf2_i387): New.  Merge all
1115         neg and abs splitters.  Handle DFmode in general regs in 64-bit mode.
1116         (negextendsfdf2, absextendsfdf2): Disable for non-mixed sse math.
1117         (btsq, btrq, btcq): New.  Add peepholes as well.
1118         (movv4sf_internal splitter): Postpone til after reload.
1119         (movv2di_internal splitter): Likewise.
1120         * config/i386/predicates.md (const_0_to_63_operand): New.
1121         (absneg_operator): New.
1122
1123 2004-12-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1124
1125         * pa.h (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_FP_P):
1126         Check register number and that reg_renumber is nonzero before using it.
1127
1128 2004-12-14  Steve Ellcey  <sje@cup.hp.com>
1129
1130         * doc/invoke.texi (IA-64 options): Add existing options that
1131         weren't already listed.
1132
1133 2004-12-14  Jeff Law  <law@redhat.com>
1134
1135         * tree-outof-ssa.c (coalesce_abnormal_edges): Pass the correct target
1136         partition to conflict_graph_merge_regs.
1137
1138 2004-12-14  Uttam Pawar  <uttamp@us.ibm.com>
1139             Janis Johnson  <janis187@us.ibm.com>
1140
1141         * rs6000.c (rs6000_handle_altivec_attribute_tree): Report errors
1142         for vector types with invalid component types.
1143
1144 2004-12-14  Jakub Jelinek  <jakub@redhat.com>
1145
1146         PR middle-end/18951
1147         * builtins.c (expand_builtin_mathfn, expand_builtin_mathfn_2,
1148         expand_builtin_mathfn_3): Avoid using arguments passed to
1149         save_expr after that call.
1150
1151         * fold-const.c (fold_single_bit_test): If flag_syntax_only, pretend
1152         LOAD_EXTEND_OP is not defined.
1153         (fold): Likewise.  If flag_syntax_only, don't depend on BITS_PER_WORD.
1154
1155 2004-12-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1156
1157         * tree.def, doc/c-tree.texi: Correctly document restrictions on the
1158         shift width.
1159
1160 2004-12-14  Kazu Hirata  <kazu@cs.umass.edu>
1161
1162         * expr.h (expand_modifier): Define EXPAND_STACK_PARM as 1.
1163
1164 2004-12-14  Richard Earnshaw  <rearnsha@arm.com>
1165
1166         PR target/18973
1167         arm-cores.def (arm926ej-s, arm1026ej-s, arm1136j-s, arm1136-jfs)
1168         (arm1176jz-s, arm1176jzf-s, mpcorenovfp, mpcore): Add load-scheduling
1169         property to flags.
1170
1171 2004-12-14  Diego Novillo  <dnovillo@redhat.com>
1172
1173         * tree-gimple.c (get_base_address): Update documentation.
1174
1175 2004-12-13  Richard Henderson  <rth@redhat.com>
1176
1177         PR middle-end/17930
1178         * passes.c (rest_of_clean_state): Fix computation of
1179         preferred_incoming_stack_boundary.
1180
1181 2004-12-13  Wolfgang Bangerth <bangerth@dealii.org>
1182
1183         * reload.h: Remove struct needs and its only use.
1184
1185 2004-12-13  Roger Sayle  <roger@eyesopen.com>
1186
1187         PR rtl-optimization/18928
1188         * simplify_rtx.c (plus_minus_operand_p): New function to encode
1189         the test for suitable operands for calls to simplify_plus_minus.
1190         Only allow (CONST (PLUS x y)) if both x and y are CONSTANT_P.
1191         (simplify_binary_operation): Use plus_minus_operand_p.
1192
1193 2004-12-13  Alexandre Oliva  <aoliva@redhat.com>
1194
1195         PR tree-opt/16951
1196         * tree-inline.c (setup_one_parameter): Don't directly map a
1197         parameter to the address of another variable of the same
1198         function.
1199
1200 2004-13-12  Steven Bosscher  <stevenb@suse.de>
1201
1202         * basic-block.h (PROP_POSTRELOAD): Do not include PROP_AUTOINC, we
1203         can never create autoinc insns after reload.
1204
1205 2004-12-13  Jeff Law  <law@redhat.com>
1206             Kazu Hirata  <kazu@cs.umass.edu>
1207
1208         PR tree-optimization/18694
1209         * tree-ssa-dom.c (thread_across_edge): Do not thread jumps if a
1210         PHI argument is set from a PHI_RESULT in the same block and the
1211         PHI argument is not the same as the PHI result.
1212
1213 2004-12-13  David Edelsohn  <edelsohn@gnu.org>
1214
1215         * xcoffout.c (xcoffout_declare_function): Always strip storage
1216         class encoding.
1217
1218 2004-12-13  Andrew Pinski  <pinskia@physics.uc.edu>
1219
1220         PR target/18964
1221         * config/darwin.c (darwin_assemble_visibility): Fix minor diagnostic
1222         problem, adding a space at the end of the string before concatenation.
1223
1224 2004-12-13  Kazu Hirata  <kazu@cs.umass.edu>
1225
1226         * c-common.c (fname_as_string): Free namep if we are returning
1227         cstr.text.
1228
1229         * tree-ssa-dom.c (record_edge_info): Fix memory leak.
1230
1231 2004-12-13  Andrew Pinski  <pinskia@physics.uc.edu>
1232
1233         * tree-cfg.c (remove_useless_stmts_cond): Call fold on COND_EXPR_COND.
1234
1235 2004-12-13  Kazu Hirata  <kazu@cs.umass.edu>
1236
1237         * tree-ssa-dom.c (record_equivalences_from_phis): Speed up by
1238         doing a pointer comparison.
1239
1240         * tree-ssa-dom.c (record_equivalences_from_phis): Add a
1241         comment.
1242
1243         * defaults.h, stmt.c, tree-cfg.c, tree-ssa-dce.c: Fix comment
1244         typos.
1245
1246 2004-12-13  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
1247
1248         * config/m32r/t-linux (SHLIB_MAPFILES): Add libgcc-glibc.ver to
1249         the list rather than replacing the existing value.
1250
1251 2004-12-13  Richard Henderson  <rth@redhat.com>
1252
1253         * cfg.c (dump_flow_info): Don't dump pseudo info after reload.
1254
1255 2004-12-13  Richard Henderson  <rth@redhat.com>
1256
1257         * Makefile.in (insn-preds.o): Depend on REGS_H.
1258         * genpreds.c (write_insn_preds_c): Include regs.h.
1259         * config/i386/predicates.md (index_register_operand): Use
1260         REG_OK_FOR_INDEX_STRICT_P and REG_OK_FOR_INDEX_NONSTRICT_P.
1261
1262         * config/i386/i386.h (REG_CLASS_FROM_LETTER): Add 'l'.
1263         * config/i386/i386.md (lea_general_1, lea_general_1_zext,
1264         lea_general_2, lea_general_2_zext, lea_general_3, lea_general_3_zext,
1265         adddi_1_rex64, addsi_1, addsi_1_zext, addhi_1_lea, addqi_1_lea,
1266         ashldi3_1_rex64, ashlsi3_1, ashlsi3_1_zext, ashlhi3_1_lea,
1267         ashlqi3_1_lea): Use 'l' for index register operand.
1268         (ashldi3_1_rex64 splitter): Use index_register_operand.
1269         (ashlsi3_1 splitter): Be more careful with modes.
1270
1271 2004-12-13  Danny Smith  <dannysmith@users.sourceforge.net>
1272
1273         PR target/18459
1274         * defaults.h (TARGET_USE_JCR_SECTION): New macro.
1275         * doc/tm.texi (TARGET_USE_JCR_SECTION): Document it.
1276         * config/i386/cygming.h (TARGET_USE_JCR_SECTION): Override
1277         default.
1278
1279 2004-12-13 Uros Bizjak <uros@kss-loka.si>
1280
1281         PR target/14941
1282         PR target/18503
1283         * config/i386/i386.md (sse_movss, sse2_movsd, sse2_movhpd):
1284         Fix wrong vec_merge selector bitmask.
1285
1286 2004-12-12  Richard Henderson  <rth@redhat.com>
1287
1288         PR rtl-opt/17186
1289         * reg-stack.c (move_nan_for_stack_reg): New.
1290         (subst_stack_regs_pat): Use it.
1291         (move_for_stack_reg): Handle source register not live with a nan.
1292
1293 2004-12-12  Richard Henderson  <rth@redhat.com>
1294
1295         * config/i386/i386.c (ix86_gimplify_va_arg): Fix type mismatch
1296         errors across operations.
1297
1298 2004-12-12  Di-an Jan  <dianj@freeshell.org>
1299
1300         * doc/passes.texi (Pass Manager): Correct list of source files.
1301
1302 2004-12-12  Richard Henderson  <rth@redhat.com>
1303
1304         * expr.c (emit_move_change_mode): New.
1305         (emit_move_via_alt_mode): Use it.
1306
1307 2004-12-12  Nathanael Nerode  <neroden@gcc.gnu.org>
1308             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1309
1310         PR middle-end/17564
1311         * dojump.c (do_compare_and_jump): Only canonicalize function pointers
1312         in a comparison if both sides are function pointers.
1313
1314 2004-12-12  Richard Henderson  <rth@redhat.com>
1315
1316         PR target/18932
1317         * config/i386/i386.md (all splits and peepholes): Use flags_reg_operand
1318         and compare_operator to propagate the input CC mode to the output.
1319         * config/i386/predicates.md (compare_operator): New.
1320
1321 2004-12-12  Andrew Pinski  <pinskia@physics.uc.edu>
1322
1323         PR tree-opt/18040
1324         * expr.c (get_inner_reference): Remove NON_LVALUE_EXPR, NOP_EXPR,
1325         CONVERT_EXPR cases.
1326         (handled_component_p): Likewise.
1327
1328 2004-12-12  Kazu Hirata  <kazu@cs.umass.edu>
1329
1330         * reg-stack.c (convert_regs_2): Free stack.
1331
1332         * tree-ssa-dom.c (thread_across_edge, dom_opt_finalize_block): Fix
1333         comment typos.
1334
1335 2004-12-12  Daniel Berlin  <dberlin@dberlin.org>
1336
1337         * tree-ssa-loop-ch.c (copy_loop_headers): Loop can be null.
1338         * tree-ssa-loop-im.c (determine_lsm): tree_root may not have a real
1339         inner loop.
1340
1341 2004-12-12  Diego Novillo  <dnovillo@redhat.com>
1342
1343         * tree-gimple.c (get_base_address): Update documentation.
1344
1345 2004-12-12  Kazu Hirata  <kazu@cs.umass.edu>
1346
1347         * lcm.c (optimize_mode_switching): Free ptr even when mode_set
1348         is NULL_RTX.
1349
1350 2004-12-12  Roger Sayle  <roger@eyesopen.com>
1351
1352         * reg-stack.c (change_stack): Avoid placing the new top-of-stack in
1353         its correct location during popping if we need to permute the stack
1354         afterwards.  Attempt to preserve the original stack ordering.
1355
1356 2004-12-12  Kazu Hirata  <kazu@cs.umass.edu>
1357
1358         * lcm.c (optimize_mode_switching): Free insert and delete in
1359         the "for" loop.
1360
1361 2004-12-11  David Edelsohn  <edelsohn@gnu.org>
1362             Ulrich Weigand  <uweigand@de.ibm.com>
1363
1364         PR target/18641
1365         * config/rs6000/darwin.h (PREFERRED_RELOAD_CLASS): Reload all
1366         constants into all register classes intersecting with FLOAT_REGS
1367         via memory.
1368         * config/rs6000/rs6000.h (PREFERRED_RELOAD_CLASS): Same.
1369         * config/rs6000/rs6000.md (movdi_internal32): Ignore FPRs when
1370         choosing register preferences.
1371         (movdi_internal64): Same.
1372
1373 2004-12-11  Kazu Hirata  <kazu@cs.umass.edu>
1374
1375         * tree-into-ssa.c (rewrite_ssa_into_ssa): Free SSA_NAME_AUX
1376         before we release an SSA_NAME.
1377
1378 2004-12-11  Roger Sayle  <roger@eyesopen.com>
1379
1380         PR middle-end/18921
1381         * fold-const.c (fold_unwidened_comparison): Use omit_one_operand
1382         instead of constant_boolean_node as arg0 may have side-effects.
1383
1384 2004-12-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1385
1386         * pa-host.c (pa_gt_pch_use_address): Use lseek and read to copy PCH
1387         file to anonymous private map.
1388
1389 2004-12-10  Roger Sayle  <roger@eyesopen.com>
1390
1391         PR target/18002
1392         PR middle-end/18424
1393         * dojump.c (do_jump): When attempting to reverse the effects of
1394         fold_single_bit_test, we need to STRIP_NOPS and narrowing type
1395         conversions, and handle BIT_XOR_EXPR that's used to invert the
1396         sense of the single bit test.
1397
1398 2004-12-10  Devang Patel  <dpatel@apple.com>
1399
1400         PR 18732
1401         * gcc.c (main): Do not break out of loop when error is reported while
1402         processing one source file.
1403
1404 2004-12-10  Diego Novillo  <dnovillo@redhat.com>
1405
1406         * tree-into-ssa.c (REWRITE_THIS_STMT): Define.
1407         (mark_def_sites): Clear REWRITE_THIS_STMT for statements that
1408         don't need any operands rewritten.
1409         (rewrite_stmt): Ignore statements that don't need to be
1410         rewritten.
1411         (rewrite_operand): Validate that an existing SSA_NAME is
1412         identical to the current reaching definition of the operand.
1413
1414 2004-12-10  Diego Novillo  <dnovillo@redhat.com>
1415
1416         * tree-dfa.c (mark_call_clobbered_vars_to_rename): New function.
1417         * tree-vectorizer.c (vectorizable_load): Call it.
1418         * tree-flow.h (mark_call_clobbered_vars_to_rename): Declare.
1419         * tree-sra.c (mark_all_v_defs): Also mark VUSEs for renaming.
1420
1421 2004-12-10  Kazu Hirata  <kazu@cs.umass.edu>
1422
1423         * regmove.c (combine_stack_adjustments_for_block): Free
1424         memlist if it hasn't been freed.
1425
1426 2004-12-10  Ziemowit Laski  <zlaski@apple.com>
1427
1428         * c-typeck.c (lookup_field): Check if a TYPE_LANG_SPECIFIC
1429         pointer field is set before dereferencing it.
1430
1431 2004-12-10  Andrew Pinski  <pinskia@physics.uc.edu>
1432
1433         PR middle-end/18903
1434         * tree-cfg.c (remove_bb): Put the moved label at the beginning
1435         of the basic block.
1436
1437 2004-12-10  Kazu Hirata  <kazu@cs.umass.edu>
1438
1439         * tree-data-ref.c (free_data_refs): Free each data_reference
1440         object.
1441
1442         * tree-ssa-dom.c (thread_across_edge): Speed up by avoiding a
1443         call to is_gimple_min_invariant if we know the result.
1444
1445 2004-12-10  Jeff Law  <law@redhat.com>
1446
1447         * tree-ssa-alias.c (setup_pointers_and_addressables): Remove
1448         redundant test of v_ann->mem_tag_kind.
1449
1450         * tree-ssa-operands.c (get_indirect_ref_operands): Remove
1451         redundant conditional clearing opf_kill_def.
1452
1453 2004-12-10  Richard Sandiford  <rsandifo@redhat.com>
1454
1455         * config/frv/frv-modes.def: Fix comment typos.
1456         (CC_NZ): Define new mode.
1457         * config/frv/frv-protos.h (frv_select_cc_mode): Declare.
1458         (condexec_intop_cmp_operator): Delete.
1459         * config/frv/frv.c (comparison_string): New function.
1460         (frv_print_operand): Use it to handle 'c' and 'C'.
1461         (relational_operator): Redefine in terms of integer_relational_operator
1462         and float_relational_operator.
1463         (signed_relational_operator, unsigned_relational_operator): Delete.
1464         (integer_relational_operator): New predicate, combining the above.
1465         Check the mode of the first operand but leave frv.md to check the rest.
1466         (float_relational_operator): Just check the mode of the first operand
1467         and leave frv.md to check the rest.
1468         (intop_compare_operator): Assume the result is compared with zero
1469         in mode CC_NZmode.  Allow PLUS and MINUS.  Leave frv.md to check
1470         the operand predicates.
1471         (condexec_intop_cmp_operator): Delete.
1472         (frv_ifcvt_modify_tests, frv_ifcvt_modify_multiple_tests)
1473         (frv_hard_regno_mode_ok): Handle CC_NZmode.
1474         (frv_select_cc_mode): New function.
1475         * config/frv/frv.h (SELECT_CC_MODE): Use frv_select_cc_mode.
1476         (REVERSIBLE_CC_MODE): Include CC_NZmode.
1477         (PREDICATE_CODES): Replace entries for signed_relational_operand and
1478         unsigned_relational_operator with one for integer_relational_operator.
1479         Delete entry for condexec_intop_cmp_operator.
1480         * config/frv/frv.md (movcc_nz, *internal_movcc_nz, reload_incc_nz)
1481         (reload_outcc_nz, *cmpsi_cc_nz, *cond_exec_cmpsi_cc_nz): New patterns.
1482         (*combo_intop_compare2, *combo_intop_compare4): Delete.
1483         (*combo_intop_compare1): Change mode to CC_NZ.
1484         (*combo_intop_compare2): Likewise.  Renamed from *combo_intop_compare3.
1485         (branch_{un,}signed_true, branch_{un,}signed_false)
1486         (*scc_{un,}signed, *scc_neg1_{un,}signed, *ck_{un,}signed)
1487         (*movqicc_internal1_{un,}signed, *movqicc_internal2_{un,}signed)
1488         (*movhicc_internal1_{un,}signed, *movhicc_internal2_{un,}signed)
1489         (*movsicc_internal1_{un,}signed, *movsicc_internal2_{un,}signed)
1490         (*movsfcc_has_fprs_{un,}signed, *movsfcc_no_fprs_{un,}signed)
1491         (*return_{unsigned_,}true, *return_{unsigned_,}false): Merge these
1492         pattern pairs.  Use integer_relational_operator.  Remove mode from
1493         icc_operand.
1494
1495 2004-12-10  Mark Dettinger  <dettinge@de.ibm.com>
1496
1497         * config/s390/s390.c (struct processor_costs): New fields ml,
1498         sqdbr, sqebr.
1499         (s390_rtx_costs): Added the missing handling of multiply & add,
1500         square root, and umulsidi.
1501
1502 2004-12-10  Kazu Hirata  <kazu@cs.umass.edu>
1503
1504         * expmed.c (synth_mult): Initialize new_limit.latency before
1505         making a recursive call.
1506
1507 2004-12-10  Nick Clifton  <nickc@redhat.com>
1508
1509         * config/mn10300/mn10300.c (legitimate_address_p): Reject address
1510         whose index is itself the sum of two other parts.
1511
1512 2004-12-10  Alan Modra  <amodra@bigpond.net.au>
1513
1514         * config/t-slibgcc-sld (SHLIB_LINK): Correct symlink.
1515
1516 2004-12-10  Uros Bizjak  <uros@kss-loka.si>
1517
1518         * config/i386/i386.md (*cmpfp_sf): Change type attribute to "multi".
1519
1520 2004-12-09  Richard Henderson  <rth@redhat.com>
1521
1522         PR c/18282
1523         * attribs.c (decl_attributes): Use relayout_decl.
1524         * c-common.c (handle_mode_attribute): Copy all relevant type
1525         parameters from the new underlying integral type.
1526
1527 2004-12-09  Richard Henderson  <rth@redhat.com>
1528
1529         * c-common.c (shorten_compare): Don't special-case min/maxval
1530         for C enumerations.
1531
1532 2004-12-09  Richard Sandiford  <rsandifo@redhat.com>
1533
1534         * simplify-rtx.c (simplify_subreg): In the CONCAT case, check whether
1535         the request subreg is entirely contained in the requested component.
1536         (simplify_gen_subreg): Return null for CONCATs that are rejected
1537         by simplify_subreg.
1538         * expmed.c (store_bit_field): Create a temporary when changing the
1539         value to an integer mode.
1540
1541 2004-12-09  David Edelsohn  <edelsohn@gnu.org>
1542
1543         * real.c (ibm_extended): Correct comment.
1544
1545 2004-12-09  Stan Shebs  <shebs@apple.com>
1546
1547         * config/rs6000/darwin-asm.h: New file, 32/64-bit assembly macros
1548         formerly in darwin-tramp.asm.
1549         * config/rs6000/darwin-tramp.asm: Include darwin-asm.h.
1550         * config/rs6000/darwin-fpsave.asm: Use 32/64-bit macros.
1551         * config/rs6000/t-darwin: Add dependencies.
1552
1553 2004-12-09  Richard Henderson  <rth@redhat.com>
1554
1555         PR target/17025
1556         * config/i386/i386.md (testqi_1_maybe_si, andqi_2_maybe_si): New.
1557         (test_qi_1, andqi_2): Do not promote to simode.
1558
1559 2004-12-09  Andrew Pinski  <pinskia@physics.uc.edu>
1560
1561         PR tree-opt/18904
1562         * tree-chrec.c (chrec_convert): Use fold_convert
1563         instead of convert.
1564
1565 2004-12-09  Matt Rice  <ratmice@yahoo.com>
1566
1567         PR preprocessor/18102
1568         * c-incpath.c (remove_duplicates): Check for construct
1569         equality.
1570
1571 2004-12-09  Dorit Naishlos  <dorit@il.ibm.com>
1572
1573         * genopinit.c (vec_realign_store_optab): Initialization removed.
1574         * optabs.c (optab_for_tree_code): REALIGN_STORE_EXPR case removed.
1575         * optabs.h (optab_index): OTI_vec_realign_store Removed.
1576         (vec_realign_store_optab): Removed.
1577         * target-def.h (TARGET_VECTORIZE_BUILTIN_MASK_FOR_STORE): Removed.
1578         * target.h (builtin_mask_for_store): Removed.
1579         * tree.def (REALIGN_STORE_EXPR): Removed.
1580         * config/rs6000/rs6000.c (rs6000_builtin_mask_for_store): Removed.
1581         (altivec_builtin_mask_for_store): Removed.
1582         (altivec_init_builtins): Removed initialization of
1583         altivec_builtin_mask_for_store.
1584
1585         * doc/tm.texi (TARGET_VECTORIZE_MISALIGNED_MEM_OK): New.
1586         (TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD): New.
1587
1588 2004-12-09  Nathan Sidwell  <nathan@codesourcery.com>
1589
1590         * doc/c-tree.texi (CONSTRUCTOR): Mention RANGE_EXPRs.
1591
1592         * tree.def (SET_TYPE): Remove.
1593         (CONSTRUCTOR): Update description.
1594         * builtins.c (type_to_class) Remove SET_TYPE case.
1595         * dbxout.c (dbxout_type): Likewise.
1596         * dwarf2out.c (is_base_type): Likewise.
1597         (gen_set_type_die): Remove.
1598         (gen_type_die): Remove SET_TYPE case.
1599         * expr.c (count_type_elements): Likewise.
1600         (mostly_zeroes_p): Likewise.
1601         (store_constructor): Likewise.
1602         * print_tree.c (print_node): Likewise.
1603         * stor-layout.c (layout_type): Likewise.
1604         * tree-browser.c (browse_tree): Likewise.
1605         * tree-inline.c (remap_type): Likewise.
1606         * tree-pretty-print.c (dump_generic_node): Likewise.
1607         * tree.c (type_contains_plaeholder_1, type_hash_eq,
1608         variably_modified_type_p, initializer_zerop): Likewise.
1609         * tree.h (SET_OR_ARRAY_CHECK): Remove.
1610         (AGGREGATE_TYPE_P): Remove SET_TYPE check.
1611         (TYPE_DOMAIN): Use ARRAY_TYPE_CHECK.
1612         * typeclass.h (enum type_class): Remove set_type_class.
1613         * varasm.c (const_hash_1): Remove SET_TYPE case.
1614         (compare_constant, copy_constant, output_constant): Likewise.
1615         * config/i386/i386.c (classify_argument): Likewise.
1616         * config/ia64/ia64.c (hfa_element_mode): Likewise.
1617         * config/sparc/sparc.c (sparc_type_code): Likewise.
1618
1619         PR c++/16681
1620         * tree-inline.c (estimate_num_insns_1): Add RANGE_EXPR case.
1621
1622 2004-12-08  Richard Henderson  <rth@redhat.com>
1623
1624         * config/i386/i386.md: Use FLAGS_REG everywhere.
1625
1626 2004-12-08  Eric Christopher  <echristo@redhat.com>
1627
1628         * config/mips/mips.c (mips_scalar_mode_supported_p): Rewrite
1629         to avoid call to default function.
1630
1631 2004-12-08  Zack Weinberg  <zack@codesourcery.com>
1632
1633         PR 17982
1634         * varasm.c (pending_assemble_externals): New static.
1635         (assemble_external_real): Meat of assemble_external split out
1636         to this new function.
1637         (process_pending_assemble_externals): New function.
1638         (assemble_external): Use gcc_assert.  If flag_unit_at_a_time
1639         is true and the basic test passes, merely cons the decl onto
1640         the pending list to be handled later.
1641         * tree.h: Declare process_pending_assemble_externals.
1642         * cgraphunit.c (cgraph_optimize): Call it.
1643
1644         * config/h8300/h8300.h: Do not define ASM_OUTPUT_EXTERNAL.
1645
1646 2004-12-08  Kazu Hirata  <kazu@cs.umass.edu>
1647
1648         * cfgloopmanip.c (create_preheader): Speed up by "unrolling"
1649         and simplifying FOR_EACH_EDGE.
1650
1651 2004-12-08  Richard Sandiford  <rsandifo@redhat.com>
1652
1653         * config/frv/frv.c (frv_sort_insn_group): Always initialize
1654         packet_group->nop.
1655
1656 2004-12-08  Nathan Sidwell  <nathan@codesourcery.com>
1657
1658         PR c++/18672
1659         * gimplify.c (canonicalize_addr_expr): Cope with array of
1660         incomplete type.
1661         (gimplify_conversion): Remove redundant checks.
1662
1663         * doc/trouble.texi (Non-bugs): Clarify empty loop removal.
1664
1665 2004-12-08  Uros Bizjak  <uros@kss-loka.si>
1666
1667         * config/i386/i386.c (output_387_binary_op,
1668         ix86_prepare_fp_compare_args): Fix is_sse condition.
1669
1670 2004-12-07  Uros Bizjak  <uros@kss-loka.si>
1671
1672         * config/i386/i386-protos.h (ix86_split_fp_branch): New rtx
1673         argument.
1674
1675         * config/i386/i386.c (output_fp_compare): Fix is_sse condition.
1676         Use EFLAGS_P only when fcomi insn should be used. Fix handling
1677         of eflags_p variable. Change alt table accordingly. For non-fcomi
1678         compare insn always use trailing fnstsw insn. Fix intmode
1679         calculation for ficom insn.
1680         (ix86_split_fp_branch): Add "rtx pushed" as new parameter. Call
1681         ix86_free_from_memory when "pushed" is specified.
1682         (ix86_expand_branch): Change call to ix86_split_fp_branch.
1683
1684         * config/i386/i386.md (*cmpfp_0_sf, *cmpfp_0_df, *cmpfp_0_xf):
1685         Change eflags_p parameter in call to output_fp_compare.
1686         (*cmpfp_2_sf, *cmpfp_2_df, *cmpfp_2_xf): Remove.
1687         (*cmpfp_2_sf_1, *cmpfp_2_df_1, *cmpfp_2_xf_1): Rename to
1688         *cmpfp_2_sf, *cmpfp_2_df, *cmpfp_2_xf.  Change eflags_p
1689         parameter in call to output_fp_compare.
1690         (*cmpfp_2_u): Remove.
1691         (*cmpfp_2_u_1): Rename to *cmpfp_2_u. Change eflags_p parameter
1692         in call to output_fp_compare.
1693         (*ficom_1): Remove insn definition and corresponding define_split.
1694         (*cmpfp_si): New insn definition.
1695         (*fp_jcc_8): New insn definition. Add new splitters for
1696         "memory_operand" and "register_operand".
1697         (define_split): Add new parameter in call to ix86_split_fp_branch.
1698
1699         config/i386/predicates.md (float_operator): New predicate.
1700
1701 2004-12-08  Kazu Hirata  <kazu@cs.umass.edu>
1702
1703         * c-common.c (verify_tree): Don't check code length if we know
1704         we are handling tcc_unary.
1705         * print_tree.c (print_node): Remove code to handle RTL
1706         appearing as a part of a tree node.
1707         * tree-gimple.c (recalculate_side_effects): Rename fro as len.
1708         * tree.c (build1_stat): Don't check TREE_CODE_LENGTH.
1709         (PROCESS_ARG): Don't refer to fro.
1710         (build2_stat, build3_stat, build4_stat): Don't compute fro.
1711
1712 2004-12-07  Roger Sayle  <roger@eyesopen.com>
1713
1714         PR middle-end/18293
1715         * expmed.c (EXACT_POWER_OF_2_OR_ZERO_P): Move definition earlier.
1716         (expand_mult): Special case powers of two to avoid synth_mult.
1717         * loop.c (product_cheap_p): Handle case where expand_mult does
1718         require/generate any instructions (i.e. multiplication by zero).
1719
1720 2004-12-07  Richard Henderson  <rth@redhat.com>
1721
1722         * tree-pretty-print.c (dump_array_domain): Split out from
1723         dump_generic_node; fix off-by-one error on zero-based array bounds.
1724         (dump_generic_node): Use it.
1725         (print_declaration): Likewise.
1726
1727 2004-12-08  Richard Guenther <richard.guenther@uni-tuebingen.de>
1728
1729         * doc/invoke.texi: Adjust default values for
1730         large-function-growth and inline-unit-growth to match
1731         params.def.  Clarify used algorithm.
1732
1733 2004-12-07  David Mosberger  <davidm@hpl.hp.com>
1734
1735         PR target/18443
1736         * config/ia64/ia64.c (ia64_assemble_integer): Add support for
1737         emitting unaligned pointer-sized integers.
1738
1739 2004-12-07  Steven Bosscher  <stevenb@suse.de>
1740
1741         PR c/18867
1742         * c-typeck.c (c_start_case): Set orig_type to error_mark_node
1743         when the type of the controlling expression is not a valid type.
1744
1745 2004-12-07  Steven Bosscher  <stevenb@suse.de>
1746
1747         PR tree-optimization/17340
1748         * tree-ssa-pre.c (compute_antic): Fix comment.
1749         (compute_avail): Do not recurse, instead do a DFS using a stack
1750         and a loop.
1751         (execute_pre): Adjust.
1752
1753 2004-12-07  Ziemowit Laski  <zlaski@apple.com>
1754
1755         * c-tree.h (struct lang_type): Rename 'objc_protocols' field
1756         to 'objc_info'.
1757
1758 2004-12-07  Eric Christopher  <echristo@redhat.com>
1759
1760         PR target/16317
1761         * config/netbsd.h (NO_IMPLICIT_EXTERN_C): Define.
1762
1763 2004-12-07  Eric Christopher  <echristo@redhat.com>
1764
1765         * config/mips/mips-protos.h (mips_valid_pointer_mode): Move
1766         prototype...
1767         * config/mips/mips.c: ... here. Make static.
1768
1769 2004-12-07  Eric Christopher  <echristo@redhat.com>
1770
1771         PR target/18442
1772         * config/mips/mips.c (mips_vector_mode_supported_p): New function.
1773         (TARGET_SCALAR_MODE_SUPPORTED_P): Define to above.
1774
1775 2004-12-07  Kazu Hirata  <kazu@cs.umass.edu>
1776
1777         * c-common.c, expr.c, fold-const.c, print-tree.c,
1778         tree-gimple.c, tree-inline.c, tree-pretty-print.c,
1779         tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c: Replace uses of
1780         first_rtl_op with TREE_CODE_LENGTH.
1781         * tree.c (first_rtl_op): Remove.
1782         Replace uses of first_rtl_op with TREE_CODE_LENGTH.
1783         * tree.h: Remove the prototype for first_rtl_op.
1784
1785 2004-12-07  David Edelsohn  <edelsohn@gnu.org>
1786
1787         * config/rs6000/t-aix43, config/rs6000/t-aix52 (SHLIB_LINK):
1788         Revert 2004-12-01 change.
1789
1790 2004-12-06  Ziemowit Laski  <zlaski@apple.com>
1791
1792         * c-tree.h (struct lang_type): Add 'objc_protocols' field.
1793
1794 2004-12-06  DJ Delorie  <dj@redhat.com>
1795
1796         * reload.c (find_valid_class): Fix logic to test inner mode as well.
1797         (push_reload): Pass inner mode.
1798
1799 2004-12-06  Eric Christopher  <echristo@redhat.com>
1800
1801         * doc/tm.texi (TARGET_VALID_POINTER_MODE): Document.
1802
1803 2004-12-06  Aldy Hernandez  <aldyh@redhat.com>
1804
1805         * config/rs6000/sysv4.h: Define RELOCATABLE_NEEDS_FIXUP to 1.
1806
1807 2004-12-06  Zdenek Dvorak  <dvorakz@suse.cz>
1808             Kazu Hirata  <kazu@cs.umass.edu>
1809
1810         PR tree-optimization/18601
1811         * tree-cfg.c (thread_jumps, thread_jumps_from_bb): Removed.
1812         (tree_forwarder_block_p): Do not consider blocks that are its own
1813         successors forwarders.
1814         (cleanup_forwarder_blocks, remove_forwarder_block): New functions.
1815         (cleanup_tree_cfg): Use cleanup_forwarder_blocks instead of
1816         thread_jumps.
1817         * tree-flow.h (bb_ann_d): Remove forwardable.
1818
1819 2004-12-06  Kazu Hirata  <kazu@cs.umass.edu>
1820
1821         * expr.c (expand_expr_real_1): Remove an "if" whose condition
1822         is always false.
1823
1824 2004-12-06  Roger Sayle  <roger@eyesopen.com>
1825
1826         * c-gimplify.c (gimplify_c_loop): Improve initial implementations
1827         for loops whose conditions are known at compile-time.
1828         * gimplify.c (append_to_statement_list_1): Remove side_effects
1829         parameter, this function should never be called if its false.
1830         (append_to_statement_list): Only call append_to_statement_list_1
1831         if t is non-NULL tree with side-effects.
1832         (append_to_statement_list_force):  Likewise, if t is not NULL.
1833
1834 2004-12-06  J"orn Rennecke <joern.rennecke@st.com>
1835
1836         * bt-load.c (btr_def_s): New member own_end;
1837         (add_btr_to_live_range): Add second parameter.  Changed caller.
1838         (clear_btr_from_live_range): Clear btrs_live_at_end bit
1839         for the register its definition basic block if own_end is set.
1840         (augment_live_range): Also take btrs_live_at_end into account.
1841         (combine_btr_defs): Don't bother with
1842         other_def->other_btr_uses_after_use if it pertains to a different
1843         register.
1844         (move_btr_def): Set def->other_btr_uses_before_def after
1845         calling combine_btr_defs."
1846
1847         * bt-load.c (augment_live_range): New argument full_range.
1848         Changed all callers.
1849
1850         * bt-load.c (move_tr_def): Set other_tr_uses_before_def
1851         taking new btr assignment into account.
1852
1853 2004-12-05  Daniel Berlin <dberlin@dberlin.org>
1854
1855         * tree-ssa-alias.c (create_global_var): Use void_type_node,
1856         not size_type_node.
1857
1858 2004-12-05  Kazu Hirata  <kazu@cs.umass.edu>
1859
1860         * expr.c (expand_expr_real_1): Abort on COND_EXPR of
1861         VOID_TYPE.
1862
1863 2004-12-05  Richard Henderson  <rth@redhat.com>
1864
1865         PR target/18841
1866         * config/alpha/alpha.md (UNSPECV_SETJMPR_ER): New.
1867         (builtin_setjmp_receiver_er_sl_1): Use it.
1868         (builtin_setjmp_receiver_er_1): Likewise.
1869         (builtin_setjmp_receiver_er, exception_receiver_er): Remove.
1870         (builtin_setjmp_receiver): Don't split for explicit relocs until
1871         after reload.
1872         (exception_receiver): Likewise.
1873
1874 2004-12-05  Andrew Pinski  <pinskia@physics.uc.edu>
1875
1876         * mklibgcc.in (vis_hide): Add the prototype for the test.
1877
1878 2004-12-05  Roger Sayle  <roger@eyesopen.com>
1879
1880         * c-typeck.c (c_finish_loop): Improve initial implementations
1881         for loops whose conditions are known at compile-time.
1882
1883 2004-12-05  Kazu Hirata  <kazu@cs.umass.edu>
1884
1885         * builtins.c: Fix comment typos.
1886
1887 2004-12-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1888
1889         PR middle-end/18730
1890         * emit-rtl.c (get_first_nonnote_insn, get_last_nonnote_insn): When
1891         the first/last insn is a sequence, return the first/last insn of the
1892         sequence.
1893
1894         PR bootstrap/18804
1895         * mklibgcc.in (vis_hide): Use implementation instead of declaration
1896         for test function.
1897
1898 2004-12-04  Richard Henderson  <rth@redhat.com>
1899
1900         * config/alpha/alpha.c (alpha_expand_unaligned_load): Don't forget to
1901         use ofs in BWX two byte special case.
1902         (alpha_expand_unaligned_store): Likewise.
1903
1904 2004-12-04  Kazu Hirata  <kazu@cs.umass.edu>
1905
1906         * gcse.c (gcse_main): Add a comment.
1907
1908 2004-12-04  Andrew  Pinski  <pinskia@physics.uc.edu>
1909
1910         PR middle-end/17909
1911         * builtins.c (fold_builtin_next_arg): Export and return true
1912         when there is a warning or an error.
1913         (expand_builtin_va_start): When fold_builtin_next_arg returns true,
1914         return const0_rtx.
1915         (expand_builtin): Likewise.
1916         * gimplify.c (gimplify_call_expr): Error out if there is not
1917         enough arguments to va_start. Call fold_builtin_next_arg also
1918         on the second argument.
1919         * tree.h (fold_builtin_next_arg): Prototype.
1920
1921 2004-12-04  Alan Modra  <amodra@bigpond.net.au>
1922
1923         * mklibgcc.in: Build shared libgcc and shared libunwind in gcc/.
1924         Don't subst shlib_dir for SHLIB_LINK, SHLIBUNWIND_LINK,
1925         SHLIB_INSTALL, and SHLIBUNWIND_INSTALL.
1926         * config/i386/t-nwld (SHLIB_NAME): Use shlib_base_name in place of
1927         shlib_dir and shlib_so_name.
1928         * config/mips/t-slibgcc-irix (SHLIB_NAME): Likewise.
1929         * config/t-libunwind-elf (SHLIB_NAME): Likewise.
1930         * config/t-slibgcc-darwin (SHLIB_NAME): Likewise.
1931         * config/t-slibgcc-elf-ver (SHLIB_NAME): Likewise.
1932         * config/t-slibgcc-sld (SHLIB_NAME): Likewise.
1933         (SHLIB_LINK): Don't use shlib_dir when creating symlink.
1934
1935 2004-12-03  Roger Sayle  <roger@eyesopen.com>
1936
1937         * doc/tm.texi (TARGET_DELEGITIMIZE_ADDRESS): Document target hook.
1938
1939 2004-12-03  Richard Henderson  <rth@redhat.com>
1940
1941         * alias.c (component_uses_parent_alias_set): Rename from
1942         can_address_p.  Return bool.  Reverse the sense of the result.
1943         Reinstate the check for alias set zero.
1944         (get_alias_set): Update to match.
1945         * alias.h (component_uses_parent_alias_set): Likewise.
1946         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
1947         * expr.c (expand_assignment): Likewise.
1948         * expr.h: Remove commented out prototypes that were moved to alias.h.
1949
1950 2004-12-03  Richard Henderson  <rth@redhat.com>
1951
1952         * doc/tm.texi (TARGET_BUILD_BUILTIN_VA_LIST): New.
1953         (TARGET_CANNOT_FORCE_CONST_MEM): New.
1954
1955 2004-12-04  Alan Modra  <amodra@bigpond.net.au>
1956
1957         PR middle end/18718
1958         * sched-rgn.c (schedule_region): Don't assume REG_SAVE_NOTEs are
1959         in pairs.
1960         * sched-ebb.c (schedule_ebb): Likewise.
1961
1962 2004-12-03  Andreas Schwab  <schwab@suse.de>
1963
1964         * Makefile.in (HOSTHOOKS_DEF_H): Define.
1965         (ggc-common.o): Depend on $(HOSTHOOKS_DEF_H).
1966         (host-default.o): Likewise.
1967
1968 2004-12-03  Eric Christopher  <echristo@redhat.com>
1969
1970         * config/stormy16/stormy16.md (pushqi, popqi, pushhi,
1971         pophi): Add number of arguments to name so that the
1972         pattern is recognized as a named pattern.
1973
1974 2004-12-03  Janis Johnson  <janis187@us.ibm.com>
1975
1976         * doc/extend.texi (AltiVec Builtins): Fix info about signedness.
1977
1978 2004-12-03  Andreas Tobler  <a.tobler@schweiz.ch>
1979
1980         * config/rs6000/rs6000.c (rs6000_override_options): Protect
1981         darwin_one_byte_bool with #if.
1982
1983 2004-12-03  Paolo Bonzini  <bonzini@gnu.org>
1984
1985         * doc/tm.texi (Misc): Document TARGET_FOLD_BUILTIN.
1986
1987 2004-12-03  H.J. Lu  <hongjiu.lu@intel.com>
1988
1989         * mklibgcc.in: Put back the default set of EXTRA_MULTILIB_PART.
1990
1991 2004-12-03  Richard Sandiford  <rsandifo@redhat.com>
1992
1993         * configure.ac: Move TL_AC_GCC_VERSION into initialization section.
1994         Set libstdcxx_incdir directly.
1995         * configure: Regenerate.
1996
1997 2004-12-03  Kazu Hirata  <kazu@cs.umass.edu>
1998
1999         * tree-ssa-dom.c (record_equivalences_from_phis): Remove an
2000         "if" whose condition is always true.
2001
2002         * cfgrtl.c (rtl_verify_flow_info_1): Use JUMP_P instead of
2003         INSN_P.
2004
2005 2004-12-02  Stan Shebs  <shebs@apple.com>
2006
2007         * config/rs6000/rs6000.c (rs6000_override_options): Make 64-bit
2008         Darwin default to one-byte bools.
2009
2010 2004-12-02  Richard Henderson  <rth@redhat.com>
2011
2012         PR 18774
2013         * simplify-rtx.c (simplify_immed_subreg): Fail complex modes.
2014
2015 2004-12-03  Ben Elliston  <bje@au.ibm.com>
2016
2017         * doc/cfg.texi (Edges): Update. Document the edge_iterator data
2018         type and its methods.
2019
2020 2004-12-02  Richard Henderson  <rth@redhat.com>
2021
2022         * expr.c (write_complex_part): Use simplify_gen_subreg when the
2023         submode is at least as large as a word.
2024         (read_complex_part): Likewise.
2025
2026 2004-12-02  H.J. Lu  <hongjiu.lu@intel.com>
2027
2028         PR bootstrap/18532
2029         * mklibgcc.in: Build one set of EXTRA_MULTILIB_PARTS for
2030         multilib at a time. Don't build the default set. Don't add
2031         EXTRA_MULTILIB_PARTS to shared libunwind nor libgcc. Remove
2032         filter for shared libunwind and libgcc.
2033
2034 2004-12-02  Roger Sayle  <roger@eyesopen.com>
2035
2036         PR target/18759
2037         * config/i386/i386.c (override_options): If -fomit-frame-pointer has
2038         already been specified, ignore the -momit-leaf-frame-pointer option.
2039
2040 2004-12-02  H.J. Lu  <hongjiu.lu@intel.com>
2041
2042         * varasm.c (make_decl_rtl): Add the missing `;'.
2043
2044 2004-12-02  Andrew Pinski  <pinskia@physics.uc.edu>
2045
2046         * tree.c (is_attribute_p): Split out to ..
2047         (is_attribute_with_length_p): Here.  Use IDENTIFIER_LENGTH instead
2048         of strlen and compare the string lengths before calling strcmp.
2049         (lookup_attribute): Call is_attribute_with_length_p instead of
2050         is_attribute_p.
2051
2052 2004-12-02  Devang Patel  <dpatel@apple.com>
2053
2054         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add -gfull and -gused.
2055         * config/rs6000/darwin.h (CC1_SPEC): Do not handle -gfull and -gused.
2056         * config/i386/darwin.h (CC1_SPEC): Same.
2057
2058 2004-12-02  Richard Henderson  <rth@redhat.com>
2059
2060         * optabs.c (lowpart_subreg_maybe_copy): New.
2061         (expand_unop, expand_abs_nojump): Use it.
2062
2063 2004-12-02  J"orn Rennecke <joern.rennecke@st.com>
2064
2065         * sh.md (extv, extzv): Add pattern predicate.
2066
2067 2004-12-02  Kazu Hirata  <kazu@cs.umass.edu>
2068
2069         * tree-cfg.c (phi_alternatives_equal): Check that PHI_ARG_DEF
2070         is not null.
2071
2072         * tree-cfg.c (phi_alternatives_equal): Check that PHI_ARG_DEF
2073         is not null.
2074
2075         * tree-cfg.c (thread_jumps): Reduce the size of WORKLIST.
2076
2077 2004-12-02  Jeff Law  <law@redhat.com>
2078
2079         * tree-eh.c: Revert yesterday's change.
2080
2081 2004-12-02  Andrew Pinski  <pinskia@physics.uc.edu>
2082
2083         * varasm.c (decode_reg_name): Revert change to check for zero
2084         length strings.
2085         (make_decl_rtl): Make sure that we call decode_reg_name only
2086         when needed.
2087
2088 2004-12-02  Dorit Naishlos  <dorit@il.ibm.com>
2089
2090         PR tree-opt/18716
2091         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Properly set
2092         then and else labels.
2093
2094 2004-12-02  Andreas Schwab  <schwab@suse.de>
2095
2096         * Makefile.in (WERROR_FLAGS): Renamed from WERROR.
2097         (STRICT2_WARN): Use $(WERROR_FLAGS) instead of $(WERROR).
2098         (STAGE2_FLAGS_TO_PASS): Likewise.
2099
2100         * config/i386/x-mingw32: Set WERROR_FLAGS instead of WERROR.
2101
2102 2004-12-02  Richard Sandiford  <rsandifo@redhat.com>
2103
2104         * configure.ac: Use TL_AC_GCC_VERSION to set gcc_version.  Remove
2105         now-redundant AC_SUBSTs.
2106         * aclocal.m4: Include ../config/gcc-version.m4.
2107         * configure: Regenerate.
2108
2109 2004-12-02  Alan Modra  <amodra@bigpond.net.au>
2110
2111         * config/rs6000/rs6000.c (rs6000_assemble_integer): Put back the
2112         #ifdef RELOCATABLE_NEEDS_FIXUP.
2113
2114 2004-12-01  Roger Sayle  <roger@eyesopen.com>
2115
2116         PR target/9908
2117         * config/i386/i386.md (*call_value_1, *sibcall_value_1): Correct
2118         Intel assembler syntax by using %A1 instead of %*%1.
2119
2120 2004-12-01  Richard Henderson  <rth@redhat.com>
2121
2122         * expr.c (expand_assignment): Handle CONCAT both as a final
2123         destination and as a middle point.
2124
2125 2004-12-01  Jeff Law  <law@redhat.com>
2126
2127         * tree-eh.c (save_eptr, save_filt): Now file scoped statics.
2128         (honor_protect_cleanup_actions): Only create save_eptr and
2129         save_filt if they do not already exist.
2130         (lower_eh_constructs): Wipe all knowledge of save_eptr and
2131         save_filt before returning.
2132
2133 2004-12-02  Kazu Hirata  <kazu@cs.umass.edu>
2134
2135         * tree-phinodes.c (remove_phi_arg_num): Fix a comment.
2136
2137 2004-12-02  Alan Modra  <amodra@bigpond.net.au>
2138
2139         PR target/16952
2140         * config/rs6000/rs6000.c (rs6000_assemble_integer): Replace
2141         #ifdef RELOCATABLE_NEEDS_FIXUP with if.
2142         * config/rs6000/linux.h (RELOCATABLE_NEEDS_FIXUP): Define in terms
2143         of target_flags_explicit.
2144         * config/rs6000/linux64.h (RELOCATABLE_NEEDS_FIXUP): Ditto for biarch
2145         case.  Define as 0 for non-biarch.
2146
2147 2004-12-01  Zack Weinberg  <zack@codesourcery.com>
2148
2149         * config/rs6000/t-aix43, config/rs6000/t-aix52 (SHLIB_LINK):
2150         Change temporary file tag from a prefix to an infix.
2151
2152 2004-12-02  Andreas Schwab  <schwab@suse.de>
2153
2154         * gcc.c (struct option_map): Add entry for "--pass-exit-codes".
2155
2156 2004-12-01  Andrew Pinski  <pinskia@physics.uc.edu>
2157
2158         PR tree-opt/18763
2159         PR tree-opt/18746
2160         * tree-ssa-alias.c (init_alias_info): Get statement operands for all
2161         the statements if aliases_computed_p is true.
2162
2163 2004-12-01  Mark Mitchell  <mark@codesourcery.com>
2164
2165         * Makefile.in (WERROR): New variable.
2166         (STRICT2_WARN): Use it.
2167         (STAGE2_FLAGS_TO_PASS): Likewise.
2168         * config/i386/x-mingw32 (WERROR): Add -Wno-format.
2169
2170 2004-12-01  Richard Henderson  <rth@redhat.com>
2171
2172         * expr.c (get_inner_reference): Fix thinko in REAL/IMAGPART_EXPR
2173         offsetting.
2174
2175 2004-12-01  Diego Novillo  <dnovillo@redhat.com>
2176
2177         PR tree-optimization/18291
2178         * tree-ssa-copy.c (merge_alias_info): Fix merging of
2179         flow-sensitive alias information.  If the new pointer has no
2180         name tag, copy it from the original pointer.  Otherwise, make
2181         sure that the pointed-to sets have a common intersection.
2182
2183 2004-12-01  Richard Henderson  <rth@redhat.com>
2184
2185         PR rtl-opt/15289
2186         * emit-rtl.c (gen_complex_constant_part): Remove.
2187         (gen_realpart, gen_imagpart): Remove.
2188         * rtl.h (gen_realpart, gen_imagpart): Remove.
2189         * expmed.c (extract_bit_field): Remove CONCAT hack catering to
2190         gen_realpart/gen_imagpart.
2191         * expr.c (write_complex_part, read_complex_part): New.
2192         (emit_move_via_alt_mode, emit_move_via_integer, emit_move_resolve_push,
2193         emit_move_complex_push, emit_move_complex, emit_move_ccmode,
2194         emit_move_multi_word): Split out from ...
2195         (emit_move_insn_1): ... here.
2196         (expand_expr_real_1) <COMPLEX_EXPR>: Use write_complex_part.
2197         <REALPART_EXPR, IMAGPART_EXPR>: Use read_complex_part.
2198         * function.c (assign_parm_setup_reg): Hard-code transformations
2199         instead of using gen_realpart/gen_imagpart.
2200
2201         * expr.c (optimize_bitfield_assignment_op): Split out from ...
2202         (expand_assignment): ... here.  Use handled_component_p to gate
2203         get_inner_reference code.  Simplify MEM handling.  Special case
2204         CONCAT destinations.
2205
2206         * expmed.c (store_bit_field): Use simplify_gen_subreg instead
2207         of gen_rtx_SUBREG directly.
2208
2209 2004-12-01  David Edelsohn  <edelsohn@gnu.org>
2210             Nathan Sidwell  <nathan@codesourcery.com>
2211
2212         PR target/17107
2213         * config/rs6000/rs6000.md (sge): Enable for non-TARGET_POWER.
2214         (sgt): Same.
2215         (sle): Same.
2216         (slt): Same.
2217
2218 2004-12-01  Nathan Sidwell  <nathan@codesourcery.com>
2219
2220         PR middle-end/18667
2221         * params.c (set_param_value): Add range check.
2222         * params.def: Add min and max values. Reformat long strings.
2223         * params.h (struct param_info): Add min and max fields.
2224         (enum compiler_param): Adjust DEFPARAM.
2225         * toplev.c (lang_independent_params): Likewise.
2226
2227 2004-12-01  Alan Modra  <amodra@bigpond.net.au>
2228
2229         PR target/12817
2230         * config/rs6000/rs6000.c (rs6000_emit_prologue): Use r0 for vrsave.
2231
2232 2004-12-01  Joseph S. Myers  <joseph@codesourcery.com>
2233
2234         * doc/standards.texi: Update for C99 TC2.
2235
2236 2004-11-30  Jeff Law  <law@redhat.com>
2237
2238         * sbitmap.c (sbitmap_any_common_bits): New function.
2239         * sbitmap.h (sbitmap_any_common_bits): Prototype.
2240         * modulo-sched.c (sms_schedule_by_order): Use sbitmap_any_common_bits
2241         No longer allocate/free "psp", "pss" sbitmaps.
2242         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Similarly for
2243         the "res" sbitmap.
2244         (group_aliases): Similarly.
2245
2246 2004-11-30  Nathan Sidwell  <nathan@codesourcery.com>
2247
2248         * tree-vectorizer.c (vect_analyze_data_refs): Reformat and avoid
2249         uninitialized variable.
2250
2251 2004-11-30  Eric Christopher  <echristo@redhat.com>
2252
2253         * fold-const.c (fold_widened_comparison): Make sure that we're
2254         passing an INTEGER_TYPE to int_fits_type_p.
2255         (fold): Clean up comment.
2256
2257 2004-11-30  Zack Weinberg  <zack@codesourcery.com>
2258
2259         * mklibgcc.in: Correct calculation of libgcc_s_soname and
2260         libunwind_soname.  Use $out, not $outS, in commands for
2261         no-shared-library case.  Move EXTRA_MULTILIB_PARTS rules above
2262         library build rules, make $libunwind_so and $libgcc_s_so
2263         depend on them in the normal fashion, and filter those objects
2264         out of @shlib_objs@.
2265
2266 2004-11-30  Janis Johnson  <janis187@us.ibm.com>
2267
2268         * config/rs6000/altivec.h (vec_step_help): Support const vector types.
2269
2270 2004-11-30  Andrew Pinski  <pinskia@physics.uc.edu>
2271
2272         PR tree-opt/18298
2273         * tree-optimize.c (init_tree_optimization_passes): Add a may_alias
2274         pass right after fold builtins.
2275
2276 2004-11-30  Andreas Krebbel  <krebbel1@de.ibm.com>
2277
2278         * config/s390/s390-modes.def: Added cc modes documentation.
2279         * config/s390/s390.c: (s390_tm_ccmode, s390_select_ccmode,
2280         s390_expand_addcc): Added cc mode comments.
2281         * config/s390/s390.md: Removed old cc mode documentation.
2282
2283 2004-11-30  Mark Dettinger  <dettinge@de.ibm.com>
2284
2285         * config/s390/s390.c (struct processor_costs): New data type.
2286         (s390_cost, z900_cost, z990_cost): New global variables.
2287         (override_options): Initialize s390_cost.
2288         (s390_rtx_costs): Reimplement.
2289
2290 2004-11-29  Daniel Berlin  <dberlin@dberlin.org>
2291
2292         Fix PR tree-optimization/18673
2293
2294         * tree-ssa-pre.c: Remove splay-tree.h include.
2295         (bitmap_value_replace_in_set): Fix to add if it does not exist.
2296         (find_or_generate_expression): Remove now-wrong condition.
2297         (create_expression_by_pieces): Fix condition and comment reason
2298         for it.
2299         (insert_aux): Fix condition and comment reasons for it.
2300         Factor insertion code from here.
2301         (insert_into_preds_of_block): To here.  Fix conditions in factored
2302         function and comment reasons for them.
2303
2304 2004-11-30  Ira Rosen  <irar@il.ibm.com>
2305
2306         PR tree-opt/18607
2307         * tree-vectorizer.c (vect_analyze_data_refs): Use temporary
2308         variable for data_reference when looking for memtag.
2309
2310 2004-11-30  Jakub Jelinek  <jakub@redhat.com>
2311
2312         * c-opts.c (check_deps_environment_vars): If spec != NULL, set
2313         deps_seen.
2314
2315 2004-11-30  Dorit Naishlos  <dorit@il.ibm.com>
2316
2317         * tree-vectorizer.c (vect_gen_niters_for_prolog_loop): Use
2318         tree_low_cst instead of TREE_INT_CST_LOW.
2319
2320 2004-11-30  Dorit Naishlos  <dorit@il.ibm.com>
2321
2322         PR target/18173
2323         * tree-vectorizer.c (vect_can_force_dr_alignment_p): Return false for
2324         decls that are assembled before vectorization takes place.
2325         (vect_compute_data_ref_alignment): Set DECL_USER_ALIGN to 1.
2326
2327 2004-11-30  Ulrich Weigand  <uweigand@de.ibm.com>
2328
2329         * passes.c (rest_of_handle_old_regalloc): Delete unreachable blocks
2330         if local_alloc modified jumps.
2331
2332 2004-11-30  Alan Modra  <amodra@bigpond.net.au>
2333
2334         * varasm.c (default_encode_section_info): Don't set SYMBOL_FLAG_SMALL
2335         on TLS symbols.
2336         * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Remove TLS
2337         check.
2338
2339 2004-11-30  Zack Weinberg  <zack@codesourcery.com>
2340
2341         * gthr-gnat.c, gthr-gnat.h, gthr.h, libgcc2.h, unwind-dw2-fde.h
2342         * unwind.h: Surround all visibility pragmas with #ifndef HIDE_EXPORTS.
2343
2344         * mklibgcc.in: Drastic restructure for comprehensibility.
2345         Remove the old hidden-directive hack.
2346         Eliminate support for .txt files in LIB2ADD etc (never used).
2347         Eliminate support for assembly source files in LIB2ADDEH* and
2348         LIBUNWIND (also never used).
2349         Build up dependency lists for libraries incrementally.
2350         If we have SHLIB_LINK, compile each file twice, once for the
2351         static and once for the shared library; also probe for
2352         -fvisibility=hidden in the generated libgcc.mk.  If found,
2353         pass that and -DHIDE_EXPORTS to the compilation of every C
2354         source file going into the static library.  If found, generate
2355         hidden-directive lists for every assembly source file going
2356         into the static library, but incorporate them with -include
2357         instead of ld -r.
2358         Write comments into generated libgcc.mk to facilitate debugging.
2359         * Makefile.in: Pass ASM_HIDDEN_OP to mklibgcc.
2360         * config/t-slibgcc-darwin: Define ASM_HIDDEN_OP.
2361
2362         * config/darwin.h (REAL_LIBGCC_SPEC): Put -lgcc back in
2363         -Zdynamiclib case.
2364
2365 2004-11-29  Richard Henderson  <rth@redhat.com>
2366
2367         * expr.c (get_inner_reference): Handle REAL/IMAGPART_EXPR.
2368         (handled_component_p): Likewise.
2369         * alias.c (can_address_p): Reformat and simplify.  Handle
2370         REAL/IMAGPART_EXPR.  Do not disable addressability based on
2371         alias set zero.
2372         * fold-const.c (build_fold_addr_expr_with_type): Remove duplicate
2373         check for REAL/IMAGPART_EXPR.
2374         * gimplify.c (gimplify_compound_lval): Likewise.
2375         * tree-cfg.c (verify_expr): Likewise.
2376         * tree-gimple.c (is_gimple_addressable, get_base_address): Likewise.
2377         * tree-nested.c (build_addr, convert_nonlocal_reference): Likewise.
2378         (convert_local_reference): Likewise.
2379         * tree-ssa-loop-ivopts.c (prepare_decl_rtl): Likewise.
2380
2381 2004-11-30  Alan Modra  <amodra@bigpond.net.au>
2382
2383         * expr.c (emit_group_load_1): Don't die on const_int orig_src.
2384
2385 2004-11-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2386
2387         PR pch/14940
2388         * config/pa/pa-host.c, config/pa/x-hpux, config/pa/x-linux: New files.
2389         * config.host (hppa*-*-hpux*, hppa*-*-linux): Define out_host_hook_obj
2390         and host_xmake_file using new host configuration files.
2391
2392 2004-11-29  Roger Sayle  <roger@eyesopen.com>
2393
2394         * reg-stack.c (change_stack): Improve algorithm used to pop regs
2395         off the stack to maximize ffreep usage and reduce fxch count.
2396
2397 2004-11-30  James A. Morrison  <phython@gcc.gnu.org>
2398
2399         PR middle-end/18596
2400         * c-decl.c (grokdeclarator): Reset DECL_INTIAL to error_mark_node
2401         on errors.
2402
2403 2004-11-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2404
2405         * expr.c (expand_expr_real_1, case NOP_EXPR): Properly handle
2406         REDUCE_BIT_FIELD by applying it to result, not input, of conversion.
2407
2408 2004-11-30  Ben Elliston  <bje@au.ibm.com>
2409
2410         * Makefile.in (REGS_H): Depend on $(BASIC_BLOCK_H).
2411
2412 2004-11-29  Andrew Pinski  <pinskia@physics.uc.edu>
2413
2414         PR c/18479
2415         * c-common.c (handle_visibility_attribute): When the type decl
2416         is really a identifier node, warn about being ignored and return.
2417
2418 2004-11-29  Richard Henderson  <rth@redhat.com>
2419
2420         * tree-cfg.c (tree_node_can_be_shared): Fix typo'd error_mark_node.
2421
2422 2004-11-29  Steven Bosscher  <stevenb@suse.de>
2423
2424         * cfgcleanup.c (outgoing_edges_match, try_crossjump_to_edge):
2425         Remove CASE_DROPS_THROUGH checks, it is never defined.
2426         * cfglyout.c (fixup_reorder_chain): Likewise.
2427         * cfgrtl.c (rtl_verify_flow_info): Likewise.
2428         * stmt.c (expand_case): Likewise.
2429         * cfgbuild.c (make_edges): Likewise.  Also remove force_fallthru,
2430         it is now always 0.
2431         * system.h (CASE_DROPS_THROUGH): Poison.
2432         * doc/md.texi (casesi): Remove documentation of CASE_DROPS_THROUGH.
2433         * doc/tm.texi (casesi): Remove documentation of CASE_DROPS_THROUGH.
2434
2435         * config/v850/v850.h: Remove commented out CASE_DROPS_THROUGH.
2436
2437 2004-11-29  Andrew Pinski  <pinskia@physics.uc.edu>
2438
2439         PR middle-end/18725
2440         * tree-cfg.c (tree_node_can_be_shared): Error_mark_node can be
2441         shared always.
2442
2443 2004-11-29  Diego Novillo  <dnovillo@redhat.com>
2444
2445         PR tree-optimization/18712
2446         * tree-into-ssa.c (insert_phi_nodes_for): Pass argument
2447         WORK_STACK by reference.
2448         Call VEC_safe_push instead of VEC_quick_push.
2449         Update all users.
2450
2451 2004-11-29  Daniel Jacobowitz  <dan@codesourcery.com>
2452
2453         PR c/7544
2454         * Makefile.in (c-lang.o): Update dependencies.
2455         * c-lang.c: Include "c-pragma.h".
2456         (finish_file): Call maybe_apply_pending_pragma_weaks.
2457         * c-pragma.c (maybe_apply_pending_pragma_weaks): New function.
2458         * c-pragma.h (maybe_apply_pending_pragma_weaks): New prototype.
2459
2460 2004-11-29  Richard Henderson  <rth@redhat.com>
2461
2462         PR target/17224
2463         * config/ia64/predicates.md (sdata_symbolic_operand): Deny offsets
2464         outside the referenced object.
2465
2466 2004-11-29  Kazu Hirata  <kazu@cs.umass.edu>
2467
2468         * tree-if-conv.c (replace_phi_with_cond_modify_expr): Use
2469         EDGE_PRED instead of PHI_ARG_EDGE.
2470         * tree-ssa-live.c: Likewise.
2471         * tree-ssa-loop-manip.c: Likewise.
2472         * tree-ssa.c: Likewise.
2473
2474         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Speed up by
2475         simplifying edge manipulation.
2476
2477         * cfgrtl.c (rtl_tidy_fallthru_edge): Speed up by using
2478         EDGE_COUNT.
2479
2480         * tree-cfg.c (tree_redirect_edge_and_branch): Call find_edge
2481         only when needed.
2482
2483         * cfg.c (flow_obstack): Remove.
2484         (flow_firstobj): Likewise.
2485         (init_flow): Remove all uses of flow_obstack.
2486
2487 2004-11-29  Alan Modra  <amodra@bigpond.net.au>
2488
2489         * varasm.c (default_elf_select_section_1): Only pass DECL_P decl
2490         to named_section.
2491
2492 2004-11-29  Nathan Sidwell  <nathan@codesourcery.com>
2493
2494         * opts.c (decode_options): Do not set max-inline-insns-rtl.
2495         (common_handle_option): Likewise.
2496         * params.def (PARAM_MAX_INLINE_INSNS_RTL): Remove.
2497         * params.h (MAX_INLINE_INSNS_RTL): Remove.
2498         * doc/invoke.texi (max-inline-insns-rtl): Remove.
2499
2500 2004-11-29  Alan Modra  <amodra@bigpond.net.au>
2501
2502         PR target/9571
2503         * varasm.c (default_elf_select_section_1): Pass decl to named_section.
2504
2505 2004-11-28  Andrew Pinski  <pinskia@physics.uc.edu>
2506
2507         PR middle-end/18164
2508         * gimplify.c (gimplify_asm_expr): If the length of an output operand
2509         is zero, do not process it, just let it go through.
2510
2511 2004-11-28  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2512             Diego Novillo  <dnovillo@redhat.com>
2513
2514         PR/18662, also backported from tree-cleanup-branch.
2515         * tree-ssa-ccp.c (substitute_and_fold): If replaced anything,
2516         always call maybe_clean_eh_stmt and modify_stmt.
2517
2518 2004-11-28  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2519
2520         PR/18664
2521         * tree-ssa-operands.c (build_ssa_operands, case MODIFY_EXPR):
2522         Ignore a VIEW_CONVERT_EXPR on LHS when deciding if must or may def.
2523         * tree-ssa-ccp.c (visit_assignment): If LHS is a VIEW_CONVERT_EXPR,
2524         add an inverse VIEW_CONVERT_EXPR to const_val.
2525
2526         PR/18657
2527         * tree-nested.c (check_for_nested_with_variably_modified): New.
2528         (create_nesting_tree): Call it.
2529
2530         * tree-ssa-alias.c (compute_points_to_and_addr_escapes): Remove
2531         special code for assigning to non-pointer.
2532         (is_escape_site): If RHS is a conversion between pointer and integer
2533         types,  this is an escape site.
2534
2535         * gcse.c (insert_store): Error if try to insert store on abnormal edge.
2536         (store_motion): Don't move store if any edge we'd want to move it
2537         to is abnormal.
2538
2539         * expr.c (expand_expr_real_1, case ARRAY_REF): Properly fold with
2540         non-zero lower bound.
2541
2542         * expr.c (categorize_ctor_elements_1, case STRING_CST): New case.
2543
2544 2004-11-28  Matt Kraai  <kraai@alumni.cmu.edu>
2545
2546         PR diagnostic/17594
2547         * opts.c (find_opt): Require that the input match a switch exactly
2548         or that the switch take a joined option to be interpreted as a
2549         match for another language.
2550
2551 2004-11-28  Andrew Pinski  <pinskia@physics.uc.edu>
2552
2553         * timevar.def (TV_TREE_REDPHI): New timevar.
2554         * tree-ssa.c (pass_redundant_phi): Use TV_TREE_REDPHI for the tv id.
2555
2556 2004-11-28  Nathanael Nerode  <neroden@gcc.gnu.org>
2557
2558         PR preprocessor/17651
2559         * c-opts.c (sanitize_cpp_opts): Make flag_no_output imply
2560         flag_no_line_commands.
2561         * c-ppoutput.c (pp_file_change): Remove now-redundant check of
2562         flag_no_output.
2563
2564 2004-11-28  Theodore A. Roth  <troth@openavr.org>
2565
2566         * config/avr/avr.c (avr_handle_fndecl_attribute): Generate a
2567         warning if the function name does not begin with "__vector" and the
2568         function has either the 'signal' or 'interrupt' attribute.
2569
2570 2004-11-28  Theodore A. Roth  <troth@openavr.org>
2571
2572         * config/avr/avr.c (avr_mcu_types): Add entries for atmega48,
2573         atmega88, atmega168, attiny13, attiny2313, at90can128, atmega165,
2574         atmega325, atmega3250, atmega645 and atmega6450.
2575         * config/avr/avr.h (LINK_SPEC): Ditto.
2576         (LIB_SPEC): Ditto.
2577         (LIBGCC_SPEC): Ditto.
2578         (CRT_BINUTILS_SPECS): Ditto.
2579         * config/avr/t-avr (MULTILIB_MATCHES): Ditto.
2580
2581 2004-11-28  Nathanael Nerode  <neroden@gcc.gnu.org>
2582
2583         PR preprocessor/17610
2584         * testsuite/gcc.dg/cpp/empty-include.c: New testcase.
2585
2586 2004-11-28  Jeff Law  <law@redhat.com>
2587
2588         * tree-ssa-alias.c (count_calls_and_maybe_create_global_var): New.
2589         (pass_maybe_create_global_var): New.
2590         * tree-pass.h (pass_maybe_create_global_var): Declare.
2591         * tree-optimize.c (init_tree_optimization_passes): Link in
2592         pass_maybe_create_global_var.
2593
2594 2004-11-28  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2595
2596         * tree-inline.c (inline_forbidden_p_1, case RECORD_TYPE): Add comment.
2597
2598 2004-11-28  Ulrich Weigand  <uweigand@de.ibm.com>
2599
2600         PR rtl-optimization/18420
2601         * simplify-rtx.c (simplify_gen_subreg): Revert 2004-10-28 change.
2602
2603 2004-11-28  Steven Bosscher  <stevenb@suse.de>
2604             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2605
2606         * config/vax/vax.h (CASE_DROPS_THROUGH): Don't define.
2607         * config/vax/vax.md (casesi): Emit a test-and-branch to make sure
2608         that the case is in range, to make sure the casesi insn is always
2609         in range and never falls through.
2610         (casesi1): Add comment to explain why casesi never falls through.
2611         Remove the unnamed special case casesi pattern.
2612
2613 2004-11-28  Hans-Peter Nilsson  <hp@bitrange.com>
2614
2615         PR target/18331
2616         * config/mmix/mmix.md ("*movdicc_real_reversible"): Rename from
2617         "*movdicc_real".  Only match reversible comparisons.
2618         ("*movdicc_real_nonreversible"): New pattern, split from
2619         "*movdicc_real".  Match only nonreversible comparisons.  Exclude
2620         reversed alternatives.
2621         ("*movdfcc_real_reversible", "*movdfcc_real_nonreversible"):
2622         Similar.
2623
2624 2004-11-27  Richard Henderson  <rth@redhat.com>
2625
2626         * config/ia64/ia64.md: Move all define_predicate's ...
2627         * config/ia64/predicates.md: ... here.  New file.
2628
2629 2004-11-27  Per Bothner  <per@bothner.com>
2630
2631         PR bootstrap/18142
2632         Re-applied following, with two modifications: add a URL for the
2633         fixed cctools; only exit if $build = $target.
2634
2635         2004-10-18  Kelley Cook  <kcook@gcc.gnu.org>
2636         * configure.ac (powerpc-*-darwin*): Require assembler to support
2637         .machine directive.
2638         * configure: Regenerate.
2639
2640 2004-11-28  David Edelsohn  <edelsohn@gnu.org>
2641
2642         PR target/16800
2643         * config/rs6000/rs6000.c (rs6000_rtx_costs): Improve accuracy of
2644         EQ, GTU, and LTU costs.  Add costs for GT, LT, and UNORDERED.
2645         Distinguish between SImode and DImode CONST_INT.
2646
2647 2004-11-28  Andreas Fischer <a_fisch@gmx.de>
2648             Alan Modra  <amodra@bigpond.net.au>
2649
2650         PR target/16343
2651         * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Disallow
2652         functions, strings and thread-local vars.
2653
2654 2004-11-28  Alan Modra  <amodra@bigpond.net.au>
2655
2656         * config/rs6000/rs6000.h (WORLD_SAVE_P): Define.
2657         * config/rs6000/darwin.h (WORLD_SAVE_P): Define.
2658         * config/rs6000/rs6000.c (compute_save_world_info): Use WORLD_SAVE_P
2659         to allow non-darwin ABIs to optimize away code.
2660         (rs6000_emit_prologue, rs6000_emit_epilogue): Likewise.
2661
2662 2004-11-27  Kazu Hirata  <kazu@cs.umass.edu>
2663
2664         * tree.c (operand_equal_for_phi_arg_p): New.
2665         * tree.h: Add a prototype for operand_equal_for_phi_arg_p.
2666         * tree-cfg.c, tree-ssa-dom.c, tree-ssa-phiopt.c, tree-ssa.c:
2667         Replace operand_equal_p with operand_for_phi_arg_p
2668         appropriately.
2669
2670         * bb-reorder.c (find_traces_1_round): Speed up by using
2671         EDGE_COUNT instead of FOR_EACH_EDGE.
2672
2673         * fold-const.c, config/i386/linux64.h: Fix comment typos.
2674
2675 2004-11-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2676
2677         PR pch/14940
2678         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Revert 2004-11-22 change.
2679
2680 2004-11-27  Kazu Hirata  <kazu@cs.umass.edu>
2681
2682         * config/i386/linux.h: Fix a comment typo.
2683         * doc/extend.texi: Fix a typo.
2684
2685 2004-11-27  Jeff Law  <law@redhat.com>
2686
2687         * tree-cfg.c (cleanup_tree_cfg): Also return true if blocks
2688         are merged.
2689
2690 2004-11-27  Jakub Jelinek  <jakub@redhat.com>
2691
2692         * config/i386/linux64.h (REG_NAME): Define.
2693
2694 2004-11-27  Jakub Jelinek  <jakub@redhat.com>
2695
2696         * fold-const.c (extract_muldiv_1) <case ABS_EXPR>: If ctype is
2697         unsigned and type signed, build ABS_EXPR with signed_type (ctype)
2698         and only afterwards convert to ctype.
2699
2700 2004-11-27  Richard Sandiford  <rsandifo@redhat.com>
2701
2702         * config/mips/mips-protos.h (function_arg_boundary): Declare.
2703         * config/mips/mips.h (PARM_BOUNDARY): Simplify definition.
2704         (STACK_BOUNDARY, MIPS_STACK_ALIGN): Likewise.
2705         (FUNCTION_ARG_BOUNDARY): Use new function_arg_boundary function.
2706         * config/mips/mips.c (function_arg_boundary): New function.
2707         Impose a maximum alignment of STACK_BOUNDARY.
2708
2709 2004-11-27  Jakub Jelinek  <jakub@redhat.com>
2710
2711         PR rtl-optimization/17825
2712         * combine.c (subst): Ignore STRICT_LOW_PART no matter if REG_P (new)
2713         or not.
2714
2715 2004-11-27  Alan Modra  <amodra@bigpond.net.au>
2716
2717         PR target/12769
2718         * config/rs6000/rs6000.c (init_cumulative_args): Set call_cookie
2719         from rs6000_default_long_calls for libcalls.
2720
2721 2004-11-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2722
2723         * expmed.c (extract_bit_field): When extracting from non-integer mode,
2724         force a SUBREG into a register because we may be taking a further
2725         SUBREG of it.
2726
2727 2004-11-27  Di-an Jan  <dianj@freeshell.org>
2728
2729         * doc/contrib.texi (Tim Josling): Remove nesting quotation marks.
2730
2731 2004-11-26  Robert Millan  <robertmh@gnu.org>
2732
2733         Changes for k*bsd-gnu support.
2734         * config/i386/linux.h: Define REG_NAME to allow overriding of
2735         register names in sc structure.
2736         * config/i386/linux-unwind.h: Refer to sc->REG_NAME(reg) instead
2737         of sc->reg.
2738         * config.gcc: Detect x86_64-k*bsd-gnu systems.
2739
2740 2004-11-26  Jeff Law  <law@redhat.com>
2741
2742         * tree-ssa.c (verify_flow_sensitive_alias_info): Don't
2743         retrieve annotations or pointer info before it's necessary.
2744         Reorder tests for early continue of the loop.  Manually CSE
2745         SSA_NAME_VAR.
2746
2747 2004-11-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
2748
2749         * target.h (struct gcc_target): New field 'dwarf_handle_frame_unspec'.
2750         * target_def.h (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Define to 0.
2751         (TARGET_INITIALIZER): Add TARGET_DWARF_HANDLE_FRAME_UNSPEC.
2752         * dwarf2out.c (dwarf2out_frame_debug_expr): Allow REG->REG move
2753         to a fixed reg if the source is the Return Address register.
2754         Implement new Rule 15.
2755         * doc/tm.texi (Frame Layout): Document TARGET_DWARF_HANDLE_FRAME_UNSPEC.
2756         * config/sparc/sparc.c (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Define to
2757         sparc_dwarf_handle_frame_unspec.
2758         (gen_save_register_window): New function.
2759         (emit_stack_pointer_increment): Rename into gen_stack_pointer_inc.
2760         (emit_stack_pointer_decrement): Rename into gen_stack_pointer_dec.
2761         (expand_prologue): Adjust calls to emit_stack_pointer_{in,de}crement.
2762         Set RTX_FRAME_RELATED_P on the appropriate insns and members of insns.
2763         (sparc_asm_function_prologue): Do not emit call frame debugging info.
2764         (emit_and_preserve): Adjust calls to emit_stack_pointer_{in,de}crement.
2765         (sparc_expand_epilogue): Likewise.
2766         (sparc_dwarf_handle_frame_unspec): New function.
2767         * config/sparc/sparc.md (save_register_window): Remove.
2768         (save_register_windowdi): Rewrite modelled on the callframe debug info.
2769         (save_register_windowsi): Likewise.
2770
2771 2004-11-26  Alexandre Oliva  <aoliva@redhat.com>
2772
2773         * config/frv/frv-protos.h: Guard ifcvt functions declarations with
2774         BB_HEAD, not BLOCK_HEAD.
2775
2776 2004-11-26  Alexandre Oliva  <aoliva@redhat.com>
2777
2778         * config/frv/frv.c (frv_ifcvt_modify_insn): Don't leave alone
2779         scratch insns that set a register live at the join point.
2780
2781 2004-11-26  Kazu Hirata  <kazu@cs.umass.edu>
2782
2783         * cse.c, tree-ssa-operands.c: Fix comment typos.
2784
2785         * tree-cfg.c (tree_split_edge): Speed up by using find_edge.
2786
2787 2004-11-26  James A. Morrison  <phython@gcc.gnu.org>
2788
2789         PR target/18510
2790         * doc/extend.texi (SPARC VIS Built-in Functions): New section.
2791
2792 2004-11-26  Kazu Hirata  <kazu@cs.umass.edu>
2793
2794         * cfgrtl.c (try_redirect_by_replacing_jump): Speed up the
2795         check that tests if all edges go to the same destination.
2796
2797         * bitmap.c (bitmap_find_bit): Speed up by traversing from
2798         head->first if that seems profitable.
2799
2800 2004-11-25  Jeff Law  <law@redhat.com>
2801
2802         * timevar.def (TV_TREE_LOOP_INIT, TV_TREE_LOOP_FINI): New timevars.
2803         * tree-ssa-loop.c (pass_loop_init): Use TV_TREE_LOOP_INIT.
2804         (pass_loop_done): Use TV_TREE_LOOP_FINI.
2805
2806 2004-11-26  Alan Modra  <amodra@bigpond.net.au>
2807
2808         PR rtl-optimization/16356
2809         * config/rs6000/rs6000.md (floatdisf2_internal2): Rewrite with
2810         separate output register and one less jump.  Enable for powerpc64.
2811         (floatdisf2): Adjust for above.
2812
2813 2004-11-25  Bob Wilson  <bob.wilson@acm.org>
2814
2815         * config/xtensa/xtensa.h (STARTFILE_SPEC): Add crt0.
2816         (GCC_DRIVER_HOST_INITIALIZATION): Define.
2817
2818 2004-11-25  Andrew Pinski  <pinskia@physics.uc.edu>
2819
2820         PR middle-end/17957
2821         * tree-complex.c (vector_inner_type): New variable moved from
2822         build_word_mode_vector_type.
2823         (vector_last_type): Likewise.
2824         (vector_last_nunits): Likewise.
2825         (build_word_mode_vector_type): Use the new variables.
2826         * Makefile.in (tree-complex.o): Add gt-tree-complex.h $(GGC_H).
2827         (GTFILES): Add tree-complex.c.
2828         (gt-tree-complex.h): New rule, add it to the rest of the gt-* rules.
2829
2830 2004-11-25  Bob Wilson  <bob.wilson@acm.org>
2831
2832         * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define
2833         __XTENSA_WINDOWED_ABI__.
2834
2835 2004-11-25  Richard Henderson  <rth@redhat.com>
2836
2837         * dwarf2out.c (dwarf2out_stack_adjust): Add after_p argument.  Save
2838         args_size adjustments for calls even with cfa as stack pointer.
2839         Search calls for stack adjustments after the insn is issued.
2840         (dwarf2out_frame_debug): Add after_p argument; pass it on.
2841         * dwarf2out.h (dwarf2out_frame_debug): Update to match.
2842         * final.c (final_start_function, final_scan_insn): Likewise.
2843
2844 2004-11-25  Richard Henderson  <rth@redhat.com>
2845
2846         PR c++/6764
2847         * reload1.c (set_initial_eh_label_offset): New.
2848         (set_initial_label_offsets): Use it.
2849
2850 2004-11-25  Kaz Kojima  <kkojima@gcc.gnu.org>
2851
2852         * config/sh/sh.c (sh_output_mi_thunk): Initialize bitmap obstacks
2853         before calling life_analysis and release them after.
2854
2855 2004-11-25  Kazu Hirata  <kazu@cs.umass.edu>
2856
2857         * tree-ssa-forwprop.c (substitute_single_use_vars): Remove
2858         duplicate code.
2859
2860 2004-11-25  Andrew Pinski <pinskia@physics.uc.edu>
2861
2862         * bitmap.h (BITMAP_XMALLOC): Use BITMAP_ALLOC and not
2863         BITMAP_OBSTACK_ALLOC.
2864         (BITMAP_XFREE): Use BITMAP_FREE and not BITMAP_OBSTACK_FREE.
2865
2866 2004-11-25  Andrew Pinski <pinskia@physics.uc.edu>
2867
2868         parts of PR rtl-opt/18463, rtl-opt/17647
2869         * cse.c (canon_for_address): New function.
2870         (find_best_addr): Call canon_for_address before getting the
2871         address's cost when checking if we should take that address.
2872
2873 2004-11-25  Kazu Hirata  <kazu@cs.umass.edu>
2874
2875         * tree-phinodes.c (add_phi_arg): Take "tree" instead of
2876         "tree *" as the first argument.
2877         * tree-flow.h: Update the prototype of add_phi_arg.
2878         * lambda-code.c, tree-cfg.c, tree-into-ssa.c,
2879         tree-ssa-loop-ivopts.c, tree-ssa-loop-manip.c, tree-ssa-pre.c,
2880         tree-ssa-threadupdate.c, tree-ssa.c, tree-tailcall.c,
2881         tree-vectorizer.c: Update all call sites of add_phi_arg.
2882
2883 2004-11-25  Nathan Sidwell  <nathan@codesourcery.com>
2884
2885         * bitmap.c (bitmap_malloc_alloc, bitmap_malloc_free): Remove.
2886         * bitmap.h (bitmap_malloc_alloc, bitmap_malloc_free): Remove.
2887         (BITMAP_XMALLOC): Forward to BITMAP_OBSTACK_ALLOC.
2888         (BITMAP_XFREE): Forward to BITMAP_OBSTACK_FREE.
2889
2890 2004-11-25  Andrew MacLeod  <amacleod@redhat.com>
2891
2892         PR tree-optimization/18587
2893         * tree-flow-inline.h (mark_call_clobbered, mark_non_addressable): Flag
2894         call clobbered caches as invalid.
2895         * tree-ssa-operands.c (ssa_call_clobbered_cache_valid): New.  Flag
2896         indicating whether the call clobbered operand cache is valid.
2897         (ssa_ro_call_cache_valid): New.  Flag indicating whether the
2898         pure/const call operand cache is valid.
2899         (clobbered_v_may_defs, clobbered_vuses, ro_call_vuses): New.  Cached
2900         list of operands for cached call virtual operands.
2901         (clobbered_aliased_loads, clobbered_aliased_stores,
2902         ro_call_aliased_load): New.  flags caching whether alias bits are
2903         to be set in call stmt's.
2904         (fini_ssa_operands): Remove call operand caches if present.
2905         (get_expr_operands, get_asm_expr_operands,
2906         get_indirect_ref_operands): Pass stmt annotation to add_stmt_operand.
2907         (get_call_expr_operands): Add call clobbered variables first.
2908         (add_stmt_operand): Take stmt annotation rather than stmt as a param.
2909         (add_call_clobber_ops, add_call_read_ops): Use the call operand cache
2910         if it is valid, otherise fill the cache.
2911         * tree-ssa-operands.h (ssa_clobbered_cache_valid): Declare extern.
2912         * tree-flow.h (struct var_ann_d): Add in_vuse_list and
2913         in_v_may_def_list bits.
2914         * tree-ssa-operands.c (cleanup_v_may_defs): New.  Clear the
2915         in_list bits for the v_may_def elements and empty the operand
2916         build array
2917         (finalize_ssa_vuses): Use cleanup_v_may_defs and remove redundant
2918         VUSES by checking the in_v_may_def_list bit.
2919         (append_v_may_def, append_vuse): Use the in_list bit rather than
2920         scanning the array for duplicates.
2921
2922 2004-11-25  Ulrich Weigand  <uweigand@de.ibm.com>
2923
2924         * config/s390/s390.c (s390_short_displacement): UNSPEC_GOTNTPOFF
2925         displacements are not short.
2926
2927 2004-11-25  Ulrich Weigand  <uweigand@de.ibm.com>
2928
2929         * config/s390/s390.c (legitimize_pic_address): Use s390_load_address
2930         to load addresses.
2931
2932 2004-11-25  Mark Mitchell  <mark@codesourcery.com>
2933
2934         PR c++/18001
2935         * c-common.h (lvalue_use): Move here from c-ctypeck.c.
2936         (lvalue_or_else): Declare.
2937         * c-common.c (lvalue_or_else): Move here from c-typeck.c.
2938         * c-typeck.c (lvalue_use): Remove.
2939         (lvalue_or_else): Remove.
2940
2941         PR c++/18556
2942         * toplev.c (check_global_declarations): Set DECL_IGNORED_P on
2943         unemitted variables with static storage duration.
2944
2945 2004-11-25  Gerald Pfeifer  <gerald@pfeifer.com>
2946
2947         * tree-cfg.c (tree_verify_flow_info): Do not terminate error()
2948         message with \n.
2949
2950 2004-11-25  Nathan Sidwell  <nathan@codesourcery.com>
2951
2952         * config/rs6000/altivec.md (VIshort): New mode macro.
2953         (altivec_vaddubs, altivec_vadduhs, altivec_vadduws): Replace
2954         with ...
2955         (altivec_vaddu<VI_char>s): ... this.
2956         (altivec_vaddsbs, altivec_vaddshs, altivec_vaddsws): Replace
2957         with ...
2958         (altivec_vadds<VI_char>s): ... this.
2959         (altivec_vsububs, altivec_vsubuhs, altivec_vsubuws): Replace
2960         with ...
2961         (altivec_vsubu<VI_char>s): ... this.
2962         (altivec_vsubsbs, altivec_vsubshs, altivec_vsubsws): Replace
2963         with ...
2964         (altivec_vsubs<VI_char>s): ... this.
2965         (altivec_vavgub, altivec_vavguh, altivec_vavguw): Replace
2966         with ...
2967         (altivec_vavgu<VI_char>): ... this.
2968         (altivec_vavgsb, altivec_vavgsh, altivec_vavgsw): Replace
2969         with ...
2970         (altivec_vavgs<VI_char>): ... this.
2971         (altivec_vmsumubm, altivec_vmsumuhm): Replace with ...
2972         (altivec_vmsumu<VI_char>m): ... this.
2973         (altivec_vmsummbm, altivec_vmsummhm): Replace
2974         with ...
2975         (altivec_vmsumm<VI_char>m): ... this.
2976         (altivec_vandc): Remove.
2977         (*andc<mode>3): Renamed to ...
2978         (andc<mode>3): ... here. Swap operand 1 and 2 numbering.
2979         (altivec_vrlb, altivec_vrlh, altivec_vrlw): Replace
2980         with ...
2981         (altivec_vrl<VI_char>): ... this.
2982         (altivec_vslb, altivec_vslh, altivec_vslw): Replace
2983         with ...
2984         (altivec_vsl<VI_char>): ... this.
2985         (altivec_vsrb, altivec_vsrh, altivec_vsrw): Replace
2986         with ...
2987         (altivec_vsr<VI_char>): ... this.
2988         (altivec_vsrab, altivec_vsrah, altivec_vsraw): Replace
2989         with ...
2990         (altivec_vsra<VI_char>): ... this.
2991         (altivec_vsum4sbs, altivec_vsum4shs): Replace with ...
2992         (altivec_vsum4s<VI_char>s): ... this.
2993         (altivec_vperm_4si, altivec_vperm_8hi, altivec_vperm_16qi): Replace
2994         with ...
2995         (altivec_vperm_<mode>): ... this.
2996         (altivec_vsel_4sf): Rename to ...
2997         (altivec_vsel_v4sf): ... here.
2998         (altivec_vsel_4si, altivec_vsel_8hi, altivec_vsel_16qi): Replace
2999         with ...
3000         (altivec_vsel_<mode>): ... this.
3001         (altivec_vsldoi_4si, altivec_vsldoi_8hi,
3002         altivec_vsldoi_16qi): Rename to ...
3003         (altivec_vsldoi_v4si, altivec_vsldoi_v8hi,
3004         altivec_vsldoi_v16qi): ... here.
3005         (altivec_vsldoi_4sf): Rename to ...
3006         (altivec_vsldoi_v4sf): ... here.
3007         (altivec_predicate_v4si, altivec_predicate_v8hi,
3008         altivec_predicate_v16qi): Replace with ...
3009         (altivec_predicate_<mode>): ... this.
3010         (altivec_lvebx, altivec_lvehx, altivec_lvewx): Replace
3011         with ...
3012         (altivec_lve<VI_char>x): ... this.
3013         (altivec_stvebx, altivec_stvehx, altivec_stvewx): Replace
3014         with ...
3015         (altivec_stve<VI_char>x): ... this.
3016         (absv16qi2, absv8hi2, absv4si2): Replace
3017         with ...
3018         (abs<mode>2): ... this.
3019         (altivec_abss_v16qi, altivec_abss_v8hi, altivec_abss_v4si): Replace
3020         with ...
3021         (altivec_abss_<mode>): ... this.
3022         (vec_realign_load_v16qi, vec_realign_load_v8hi,
3023         vec_realign_load_v4si): Replace with ...
3024         (vec_realign_load_<mode>): ... this.
3025         * config/rs6000/rs6000.c (bdesc_3arg, bdesc_2arg): Update tweaked
3026         insn names.
3027         (rs6000_expand_ternop_builtin): Likewise.
3028
3029 2004-11-25  Andrew Haley  <aph@redhat.com>
3030
3031         * gcc.c (process_command): Don't supply -v to linker.
3032
3033 2004-11-25  Joseph S. Myers  <joseph@codesourcery.com>
3034
3035         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Use %qs
3036         instead of `%s' in diagnostic.
3037
3038 2004-11-25  Nathan Sidwell  <nathan@codesourcery.com>
3039
3040         * basic-block.h (OBSTACK_ALLOC_REG_SET): Adjust.
3041         (FREE_REG_SET): Adjust.
3042         * bitmap.c (bitmap_obstack_free): Cope with NULL bitmap.
3043         * bitmap.h (BITMAP_OBSTACK_ALLOC): Rename to ...
3044         (BITMAP_ALLOC): ... here.
3045         (BITMAP_OBSTACK_FREE): Rename to ...
3046         (BITMAP_FREE): Don't check for NULL bitmap here.
3047         * tree-ssa-pre.c (value_insert_into_set_bitmap,
3048         bitmap_set_new): Use new names.
3049
3050         * bt-load.c (migrate_btr_defs): Remove unneeded NULL check.
3051         * df.c (df_free): Likewise.
3052         * ra-build.c (ra_build_free, ra_build_free_all): Likewise.
3053         * tree-ssa-loop-ivopts.c (set_use_iv_cost): Likewise.
3054
3055         * basic-block.h (OBSTACK_ALLOC_REG_SET): Rename to ...
3056         (ALLOC_REG_SET): ... here.
3057         (FREE_REG_SET): Adjust.
3058         (XMALLOC_REG_SET, XFREE_REG_SET): Remove.
3059         * bb-reorder.c (fix_crossing_conditional_branches): Adjust.
3060         * cfglayout.c (cfg_layout_duplicate_bb): Adjust.
3061         * cfgrtl.c (rtl_split_block, rtl_split_edge,
3062         safe_insert_insn_on_edge, cfg_layout_split_edge): Adjust.
3063         * flow.c (update_life_info, calculate_global_regs_live,
3064         allocate_bb_life_data, init_propagate_block_info): Adjust.
3065         * global.c (build_insn_chain): Adjust.
3066         * ifcvt.c (dead_or_predicable): Adjust.
3067         * loop-iv.c (simplify_using_initial_values): Adjust.
3068         * recog.c (peephole2_optimize): Adjust.
3069         * sched-deps.c (init_deps_global): Adjust.
3070
3071 2004-11-25  Ralf Corsepius <ralf.corsepius@rtems.org>
3072
3073         * config.gcc (avr-*-rtems*): Fix typo.
3074
3075 2004-11-25  J"orn Rennecke <joern.rennecke@st.com>
3076
3077         * sh.c (sh_output_mi_thunk): Do not call regset_release_memory.
3078
3079 2004-11-24  Jeff Law  <law@redhat.com>
3080
3081         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Reduce
3082         the number of queries to random elements in the ai->written_vars
3083         bitmap.
3084
3085 2004-11-24  Roger Sayle  <roger@eyesopen.com>
3086
3087         * config/i386/i386.c (override_options): Disable x87 fancy math
3088         intrinsics if -mfpmath= doesn't include 387 (default on x86_64).
3089
3090 2004-11-24  Roger Sayle  <roger@eyesopen.com>
3091
3092         * configure.ac: Tweak test for HAVE_DECL_LDGETNAME to avoid a
3093         system header conflict on AIX 5.2.
3094         * configure: Regenerate.
3095
3096 2004-11-24  Kazu Hirata  <kazu@cs.umass.edu>
3097
3098         * tree-outof-ssa.c (coalesce_abnormal_edges): Use e->dest_idx
3099         instead of calling phi_arg_from_edge.
3100
3101         * tree-phinodes.c (remove_phi_args): Replace phi_arg_from_edge
3102         with e->dest_idx.
3103
3104 2004-11-24  Ben Elliston  <bje@au.ibm.com>
3105
3106         * config/i386/i386.h (ASM_OUTPUT_DWARF_ADDR_CONST): Remove.
3107         * config/i386/i386.c (i386_dwarf_output_addr_const): Likewise.
3108         * config/i386/i386-protos.h (i386_dwarf_output_addr_const):
3109         Likewise.
3110
3111 2004-11-24  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3112
3113         * tree-sra.c (sra_walk_modify_expr): Handle RHS first, then LHS.
3114
3115         * tree-inline.c (copy_body_r): Explicitly copy a constant if the
3116         type will be remapped.
3117
3118 2004-11-24  Steven Bosscher  <stevenb@suse.de>
3119
3120         * c-opts.c (c_common_post_options): Don't clear
3121         flag_inline_functions.
3122         * dojump.c (clear_pending_stack_adjust): Remove check on
3123         flag_inline_functions, it's always true.
3124         * config/alpha/alpha.md (movdi_er_maybe_g): Remove splitter
3125         that can never trigger.
3126         * config/c4x/c4x.h (TARGET_CPU_CPP_BUILTINS): Don't look at
3127         flag_inline_trees, now that flag_inline_functions is never
3128         cleared.
3129         * config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Don't set
3130         flag_inline_functions at optimization levels greater than
3131         or equal to 3.  This is already done by default.
3132
3133 2004-11-24  Kazu Hirata  <kazu@cs.umass.edu>
3134
3135         * tree-outof-ssa.c (eliminate_build): Use g->e->dest_idx
3136         instead to find the PHI argument.  Do not take I as an
3137         argument.
3138         (eliminate_phi): Adjust the call to eliminate_build.  Do not
3139         take I as an argument.
3140         (rewrite_trees): Adjust the call to eliminate_phi.
3141
3142 2004-11-24  Richard Sandiford  <rsandifo@redhat.com>
3143
3144         * optabs.h (force_expand_binop): Declare.
3145         * optabs.c (force_expand_binop): Export.
3146         * stmt.c (shift_return_value): Delete.
3147         (expand_return): Don't call it.
3148         * expr.h (shift_return_value): Declare.
3149         * calls.c (shift_returned_value): Delete in favor of...
3150         (shift_return_value): ...this new function.  Leave the caller to check
3151         for non-BLKmode values passed in the msb of a register.  Take said mode
3152         and a shift direction as argument.  Operate on the hard function value,
3153         not a pseudo.
3154         (expand_call): Adjust accordingly.
3155         * function.c (expand_function_start): If a non-BLKmode return value
3156         is padded at the last significant end of the return register, use the
3157         return value's natural mode for the DECL_RESULT, not the mode of the
3158         padded register.
3159         (expand_function_end): Shift the same sort of return values left by
3160         the appropriate amount.
3161
3162 2004-11-24  Matt Austern  <austern@apple.com>
3163
3164         * recog.c (recog_memoized_1): Remove.
3165         * recog.h (recog_memoized_1): Remove declaration.
3166         (recog_memoized): Change from macro to inline function.
3167
3168 2004-11-24  Devang Patel  <dpatel@apple.com>
3169
3170         PR/18555
3171         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add isysroot.
3172         * config/darwin-c.c (darwin_register_frameworks): Use sysroot.
3173
3174 2004-11-24  Devang Patel  <dpatel@apple.com>
3175
3176         * gcc.c (process_command): Supply -v to linker.
3177
3178 2004-11-24  David Edelsohn  <edelsohn@gnu.org>
3179             Paolo Bonzini  <bonzini@gnu.org>
3180
3181         * config/rs6000/rs6000.c (rs6000_return_in_memory): Allow Altivec
3182         vector modes without ALTIVEC_ABI.  Use GCC vector instead of
3183         synthetic vector.
3184         (rs6000_pass_by_reference): Split conditional into pieces.  Use
3185         GCC vector instead of synthetic vector.
3186
3187 2004-11-24  Aldy Hernandez  <aldyh@redhat.com>
3188
3189         * tree.c (recompute_tree_invarant_for_addr_expr): The address of a
3190         thread-local variable is invariant.
3191
3192 2004-11-24  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3193
3194         * tree-pretty-print.c (dump_generic_node, case POINTER_TYPE):
3195         Handle TYPE_REF_CAN_ALIAS_ALL.
3196         (print_declaration): Print array dimensions like dump_generic_node.
3197
3198         * fold-const.c (operand_equal_p): Remove kludge allowing ARG0 and
3199         ARG1 to be null; instead define OP_SAME and OP_SAME_NULL and use them.
3200
3201 2004-11-24  Nathan Sidwell  <nathan@codesourcery.com>
3202
3203         * bitmap.c (INLINE): Do not define.
3204         (bitmap_elem_to_freelist, bitmap_element_free,
3205         bitmap_element_allocate, bitmap_clear, bitmap_element_zerop,
3206         bitmap_element_link, bitmap_find_bit): Use inline keyword/macro.
3207
3208 2004-11-24  Kazu Hirata  <kazu@cs.umass.edu>
3209
3210         * tree-ssa-dom.c (cprop_into_successor_phis): Remove code to
3211         find the index of a PHI argument.  Use e->dest_idx instead.
3212         Replace hint with index.
3213
3214         * tree-ssa-dom.c (cprop_into_successor_phis): Replace index
3215         with indx.
3216
3217 2004-11-24  Diego Novillo  <dnovillo@redhat.com>
3218
3219         * tree-ssa-alias.c (merge_pointed_to_info): Fix comment
3220         regarding PT_MALLOC.
3221
3222 2004-11-24  Joseph Myers  <joseph@codesourcery.com>
3223
3224         * config/i386/i386.c (optimization_options): Use
3225         SUBTARGET_OPTIMIZATION_OPTIONS.
3226         * config/i386/sol2-10.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define.
3227         (TARGET_SUBTARGET_DEFAULT): Don't include
3228         MASK_OMIT_LEAF_FRAME_POINTER.
3229
3230 2004-11-24  Mark Mitchell  <mark@codesourcery.com>
3231
3232         * config/i386/sol2.h (X86_FILE_START_VERSION_DIRECTIVE):
3233         Define to false.
3234
3235 2004-11-24  Joseph Myers  <joseph@codesourcery.com>
3236
3237         * config/i386/t-sol2-10 (MULTILIB_DIRNAMES, MULTILIB_OSDIRNAMES):
3238         Use amd64 instead of 64.
3239
3240 2004-11-24  Mark Mitchell  <mark@codesourcery.com>
3241             Joseph Myers  <joseph@codesourcery.com>
3242
3243         * crtstuff.c (IN_LIBGCC2): Define it.
3244         (EH_FRAME_SECTION_CONST): Check EH_TABLES_CAN_BE_READ_ONLY
3245         instead of HAVE_LD_RO_RW_SECTION_MIXING.
3246         * defaults.h (EH_TABLES_CAN_BE_READ_ONLY): New macro.
3247         * dwarf2out.c (named_section_eh_frame_section): Check
3248         EH_TABLES_CAN_BE_READ_ONLY.
3249         * except.c (default_exception_section): Likewise.
3250         * config/i386/sol2.h (EH_TABLES_CAN_BE_READ_ONLY): Define.
3251         * doc/tm.texi (EH_TABLES_CAN_BE_READ_ONLY): Document.
3252
3253 2004-11-24  Kazu Hirata  <kazu@cs.umass.edu>
3254
3255         * tree-ssa-pre.c (phi_translate): Use find_edge to find the
3256         index of a PHI argument.
3257
3258         * tree-ssa-loop-manip.c (lv_adjust_loop_header_phi): Use
3259         find_edge to find the index of a PHI argument.
3260
3261 2004-11-24  Steven Bosscher  <stevenb@suse.de>
3262
3263         * expr.c (expand_expr_real_1): Remove cases for EXIT_BLOCK_EXPR
3264         and LABELED_BLOCK_EXPR.
3265         * gimplify.c (gimplify_labeled_block_expr): Remove.
3266         (gimplify_exit_block_expr): Remove.
3267         (gimplify_expr): Don't call them.
3268         * tree-inline.c (copy_body_r): Don't handle EXIT_BLOCK_EXPR
3269         and LABELED_BLOCK_EXPR.
3270         (estimate_num_insns_1): Likewise.
3271         (walk_tree): Likewise.
3272         * tree-pretty-print.c (dump_generic_node): Don't handle
3273         EXIT_BLOCK_EXPR and LABELED_BLOCK_EXPR.
3274         * tree.def (EXIT_BLOCK_EXPR): Moved to java-tree.def.
3275         (LABELED_BLOCK_EXPR): Likewise.
3276         * tree.h (LABELED_BLOCK_LABEL): Moved to java-tree.h.
3277         (LABELED_BLOCK_BODY): Likewise.
3278         (EXIT_BLOCK_LABELED_BLOCK): Likewise.
3279         (EXIT_BLOCK_RETURN): Removed.
3280
3281 2004-11-24  Steven Bosscher  <stevenb@suse.de>
3282
3283         * cfgrtl.c (rtl_delete_block): Fix comment.
3284         * emit-rtl.c (remove_unnecessary_notes): Die if we see BLOCK_BEG
3285         or BLOCK_END insn notes.
3286         * jump.c (squeeze_notes): Likewise.
3287         * haifa-sched.c (reemit_notes): Don't "re-emit" EH_REGION_BEG and
3288         EH_REGION_END notes, we never have them to begin with.
3289         * sched-deps.c (sched_analyze_insn): When updating loop notes,
3290         verify that we have indeed only recorded loop notes.
3291         (sched_analyze): Die if we see EH_REGION_BEG or EH_REGION_END notes.
3292         Only record loop notes.
3293
3294         * cfgexpand.c (tree_expand_cfg): Fix comment.
3295
3296         * passes.c (rest_of_compilation): Don't do a second call to
3297         convert_from_eh_region_ranges from here, it's already called
3298         from cfgexpand.c.
3299         * except.c (resolve_fixup_regions): Remove.
3300         (remove_fixup_regions): Remove.
3301         (convert_from_eh_region_ranges_1): Remove.
3302         (convert_from_eh_region_ranges): Remove the case where EH is
3303         not already lowered at the tree level.  We always lower there.
3304
3305 2004-11-24  Paolo Bonzini  <bonzini@gnu.org>
3306
3307         PR c++/16882
3308         * tree.c (make_vector_type): Move qualifiers to the vector type,
3309         use the inner type's main variant and build a main variant for
3310         the vector type if necessary.
3311         (type_hash_eq): Check a vector type's TYPE_VECTOR_SUBPARTS.
3312
3313 2004-11-24  Eric Botcazou  <ebotcazou@libertysurf.fr>
3314
3315         * target.h (late_rtl_prologue_epilogue): Remove.
3316         * target-def.h (TARGET_LATE_RTL_PROLOGUE_EPILOGUE): Remove.
3317         * system.h: Poison TARGET_LATE_RTL_PROLOGUE_EPILOGUE.
3318         * passes.c (rest_of_handle_prologue_epilogue): Remove and move
3319         remaining bits to...
3320         (rest_of_handle_flow2): ...here.
3321         (rest_of_compilation): Remove call to rest_of_handle_prologue_epilogue.
3322         * doc/tm.texi (TARGET_LATE_RTL_PROLOGUE_EPILOGUE): Remove.
3323
3324 2004-11-23  Mark Mitchell  <mark@codesourcery.com>
3325
3326         * hwint.h (HOST_LONG_LONG_FORMAT): New macro.  Use it throughout.
3327         * config/i386/xm-mingw32.h (HOST_LONG_LONG_FORMAT): Define.
3328         * doc/hostconfig.texi (HOST_LONG_LONG_FORMAT): Document.
3329
3330 2004-11-24  Daniel Jacobowitz  <dan@codesourcery.com>
3331
3332         * config/i386/i386.c (override_options): Move
3333         SUBTARGET_OVERRIDE_OPTIONS before defaulting
3334         flag_omit_frame_pointer.
3335
3336 2004-11-23  Richard Henderson  <rth@redhat.com>
3337
3338         * rtl.h (validate_subreg): Declare.
3339         * emit-rtl.c (validate_subreg): New.
3340         (gen_rtx_SUBREG): Use it.
3341         * simplify-rtx.c (simplify_subreg): Likewise.
3342         (simplify_gen_subreg): Likewise.  Remove duplicate asserts.
3343         * expr.c (emit_move_insn_1): Tidy complex move code.  Use memory
3344         fallback whenever gen_realpart/gen_imagpart would not be able to
3345         create SUBREGs.
3346
3347 2004-11-23  Richard Henderson  <rth@redhat.com>
3348
3349         * expmed.c (extract_bit_field): Use simplify_gen_subreg instead of
3350         hard-coding avoiding calls to gen_rtx_SUBREG.  Split complex return
3351         modes to CONCAT.
3352
3353 2004-11-23  Diego Novillo  <dnovillo@redhat.com>
3354
3355         PR tree-optimization/18618
3356         * tree-into-ssa.c (DEF_VEC_MALLOC_P(basic_block)): Declare.
3357         (insert_phi_nodes_for): Change third argument to VEC(basic_block).
3358         * tree-ssa-dom.c (avail_exprs_stack): Change type to VEC(tree_on_heap).
3359         Update all users.
3360         (stmts_to_rescan): Likewise.
3361         (const_and_copies_stack): Likewise.
3362         (nonzero_vars_stack): Likewise.
3363         (vrp_variables_stack): Likewise.
3364
3365 2004-11-23  Richard Henderson  <rth@redhat.com>
3366
3367         * cse.c (record_jump_cond_subreg): New.
3368         (record_jump_cond): Use it instead of gen_lowpart.
3369
3370 2004-11-23  Daniel Jacobowitz  <dan@codesourcery.com>
3371             Joseph Myers  <joseph@codesourcery.com>
3372
3373         * config/sol2-c.c (solaris_register_pragmas): Use
3374         c_register_pragma_with_expansion.
3375         * config/sol2.h (HANDLE_PRAGMA_PACK_WITH_EXPANSION): Define.
3376         * c-pragma.c (c_register_pragma): Update call to
3377         cpp_register_pragma.
3378         (c_register_pragma_with_expansion): New function.
3379         (init_pragma): Honor HANDLE_PRAGMA_PACK_WITH_EXPANSION.
3380         * c-pragma.h (c_register_pragma_with_expansion): New prototype.
3381         * doc/extend.texi (Solaris Pragmas): Mention macro expansion for
3382         #pragma align.
3383         * doc/tm.texi (c_register_pragma_with_expansion,
3384         HANDLE_PRAGMA_PACK_WITH_EXPANSION): Document.
3385
3386 2004-11-23  Richard Henderson  <rth@redhat.com>
3387
3388         * combine.c (gen_lowpart_for_combine): Factor out mode of x as well
3389         as mode sizes into local temporaries.  Unify failure path.
3390
3391 2004-11-23  Richard Henderson  <rth@redhat.com>
3392
3393         * emit-rtl.c, rtl.h (subreg_hard_regno): Remove.
3394         * caller-save.c (mark_set_regs): Use subreg_regno instead.
3395         * final.c (alter_subreg): Likewise.
3396         * local-alloc.c (reg_is_born): Likewise.
3397
3398 2004-11-23  Richard Henderson  <rth@redhat.com>
3399
3400         * simplify-rtx.c (simplify_subreg): Use subreg_regno_offset directly
3401         instead of using a SUBREG temporary.
3402
3403 2004-11-23  Kazu Hirata  <kazu@cs.umass.edu>
3404
3405         * tree-cfg.c (tree_forwarder_block_p): Speed up by reordering
3406         two checks.
3407
3408 2004-11-23  Zack Weinberg  <zack@codesourcery.com>
3409
3410         * function.h (struct function): Remove calls_longjmp.
3411         (current_function_calls_longjmp): Delete.
3412         * tree.h (ECF_LONGJMP): Delete.
3413         (ECF_SIBCALL, ECF_PURE, ECF_SP_DEPRESSED, ECF_ALWAYS_RETURN)
3414         (ECF_LIBCALL_BLOCK): Everybody slide down one.
3415         (ECF_CONST, ECF_NORETURN, ECF_SIBCALL): Clarify comments.
3416         * builtins.c (expand_builtin_longjmp): Don't set
3417         current_function_calls_longjmp.
3418         * calls.c (special_function_p): Mark longjmp and siglongjmp
3419         with ECF_NORETURN, not ECF_LONGJMP.
3420         (emit_call_1, expand_call, emit_library_call_value_1):
3421         Don't check for ECF_LONGJMP.
3422         * tree-cfg.c (make_exit_edges, is_ctrl_altering_stmt)
3423         (need_fake_edge_p): Likewise.
3424
3425         * config/avr/avr.h, config/ip2k/ip2k.h: Don't define NON_SAVING_SETJMP.
3426         * system.h: Poison NON_SAVING_SETJMP.
3427         * function.c (use_register_for_decl)
3428         * gcse.c (compute_hash_table_work, compute_store_table)
3429         * postreload-gcse.c (record_opr_changes)
3430         * reload.c (find_equiv_reg)
3431         * reload1.c (reload)
3432         * config/i386/i386.c (ix86_can_use_return_insn_p):
3433         Remove code conditional on NON_SAVING_SETJMP.
3434         * doc/tm.texi: Delete documentation of NON_SAVING_SETJMP.
3435
3436         * config/i386/sysv3.h: Delete file.
3437         * config/i386/i386.c (ix86_svr3_asm_out_constructor): Delete.
3438
3439 2004-11-23  Dorit Naishlos  <dorit@il.ibm.com>
3440
3441         * tree-vectorizer.c (vect_analyze_operations): Don't vectorize if
3442         the vectorization factor is greater than the iteration count.
3443         (vect_gen_niters_for_prolog_loop): No need to calculate min if the
3444         iteration count is known.
3445
3446         (vect_build_symbol_bound): Removed. Its functionality moved to
3447         vect_generate_tmps_on_preheader.
3448         (vect_generate_tmps_on_preheader): Moved content of
3449         vect_build_symbol_bound here instead of calling it.  Changed some
3450         variables names.
3451
3452         (vect_build_loop_niters): We don't expect a new_bb to be generated -
3453         use gcc_assert.
3454         (vect_gen_niters_for_prolog_loop): Likewise.
3455         (vect_gen_niters_for_prolog_loo): Likewise.
3456
3457         (slpeel_make_loop_iterate_ntimes): Use buildN instead of build.
3458         (slpeel_add_loop_guard): Likewise.
3459         (slpeel_tree_peel_loop_to_edge): Likewise.
3460         (vect_do_peeling_for_alignment): Likewise.
3461
3462         (vect_get_first_index): Missing space.
3463
3464 2004-11-23  Ulrich Weigand  <uweigand@de.ibm.com>
3465
3466         * config/s390/s390.md ("*iordi3"): Mark commutative.
3467         ("*iorsi3_zarch", "*iorsi3_esa"): Likewise.
3468
3469 2004-11-23  Kazu Hirata  <kazu@cs.umass.edu>
3470
3471         * tree-phinode.c (resize_phi_node): Abort when LEN is strictly
3472         greater than PHI_ARG_CAPACITY.
3473         (reserve_phi_args_for_new_edge): Initialize the new PHI
3474         argument to NULL_TREE.  Increment PHI_NUM_ARGS.
3475         (add_phi_arg): Add a PHI argument to the slot given by
3476         E->dest_idx.
3477         (remove_phi_arg_num): Do not write to PHI_ARG_EDGE.
3478         * tree-flow-inline (phi_arg_from_edge): Return E->dest_idx.
3479         * tree-ssa.c (ssa_redirect_edge): Check for a missing PHI
3480         argument by looking at PHI_ARG_DEF.
3481         (verify_phi_args): Check for a missing PHI argument.  Remove
3482         the check for duplicate PHI arguments.
3483         * tree.h (PHI_ARG_EDGE): Redefine in terms of EDGE_PRED.
3484         (phi_arg_d): Remove e.
3485
3486         * tree-cfg.c (tree_try_redirect_by_replacing_jump): Speed up
3487         by restricting to the case with two outgoing edges.
3488
3489 2004-11-23  Andreas Krebbel  <krebbel1@de.ibm.com>
3490
3491         * config/s390/s390.c (s390_backchain_string): Removed.
3492         (s390_return_addr_rtx, s390_back_chain_rtx, s390_frame_info)
3493         (s390_emit_prologue, s390_va_start, s390_gimplify_va_arg):
3494         Changed users of TARGET_BACKCHAIN, TARGET_NO_BACKCHAIN and
3495         TARGET_KERNEL_BACKCHAIN to reflect the new options.
3496         * config/s390/s390.h (MASK_BACKCHAIN, MASK_PACKED_STACK): New macros.
3497         (TARGET_KERNEL_BACKCHAIN): Removed.
3498         (TARGET_BACKCHAIN): Former triple state option change to a target flag.
3499         (TARGET_PACKED_STACK): New macro.
3500         (TARGET_SWITCHES): New switches added.
3501         (TARGET_OPTIONS): "backchain", "no-backchain" and "kernel-backchain"
3502         removed.
3503         (DYNAMIC_CHAIN_ADDRESS): Use TARGET_PACKED_STACK.
3504         * config/s390/s390.md ("allocate_stack", "restore_stack_block")
3505         ("save_stack_nonlocal", "restore_stack_nonlocal"): Modified to reflect
3506         the change in target switch semantics.
3507         * config/s390/tpf.h (TARGET_DEFAULT_BACKCHAIN): Removed.
3508         (TARGET_DEFAULT): MASK_BACKCHAIN added.
3509         * doc/invoke.texi: Added documentation for the new/changed options.
3510
3511 2004-11-23  Uros Bizjak  <uros@kss-loka.si>
3512
3513         PR rtl-optimization/18614
3514         * simplify-rtx.c (simplify_binary_operation): Do not
3515         simplify inner elements of constant arguments of
3516         VEC_CONCAT insn.
3517
3518 2004-11-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
3519
3520         * gthr-solaris.h (__gthread_recursive_mutex_init_function): Use
3521         0 instead of NULL.
3522
3523 2004-11-23  Kazu Hirata  <kazu@cs.umass.edu>
3524
3525         * tree-phinode.c (make_phi_node): Use a new variable,
3526         capacity, to receive the return value of ideal_phi_node_len.
3527
3528 2004-11-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
3529
3530         * gthr-solaris.h (__gthread_recursive_mutex_t): New type.
3531         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Define to
3532         __gthread_recursive_mutex_init_function.
3533         (__gthread_key_create): Properly cast -1.
3534         (__gthread_recursive_mutex_init_function): New function.
3535         (__gthread_recursive_mutex_lock): Rewrite.
3536         (__gthread_recursive_mutex_trylock): Likewise.
3537         (__gthread_recursive_mutex_unlock): Likewise.
3538
3539 2004-11-23  Ralf Corsepius <ralf.corsepius@rtems.org>
3540
3541         * config/c4x/t-rtems: New.
3542         * config.gcc: Reflect having added c4x/t-rtems.
3543
3544 2004-11-23  Dorit Naishlos <dorit@il.ibm.com>
3545
3546         PR tree-opt/18403
3547         PR tree-opt/18505
3548         * tree-vectorizer.c (vect_create_data_ref_ptr): Use
3549         lang_hooks.types.type_for_size instead of integer_type_node for the
3550         type of ptr_update.
3551
3552 2004-11-23  Ralf Corsepius <ralf.corsepius@rtems.org>
3553
3554         * config.gcc (h8300-*-rtems*): Use h8300/t-rtems.
3555
3556 2004-11-23  Ralf Corsepius <ralf.corsepius@rtems.org>
3557
3558         * config/arm/t-rtems: New.
3559         * config.gcc: Reflect having added arm/t-rtems.
3560
3561 2004-11-23  Kazu Hirata  <kazu@cs.umass.edu>
3562
3563         * tree-cfg.c (tree_execute_on_growing_pred): New.
3564         (tree_cfg_hooks): Add tree_execute_on_growing_pred.
3565         * tree-flow.h: Add a prototype for
3566         reserve_phi_args_for_new_edge.
3567         * tree-phinodes.c (reserve_phi_args_for_new_edge): New.
3568         (add_phi_arg): Don't resize a PHI array.
3569
3570 2004-11-23  Ralf Corsepius <ralf.corsepius@rtems.org>
3571
3572         * config.gcc: Add avr-*-rtems*.
3573         * config/avr/t-rtems: New.
3574         * config/avr/rtems.h: New.
3575
3576 2004-11-22  Daniel Berlin  <dberlin@dberlin.org>
3577
3578         * df.c (dataflow_set_a_op_b): Remove reslt parameter, since it's
3579         always the same as op1.  Use bitmap_ior_into and bitmap_and_into.
3580         Add comment to function.
3581
3582 2004-11-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3583
3584         PR pch/14940
3585         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __hppa__.
3586
3587         PR rtl-optimization/14838
3588         * emit-rtl.c (get_first_nonnote_insn): Don't assume first insn is a
3589         note.
3590         (get_last_nonnote_insn): Don't assume last insn is a note.
3591
3592 2004-11-22  Roger Sayle  <roger@eyesopen.com>
3593
3594         * fold-const.c (nondestructive_fold_binary_to_constant): Rename
3595         to fold_binary_to_constant.
3596         (nondestructive_fold_unary_to_constant): Likewise, rename to
3597         fold_unary_to_constant.
3598         (fold_relational_hi_lo): Update call to fold_binary_to_constant.
3599         * tree.h (nondestructive_fold_binary_to_constant): Update prototype.
3600         (nondestructive_fold_unary_to_constant): Likewise.
3601         * tree-ssa-ccp.c (ccp_fold): Update calls to fold_unary_to_constant
3602         and fold_binary_to_constant.
3603         * tree-ssa-loop-niter.c (EXEC_BINARY, EXEC_UNARY): Delete macros.
3604         (inverse, number_of_iterations_cond): Replace uses of EXEC_BINARY
3605         and EXEC_UNARY with calls to fold_*nary_to_constant.
3606         * tree-ssa-loop-ivopts.c (EXEC_BINARY, EXEC_UNARY): Delete macros.
3607         (idx_find_step): Replace uses of EXEC_BINARY with calls to
3608         fold_binary_to_constant.
3609
3610 2004-11-22  Nick Clifton  <nickc@redhat.com>
3611
3612         * sbitmap.c (sbitmap_union_of_preds): Remove redundant
3613         initialisation of 'e'.
3614
3615 2004-11-22  Roger Sayle  <roger@eyesopen.com>
3616
3617         * config/i386/i386.h (TARGET_USE_FANCY_MATH_387): New macro.
3618         * config/i386/i386.c (override_options):  Set MASK_NO_FANCY_MATH_387
3619         automatically for targets without TARGET_80387.
3620         * config/i386/i386.md (sqrtsf2, sqrtsf2_1, sqrtsf2_i387, sqrtdf2,
3621         sqrtdf2_1, sqrtdf2_i387, *sqrtextendsfdf2, sqrtxf2,
3622         *sqrtextenddfxf2, *sqrtextendsfxf2, fpremxf4, fmodsf3, fmoddf3,
3623         fmodxf3, fprem1xf4, dremsf3, dremdf3, dremxf3, *sindf2, *sinsf2,
3624         *sinextendsfdf2, *sinxf2, *cosdf2, *cossf2, *cosextendsfdf2,
3625         *cosxf2, sincosdf3, sincossf3, *sincosextendsfdf3, sincosxf3,
3626         *tandf3_1, tandf2, *tansf3_1, tansf2, *tanxf3_1, tanxf2,
3627         atan2df3_1, atan2df3, atandf2, atan2sf3_1, atan2sf3, atansf2,
3628         atan2xf3_1, atan2xf3, atanxf2, asindf2, asinsf2, asinxf2,
3629         acosdf2, acossf2, acosxf2, fyl2x_xf3, logsf2, logdf2, logxf2,
3630         log10sf2, log10df2, log10xf2, log2sf2, log2df2, log2xf2,
3631         fyl2xp1_xf3, log1psf2, log1pdf2, log1pxf2, *fxtractxf3, logbsf2,
3632         logbdf2, logbxf2, ilogbsi2, *f2xm1xf2, *fscalexf4, expsf2,
3633         expdf2, expxf2, exp10sf2, exp10df2, exp10xf2, exp2sf2, exp2df2,
3634         exp2xf2, expm1df2, expm1sf2, expm1xf2, frndintxf2, rintdf2,
3635         rintsf2, rintxf2, frndintxf2_floor, floordf2, floorsf2,
3636         floorxf2, frndintxf2_ceil, ceildf2, ceilsf2, ceilxf2,
3637         frndintxf2_trunc, btruncdf2, btruncsf2, btruncxf2,
3638         frndintxf2_mask_pm, nearbyintdf2, nearbyintsf2, nearbyintxf2):
3639         Simplify conditionals using TARGET_USE_FANCY_MATH_387.
3640
3641 2004-11-22  Dale Johannesen  <dalej@apple.com>
3642
3643         * config/darwin.h (JUMP_TABLES_IN_TEXT_SECTION):  Conditionalize
3644         properly and comment.
3645
3646 2004-11-22  James A. Morrison  <phython@gcc.gnu.org
3647
3648         * config/sparc/sparc.c: Include insn-codes.h and langhooks.h.
3649         (sparc_init_builtins): New function.
3650         (sparc_init_vis_builtins): Create builtin functions for VIS
3651         instructions.
3652         (sparc_expand_builtin): Expand builtin functions for VIS instructions.
3653         (TARGET_INIT_BUILTINS): Define to sparc_init_builtins.
3654         (TARGET_EXPAND_BUILTIN): Define to sparc_expand_builtin.
3655         (def_builtin): New macro for creating builtin functions.
3656         (P): New mode macro for pointer types.
3657         (UNSPEC_FPACK16, UNSPEC_FPACK32, UNSPEC_FPACKFIX, UNSPEC_FEXPAND,
3658         UNSPEC_FPMERGE, UNSPEC_MUL16AL, UNSPEC_MUL8UL, UNSPEC_MULDUL,
3659         UNSPEC_ALIGNDATA, UNSPEC_ALIGNADDR, UNSPEC_PDIST): New constants.
3660         (fpack16_vis, fpackfix_vis, fpack32_vis, fexpand_vis, fpmerge_vis,
3661         fmul8x16_vis, fmul8x16au_vis, fmul8x16al_vis, fmul8sux16_vis,
3662         fmul8ulx16_vis, fmuld8sux16_vis, fmuld8ulx16_vis, pdist_vis,
3663         faligndata<V64:mode>_vis, alignaddr<P:mode>_vis): New patterns.
3664
3665 2004-11-22  Devang Patel  <dpatel@apple.com>
3666
3667         * tree-if-conv.c (clean_predicate_lists): Clean all basic blocks.
3668
3669 2004-11-22  Devang Patel  <dpatel@apple.com>
3670
3671         * tree-if-conv.c (if_convertable_phi_p): Rename to ...
3672         (if_convertible_phi_p): ... new name.
3673         (if_convertable_modify_expr_p): Rename to ...
3674         (if_convertible_modify_expr_p): ... new name.
3675         (if_convertable_stmt_p): Rename to ...
3676         (if_convertible_stmt_p): ... new name.
3677         (if_convertable_bb_p): Rename to ...
3678         (if_convertible_bb_p): ... new name.
3679         (if_convertable_loop_p): Rename to ...
3680         (if_convertible_loop_p): ... new name.
3681
3682 2004-11-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
3683
3684         PR target/18444
3685         * configure.ac (threading): Accept 'posix95'.
3686         * configure: Regenerate.
3687         * config.gcc (i[34567]86-*-solaris2*): On Solaris up to 2.6,
3688         include sol26.h and default to posix95 threads if have_pthread_h.
3689         (sparc-*-solaris2*): Likewise.
3690         * gthr.h: Include gthr-posix95.h if _PTHREADS95 is defined.
3691         * gthr-posix95.h: New file.
3692         * config/sol26.h: New file.
3693         * doc/install.texi (--enable-threads): Document 'posix95'.
3694
3695 2004-11-23  Ben Elliston  <bje@au.ibm.com>
3696
3697         * pointer-set.h (pointer_set_contains): Remove.
3698         * pointer-set.c (pointer_set_contains): Likewise.
3699
3700 2004-11-22  Dale Johannesen  <dalej@apple.com>
3701
3702         * calls.c (expand_call): Do not call preserve_temp_slots.
3703
3704 2004-11-22  Kazu Hirata  <kazu@cs.umass.edu>
3705
3706         * tree-flow.h: Remove the prototype for remove_phi_arg.
3707         Add a prototype for remove_phi_args.
3708         * tree-phinodes.c (remove_phi_arg): Remove.
3709         (remove_phi_args): New.
3710         * tree-ssa.c (ssa_remove_edge): Call remove_phi_args instead
3711         of remove_phi_arg.
3712
3713         * cfg.c (unchecked_make_edge): Call execute_on_growing_pred
3714         after making an edge.
3715         (remove_edge): Call execute_on_shrinking_pred before removing
3716         an edge.
3717         (redirect_edge_succ): Call execute_on_growing_pred and
3718         execute_on_shrinking_pred.
3719         * cfghooks.c (execute_on_growing_pred): New.
3720         (execute_on_shrinking_pred): Likewise.
3721         * cfghooks.h (cfg_hooks): Add execute_on_growing_pred and
3722         execute_on_shrinking_pred.
3723         Add prototypes for execute_on_growing_pred and
3724         execute_on_shrinking_pred.
3725         * cfgrtl.c (rtl_cfg_hooks): Add NULL hooks to
3726         execute_on_growing_pred and execute_on_shrinking_pred.
3727         (cfg_layout_rtl_cfg_hook): Likewise.
3728         * tree-cfg.c (tree_cfg_hooks): Likewise.
3729
3730         * tree-cfg.c (tree_execute_on_shrinking_pred): New.
3731         (tree_cfg_hooks): Use it.
3732         * tree-ssa.c (ssa_remove_edge): Don't call remove_phi_args.
3733         (ssa_redirect_edge): Don't call remove_phi_arg_num.
3734
3735         * tree-phinodes.c (remove_phi_arg_num): Make it static.
3736         * tree-flow.h: Remove the corresponding prototype.
3737
3738         * tree-ssa.c (ssa_remove_edge): Remove.
3739         * tree-flow.h: Remove the corresponding prototype.
3740         * tree-cfg.c: Replace ssa_remove_edge with remove_edge.
3741         * basic-block.h: Likewise.
3742         * tree-if-conv.c: Likewise.
3743         * tree-ssa-threadupdate.c: Likewise.
3744
3745 2004-11-23  Ben Elliston  <bje@au.ibm.com>
3746
3747         * doc/cfg.texi (Maintaining the CFG): Use @ftable instead of
3748         @table to list the BSI methods.  Use individual @findex directives
3749         instead of one with a comma-separated list of index entries.
3750
3751 2004-11-22  Zdenek Dvorak  <dvorakz@suse.cz>
3752
3753         PR tree-optimization/18529
3754         * fold-const.c (fold_to_nonsharp_ineq_using_bound): New function.
3755         (simple_operand_p): Use STRIP_NOPS.  Consider SSA names simple.
3756         (fold): Call fold_to_nonsharp_ineq_using_bound.
3757         * tree-ssa-loop-niter.c (simplify_replace_tree): New function.
3758         (number_of_iterations_cond): Fold the expressions before futher
3759         processing.
3760         (tree_simplify_using_condition): Handle case when cond or expr is
3761         an EQ_EXPR specially.
3762
3763 2004-11-22 Daniel Berlin  <dberlin@dberlin.org>
3764
3765         * tree-ssa.c (verify_ssa): SSA_OP_ALL_USES should be
3766         SSA_OP_ALL_USES | SSA_OP_ALL_KILLS for verification purposes.
3767
3768 2004-11-22  David Edelsohn  <edelsohn@gnu.org>
3769             Fariborz Jahanian  <fjahanian@apple.com>
3770
3771         * config/rs6000/rs6000.c (rs6000_return_in_memory): Test
3772         TARGET_ALTIVEC_ABI.
3773         (function_arg_boundary): Align 8 to 16 byte vectors like SPE.
3774         Align 16 byte and larger vectors like Altivec.
3775         (function_arg_advance): Pass any 16 byte vector like Altivec vector.
3776         (function_arg): Same.
3777         (rs6000_pass_by_references): Test TARGET_ALTIVEC_ABI.
3778
3779 2004-11-22  Andrew Pinski  <pinskia@physics.uc.edu>
3780
3781         PR tree-opt/18572
3782         * tree-sra.c (scalarize_init): Unshare the rhs before gimplifying
3783         it.
3784
3785 2004-11-22  Richard Henderson  <rth@redhat.com>
3786
3787         * function.c (assign_parm_setup_block): Revert 11-13 change to
3788         forcably re-mode a (possibly BLKmode) hard register.
3789
3790 2004-11-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
3791
3792         * config/sparc/sparc.c (mem_min_alignment): Check MEM_ALIGN.
3793
3794 2004-11-22  David Edelsohn  <edelsohn@gnu.org>
3795
3796         * config/rs6000/power4.md: Remove delay between dispatch and issue
3797         associated with dispatch group slots 3 and 4.
3798         * config/rs6000/power5.md: Same.
3799
3800 2004-11-21  Jeff Law  <law@redhat.com>
3801
3802         * cfg.c (cached_make_edge): Use find_edge rather than an inlined
3803         variant.
3804         * cfgbuild.c (make_edges): Likewise.
3805         * cfghooks.c (can_duplicate_block_p): Likewise.
3806         * cfgloop.c (loop_latch_edge): Likewise.
3807         * cfgloopmanip.c (force_single_succ_latches): Likewise.
3808         * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
3809         * predict.c (predict_loops, propagate_freq): Likewise.
3810         * tracer.c (tail_duplicate): Likewise.
3811         * tree-cfg.c (disband_implicit_edges): Likewise.
3812         (tree_forwarder_block_p, tree_flow_call_edges_add): Likewise.
3813
3814 2004-11-22  Nick Clifton  <nickc@redhat.com>
3815
3816         * sbitmap.c (sbitmap_union_of_preds): Remove redundant
3817         initialisation of 'e'.
3818
3819 2004-11-22  Kazu Hirata  <kazu@cs.umass.edu>
3820
3821         PR rtl-optimization/18599
3822         * regrename.c (copyprop_hardreg_forward): Speed up by putting
3823         BB_VISITED flags on basic blocks as we process them.
3824
3825 2004-11-22  Nathan Sidwell  <nathan@codesourcery.com>
3826
3827         PR target/18531
3828         * config/rs6000/altivec.md (VI_char): New mode attribute.
3829         (addv16qi3, addv8hi3, addv4ai3): Replace with ...
3830         (add<mode>3): ... this.
3831         (subv16qi3, subv8hi3, subv4ai3): Replace with ...
3832         (sub<mode>3): ... this.
3833         (smaxv16qi3, smaxv8hi3, smaxv4ai3): Replace with ...
3834         (smax<mode>3): ... this.
3835         (sminv16qi3, sminv8hi3, sminv4ai3): Replace with ...
3836         (smin<mode>3): ... this.
3837         (umaxv16qi3, umaxv8hi3, umaxv4ai3): Replace with ...
3838         (umax<mode>3): ... this.
3839         (uminv16qi3, uminv8hi3, uminv4ai3): Replace with ...
3840         (umin<mode>3): ... this.
3841         (andv16qi3, andv8hi3, andv4ai3): Replace with ...
3842         (and<mode>3): ... this.
3843         (iorv16qi3, iorv8hi3, iorv4ai3): Replace with ...
3844         (ior<mode>3): ... this.
3845         (xorv16qi3, xorv8hi3, xorv4ai3): Replace with ...
3846         (xor<mode>3): ... this.
3847         (andv16qi3, andv8hi3, andv4ai3): Replace with ...
3848         (and<mode>3): ... this.
3849         (iorv16qi3, iorv8hi3, iorv4ai3): Replace with ...
3850         (ior<mode>3): ... this.
3851         (altivec_vnor): Replace with ...
3852         (altivec_nor<mode>): ... this.
3853         (one_cmplv16qi2, one_cmplv8hi2, one_complv4ai2): Replace with ...
3854         (one_cmpl<mode>2): ... this.
3855         (altivec_vandc): New expander.
3856         (*andc<mode>3): New insn.
3857         * config/rs6000/rs6000.c (bdesc_2arg): Adjust for new insn names.
3858
3859 2004-11-22  Dorit Naishlos  <dorit@il.ibm.com>
3860
3861         PR tree-opt/18536
3862         * tree-vectorizer.c (make_loop_iterate_ntimes): Use type of niters when
3863         creating iv instead of integer_type.
3864         (vect_build_loop_niters): Remove redundant code.
3865         (vect_transform_loop_bound): Removed (duplicates functionality of
3866         make_loop_iterate_ntimes.
3867         (vect_gen_niters_for_prolog_loop): Add documentation. Call
3868         lang_hooks.types.type_for_size to create a type of the required size.
3869         Use that type instead of integer_type. Remove redundant code.
3870         (vect_update_niters_after_peeling): Use type of niters instead of
3871         integer_type.
3872         (vect_transform_loop): Unify handling of known and unknown loop bound
3873         cases. Call make_loop_iterate_ntimes instead of
3874         vect_transform_loop_bound.
3875
3876 2004-11-22  Andrew Pinski  <pinskia@physics.uc.edu>
3877
3878         PR target/18217
3879         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Move darwin-fallback.c to
3880         (LIB2ADDEH): Here.
3881
3882 2004-11-22  Dorit Naishlos  <dorit@il.ibm.com>
3883
3884         PR tree-opt/18544
3885         * tree-vectorizer.c (vect_analyze_data_refs): Fail if memtag not found.
3886
3887 2004-11-22 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
3888
3889         * config.gcc: Use t-slibgcc-elf to build libgcc_s.so on
3890         m32r*linux.
3891         * config/m32r/t-linux (SHLIB_MAPFILES): Override to use
3892         m32r/libgcc-glibc.ver.
3893         * config/m32r/libgcc-glibc.ver: Add New file.
3894
3895 2004-11-22  Nathan Sidwell  <nathan@codesourcery.com>
3896
3897         * bitmap.h (struct bitmap_obstack): New obstack type.
3898         (struct bitmap_head_def): Replace using_obstack with obstack
3899         pointer.
3900         (bitmap_default_obstack): New.
3901         (bitmap_initialize): Make inline, does not do allocation.
3902         (bitmap_release_memory): Remove.
3903         (bitmap_obstack_initialize, bitmap_obstack_release): Declare.
3904         (bitmap_obstack_alloc, bitmap_malloc_alloc, bitmap_gc_alloc,
3905         bitmap_obstack_free, bitmap_malloc_free): Declare.
3906         (BITMAP_OBSTACK_ALLOC, BITMAP_GGC_ALLOC, BITMAP_XMALLOC): Adjust.
3907         (BITMAP_FREE): Replace with ...
3908         (BITMAP_OBSTACK_FREE): ... this.
3909         (BITMAP_XFREE): Adjust.
3910         (BITMAP_INIT_ONCE): Remove.
3911         * bitmap.c (bitmap_obstack, bitmap_obstack_init, bitmap_free: Remove.
3912         (bitmap_default_obstack): New.
3913         (bitmap_elem_to_freelist): Adjust.
3914         (bitmap_element_allocate): Adjust. Break initialization into ...
3915         (bitmap_obstack_initialize): ... here.
3916         (bitmap_release_memory): Replace with ...
3917         (bitmap_obstack_release): ... this.
3918         (bitmap_obstack_alloc, bitmap_malloc_alloc, bitmap_gc_alloc,
3919         bitmap_obstack_free, bitmap_malloc_free): New.
3920         (bitmap_ior_and_compl, bitmap_ior_and_compl_into): Use
3921         bitmap_initialize.
3922         (bitmap_initialize): Move to bitmap.h.
3923         * gengtype.c (open_base_files): Add obstack.h to ifiles.
3924         * Makefile.in (BASIC_BLOCK_H, REGS_H): Add obstack.h.
3925         * basic-block.h (INIT_REG_SET): Allocate from reg_obstack.
3926         (INITIALIZE_REG_SET): Remove.
3927         (FREE_REG_SET): Use BITMAP_OBSTACK_FREE.
3928         (INIT_ONCE_REG_SET, MAX_REGNO_REG_SET): Remove.
3929         (flow_obstack): Do not declare.
3930         (reg_obstack): Declare.
3931         * regs.h: Include obstack.h.
3932         * tree-optimize.c (tree_rest_of_compilation): Initialize and
3933         release bitmap obstack here.
3934         * bb-reorder.c: #include regs, not basic-block.
3935         (fix_crossing_conditional_branches): Allocate regsets from
3936         reg_obstack.
3937         * bt-load.c: Do not inlude bitmap.h, sbitmap.h, basic-block.h or
3938         obstack.h.
3939         * caller-save.c: Include regs.h earlier.
3940         * cfg.c: Do not include basic-block.h or obstack.h.
3941         (reg_obstack): Define.
3942         * cfganal.c: Include obstack.h
3943         * cfgcleanyp.c: Do not include basic-block.h. Include regs.h
3944         earlier.
3945         * cfglayout.c: Do not include obstack.h.
3946         (flow_obstack): Remove declaration.
3947         (cfg_layout_duplicate_bb): Use reg_obstack.
3948         * cfgloop.c, cfgloopanal.c, cfgloopmanip.c: Include obstack.h.
3949         * cfgrtl.c (rtl_split_block): Use reg_obstack.
3950         (force_nonfallthru_and_redirect, rtl_split_edge): Likewise.
3951         (safe_insert_insn_on_edge): Use OBSTACK_ALLOC_REG_SET, adjust.
3952         (cfg_layout_split_edge): Use reg_obstack.
3953         * cse.c: Include regs.h earlier.
3954         * ddg.c: Do not include basic-block.h.
3955         * dominance.c: Inlude obstack.h.
3956         * flow.c (update_life_info): Use OBSTACK_ALLOC_REG_SET, adjust.
3957         (calculate_global_regs_live): Likewise.
3958         (allocate_bb_life_data): Use reg_obstack.
3959         (init_propagate_block_info): Use OBSTACK_ALLOC_REGSET.
3960         * global.c: Do not include basic-block.h.
3961         (build_insn_chain): Use OBSTACK_ALLOC_REG_SET, adjust.
3962         * graph.c: Include obstack.h.
3963         * haifa-sched.c: Do not include basic-block.h.
3964         * ifcvt.c: Use OBSTACK_ALLOC_REG_SET, adjust.
3965         * local-alloc.c: Do not include basic-block.h.
3966         * loop-init.c, loop-invariant.c: Include obstack.h.
3967         * loop-iv.c: Likewise.
3968         (simplify_using_initial_values): Use OBSTACK_ALLOC_REG_SET,
3969         adjust.
3970         * loop-unroll.c, loop-unswitch.c: Inlude obstack.h.
3971         * modulo-sched.c: Do not include basic-block.h.
3972         * passes.c (rest_of_handle_final): Do not call
3973         regset_release_memory.
3974         * ra-debug.c: Include regs.h earlier. Do not include
3975         basic-block.h.
3976         * recog.c (peephole2_optimize): Use OBSTACK_ALLOC_REG_SET, adjust.
3977         * regclass.c (init_reg_sets): Do not call INIT_ONCE_REG_SET.
3978         (allocate_reg_info): Do not call MAX_REGNO_REG_SET.
3979         (regset_release_memory): Remove.
3980         * resource.c: Do not include basic-block.h.
3981         * rtlanal.c: Do not include basic-block.h.
3982         * sbitmap.c: Include obstack.h.
3983         * sched-deps.c: Do not include basic-block.h.
3984         (reg_pending_sets_head, reg_pending_clobbers_head,
3985         reg_pending_uses_head): Remove.
3986         (init_deps_global): Use OBSTACK_ALLOC_REG_SET.
3987         * sched-ebb.c: Do not include basic-block.h.
3988         * sched-rgn.c: Likewise.
3989         * tree-if-conv.c (get_loop_body_in_if_conv_order): Use
3990         BITMAP_XFREE.
3991         * tree-outof-ssa.c (perform_edge_inserts): Use BITMAP_XFREE.
3992         * tree-sra.c (decide_instantiations): Adjust bitmap
3993         initialization.
3994         * tree-ssa-dce.c: Include obstack.h.
3995         * tree-ssa-pre.c (grand_bitmap_obstack): Make a bitmap_obstack.
3996         (value_insert_into_set_bitmap): Remove useless bitmap_clear.
3997         (bitmap_set_new): Likewise.
3998         (init_pre): Initialize bitmap obstack.
3999         (fini_pre): Release bitmap obstack.
4000         * tree-ssanames.c (ssa_names_to_rewrite): Make static.
4001         (marked_for_rewrite_p): ssa_names_to_rewrite is never NULL.
4002         (mark_for_rewrite, unmark_for_rewrite): Likewise.
4003         (marked_ssa_names): Likewise.
4004         (init_ssanames): Use BITMAP_XMALLOC.
4005         (fini_ssanames): Use BITMAP_XFREE.
4006         * web.c: Include obstack.h
4007
4008 2004-11-22  Nick Clifton  <nickc@redhat.com>
4009
4010         * sbitmap.c (sbitmap_union_of_preds): Set 'e' to the next edge
4011         predecessor in the first for-loop.
4012
4013 2004-11-21  Stan Shebs  <shebs@apple.com>
4014
4015         * config/rs6000/rs6000.c: (rs6000_darwin64_function_arg): Add
4016         UNION_TYPE case.
4017         (function_arg): Move darwin test up, sniff mode first for
4018         efficiency, test for union type.
4019
4020 2004-11-21  Dale Johannesen  <dalej@apple.com>
4021
4022         * config/darwin.h (JUMP_TABLES_IN_TEXT_SECTION):  Define.
4023
4024 2004-11-21  Jeff Law  <law@redhat.com>
4025
4026         * tree-ssa.c (verify_use): Fix comment.
4027         (verify_phi_args): Check that the number of incoming edges matches
4028         the number of PHI arguments.  Check that each PHI argument is
4029         either an SSA_NAME or an invariant.  Coalesce tests for PHIs for
4030         dead or duplicated edges.  Clear e->aux earlier and avoid separate
4031         loop to clear e->aux and test for missed edges.
4032         (verify_ssa): Remove first walk over statements.  Move checking
4033         of PHI args into verify_phi_args.  Move checking of statements
4034         with aliased stores and V_MAY_DEFS into the remaining loop over
4035         the statements.  Register defs by walking through the formal
4036         SSA_NAME table.
4037
4038 2004-11-21  Roger Sayle  <roger@eyesopen.com>
4039
4040         PR middle-end/18520
4041         * dojump.c (compare_from_rtx): Clarify mode argument in function
4042         description.  Correct order of mode/cmp_mode arguments in call to
4043         simplify_relational_operation.  Check "tem" for COMPARISON_P.
4044
4045 2004-11-21  Paolo Bonzini  <bonzini@gnu.org>
4046             David Edelsohn  <edelsohn@gnu.org>
4047
4048         PR target/17836
4049         * config/rs6000/rs6000.c (rs6000_return_in_memory): Return
4050         synthetic vectors in memory.
4051         (function_arg_boundary): Align large synthetic vectors.
4052         (rs6000_pass_by_reference): Pass synthetic vectors in memory.
4053
4054 2004-11-21  Jeff Law  <law@redhat.com>
4055
4056         * cfg.c (update_bb_profile_for_threading): Do not rescale the
4057         successor probabilities if they are not going to change.  Pull
4058         division out of loop if we do need to rescale successor probabilities.
4059
4060         * tree-ssa-threadupdate.c (redirection_data_hash): Use the
4061         index of the destination block for the hash value rather than
4062         hashing a pointer.
4063
4064 2004-11-20  Joseph S. Myers  <joseph@codesourcery.com>
4065
4066         * c-typeck.c (build_array_ref): Don't check for index == 0.  Make
4067         checks for neither argument being an array or pointer (swapping
4068         the arguments if necessary), the array argument being a pointer to
4069         or array of functions and for -Wchar-subscripts warnings upfront.
4070
4071 2004-11-20  Jeff Law  <law@redhat.com>
4072
4073         * regrename.c (copyprop_hardreg_forward): Only search for a
4074         previously processed block if the current block only has one
4075         predecessor.
4076
4077 2004-11-20  Kazu Hirata  <kazu@cs.umass.edu>
4078
4079         * tree-ssa-threadupdate.c, tree-vectorizer.c: Fix comment
4080         typos.
4081         * config/arm/arm.c: Follow spelling conventions.
4082
4083 2004-11-20  Richard Earnshaw  <rearnsha@arm.com>
4084
4085         * arm.c (arm_override_options): Use arm_ld_sched rather than testing
4086         a bit in tune_flags.
4087         (const_double_needs_minipool): Likewise.  Split most of the code out