OSDN Git Service

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