OSDN Git Service

PR 19696
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2005-02-01  Richard Henderson  <rth@redhat.com>
2
3         PR 19696
4         * optabs.c (expand_copysign_absneg): Export.
5         * optabs.h (expand_copysign_absneg): Declare.
6         * config/rs6000/rs6000.md (copysigntf3): New.
7
8 2005-02-01  Diego Novillo  <dnovillo@redhat.com>
9
10         PR tree-optimization/19633
11         * tree-flow.h (struct ptr_info_def): Add field 'pt_null'.
12         * tree-ssa-alias.c (init_alias_info): Initialize.
13         (merge_pointed_to_info): Set.
14         (add_pointed_to_expr): Set pt_null if EXPR is a NULL pointer.
15         (dump_points_to_info_for): Show value of pt_null.
16         (struct count_ptr_d): Declare.
17         (find_ptr_dereference): Remove.
18         (ptr_is_dereferenced_by): Remove.
19         (count_ptr_derefs): New local function.
20         (count_uses_and_derefs): New local function.
21         (compute_points_to_and_addr_escape): Call it.  If the number
22         of dereferences is greater than zero, mark the pointer as
23         dereferenced.  If there are fewer dereferences than uses of
24         the pointer, the pointer's value escapes.
25
26 2005-02-01  Diego Novillo  <dnovillo@redhat.com>
27
28         PR tree-optimization/19670
29         * tree-ssa.c (verify_ssa_name): Don't set TREE_VISITED
30         here...
31         (verify_use): ... set it here, instead.
32
33 2005-02-01  Janis Johnson  <janis187@us.ibm.com>
34
35         * doc/sourcebuild.texi (Test directives): Fix formatting.
36
37         * doc/sourcebuild.texi (Test directives): Describe selector
38         expressions.
39
40 2005-02-01  Segher Boessenkool  <segher@kernel.crashing.org>
41
42         * config.gcc (powerpc64-*-linux*): Default to -m64 also for
43         specific 64-bit CPUs.
44
45 2005-02-01  Richard Earnshaw  <rearnsha@arm.com>
46
47         PR target/16201
48         * arm.c (arm_eliminable_register): New function.
49         (adjacent_mem_locations): Don't allow eliminable registers.  Use
50         HOST_WIDE_INT for address offsets.
51         * arm-protos.h (arm_eliminable_register): Add prototype.
52
53 2005-02-01  Steven Bosscher  <stevenb@suse.de>
54
55         PR optimization/15242
56         * params.def (PARAM_MAX_GOTO_DUPLICATION_INSNS): New param.
57         * basic-block.h (duplicate_computed_gotos): Add prototype.
58         * bb-reorder.c (duplicate_computed_gotos): New function to
59         duplicate sufficiently small blocks ending in a computed jump.
60         * passes.c (rest_of_compilation): Call duplicate_computed_gotos
61         if not optimizing for size.
62         * cfgcleanup.c (try_crossjump_bb): If not optimizing for size,
63         never do tail merging for blocks ending in a computed jump.
64         * doc/invoke.texi: Document the max-goto-duplication-insns param.
65
66 2005-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
67
68         Patch from Richard Sandiford <rsandifo@redhat.com>
69         * reload1.c (choose_reload_regs): Prevent the find_equiv_reg() code
70         from inheriting a subreg equivalence with a non-spill register.
71
72         * tree.h (DECL_FUNCTION_CODE): Document that it is overloaded.
73
74 2005-02-01  Alexandre Oliva  <aoliva@redhat.com>
75
76         * config/frv/frv.c (movcc_fp_destination_operand): New.
77         (gpr_or_memory_operand): Fix typo in comment.
78         (gpr_or_memory_operand_with_scratch): New.
79         * config/frv/frv.h (PREDICATE_CODES): Add the two new predicates.
80         * config/frv/frv.md (movcc_fp, movcc_fp_internal): Use
81         movcc_fp_destination_operand.
82         (reload_incc_fp): Use gpr_or_memory_operand_with_scratch.
83         Legitimize memory addresses using a scratch register.
84
85 2005-01-31  Jeff Law  <law@redhat.com>
86
87         * tree-into-ssa.c (mark_def_sites_global_data): Make KILLS
88         bitmap a sparse bitmap instead of a simple bitmap.
89         (mark_def_sites_initialize_block):  Corresponding changes.
90         (ssa_mark_def_sites_initialize_block): Likewise.
91         (ssa_mark_phi_uses): Likewise.
92         (mark_def_site, ssa_mark_def_sites): Likewise.
93         (mark_def_site_blocks): Likewise.
94         (rewrite_ssa_into_ssa): Likewise.
95
96         * tree-ssa-dom.c (record_cond): Pass correct variable type
97         for last argument to htab_find_slot_with_hash.
98
99         * fold-const.c (fold, case CEIL_MOD_EXPR): Do not lose side
100         effects when optimizing 0 % X.  Do not try to optimize X % 0.
101
102 2005-01-31  James E. Wilson  <wilson@specifixinc.com>
103
104         * config/ia64/itanium1.md (1_scall bypass): Change 2_mmalua to
105         1_mmalua.
106
107 2005-02-01  Eric Christopher  <echristo@redhat.com>
108
109         * config/mips/mips.c (override_options): Warn if -mint64
110         is used.
111         * doc/invoke.texi (MIPS Options): Document that -mint64 is
112         deprecated.
113
114 2005-02-01  Kazu Hirata  <kazu@cs.umass.edu>
115
116         * cse.c (cse_reg_info): Remove hash_next, next, regno.  Add
117         timestamp.
118         (cse_reg_info_list, cse_reg_info_list_free, REGHASH_SHIFT,
119         REGHASH_SIZE, REGHASH_MASK, reg_hash, REGHASH_FN,
120         cached_cse_reg_info, GET_CSE_REG_INFO): Remove.
121         (cached_regno): Initialize to INVALID_REGNUM.
122         (cse_reg_info_table_size,
123         cse_reg_info_table_first_uninitialized,
124         cse_reg_info_timestamp): New.
125         (REG_TICK, REG_IN_TABLE, SUBREG_TICKED, REG_QTY): Use
126         get_cse_reg_info.
127         (init_cse_reg_info, get_cse_reg_info_1): New.
128         (get_cse_reg_info): Cache the last look-up.
129         (new_basic_block): Update the code to clear mappings from
130         registers to cse_reg_info entries.
131         (cse_main): Call init_cse_reg_info.
132
133         * cse.c (get_cse_reg_info): Update a comment.
134
135 2005-01-31  Steven Bosscher  <stevenb@suse.de>
136
137         PR c/19333
138         * c-decl.c (start_decl): Do not warn about arrays of elements with
139         an incomplete type here.
140         (grokdeclarator): Do it here by making a pedwarn an error.
141         * c-typeck.c (push_init_level): If there were previous errors with
142         the constructor type, do not warn about braces for initializers.
143         (process_init_element): Likewise for excess initializer elements.
144
145 2005-01-31  Kazu Hirata  <kazu@cs.umass.edu>
146
147         * cse.c (delete_trivially_dead_insn): Don't iterate.
148
149 2005-01-31  Andrew Pinski  <pinskia@physics.uc.edu>
150
151         * config/rs6000/rs6000.md (copysignsf3): New expand.
152         (copysigndf3): Likewise.
153
154 2005-01-31  Steven Bosscher  <stevenb@suse.de>
155
156         * recog.c (constrain_operands): Only look for earlyclobber operand
157         conflicts if an '&' constraint was seen.
158
159 2005-01-31  Marc Espie <espie@openbsd.org>
160
161         * config.gcc: Don't include embedded systems fragment, switches default
162         debugging format to ELF.
163         * config/i386/openbsdelf.h: Add DBX_REGISTER_NUMBER since we no 
164         longer pick it up there.
165
166 2005-01-31  Dale Johannesen  <dalej@apple.com>
167         
168         * doc/extend.texi (nested functions): Fix linkage description.
169         Clarify that static is not allowed.
170
171 2005-01-31  Dale Johannesen  <dalej@apple.com>
172         
173         * config/rs6000/darwin.md (movsf_low_di):  Make work.
174         (movdf_low_di):  Make work.
175
176 2005-01-31  Dale Johannesen  <dalej@apple.com>
177
178         * config/rs6000/darwin-tramp.asm (__trampoline_setup):
179         Make work for 64 bit.
180
181 2005-01-31  Roger Sayle  <roger@eyesopen.com>
182             Dale Johannesen  <dalej@apple.com>
183
184         PR middle-end/19650
185         * fold-const.c (fold_binary_op_with_conditional_arg):
186         Make types match original operands, before STRIP_NOPS.
187
188 2005-01-31  Alan Modra  <amodra@bigpond.net.au>
189
190         * config/rs6000/linux-unwind.h (struct gcc_vregs): New.
191         (struct gcc_regs): Rename from gcc_pt_regs.  Add more regs.
192         (struct gcc_sigcontext): Delete.  Merge contents to..
193         (struct gcc_ucontext): ..here.
194         (get_sigcontext): Delete.
195         (get_regs): New function, like get_sigcontext but return regs ptr.
196         64-bit version finds regs from r1 to support vdso.
197         (ppc_linux_aux_vector): New function.
198         (ppc_fallback_frame_state): Modify for get_regs.  Restore fprs
199         and vector regs.
200
201 2005-01-31  Ira Rosen  <irar@il.ibm.com>
202
203         * tree-vectorizer.c (vect_analyze_offset_expr): Use ssizetype instead
204         sizetype.
205         (vect_get_base_and_offset): Use ssizetype instead sizetype. Remove
206         redundant fold. Fix misalignment for MINUS_EXPR.
207         (vect_compute_data_ref_alignment): Use ssizetype instead sizetype.
208         (vect_analyze_pointer_ref_access): Likewise.
209         (vect_get_memtag_and_dr): Likewise.
210
211 2005-01-31  Richard Henderson  <rth@redhat.com>
212
213         * config/i386/i386.c (absnegsf2_mixed): Remove all of the # hackery.
214         (absnegsf2_sse, absnegsf2_i387, absnegdf2_mixed, absnegdf2_sse,
215         absnegdf2_i387, absnegxf2_i387): Likewise.
216
217 2005-01-31  Richard Henderson  <rth@redhat.com>
218
219         PR 19696
220         * optabs.c (expand_copysign_absneg): New.
221         (expand_copysign_bit): Split out from ...
222         (expand_copysign): ... here.  Use expand_copysign_absneg.
223
224 2005-01-30  Roger Sayle  <roger@eyesopen.com>
225
226         PR middle-end/19697
227         * config/pa/pa.md (anddi3, iordi3): On HPPA64, disallow an integer
228         constant as the second operand and a register as the third.
229
230 2005-01-31  Danny Smith  <dannysmith@users.sourceforge.net>
231
232         PR target/19704
233         * config/i386/i386.c (ix86_function_ok_for_sibcall):  Also check
234         that dllimport'd functions do not use all call-clobbered registers
235         to pass parameters.
236
237 2005-01-30  Richard Henderson  <rth@redhat.com>
238
239         PR 19696
240         * optabs.c (expand_absneg_bit): Split out from expand_unop and
241         expand_abs_nojump and generalize.  Use operand_subword and
242         emit_no_conflict_block.  Support large modes.
243         (expand_abs_nojump): Use it.  Use HONOR_SIGNED_ZEROS to fall
244         back to maximum.
245         (expand_unop): Likewise.  Use HONOR_SIGNED_ZEROS to fall back
246         negation to subtraction.
247         (expand_copysign): Check that the format has signed zeros.
248         Use operand_subword and emit_no_conflict_block.  Support large modes.
249
250 2005-01-30  Daniel Berlin  <dberlin@dberlin.org>
251
252         Fix PR tree-optimization/19624
253         
254         * Makefile.in (tree-ssa-pre.o): Add CFGLOOP_H.
255         * tree-ssa-pre.c: Add cfgloop.h.
256         Update comment.
257         (pre_stats): New member, constified.
258         (inserted_exprs): New static variable.
259         (NECESSARY): New macro.
260         (create_expression_by_pieces): Fold the expression, and
261         mark it as defaulting to not necessary. Also put in
262         inserted_exprs.
263         (fully_constant_expression): New function.
264         (insert_into_preds_of_block): Modify to not insert phis when we
265         are playing with induction variables.
266         Push phis onto the inserted_exprs vector, and mark them as not
267         necessary by default.
268         (insert_aux): Call fully_constant_expression on eprime.
269         If all edges produce the same value, mark it constant.
270         (mark_operand_necessary): New function.
271         (remove_dead_inserted_code): New function.
272         (init_pre): Init loop optimizer to get loop info.
273         (fini_pre): Free loop_optimizer, and inserted_exprs vec.
274         (execute_pre): Commit edge inserts, then remove dead code.
275
276 2005-01-30  Richard Henderson  <rth@redhat.com>
277
278         * rtl.c (rtx_equal_p): No early exit for CONST_VECTOR.
279         * varasm.c (const_rtx_hash_1): Handle CONST_VECTOR.
280
281 2005-01-30  Richard Henderson  <rth@redhat.com>
282
283         PR target/19700
284         * config/i386/i386.c (ix86_expand_copysign): New.
285         (ix86_split_copysign_const): New.
286         (ix86_split_copysign_var): Rename from ix86_split_copysign, 
287         rearrange op1/nmask operands.
288         * config/i386/i386-protos.h: Update.
289         * config/i386/i386.md (copysignsf3): Use ix86_expand_copysign.
290         (copysigndf3): Likewise.
291         (copysignsf3_const, copysigndf3_const): New.
292         (copysignsf3_var): Rename from copysignsf3, split out splitter
293         and fix split predicate for X constraint.
294         (copysigndf3_var): Similarly.
295
296 2005-01-30  Kazu Hirata  <kazu@cs.umass.edu>
297
298         * optabs.c, doc/c-tree.texi, doc/install.texi, doc/md.texi,
299         doc/passes.texi, doc/rtl.texi, doc/sourcebuild.texi,
300         doc/tm.texi, doc/tree-ssa.texi: Update copyright.
301
302 2005-01-29  Richard Henderson  <rth@redhat.com>
303
304         PR target/19690
305         * config/i386/i386.md (movdf_nointeger, movdf_integer): Fix ordering
306         of # and * in constraints.
307
308 2005-01-29  Richard Henderson  <rth@redhat.com>
309
310         PR middle-end/19689
311         * expr.c (store_field): Don't strip sub-mode cast when the input
312         data is even smaller.
313
314 2005-01-29  Richard Henderson  <rth@redhat.com>
315
316         PR middle-end/19687
317         * expr.c (categorize_ctor_elements_1): Check for CONSTRUCTOR of a
318         union being empty.
319
320 2005-01-29  Richard Henderson  <rth@redhat.com>
321
322         * combine.c (make_field_assignment): Fix argument order
323         to gen_int_mode.
324
325 2005-01-29  Richard Guenther <richard.guenther@uni-tuebingen.de>
326
327         PR tree-optimization/15791
328         * fold-const.c (extract_array_ref): New function.
329         (fold): Fold comparisons between &a[i] and &a[j] or
330         semantically equivalent trees.
331
332 2005-01-29  Jeff Law  <law@redhat.com>
333
334         * gcse.c (insert_expr_in_table): Revamp handling of available
335         and anticipatable occurrence lists to avoid unnecessary list
336         walking.
337         (insert_set_in_table): Similarly.
338
339 2005-01-29  Joseph S. Myers  <joseph@codesourcery.com>
340
341         * c-common.c (fix_string_type): Just use c_build_qualified_type to
342         build string type.
343         (c_build_qualified_type): Build qualified array types with
344         TYPE_MAIN_VARIANT pointing to corresponding unqualified type.
345         * c-decl.c (c_make_fname_decl): Build unqualified array type
346         before qualified type.
347         (grokdeclarator): Use TYPE_MAIN_VARIANT of typedef type if element
348         type is qualified, not just if type itself is.  Don't apply
349         qualifiers to array type when declarator is processed.  Apply
350         qualifiers to field type whether or not it is an array type.
351         Don't handle array types specially for applying qualifiers to
352         variables.
353         * c-typeck.c (composite_type): Build unqualified element type and
354         array type when forming composite of array types.
355         (common_pointer_type, comptypes, comp_target_types,
356         type_lists_compatible_p, build_indirect_ref, build_array_ref,
357         convert_for_assignment): Don't apply TYPE_MAIN_VARIANT to array
358         types.
359         (type_lists_compatible_p): Cache TREE_VALUE (args1) and TREE_VALUE
360         (args2) in variables a1 and a2.
361
362 2005-01-29  Kazu Hirata  <kazu@cs.umass.edu>
363
364         * cse.c (n_elements_made, max_elements_made): Remove.
365         (insert): Don't touch n_elements_made.
366         (cse_main): Don't touch n_elements_made or max_elements_made.
367
368 2005-01-28  Stephane Carrez  <stcarrez@nerim.fr>
369
370         PR target/15384
371         * config/m68hc11/t-m68hc11-gas (dp-bit.c): Fix typo causing a
372         configuration part of dp-bit.c to be lost.
373
374 2005-01-28  Roger Sayle  <roger@eyesopen.com>
375
376         * expmed.c (expand_mult_highpart_optab): When attempting to use
377         a non-widening multiplication in a wider mode, the operands need
378         to be converted (zero or sign extended) to that mode.
379
380 2005-01-28  Ian Lance Taylor  <ian@airs.com>
381
382         PR middle-end/16558
383         PR middle-end/19583
384         * gimple-low.c (block_may_fallthru): TRY_FINALLY_EXPR only falls
385         through if both operands fall through.
386
387 2005-01-28  Kazu Hirata  <kazu@cs.umass.edu>
388
389         * cse.c (fold_rtx) <PC>: Don't optimize.
390
391 2005-01-28  Jeff Law  <law@redhat.com>
392
393         * fold-const.c (fold, case CEIL_MOD_EXPR): Optimize 0 % X.
394         (case FLOOR_MOD_EXPR, ROUND_MOD_EXPR, TRUNC_MOD_EXPR): Similarly.
395
396 2005-01-28  Kazu Hirata  <kazu@cs.umass.edu>
397
398         * cse.c (cse_reg_info_free_list, cse_reg_info_used_list,
399         cse_reg_info_used_list_end): Remove.
400         (cse_reg_info_list, cse_reg_info_list_free): New.
401         (get_cse_reg_info): When allocating an instance of
402         cse_reg_info, add it to the beginning of the cse_reg_info_list
403         list.  Remove code to maintain cse_reg_info_used_list.
404         (new_basic_block): Reset the free list to the beginning of
405         cse_reg_info_list.
406
407 2005-01-28  Richard Sandiford  <rsandifo@redhat.com>
408
409         * config/frv/frv.c (bdesc_2arg): Remove __MDPACKH.
410         (frv_init_builtins): Change its prototype to take 4 uhalf arguments.
411         (frv_expand_mdpackh_builtin): New function.
412         (frv_expand_builtin): Use it to expand __MDPACKH.
413         * doc/extend.texi (__MDPACKH): Update documentation.
414
415 2005-01-28  Uros Bizjak  <uros@kss-loka.si>
416
417         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Use
418         SSE_FLOAT_MODE_P for use_sse computation.
419
420 2005-01-28  Ralf Corsepius  <ralf.corsepius@rtems.org>
421
422         PR target/19663
423         * config/sparc/rtemself.h (LINK_GCC_C_SEQUENCE_SPEC): undefine.
424
425 2005-01-27  Richard Henderson  <rth@redhat.com>
426
427         * builtins.c (expand_builtin_copysign): New.
428         (expand_builtin): Call it.
429         * genopinit.c (optabs): Add copysign_optab.
430         * optabs.c (init_optabs): Initialize it.
431         (expand_copysign): New.
432         * optabs.h (OTI_copysign, copysign_optab): New.
433         (expand_copysign): Declare.
434
435         * config/alpha/alpha.md (UNSPEC_COPYSIGN): New.
436         (copysignsf3, ncopysignsf3, copysigndf3, ncopysigndf3): New.
437
438         * config/i386/i386.c (ix86_build_signbit_mask): Split from ...
439         (ix86_expand_fp_absneg_operator): ... here.
440         (ix86_split_copysign): New.
441         * config/i386/i386-protos.h: Update.
442         * config/i386/i386.md (UNSPEC_COPYSIGN): New.
443         (copysignsf3, copysigndf3): New.
444
445         * config/ia64/ia64.md (UNSPEC_COPYSIGN): New.
446         (copysignsf3, ncopysignsf3): New.
447         (copysigndf3, ncopysigndf3): New.
448         (copysignxf3, ncopysignxf3): New.
449         * config/ia64/ia64.c (rtx_needs_barrier): Handle UNSPEC_COPYSIGN.
450
451 2005-01-27  Arend Bayer  <arend.bayer@web.de>
452             Kazu Hirata  <kazu@cs.umass.edu>
453
454         * cse.c: (find_best_addr): Don't call copy_rtx before calling
455         fold_rtx.  Save cost recomputation if fold_rtx did nothing.
456         (fold_rtx) <ASM_OPERANDS>: Don't do anything if INSN is
457         NULL_RTX.
458
459 2005-01-27  Jeff Law  <law@redhat.com>
460
461         * tree-into-ssa.c (ssa_rewrite_initialize_block): Do not register
462         definitions of SSA_NAMEs which are not being rewritten.
463         (rewrite_ssa_into_ssa): Only initialize the current definition
464         of an SSA_NAME if that SSA_NAME has been marked for rewriting.
465         If checking is enabled, assert that SSA_NAME_AUX is clear for all
466         SSA_NAMEs before returning.
467
468 2005-01-27  Kazu Hirata  <kazu@cs.umass.edu>
469
470         * c-common.def, c-dump.c, c-gimplify.c, c-objc-common.c,
471         cfgexpand.c, dbxout.c, function.h, opts.c, tree-flow-inline.h,
472         tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-tailcall.c,
473         config/avr/avr.md, config/cris/aout.h, config/cris/cris.h,
474         config/mips/iris6.h, config/sh/sh.c: Update copyright.
475
476 2005-01-27  Steven Bosscher  <stevenb@suse.de>
477
478         PR middle-end/17278
479         * opts.c (decode_options): Move flag_thread_jumps from -O1 and
480         higher to -O2 and higher.  Likewise for tree PRE.
481         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only iterate at -O2
482         and better.
483
484 2005-01-27  Ian Lance Taylor  <ian@airs.com>
485
486         PR middle-end/19583
487         * gimple-low.c (try_catch_may_fallthru): New static function.
488         (block_may_fallthru): Handle TRY_CATCH_EXPR.
489         * tree-inline.c (expand_call_inline): Don't warn about reaching
490         the end of a non-void function being inlined if the function uses
491         a return slot.
492
493 2005-01-27  Jakub Jelinek  <jakub@redhat.com>
494
495         * config/i386/i386.h (CALL_USED_REGISTERS): Fix comment pastos.
496
497         PR c/18946
498         * c-decl.c (warn_if_shadowing): Handle old_decl error_mark_node.
499         (pushdecl): Only use DECL_FILE_SCOPE_P if DECL_P.
500         (implicitly_declare): Handle error_mark_node.
501
502 2005-01-27  Richard Henderson  <rth@redhat.com>
503
504         PR tree-opt/14329
505         * tree.h (struct tree_decl): Add debug_expr_is_from.
506         (DECL_DEBUG_EXPR_IS_FROM): New.
507         (DECL_DEBUG_EXPR): Rename from DECL_DEBUG_ALIAS_OF.
508         * dwarf2out.c (dwarf2out_var_location): Update to match.
509         * tree-outof-ssa.c (create_temp): Likewise.
510         * var-tracking.c (track_expr_p): Likewise.
511         * tree-sra.c (instantiate_element): Set DECL_DEBUG_EXPR.
512         * c-objc-common.c (c_tree_printer) <'D'>: Handle DECL_DEBUG_EXPR.
513         * toplev.c (default_tree_printer): Likewise.
514
515 2005-01-27  Alexandre Oliva  <aoliva@redhat.com>
516
517         * config/frv/frv.c (frv_class_likely_spilled_p): Add GR8_REGS,
518         GR9_REGS, GR89_REGS, FDPIC_FPTR_REGS, FDPIC_REGS.
519
520 2005-01-27  Steven Bosscher  <stevenb@suse.de>
521
522         * tree.h (SWITCH_COND, SWITCH_BODY, SWITCH_LABELS, CASE_LOW,
523         CASE_HIGH, CASE_LABEL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
524         ASM_CLOBBERS): Add tree checks.
525
526         * c-common.h (SWITCH_TYPE): Rename to SWITCH_STMT_TYPE.
527         (SWITCH_STMT_COND, SWITCH_STMT_BODY): New.
528         * c-common.def (SWITCH_STMT): Update to match.
529         * c-common.c (c_do_switch_warnings): Use SWITCH_STMT accessor
530         macros instead of SWITCH_EXPR ones.
531         * c-dump.c (c_dump_tree): Likewise.
532         * c-gimplify.c (gimplify_switch_stmt): Likewise.
533         * c-typeck.c (c_start_case, do_case, c_finish_case): Likewise.
534
535         * doc/c-tree.texi (SWITCH_STMT): Update accessor macro names.
536
537 2005-01-27  Alan Modra  <amodra@bigpond.net.au>
538
539         * unwind-dw2.c (execute_stack_op): Add missing cases for
540         DW_OP_shl, DW_OP_shr, DW_OP_shra, DW_OP_xor.
541
542 2005-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
543
544         * config.gcc (Obsolete configurations): Remove 'dummy', add
545         sparclite-*-coff*, sparclite-*-elf*, sparc86x-*-elf* and
546         sparc-*-openbsd*.
547
548 2005-01-26  Diego Novillo  <dnovillo@redhat.com>
549
550         PR tree-optimization/19633
551         * tree-ssa-alias.c (ptr_is_dereferenced_by): Also handle
552         CALL_EXPRs.
553         (maybe_create_global_var): Do not create .GLOBAL_VAR if there
554         are no call-clobbered variables.
555         * tree-outof-ssa.c (check_replaceable): Return false for calls
556         with side-effects.
557
558 2005-01-26  Ulrich Weigand  <uweigand@de.ibm.com>
559
560         * dbxout.c (dbxout_symbol_location): Resolve constant pool references
561         even for variables with NULL DECL_INITIAL.
562
563 2005-01-26  Stuart Hastings  <stuart@apple.com>
564
565         * gimplify.c (shortcut_cond_expr): Re-compute side-effects.
566
567 2005-01-26  Richard Henderson  <rth@redhat.com>
568
569         PR middle-end/18008
570         * c-decl.c (finish_struct): Set DECL_MODE after resetting a
571         field's type.
572         * expr.c (store_field): Strip conversions to odd-bit-sized types
573         if the destination field width matches.
574
575 2005-01-26  Richard Henderson  <rth@redhat.com>
576
577         * c-decl.c, expmed.c, expr.c: Revert last change.
578
579 2005-01-26  Richard Henderson  <rth@redhat.com>
580
581         PR middle-end/18008
582         * c-decl.c (finish_struct): Set DECL_MODE after resetting a
583         field's type.
584         * expmed.c (store_fixed_bit_field): Create a paradoxical subreg
585         if we don't need the bits above those present in the current mode.
586         * expr.c (store_field): Strip conversions to odd-bit-sized types
587         if the destination field width matches.
588
589 2005-01-26  Richard Sandiford  <rsandifo@redhat.com>
590
591         * config/mips/iris6.h (ENDFILE_SPEC): Don't link in irix-csr.o if
592         either -ffast-math or -funsafe-math-optimizations is in use.
593
594 2005-01-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>
595
596         PR target/19293
597         PR target/19329
598         * config/avr/avr.c (notice_update_cc): Only set condition code for
599         ashrqi3 if shift count > 0.
600         (out_shift_with_cnt): Handle shift count <= 0 as a no-op.
601         (ashlqi3_out, ashlhi3_out, ashlsi3_out, ashrqi3_out, ashrhi3_out,
602         ashrsi3_out, lshrqi3_out, lshrhi3_out, lshrsi3_out): Handle shift
603         count <= 0 as a no-op, and shift count >= width by copying zero
604         or sign bit to all bits of the result.
605         * config/avr/avr.md (all shifts): Add alternatives for zero shift
606         count, with attribute "length" set to 0 and "cc" set to "none".
607
608 2005-01-26  Aldy Hernandez  <aldyh@redhat.com>
609
610         * doc/invoke.texi: Document -mTLS.
611
612         * testsuite/gcc.target/frv/all-tls-global-dynamic.c: New.
613         * testsuite/gcc.target/frv/all-tls-initial-exec.c: New.
614         * testsuite/gcc.target/frv/all-tls-initial-exec-pic.c: New.
615         * testsuite/gcc.target/frv/all-tls-local-dynamic.c: New.
616         * testsuite/gcc.target/frv/all-tls-local-dynamic-plt.c: New.
617         * testsuite/gcc.target/frv/all-tls-local-dynamic-plt-pic.c: New.
618         * testsuite/gcc.target/frv/all-tls-local-exec.c: New.
619         * testsuite/gcc.target/frv/all-tls-local-exec-TLS.c: New.
620
621         * configure.ac: Check for a TLS capable gas.
622
623         * configure: Regenerate.
624
625 2005-01-26  Richard Henderson  <rth@redhat.com>
626
627         PR middle-end/18008
628         * combine.c (make_field_assignment): Simplify store to zero_extract
629         from a source with an overlapping mask.
630
631 2005-01-26  Aldy Hernandez  <aldyh@redhat.com>
632
633         2004-11-11  Eric Christopher  <echristo@redhat.com>
634
635         * config/frv/frv.md: Add fr400_integer automaton. Don't
636         allow TYPE_MUL, TYPE_MACC, or TYPE_CUT to issue in parallel
637         to TYPE_MACC.
638
639 2005-01-26  Steven Bosscher  <stevenb@suse.de>
640
641         PR middle-end/16585
642         * cfgbuild.c (make_edges): Do not clear or set
643         current_function_has_computed_jump.
644         * function.h (struct function): Remove the has_computed_jump field.
645         (current_function_has_computed_jump): Do not define.
646         * sched-rgn.c (is_cfg_nonregular): Return true if a basic block ends
647         in a computed jump.  Ignore current_function_has_computed_jump.
648
649 2005-01-26  Richard Henderson  <rth@redhat.com>
650
651         PR middle-end/19515
652         * expr.c (categorize_ctor_elements): New argument p_must_clear.
653         (categorize_ctor_elements_1): Likewise.  Detect a union that isn't
654         fully initialized.
655         (mostly_zeros_p): Update for new categorize_ctor_elements argument.
656         * gimplify.c (gimplify_init_constructor): Likewise.  Only shove
657         objects into static storage if they have more than one non-zero value.
658         * tree.h (categorize_ctor_elements): Update decl.
659
660 2005-01-26  Steven Bosscher  <stevenb@suse.de>
661
662         PR middle-end/19616     
663         * tree.h (CALL_EXPR_TAILCALL): Add comment.
664         * calls.c (check_sibcall_argument_overlap_1): Revert the change
665         to this function from 2004-07-10.
666         * tree-tailcall.c (suitable_for_tail_opt_p): Do not consider the
667         the current function for tail call optimizations if the address
668         of one of it its arguments is taken.
669
670 2005-01-26  Kazu Hirata  <kazu@cs.umass.edu>
671
672         * cse.c (fold_rtx): Call equiv_constant only when necessary.
673
674 2005-01-26  Bernd Schmidt  <bernd.schmidt@analog.com>
675
676         * function.c (expand_function_end): If current_function_calls_alloca,
677         emit stack restore in a place that is reached when the function falls
678         through at the end.
679
680 2005-01-26  Alexandre Oliva  <aoliva@redhat.com>
681
682         * Makefile.in (../$(build_subdir)/fixincludes/fixincl): Add dummy
683         rule to avoid matching inappropriate suffix rule.
684
685 2005-01-26  Jan Hubicka  <jh@suse.cz>
686
687         PR tree-optimization/19241
688         * tree-inline.c (copy_body_r): Do not walk subtrees after substituting.
689
690 2005-01-26  Hans-Peter Nilsson  <hp@axis.com>
691
692         * config/cris/cris.h (LIB_SPEC) <sim*>: Use -lsyslinux, not
693         -lsyssim.  Wrap -lc -lsyssim in --start-group --end-group instead
694         of doubling.
695         (STARTFILE_SPEC): Add crti.o, before crtbegin.o.
696         <sim*>: Always use crt1.o, regardless of N in simN.
697         <!sim>: Drop support for -pg and -p variants; always use crt0.o.
698         (ENDFILE_SPEC): Add crtn.o, after crtend.o.
699         (CRT_CALL_STATIC_FUNCTION): Remove.
700         * config/cris/aout.h (STARTFILE_SPEC): <!melinux && sim*>: Always
701         use crt1.o, regardless of N in simN.
702         <!sim>: Drop support for -pg and -p variants; always use crt0.o.
703         (LIB_SPEC): Do not define; default to the one in config/cris/cris.h.
704         (CRIS_CPP_SUBTARGET_SPEC) <melinux && !nostdinc>: Remove special
705         case isystem setting.
706         (MAX_OFILE_ALIGNMENT): Correct to 32, not 16.
707
708 2005-01-25  Ian Lance Taylor  <ian@airs.com>
709
710         * gimple-low.c (block_may_fallthru): Correct handling of
711         SWITCH_EXPR--may fall through if SWITCH_LABELS is NULL.
712
713 2005-01-26  Hans-Peter Nilsson  <hp@axis.com>
714
715         * config/cris/cris.h (CPP_SPEC): Adjust the various mtune=
716         handlers to match indentation; nested under the mtune=* handler.
717         Similar for mcpu= and march=.
718
719 2005-01-25  Daniel Jacobowitz  <dan@codesourcery.com>
720
721         * config/mips/linux.h (LIB_SPEC): Remove -rpath-link.
722         * config/mips/linux64.h (LIB_SPEC): Likewise.
723         * config/mn10300/linux.h (LIB_SPEC): Likewise.
724         * config/sh/linux.h (LIB_SPEC): Likewise.
725
726 2005-01-25  Aldy Hernandez  <aldyh@redhat.com>
727
728         * config/frv/frv.c (frv_legitimize_tls_address): New.
729         (TARGET_HAVE_TLS): Define.
730         (FRV_SYMBOL_REF_TLS_P): Define.
731         (frv_override_options): Handle new register classes.
732         (frv_legitimate_address_p): Reject tls addresses.
733         (frv_legitimize_address): Handle TLS addresses.
734         (gen_inlined_tls_plt): New.
735         (gen_tlsmoff): New.
736         (frv_legitimize_tls_address): New.
737         (unspec_got_name): Add TLS entries.
738         (got12_operand): Add R_FRV_TLSMOFF12 case.
739         (frv_emit_move): Fixup TLS addresses.
740         (frv_emit_movsi): Legitimize TLS addresses.
741
742         * config/frv/frv.h (MASK_BIG_TLS): New.
743         (TARGET_BIG_TLS): New.
744         (HAVE_AS_TLS): Define.
745         (TARGET_SWITCHES): Add -mTLS and -mtls options.
746         (enum reg_class): Add GR8_REGS, GR9_REGS, GR89_REGS.
747         (REG_CLASS_NAMES): Same.
748         (REG_CLASS_CONTENTS): Same.
749         (CONSTRAINT_LEN): New.
750         (REG_CLASS_FROM_CONSTRAINT): New.
751         (PREDICATE_CODES): Add symbolic_operand.
752
753         * config/frv/frv.md (define_constants): Add UNSPEC_GETTLSOFF,
754         UNSPEC_TLS_LOAD_GOTTLSOFF12, UNSPEC_TLS_INDIRECT_CALL,
755         UNSPEC_TLS_TLSDESC_LDD, UNSPEC_TLS_TLSDESC_LDD_AUX,
756         UNSPEC_TLS_TLSOFF_LD, UNSPEC_TLS_LDDI, UNSPEC_TLSOFF_HILO,
757         R_FRV_GOTTLSOFF_HI, R_FRV_GOTTLSOFF_LO, R_FRV_TLSMOFFHI,
758         R_FRV_TLSMOFFLO, R_FRV_TLSMOFF12, R_FRV_TLSDESCHI,
759         R_FRV_TLSDESCLO, R_FRV_GOTTLSDESCHI, R_FRV_GOTTLSDESCLO, GR8_REG,
760         GR9_REG, GR14_REG, LRREG.
761         (type): Add load_or_call attribute.
762         ("load_or_call"): New reservation.
763         ("call_gettlsoff"): New.
764         ("tls_indirect_call"): New.
765         ("tls_load_gottlsoff12"): New.
766         ("tlsoff_hilo"): New.
767         ("tls_tlsdesc_ldd"): New.
768         ("tls_tlsoff_ld"): New.
769         ("tls_lddi"): New.
770
771         * config/frv/frv-protos.h (symbolic_operand): Protoize.
772
773         2005-01-25  Alexandre Oliva  <aoliva@redhat.com>
774
775         * config/frv/frv.h (ASM_OUTPUT_DWARF_DTPREL): Define.
776         * config/frv/frv-protos.h (frv_output_dwarf_dtprel): Declare.
777         * config/frv/frv.c (TLS_BIAS): Define.
778         (frv_output_dwarf_dtprel): New.
779
780 2005-01-26  Jakub Jelinek  <jakub@redhat.com>
781
782         PR rtl-optimization/19579
783         * ifcvt.c (noce_try_cmove_arith): If emitting instructions to set up
784         both A and B, see if they don't clobber registers the other expr uses.
785
786 2005-01-25  J"orn Rennecke <joern.rennecke@st.com>
787
788         * real.c (do_add): Initialize signalling and canonical members.
789
790         * real.c (real_from_integer): Zero out destination.
791
792 2005-01-18  Jan Hubicka  <jh@suse.cz>
793
794         PR tree-optimize/19337
795         * tree-inline.c (initialize_inlined_parameters): Copy
796         saved_static_chain_decl only.
797
798 2005-01-25  Richard Henderson  <rth@redhat.com>
799
800         PR target/19556
801         PR target/19584
802         * config/i386/i386.c (x86_inter_unit_moves): Zero.
803         (ix86_preferred_reload_class): Rewrite fp-constant section, with
804         80387 enabled, to return a proper subclass.  Return the subset that
805         overlaps with GENERAL_REGS for PLUS.
806         * config/i386/i386.md (movsi_1, movdi_2): Set type to "mmx" for pxor.
807
808 2005-01-25  Richard Henderson  <rth@redhat.com>
809
810         PR middle-end/19609
811         * tree-complex.c (expand_complex_div_wide): Use the correct formulae.
812
813 2005-01-25  Roger Sayle  <roger@eyesopen.com>
814
815         * expmed.c (choose_multiplier): Change interface to return the
816         multiplier lowpart as an rtx instead of an unsigned HOST_WIDE_INT.
817         (expand_divmod): Update calls to choose_multiplier.
818
819 2005-01-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
820
821         PR middle-end/19330
822         * expmed.c (extract_bit_field): Use adjust_address instead of
823         gen_lowpart when op0 is a MEM.
824
825 2005-01-24  Steven Bosscher  <stevenb@suse.de>
826
827         * cfgexpand.c (expand_gimple_tailcall): Fix typo.
828
829 2005-01-24  Richard Sandiford  <rsandifo@redhat.com>
830
831         * config/mips/irix-csr.c: New file.
832         * config/mips/t-iris6 (irix-csr.o): New rule to build it.
833         (EXTRA_MULTILIB_PARTS): Add irix-csr.o.
834         * config/mips/iris6.h (ENDFILE_SPEC): Include it in n32 and n64
835         executables.
836
837 2005-01-24  Eric Botcazou  <ebotcazou@libertysurf.fr>
838
839         PR bootstrap/19364
840         * config.gcc (sparc-*-elf*): Remove sol2.h, sparc/sol2.h and
841         sparc/elf.h, add sparc/sp-elf.h.
842         (sparc-*-rtems*): Likewise.
843         (sparclite-*-elf*): Remove sol2.h, sparc/sol2.h, sparc/elf.h and
844         tm-dwarf2.h, add sparc/sp-elf.h.
845         (sparc86x-*-elf): Likewise.
846         (sparc64-*-elf*): Remove sol2.h, sparc/sol2.h and tm-dwarf2.h.
847         * config/sparc/liteelf.h (TARGET_SUB_OS_CPP_BUILTINS): Rename into
848         TARGET_OS_CPP_BUILTINS.
849         * config/sparc/sp86x-elf (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
850         * config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
851         Undefine it.
852         * config/sparc/openbsd64.h (NO_IMPLICIT_EXTERN_C): Undefine.
853         * config/sparc/sp64-elf.h (NO_IMPLICIT_EXTERN_C): New macro.
854         (SWITCH_TAKES_ARG): Likewise.
855         (LOCAL_LABEL_PREFIX): Likewise.
856         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
857         (TARGET_N_FORMAT_TYPES): Delete.
858         (TARGET_FORMAT_TYPES): Likewise.
859         (ASM_DECLARE_FUNCTION_SIZE): Likewise.
860         * config/sparc/elf.h: Delete.
861         * config/sparc/sp-elf.h: New file.
862
863 2005-01-24  Kazu Hirata  <kazu@cs.umass.edu>
864
865         * tree-flow-inline.h (phi_arg_from_edge): Remove.
866         * tree-flow.h: Remove the corresponding prototype.
867         * tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-ssa.c,
868         tree-vectorizer.c: Use dest_idx instead of phi_arg_from_edge.
869
870 2005-01-24  Jakub Jelinek  <jakub@redhat.com>
871
872         PR target/17751
873         * config/rs6000/rs6000.c (rs6000_file_start): Create toc section
874         for AIX ABI or ELF -fPIC.
875         (rs6000_emit_load_toc_table): Don't create toc_section here.
876         (rs6000_xcoff_file_start): Nor here.
877
878 2005-01-24  J"orn Rennecke <joern.rennecke@st.com>
879
880         * sh.c (ra.h): Don't #include.
881         (hard_regs_intersect_p): New function, resurrected from ra.c.
882
883         * sh.c: Fix 1996 Copyright.
884
885 2005-01-24  Richard Henderson  <rth@redhat.com>
886             Aldy Hernandez  <aldyh@redhat.com>
887
888         * regrename.c (note_sets): Handle subregs.
889
890 2005-01-24  Joseph S. Myers  <joseph@codesourcery.com>
891
892         PR bootstrap/18058
893         * genconditions.c (write_header, write_conditions): Elide file if
894         not GCC >= 3.0.1.
895
896 2005-01-24  Kazu Hirata  <kazu@cs.umass.edu>
897
898         * c-opts.c, expmed.c, gengtype.c, tree-complex.c,
899         config/arm/iwmmxt.md, config/avr/avr.c, config/s390/s390.h:
900         Update copyright.
901
902 2005-01-24  Jakub Jelinek  <jakub@redhat.com>
903
904         * builtins.c (get_pointer_alignment, gimplify_va_arg_expr,
905         expand_builtin_printf, expand_builtin_fprintf,
906         expand_builtin_sprintf): Use POINTER_TYPE_P instead TREE_CODE
907         checking against POINTER_TYPE.
908         (validate_arglist): Handle POINTER_TYPE code by checking
909         POINTER_TYPE_P.
910
911 2005-01-24  Paolo Bonzini  <bonzini@gnu.org>
912
913         * rtlanal.c (non_rtx_starting_operands, for_each_rtx_1,
914         init_rtlanal): New.
915         (for_each_rtx): Call for_each_rtx_1.
916         * rtl.h (init_rtlanal): Declare.
917         * toplev.c (backend_init): Call init_rtlanal.
918
919 2005-01-24  Jakub Jelinek  <jakub@redhat.com>
920
921         * flow.c (propagate_one_insn): Formatting.
922
923         PR middle-end/19551
924         * flow.c (libcall_dead_p): Be more conservative if unsure.
925         If there are any instructions between insn and call, see if they are
926         all dead before saying the libcall is dead.
927
928 2005-01-24  Uros Bizjak  <uros@kss-loka.si>
929
930         * config/i386/i386.md (*extendsfdf2_sse): Use "nonimmediate_operand"
931         operand constraint for operand 0.
932
933 2005-01-23  Richard Henderson  <rth@redhat.com>
934
935         PR 19486
936         * tree-complex.c (expand_complex_div_wide): Set EDGE_FALLTHRU on
937         edges leading to join block.
938
939 2005-01-23  Roger Sayle  <roger@eyesopen.com>
940
941         * expmed.c (expand_mult_highpart): Make static.  Change type of
942         constant multiplier argument from unsigned HOST_WIDE_INT to rtx.
943         (expand_divmod): Updates calls to expand_mult_highpart by using
944         gen_int_mode to pass a CONST_INT rtx.
945         * rtl.h (expand_mult_highpart): Remove prototype.
946
947 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
948
949         * flow.c (regset_bytes, regset_size): Remove.
950
951         * cfganal.c: Fix a reference to Harvey's paper.
952
953 2005-01-23  Steven Bosscher  <stevenb@suse.de>
954
955         PR rtl-optimization/19464
956         * tree-optimize.c (init_tree_optimization_passes): Add one more
957         copyrename pass just before out-of-ssa.
958
959 2005-01-23  Joseph S. Myers  <joseph@codesourcery.com>
960
961         PR bootstrap/18058
962         * recog.c (recog_memoized): Don't define if GENERATOR_FILE.
963         * ggc-none.c (ggc_free): Define.
964
965 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
966
967         * cse.c (max_reg, max_insn_uid): Remove.
968         (cse_main): Don't access max_reg or max_insn_uid.
969
970         * c-common.c (explicit_flag_signed_bitfields,
971         lang_statement_code_p, lang_expand_function_end): Remove.
972         * c-common.h: Remove the corresponding declarations.
973         * c-opts.c (c_common_handle_option): Remove all write access
974         to explicit_flag_signed_bitfields.
975
976         * cgraph.c (cgraph_varpool_n_nodes): Remove.
977         (cgraph_varpool_node): Don't access cgraph_varpool_n_nodes.
978         * cgraph.h: Remove the corresponding declaration.
979
980         * gcse.c (null_pointer_info): Remove.
981
982 2005-01-23  Roger Sayle  <roger@eyesopen.com>
983             Eric Botcazou  <ebotcazou@libertysurf.fr>
984
985         * combine.c (simplify_logical): Only simplify logical expressions
986         of the form ior(and(x,y),z) by the inverse distributive law if the
987         result is cheaper than the original.
988
989 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
990
991         * alias.c, c-common.h, c-incpath.c, c-incpath.h, expr.c,
992         fold-const.c, gimplify.c, params.h, tree-data-ref.c,
993         tree-if-conv.c, tree-nested.c, tree-outof-ssa.c,
994         tree-ssa-dom.c, tree-vectorizer.c, tree.def, config/darwin.c,
995         config/freebsd-spec.h, config/arm/arm.h,
996         config/h8300/h8300.md, config/i386/i386.md,
997         config/i386/predicates.md, config/i386/sse.md,
998         config/ia64/ia64.c, config/ip2k/ip2k.c, config/s390/s390.c,
999         config/vax/vax.md: Fix comment typos.  Follow spelling
1000         conventions.
1001
1002 2005-01-23  Steven Bosscher  <stevenb@suse.de>
1003
1004         * gengtype.c (walk_type): Produce `not equal to' compares for loop
1005         tests, instead of `less than'.
1006
1007 2005-01-23  Richard Sandiford  <rsandifo@redhat.com>
1008
1009         * function.c (assign_parm_setup_block): When creating a new stack slot
1010         for a parameter, get its alignment from the parameter's DECL_ALIGN
1011         rather than the type's TYPE_ALIGN.  Make sure that the parameter
1012         is at least word aligned.
1013
1014 2005-01-22  Roger Sayle  <roger@eyesopen.com>
1015
1016         PR middle-end/19378
1017         * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
1018
1019 2005-01-22  Richard Henderson  <rth@redhat.com>
1020
1021         PR target/19506
1022         * config/i386/i386.md (movsfcc_1_sse_max): Use nonimmediate_operand
1023         in both compare operands.
1024         (movdfcc_1_sse_max): Likewise.
1025         (movsfcc_1_sse): Likewise.  Add earlyclobber for scratch.
1026         (movdfcc_1_sse): Likewise.
1027         * config/i386/i386.c (ix86_split_sse_movcc): Emit copies into the
1028         scratch register as needed.
1029
1030 2005-01-22  Richard Henderson  <rth@redhat.com>
1031
1032         * config/i386/i386.md (smaxsf3): Fix mnemonic typo.
1033
1034         * config/i386/i386.c (ix86_prepare_fp_compare_args): Fix is_sse test.
1035
1036 2005-01-22  Richard Henderson  <rth@redhat.com>
1037
1038         * genopinit.c (optabs): Use smin/smax for floating point too.
1039         * doc/md.texi: Update to match.  Clarify that floating point
1040         results are undefined for +0/-0 and NaN.
1041         * doc/rtl.texi: Likewise.
1042         * rtl.def (SMIN, SMAX): Likewise
1043         * tree.def (MIN_EXPR, MAX_EXPR): Likewise.
1044
1045         * config/alpha/alpha.md (smaxdf3, smindf3, smaxsf3, sminsf3): Add
1046         leading 's' to the name.
1047         * config/ia64/ia64.md (smaxsf3, sminsf3, smaxdf3, smindf3,
1048         smaxxf3, sminxf3): Likewise.
1049         * config/rs6000/rs6000.md (smaxdf3, smindf3, smaxsf3, sminsf3):
1050         Likewise.
1051
1052 2005-01-22  Paul Brook  <paul@codesourcery.com>
1053
1054         * config/arm/arm.md: Use "Uy" constraint for wcgr load/stores.
1055
1056 2005-01-21  Mark Dettinger  <dettinge@de.ibm.com>
1057
1058         * config/s390/s390.c (struct processor_costs): New fields 
1059         dlgr, dlr, dr, dsgfr, dsgr.
1060         (z900_cost, z990_cost): Values for new fields.
1061         (s390_rtx_costs): New cases MEM und COMPARE in switch
1062         statement. Modified handling of SIGN_EXTEND, ZERO_EXTEND,
1063         DIV, MOD, UDIV, UMOD.
1064
1065 2005-01-21  Ulrich Weigand  <uweigand@de.ibm.com>
1066
1067         * config/s390/s390.md ("doloop_si64"): Reload input value directly
1068         into the register being decremented.
1069         ("doloop_si31", "doloop_di"): Likewise.
1070         ("*doloop_si_long"): Adapt pattern.
1071
1072 2005-01-21  Ulrich Weigand  <uweigand@de.ibm.com>
1073
1074         * config/s390/s390.h (HARD_REGNO_NREGS): Fix computation for
1075         access registers.
1076         (CLASS_MAX_NREGS): Likewise.
1077
1078 2005-01-21  Daniel Berlin  <dberlin@dberlin.org>
1079
1080         * doc/tree-ssa.texi (Statement Operands): Add example for new
1081         must-def macro. Note deprecation of old operands interface.
1082
1083 2005-01-22  Richard Sandiford  <rsandifo@redhat.com>
1084
1085         PR tree-optimization/19484
1086         * tree-cfg.c (remove_fallthru_edge): New function.
1087         (cleanup_control_flow): Remove fallthru edges from calls that are
1088         now known not to return.
1089
1090 2005-01-20  Daniel Berlin  <dberlin@dberlin.org>
1091
1092         Fix PR tree-optimization/19038
1093         * tree-ssa-dom.c (cprop_operand): Don't replace loop invaeriant
1094         copies with loop variant ones.
1095
1096 2005-01-22  Kazu Hirata  <kazu@cs.umass.edu>
1097
1098         * cfganal.c, real.h, reorg.c, timevar.def, tree-ssa-ccp.c,
1099         config/alpha/alpha-protos.h, config/alpha/alpha.h,
1100         config/alpha/alpha.md, config/alpha/predicates.md,
1101         config/sparc/freebsd.h, config/sparc/netbsd-elf.h,
1102         config/sparc/sol2.h: Update copyright.
1103
1104         * tree-cfg.c (remove_forwarder_block_with_phi): Look at the
1105         first label to see if it is a nonlocal label.
1106
1107 2005-01-22  David Edelsohn  <edelsohn@gnu.org>
1108             Andrew Pinski  <pinskia@physics.uc.edu>
1109
1110         PR target/19491
1111         * config/rs6000/rs6000.c (rs6000_va_start): Saturate n_gpr at
1112         maximum number of GPRs.  Saturate n_fpr at maximum number of FPRs.
1113
1114 2005-01-22  Ralf Corsepius  <ralf.corsepius@rtems.org>
1115
1116         * config/rs6000/rtems.h: Update copyright.
1117
1118 2005-01-22  Ralf Corsepius  <ralf.corsepius@rtems.org>
1119
1120         PR target/19548
1121         * config/rs6000/rtems.h: Resurrect cpp_os_rtems_spec from gcc < 3.4.
1122         (CPP_OS_RTEMS_SPEC): New (From gcc-3.3's config/rs6000/sys4.h).
1123         (SUBSUBTARGET_EXTRA_SPECS): Use CPP_OS_RTEMS_SPEC.
1124
1125 2005-01-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1126
1127         PR c/18809
1128         * c-typeck.c (convert_arguments): Check for error_mark_node.
1129
1130 2005-01-21  Ian Lance Taylor  <ian@airs.com>
1131
1132         PR tree-optimization/13000
1133         * tree-inline.c: Include "tree-flow.h".
1134         (expand_call_inline): If warn_return_type, warn if non-void inline
1135         function falls through.
1136         * tree-cfg.c (execute_warn_function_return): Don't warn about
1137         control reaching end if TREE_NO_WARNING is set.  Set
1138         TREE_NO_WARNING.
1139         * gimple-low.c (block_may_fallthru): Don't assume that SWITCH_EXPR
1140         has been lowered.
1141         * gimplify.c (shortcut_cond_expr): Don't emit a jump over the else
1142         branch if we don't need one.
1143         * c-typeck.c: Include "tree-flow.h"
1144         (c_finish_bc_stmt): Don't add a goto if the current statement
1145         list doesn't fall through to the current point.
1146
1147 2005-01-21  Roger Sayle  <roger@eyesopen.com>
1148
1149         PR rtl-optimization/576
1150         * real.c (real_arithmetic): Change return type from void to bool
1151         to return an indication that the result may be inexact.
1152         * real.h (real_arithmeric): Update prototype.
1153         * fold-const.c (const_binop):  Don't constant fold floating
1154         point expressions when the user specifies -frounding-math and
1155         the result may depend upon the run-time rounding mode.
1156         (fold_convert_const_real_from_real): Clean-up.
1157         (fold_initializer): Ignore flag_rounding_math for initializers.
1158         * simplify-rtx.c (simplify_binary_operation): Likewise, don't
1159         constant fold FP operations with flag_rounding_math if the
1160         result may depend upon the run-time rounding mode.
1161
1162 2005-01-21  Tom Tromey  <tromey@redhat.com>
1163
1164         * c-cppbuiltin.c (define__GNUC__): Correct assertion.
1165
1166 2005-01-21  Kazu Hirata  <kazu@cs.umass.edu>
1167
1168         * tree-cfg.c: Fix comment typos.
1169
1170 2005-01-21  J"orn Rennecke <joern.rennecke@st.com>
1171
1172         * passes.c (rest_of_handle_flow2): Close / open the flow2 dump file
1173         around the call to rest_of_handle_branch_target_load_optimize.
1174
1175 2005-01-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
1176
1177         * config.gcc (sparc-*-netbsdelf*): Include dbxelf.h
1178         (sparc64-*-openbsd*): Likewise.
1179         (sparclite-*-elf*): Include tm-dwarf2.h.
1180         (sparc86x-*-elf*): Likewise.
1181         (sparc64-*-elf*): Likewise.
1182         * config/sparc/linux64.h (DWARF2_DEBUGGING_INFO): Delete.
1183         (DBX_DEBUGGING_INFO): Likewise.
1184         * config/sparc/liteelf.h (DWARF2_DEBUGGING_INFO): Likewise.
1185         (PREFERRED_DEBUGGING_TYPE): Likewise.
1186         * config/sparc/netbsd-elf.h (PREFERRED_DEBUGGING_TYPE): Likewise.
1187         * config/sparc/sp64-elf.h (DBX_DEBUGGING_INFO): Likewise.
1188         (PREFERRED_DEBUGGING_TYPE): Likewise.
1189         * config/sparc/sp86x-elf.h (DWARF2_DEBUGGING_INFO): Likewise.
1190         (PREFERRED_DEBUGGING_TYPE): Likewise.
1191         * config/sparc/sparc.h (DBX_DEBUGGING_INFO): Likewise.
1192
1193 2005-01-21  Hans-Peter Nilsson  <hp@bitrange.com>
1194
1195         PR target/18701
1196         * combine.c (combine_simplify_rtx): Revert change of 2004-12-31.
1197
1198 2005-01-20  Paul Brook  <paul@codesourcery.com>
1199
1200         * doc/rtl.texi: Document value extension requirements for CONST_INT.
1201
1202 2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
1203
1204         * tree-cfg.c (tree_verify_flow_info): Check that a nonlocal
1205         label is first in a sequence of labels.
1206
1207         * tree-cfg.c (tree_verify_flow_info): Fix a typo.
1208
1209 2005-01-20  Janis Johnson  <janis187@us.ibm.com>
1210             Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1211
1212         * doc/sourcebuild.texi (Test Directives): New.
1213
1214 2005-01-20  Roger Sayle  <roger@eyesopen.com>
1215
1216         * real.c (real_floor): Don't leave the result uninitialized when
1217         mode is VOIDMode, but return the unrounded intermediate value.
1218         (real_ceil): Likewise.
1219
1220 2005-01-20  Paul Brook  <paul@codesourcery.com>
1221
1222         * config/arm/arm.md (insv): Use gen_int_mode.
1223
1224 2005-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
1225
1226         * config/sparc/freebsd.h (ASM_OUTPUT_INTERNAL_LABELREF): Delete.
1227         * config/sparc/linux.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
1228         * config/sparc/linux64.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
1229         * config/sparc/netbsd-elf.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
1230         * config/sparc/sol2.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
1231
1232 2005-01-20  Daniel Berlin  <dberlin@dberlin.org>
1233
1234         Fix PR debug/19124
1235         * dwarf2out.c (concat_loc_descriptor): We don't know we can use
1236         fbreg, so we have to assume we can't.
1237         (loc_descriptor_from_tree_1): Ditto.
1238         (containing_function_has_frame_base): New function.
1239         (add_location_or_const_value_attribute): Use it.
1240         Also try to generate a frame_base from a single element location
1241         list.
1242         
1243 2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
1244
1245         PR tree-optimization/15349
1246         * timevar.def (TV_TREE_MERGE_PHI): New.
1247         * tree-cfg.c (tree_forwarder_block_p): Add a new argument
1248         PHI_WANTED.
1249         (remove_forwarder_block, cleanup_forwarder_blocks): Adjust the
1250         calls to tree_forwarder_block_p.
1251         (remove_forwarder_block_with_phi, merge_phi_nodes,
1252         gate_merge_phi, pass_merge_phi): New.
1253         * tree-optimize.c (init_tree_optimization_passes): Add
1254         pass_merge_phi.
1255         * tree-pass.h: Add an extern for pass_merge_phi;
1256
1257 2005-01-20  Richard Henderson  <rth@redhat.com>
1258
1259         PR target/19418
1260         * config/i386/emmintrin.h (_mm_castpd_ps, _mm_castpd_si128): New.
1261         (_mm_castps_pd, _mm_castps_si128): New.
1262         (_mm_castsi128_ps, _mm_castsi128_pd): New.
1263
1264 2005-01-20  Richard Henderson  <rth@redhat.com>
1265
1266         PR target/19530
1267         * config/i386/mmintrin.h (_mm_cvtsi32_si64): Use
1268         __builtin_ia32_vec_init_v2si.
1269         (_mm_cvtsi64_si32): Use __builtin_ia32_vec_ext_v2si.
1270         * config/i386/i386.c (IX86_BUILTIN_VEC_EXT_V2SI): New.
1271         (ix86_init_mmx_sse_builtins): Create it.
1272         (ix86_expand_builtin): Expand it.
1273         (ix86_expand_vector_set): Handle V2SFmode and V2SImode.
1274         * config/i386/mmx.md (vec_extractv2sf_0, vec_extractv2sf_1): New.
1275         (vec_extractv2si_0, vec_extractv2si_1): New.
1276
1277 2005-01-20  Richard Henderson  <rth@redhat.com>
1278
1279         PR target/16533
1280         * config/i386/i386.c (ix86_expand_push): New.
1281         * config/i386/mmx.md (push<MMXMODE>1): New.
1282         * config/i386/sse.md (push<SSEMODE>1): New.
1283         * config/i386/i386-protos.h: Update.
1284
1285 2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
1286
1287         * params.def, params.h, predict.c, tree-ssa-loop-im.c: Update
1288         copyright.
1289
1290 2005-01-20  Richard Henderson  <rth@redhat.com>
1291
1292         * rtl.def (CONST_VECTOR): Use RTX_CONST_OBJ.
1293         * rtl.h (CONSTANT_P): Don't special case CONST_VECTOR.
1294
1295 2005-01-19  Richard Henderson  <rth@redhat.com>
1296
1297         PR target/19350
1298         * config/i386/i386.c (ix86_expand_vector_move_misalign): Convert
1299         to V4SFmode in SSE1 fallback load path.
1300
1301 2005-01-19  Richard Henderson  <rth@redhat.com>
1302
1303         * config/i386/i386.c (ix86_expand_vector_init_one_var): Fix typo
1304         in QImode expansion to ix86_expand_vector_set.
1305         (ix86_expand_vector_init_general): Fix typo in V8HImode recursive call.
1306
1307 2005-01-19  Richard Henderson  <rth@redhat.com>
1308
1309         PR target/19511
1310         * config/i386/i386.c (ix86_preferred_reload_class): Return a proper
1311         subclass of the input class.
1312         (ix86_secondary_memory_needed): Always true for cross-MMX classes.
1313         Always true for cross-SSE1 classes.  Rationalize conditionals.
1314         * config/i386/i386.h (SSE_CLASS_P, MMX_CLASS_P): Use straight equality.
1315         * config/i386/i386.md (movsi_1): Add MMX/SSE zeros.  Fix alternatives
1316         for SSE1.  Don't check TARGET_INTER_UNIT_MOVES.
1317         (movdi_2): Add MMX/SSE zeros.
1318         (movdi_1_rex64): Likewise.  Don't check TARGET_INTER_UNIT_MOVES.
1319         (movsf_1): Don't check TARGET_INTER_UNIT_MOVES.
1320         (zero_extendsidi2_32, zero_extendsidi2_rex64): Likewise.
1321         (movsi_1_nointernunit, movdi_1_rex64_nointerunit): Remove.
1322         (movsf_1_nointerunit, zero_extendsidi2_32_1): Remove.
1323         (zero_extendsidi2_rex64_1): Remove.
1324         (MOV0 peephole): Check GENERAL_REG_P.
1325
1326 2005-01-19  Richard Henderson  <rth@redhat.com>
1327
1328         PR target/19427
1329         * config/i386/i386.c (ix86_expand_vector_set): Fix third and fourth
1330         shufps elements.
1331         (ix86_expand_vector_extract): Likewise.
1332
1333 2005-01-19  Richard Henderson  <rth@redhat.com>
1334
1335         PR middle-end/19304
1336         * expr.c (emit_move_change_mode): New argument force; use
1337         simplify_gen_subreg if true.
1338         (emit_move_via_alt_mode): Merge into ...
1339         (emit_move_via_integer): ... here.
1340         (emit_move_ccmode): Use emit_move_change_mode directly.
1341
1342 2005-01-19  Richard Henderson  <rth@redhat.com>
1343
1344         PR target/19518
1345         * config/alpha/alpha.c (alpha_rtx_costs): Handle HIGH.
1346         (alpha_preferred_reload_class): Handle CONST_VECTOR.
1347         (alpha_emit_set_const_1): Add no_output parameter; don't emit
1348         rtl if true.
1349         (alpha_emit_set_const): Likewise.  Make static.
1350         (alpha_emit_set_long_const): Make static.
1351         (alpha_extract_integer): Split out from alpha_expand_mov.
1352         (alpha_split_const_mov): Likewise.
1353         (alpha_expand_mov): Use them.  Handle CONST_VECTOR.
1354         (alpha_legitimate_constant_p): New.
1355         * config/alpha/alpha-protos.h: Update.
1356         * config/alpha/alpha.h (REGISTER_MOVE_COST): Correct fp<->gp cost.
1357         (LEGITIMATE_CONSTANT_P): Re-implement with a function.
1358         * config/alpha/alpha.md (movsi): Add n alternative.
1359         (movsi_nt_vms, movdi_er_nofix, movdi_er_fix, movdi_fix): Likewise.
1360         (mov<VEC>_fix, mov<VEC>_nofix): Add i alternative.
1361         (splitters for all of the above): Use alpha_split_const_mov.
1362         * config/alpha/predicates.md (non_add_const_operand): New.
1363         (non_zero_const_operand): New.
1364         (input_operand): Use alpha_legitimate_constant_p after reload.
1365
1366 2005-01-19  Zdenek Dvorak  <dvorakz@suse.cz>
1367
1368         PR tree-optimization/19038
1369         * tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): New function.
1370         (add_candidate): Add ivs with increment in latch only if
1371         allow_ip_end_pos_p is true.
1372         (determine_iv_cost): Use empty_block_p.
1373
1374 2005-01-19  Daniel Berlin  <dberlin@dberlin.org>
1375
1376         * cfganal.c (compute_dominance_frontiers_1): Replace with new algorithm
1377         (compute_dominance_frontiers): Ditto.
1378
1379 2005-01-19  Ralf Corsepius  <ralf.corsepius@rtems.org>
1380
1381         PR target/19529
1382         * config/sh/t-rtems: New. 
1383         * config.gcc (sh-*-rtems*): Reflect having added config/sh/t-rtems.
1384
1385 2005-01-19  Zdenek Dvorak  <dvorakz@suse.cz>
1386
1387         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Always subtract
1388         the offset of the selected field.
1389
1390 2005-01-19  Kazu Hirata  <kazu@cs.umass.edu>
1391
1392         * tree-cfg.c (remove_forwarder_block): Fix the check to
1393         prevent a nonlocal label from appearing in the middle of a
1394         basic block.
1395
1396 2005-01-19  Hans-Peter Nilsson  <hp@axis.com>
1397
1398         PR rtl-optimization/19462
1399         * reorg.c (find_end_label): Create return insn only if
1400         current_function_epilogue_delay_list is empty.
1401
1402 2005-01-19  Paolo Bonzini  <bonzini@gnu.org>
1403
1404         * doc/passes.texi: Remove paragraph mentioning new-ra.
1405
1406 2005-01-19  Jakub Jelinek  <jakub@redhat.com>
1407
1408         PR rtl-optimization/15139
1409         * combine.c: Include params.h.
1410         (count_rtxs): New function.
1411         (record_value_for_reg): If replace_rtx would replace at least
1412         2 occurrences of REG in VALUE and TEM is really large, replace REG with
1413         (clobber (const_int 0)) instead of TEM.
1414         * params.def (PARAM_MAX_LAST_VALUE_RTL): New.
1415         * params.h (MAX_LAST_VALUE_RTL): New.
1416         * Makefile.in (combine.o): Depend on $(PARAMS_H).
1417         * doc/invoke.texi (--param max-last-value-rtl=N): Document.
1418
1419         PR c/17297
1420         * c-typeck.c (digest_init): Only call build_vector if all constructor
1421         elements are *_CST nodes.
1422         * gimplify.c (gimplify_init_constructor): Likewise.
1423
1424         PR middle-end/19164
1425         * c-typeck.c (digest_init): Only call build_vector if inside_init
1426         is a CONSTRUCTOR.
1427
1428 2005-01-18  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1429
1430         * toplev.c (init_asm_output): Remove dead #ifdef.
1431
1432 2005-01-18  Kaz Kojima  <kkojima@gcc.gnu.org>
1433
1434         * config/sh/linux.h (TARGET_C99_FUNCTIONS): Define.
1435
1436 2005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
1437
1438         * calls.c (expand_call): Check DECL_BUILT_IN_CLASS before
1439         accessing DECL_FUNCTION_CODE.
1440         * dojump.c (do_jump): Likewise.
1441         * gimplify.c (gimplify_call_expr): Likewise.
1442         * predict.c (expr_expected_value): Likewise.
1443         (strip_builtin_expect): Likewise.
1444         * tree-inline.c (estimate_num_insns_1): Likewise.
1445         * tree-ssa-loop-im.c (stmt_cost): Likewise
1446         * fold-const.c (fold): Test for BUILT_IN_NORMAL.
1447         (tree_expr_nonnegative_p): Likewise.
1448
1449 2005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
1450
1451         * config/sparc/sparc.c (load_pic_register): Emit the appropriate
1452         variant of the load_pcrel_sym pattern.
1453         * config/sparc/sparc.md (P macro): Move to the top.
1454         (load_pcrel_sym): Macroize using P.
1455         (save_register_window): Likewise.
1456
1457 2005-01-18  Aldy Hernandez  <aldyh@redhat.com>
1458
1459         * config/rs6000/rs6000.md ("sunordered"): Disable for e500.
1460         ("sordered"): Same.
1461
1462 2005-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
1463
1464         PR C/19472
1465         * c-typeck.c (build_asm_expr): Strip nops off
1466         input memory operands.
1467
1468 2005-01-18  David Edelsohn  <edelsohn@gnu.org>
1469
1470         * config/rs6000/aix43.h (CPLUSPLUS_CPP_SPEC): Delete
1471         _XOPEN_SOURCE, _XOPEN_SOURCE_EXTENDED, _LARGE_FILE_API.
1472         * config/rs6000/aix51.h (CPLUSPLUS_CPP_SPEC): Same.
1473         * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Same.
1474
1475 2005-01-18  Joel Sherrill <joel.sherrill@oarcorp.com>
1476
1477         PR target/19379
1478         * config/i386/i386.c (override_options): If the 80387 is disabled,
1479         then do not return FP values using FP registers.
1480
1481 2005-01-18  Kazu Hirata  <kazu@cs.umass.edu>
1482
1483         * basic-block.h, c-common.c, c-cppbuiltin.c, c-lang.c,
1484         c-tree.h, cfgbuild.c, cgraph.c, cgraph.h, collect2.c,
1485         combine.c, config.gcc, coverage.h, cse.c, cselib.c,
1486         defaults.h, df.c, dwarf2asm.c, dwarf2out.c, explow.c, expr.c,
1487         flow.c, fold-const.c, gcse.c, ggc-page.c, gimple-low.c,
1488         gimplify.c, ifcvt.c, langhooks-def.h, lcm.c, optabs.h,
1489         output.h, postreload-gcse.c, postreload.c, recog.c,
1490         resource.c, rtl.def, rtlanal.c, sched-deps.c, sched-rgn.c,
1491         targhooks.h, toplev.c, tree-data-ref.c, tree-eh.c,
1492         tree-flow.h, tree-loop-linear.c, tree-mudflap.h, tree-nrv.c,
1493         tree-optimize.c, tree-outof-ssa.c, tree-pass.h,
1494         tree-scalar-evolution.c, tree-ssa-copy.c, tree-ssa-dce.c,
1495         tree-ssa-dse.c, tree-ssa-loop-ivopts.c, tree-ssa-operands.c,
1496         tree-ssa-pre.c, tree-ssa.c, tree-vectorizer.c, tree.def,
1497         unwind-dw2-fde-darwin.c, var-tracking.c: Update copyright.
1498
1499         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
1500         config/alpha/alpha.c, config/arm/vfp.md,
1501         config/i386/emmintrin.h, config/i386/i386-modes.def,
1502         config/i386/i386-protos.h, config/i386/i386.h,
1503         config/i386/pmmintrin.h, config/i386/ppro.md,
1504         config/i386/predicates.md, config/i386/xmmintrin.h,
1505         config/i860/i860.c, config/ia64/ia64-modes.def,
1506         config/ia64/ia64-protos.h, config/ia64/ia64.h,
1507         config/ia64/ia64.md, config/ia64/itanium1.md,
1508         config/ia64/itanium2.md, config/ia64/predicates.md,
1509         config/iq2000/iq2000.h, config/mips/linux64.h,
1510         config/rs6000/aix41.h, config/rs6000/aix43.h,
1511         config/rs6000/aix52.h, config/rs6000/darwin-fallback.c,
1512         config/rs6000/rs6000.c, config/rs6000/rs6000.h,
1513         config/rs6000/spe.md, config/sh/sh.md, config/sparc/linux.h,
1514         config/sparc/linux64.h, config/sparc/litecoff.h,
1515         config/sparc/sp64-elf.h, config/sparc/sparc.c,
1516         config/sparc/sparc.h, config/sparc/sparc.md,
1517         config/sparc/sysv4-only.h: Update copyright.
1518
1519 2005-01-18  Richard Henderson  <rth@redhat.com>
1520
1521         PR target/19496
1522         * config/i386/i386.c (ix86_expand_fp_movcc): Fail for LTGT and UNEQ.
1523
1524 2005-01-18  Marc Espie  <espie@openbsd.org>
1525         * config/i386/openbsdelf.h: Typo.
1526
1527 2005-01-18  Richard Henderson  <rth@redhat.com>
1528
1529         * config/i386/i386.c (ix86_expand_fp_movcc): Remove TARGET_IEEE_FP
1530         special case for sse.
1531         * config/i386/predicates.md (sse_comparison_operator): Likewise.
1532
1533 2005-01-18  Dorit Naishlos  <dorit@il.ibm.com>
1534
1535         * tree-inline.c (estimate_num_insns_1): Added cases for
1536         ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF, and REALIGN_LOAD_EXPR.
1537
1538 2005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
1539
1540         PR rtl-optimization/19296
1541         * combine.c (simplify_comparison): Rewrite the condition under
1542         which a non-paradoxical SUBREG of a PLUS can be lifted when
1543         compared against a constant.
1544
1545 2005-01-18  Andi Kleen <ak@muc.de>
1546
1547         * c-typeck.c: (convert_for_assignment): Check warn_pointer_sign.
1548         * c.opt (-Wpointer-sign): Add.
1549         * doc/invoke.texi: (-Wpointer-sign): Add.
1550
1551 2005-01-18  Uros Bizjak  <uros@kss-loka.si>
1552
1553         * config/i386/i386.c (override_options): Revert 2004-11-24 change.
1554         * config/i386/i386.md (fmodsf3, dremsf3, *sinsf2, *cossf2, sincossf3,
1555         *tansf3_1, tansf2, atan2sf3_1, atan2sf3, atansf2, asinsf2, acossf2,
1556         logsf2, log10sf2, log2sf2, log1psf2, logbsf2, ilogbsf2, expsf2,
1557         exp10sf2, exp2sf2, expm1sf2, rintsf2, floorsf2, ceilsf2, btruncsf2,
1558         nearbyintsf2): Disable for TARGET_SSE_MATH.  Leave patterns enabled
1559         for TARGET_MIX_SSE_I387.
1560         (fmoddf3, dremdf3, *sindf2, *sinextendsfdf2, *cosdf2, *cosextendsfdf2,
1561         sincosdf3, *sincosextendsfdf3, *tandf3_1, tandf2, atan2df3_1,
1562         atan2df3, atandf2, asindf2, acosdf2, logdf2, log10df2, log2df2,
1563         log1pdf2, logbdf2, expdf2, exp10df2, exp2df2, expm1df2, rintdf2,
1564         floordf2, ceildf2, btruncdf2, nearbyintdf2): Disable for
1565         (TARGET_SSE2 && TARGET_SSE_MATH).  Leave patterns enabled for
1566         TARGET_MIX_SSE_I387.
1567         (atan2sf3, atan2df3, atan2xf3): Remove register constraints
1568         from expander.
1569
1570 2005-01-18  Uros Bizjak  <uros@kss-loka.si>
1571
1572         PR target/19424
1573         * config/i386/mmx.md (*movv2sf_internal_rex64, *movv2sf_internal):
1574         Add movaps alternative for xmm reg->reg move.
1575
1576 2005-01-17  Jeff Law  <law@redhat.com>
1577
1578         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Clear SSA_NAME_VALUE
1579         at the end of the main DOM loop rather than just before DOM exits.
1580
1581 2005-01-17  Diego Novillo  <dnovillo@redhat.com>
1582
1583         PR tree-optimization/19121
1584         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): When
1585         adding aliases to a name tag, also add them to the pointer's
1586         type tag.
1587         * tree-ssa-copy.c (merge_alias_info): Do not merge flow
1588         sensitive alias info at all.  Only check that the two pointers
1589         have compatible pointed-to sets.
1590         * tree-ssa.c (verify_name_tags): Verify that the alias set of
1591         a pointer's type tag is a superset of the alias set of the
1592         pointer's name tag.
1593
1594 2005-01-17  James E Wilson  <wilson@specifixinc.com>
1595
1596         PR target/19357
1597         * config/ia64/ia64.md (movxf): Handle general register source.  Adjust
1598         comment to document why.
1599
1600 2005-01-17  Richard Henderson  <rth@redhat.com>
1601
1602         * config/i386/sse.md (smaxv4sf3_finite, sse_vmsmaxv4sf3_finite,
1603         sminv4sf3_finite, sse_vmsminv4sf3_finite, smaxv2df3_finite,
1604         sse2_vmsmaxv2df3_finite, sminv2df3_finite,
1605         sse2_vmsminv2df3_finite): New.
1606         (smaxv4sf3, sse_vmsmaxv4sf3, sminv4sf3, sse_vmsminv4sf3, smaxv2df3,
1607         sse2_vmsmaxv2df3, sminv2df3, sse2_vmsminv2df3): Remove commutative.
1608         Force op1 into register.
1609
1610 2005-01-17  Kelley Cook  <kcook@gcc.gnu.org>
1611
1612         * Makefile.in (STAGEMOVESTUFF): Stage all the stamp files to prevent
1613         bubblestrap from always rebuilding build directory.
1614
1615 2005-01-17  Ulrich Weigand  <uweigand@de.ibm.com>
1616
1617         * config/s390/s390.md ("*clc"): Remove incorrect '='.
1618         ("*cmpmem_short"): Likewise.
1619
1620 2005-01-17  Steven Bosscher  <stevenb@suse.de>
1621
1622         * basic-block.h: Document BB_* flags.
1623         * regrename.c (copyprop_hardreg_forward): Don't use BB_VISITED,
1624         use an sbitmap instead.
1625         * sched-rgn.c (compute_trg_info): Likewise.
1626
1627 2005-01-17  Richard Sandiford  <rsandifo@redhat.com>
1628
1629         * config.gcc (mips64*-*-linux*): Set the default abi to n32.  Remove
1630         redundant target_cpu_default and extra_parts lines.  Use the default
1631         "from-abi" ISA.
1632         * config/mips/linux64.h (DRIVER_DEFAULT_ABI_SELF_SPEC): Delete.
1633         (SUBTARGET_EXTRA_SPECS): Delete.
1634         (DRIVER_SELF_SPECS): Remove architecture lines.  Set the ABI directly.
1635         (SUBTARGET_ASM_SPEC): Remove -mabi=n32 and -mabi=64 mappings.
1636         * config/mips/t-linux64 (MULTILIB_DIRNAMES): Use "32" for -mabi=32
1637         and "n32" for -mabi=n32.
1638
1639 2005-01-17  Ian Lance Taylor  <ian@airs.com>
1640
1641         PR c/5675
1642         * c-typeck.c (build_c_cast): Revert patch of 2003-02-16: don't
1643         fold constant variables into initial values.
1644
1645 2005-01-17  Kazu Hirata  <kazu@cs.umass.edu>
1646
1647         * tree-cfg.c (tree_can_merge_blocks_p): Reorder two checks.
1648
1649         * tree-cfg.c (tree_forwarder_block_p): Speed up by walking
1650         through the statements backward.
1651
1652 2005-01-17  Ian Lance Taylor  <ian@airs.com>
1653
1654         PR middle-end/13127:
1655         * tree-inline.c (expand_call_inline): Set TREE_NO_WARNING on
1656         a variable set to the return value of the inlined function.
1657
1658 2005-01-17  Mark Dettinger  <dettinge@de.ibm.com>
1659
1660         * rtlanal.c (rtx_cost): Assign cost of 0 to a SUBREG
1661         when modes are tieable.
1662
1663 2005-01-17  Ranjit Mathew  <rmathew@hotmail.com>
1664
1665         * gthr-posix.h (__gthread_active_p): Use pthread_cancel instead
1666         of pthread_create to find out if threads are enabled.
1667         * gthr-posix95.h (__gthread_active_p): Likewise.
1668
1669 2005-01-17  Paolo Bonzini  <bonzini@gnu.org>
1670
1671         * common.opt (-fnew-ra): Remove.
1672         * ra*.*: Remove.
1673         * toplev.h (flag_new_regalloc): Remove.
1674         * Makefile.in (ra*.*): Don't mention.
1675         * passes.c (rest_of_handle_new_regalloc): Remove.
1676         (rest_of_handle_combine, rest_of_compilation): Always consider
1677         flag_new_regalloc as false.
1678         * doc/invoke.texi: Don't document -fnew-ra.
1679
1680 2005-01-17  Paolo Bonzini <bonzini@gnu.org>
1681
1682         * bb-reorder.c (fix_edges_for_rarely_executed_code): Remove
1683         last parameter to reg_scan.
1684         * loop.c (loop_optimize): Likewise.
1685         * passes.c (rest_of_handle_tracer, rest_of_handle_if_conversion,
1686         rest_of_handle_web, rest_of_handle_cfg, rest_of_handle_jump_bypass,
1687         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
1688         rest_of_handle_gcse, rest_of_handle_loop_optimize,
1689         rest_of_handle_loop2, rest_of_handle_jump2): Likewise.
1690         * regclass.c (reg_scan): Likewise, for the declaration.
1691         * rtl.h (reg_scan): Likewise, for the prototype.
1692
1693 2005-01-17  Kazu Hirata  <kazu@cs.umass.edu>
1694
1695         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Don't call
1696         mark_dfs_back_edges.
1697
1698 2005-01-16  Daniel Berlin  <dberlin@dberlin.org>
1699
1700         * tree-ssa-pre.c (add_to_sets): s1 may be NULL.
1701         (compute_avail): Uses don't go in tmp_gen.
1702
1703 2005-01-16  Steven Bosscher  <stevenb@suse.de>
1704
1705         * ggc-page.c (ggc_alloc_stat): Use __builtin_ctzl instead of a
1706         loop to look for a free slot in a page entry.
1707
1708 2005-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1709
1710         PR target/16304
1711         * defaults.h (TARGET_DEFERRED_OUTPUT_DEFS): Provide default.
1712         * toplev.c (compile_file): Call process_pending_assemble_output_defs
1713         just before targetm.asm_out.file_end.
1714         * tree.h (process_pending_assemble_output_defs): Declare.
1715         * varasm.c (assemble_output_def, process_pending_assemble_output_defs):
1716         New functions.
1717         (assemble_alias): Defer generation of assembly code for defines when
1718         TARGET_DEFERRED_OUTPUT_DEFS is true.
1719         * config/rs6000/aix41.h (TARGET_DEFERRED_OUTPUT_DEFS): Define.
1720         * config/rs6000/aix43.h (TARGET_DEFERRED_OUTPUT_DEFS): Define.
1721         * doc/tm.texi (TARGET_DEFERRED_OUTPUT_DEFS): document.
1722
1723 2005-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1724
1725         PR target/19336
1726         * pa.c (pa_scalar_mode_supported_p): New function.
1727         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
1728         * pa.h (MIN_UNITS_PER_WORD): Add comment.
1729
1730         * pa-protos.h (prefetch_operand): Delete.
1731         (prefetch_cc_operand, prefetch_nocc_operand): New declations.
1732         * pa.c (prefetch_operand): Delete.
1733         (prefetch_cc_operand, prefetch_nocc_operand): New functions.
1734         * pa.h (EXTRA_CONSTRAINT): Add `W' constraint.
1735         (PREDICATE_CODES): Delete prefetch_operand.  Add prefetch_cc_operand
1736         and prefetch_nocc_operand.
1737         * pa.md (prefetch): Rework to avoid reload problems handling short
1738         displacements when a cache control completer needs to be provided.
1739         (prefetch_32, prefetch_64): Delete.
1740         (prefetch_cc, prefetch_nocc): New patterns.
1741
1742 2005-01-15  David Edelsohn  <edelsohn@gnu.org>
1743
1744         * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Revert previous change.
1745
1746 2005-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1747
1748         PR ada/19388
1749         * pa.c (pa_asm_output_aligned_common): Warn if specified alignment
1750         exceeds maximum alignment for global common data.
1751         * pa64-hpux.h (MAX_OFILE_ALIGNMENT): Define to 32768.
1752         * som.h (MAX_OFILE_ALIGNMENT): Likewise.
1753
1754 2004-01-15  Roger Sayle  <roger@eyesopen.com>
1755
1756         * tree-ssa-dom.c (extract_range_from_cond): Correct condition.
1757
1758 2004-01-15  Roger Sayle  <roger@eyesopen.com>
1759
1760         * harg-reg-set.h (reg_class_names): Prototype global array.
1761         * regclass.c (reg_class_names): Declare here and initialize to
1762         REG_CLASS_NAMES.
1763         (dump_regclass): Remove local declaration of reg_class_names.
1764         (regclass): Likewise.
1765         * cfg.c (dump_flow_info): Likewise.
1766         * ra-debug.c (reg_class_names): Likewise.
1767         * regrename.c (reg_class_names): Likewise.
1768         * reload.c (reg_class_names): Likewise.
1769         * reload1.c (spill_failure): Likewise.
1770         * config/m68hc11/m68hc11.c (reg_class_names): Likewise.
1771
1772 2005-01-15  Ulrich Weigand  <uweigand@de.ibm.com>
1773
1774         * config/s390/s390.md ("reload_outti"): Remove predicate for
1775         output operand.  Abort if operand is not a MEM.
1776         ("reload_outdi", "reload_outdf"): Likewise.
1777
1778 2005-01-15  Marc Espie  <espie@openbsd.org>
1779
1780         * config.gcc (*-*-openbsd*): Set HAS_LIBC_R for OpenBSD <= 3.2.
1781         (i[34567]86-*-openbsd*): Switch to ELF for OpenBSD >= 3.4.
1782         * config/openbsd.h:  Fix C++ includes for native configurations.
1783         Add proper OS_CPP_BUILTINS.  Fix libspec for recent OpenBSD.
1784         Add trampoline support.
1785         * config/i386/openbsdelf.h: New.
1786
1787 2005-01-15  Marc Espie  <espie@openbsd.org>
1788
1789         * collect2.c (main): Explicitly parse -dynamic-linker option.
1790
1791 2005-01-15  Jakub Jelinek  <jakub@redhat.com>
1792
1793         PR tree-optimization/19060
1794         * tree-ssa-dom.c (extract_range_from_cond) <case LT_EXPR, GT_EXPR>:
1795         Return 0 if op1 <= TYPE_MIN_VALUE () resp. op1 >= TYPE_MAX_VALUE ().
1796         (simplify_cond_and_lookup_avail_expr): Add assert for dummy == 0
1797         and handle extract_range_from_cond returning false.
1798         * fold-const.c (fold): Optimize comparisons with min/max even for
1799         width > HOST_BITS_PER_WIDE_INT.
1800
1801 2005-01-15  Ralf Corsepius  <ralf.corsepius@rtems.org>
1802
1803         * config/mips/rtems.h (MIPS_DEFAULT_GVALUE): Set to 0.
1804         * config/mips/t-rtems (MULTILIBS_DIRNAMES,MULTILIB_OPTIONS): 
1805         Remove little endian multilib variants.
1806         Add mips32 multilib variant.
1807
1808 2005-01-15  Kazu Hirata  <kazu@cs.umass.edu>
1809
1810         * explow.c (copy_all_reg, stabilize): Remove.
1811         * expr.h: Remove the corresponding prototypes.
1812
1813         * rtlanal.c (regs_set_between_p): Remove.
1814         * rtl.h: Remove the corresponding prototype.
1815
1816 2005-01-14  David Edelsohn  <edelsohn@gnu.org>
1817
1818         * config/rs6000/rs6000.c (rs6k_nonimmediate_operand): Rename
1819         to rs6000_nonimmediate_operand.
1820         * config/rs6000/rs6000.h (PREDICATE_CODES): Rename
1821         rs6k_nonimmediate_operand to rs6000_nonimmediate_operand.
1822         * config/rs6000/rs6000.md (movsi_internal1): Rename predicate to
1823         rs6000_nonimmediate_operand.
1824         * config/rs6000/spe.md (movdf_e500_double): Rename predicate to
1825         rs6000_nonimmediate_operand.
1826
1827 2005-01-14  Andrew Pinski  <pinskia@physics.uc.edu>
1828
1829         * tree-ssa-alias.c (pass_may_alias): Add TODO_verify_stmts.
1830
1831 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
1832
1833         * config/rs6000/rs6000.h (CLASS_MAX_NREGS): DF goes in 1 register
1834         on e500v2.
1835         (CANNOT_CHANGE_MODE_CLASS): Restrict DI mode changes on e500v2.
1836         (PREDICATE_CODES): Add rs6k_nonimmediate_operand.
1837
1838         * config/rs6000/rs6000.c (invalid_e500_subreg): New.
1839         (rs6k_nonimmediate_operand): New.
1840         (rs6000_legitimate_offset_address_p): Handle DI modes on e500v2
1841         correctly.
1842         (legitimate_lo_sum_address_p): Same.
1843         (rs6000_legitimize_address): Same.
1844         (rs6000_legitimize_reload_address): Same.
1845         (rs6000_legitimate_address): Same.
1846         (spe_build_register_parallel): Pass DF and DC modes in a DI
1847         register.
1848
1849         * config/rs6000/rs6000.md ("*movsi_internal1"): Change predicate
1850         to rs6k_nonimmediate_operand.
1851
1852         * config/rs6000/spe.md ("*frob_df_di"): New.
1853         ("*frob_di_df"): New.
1854         ("*frob_di_df_2"): New.
1855         ("*mov_sidf_e500_subreg0"): New.
1856         ("*mov_sidf_e500_subreg4"): New.
1857         ("*movdf_e500_double"): Change predicate to
1858         rs6k_nonimmediate_operand.
1859
1860 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
1861
1862         * postreload.c (move2add_note_store): Only call
1863         trunc_int_for_mode on scalar integers.
1864
1865 2005-01-14  Steven Bosscher  <stevenb@suse.de>
1866
1867         * tree-ssa-dce.c (visited_control_parents): New sbitmap to
1868         replace BB_VISITED uses.
1869         (find_obviously_necessary_stmts): Don't clear BB_VISITED.
1870         (propagate_necessity): Check the bitmap instead of BB_VISITED.
1871         (tree_dce_done): Free visited_control_parents.
1872         (perform_tree_ssa_dce): Allocate and clear it.
1873         * tree-ssa-pre.c (compute_antic_aux): Make non-recursive.
1874         (compute_antic): Iterate from here using a DFS.  Use an sbitmap
1875         instead of BB_VISITED.
1876
1877 2005-01-14  Kazu Hirata  <kazu@cs.umass.edu>
1878
1879         * c-tree.h, coverage.h, langhooks-def.h, optabs.h, output.h,
1880         rtl.h, targhooks.h, tree-flow.h, tree-mudflap.h, tree.h:
1881         Remove unused prototypes.
1882
1883 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
1884
1885         * config/rs6000/rs6000.c (rs6000_stack_info): Fix caching of SPE
1886         64-bit register usage.
1887         (spe_func_has_64bit_regs_p): Add FIXME note.
1888
1889 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
1890
1891         * config/rs6000/rs6000.c (rs6000_generate_compare): Replace
1892         flag_finite_math_only with flag_unsafe_math_optimizations.
1893
1894 2005-01-14  J. D. Johnston  <jjohnst@us.ibm.com>
1895
1896         * config/s390/tpf-unwind.h (s390_fallback_frame_state): Correct
1897         end-of-stack check.
1898         (__tpf_eh_return): Copy TPF private stack area from the module
1899         boundary stack frame.  Add check for when module addresses are
1900         equal, but no stub address is found.
1901
1902 2005-01-14  Richard Earnshaw  <rearnsha@arm.com>
1903
1904         PR target/7525
1905         * arm.h (struct machine_function): Add call_via field.
1906         (thumb_call_via_label): Declare.
1907         * arm.c (thumb_call_via_label): New variable.
1908         (thumb_call_reg_needed): New variable.
1909         (arm_output_function_epilogue): For Thumb code, output any per-function
1910         call-indirect trampolines.
1911         (thumb_call_via_reg): New function.
1912         (arm_file_end): New function.
1913         (TARGET_ASM_FILE_END): Call arm_file_end.
1914         (aof_file_end): Likewise.
1915         * arm-protos.h (thumb_call_via_reg): Declare.
1916         * arm.md (call_reg_thumb, call_value_reg_thumb): Call 
1917         thumb_call_via_reg in normal case.
1918
1919 2005-01-14  Jakub Jelinek  <jakub@redhat.com>
1920
1921         PR middle-end/19084
1922         PR rtl-optimization/19348
1923         * recog.c (peephole2_optimize): Do global life update if some peephole
1924         decides it doesn't need at least one of its inputs and that change
1925         influences liveness at the start of the basic block.
1926
1927         * basic-block.h (EXECUTE_IF_AND_COMPL_IN_REG_SET): Needs 2 REGSET
1928         arguments instead of 1.
1929
1930 2005-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
1931
1932         PR middle-end/18820
1933         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Return
1934         zero for nested functions needing a static chain or functions
1935         with a non-constant address.
1936
1937 2005-01-13  Roger Sayle  <roger@eyesopen.com>
1938
1939         * simplify-rtx.c (simplify_binary_operation) <AND>: Optimize
1940         (and (sign_extend X) C) into (zero_extend (and X C)).
1941
1942 2005-01-13  David O'Brien  <obrien@FreeBSD.org>
1943
1944         * config/freebsd-spec.h:  Make KSE pthread lib logic the default.
1945
1946 2005-01-13  Richard Henderson  <rth@redhat.com>
1947
1948         PR target/19009
1949         PR target/19250
1950         PR target/19252
1951         * config/i386/i386.md (cmpdf, cmpsf, bunordered, bordered, buneq,
1952         bunge, bungt, bunle, bunlt, bltgt): Enable for TARGET_SSE_MATH,
1953         not just TARGET_SSE.
1954         (cmpfp_i_387): Rename from cmpfp_i.  Move after sse patterns.
1955         (cmpfp_i_mixed): Rename from cmpfp_i_sse; use for TARGET_MIX_SSE_I387.
1956         (cmpfp_i_sse): Rename from cmpfp_i_sse_only; use for TARGET_SSE_MATH.
1957         (cmpfp_iu_mixed, cmpfp_iu_sse, cmpfp_iu_387): Similarly.
1958         (fp_jcc_1_mixed, fp_jcc_1_sse, fp_jcc_1_387): Similarly.
1959         (fp_jcc_2_mixed, fp_jcc_2_sse, fp_jcc_2_387): Similarly.
1960         (fp_jcc_3_387, fp_jcc_4_387, fp_jcc_5_387, fp_jcc_6_387,
1961         fp_jcc_7_387, fp_jcc_8_387): Rename from fp_jcc_N.
1962         (movdicc_c_rex64): Rename with '*'.
1963         (movsfcc, movdfcc): Add checks for 387 and sse math to condition.
1964         (movsfcc_1_sse_min, movsfcc_1_sse_max, movsfcc_1_sse): New.
1965         (movsfcc_1_387): Rename from movsfcc_1.
1966         (movdfcc_1_sse_min, movdfcc_1_sse_max, movdfcc_1_sse): New.
1967         (movdfcc_1, movdfcc_1_rex64): Add check for 387.
1968         (sminsf3, smaxsf3, smindf3, smaxdf3): New.
1969         (minsf3, minsf, minsf_nonieee, minsf_sse, mindf3, mindf,
1970         mindf_nonieee, mindf_sse, maxsf3, maxsf, maxsf_nonieee, maxsf_sse,
1971         maxdf3, maxdf, maxdf_nonieee, maxdf_sse, sse_movsfcc, sse_movsfcc_eq,
1972         sse_movdfcc, sse_movdfcc_eq, sse_movsfcc_const0_1,
1973         sse_movsfcc_const0_2, sse_movsfcc_const0_3, sse_movsfcc_const0_4,
1974         sse_movdfcc_const0_1, sse_movdfcc_const0_2, sse_movdfcc_const0_3,
1975         sse_movdfcc_const0_4): Remove.
1976         * config/i386/i386.c (ix86_expand_fp_movcc): For TARGET_SSE_MATH,
1977         recognize min/max early.  Update for changed sse cmove patterns.
1978         (ix86_split_sse_movcc): New.
1979         * config/i386/i386-protos.h: Update.
1980
1981 2005-01-13  Steven Bosscher  <stevenb@suse.de>
1982
1983         * tree-ssa-dse.c (fix_phi_uses): Use SSA operand iterators.
1984         (fix_stmt_v_may_defs): Likewise.
1985
1986 2005-01-13  Richard Henderson  <rth@redhat.com>
1987
1988         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Use elt_mode
1989         for converting the mask.
1990
1991 2005-01-13  David Edelsohn  <edelsohn@gnu.org>
1992
1993         * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Change _XOPEN_SOURCE
1994         definition to 600.
1995
1996 2005-01-13  Richard Henderson  <rth@redhat.com>
1997
1998         * config/i386/i386.c (IX86_BUILTIN_MOVQ, IX86_BUILTIN_LOADD,
1999         IX86_BUILTIN_STORED, IX86_BUILTIN_MOVQ2DQ,
2000         IX86_BUILTIN_MOVDQ2Q): Remove.
2001         (IX86_BUILTIN_VEC_EXT_V4SI): New.
2002         (ix86_init_mmx_sse_builtins, ix86_expand_builtin): Update to match.
2003         (ix86_expand_vector_extract): For V4S[FI], extract element 0 after 
2004         shuffling.
2005         * config/i386/sse.md (sse_concatv2sf): Accept zero operand 2.
2006         (sse2_pextrw): Fix immediate constraint.
2007         (sse2_loadq, sse2_loadq_rex64): Remove.
2008         * config/i386/emmintrin.h (_mm_cvtsi128_si32, _mm_cvtsi128_si64x):
2009         Use __builtin_ia32_vec_ext_<size>.
2010         (_mm_cvtsi32_si128, _mm_cvtsi64x_si128): Use _mm_set_epi<size>.
2011
2012 2005-01-13  Aldy Hernandez  <aldyh@redhat.com>
2013
2014         * function.c (assign_parm_setup_block): Look inside original
2015         entry_parm when inspecting PARALLEL.
2016
2017 2005-01-13  Ralf Corsepius  <ralf.corsepius@rtems.org>
2018             Joel Sherrill  <joel@oarcorp.com>
2019
2020         PR target/19399
2021         * gthr-rtems.h (__gthread_recursive_mutex_t): New type.
2022         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Define to
2023         rtems_gxx_recursive_mutex_init.
2024         (__gthread_recursive_mutex_lock): New function.
2025         (__gthread_recursive_mutex_trylock): Likewise.
2026         (__gthread_recursive_mutex_unlock): Likewise.
2027
2028 2005-01-13  Ralf Corsepius <ralf.corsepius@rtems.org>
2029
2030         * config/i386/t-rtems-i386: Multilib on -mtune instead of -mcpu.
2031
2032 2005-01-13  Jan Beulich  <jbeulich@novell.com>
2033
2034         * config/ia64/ia64.md (ashlti3, ashlti3_internal): New.
2035         (ashrti3_internal): Indicate output is early clobber. Generate result
2036         into output rather than first input. Use move for low word of output
2037         if shift count is exactly 64.
2038         (lshrti3_internal): Likewise.
2039
2040 2005-01-13  Hans-Peter Nilsson  <hp@bitrange.com>
2041
2042         PR target/18329
2043         PR target/18330
2044         * reload1.c (delete_output_reload): Don't delete an output reload
2045         if the pseudo lives longer than a single basic block.  Adjust and
2046         improve wording of comment.
2047
2048 2005-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
2049
2050         PR target/19334
2051         * config/darwin.c (machopic_select_section): Use TYPE_SIZE_UNIT instead
2052         of TYPE_SIZE where we mean the number of bytes.
2053
2054 2005-01-12  Aldy Hernandez  <aldyh@redhat.com>
2055
2056         * function.c (assign_parm_setup_block): Relax condition on
2057         multi-register optimization.
2058
2059 2005-01-12  Nick Clifton  <nickc@redhat.com>
2060
2061         * config/sh/sh.md (udivsi3_sh2a, divsi3_sh2a): Give these patterns
2062         an "in_delay_slot" attribute of "no" to prevent them being used in
2063         delay slots.  This is forbidden because they might generate
2064         exceptions.
2065
2066 2005-01-12  Alan Modra  <amodra@bigpond.net.au>
2067
2068         PR target/19389
2069         * config/rs6000/rs6000.md (movtf_internal): Replace r->o and m->r
2070         with r->Y and Y->r.
2071
2072 2005-01-12  Nick Clifton  <nickc@redhat.com>
2073
2074         * config/iq2000/iq2000.h (ASM_SPEC): Undefine (to stop -Qy being
2075         passed on to GAS) but do not define, as GAS no longer supports or
2076         needs the -m2000 option.
2077
2078 2005-01-11  Roger Sayle  <roger@eyesopen.com>
2079
2080         * builtins.c (fold_builtin_fabs): Convert argument to the appropriate
2081         type as args of unprototyped builtins aren't automatically promoted.
2082         (fold_builtin_abs): Likewise.
2083
2084 2005-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2085
2086         * Makefile.in: Set a `build-warn' variable.
2087
2088 2005-01-11  Zdenek Dvorak  <dvorakz@suse.cz>
2089
2090         PR tree-optimization/17949
2091         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): New function.
2092         (find_interesting_uses_address): Use it.
2093
2094 2005-01-11  Aldy Hernandez  <aldyh@redhat.com>
2095
2096         * regrename.c (kill_value): Handle subreg's that won't simplify.
2097
2098 2005-01-11  Richard Henderson  <rth@redhat.com>
2099
2100         PR target/13366
2101         * config/i386/i386.h (enum ix86_builtins): Move ...
2102         * config/i386/i386.c: ... here.
2103         (IX86_BUILTIN_MOVDDUP, IX86_BUILTIN_MMX_ZERO, IX86_BUILTIN_PEXTRW,
2104         IX86_BUILTIN_PINSRW, IX86_BUILTIN_LOADAPS, IX86_BUILTIN_LOADSS,
2105         IX86_BUILTIN_STORESS, IX86_BUILTIN_SSE_ZERO, IX86_BUILTIN_PEXTRW128,
2106         IX86_BUILTIN_PINSRW128, IX86_BUILTIN_LOADAPD, IX86_BUILTIN_LOADSD,
2107         IX86_BUILTIN_STOREAPD, IX86_BUILTIN_STORESD,  IX86_BUILTIN_STOREHPD,
2108         IX86_BUILTIN_STORELPD, IX86_BUILTIN_SETPD1, IX86_BUILTIN_SETPD,
2109         IX86_BUILTIN_CLRPD, IX86_BUILTIN_LOADPD1, IX86_BUILTIN_LOADRPD,
2110         IX86_BUILTIN_STOREPD1, IX86_BUILTIN_STORERPD, IX86_BUILTIN_LOADDQA,
2111         IX86_BUILTIN_STOREDQA, IX86_BUILTIN_CLRTI,
2112         IX86_BUILTIN_LOADDDUP): Remove.
2113         (IX86_BUILTIN_VEC_INIT_V2SI, IX86_BUILTIN_VEC_INIT_V4HI,
2114         IX86_BUILTIN_VEC_INIT_V8QI, IX86_BUILTIN_VEC_EXT_V2DF,
2115         IX86_BUILTIN_VEC_EXT_V2DI, IX86_BUILTIN_VEC_EXT_V4SF,
2116         IX86_BUILTIN_VEC_EXT_V8HI, IX86_BUILTIN_VEC_EXT_V4HI,
2117         IX86_BUILTIN_VEC_SET_V8HI, IX86_BUILTIN_VEC_SET_V4HI): New.
2118         (ix86_init_builtins): Make static.
2119         (ix86_init_mmx_sse_builtins): Update for changed builtins.
2120         (ix86_expand_binop_builtin): Only use ix86_fixup_binary_operands
2121         if all the modes match.  Otherwise, fake it.
2122         (get_element_number, ix86_expand_vec_init_builtin,
2123         ix86_expand_vec_ext_builtin, ix86_expand_vec_set_builtin): New.
2124         (ix86_expand_builtin): Make static.  Update for changed builtins.
2125         (ix86_expand_vector_move_misalign): Use sse2_loadlpd with zero
2126         operand instead of sse2_loadsd.  Cast sse1 fallback to V4SFmode.
2127         (ix86_expand_vector_init_duplicate): New.
2128         (ix86_expand_vector_init_low_nonzero): New.
2129         (ix86_expand_vector_init_one_var, ix86_expand_vector_init_general):
2130         Split out from ix86_expand_vector_init; handle integer modes.
2131         (ix86_expand_vector_init): Use them.
2132         (ix86_expand_vector_set, ix86_expand_vector_extract): New.
2133         * config/i386/i386-protos.h: Update.
2134         * config/i386/predicates.md (reg_or_0_operand): New.
2135         * config/i386/mmx.md (mov<MMXMODEI>_internal): Add 'r' variants.
2136         (movv2sf_internal): Likewise.  And a splitter to match them all.
2137         (vec_dupv2sf, mmx_concatv2sf, vec_setv2sf, vec_extractv2sf,
2138         vec_initv2sf, vec_dupv4hi, vec_dupv2si, mmx_concatv2si, vec_setv2si,
2139         vec_extractv2si, vec_initv2si, vec_setv4hi, vec_extractv4hi,
2140         vec_initv4hi, vec_setv8qi, vec_extractv8qi, vec_initv8qi): New.
2141         (mmx_pinsrw): Fix operand ordering.
2142         * config/i386/sse.md (movv4sf splitter): Use direct pattern,
2143         rather than sse_loadss expander.
2144         (movv2df splitter): Similarly.
2145         (sse_loadss, sse_loadlss): Remove.
2146         (vec_dupv4sf, sse_concatv2sf, sse_concatv4sf, vec_extractv4sf_0): New.
2147         (vec_setv4sf, vec_setv2df): Use ix86_expand_vector_set.
2148         (vec_extractv4sf, vec_extractv2df): Use ix86_expand_vector_extract.
2149         (sse3_movddup): Rename with '*'.
2150         (sse3_movddup splitter): Use gen_rtx_REG instead of gen_lowpart.
2151         (sse2_loadsd): Remove.
2152         (vec_dupv2df_sse3): Rename from sse3_loadddup.
2153         (vec_dupv2df, vec_concatv2df_sse3, vec_concatv2df): New.
2154         (sse2_pinsrw): Fix argument ordering.
2155         (sse2_loadld, sse2_loadq): Add sse1 alternatives.
2156         (sse2_stored): Remove 'r' destination.
2157         (vec_dupv4si, vec_dupv2di, sse2_concatv2si, sse1_concatv2si,
2158         vec_concatv4si_1, vec_concatv2di, vec_setv2di, vec_extractv2di,
2159         vec_initv2di, vec_setv4si, vec_extractv4si, vec_initv4si,
2160         vec_setv8hi, vec_extractv8hi, vec_initv8hi, vec_setv16qi,
2161         vec_extractv16qi, vec_initv16qi): New.
2162
2163         * config/i386/emmintrin.h (__m128i, __m128d): Use typedef, not define.
2164         (_mm_set_sd, _mm_set1_pd, _mm_setzero_pd, _mm_set_epi64x, 
2165         _mm_set_epi32, _mm_set_epi16, _mm_set_epi8, _mm_setzero_si128): Use
2166         constructor form.
2167         (_mm_load_pd, _mm_store_pd): Use plain dereference.
2168         (_mm_load_si128, _mm_store_si128): Likewise.
2169         (_mm_load1_pd): Use _mm_set1_pd.
2170         (_mm_load_sd): Use _mm_set_sd.
2171         (_mm_store_sd, _mm_storeh_pd): Use __builtin_ia32_vec_ext_v2df.
2172         (_mm_store1_pd, _mm_storer_pd): Use _mm_store_pd.
2173         (_mm_set_epi64): Use _mm_set_epi64x.
2174         (_mm_set1_epi64x, _mm_set1_epi64, _mm_set1_epi32, _mm_set_epi16,
2175         _mm_set1_epi8, _mm_setr_epi64, _mm_setr_epi32, _mm_setr_epi16,
2176         _mm_setr_epi8): Use _mm_set_foo form.
2177         (_mm_loadl_epi64, _mm_movpi64_epi64, _mm_move_epi64): Use _mm_set_epi64.
2178         (_mm_storel_epi64, _mm_movepi64_pi64): Use __builtin_ia32_vec_ext_v2di.
2179         (_mm_extract_epi16): Use __builtin_ia32_vec_ext_v8hi.
2180         (_mm_insert_epi16): Use __builtin_ia32_vec_set_v8hi.
2181         * config/i386/mmintrin.h (_mm_setzero_si64): Use plain cast.
2182         (_mm_set_pi32): Use __builtin_ia32_vec_init_v2si.
2183         (_mm_set_pi16): Use __builtin_ia32_vec_init_v4hi.
2184         (_mm_set_pi8): Use __builtin_ia32_vec_init_v8qi.
2185         (_mm_set1_pi16, _mm_set1_pi8): Use _mm_set_piN variant.
2186         * config/i386/pmmintrin.h (_mm_loaddup_pd): Use _mm_load1_pd.
2187         (_mm_movedup_pd): Use _mm_shuffle_pd.
2188         * config/i386/xmmintrin.h (_mm_setzero_ps, _mm_set_ss,
2189         _mm_set1_ps, _mm_set_ps, _mm_setr_ps): Use constructor form.
2190         (_mm_cvtpi16_ps, _mm_cvtpu16_ps, _mm_cvtpi8_ps, _mm_cvtpu8_ps,
2191         _mm_cvtps_pi8, _mm_cvtpi32x2_ps): Avoid __builtin_ia32_mmx_zero;
2192         Use _mm_setzero_ps.
2193         (_mm_load_ss, _mm_load1_ps): Use _mm_set* form.
2194         (_mm_load_ps, _mm_loadr_ps): Use raw dereference.
2195         (_mm_store_ss): Use __builtin_ia32_vec_ext_v4sf.
2196         (_mm_store_ps): Use raw dereference.
2197         (_mm_store1_ps): Use _mm_storeu_ps.
2198         (_mm_storer_ps): Use _mm_store_ps.
2199         (_mm_extract_pi16): Use __builtin_ia32_vec_ext_v4hi.
2200         (_mm_insert_pi16): Use __builtin_ia32_vec_set_v4hi.
2201
2202 2005-01-11  Stan Shebs  <shebs@apple.com>
2203
2204         * config/rs6000/rs6000.c (machopic_output_stub): Issue
2205         ldu instead of lwzu if 64-bit -mdynamic-no-pic.
2206
2207 2005-01-11  Andrew Pinski  <pinskia@physics.uc.edu>
2208
2209         PR target/18761
2210         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
2211         Skip all DECLs except for FIELD_DECLs.
2212
2213 2005-01-11  Andreas Krebbel  <krebbel1@de.ibm.com>
2214
2215         * config/s390/s390.c (override_options): Return error if
2216         -mbackchain, -mpacked-stack and -mhard-float are used together.
2217         (s390_va_start): Remove the backchain && packed-stack special case.
2218         (s390_gimplify_va_arg): Likewise.
2219         * doc/invoke.texi: Remove the ABI incompatibility note.
2220
2221 2005-01-11  Andreas Krebbel  <krebbel1@de.ibm.com>
2222
2223         * config/s390/s390.c (struct s390_frame_layout): Remove
2224         save_backchain_p.
2225         (s390_frame_info, s390_emit_prologue): Replace occurrences of
2226         save_backchain_p with TARGET_BACKCHAIN.
2227
2228 2005-01-11  Alan Modra  <amodra@bigpond.net.au>
2229
2230         PR target/18916
2231         * builtins.c (std_gimplify_va_arg_expr): Adjust alignment of *ap.
2232         * expr.h (struct locate_and_pad_arg_data): Add "boundary".
2233         * function.c (locate_and_pad_parm): Set new field.
2234         (assign_parm_find_stack_rtl): Use it instead of FUNCTION_ARG_BOUNDARY.
2235         Tweak where_pad test to include "none".  Always set mem align for
2236         stack_parm.
2237         (assign_parm_adjust_stack_rtl): Discard stack_parm if alignment
2238         not sufficient for type.
2239         (assign_parm_setup_block): If stack_parm is zero on entry, always
2240         make a new stack local.  Block move old stack parm if necessary
2241         to new aligned stack local.
2242         (assign_parm_setup_stack): Use a block move to handle
2243         potentially misaligned entry_parm.
2244         (assign_parms_unsplit_complex): Specify required alignment when
2245         creating stack local.
2246         * calls.c (compute_argument_addresses): Override alignment of stack
2247         arg calculated from its type with the alignment given by
2248         FUNCTION_ARG_BOUNDARY.
2249         (store_one_arg): Likewise.
2250
2251 2005-01-11  Jan Beulich  <jbeulich@novell.com>
2252
2253         * config/ia64/ia64.md (zero_extendsidi2): Replace zxt4 by addp4.
2254         Change respective itanium_class attribute to ialu.
2255         (shladdp4_internal): New.
2256         * config/ia64/predicates.md (shladd_log2_operand): New.
2257
2258 2005-01-11  Richard Henderson  <rth@redhat.com>
2259
2260         * expr.c (store_constructor): Use rtvec_alloc instead of
2261         alloca+gen_rtvec_v, and an incorrect number passed to alloca.
2262
2263 2005-01-11  Kazu Hirata  <kazu@cs.umass.edu>
2264
2265         * config/alpha/alpha.c, config/i386/mmx.md: Fix comment typos.
2266
2267 2005-01-11  Alan Modra  <amodra@bigpond.net.au>
2268
2269         * varasm.c (default_section_type_flags_1): Don't set SECTION_SMALL.
2270         * config/ia64/ia64.c (TARGET_SECTION_TYPE_FLAGS): Define.
2271         (TARGET_RWRELOC): Define.
2272         (ia64_rwreloc_section_type_flags): Delete.
2273         (ia64_section_type_flags): New function.
2274         * config/ia64/hpux.h (TARGET_SECTION_TYPE_FLAGS): Don't define.
2275         (TARGET_RWRELOC): Define.
2276
2277 2005-01-10  David Mosberger  <davidm@hpl.hp.com>
2278
2279         PR target/18987
2280         * config/ia64/ia64.c (process_set): For alloc insn, only call
2281         process_epilogue is !frame_pointer_needed.
2282
2283 2005-01-10  Roger Sayle  <roger@eyesopen.com>
2284
2285         PR c++/19355
2286         * c-common.c (c_common_truthvalue_conversion): TRUTH_NOT_EXPR is a
2287         unary operator and can't be treated as a binary/comparison operator.
2288
2289 2005-01-10  Richard Henderson  <rth@redhat.com>
2290
2291         * config/i386/i386.c (ix86_function_value): Use type_natural_mode.
2292         (ix86_return_in_memory): Likewise.
2293         (function_arg_advance):  Likewise.  Mirror structure in function_arg
2294         for choosing register to advance.
2295
2296 2005-01-10  Kazu Hirata  <kazu@cs.umass.edu>
2297
2298         * tree-vectorizer.c, tree.def: Fix comment typos.
2299
2300 2005-01-10  Mark Dettinger  <dettinge@de.ibm.com>
2301
2302         * config/s390/s390.c (struct processor_costs): 4 new fields:
2303         ddbr, ddr, debr, der.
2304         (s390_rtx_costs): More precise handling of divide instructions.
2305
2306 2005-01-10  David Edelsohn  <edelsohn@gnu.org>
2307
2308         * config/rs6000/t-aix43 (BOOT_LDFLAGS): Define.
2309
2310 2005-01-10  Jan Beulich  <jbeulich@novell.com>
2311
2312         * config/ia64/ia64.c (ia64_in_small_data_p): Also handle the section
2313         names resulting from -ffunction-sections/-fdata-sections and linkonce
2314         ones.
2315         * varasm.c (default_section_type_flags_1): Also set SECTION_SMALL
2316         based on the section name. Rearrange the section name comparison logic
2317         slightly so that each section name is compared against at most once.
2318
2319 2005-01-10  Ben Elliston  <bje@au.ibm.com>
2320
2321         * doc/invoke.texi (Code Gen Options): Add PowerPC to the list of
2322         targets for which -fPIC reduces limitations on the GOT size.
2323
2324 2005-01-09  Falk Hueffner  <falk@debian.org>
2325
2326         * fold-const.c (fold): Also handle EXACT_DIV_EXPR when folding
2327         X/C1 cmpop C2.
2328
2329 2005-01-09  David Edelsohn  <edelsohn@gnu.org>
2330
2331         PR target/18720
2332         * collect2.c (main): Set aixrtl_flag for -brtl option.
2333         (resolve_lib_name): Search for .so file extension before .a
2334         if aixrtl_flag set.
2335
2336 2005-01-09  Dorit Naishlos  <dorit@il.ibm.com>
2337
2338         * tree-vectorizer.c (vect_enhance_data_refs_alignment): Add dump prints.
2339         (vect_analyze_data_refs_alignment): Add dump prints.
2340
2341 2005-01-09  Ira Rosen  <irar@il.ibm.com>
2342
2343         * tree-vectorizer.c (vect_analyze_offset_expr): Use
2344         expr_invariant_in_loop_p.
2345         Initialize outputs first thing in the function.
2346         (vect_update_ivs_after_vectorizer): Call initial_condition_in_loop_num.
2347         (vect_is_simple_iv_evolution): Call initial_condition_in_loop_num.
2348         (vect_analyze_pointer_ref_access): Check that the initial condition of
2349         the access function is loop invariant.
2350
2351 2005-01-09  Richard Henderson  <rth@redhat.com>
2352
2353         * config/i386/i386.c (bdesc_2arg): Update names for mmx_ prefixes.
2354         (ix86_expand_builtin): Likewise.  Frob MASKMOVQ wrt the input mem
2355         just like MASKMOVDQU.  Return plain zero for MMX_ZERO.
2356         * config/i386/i386.md (MMXMODEI, mov<MMXMODEI>,
2357         mov<MMXMODEI>_internal_rex64, mov<MMXMODEI>_internal, movv2sf,
2358         movv2sf_internal_rex64, movv2sf_internal, MMXMODE,
2359         movmisalign<MMXMODE>, mmx_pmovmskb, mmx_maskmovq, mmx_maskmovq_rex,
2360         sse_movntdi, addv8qi3, addv4hi3, addv2si3, mmx_adddi3, ssaddv8qi3,
2361         ssaddv4hi3, usaddv8qi3, usaddv4hi3, subv8qi3, subv4hi3, subv2si3,
2362         mmx_subdi3, sssubv8qi3, sssubv4hi3, ussubv8qi3, ussubv4hi3,
2363         mulv4hi3, smulv4hi3_highpart, umulv4hi3_highpart, mmx_pmaddwd,
2364         sse2_umulsidi3, mmx_iordi3, mmx_xordi3, mmx_anddi3, mmx_nanddi3,
2365         mmx_uavgv8qi3, mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pinsrw,
2366         mmx_pextrw, mmx_pshufw, eqv8qi3, eqv4hi3, eqv2si3, gtv8qi3, gtv4hi3,
2367         gtv2si3, umaxv8qi3, smaxv4hi3, uminv8qi3, sminv4hi3, ashrv4hi3,
2368         ashrv2si3, lshrv4hi3, lshrv2si3, mmx_lshrdi3, ashlv4hi3, ashlv2si3,
2369         mmx_ashldi3, mmx_packsswb, mmx_packssdw, mmx_packuswb, mmx_punpckhbw,
2370         mmx_punpckhwd, mmx_punpckhdq, mmx_punpcklbw, mmx_punpcklwd,
2371         mmx_punpckldq, emms, addv2sf3, subv2sf3, subrv2sf3, gtv2sf3, gev2sf3,
2372         eqv2sf3, pfmaxv2sf3, pfminv2sf3, mulv2sf3, femms, pf2id, pf2iw,
2373         pfacc, pfnacc, pfpnacc, pi2fw, floatv2si2, pfrcpv2sf2, pfrcpit1v2sf3,
2374         pfrcpit2v2sf3, pfrsqrtv2sf2, pfrsqit1v2sf3, pmulhrwv4hi3, pswapdv2si2,
2375         pswapdv2sf2): Move to mmx.md; rename as necessary with leading
2376         mmx_ prefix.
2377         (mmx_clrdi, pavgusb): Remove.
2378         (ldmxcsr, stmxcsr, sfence, sfence_insn): Move to sse.md; rename
2379         with leading sse_ prefix.
2380         * config/i386/sse.md: Receive them.
2381         * config/i386/mmx.md: New file.
2382         (MMXMODE12, MMXMODE24, mmxvecsize): New.
2383         (subrv2sf3): Turn into expander for normal subtraction.
2384         (mmx_addv2sf3, mmx_mulv2sf3, mmx_smaxv2sf3, mmx_sminv2sf3,
2385         mmx_eqv2sf3, mmx_mulv4hi3, mmx_smulv4hi3_highpart,
2386         mmx_umulv4hi3_highpart, mmx_pmaddwd, mmx_pmulhrwv4hi3, sse2_umulsidi3,
2387         mmx_umaxv8qi3, mmx_smaxv4hi3, mmx_uminv8qi3, mmx_sminv4hi3): Mark
2388         commutative; use ix86_binary_operator_ok.
2389         (mmx_add<MMXMODEI>3, mmx_ssadd<MMXMODE12>3, mmx_usadd<MMXMODE12>3,
2390         mmx_sub<MMXMODEI>3, mmx_sssub<MMXMODE12>3, mmx_ussub<MMXMODE12>3
2391         mmx_ashr<MMXMODE24>3, mmx_lshr<MMXMODE23>3, mmx_ashl<MMXMODE24>3
2392         mmx_eq<MMXMODEI>3, mmx_gt<MMXMODEI>3, mmx_and<MMXMODEI>3,
2393         mmx_nand<MMXMODEI>3, mmx_ior<MMXMODEI>3, mmx_xor<MMXMODEI>3):
2394         Macroize from existing patterns; use ix86_binary_operator_ok.
2395         (mmx_packsswb, mmx_packssdw, mmx_packuswb): Add memory alternative.
2396         (mmx_punpckhbw, mmx_punpcklbw, mmx_punpckhwd, mmx_punpcklwd,
2397         mmx_punpckhdq, mmx_punpckhdq, mmx_punpckldq): Likewise.  Model
2398         with vec_select+vec_concat.
2399         (mmx_pshufw, mmx_pshufw_1): Likewise.
2400         (mmx_uavgv8qi3): Merge pavgusb.  Model correcty.
2401         (mmx_uavgv4hi3): Model correctly.
2402         * config/i386/mmintrin.h (_mm_and_si64, _mm_andnot_si64, _mm_or_si64,
2403         _mm_xor_si64): Remove casts.
2404
2405 2005-01-09  Zdenek Dvorak  <dvorakz@suse.cz>
2406
2407         PR tree-optimization/19224
2408         * tree-scalar-evolution.c (get_instantiated_value,
2409         set_instantiated_value): New functions.
2410         (instantiate_parameters_1): Cache the results.
2411         (instantiate_parameters, resolve_mixers): Initialize and free
2412         the cache.
2413
2414 2005-01-08  David Edelsohn  <edelsohn@gnu.org>
2415
2416         * config/i386/i386.md (addhi_4): Correct reference in comment.
2417         (addqi_4): Same.
2418
2419 2005-01-08  Richard Henderson  <rth@redhat.com>
2420
2421         * config/i386/emmintrin.h (_mm_cvtsi128_si32): Move earlier.
2422         (_mm_cvtsi128_si64x): Likewise.
2423         (_mm_srl_epi64, _mm_srl_epi32, _mm_srl_epi16, _mm_sra_epi32,
2424         _mm_sra_epi16, _mm_sll_epi64, _mm_sll_epi32, _mm_sll_epi16): Use
2425         the _mm_{srl,sll}i_foo counterpart, and _mm_cvtsi128_si32.
2426         * config/i386/i386-modes.def: Add V16HI, V32QI, V4DF, V8SF.
2427         * config/i386/i386-protos.h: Update.
2428         * config/i386/i386.c (print_operand): Add 'H'.
2429         (ix86_fixup_binary_operands): Split out from ...
2430         (ix86_expand_binary_operator): ... here.
2431         (ix86_fixup_binary_operands_no_copy): New.
2432         (ix86_expand_fp_absneg_operator): Handle vector mode results.
2433         (bdesc_2arg): Update names for sse{,2,3}_ prefixes.
2434         (ix86_init_mmx_sse_builtins): Remove *maskncmp* special cases.
2435         (safe_vector_operand): Use CONST0_RTX.
2436         (ix86_expand_binop_builtin): Use ix86_fixup_binary_operands.
2437         (ix86_expand_builtin): Merge CODE_FOR_sse2_maskmovdqu_rex64 and
2438         CODE_FOR_sse2_maskmovdqu.  Special case SSE version of MASKMOVDQU
2439         expansion.  Update names for sse{,2,3}_ prefixes.  Remove *maskncmp*
2440         special cases.
2441         * config/i386/i386.h (IX86_BUILTIN_CMPNGTSS): New.
2442         (IX86_BUILTIN_CMPNGESS): New.
2443         * config/i386/i386.md (UNSPEC_FIX_NOTRUNC): New.
2444         (attr type): Add sselog1.
2445         (attr unit, attr memory): Handle it.
2446         (movti, movti_internal, movti_rex64): Move near other integer moves.
2447         (movtf, movtf_internal): Move near other fp moves.
2448         (SSEMODE, SSEMODEI, vec_setv2df, vec_extractv2df, vec_initv2df,
2449         vec_setv4sf, vec_extractv4sf, vec_initv4sf, movv4sf, movv4sf_internal,
2450         movv2df, movv2df_internal, mov<SSEMODEI>, mov<SSEMODEI>_internal,
2451         movmisalign<SSEMODE>, sse_movups_1, sse_movmskps, sse_movntv4sf,
2452         sse_movhlps, sse_movlhps, sse_storehps, sse_loadhps, sse_storelps,
2453         sse_loadlps, sse_loadss, sse_loadss_1, sse_movss, sse_storess,
2454         sse_shufps, addv4sf3, vmaddv4sf3, subv4sf3, vmsubv4sf3, negv4sf2,
2455         mulv4sf3, vmmulv4sf3, divv4sf3, vmdivv4sf3, rcpv4sf2, vmrcpv4sf2,
2456         rsqrtv4sf2, vmrsqrtv4sf2, sqrtv4sf2, vmsqrtv4sf2, sse_andv4sf3,
2457         sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3, sse2_andv2df3,
2458         sse2_nandv2df3, sse2_iorv2df3, sse2_xorv2df3, sse2_andv2di3,
2459         sse2_nandv2di3, sse2_iorv2di3, sse2_xorv2di3, maskcmpv4sf3,
2460         vmmaskcmpv4sf3, sse_comi, sse_ucomi, sse_unpckhps, sse_unpcklps,
2461         smaxv4sf3, vmsmaxv4sf3, sminv4sf3, vmsminv4sf3, cvtpi2ps, cvtps2pi,
2462         cvttps2pi, cvtsi2ss, cvtsi2ssq, cvtss2si, cvtss2siq, cvttss2si,
2463         cvttss2siq, addv2df3, vmaddv2df3, subv2df3, vmsubv2df3, mulv2df3,
2464         vmmulv2df3, divv2df3, vmdivv2df3, smaxv2df3, vmsmaxv2df3, sminv2df3,
2465         vmsminv2df3, sqrtv2df2, vmsqrtv2df2, maskcmpv2df3, vmmaskcmpv2df3,
2466         sse2_comi, sse2_ucomi, sse2_movmskpd, sse2_pmovmskb, sse2_maskmovdqu,
2467         sse2_maskmovdqu_rex64, sse2_movntv2df, sse2_movntv2di, sse2_movntsi,
2468         cvtdq2ps, cvtps2dq, cvttps2dq, cvtdq2pd, cvtpd2dq, cvttpd2dq,
2469         cvtpd2pi, cvttpd2pi, cvtpi2pd, cvtsd2si, cvtsd2siq, cvttsd2si,
2470         cvttsd2siq, cvtsi2sd, cvtsi2sdq, cvtsd2ss, cvtss2sd, cvtpd2ps,
2471         cvtps2pd, addv16qi3, addv8hi3, addv4si3, addv2di3, ssaddv16qi3,
2472         ssaddv8hi3, usaddv16qi3, usaddv8hi3, subv16qi3, subv8hi3, subv4si3,
2473         subv2di3, sssubv16qi3, sssubv8hi3, ussubv16qi3, ussubv8hi3, mulv8hi3,
2474         smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3,
2475         sse2_umulv2siv2di3, sse2_pmaddwd, sse2_uavgv16qi3, sse2_uavgv8hi3,
2476         sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd, sse2_pshuflw,
2477         sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3, gtv8hi3,
2478         gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3, ashrv8hi3,
2479         ashrv4si3, lshrv8hi3, lshrv4si3, lshrv2di3, ashlv8hi3, ashlv4si3,
2480         ashlv2di3, sse2_ashlti3, sse2_lshrti3, sse2_unpckhpd, sse2_unpcklpd,
2481         sse2_packsswb, sse2_packssdw, sse2_packuswb, sse2_punpckhbw,
2482         sse2_punpckhwd, sse2_punpckhdq, sse2_punpcklbw, sse2_punpcklwd,
2483         sse2_punpckldq, sse2_punpcklqdq, sse2_punpckhqdq, sse2_movupd,
2484         sse2_movdqu, sse2_movdq2q, sse2_movdq2q_rex64, sse2_movq2dq,
2485         sse2_movq2dq_rex64, sse2_loadd, sse2_stored, sse2_storehpd,
2486         sse2_loadhpd, sse2_storelpd, sse2_loadlpd, sse2_movsd, sse2_loadsd,
2487         sse2_loadsd_1, sse2_storesd, sse2_shufpd, sse2_clflush, sse2_mfence,
2488         mfence_insn, sse2_lfence, lfence_insn, mwait, monitor, addsubv4sf3,
2489         addsubv2df3, haddv4sf3, haddv2df3, hsubv4sf3, hsubv2df3, movshdup,
2490         movsldup, lddqu, loadddup, movddup): Move to sse.md.  Any with
2491         non-optabs meanings renamed with an "sse{,2,3}_" prefix at the
2492         same time.
2493         (SSEPUSH, push<SSEPUSH>): Remove.
2494         (MMXPUSH, push<MMXPUSH>): Remove.
2495         (sse_movaps, sse_movaps_1, sse_movups): Remove.
2496         (sse2_movapd, sse2_movdqa, sse2_movq): Remove.
2497         (sse2_andti3, sse2_nandti3, sse2_iorti3, sse2_xorti3): Remove.
2498         (sse_clrv4sf, sse_clrv2df, sse2_clrti): Remove.
2499         (maskncmpv4sf3, vmmaskncmpv4sf3): Remove.
2500         (maskncmpv2df3, vmmaskncmpv2df3): Remove.
2501         (ashrv8hi3_ti, ashrv4si3_ti, lshrv8hi3_ti, lshrv4si3_ti): Remove.
2502         (lshrv2di3_ti, ashlv8hi3_ti, ashlv4si3_ti, ashlv2di3_ti): Remove.
2503         * config/i386/athlon.md (athlon_sselog_load): Handle sselog1.
2504         (athlon_sselog_load_k8, athlon_sselog, athlon_sselog_k8): Likewise.
2505         * config/i386/ppro.md (ppro_sse_div_V4SF_load): Fix memory attr.
2506         (ppro_sse_log_V4SF_load): Similarly.  Handle sselog1.
2507         (ppro_sse_log_V4SF): Handle sselog1.
2508         * config/i386/predicates.md (const_0_to_1_operand): New.
2509         (const_0_to_255_mul_8_operand): New.
2510         (const_1_to_31_operand): Rename from const_int_1_31_operand.
2511         (const_2_to_3_operand, const_4_to_7_operand): New.
2512         * config/i386/sse.md: New file.
2513         (SSEMODE12, SSEMODE24, SSEMODE124, SSEMODE248, ssevecsize): New.
2514         (sse_movups): Rename from sse_movups_1.
2515         (sse_loadlss): Rename from sse_loadss_1.
2516         (andv4sf3, iorv4sf3, xorv4sf3, andv2df3): Remove the sse prefix
2517         from the name.
2518         (negv4sf2): Use ix86_expand_fp_absneg_operator.
2519         (absv4sf2, negv2df, absv2df): New.
2520         (addv4sf3): Add expander to call ix86_fixup_binary_operands_no_copy.
2521         (subv4sf3, mulv4sf3, divv4sf3, smaxv4sf3, sminv4sf3, andv4sf3,
2522         iorv4sf3, xorv4sf3, addv2df3, subv2df3, mulv2df3, divv2df3,
2523         smaxv2df3, sminv2df3, andv2df3, iorv2df3, xorv2df3, mulv8hi3,
2524         umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3): Likewise.
2525         (sse3_addsubv4sf3): Model correctly.
2526         sse3_haddv4sf3, sse3_hsubv4sf3, sse3_addsubv2df3, sse3_haddv2df3,
2527         sse3_hsubv2df3, sse2_ashlti3, sse2_lshrti3): Likewise.
2528         (sse_movhlps): Model with vec_select+vec_concat.
2529         (sse_movlhps, sse_unpckhps, sse_unpcklps, sse3_movshdup,
2530         sse3_movsldup, sse_shufps, sse_shufps_1, sse2_unpckhpd, sse3_movddup,
2531         sse2_unpcklpd, sse2_shufpd, sse2_shufpd_1, sse2_punpckhbw,
2532         sse2_punpcklbw, sse2_punpckhwd, sse2_punpcklwd, sse2_punpckhdq,
2533         sse2_punpckldq, sse2_punpckhqdq, sse2_punpcklqdq, sse2_pshufd,
2534         sse2_pshufd_1, sse2_pshuflw, sse2_pshuflw_1, sse2_pshufhw,
2535         sse2_pshufhw_1): Likewise.
2536         (neg<SSEMODEI>2, one_cmpl<SSEMODEI>2): New.
2537         (add<SSEMODEI>3, sse2_ssadd<SSEMODE12>3, sse2_usadd<SSEMODE12>3,
2538         sub<SSEMODEI>3, sse2_sssub<SSEMODE12>3, sse2_ussub<SSEMODE12>3,
2539         ashr<SSEMODE24>3, lshr<SSEMODE248>3, sse2_eq<SSEMODE124>3,
2540         sse2_gt<SSEMODDE124>3, and<SSEMODEI>3, sse_nand<SSEMODEI>3,
2541         ior<SSEMODEI>3, xor<SSEMODEI>3): Macroize from existing patterns.
2542         (addv4sf3, sse_vmaddv4sf3, mulv4sf3, sse_vmmulv4sf3, smaxv4sf3,
2543         sse_vmsmaxv4sf3, sminv4sf3, sse_vmsminv4sf3, addv2df3, sse2_vmaddv2df3,
2544         mulv2df3, sse2_vmmulv2df3, smaxv2df3, sse2_vmsmaxv2df3, sminv2df3,
2545         sse2_vmsminv2df3, umaxv16qi3, smaxv8hi3, uminv16qi3
2546         sminv8hi3): Mark commutative
2547         operands.  Use ix86_binary_operator_ok.
2548         (sse_unpckhps, sse_unpcklps, sse2_packsswb, sse2_packssdw,
2549         sse2_packuswb, sse2_punpckhbw, sse2_punpcklbw, sse2_punpckhwd,
2550         sse2_punpcklwd, sse2_punpckhdq, sse2_punpckldq, sse2_punpckhqdq,
2551         sse2_punpcklqdq): Allow operand2 in memory.
2552         (sse_movhlps, sse_movlhps, sse2_unpckhpd, sse2_unpcklpd
2553         sse2_movsd): Add memory alternatives.
2554         (sse_storelps): Turn expander into an insn; split after reload.
2555         (sse_storess, sse2_loadhpd, sse2_loadlpd): Add non-xmm inputs.
2556         (sse2_storehpd, sse2_storelpd): Add non-xmm outputs.
2557
2558 2005-01-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
2559
2560         * configure.ac (DWARF-2 debug_line): Use objdump.
2561         * configure: Regenerate.
2562
2563 2005-01-08  Jeff Law  <law@redhat.com>
2564             Diego Novillo  <dnovillo@redhat.com>
2565
2566         PR tree-optimization/18241
2567         * tree-nrv.c (tree_nrv): Ignore volatile return values.
2568         * tree-ssa-dse.c (dse_optimize_stmt): Do not optimize
2569         statements with volatile operands.
2570         * tree-ssa-operands.c (add_stmt_operand): Do add volatile
2571         operands after marking a statement with has_volatile_ops.
2572
2573 2005-01-08  Roger Sayle  <roger@eyesopen.com>
2574
2575         * tree.c (int_fits_type_p): Always honor integer constant
2576         TYPE_MIN_VALUE and TYPE_MAX_VALUE if they exist.
2577
2578 2005-01-08  Roger Sayle  <roger@eyesopen.com>
2579
2580         * ifcvt.c (find_if_case_1): Reinstate 2005-01-04 change, now that
2581         the latent bug in rtl_delete_block has been resolved.
2582
2583 2005-01-08  Richard Sandiford  <rsandifo@redhat.com>
2584
2585         * config/mips/t-iris6 (MULTILIB_DIRNAMES): Use -mabi argument values.
2586         (MULTILIB_OSDIRNAMES): Use the standard lib, lib32 and lib64.
2587
2588 2005-01-08  Richard Sandiford  <rsandifo@redhat.com>
2589
2590         * config/mips/t-slibgcc-irix (SHLIB_LINK): Install a copy of the
2591         library as @multilib_dir@/$(SHLIB_SONAME).
2592
2593 2005-01-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
2594
2595         * configure.ac (HAVE_AS_OFFSETABLE_LO10): Fix typo.
2596         * configure: Regenerate.
2597
2598 2005-01-07  Jakub Jelinek  <jakub@redhat.com>
2599
2600         * c-common.c (handle_mode_attribute): For ENUMERAL_TYPE, also copy
2601         TYPE_MODE.
2602
2603 2005-01-07  David Edelsohn  <edelsohn@gnu.org>
2604
2605         PR target/13674
2606         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
2607         Convert non-word aligned offset address using ld/std into
2608         indirect address.
2609
2610 2005-01-07  Richard Henderson  <rth@redhat.com>
2611
2612         * config/i386/i386.md (sse_loadhps splitter): Fix operand number typo.
2613
2614 2005-01-07  Richard SAndiford  <rsandifo@redhat.com>
2615
2616         * tree.h (IS_EXPR_CODE_CLASS): Use a straight-forward range check.
2617
2618 2005-01-07  Jakub Jelinek  <jakub@redhat.com>
2619
2620         PR tree-optimization/19283
2621         * fold-const.c (fold_widened_comparison): Return NULL if shorter_type
2622         is not shorter than the original type.
2623
2624         PR rtl-optimization/19012
2625         * config/i386/i386.md (addqi_1_slp): Set memory attribute.
2626
2627         PR rtl-optimization/18861
2628         * cfgbuild.c (BLOCK_USED_BY_TABLEJUMP): Define.
2629         (FULL_STATE): Define.
2630         (mark_tablejump_edge): New function.
2631         (purge_dead_tablejump_edges): New function.
2632         (find_bb_boundaries): Use it.
2633
2634         PR tree-optimization/18828
2635         * builtins.c (expand_builtin_next_arg): Remove argument and all
2636         the argument checking.
2637         (expand_builtin): Adjust caller.
2638         (expand_builtin_va_start): Likewise.  Remove error for too many
2639         arguments.
2640         (fold_builtin_next_arg): Issue error for too many arguments.
2641         After checking arguments, replace them with magic arguments that
2642         prevent further checking of the args.
2643
2644 2005-01-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2645
2646         * pa64-hpux.h (STARTFILE_SPEC): Fix typo in spec.
2647
2648 2005-01-06  Roger Sayle  <roger@eyesopen.com>
2649
2650         PR target/6077
2651         * gcc.c (input_suffix_matches): Tweak the semantics of %{.s:...}
2652         and %{.S:...} (and their negative variants) to test whether the
2653         input file is assembler or pre-processed-assembler independent of
2654         the actual filename extension.
2655
2656 2005-01-06  Roger Sayle  <roger@eyesopen.com>
2657
2658         * simplify-rtx.c (simplify_subreg): Simplify truncations of shifts
2659         of sign or zero extended values.
2660
2661 2005-01-06  Geoffrey Keating  <geoffk@apple.com>
2662
2663         * c-cppbuiltin.c (builtin_define_float_constants): Set __*_EPSILON__
2664         for IBM long double format correctly.
2665
2666 2005-01-06  Daniel Berlin <dberlin@dberlin.org>
2667
2668         Fix PR tree-optimization/18792
2669
2670         * tree-data-ref.c (build_classic_dist_vector): Change first_loop
2671         to first_loop_depth, and use loop depth instead of loop number.
2672         (build_classic_dir_vector): Ditto.
2673         (compute_data_dependences_for_loop): Use depth, not loop number.
2674         * tree-loop-linear.c (try_interchange_loops): Use loop depth, not loop
2675         number. Pass in loops, instead of loop numbers.
2676         (gather_interchange_stats): Ditto.
2677         (linear_transform_loops): Ditto.
2678
2679 2005-01-06  Richard Sandiford  <rsandifo@redhat.com>
2680
2681         PR rtl-opt/13299
2682         * loop.c (get_monotonic_increment, biased_biv_fits_mode_p,
2683         biv_fits_mode_p, extension_within_bounds_p): New functions.
2684         (check_ext_dependent_givs): Use them.
2685
2686 2005-01-06  Roger Sayle  <roger@eyesopen.com>
2687
2688         * cfgrtl.c (rtl_delete_block): A basic block may be followed by
2689         more than one barrier, in which case we should delete them all.
2690
2691 2005-01-06  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2692
2693         * gcc.c (process_command): Change year in 'gcc --version' to 2005.
2694
2695 2005-01-05  Daniel Berlin  <dberlin@dberlin.org>
2696
2697         Fix PR middle-end/19286
2698         Fix PR debug/19267
2699         * dwarf2out.c (gen_subprogram_die): If we've already tried to
2700         output this subprogram, simply ignore this attempt to do it again.
2701         (add_abstract_origin_attribute): Don't abort trying to add the abstract
2702         origin attribute if it's not possible.
2703         (gen_block_die): Don't ignore subblocks of "unused" blocks.
2704         (decls_for_scope): Ditto.
2705         * gimple-low.c (mark_blocks_with_used_subblocks): Remove.
2706         (mark_used_blocks): Don't call mark_blocks_with_used_subblocks.
2707
2708 2005-01-05  Richard Henderson  <rth@redhat.com>
2709
2710         PR target/11327
2711         * config/i386/i386.c (BUILTIN_DESC_SWAP_OPERANDS): New.
2712         (bdesc_2arg): Use it.
2713         (ix86_expand_binop_builtin): Force operands into registers
2714         when optimizing.
2715         (ix86_expand_unop_builtin, ix86_expand_unop1_builtin,
2716         ix86_expand_sse_compare, ix86_expand_sse_comi,
2717         ix86_expand_builtin): Likewise.
2718
2719 2005-01-05  Richard Henderson  <rth@redhat.com>
2720
2721         * config/ia64/ia64.c (rtx_needs_barrier): Handle CONST_VECTOR
2722         and VEC_SELECT.
2723         * config/ia64/vect.md (mulv8qi3): Re-implement with mix_[rl].
2724         (mulv4hi3): Set itanium_class mmmul.
2725         (fpack_sfxf, fpack_xfsf, fpack_xfxf): Remove.
2726         (fpack): Rename from fpack_sfsf.
2727
2728 2005-01-05  Richard Henderson  <rth@redhat.com>
2729
2730         PR rtl-opt/10692
2731         * reload1.c (do_input_reload): Restrict the optimization deleteing
2732         a previous output reload to RELOAD_FOR_INPUT.
2733
2734 2005-01-05  Steven Bosscher  <stevenb@suse.de>
2735
2736         * combine.c (expand_compound_operation)  <ZERO_EXTRACT>: Add
2737         comment that we fall through after case.
2738         (mark_used_regs_combine): Don't expect a SIGN_EXTRACT in a SET_DEST.
2739         (distribute_links): Likewise.
2740         * cse.c (cse_insn): Likewise.
2741         * cselib.c (cselib_invalidate_mem): Likewise.
2742         * df.c: Update comments at the top of the file.
2743         (read_modify_subreg_p): Update comments here too.
2744         (df_def_record_1): Don't expect a SIGN_EXTRACT in a SET_DEST.
2745         * flow.c (mark_set_1): Likewise.
2746         (mark_used_regs): Likewise.
2747         * gcse.c (mems_conflict_for_gcse_p): Likewise.
2748         (canon_list_insert): Likewise.
2749         (mark_set): Likewise.
2750         (try_replace_reg): Likewise.
2751         (store_killed_in_insn): Likewise.
2752         * loop.c (count_one_set): Likewise.
2753         (basic_induction_var): Likewise.
2754         * postreload-gcse.c (find_mem_conflicts): Likewise.
2755         * postreload.c (reload_combine_note_store): Likewise.
2756         (move2add_note_store): Likewise.
2757         * reload.c (find_equiv_reg): Likewise.
2758         (mark_referenced_resources): Likewise.
2759         * rtlanal.c (set_noop_p): Likewise.
2760         (note_stores): Likewise.
2761         (note_uses): Likewise.
2762         * sched-deps.c (sched_analyze_1): Likewise.
2763         * sched-rgn.c (check_live_1): Likewise.
2764         (update_live_1): Likewise.
2765         * config/i860/i860.c: Likewise.
2766
2767         * rtl.dec (SIGN_EXTRACT): Document that this cannot appear as
2768         an lvalue.
2769         (ZERO_EXTRACT): Mention that this one can be an lvalue.
2770
2771         * doc/rtl.texi: Update documentation for bit-fields and SET.
2772
2773 2005-01-05  Roger Sayle  <roger@eyesopen.com>
2774
2775         * ifcvt.c (find_if_case_1): Revert 2005-01-04 change.
2776
2777 2005-01-05  Jan Hubicka  <jh@suse.cz>
2778             Richard Henderson  <rth@redhat.com>
2779
2780         PR target/18910
2781         * config/i386/i386.c (ix86_expand_move): Handle tls symbols
2782         with an offset.
2783
2784 2005-01-05  Richard Henderson  <rth@redhat.com>
2785
2786         PR target/12902
2787         * config/i386/i386.md (sse_movhps, sse_movlps): Remove.
2788         (sse_shufps): Change operand 3 to const_int_operand.
2789         (sse2_storelps): Fix typo in template.
2790         (sse_storehps, sse_loadhps, sse_storelps, sse_loadlps): New.
2791         * config/i386/i386.c (ix86_expand_vector_move_misalign): Use them.
2792         (ix86_expand_builtin): Likewise.
2793
2794 2005-01-05  Julian Brown  <julian@codesourcery.com>
2795
2796         * config/arm/arm.c (arm_return_in_memory): Treat complex types
2797         as aggregates for AAPCS ABIs.
2798
2799 2005-01-05  Stan Shebs  <shebs@apple.com>
2800
2801         * unwind-dw2-fde-darwin.c (examine_objects): Use 64-bit
2802         Mach-O getters if ppc64.
2803         * config/darwin.c (darwin_asm_output_dwarf_delta): Obey
2804         size argument.
2805         * config/darwin.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
2806         signed four-byte field for global code case.
2807         (STARTFILE_SPEC): Avoid crt2.o for 64-bit compilation.
2808
2809 2005-01-05  Roger Sayle  <roger@eyesopen.com>
2810
2811         PR middle-end/19100
2812         * c-common.c: Include real.h.
2813         (c_common_truthvalue_conversion): Avoid destructively modifying expr.
2814         Correctly handle TREE_CONSTANT_OVERFLOW for INTEGER_CST.
2815         Correctly handle TREE_CONSTANT_OVERFLOW and NaNs for REAL_CST.
2816         * Makefile.in (c-common.o): Update dependencies.
2817
2818 2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
2819
2820         * c-parse.in (asm_string): Add trailing semicolon.
2821
2822 2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
2823
2824         * c-parse.in (asm_string): New.  Don't allow wide strings in
2825         'asm'.
2826         (simple_asm_expr, asm_argument, asm_operand, asm_clobbers): Use
2827         asm_string instead of STRING.
2828
2829 2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
2830
2831         * c-typeck.c (constructor_no_implicit): Remove.
2832         (set_designator, process_init_element): Don't check
2833         constructor_no_implicit.
2834
2835 2005-01-05  J"orn Rennecke <joern.rennecke@st.com>
2836             Kaz Kojima  <kkojima@gcc.gnu.org>
2837
2838         PR target/16482
2839         * lcm.c (create_pre_exit): New.
2840         (optimize_mode_switching): In MODE_ENTRY / MODE_EXIT case, set
2841         ENTRY_EXIT_EXTRA to 3.  Use create_pre_exit.
2842
2843 2004-01-05  Richard Earnshaw  <rearnsha@arm.com>
2844
2845         * arm.h (TARGET_OPTIONS): Correctly record -mhard-float and
2846         -msoft-float in target_float_switch.
2847         * arm.c (arm_override_options): Fix processing of target_float_switch.
2848
2849 2004-01-05  Richard Earnshaw  <rearnsha@arm.com>
2850
2851         * arm/vfp.md (arm_movsi_vfp): Hide VFP register classes from register
2852         preferencing.
2853
2854 2004-01-05  Uros Bizjak  <uros@kss-loka.si>
2855
2856         * doc/invoke.texi (Intel 386 and AMD x86-64 Options):
2857         Replace i387 with 'i386 compiler' in -mfpmath=sse option.
2858
2859 2005-01-04  Roger Sayle  <roger@eyesopen.com>
2860
2861         * ifcvt.c (find_if_case_1): Avoid creating an empty forwarder block,
2862         if deleting the then-block allows the test-block to fallthru to the
2863         else-block.
2864
2865 2005-01-04  Andrew Pinski  <pinskia@physics.uc.edu>
2866
2867         PR c/19152
2868         * c-decl.c (diagnose_mismatched_decls): Accept "extern inline" declared
2869         after the full declaration if the are in two different TUs.
2870
2871 2005-01-04  Richard Henderson  <rth@redhat.com>
2872
2873         PR tree-opt/19158
2874         * tree-sra.c (generate_one_element_init): Just
2875         call gimplify_and_add.
2876         (generate_element_init): Record the
2877         new referenced variables and mark them for renaming
2878         and split out to ...
2879         (generate_element_init_1): This.
2880         (scalarize_init): Don't call push_gimplify_context/
2881         pop_gimplify_context.
2882
2883 2005-01-04  Geoffrey Keating  <geoffk@apple.com>
2884
2885         * toplev.c (get_src_pwd): Handle failure of getpwd().
2886
2887 2005-01-04  Roger Sayle  <roger@eyesopen.com>
2888
2889         * fold-const.c (fold_single_bit_test): Delete unreachable handling
2890         of TRUTH_NOT_EXPR.
2891         (fold): Don't call fold_single_bit_test with a TRUTH_NOT_EXPR, as
2892         all the cases handled by it are inverted by invert_truthvalue.
2893
2894 2005-01-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
2895
2896         * config/sparc/sparc.md (save_register_windowdi): Add missing mode.
2897         (save_register_windowsi): Likewise.
2898
2899 2005-01-04  Richard Henderson  <rth@redhat.com>
2900
2901         * tree-mudflap.c (mf_varname_tree): Fix thinko setting declname.
2902
2903 2005-01-04  Uros Bizjak  <uros@kss-loka.si>
2904
2905         PR middle-end/17767
2906         * cse.c (fold_rtx) [RTX_COMPARE, RTX_COMM_COMPARE]: Don't attempt
2907         any simplifications of vector mode comparison operators.
2908         * simplify-rtx.c (simplify_relational_operation): Fix variable name.
2909
2910 2005-01-04  Paolo Bonzini  <bonzini@gnu.org>
2911             Devang Patel  <dpatel@apple.com>
2912
2913         PR tree-optimization/18308
2914         * tree-if-conv.c (add_to_dst_predicate_list): Gimplify
2915         the operands before creating a new expression.
2916         * dojump.c (do_jump): Make drop_through_label available
2917         for all cases.  Add expansion of COND_EXPR.
2918
2919 2005-01-04  Ira Rosen  <irar@il.ibm.com>
2920
2921         * tree-vectorizer.c (vect_analyze_offset_expr): Test for
2922         INTEGER_CST instead of TREE_CONSTANT.
2923         (vect_gen_niters_for_prolog_loop): Test for INTEGER_CST
2924         instead of TREE_CONSTANT.
2925         (vect_analyze_pointer_ref_access): Test for INTEGER_CST
2926         instead of TREE_CONSTANT.
2927
2928 2005-01-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
2929
2930         * tree-eh.c (replace_goto_queue): Return early if the queue is empty.
2931
2932 2005-01-04  Uros Bizjak  <uros@kss-loka.si>
2933
2934         PR target/19240
2935         * config/i386/i386.md (*fop_df_1_i387): Disable for TARGET_SSE_MATH.
2936         (*fop_df_1_i387): Disable for (TARGET_SSE2 && TARGET_SSE_MATH).
2937
2938 2005-01-03  Richard Henderson  <rth@redhat.com>
2939
2940         * fold-const.c (force_fit_type): Cope with types larger than 2 HWI.
2941         (fold_convert_const_int_from_int, fold_convert_const_int_from_real,
2942         fold_convert_const_real_from_real): Split out from ...
2943         (fold_convert_const): ... here.
2944
2945 2005-01-03  Richard Henderson  <rth@redhat.com>
2946
2947         PR target/19235
2948         * config/i386/i386.md (movdi_2): Separate SSE1 and SSE2 alternatives.
2949         (mov<MMXMODEI>_internal): Likewise.
2950         (movdf_nointeger): Prefer Y while not preferring, but allowing, x.
2951         Add V2SF case; use it for SSE1; don't use TI.
2952         (movdf_integer): Likewise.
2953         (mov<SSEMODEI>_internal, movti_internal): Force V4SF for SSE1.
2954
2955 2005-01-03  Ira Rosen  <irar@il.ibm.com>
2956
2957         * tree-vectorizer.c (vect_strip_conversions): New function.
2958         (vect_analyze_offset_expr): Call vect_strip_conversions. Add
2959         check for binary class.
2960
2961 2005-01-03  Daniel Berlin  <dberlin@dberlin.org>
2962
2963         Fix PR debug/17924
2964         Fix PR debug/19191
2965         * dwarf2out.c (block_ultimate_origin): Follow decl origin if origin
2966         is a decl.
2967         * gimple-low.c (mark_blocks_with_used_vars): New function.
2968         (mark_blocks_with_used_subblocks): Ditto.
2969         (mark_used_blocks): Ditto.
2970         (pass_mark_used_blocks): New pass.
2971         * tree-inline.c: Include debug.h.
2972         (expand_call_inline): Call outlining_inline_function here.
2973         * tree-optimize.c (init_tree_optimization_passes): Add
2974         pass_mark_used_blocks.
2975         * tree-pass.h (pass_mark_used_blocks): New.
2976         * Makefile.in (tree-inline.o): Add debug.h dependency.
2977
2978 2005-01-03  Geoffrey Keating  <geoffk@apple.com>
2979
2980         * config/darwin.c (darwin_handle_weak_import_attribute): Permit
2981         VAR_DECLs to have weak_import attribute.
2982
2983         * config/rs6000/darwin-fallback.c: Use 'ucontext_t' rather than
2984         'struct ucontext'.
2985
2986 2004-01-03  Steven Bosscher  <stevenb@suse.de>
2987
2988         * passes.c (rest_of_compilation): Don't run regmove if only
2989         flag_expensive_optimizations, require flag_regmove instead.
2990
2991 2005-01-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
2992
2993         * config/sparc/litecoff.h (TARGET_OS_CPP_BUILTINS): Do not
2994         register "sparc".
2995         * config/sparc/sysv4-only.h (TARGET_OS_CPP_BUILTINS): Likewise.
2996         * config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
2997         * config/sparc/sol2-64.h (TARGET_SUB_OS_CPP_BUILTINS): Delete.
2998         * config/sparc/sp64-elf.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
2999
3000 2005-01-03  Richard Henderson  <rth@redhat.com>
3001
3002         * config/ia64/ia64.c (TARGET_VECTOR_MODE_SUPPORTED_P): New.
3003         (ia64_const_ok_for_letter_p): New.
3004         (ia64_const_double_ok_for_letter_p): New.
3005         (ia64_extra_constraint): New.
3006         (ia64_expand_vecint_compare): New.
3007         (ia64_expand_vcondu_v2si): New.
3008         (ia64_expand_vecint_cmov): New.
3009         (ia64_expand_vecint_minmax): New.
3010         (ia64_print_operand): Add 'v'.
3011         (ia64_preferred_reload_class): New.
3012         (ia64_vector_mode_supported_p): New.
3013         * config/ia64/ia64.h (UNITS_PER_SIMD_WORD): New.
3014         (PREFERRED_RELOAD_CLASS): Move to function.
3015         (CONST_OK_FOR_LETTER_P): Move to function.
3016         (CONST_DOUBLE_OK_FOR_LETTER_P): Move to function.
3017         (CONSTRAINT_OK_FOR_Q, CONSTRAINT_OK_FOR_R): Remove.
3018         (CONSTRAINT_OK_FOR_S, CONSTRAINT_OK_FOR_T): Remove.
3019         (EXTRA_CONSTRAINT): Move to function.
3020         * config/ia64/ia64.md: Include vect.md.
3021         (itanium_class): Add mmalua.
3022         (type): Handle it.
3023         * config/ia64/itanium1.md (1_mmalua): New.  Add it to bypasses.
3024         (1b_mmalua): New.
3025         * config/ia64/itanium2.md (2_mmalua, 2b_mmalua): Similarly.
3026         * config/ia64/predicates.md (gr_reg_or_0_operand): Accept any
3027         CONST0_RTX.
3028         (const_int_2bit_operand): New.
3029         (fr_reg_or_0_operand): New.
3030         * config/ia64/ia64-modes.def: Add vector modes.
3031         * config/ia64/ia64-protos.h: Update.
3032         * config/ia64/vect.md: New file.
3033
3034 2005-01-03  Richard Henderson  <rth@redhat.com>
3035
3036         * simplify-rtx.c (simplify_binary_operation): Handle VEC_CONCAT.
3037
3038 2005-01-03  Uros Bizjak  <uros@kss-loka.si>
3039
3040         PR target/19236
3041         * config/i386/i386.c (log1psf2): Change mode of operands[0,1]
3042         to SFmode.
3043         (log1pdf2): Change mode of operands[0,1] to DFmode.
3044
3045 2005-01-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
3046
3047         * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Define to false.
3048         * config/sparc/linux.h (SPARC_RELAXED_ORDERING): Define to true.
3049         * config/sparc/linux64.h (SPARC_RELAXED_ORDERING): Likewise.
3050         * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Define to
3051         SPARC_RELAXED_ORDERING.
3052
3053 2005-01-03  Richard Henderson  <rth@redhat.com>
3054             Uros Bizjak  <uros@kss-loka.si>
3055
3056         PR target/14631
3057         * config/i386/i386.c (ix86_expand_builtin): [IX86_BUILTIN_PINSRW,
3058         IX86_BUILTIN_PINSRW128]: Fix wrong selector range in error message.
3059         * config/i386/i386.md (mmx_pinsrw, sse2_pinsrw): Fix selector
3060         handling.
3061         (*mmx_pinsrw, *sse2_pinsrw): New patterns.
3062         * config/i386/i386/predicates.md (const_pow2_1_to_8_operand,
3063         const_pow2_1_to_128_operand): New predicates.
3064
3065 2005-01-02  Greg McGary  <greg@mcgary.org>
3066
3067         * tree-mudflap.c (mf_varname_tree): decl_printable_name handles
3068         anonymous decls.
3069         (mf_xform_derefs_1) [RESULT_DECL, STRING_CST]: Handle as innermost
3070         object.  [ptr_type]: Remove unused variable.
3071         Remember nearest addressable array-element or record-component
3072         when checking bitfield components.  Tolerate empty BIND_EXPR.
3073
3074 2005-01-01  Richard Henderson  <rth@redhat.com>
3075
3076         * tree-vectorizer.c (vect_analyze_offset_expr): Strip conversions
3077         that don't narrow the value.  Fail for other conversions.
3078
3079 2005-01-01  Richard Henderson  <rth@redhat.com>
3080
3081         PR c/19031
3082         * c-decl.c (pop_file_scope): Call maybe_apply_pending_pragma_weaks.
3083         * c-lang.c (finish_file): Don't do it here.
3084         * objc/objc-act.c (objc_finish_file): Likewise.
3085
3086         * cgraph.c (decl_assembler_name_equal): New.
3087         (cgraph_node_for_asm, cgraph_varpool_node_for_asm): New.
3088         (cgraph_varpool_node): Actually link up cgraph_varpool_nodes.
3089         * cgraph.h (struct cgraph_varpool_node): Add next.
3090         (cgraph_node_for_asm, cgraph_varpool_node_for_asm): Declare.
3091         * varasm.c (assemble_alias): Mark the target as needed.
3092
3093 2005-01-01  Andrew Pinski  <pinskia@physics.uc.edu>
3094
3095         PR middle-end/19221
3096         * function.c (get_arg_pointer_save_area): Use entry_of_function
3097         instead of get_insns.
3098
3099 2005-01-01  Roger Sayle  <roger@eyesopen.com>
3100             Andrew Pinski  <pinskia@physics.uc.edu>
3101             James E. Wilson  <wilson@specifixinc.com>
3102
3103         PR rtl-optimization/12092
3104         * loop.c (emit_prefetch_instructions): Do nothing if PREFETCH_BLOCK
3105         is zero.
3106
3107 2005-01-01  Roger Sayle  <roger@eyesopen.com>
3108             Olivier Hainque  <hainque@act-europe.fr>
3109
3110         * tree.c (int_fits_type_p): A narrower type always fits in a
3111         wider one, except for negative values into unsigned types.
3112
3113 2005-01-01  Roger Sayle  <roger@eyesopen.com>
3114
3115         * tree.c (int_fits_type_p): Compare the result of force_fit_type
3116         with the original constant rather than require TREE_OVERFLOW.
3117
3118 2005-01-01  Steven Bosscher  <stevenb@suse.de>
3119
3120         PR middle-end/17544
3121         * c-decl.c (finish_function): If compiling C99, annotate the
3122         compiler generated return with the current file name and line 0.
3123         * tree-cfg.c (remove_useless_stmts_warn_notreached): Only warn if
3124         the source line is greater than 0.
3125         (remove_bb): Likewise.
3126
3127 See ChangeLog.12 for earlier changes.