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