OSDN Git Service

* config/rs6000/predicates.md (branch_comparison_operator): Change
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2005-03-01  David Edelsohn  <edelsohn@gnu.org>
2
3         * config/rs6000/predicates.md (branch_comparison_operator): Change
4         to define_special_predicate.
5         (scc_comparison_operator): Same.
6         (branch_positive_comparison_operator): Same.
7
8 2005-03-01  Daniel Berlin <dberlin@dberlin.org>
9
10         * Makefile.in (tree-ssa-sink.o): New.
11         (OBJS-common): Add tree-ssa-sink.o.
12         * common.opt: Add -ftree-sink
13         * opts.c (decode_options): flag_tree_sink is set at O1 or higher.
14         * timevar.def (TV_TREE_SINK): new timevar.
15         * tree-flow.h (is_hidden_global_store): Prototype.
16         * tree-optimize.c (init_tree_optimization_passes): Add
17         pass_sink_code.
18         * tree-pass.h (pass_sink_code): New.
19         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Move checking
20         for non-obvious global store store to is_hidden_global_store, and
21         call that new function.
22         * tree-ssa-sink.c: New file.
23         * doc/invoke.texi: Document -fdump-tree-sink and -ftree-sink.
24         * doc/passes.texi: Document forward store motion.
25         * testsuite/gcc.dg/tree-ssa/ssa-sink-1.c: New test
26         * testsuite/gcc.dg/tree-ssa/ssa-sink-2.c: New test
27         * testsuite/gcc.dg/tree-ssa/ssa-sink-3.c: New test
28         * testsuite/gcc.dg/tree-ssa/ssa-sink-4.c: New test
29
30 2005-03-01  Per Bothner  <per@bothner.com>
31
32         * diagnostic.c (diagnostic_build_prefix): If USE_MAPPED_LOCATION
33         and we have a non-zero column-number, add it to the message.
34         Also factor out the diagnostic_kind_text.
35
36 2005-03-01  Zdenek Dvorak  <dvorakz@suse.cz>
37
38         * cfgloop.c (flow_loop_entry_edges_find, flow_loop_exit_edges_find,
39         flow_loop_pre_header_scan, flow_loop_pre_header_find,
40         flow_loop_scan): Removed.
41         (flow_loop_dump): Do not dump removed fields.
42         (flow_loop_free): Do not free removed fields.
43         (flow_loops_find): Flags argument removed.  Do not call flow_loop_scan.
44         (loop_exit_edge_p): New function.
45         * cfgloop.h (struct loop): Removed fields pre_header, pre_header_edges,
46         num_pre_header_edges, entry_edges, num_entries, exit_edges,
47         num_exits, exits_doms.
48         (LOOP_TREE, LOOP_PRE_HEADER, LOOP_ENTRY_EDGES, LOOP_EXIT_EDGES,
49         LOOP_EDGES, LOOP_ALL): Removed.
50         (flow_loop_scan): Declaration removed.
51         (loop_exit_edge_p, mark_loop_exit_edges): Declare.
52         * cfgloopmanip.c (create_loop_notes): Do not pass flags to
53         flow_loops_find.
54         * ifcvt.c (mark_loop_exit_edges): Moved to cfgloopanal.c.
55         (if_convert): Call flow_loops_find and flow_loops_free
56         when calling mark_loop_exit_edges.
57         * cfgloopanal.c (mark_loop_exit_edges): Moved from
58         ifcvt.c.  Removed the flow_loops_find, flow_loops_free and
59         free_dominance_info calls.
60         * loop-init.c (flow_loops_find): Ditto.
61         * passes.c (rest_of_handle_branch_prob): Ditto.
62         * lambda-code.c (perfect_nestify): Do not call flow_loops_find.
63         * loop-unroll.c (analyze_insns_in_loop): Do not use
64         EDGE_LOOP_EXIT.
65         * predict.c (predict_loops): Do not call flow_loop_scan.
66         Use get_loop_exit_edges.
67         (tree_estimate_probability): Do not pass flags to flow_loops_find.
68         * tree-if-conv.c (bb_with_exit_edge_p): Take loop as argument.
69         Do not use EDGE_LOOP_EXIT.
70         (tree_if_convert_cond_expr, if_convertible_modify_expr_p): Pass loop
71         to bb_with_exit_edge_p.
72         (if_convertible_loop_p): Do not call flow_loop_scan.  Use
73         loop->single_exit.  Do not use EDGE_LOOP_EXIT.  Pass loop
74         to bb_with_exit_edge_p.
75         (combine_blocks): Pass loop to bb_with_exit_edge_p.  Do not use
76         EDGE_LOOP_EXIT.
77         * tree-loop-linear.c (linear_transform_loops): Do not call
78         flow_loop_scan.  Use loop->single_exit.
79         * tree-vect-analyze.c (vect_analyze_operations): Use loop->single_exit.
80         (vect_analyze_loop_form): Do not call flow_loop_scan.
81         * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Use
82         loop->single_exit.
83         (vect_do_peeling_for_loop_bound): Use loop_preheader_edge and
84         loop->single_exit.
85         * tree-vectorizer.c (slpeel_update_phis_for_duplicate_loop,
86         slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
87         slpeel_tree_duplicate_loop_to_edge_cfg,
88         slpeel_verify_cfg_after_peeling, slpeel_tree_peel_loop_to_edge):
89         Use loop_preheader_edge and loop->single_exit.  Do not call
90         flow_loop_scan.
91
92 2005-03-01  Nick Clifton  <nickc@redhat.com>
93
94         * config/arm/arm.c (thumb_find_work_register): Check all of the
95         argument registers to see if they are free, and a couple of
96         special cases where the last argument register but can be proved
97         to be available during the function's prologue.
98         (print_multi_reg, arm_compute_save_reg0_reg12_mask,
99         output_return_instruction, emit_multi_reg_push, thumb_pushpop,
100         thumb_unexpanded_epilogue): Use unsigned long as the type for the
101         register bit-mask.
102         (thumb_compute_save_reg_mask): Likewise.  Also use
103         thumb_find_work_register() to ensure that there is agreement about
104         which work register is going to be used in the prologue.
105         (thumb_output_function_prologue): Use unsigned long as the type
106         for the register bit-mask.  Also delay pushing the link register if
107         other high registers are going to be pushed.
108         (thumb_compute_save_reg_mask, emit_multi_reg_push,
109         print_multi-reg, number_of_first_bit_set, thumb_pushpop): Remove
110         redundant prototypes.
111
112 2005-02-28  John David Anglin  <dave.anglin#nrc-cnrc.gc.ca>
113
114         PR target/19819
115         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow allow hard registers during
116         and after reload in REG+REG indexed addresses without REG_POINTER
117         set in the base and not set in the index.
118
119 2005-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
120
121         * config/sh/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
122         Don't undefine here.
123         (HANDLE_PRAGMA_PACK_PUSH_POP): Delete.
124         (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC): Likewise.
125         (TARGET_OS_CPP_BUILTINS): Use LINUX_TARGET_OS_CPP_BUILTINS.
126         (LIB_SPEC, LINK_EH_SPEC, STARTFILE_SPEC, ENDFILE_SPEC,
127         LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED, TARGET_C99_FUNCTIONS):
128         Delete.
129         * config.gcc (sh*-*-linux*): Use config/linux.h.
130
131 2005-02-28  Dale Johannesen  <dalej@apple.com>
132             Stan Shebs  <shebs@apple.com>
133
134         Rewrite of 64-bit Darwin structure-by-value pass/return.
135         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): New fields
136         intoffset, use_stack, named.
137         * config/rs6000/rs6000.c (rs6000_darwin64_function_arg):  Remove.
138         (rs6000_darwin64_record_arg_advance_flush):  New.
139         (rs6000_darwin64_record_arg_advance_recurse): New.
140         (rs6000_darwin64_record_arg_flush):  New.
141         (rs6000_darwin64_record_arg_recurse):  New.
142         (rs6000_darwin64_record_arg):  New.
143         (rs6000_return_in_memory):  Remove AGGREGATE_TYPE_P check.
144         (function_arg_boundary):  Handle 128-bit aligned structs.
145         (function_arg_advance):  Rewrite darwin64 struct handling.
146         (function_arg):  Call rs6000_darwin64_record_arg.
147         (function_arg_partial_nregs):  Handle darwin64 structs.
148         (rs6000_darwin64_function_value):  Remove.
149         (rs6000_function_value):  Call rs6000_darwin64_record_arg.
150
151 2005-02-28  Roger Sayle  <roger@eyesopen.com>
152
153         PR tree-optimization/20216
154         * tree-chrec.c (tree_fold_factorial): Delete.
155         (tree_fold_binomial): Change argument list to take a return type
156         and change the type of K to unsigned int.  Rewrite to avoid explicit
157         evaluation of factorials, and (recursively) calling fold to perform
158         compile-time arithmetic.  Return NULL on (internal) overflow.
159         (chrec_evaluate): Change type of K to an unsigned int.  Avoid
160         calling tree_fold_binomial unnecessarily.  Return chrec_dont_know
161         if any intermediate calculation overflows.
162         (chrec_apply): Update call to chrec_evaluate.
163
164 2005-02-28  James E Wilson  <wilson@specifixinc.com>
165
166         * config/mips/mips.h (NO_PROFILE_COUNTERS): Define.
167
168 2005-02-28  Joseph S. Myers  <joseph@codesourcery.com>
169
170         PR c/20245
171         * c-parser.c (c_parser_compound_statement): Return error_mark_node
172         instead of NULL_TREE on error.
173
174 2005-02-28  David Edelsohn  <edelsohn@gnu.org>
175
176         * config/rs6000/rs6000.c (EASY_VECTOR_15): Remove.
177         (EASY_VECTOR_15_ADD_SELF): Remove.
178         (num_insns_constant_wide): Not static.
179         (validate_condition_mode): Not static.
180         (toc_relative_expr_p): Not static.
181         (legitimate_indirect_address_p): Not static.
182         (macho_lo_sum_memory_operand): Not static.
183         (invalid_e500_subreg): Not static.
184         (easy_vector_same): Not static.
185         (easy_vector_splat_const): Not static.
186         (RS6000_SYMBOL_REF_TLS_P): Remove.
187         (any_operand): Delete.
188         (any_parallel_operand): Delete.
189         (count_register_operand): Delete.
190         (altivec_register_operand): Delete.
191         (xer_operand): Delete.
192         (s8bit_cint_operand): Delete.
193         (short_cint_operand): Delete.
194         (u_short_cint_operand): Delete.
195         (non_short_cint_operand): Delete.
196         (exact_log2_cint_operand): Delete.
197         (gpc_reg_operand): Delete.
198         (cc_reg_operand): Delete.
199         (cc_reg_not_cr0_operand): Delete.
200         (reg_or_short_operand): Delete.
201         (reg_or_neg_short_operand): Delete.
202         (reg_or_aligned_short_operand): Delete.
203         (reg_or_u_short_operand): Delete.
204         (reg_or_cint_operand): Delete.
205         (reg_or_arith_cint_operand): Delete.
206         (reg_or_add_cint64_operand): Delete.
207         (reg_or_sub_cint64_operand): Delete.
208         (reg_or_logical_cint_operand): Delete.
209         (got_operand): Delete.
210         (got_no_const_operand): Delete.
211         (easy_fp_constant): Delete.
212         (easy_vector_constant): Delete.
213         (easy_vector_constant_add_self): Delete.
214         (zero_constant): Delete.
215         (zero_fp_constant): Delete.
216         (volatile_mem_operand): Delete.
217         (offsettable_mem_operand): Delete.
218         (mem_or_easy_const_operand): Delete.
219         (add_operand): Delete.
220         (non_add_cint_operand): Delete.
221         (logical_operand): Delete.
222         (non_logical_cint_operand): Delete.
223         (mask_operand): Delete.
224         (mask_operand_wrap): Delete.
225         (mask64_operand): Delete.
226         (mask64_2_operand): Delete.
227         (and64_operand): Delete.
228         (and64_2_operand): Delete.
229         (and_operand): Delete.
230         (reg_or_mem_operand): Delete.
231         (lwa_operand): Delete.
232         (symbol_ref_operand): Delete.
233         (call_operand): Delete.
234         (current_file_function_operand): Delete.
235         (input_operand): Delete.
236         (rs6000_nonimmediate_operand): Delete.
237         (rs6000_tls_symbol_ref): Delete.
238         (save_world_operation): Delete.
239         (restore_world_operation): Delete.
240         (load_multiple_operation): Delete.
241         (store_multiple_operation): Delete.
242         (vrsave_operation): Delete.
243         (mfcr_operation): Delete.
244         (mtcrf_operation): Delete.
245         (lmw_operation): Delete.
246         (stmw_operation): Delete.
247         (branch_comparison_operator): Delete.
248         (branch_positive_comparison_operator): Delete.
249         (scc_comparison_operator): Delete.
250         (trap_comparison_operator): Delete.
251         (boolean_operator): Delete.
252         (boolean_or_operator): Delete.
253         (min_max_operator): Delete.
254         * config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Move to here.
255         (EASY_VECTOR_15): Moved to here.
256         (EASY_VECTOR_15_ADD_SELF): Move to here.
257         (PREDICATE_CODES): Delete.
258         * config/rs6000/rs6000-protos.h: Delete predicate functions.
259         Declare functions no longer static.
260         * config/rs6000/predicates.md: New.
261         * config/rs6000/rs6000.md: Include predicates.md
262
263 2005-02-28  Kazu Hirata  <kazu@cs.umass.edu>
264
265         * calls.c (emit_call_1): Don't use  REG_ALWAYS_RETURN.
266         (emit_library_call_value_1): Don't use LCT_ALWAYS_RETURN and
267         REG_ALWAYS_RETURN.
268         * cfgrtl.c (need_fake_edge_p): Likewise.
269         * combine.c (distribute_notes): Likewise.
270         * emit-rtl.c (try_split): Likewise.
271         * recog.c (peephole2_opimize): Likewise.
272         * reg-notes.def (ALWAYS_RETURN): Remove.
273         * rtl.h (LCT_ALWAYS_RETURN): Remove.
274         * tree-cfg.c (need_fake_edge_p): Don't use ECF_ALWAYS_RETURN.
275         * tree.h (ECF_ALWAYS_RETURN): Remove.
276
277 2005-02-28  Roger Sayle  <roger@eyesopen.com>
278
279         PR middle-end/19874
280         * tree-ssa.c (tree_ssa_useless_type_conversion_1): A conversion
281         between different machine modes is never a "useless" conversion.
282
283 2005-02-28  Geert Bosch  <bosch@gnat.com>
284
285         PR ada/15977
286         * doc/contrib.texi: List contributors for Ada front end
287
288 2005-02-28 Paolo Bonzini <bonzini@gnu.org>
289
290         * simplify-rtx.c (simplify_unary_operation_1,
291         simplify_const_unary_operation): New, extracted from...
292         (simplify_unary_operation): ... this one.
293         (simplify_binary_operation_1,
294         simplify_const_binary_operation): New, extracted from...
295         (simplify_binary_operation): ... this one.
296         * rtl.h (simplify_const_unary_operation,
297         simplify_const_binary_operation): Add prototypes.
298
299 2005-02-28  Julian Brown  <julian@codesourcery.com>
300
301         * config/elfos.h: Revert my patch from 2005-02-25 since it broke
302         building libjava and caused PR regression/20228.
303
304 2005-02-28  Paolo Bonzini  <bonzini@gnu.org>
305
306         PR bootstrap/17383
307         * Makefile.in (host_subdir): New.
308         (build_objdir): New.  Replace ../$(build_subdir) with it throughout.
309         * configure: Regenerate.
310
311 2005-02-27  Zack Weinberg  <zack@codesourcery.com>
312
313         * config/alpha/t-osf4, config/arm/t-netbsd, config/ia64/t-hpux
314         * config/pa/t-hpux-shlib (SHLIB_INSTALL): Create the
315         installation directory first.
316
317 2005-02-28  Hans-Peter Nilsson  <hp@axis.com>
318
319         PR target/19065.
320         * config/cris/cris.h (EXTRA_CONSTRAINT_Q): Accept only (mem (reg)),
321         not including (reg). Do not check for reg being CRIS_PC_REGNUM.
322         (EXTRA_MEMORY_CONSTRAINT): Define as 'Q'.
323         * config/cris/cris.md: Tweak comments referring to Q.
324         ("cmpsi", "cmphi", "cmpqi", "*movsi_internal", "movhi")
325         ("movstricthi", "movqi", "movstrictqi", "movsf", "addsi3")
326         ("addhi3", "addqi3", "subsi3", "subhi3", "subqi3")
327         ("*expanded_andsi", "*expanded_andhi", "*andhi_lowpart", "andqi3")
328         ("*andqi_lowpart", "iorsi3", "iorhi3", "iorqi3", "uminsi3"):
329         Insert spaces in constraints to align alternatives vertically for
330         readability.
331         ("cmphi"): Ditto.  Add separate alternative for operand 0 "r",
332         operand 1: "M".
333
334 2005-02-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
335
336         PR rtl-optimization/17728
337         * pa.md (mulsi3, divsi3, udivsi3, modsi3): Change predicate for
338         operand 0 from general_operand to move_dest_operand.
339
340 2005-02-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
341
342         * pa/elf.h, pa/som.h (ASM_OUTPUT_EXTERNAL): Use assemble_name_raw
343         instead of trying to save and restore TREE_SYMBOL_REFERENCED.
344         * pa/pa64-hpux.h (ASM_OUTPUT_TYPE_DIRECTIVE): Define.
345         (ASM_OUTPUT_EXTERNAL): Don't save and restore TREE_SYMBOL_REFERENCED.
346
347 2005-02-26  Nathanael Nerode  <neroden@gcc.gnu.org>
348
349         * configure.ac: Rename cc_for_cross_gnattools to host_cc_for_libada.
350         * configure: Regenerate.
351         * libada-mk.in: Remove CC; rename
352         cc_for_cross_gnattools / cc_set_by_configure to host_cc_for_libada.
353
354 2005-02-26  Andrew Pinski  <pinskia@physics.uc.edu>
355
356         PR tree-opt/20188
357         * tree-ssa-alias.c (count_uses_and_derefs): If we have TREE_LIST
358         for the lhs, also walk over the tree.  Likewise for rhs.
359
360 2005-02-26  Zdenek Dvorak  <dvorakz@suse.cz>
361
362         * tree-ssa-dom.c (simple_iv_increment_p): New function.
363         (simplify_rhs_and_lookup_avail_expr, eliminate_redundant_computations):
364         Do not propagate value of iv before increment over the increment.
365
366 2005-02-25  Joseph S. Myers  <joseph@codesourcery.com>
367
368         * c-parser.c: New file.
369         * c-parse.in: Remove.
370         * Makefile.in (c-parse.o-warn, c-parse.o, c-parse.c, c-parse.y):
371         Remove.
372         (c-parser.o): Add dependencies.
373         (C_AND_OBJC_OBJC, C_OBJS, gcc.srcextra, GTFILES, distclean,
374         maintainer-clean, TAGS): Update.
375         * c-config-lang.in (gtfiles): Update.
376         * gengtype-lex.l: Don't handle "@@".
377         * stub-objc.c (objc_get_class_ivars, objc_build_throw_stmt,
378         objc_build_synchronized, objc_begin_try_stmt,
379         objc_begin_catch_clause, objc_finish_catch_clause,
380         objc_build_finally_clause, objc_finish_try_stmt): New.
381         * c-tree.h (struct c_declspecs): Add declspecs_seen_p and
382         type_seen_p.
383         (c_parse_init): Update comment.
384         * c-decl.c (c_init_decl_processing): Update comment.
385         (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
386         declspecs_add_scspec, declspecs_add_attrs): Initialize and update
387         new c_declspecs members.
388
389 2005-02-25  Julian Brown  <julian@codesourcery.com>
390
391         * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK
392         from being used for symbols with vague linkage when
393         HAVE_GAS_COMDAT_GROUP is true.
394
395 2005-02-25  Mark Mitchell  <mark@codesourcery.com>
396
397         * doc/include/gcc-common.texi (version-GCC): Update to 4.1.
398
399 2005-02-25  Steve Ellcey  <sje@cup.hp.com>
400
401         PR target/19930
402         * doc/tm.texi (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Document.
403         (LIBGCC2_HAS_DF_MODE): New.
404         (LIBGCC2_HAS_XF_MODE): New.
405         (LIBGCC2_HAS_TF_MODE): New.
406         * libgcc2.h (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
407         (LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
408         * libgcc2.c (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
409         (LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
410         (LIBGCC2_HAS_DF_MODE): New name for HAVE_DFMODE.
411         * config/ia64/t-ia64 (LIB1ASMFUNCS): Remove __compat
412         and add _fixtfdi, _fixunstfdi, _floatditf
413         * lib1funcs.asm: Remove L__compat. Add L_fixtfdi,
414         L_fixunstfdi, L_floatditf.
415         * config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE): Define.
416         (LIBGCC2_HAS_TF_MODE): Define.
417
418 2005-02-25  Diego Novillo  <dnovillo@redhat.com>
419
420         PR tree-optimization/20204
421         * tree-into-ssa.c (insert_phi_nodes_for): Do not use
422         REWRITE_THIS_STMT markers on PHI nodes.
423         (rewrite_initialize_block): Likewise.
424
425 2005-02-25  Mark Mitchell  <mark@codesourcery.com>
426
427         * version.c (version_string): Update to 4.1.
428
429 2005-02-25  Paolo Carlini  <pcarlini@suse.de>
430
431         * doc/extend.texi (5.24 Declaring Attributes of Functions)<noreturn>:
432         Clarify that the alternative way doesn't work in GNU C++.
433
434 2005-02-25  Zdenek Dvorak  <dvorakz@suse.cz>
435
436         PR tree-optimization/19937
437         * tree-ssa-loop-ivopts.c (rewrite_use_compare): Cast the final value
438         to the type of the induction variable.
439
440 2005-02-25  Kaz Kojima  <kkojima@gcc.gnu.org>
441
442         PR rtl-optimization/20117
443         * bb-reorder.c (duplicate_computed_gotos): Don't duplicate
444         the block including noncopyable insn.
445
446 2005-02-24  Kazu Hirata  <kazu@cs.umass.edu>
447
448         * cse.c (delete_trivially_dead_insns): Speed up by minimizing
449         calls to find_reg_note.
450
451 2005-02-24  Richard Henderson  <rth@redhat.com>
452
453         PR tree-opt/20127
454         * tree-sra.c (instantiate_element): Copy TREE_THIS_VOLATILE from
455         the type.
456
457 2005-02-24  Fariborz Jahanian <fjahanian@apple.com>
458
459         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Check for
460         vector types if to use base reg for misaligned non-word ld/std.
461
462 2005-02-24  Hans-Peter Nilsson  <hp@axis.com>
463
464         PR target/14619
465         * config/cris/cris.c (cris_target_asm_function_prologue): Create
466         dwarf2 label manually and put it after, not before the prologue.
467
468 2005-02-24  David Edelsohn  <edelsohn@gnu.org>
469
470         PR target/19019
471         * reload.c (operands_match_p): Only increment register number for
472         SCALAR_INT_MODE_P modes in multiple hard registers.
473
474         * config/rs6000/rs6000.md (trunctfdf2): Remove register constraints.
475         Fix formatting.
476
477 2005-02-24  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
478
479         * ChangeLog.5: Fix log message typo(s).
480         * ChangeLog.7: Likewise.
481         * ChangeLog.tree-ssa: Likewise.
482         * cfgexpand.c: Fix comment typo(s).
483         * conflict.c: Likewise.
484         * defaults.h: Likewise.
485         * dwarf2out.c: Likewise.
486         * gcse.c: Likewise.
487         * ggc-page.c: Likewise.
488         * tree-eh.c: Likewise.
489         * tree-ssa-dom.c: Likewise.
490
491 2005-02-24  Jakub Jelinek  <jakub@redhat.com>
492
493         PR target/19019
494         * mklibgcc.in: Pass -DSHARED when compiling all *_s${objext} objects.
495         * config/rs6000/darwin-ldouble.c: Only use the .symver directives
496         if SHARED is defined.
497
498         PR target/20196
499         * config/rs6000/rs6000.md (LTU, GTU sCC splitters): Add earlyclobber,
500         allow splitting only if operands 0 and 3 don't overlap.
501
502 2005-02-24  Richard Henderson  <rth@redhat.com>
503
504         PR middle-end/19953
505         * builtins.c (fold_builtin_complex_mul, fold_builtin_complex_div): New.
506         (fold_builtin_1): Call them.
507         * fold-const.c (fold_complex_mult_parts): Split out from ...
508         (fold_complex_mult): ... here.  Fix typo in both imaginary case.
509         (fold_complex_div_parts, fold_complex_div): New.
510         (fold): Use them.
511         * tree.h (fold_complex_mult_parts, fold_complex_div_parts): Declare.
512
513 2005-02-24  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
514
515         * tree-ssa-ccp.c (visit_assignment): Verify that result of
516         VIEW_CONVERT_EXPR is_gimple_min_invariant.
517
518         * print-tree.c (print_node_brief): Print LABEL_DECL_UID.
519         (print_node): Likewise.
520         Print TYPE_SIZES_GIMPLIFIED.
521
522 2005-02-24  Hans-Peter Nilsson  <hp@axis.com>
523
524         * config/cris/cris.md ("umulhisi3", "umulqihi3", "mulsi3")
525         ("mulqihi3", "mulhisi3", "mulsidi3", "umulsidi3"): Mark input
526         operands as commutative in constraints.
527
528 2005-02-24  Diego Novillo  <dnovillo@redhat.com>
529
530         * tree-into-ssa.c: Re-organize internal functions.
531
532 2005-02-24  Richard Henderson  <rth@redhat.com>
533
534         PR middle-end/18902
535         * c-opts.c (c_common_post_options): Set flag_complex_method to 2
536         for c99.
537         * common.opt (fcx-limited-range): New.
538         * opts.c (set_fast_math_flags): Set flag_cx_limited_range.
539         * toplev.c (flag_complex_method): Initialize to 1.
540         (process_options): Set flag_complex_method to 0 if
541         flag_cx_limited_range.
542         * doc/invoke.texi (-fcx-limited-range): New.
543
544 2005-02-24  Kazu Hirata  <kazu@cs.umass.edu>
545
546         * cse.c (delete_trivially_dead_insns): Speed up by using
547         NEXT_INSN and PREV_INSN directly instead of next_real_insn and
548         prev_real_insn.
549
550 2005-02-24  Andrea Tarani  <andrea.tarani@gilbarco.com>
551
552         * config/m68k/m68k.c (m68k_save_reg): Also save A5 for non-leaf
553         functions when -mid-shared-library is being used.
554
555 2005-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
556
557         * doc/tm.texi (LINK_LIBGCC_SPECIAL): Remove.
558         (LINK_LIBGCC_SPECIAL_1): Don't mention it.
559         * gcc.c: Don't check for LINK_LIBGCC_SPECIAL.
560         * system.h: Poison LINK_LIBGCC_SPECIAL.
561
562 2005-02-23  James E Wilson  <wilson@specifixinc.com>
563
564         * gengtype.c (note_insn_name): Make 1 element larger.
565
566 2005-02-23  Roger Sayle  <roger@eyesopen.com>
567
568         PR target/20018
569         PR rtl-optimization/20097
570         * simplify-rtx.c (simplify_relational_operation_1): Avoid creating
571         BImode SUBREGs of SImode registers which confuse the ia64 backend.
572
573 2005-02-23  David Edelsohn  <edelsohn@gnu.org>
574
575         * t-aix43 (SHLIB_INSTALL): Create directory for shared library.
576         * t-aix52 (SHLIB_INSTALL): Same.
577
578 2005-02-23  Kazu Hirata  <kazu@cs.umass.edu>
579
580         * genpreds.c: Update copyright.
581
582 2005-02-23  Michael Beach  <michaelb@ieee.org>
583
584         PR target/20159
585         * config/sparc/t-elf (startup files): Assemble with CPP.
586
587 2005-02-23  Paolo Bonzini  <bonzini@gnu.org>
588
589         * genpreds.c (mark_mode_tests): Handle non-VOIDmode match_operands.
590         (write_predicate_expr): Likewise.
591
592 2005-02-22  Diego Novillo  <dnovillo@redhat.com>
593
594         PR tree-optimization/20100
595         PR tree-optimization/20115
596         * tree-optimize.c (init_tree_optimization_passes): Remove
597         pass_maybe_create_global_var.
598         * tree-pass.h (pass_maybe_create_global_var): Remove.
599         * tree-ssa-alias.c (aliases_computed_p): Declare.
600         (struct alias_info): Add field NUM_PURE_CONST_CALLS_FOUND.
601         (count_calls_and_maybe_create_global_var): Remove.
602         (pass_maybe_create_global_var): Remove.
603         (init_alias_info): Do not declare aliases_computed_p.
604         (maybe_create_global_var): If the function contains no
605         call-clobbered variables and a mix of pure/const and regular
606         function calls, create .GLOBAL_VAR.
607         Mark all call-clobbered variables for renaming.
608         (merge_pointed_to_info): Update comment.
609         (add_pointed_to_var): Likewise.
610         (is_escape_site): Likewise.
611         Accept struct alias_info * instead of size_t *.
612         Update all users.
613         Update AI->NUM_CALLS_FOUND and AI->NUM_PURE_CONST_CALLS_FOUND
614         as necessary.
615         * tree-ssa-operands.c (get_call_expr_operands): If
616         ALIASES_COMPUTED_P is false, do not add call-clobbering
617         operands.
618         * tree-ssa.c (init_tree_ssa): Set ALIASES_COMPUTED_P to false.
619         (delete_tree_ssa): Likewise.
620
621 2005-02-22  James E Wilson  <wilson@specifixinc.com>
622
623         * toplev.c (backend_init): Don't call init_adjust_machine_modes here.
624         (do_compile): Do call it here.
625
626 2005-02-22  Kazu Hirata  <kazu@cs.umass.edu>
627
628         PR rtl-optimization/20017.
629         * passes.c (rest_of_handle_combine, rest_of_handle_cse,
630         rest_of_handle_cse2, rest_of_handle_gcse): Call
631         delete_dead_jumptables immediately before calling cleanup_cfg.
632
633 2005-02-22  Devang Patel  <dpatel@apple.com>
634
635         PR 19952
636         * tree-if-conv.c (process_phi_nodes): Use bsi_after_labels and skip
637         all labels
638
639 2005-02-22  David Edelsohn  <edelsohn@gnu.org>
640
641         * config/rs6000/aix.h (WINT_TYPE): Define.
642
643 2005-02-22  Stan Shebs  <shebs@apple.com>
644
645         * config/rs6000/rs6000.c (rs6000_override_options): Default to
646         natural alignment for 64-bit Darwin.
647         (rs6000_parse_alignment_option): Warn about uses of -malign-power
648         on 64-bit Darwin.
649         * doc/invoke.texi: Document this.
650
651 2005-02-22  DJ Delorie  <dj@redhat.com>
652
653         * c-common.c (c_common_type_for_mode): Pass the mode's precision
654         to make_[un]signed_type, not the mode itself.
655
656 2005-02-22  Kazu Hirata  <kazu@cs.umass.edu>
657
658         * cfg.c (cached_make_edge): Call make_edge if edge cache is
659         not available.  Use tail calls wherever possible.
660         (make_edge): Call unchecked_make_edge to create an edge.
661
662         * tree-outof-ssa.c (SSANORM_USE_COALESCE_LIST): Remove.
663         (coalesce_ssa_name): Don't check for
664         SSANORM_USE_COALESCE_LIST.
665         (rewrite_out_of_ssa): Don't use SSANORM_USE_COALESCE_LIST.
666
667 2005-02-22  Diego Novillo  <dnovillo@redhat.com>
668
669         * tree-into-ssa.c (rewrite_blocks): Move debug dumps from ...
670         (rewrite_into_ssa): ... here.
671
672 2005-02-21  Alexandre Oliva  <aoliva@redhat.com>
673
674         PR tree-optimization/19786
675         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add one
676         tag to another's may-alias bitmap when adding to the other's list.
677
678 2005-02-21  DJ Delorie  <dj@redhat.com>
679
680         * tree-ssa-loop-ivopts.c (computation_cost): Start register
681         numbering at LAST_VIRTUAL_REGISTER+1 to avoid possibly using hard
682         registers in unsupported ways.
683         * expmed.c (init_expmed): Likewise.
684
685 2005-02-21  Stan Cox  <scox@redhat.com>
686
687         * config/iq2000/iq2000.h (DWARF_FRAME_RETURN_COLUMN): Change to 31.
688
689 2005-02-21  Kazu Hirata  <kazu@cs.umass.edu>
690
691         * tree-cfg.c (fold_cond_expr_cond): New.
692         (make_edges): Call fold_cond_expr_cond.
693         (find_taken_edge): Accept nothing but INTEGER_CST.
694         (find_taken_edge_cond_expr): Reject INTEGER_CST other than 0
695         and 1.
696         (find_taken_edge_switch_expr): Remove a check for INTEGER_CST.
697
698         * flow.c (delete_dead_jumptables): Speed up by scanning insns
699         that do not belong to any basic block.
700
701 2005-02-21  Jeff Law  <law@redhat.com>
702
703         * cfganal.c (find_unreachable_blocks): Manually CSE load of
704         e->dest.
705
706 2005-02-21  Kazu Hirata  <kazu@cs.umass.edu>
707
708         * tree-outof-ssa.c (SSANORM_REMOVE_ALL_PHIS): Remove.
709         (SSANORM_COALESCE_PARTITIONS, SSANORM_USE_COALESCE_LIST):
710         Adjust their definitions.
711         (remove_ssa_form): Don't check for SSANORM_REMOVE_ALL_PHIS.
712         (rewrite_out_of_ssa): Don't use SSANORM_REMOVE_ALL_PHIS.
713
714         * c-objc-common.h, c-pretty-print.c, cgraphunit.c, except.c,
715         genautomata.c, langhooks.c, langhooks.h, system.h,
716         config/arm/lib1funcs.asm: Update copyright.
717
718 2005-02-21  Ulrich Weigand  <uweigand@de.ibm.com>
719
720         * dbxout.c (dbxout_function_end): Emit Lscope label always.
721
722 2005-02-21  Richard Guenther  <rguenth@gcc.gnu.org>
723
724         PR bootstrap/13770
725         * doc/install.texi: Document --with-gc.
726
727 2005-02-21  Paolo Bonzini  <bonzini@gnu.org>
728
729         * simplify-rtx.c (simplify_unary_operation): Add a missing
730         "break" statement.
731
732 2005-02-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
733
734         PR tree-optimization/18663
735         * tree-ssa-dom.c (extract_range_from_cond): Return 0
736         if the type has variable bounds.
737
738 2005-02-20  Kazu Hirata  <kazu@cs.umass.edu>
739
740         * gcse.c: Remove an obsolete comment.
741
742         * cse.c (init_cse_reg_info): Use xmalloc instead of xrealloc.
743
744 2005-02-20  Hans-Peter Nilsson  <hp@axis.com>
745
746         * doc/extend.texi (Function Attributes) <Attribute const>: The
747         attribute "pure" is below this text, not above.
748
749 2005-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
750
751         * pa.c (pa_assemble_integer, get_plabel): Small cleanups.
752         (pa_asm_output_mi_thunk): Use asm_output_insn instead of fprintf.
753         * som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Small cleanup.
754
755 2005-02-20  Zack Weinberg  <zack@codesourcery.com>
756
757         PR 18785
758         * langhooks.h (struct lang_hooks): Add to_target_charset.
759         * langhooks.c (lhd_to_target_charset): New function.
760         * langhooks-def.h: Declare lhd_to_target_charset.
761         (LANG_HOOKS_TO_TARGET_CHARSET): New macro.
762         (LANG_HOOKS_INITIALIZER): Update.
763         * c-common.c (c_common_to_target_charset): New function.
764         * c-common.h: Declare it.
765         * c-objc-common.h (LANG_HOOKS_TO_TARGET_CHARSET): Set to
766         c_common_to_target_charset.
767
768         * defaults.c (TARGET_BELL, TARGET_BS, TARGET_CR, TARGET_DIGIT0)
769         (TARGET_ESC, TARGET_FF, TARGET_NEWLINE, TARGET_TAB, TARGET_VT):
770         Delete definitions.
771         * system.h: Poison them.
772         * doc/tm.texi: Don't discuss them.
773         * builtins.c (fold_builtin_isdigit): Use lang_hooks.to_target_charset.
774         * c-pretty-print.c (pp_c_integer_constant): Don't use pp_c_char.
775         (pp_c_char): Do not attempt to generate letter escapes for
776         newline, tab, etc.
777         * config/arm/arm.c (output_ascii_pseudo_op): Likewise.
778         * config/mips/mips.c (mips_output_ascii): Likewise.
779
780 2005-02-20  Dorit Naishlos  <dorit@il.ibm.com>
781
782         PR tree-optimization/19951
783         * tree-vect-analyze.c (vect_analyze_loop_form): Check if loop exit edge
784         is abnormal.
785
786 2005-02-19  Steven Bosscher  <stevenb@suse.de>
787
788         PR middle-end/19698
789         * function.h (struct function): New field `max_loop_depth'.
790         * cfgloop.c (establish_preds): Update maximum loop depth seen so far.
791         (flow_loops_find): Reset the max loop depth count before finding loops.
792         * flow.c (MAX_LIVENESS_ROUNDS): New constant.
793         (update_life_info_in_dirty_blocks): Remove 2002-05-28 workaround.
794         (calculate_global_regs_live): Make sure the loop will terminate
795         when the initial sets are not empty.
796
797 2005-02-19  Zack Weinberg  <zack@codesourcery.com>
798
799         * mklibgcc.in: If libgcc_eh.a would be empty, put a dummy
800         object inside.
801         * config/ia64/hpux.h: Don't define LIBGCC_SPEC.
802
803 2005-02-19  Richard Sandiford  <rsandifo@redhat.com>
804
805         PR other/19525
806         * doc/invoke.texi: Remove documentation of %M spec.
807         * gcc.c: Likewise.
808         (init_spec): Remove %M suffix from -lgcc_s.
809         (do_spec_1): Remove 'M' case.
810         * mklibgcc.in: Remove SHLIB_MULTILIB handling.  Expect SHLIB_LINK
811         to put shared libraries in the multilib directory.  Remove the
812         shlib_so_soname substitution variable.  Don't add a multilib encoding
813         to shlib_base_name.  Set shlib_slibdir_qual to the full pathname
814         reported by -print-multi-os-directory.  Pass @multilib_dir@ to
815         SHLIB_INSTALL as well as SHLIB_LINK.
816         * config/t-slibgcc-elf-ver (SHLIB_SONAME): Use @shlib_base_name@.
817         (SHLIB_NAME): Delete.
818         (SHLIB_DIR): New macro.
819         (SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_SOLINK) in $(SHLIB_DIR).
820         (SHLIB_INSTALL): Adjust accordingly.
821         * config/t-slibgcc-darwin: As for t-slibgcc-elf-ver.
822         * config/t-slibgcc-sld: Likewise.
823         * config/t-libunwind-elf (SHLIBUNWIND_NAME): Delete.
824         (SHLIBUNWIND_SONAME): Use @shlib_base_name@.
825         (SHLIBUNWIND_LINK): Put $(SHLIBUNWIND_SONAME) and $(SHLIB_SOLINK)
826         in $(SHLIB_DIR).
827         (SHLIBUNWIND_INSTALL): Adjust accordingly.
828         * config/i386/t-nwld (SHLIB_SONAME): Delete.
829         (SHLIB_LINK, SHLIB_INSTALL): Use SHLIB_NAME instead of SHLIB_SONAME.
830         Use @shlib_base_name@ instead of @shlib_so_name@.
831         * config/ia64/t-hpux (SHLIB_LINK): Put @shlib_base_name@.so.0
832         and @shlib_base_name@.so in @multilib_dir@.
833         (SHLIB_INSTALL): Adjust accordingly.  Add @shlib_slibdir_qual@
834         to the install path.
835         * config/mips/t-slibgcc-irix: As for t-slibgcc-elf-ver.
836         (SHLIB_LINK): Remove previous workaround.
837         * config/pa/t-hpux-shlib (SHLIB_DIR, SHLIB_SLIBDIR_QUAL): New macros.
838         (SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_NAME) in $(SHLIB_DIR).
839         (SHLIB_INSTALL): Adjust accordingly.  Add $(SHLIB_SLIBDIR_QUAL) to
840         the install path.
841         * config/rs6000/t-aix43 (SHLIB_LINK): Put @shlib_base_name@.a in
842         @multilib_dir@.  Use @multilib_dir@ to check for threading libraries.
843         (SHLIB_INSTALL): Adjust accordingly.
844         (SHLIB_LIBS): Use @multilib_dir@ to check for threading libraries.
845         * config/rs6000/t-aix52: As for config/rs6000/t-aix43.
846         * config/sh/t-linux (SHLIB_LINK, SHLIB_INSTALL): As for
847         config/t-slibgcc-elf-ver.
848
849 2005-02-19  Zdenek Dvorak  <dvorakz@suse.cz>
850             Jakub Jelinek  <jakub@redhat.com>
851
852         PR tree-optimization/19828
853         * tree-ssa-loop-im.c: Add a TODO comment.
854         (movement_possibility): Return MOVE_PRESERVE_EXECUTION for calls
855         without side-effects.
856
857 2005-02-18  James A. Morrison  <phython@gcc.gnu.org>
858
859         * tree-ssa-ccp.c (widen_bitfield): Pass type to build_int_cst and don't
860         call fold_convert.
861
862 2005-02-18  James E. Wilson  <wilson@specifixinc.com>
863
864         * doc/invoke.texi (IA-64 Options): Delete -mb-step.
865         * config/ia64/ia64.c (last_group, group_idx): Delete variables.
866         (errata_find_address_regs, errata_emit_nops, fixup_errata): Delete
867         functions.
868         (ia64_reorg): Delete fixup_errata call.
869         * config/ia64/ia64.h (MASK_B_STEP, TARGET_B_STEP): Delete.
870         (TARGET_SWITCHES): Delete -mb-step entry.
871
872 2005-02-19  Jakub Jelinek  <jakub@redhat.com>
873
874         PR c/20043
875         * c-typeck.c (composite_type): Handle quals in transparent unions.
876         (type_lists_compatible_p): Likewise.
877
878 2005-02-18  Stan Shebs  <shebs@apple.com>
879
880         * config/darwin.c (machopic_select_rtx_section): Don't put relocatable
881         expressions in the .literal8 section.
882
883 2005-02-18  Geoffrey Keating  <geoffk@apple.com>
884
885         * config/rs6000/darwin-tramp.asm: Remove stray 'APPLE LOCAL' marker.
886
887 2005-02-18  Roger Sayle  <roger@eyesopen.com>
888
889         * fold-const.c (constant_boolean_node): Always create values of the
890         specified type, don't bother calling truthvalue_conversion.
891
892 2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
893
894         * except.c (output_function_exception_table): Call
895         assemble_external_libcall (eh_personality_libfunc).
896
897 2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
898
899         PR target/19886
900         * config/ia64/ia64.h (struct machine_function): Add state_num.
901         * config/ia64/ia64.c (process_epilogue,
902         process_for_unwind_directive): Use new unwind state numbers each
903         time rather than state 1.
904
905 2005-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
906
907         PR target/20054
908         * config/s390/s390.md ("*llgt_sidi", "*llgt_sidi_split"): Move to
909         before the "*llgt_didi" pattern.
910
911 2005-02-18  Jason Merrill  <jason@redhat.com>
912
913         * gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Revert again.
914
915 2005-02-18  Richard Earnshaw  <rearnsha@arm.com>
916
917         * arm/lib1funcs.asm (FUNC_ALIAS): New macro.
918         (div0): Use it in place of ARM_FUNC_ALIAS.
919         (lshrdi3, ashrdi3, ashlrdi3): Likewise.
920
921 2005-02-18  Andrew Pinski  <pinskia@physics.uc.edu>
922
923         PR middle-end/20030
924         * fold-const.c (fold_indirect_ref_1): Use the correct index for zero
925         access, the lower bound of the array type if it exists.
926
927 2005-02-18  Alexandre Oliva  <aoliva@redhat.com>
928
929         PR c++/20008
930         * stmt.c (expand_case): Don't assume cleanup_tree_cfg will remove
931         cases that are out-of-range for the index type.
932
933 2005-02-18  James A. Morrison  <phython@gcc.gnu.org>
934
935         * stmt.c (emit_case_bit_tests): Call fold_convert instead of convert.
936         (estimate_case_costs): Don't call convert.
937         * expmed.c (expand_shift): Likewise.
938         (make_tree): Call fold_convert instead of convert.
939
940 2005-02-18  Jakub Jelinek  <jakub@redhat.com>
941
942         PR c++/19813
943         * emit-rtl.c (set_mem_attributes_minus_bitpos): Add assertion
944         that ref to be marked MEM_READONLY_P doesn't have base that needs
945         constructing.
946
947 2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
948
949         * genautomata.c (output_get_cpu_unit_code_func,
950         output_cpu_unit_reservation_p): Don't generate old-style function
951         definitions.
952
953 2005-02-18  Jakub Jelinek  <jakub@redhat.com>
954
955         PR c++/20023
956         PR tree-optimization/20009
957         * convert.c (convert_to_integer): Revert 2005-02-16 change.
958
959         PR tree-optimization/18947
960         * cgraphunit.c (cgraph_finalize_function): When redefining an extern
961         inline, remove all nodes that are inlined into the extern inline
962         being redefined.
963
964 2005-02-17  Kazu Hirata  <kazu@cs.umass.edu>
965
966         * bt-load.c, cfgloop.c, convert.c, dominance.c, global.c,
967         loop-invariant.c, stmt.c, tree-ssa-forwprop.c,
968         tree-ssa-live.c, tree-ssanames.c, tree-vn.c,
969         config/host-linux.c, config/arm/fpa.md, config/avr/avr.h:
970         Update copyright.
971
972 2005-02-17  Roger Sayle  <roger@eyesopen.com>
973
974         PR tree-optimization/19917
975         * tree-eh.c (tree_could_trap_p): Consider calls to weak functions
976         to be potentially trapping.
977
978 2005-02-17  Kazu Hirata  <kazu@cs.umass.edu>
979
980         * libgcc2.c, tree-vect-analyze.c: Fix comment typos.
981
982 2005-02-17  Andreas Krebbel  <krebbel1@de.ibm.com>
983
984         * builtins.c (expand_builtin_return_addr): Remove tem parameter.
985         tem becomes a local variable which is set to the value of the
986         back end defined INITIAL_FRAME_ADDRESS macro.
987         (expand_builtin_frame_address): Omit the base parameter to
988         expand_builtin_return_addr.
989         (expand_builtin_profile_func): Likewise.
990         * config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Define new macro.
991         (DYNAMIC_CHAIN_ADDRESS): Remove the case for the initial frame.
992         * doc/tm.texi: Documentation for INITIAL_FRAME_ADDRESS_RTX added.
993
994 2005-02-17  Jakub Jelinek  <jakub@redhat.com>
995
996         * config/s390/s390.c (s390_alloc_pool, s390_free_pool,
997         s390_chunkify_start): Use BITMAP_ALLOC and BITMAP_FREE.
998         * config/frv/frv.c (frv_function_epilogue): Likewise.
999
1000 2005-02-17  Daniel Berlin  <dberlin@dberlin.org>
1001
1002         * lambda-code (perfect_nestify): Remove mark/unmark
1003         for rewriting hack.
1004         * tree-loop-linear.c (linear_transform_loops): Add
1005         rewrite_into_ssa call so that ssa is correct for
1006         rewriting into loop closed.
1007
1008 2005-02-17  Nathan Sidwell  <nathan@codesourcery.com>
1009
1010         * bitmap.h (BITMAP_XMALLOC, BITMAP_XFREE): Remove.
1011         * bb-reorder.c (duplicate_computed_gotos): Use BITMAP_ALLOC and
1012         BITMAP_FREE.
1013         * bt-load.c (btr_def_live_range, combine_btr_defs,
1014         migrate_btr_def, migrate_btr_defs): Likewise.
1015         * cfgcleanup.c (thread_jump): Likewise.
1016         * cfgloop.c (get_loop_body_in_bfs_order): Likewise.
1017         * df.c (df_insn_table_realloc, df_bitmaps_alloc, df_bitmaps_free,
1018         df_alloc, df_free, df_du_chain_create, df_bb_rd_local_compute,
1019         df_rd_local_compute, df_reg_info_compute): Likewise.
1020         * dominance.c (init_dom_info, free_dom_info): Likewise.
1021         * flow.c (init_propagate_block_info,
1022         free_propagate_block_info): Likewise.
1023         * gcse.c (alloc_gcse_mem, free_gcse_mem): Likewise.
1024         * global.c (allocate_bb_info, free_bb_info, calculate_reg_pav,
1025         modify_reg_pav): Likewise.
1026         * loop-invariant.c (find_defs, find_invariant_insn,
1027         find_invariants, free_inv_motion_data): Likewise.
1028         * predict.c (tree_predict_by_opcode,
1029         estimate_bb_frequencies): Likewise.
1030         * stmt.c (expand_case): Likewise.
1031         * tree-cfg.c (tree_duplicate_sese_region): Likewise.
1032         * tree-dfa.c (mark_new_vars_to_rename): Likewise.
1033         * tree-if-conv.c (get_loop_body_in_if_conv_order): Likewise.
1034         * tree-into-ssa.c (insert_phi_nodes_for, def_blocks_free,
1035         get_def_blocks_for, mark_def_site_blocks, rewrite_into_ssa,
1036         rewrite_ssa_into_ssa): Likewise.
1037         * tree-optimize.c (tree_rest_of_compilation): Likewise.
1038         * tree-outof-ssa.c (new_temp_expr_table, free_temp_expr_table,
1039         analyze_edges_for_bb, perform_edge_inserts): Likewise.
1040         * tree-scalar-evolution.c (scev_initialize, scev_finalize): Likewise.
1041         * tree-sra.c (tree_sra): Likewise.
1042         * tree-ssa-alias.c (init_alias_info, delete_alias_info): Likewise.
1043         * tree-ssa-ccp.c (ccp_fold_builtin): Likewise.
1044         * tree-ssa-dce.c (tree_dce_init, tree_dce_done): Likewise.
1045         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
1046         * tree-ssa-dse.c (tree_ssa_dse): Likewise.
1047         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_var):
1048         Likewise.
1049         * tree-ssa-live.c (new_tree_live_info, delete_tree_live_info,
1050         calculate_live_on_entry, calculate_live_on_exit,
1051         build_tree_conflict_graph): Likewise.
1052         * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize_init, record_use,
1053         record_important_candidates, set_use_iv_cost, find_depends,
1054         determine_use_iv_costs, iv_ca_new, iv_ca_free, free_loop_data,
1055         tree_ssa_iv_optimize_finalize): Likewise.
1056         * tree-ssa-loop-manip.c (add_exit_phis_var, get_loops_exit,
1057         find_uses_to_rename_use, rewrite_into_loop_closed_ssa,
1058         tree_duplicate_loop_to_header_edge): Likewise.
1059         * tree-ssa-pre.c (init_pre, fini_pre): Likewise.
1060         * tree-ssa.c (verify_flow_insensitive_alias_info,
1061         verify_name_tags, verify_ssa, init_tree_ssa,
1062         delete_tree_ssa): Likewise.
1063         * tree-ssanames.c (marked_ssa_names, init_ssanames,
1064         fini_ssanames): Likewise.
1065         * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Likewise.
1066
1067 2005-02-17  Ralf Corsepius  <ralf.corsepius@rtems.org>
1068
1069         * config/rs6000/t-rtems: Completely reworked.
1070
1071 2005-02-17  Ira Rosen  <irar@il.ibm.com>
1072
1073         * tree-data-ref.c (array_base_name_differ_p): Remove gcc_assert.
1074
1075 2005-02-17  Ira Rosen  <irar@il.ibm.com>
1076
1077         * tree-vect-analyze.c (vect_analyze_pointer_ref_access): Use
1078         POINTER_TYPE_P when checking that type is a pointer.
1079         (vect_get_memtag): Remove.
1080         (vect_address_analysis): Use POINTER_TYPE_P. Call
1081         vect_object_analysis with dummy parameter for memtag.
1082         (vect_object_analysis): Extract memtag (functionality that
1083         used to be in vect_get_memtag and moved here). Fix printings.
1084         (vect_analyze_data_refs): Fix comment. Call vect_object_analysis
1085         with correct parameters. Remove call to vect_get_memtag.
1086
1087 2005-02-17  Dorit Naishlos  <dorit@il.ibm.com>
1088
1089         * Makefile.in (tree-vect-analyze.o, tree-vect-transform.o): New.
1090         (tree-vectorizer.o): Added missing dependencies.
1091
1092         * tree-vectorizer.h (vect_dump, vect_verbosity_level): Added extern
1093         decleration.
1094         (slpeel_tree_peel_loop_to_edge): Function externalized (had a static
1095         declaration in tree-vectorizer.c, now has an extern declaration in
1096         tree-vectorizer.h).
1097         (slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
1098         slpeel_verify_cfg_after_peeling, vect_strip_conversion,
1099         get_vectype_for_scalar_type, vect_is_simple_use,
1100         vect_is_simple_iv_evolution, vect_can_force_dr_alignment_p,
1101         vect_supportable_dr_alignment, new_loop_vec_info, destroy_loop_vec_info,
1102         new_stmt_vec_info, vect_analyze_loop, vectorizable_load,
1103         vectorizable_store, vectorizable_operation, vectorizable_assignment,
1104         vect_transform_loop, vect_print_dump_info, vect_set_verbosity_level,
1105         find_loop_location): Likewise.
1106
1107         * tree-vectorizer.c (langhooks.h): #include removed.
1108         (slpeel_tree_peel_loop_to_edge): Function externalized. Declaration
1109         moved to tree-vectorized.h.
1110         (slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
1111         slpeel_verify_cfg_after_peeling, vect_strip_conversion,
1112         get_vectype_for_scalar_type, vect_is_simple_use,
1113         vect_is_simple_iv_evolution, vect_can_force_dr_alignment_p,
1114         vect_supportable_dr_alignment, new_loop_vec_info,
1115         destroy_loop_vec_info, new_stmt_vec_info, vect_print_dump_info,
1116         vect_set_verbosity_level, find_loop_location): Likewise.
1117
1118         (vect_analyze_loop): Function externalized. Declaration moved to
1119         tree-vectorized.h. Function definition moved to tree-vect-analyze.c.
1120         (vect_analyze_loop_form): Moved to tree-vect-analyze.c.
1121         (vect_mark_stmts_to_be_vectorized, vect_analyze_scalar_cycles,
1122         vect_analyze_data_ref_accesses, vect_analyze_data_ref_dependences,
1123         vect_analyze_data_refs_alignment, vect_compute_data_refs_alignment,
1124         vect_enhance_data_refs_alignment, vect_analyze_operations,
1125         exist_non_indexing_operands_for_use_p, vect_mark_relevant,
1126         vect_stmt_relevant_p, vect_get_loop_niters,
1127         vect_analyze_data_ref_dependence, vect_compute_data_ref_alignment,
1128         vect_analyze_data_ref_access, vect_analyze_pointer_ref_access,
1129         vect_can_advance_ivs_p, vect_get_ptr_offset, vect_analyze_offset_expr,
1130         vect_base_addr_differ_p, vect_object_analysis, vect_address_analysis,
1131         vect_get_memtag): Likewise.
1132
1133         (vectorizable_load): Function externalized. Declaration moved to
1134         tree-vectorized.h. Function definition moved to tree-vect-transform.c.
1135         (vectorizable_store, vectorizable_operation, vectorizable_assignment,
1136         vect_transform_loop): Likewise.
1137         (vect_transform_stmt): Moved to tree-vect-transform.c.
1138         (vect_align_data_ref, vect_create_destination_var,
1139         vect_create_data_ref_ptr, vect_create_index_for_vector_ref,
1140         vect_create_addr_base_for_vector_ref, vect_get_new_vect_var,
1141         vect_get_vec_def_for_operand, vect_init_vector,
1142         vect_finish_stmt_generation, vect_generate_tmps_on_preheader,
1143         vect_build_loop_niters, vect_update_ivs_after_vectorizer,
1144         vect_gen_niters_for_prolog_loop, vect_update_inits_of_dr,
1145         vect_update_inits_of_drs, vect_do_peeling_for_alignment,
1146         vect_do_peeling_for_loop_bound): Likewise.
1147
1148         * tree-vect-analyze.c: New file.
1149         * tree-vect-transform.c: New file.
1150
1151 2005-02-17  Jason Merrill  <jason@redhat.com>
1152
1153         PR mudflap/19319, c++/19317
1154         * gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Make return
1155         slot explicit.
1156
1157 2005-02-17  Gerald Pfeifer  <gerald@pfeifer.com>
1158
1159         * doc/install.texi (Specific): Update link for Darwin-specific
1160         tool binary site.
1161
1162 2005-02-16  James A. Morrison  <phython@gcc.gnu.org>
1163
1164         * fold-const.c (invert_truthvalue): <INTEGER_CST>: Call
1165         constant_boolean_node.
1166
1167 2005-02-16  David Edelsohn  <edelsohn@gnu.org>
1168
1169         PR target/19019
1170         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
1171         * config/rs6000/t-aix52 (SHLIB_MAPFILES): Same.
1172
1173 2005-02-16  Richard Henderson  <rth@redhat.com>
1174
1175         PR 19920
1176         * libgcc2.c (WORD_SIZE): Remove all definitions; replace uses
1177         with W_TYPE_SIZE.
1178         (HIGH_WORD_COEFF, HIGH_HALFWORD_COEFF): Remove all definitions;
1179         replace uses with Wtype_MAXp1_F.
1180         (L_fixunstfdi, L_fixtfdi, L_floatditf, L_fixunsxfdi, L_fixxfdi,
1181         L_floatdixf, L_fixunsxfsi, L_fixunsdfdi, L_floatdidf, L_fixunsdfsi,
1182         L_powidf2, L_powixf2, L_powitf2, L_muldc3, L_divdc3, L_mulxc3,
1183         L_divxc3, L_multc3, L_divtc3): Protect with HAVE_DFMODE, HAVE_XFMODE,
1184         and HAVE_TFMODE as appropriate.
1185         (__fixunssfDI): Provide an implementation that doesn't need DFmode.
1186         (__floatdisf): Likewise.
1187         * libgcc2.h (LIBGCC2_DOUBLE_TYPE_SIZE): New.
1188         (HAVE_DFMODE, HAVE_XFMODE, HAVE_TFMODE): New.
1189         (Wtype_MAXp1_F): New.
1190         (DFtype, DCtype, __fixdfdi, __floatdidf, __fixunsdfSI, __fixunsdfDI,
1191         __powidf2, __divdc3, __muldc3): Protect with HAVE_DFMODE.
1192
1193 2005-02-16  Richard Earnshaw  <rearnsha@arm.com>
1194
1195         * PR target/19162
1196         * arm.c (arm_apply_result_size): New function.
1197         * arm.h (APPLY_RESULT_SIZE): Define.
1198         * arm-protos.h (arm_apply_result_size): Add prototype.
1199         * arm.md (RO_REGNUM, FPA_F0_REGNUM, FPA_F7_REGNUM): New constants.
1200         (movxf): New expand.
1201         (ldmsi_postinc4_thumb, stmsi_postinc4_thumb): New patterns for Thumb.
1202         (call_value_symbol): Remove predicate for operand 0.
1203         (call_value_insn, sibcall_value, sibcall_value_insn): Likewise.
1204         (untyped_call): Rework to correclty return values for any type.
1205         (untyped_return): New expand.
1206         * fpa.md (movxf_fpa): Simplify and use sfm/lfm when appropriate.
1207
1208 2005-02-16  Stan Shebs  <shebs@apple.com>
1209
1210         * config.gcc (powerpc-*-darwin*): Use fragment for Darwin 8 or later.
1211         * config/rs6000/t-darwin8: New, for 64-bit multilib.
1212
1213 2005-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
1214
1215         * doc/install.texi (sparc-sun-solaris2*): Document required GMP
1216         configure settings on Solaris 7 and later.
1217
1218 2005-02-16  Diego Novillo  <dnovillo@redhat.com>
1219
1220         PR tree-optimization/19865
1221         * tree-optimize.c (init_tree_optimization_passes): Run
1222         pass_may_alias after pass_sra.
1223
1224 2005-02-16  Richard Henderson  <rth@redhat.com>
1225             Stuart Hastings  <stuart@apple.com>
1226
1227         PR debug/19521
1228         * dbxout.c (dbxout_function_end): Take decl parameter; update callers.
1229         Do nothing if debug info suppressed for this function.
1230         (dbxout_begin_function): Early exit if debug info suppressed for
1231         this function.
1232
1233 2005-02-16  Kazu Hirata  <kazu@cs.umass.edu>
1234
1235         PR target/20007
1236         * config/ip2k/ip2k.c (ip2k_reorg): Adjust calls to
1237         find_basic_blocks.
1238         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
1239
1240         PR tree-optimization/19967
1241         * builtins.c (expand_builtin_strstr, expand_builtin_strpbrk,
1242         expand_builtin_strchr, expand_builtin_strrchr): Take a new
1243         argument TYPE.  Adjust calls to fold_builtin_XXX.
1244         (expand_builtin, fold_builtin_1): Adjust calls to
1245         expand_builtin_XXX.
1246         (fold_builtin_strchr, fold_builtin_strpbrk,
1247         fold_builtin_strstr, fold_builtin_strrchr): Convert the folded
1248         result to a requested type TYPE.
1249
1250 2005-02-16  Jakub Jelinek  <jakub@redhat.com>
1251
1252         PR middle-end/19857
1253         * fold-const.c (fold): Don't optimize (T)(x & cst) to
1254         (T)x & (T)cst if (T)cst overflows.
1255         * convert.c (convert_to_integer) <case POINTER_TYPE>: Pass
1256         TYPE_UNSIGNED (type) as type_for_size's UNSIGNEDP argument.
1257
1258 2005-02-15  Jeff Law  <law@redhat.com>
1259
1260         * gcse.c (blocks_with_calls): New bitmap.
1261         (alloc_gcse_mem): Allocate it.
1262         (free_gcse_mem): Free it.
1263         (clear_modifY_mem_tables): Clear it.
1264         (record_last_mem_set_info): Set the proper bit in BLOCK_WITH_CALLS
1265         when we encounter CALL_INSNs.
1266         (compute_transp, case MEM): Handle blocks with calls separate
1267         from blocks without calls.  Use bitmap iterators rather than
1268         FOR_EACH_BB.
1269
1270 2005-02-15  Peter O'Gorman  <peter@pogma.com>
1271
1272         PR bootstrap/18810
1273         * mklibgcc.in (vis_hide): Use a temporary object file, not
1274         -o /dev/null.
1275
1276 2005-02-15  Andy Hutchinson  <HutchinsonAndy@netscape.net>
1277
1278         PR target/19924
1279         * config/avr/avr.h (MODES_TIEABLE_P): Define to 1 to allow subreg
1280         access optimization.
1281
1282 2005-02-15  David Edelsohn  <edelsohn@gnu.org>
1283             Alan Modra  <amodra@bigpond.net.au>
1284
1285         PR target/19019
1286         * config/rs6000/darwin-ldouble.c (_xlqadd): Rename to __gcc_qadd.
1287         (_xlqsub): Rename to __gcc_qsub.
1288         (_xlqmul): Rename to __gcc_qmul.
1289         (_xlqdiv): Rename to __gcc_qdiv.
1290         Provide versioned symbol aliases with old names.
1291         * config/rs6000/libgcc-ppc64.ver: Rename symbols.
1292         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Rename symbols.
1293         * config/rs6000/t-aix43 (LIB2FUNCS_EXTRA): New.
1294         * config/rs6000/t-aix52 (LIB2FUNCS_EXTRA): New.
1295         * config/rs6000/t-newas (LIB2FUNCS_EXTRA): New.
1296
1297 2005-02-15  James A. Morrison  <phython@gcc.gnu.org>
1298
1299         * fold-const.c (fold): Fold -(~A) to A + 1.  Fold ~(-A) to A - 1.
1300         Fold ~(A - 1) and ~(A + -1) to -A.
1301
1302 2005-02-15  James A. Morrison  <phython@gcc.gnu.org>
1303
1304         PR pch/14940
1305         PR target/19300
1306         * config/host-linux.c (linux_gt_pch_use_address): Copy from
1307         config/pa/pa-host.c:pa_gt_pch_use_address.
1308
1309 2005-02-15  Daniel Berlin  <dberlin@dberlin.org>
1310
1311         * tree-vn.c (get_value_handle): Make sure that given an
1312         is_gimple_min_invariant expression, we always return it.
1313
1314 2005-02-15  Kazu Hirata  <kazu@cs.umass.edu>
1315
1316         * passes.c (rest_of_handle_gcse): Fix a comment.
1317
1318 2005-02-15  Jeff Law  <law@redhat.com>
1319
1320         * gcse.c (canon_modify_mem_set_list_set): Kill unnecessary
1321         bitmap.
1322         (alloc_gcse_mem, free_gcse_mem): Corresponding changes.
1323         (canon_list_insert, record_last_mem_set_info): Similarly.
1324         (clear_modify_mem_tables): Similarly.
1325
1326 2005-02-15  Kazu Hirata  <kazu@cs.umass.edu>
1327
1328         * bitmap.c, bitmap.h, lambda-code.c, tree-dfa.c, tree-dump.c,
1329         tree-dump.h, tree-ssa-loop-manip.c, value-prof.c,
1330         config/mips/mips.md, config/rs6000/aix.h,
1331         config/rs6000/beos.h, config/rs6000/sysv4.h: Update copyright.
1332
1333 2005-02-15  Richard Henderson  <rth@redhat.com>
1334
1335         * bb-reorder.c (find_traces_1_round): Force fallthru edge from a
1336         call to be best_edge.
1337
1338 2005-02-14  Kazu Hirata  <kazu@cs.umass.edu>
1339
1340         * basic-block.h: Adjust the prototype for find_basic_blocks.
1341         * cfgbuild.c (find_basic_blocks): Remove unused arguments.
1342         * passes.c (rest_of_handle_loop_optimize): Adjust the call to
1343         find_basic_blocks.
1344
1345         * flow.c (recompute_reg_usage): Remove all arguments.
1346         * passes.c (rest_of_compilation): Adjust the call to
1347         recompute_reg_usage.
1348         * rtl.h: Adjust the prototype for recompute_reg_usage.
1349
1350 2005-02-14  Daniel Berlin  <dberlin@dberlin.org>
1351
1352         * tree-dump.c (dump_files): Update to reflect new member
1353         of dump_file_info.
1354         (dump_register): Add new argument.
1355         Set glob name.
1356         (dump_switch_p_1): Check against glob name if doglob was passed.
1357         (dump_switch_p): Check against regular first, then glob if
1358         we didn't have any hits on the dump name.
1359         * tree-optimize.c (register_one_dump_file):
1360         Pass in glob name as well.
1361         * tree-pass.h (struct dump_file_info): Add glob
1362         member.
1363
1364 2005-02-14  Joseph S. Myers  <joseph@codesourcery.com>
1365
1366         PR preprocessor/16323
1367         * doc/invoke.texi: Document that -Wendif-labels is on by default.
1368
1369 2005-02-14  David Edelsohn  <edelsohn@gnu.org>
1370
1371         PR target/19019
1372         * config/rs6000/rs6000.md (trunctfdf2): Change to define_expand.
1373         (trunctfdf2_internal1): New.
1374         (trunctfdf2_internal2): Renamed from trunctfdf2.
1375
1376 2005-02-14  Diego Novillo  <dnovillo@redhat.com>
1377
1378         PR tree-optimization/19853
1379         * tree-dfa.c (add_referenced_var): Always examine DECL_INITIAL.
1380
1381 2005-02-14  Kazu Hirata  <kazu@cs.umass.edu>
1382
1383         * passes.c (rest_of_handle_loop_optimize): Remove calls to
1384         delete_dead_jumptables and cleanup_cfg.
1385
1386 2005-02-14  Ulrich Weigand  <uweigand@de.ibm.com>
1387
1388         * reload.c (find_reloads): Swap address_reloaded flags when
1389         swapping commutative operands.
1390
1391 2005-02-14  Sebastian Pop  <pop@cri.ensmp.fr>
1392
1393         * lambda-code.c (lambda_loopnest_to_gcc_loopnest, perfect_nestify):
1394         Use standard_iv_increment_position for computing the bsi position
1395         for create_iv.
1396         * tree-ssa-loop-manip.c (create_iv): Add a comment on how to compute
1397         the bsi position.
1398
1399 2005-02-13  Zdenek Dvorak  <dvorakz@suse.cz>
1400
1401         PR target/17428
1402         * cfgrtl.c (safe_insert_insn_on_edge): Avoid extending
1403         life range of hard registers.
1404         * value-prof.c (insn_prefetch_values_to_profile): Only
1405         scan normal insns.
1406
1407         * value-prof.c (rtl_find_values_to_profile): Do not look for values to
1408         profile in libcalls.
1409
1410 2005-02-13  Nathan Sidwell  <nathan@codesourcery.com>
1411
1412         * bitmap.h (bitmap_and_compl_into): Return bool.
1413         * bitmap.c (bitmap_and_compl_into): Return changed flag.
1414
1415 2005-02-13  James A. Morrison  <phython@gcc.gnu.org>
1416
1417         PR tree-optimization/19944
1418         * fold-const.c (fold): Re-add ABS_EXPR folding.
1419
1420 2005-02-13  David Edelsohn  <edelsohn@gnu.org>
1421
1422         PR target/19019
1423         * config/rs6000/aix.h ({TARGET,MASK}_XL_CALL): Rename to
1424         {TARGET,MASK}_XL_COMPAT.
1425         (SUBTARGET_SWITCHES): Rename xl-call to xl-compat.  Use
1426         MASK_XL_COMPAT.
1427         * config/rs6000/beos.h ({TARGET,MASK}_XL_CALL): Remove.
1428         * config/rs6000/rs6000.c (function_arg): Change TARGET_XL_CALL to
1429         TARGET_XL_COMPAT.
1430         (rs6000_arg_partial_bytes): Same.
1431         (rs6000_generate_compare): Generate PARALLEL for compare if TFmode
1432         and XL compatibility enabled.
1433         * config/rs6000/rs6000.h (TARGET_XL_CALL): Rename to TARGET_XL_COMPAT.
1434         * config/rs6000/rs6000.md (cmptf_internal1): Add !TARGET_XL_COMPAT
1435         test to final condition.
1436         (cmptf_internal2): New.
1437         * doc/invoke.texi (RS/6000 Subtarget Options): Change xl-call to
1438         xl-compat.  Add TFmode information to description.
1439
1440 2005-02-13  Kazu Hirata  <kazu@cs.umass.edu>
1441
1442         * flags.h, read-rtl.c, tree-ssa-live.h: Update copyright.
1443
1444 2005-02-13  Jason Merrill  <jason@redhat.com>
1445
1446         PR c++/16405
1447         * fold-const.c (fold_indirect_ref_1): Split out from...
1448         (build_fold_indirect_ref): Here.
1449         (fold_indirect_ref): New fn.
1450         * tree.h: Declare it.
1451         * gimplify.c (gimplify_compound_lval): Call fold_indirect_ref.
1452         (gimplify_modify_expr_rhs): Likewise.
1453         (gimplify_expr): Likewise.
1454
1455 2005-02-13  James A. Morrison  <phython@gcc.gnu.org>
1456
1457         PR tree-optimization/14303
1458         PR tree-optimization/15784
1459         * fold-const.c (fold): Fold ABS_EXPR<x> >= 0 to true, when possible.
1460         Fold ABS_EXPR<x> < 0 to false.  Fold ABS_EXPR<x> == 0 to x == 0 and
1461         ABS_EXPR<x> != 0 to x != 0.
1462
1463 2005-02-12  Kazu Hirata  <kazu@cs.umass.edu>
1464
1465         * c-tree.h, combine.c, expmed.c, flow.c, libgcc2.c,
1466         simplify-rtx.c, tree-ssa-live.h: Fix comment typos.  Follow
1467         spelling conventions.
1468
1469         * passes.c (rest_of_handle_gcse): Don't run cse_main and
1470         delete_trivially_dead_insns too many times.
1471
1472         * passes.c (rest_of_handle_gcse): Remove dead assignments to
1473         tem and tem2.
1474
1475 2005-02-12  Ira Rosen  <irar@il.ibm.com>
1476
1477         * tree-vectorizer.c (vect_get_base_and_offset): Remove.
1478         (vect_is_simple_iv_evolution): Remove redundant parameter
1479         and step check.
1480         (vect_analyze_scalar_cycles): Call vect_is_simple_iv_evolution
1481         without last parameter.
1482         (vect_analyze_pointer_ref_access): Get access_fn as parameter.
1483         Return pointer step. Call vect_is_simple_iv_evolution without
1484         last parameter. Check only that the step is multiple of size
1485         type. Remove stmt_vinfo updates.
1486         (vect_get_memtag_and_dr): Remove.
1487         (vect_get_memtag): New function.
1488         (vect_address_analysis): New function.
1489         (vect_object_analysis): New function.
1490         (vect_analyze_data_refs): Call vect_object_analysis and
1491         vect_get_memtag. Update stmt_vinfo fields.
1492
1493 2005-02-12  Ira Rosen  <irar@il.ibm.com>
1494
1495         * tree-data-ref.c (array_base_name_differ_p): Check that the bases
1496         exist and are objects. Remove checks for pointer.
1497         * tree-vectorizer.c (vect_create_addr_base_for_vector_ref): Use
1498         STMT_VINFO_VECT_DR_BASE_ADDRESS instead of DR_BASE_NAME.
1499         (vect_create_data_ref_ptr): Likewise.
1500         (vect_base_addr_differ_p): New function.
1501         (vect_analyze_data_ref_dependence): Call vect_base_addr_differ_p.
1502         (vect_analyze_pointer_ref_access): Add output parameter - ptr_init.
1503         Don't set the DR_BASE_NAME field of data-ref.
1504         (vect_get_memtag_and_dr): Use ptr_init instead of DR_BASE_NAME.
1505
1506 2005-02-12  Uros Bizjak  <uros@kss-loka.si>
1507
1508         * optabs.h (enum optab_index): Add new OTI_ldexp.
1509         (ldexp_optab): Define corresponding macro.
1510         * optabs.c (init_optabs): Initialize ldexp_optab.
1511         * genopinit.c (optabs): Implement ldexp_optab using ldexp?f3
1512         patterns.
1513         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_LDEXP{,F,L}
1514         using ldexp_optab.
1515         (expand_builtin): Expand BUILT_IN_LDEXP{,F,L} using
1516         expand_builtin_mathfn_2 if flag_unsafe_math_optimizations is set.
1517
1518         * config/i386/i386.md (ldexpsf3, ldexpdf3, ldexpxf3): New expanders
1519         to implement ldexpf, ldexp and ldexpl built-ins as inline x87
1520         intrinsics.
1521
1522 2005-02-12  Ira Rosen  <irar@il.ibm.com>
1523
1524         * tree-vectorizer.h (struct _stmt_vec_info): Rename a field: base
1525         to base_address.
1526         * tree-vectorizer.c (new_stmt_vec_info): Rename the above field of
1527         stmt_vec_info.
1528         (vect_get_base_and_offset): Always return an address.
1529         (vect_create_addr_base_for_vector_ref): Remove treatment for
1530         different data reference types.
1531         (vect_compute_data_ref_alignment): Rename base to base_address in
1532         stmt_vec_info. Get the object in order to force its alignment.
1533         (vect_get_memtag_and_dr): Rename base to base_address in
1534         stmt_vec_info. Extract the object for memtag analysis.
1535
1536 2005-02-12  Hans-Peter Nilsson  <hp@axis.com>
1537
1538         PR regression/19898.
1539         * config/cris/cris.c (cris_notice_update_cc): When testing if insn
1540         changes cc_status, use apply modified_in_p to part of cc_status
1541         and insn, not cris_reg_overlap_mentioned_p on SET_DEST of insn
1542         body.
1543
1544 2005-02-11  Richard Henderson  <rth@redhat.com>
1545
1546         * tree-complex.c (expand_complex_libcall): New.
1547         (expand_complex_multiplication): Use it for c99 compliance.
1548         (expand_complex_division): Likewise.
1549         * fold-const.c (fold_complex_add, fold_complex_mult): New.
1550         (fold): Call them.
1551         * builtins.c (built_in_names): Remove const.
1552         * tree.c (build_common_builtin_nodes): Build complex arithmetic
1553         builtins.
1554         * tree.h (BUILT_IN_COMPLEX_MUL_MIN, BUILT_IN_COMPLEX_MUL_MAX): New.
1555         (BUILT_IN_COMPLEX_DIV_MIN, BUILT_IN_COMPLEX_DIV_MAX): New.
1556         (built_in_names): Remove const.
1557         * c-common.c (c_common_type_for_mode): Handle complex modes.
1558         * flags.h, toplev.c (flag_complex_method): Rename from
1559         flag_complex_divide_method.
1560         * libgcc2.c (__divsc3, __divdc3, __divxc3, __divtc3,
1561         __mulsc3, __muldc3, __mulxc3, __multc3): New.
1562         * libgcc2.h: Declare them.
1563         * libgcc-std.ver: Export them.
1564         * mklibgcc.in (lib2funcs): Build them.
1565
1566 2005-02-11  Steven Bosscher  <stevenb@suse.de>
1567
1568         PR tree-optimization/19876
1569         Partially revert my change from 2005-01-14
1570         * tree-ssa-pre.c (compute_antic_aux): Make recursive once again...
1571         (compute_antic): ...and remove the loop here.
1572
1573 2005-02-11  Jakub Jelinek  <jakub@redhat.com>
1574
1575         PR middle-end/19858
1576         * fold-const.c (make_bit_field_ref): If bitpos == 0 and bitsize
1577         is number of inner's bits, avoid creating a BIT_FIELD_REF.
1578
1579         * config/rs6000/sysv4.h (ENDFILE_LINUX_SPEC): Use crtendS.o instead of
1580         crtend.o if -pie.  Use %{x:a;:b} spec syntax.
1581
1582 2005-02-11  Daniel Jacobowitz  <dan@codesourcery.com>
1583
1584         * config/mips/linux-unwind.h (mips_fallback_frame_state): Adjust
1585         offsets for the big-endian 32-bit case.
1586
1587 2005-02-11  Joseph S. Myers  <joseph@codesourcery.com>
1588
1589         * config/ia64/hpux.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
1590
1591 2005-02-11  Dale Johannesen  <dalej@apple.com>
1592
1593         * cselib.c (cselib_process_insn):  Clear out regs where
1594         HARD_REGNO_CALL_PART_CLOBBERED is true at a call.
1595         * reload.c (find_equiv_reg): Ditto.
1596
1597 2005-02-11  Ian Lance Taylor  <ian@airs.com>
1598
1599         * read-rtl.c (read_rtx_1): Give fatal error if we see a vector
1600         with no elements.
1601
1602         * tree.c (build_function_type_list): Work correctly if there are
1603         no arguments.
1604
1605 2005-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
1606
1607         * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccs",
1608         "*cmpsi_ccs"): Use %h instead of %c to print immediate operand.
1609         ("*zero_extendhisi2_64", "*zero_extendhisi2_31"): Choose based on
1610         TARGET_ZARCH instead of TARGET_64BIT.
1611
1612 2005-02-11  Ralf Corsepius  <ralf.corsepius@rtems.org>
1613
1614         * config/rs6000/t-rtems:
1615         (MULTILIB_OPTIONS): Remove mcpu=602.
1616         (MUTLILIB_DIRNAMES): Remove m602.
1617         (MULTILIB_MATCHES): Add ${MULTILIB_MATCHES_FLOAT}.
1618         Let mcpu=602 match mcpu=603.
1619         (MULTILIB_NEW_EXCEPTIONS_ONLY): Add mcpu=601, mcpu=602, mcpu=m603.
1620
1621 2005-02-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1622
1623         * pa/linux-unwind.h (pa32_fallback_frame_state): Handle misaligned
1624         signal trampolines.
1625
1626 2005-02-10  David Daney  <ddaney@avtrex.com>
1627
1628         * config/alpha/linux-unwind.h: Add exception clause to copyright.
1629         * config/i386/linux-unwind.h: Likewise.
1630         * config/ia64/linux-unwind.h: Likewise.
1631         * config/mips/linux-unwind.h: Likewise.
1632         * config/pa/linux-unwind.h: Likewise.
1633         * config/rs6000/linux-unwind.h: Likewise.
1634         * config/s390/linux-unwind.h: Likewise.
1635         * config/sh/linux-unwind.h: Likewise.
1636         * config/sparc/linux-unwind.h: Likewise.
1637
1638 2005-02-10  Steven Bosscher  <stevenb@suse.de>
1639
1640         PR tree-optimization/17549
1641         * tree-outof-ssa.c (find_replaceable_in_bb): Do not allow
1642         TER to replace a DEF with its expression if the DEF and the
1643         rhs of the expression we replace into have the same root
1644         variable.
1645
1646 2005-02-10  Richard Sandiford  <rsandifo@redhat.com>
1647
1648         * config/mips/mips.md: Fix the placement of the match_scratch in the
1649         lea64 peephole2.
1650
1651 2005-02-10  Kazu Hirata  <kazu@cs.umass.edu>
1652
1653         * cse.c, tree-ssa-loop-ivopts.c, config/rs6000/linux-unwind.h:
1654         Fix comment typos.
1655
1656 2005-02-10  Zdenek Dvorak  <dvorakz@suse.cz>
1657
1658         * tree-ssa-loop-ivopts.c (determine_base_object): Ignore casts.
1659         (strip_offset): Handle addresses.
1660         (add_address_candidates): Use strip_offset.
1661         (difference_cost): Reflect strip_offset change.
1662         (force_var_cost, difference_cost): Strip nops.
1663
1664 2005-02-10  Kazu Hirata  <kazu@cs.umass.edu>
1665
1666         * df.h (DF_REF_MODE_CHANGE, DF_REF_MEM_OK): Remove.
1667
1668         * builtins.def, haifa-sched.c, libgcc2.c, libgcc2.h,
1669         tree-ssa-loop-ivcanon.c, tree-ssa-loop-niter.c,
1670         config/cris/cris-protos.h, config/cris/cris.c: Update
1671         copyright.
1672
1673 2005-02-10  Jeff Law  <law@redhat.com>
1674
1675         * tree-ssa-dom.c (thread_across_edge): Use xmalloc, not xcalloc.
1676         (lookup_avail_expr): Similarly.
1677
1678 2005-02-10  Richard Guenther  <rguenth@gcc.gnu.org>
1679
1680         * builtins.c (fold_builtin_powi): New function.
1681         (fold_builtin_1): Call it.
1682
1683 2005-02-10  Steven Bosscher  <stevenb@suse.de>
1684
1685         PR documentation/19309
1686         * doc/cpp.texi: The __GNUC__ and related predefined macros
1687         are also defined for the "standalone" cpp.
1688         Some non-GCC compilers may also define __GNUC__.
1689
1690 2005-02-10  Jakub Jelinek  <jakub@redhat.com>
1691
1692         PR c/19342
1693         * c-typeck.c (common_type): New routine.  Old common_type renamed
1694         to...
1695         (c_common_type): ...this.
1696         (build_conditional_expr, build_binary_op): Use c_common_type instead
1697         of common_type.
1698
1699 2005-02-10  Steven Bosscher  <stevenb@suse.de>
1700
1701         * doc/md.texi: Replace @samp{length} with @code{length}.
1702
1703 2005-02-09  Zdenek Dvorak  <dvorakz@suse.cz>
1704
1705         PR tree-optimization/18687
1706         * tree-flow.h (find_loop_niter): Declare.
1707         * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables):
1708         Try using scev even for loops with more than one exit.
1709         * tree-ssa-loop-ivopts.c (struct loop_data): Removed niter field.
1710         (struct ivopts_data): Added niters field.
1711         (struct nfe_cache_elt): New.
1712         (nfe_hash, nfe_eq, niter_for_exit, niter_for_single_dom_exit): New
1713         functions.
1714         (tree_ssa_iv_optimize_init): Initialize niters cache.
1715         (determine_number_of_iterations): Removed.
1716         (find_induction_variables): Do not call determine_number_of_iterations.
1717         Access niters for single exit through niter_for_single_dom_exit.
1718         (add_iv_outer_candidates): Access niters for single exit through
1719         niter_for_single_dom_exit.
1720         (may_eliminate_iv): Take data argument.  Use niter_for_exit.  Do not use
1721         number_of_iterations_cond.
1722         (iv_period): New function.
1723         (determine_use_iv_cost_condition): Pass data to may_eliminate_iv.
1724         (may_replace_final_value): Take data argument.  Use
1725         niter_for_single_dom_exit.
1726         (determine_use_iv_cost_outer): Pass data to may_replace_final_value.
1727         (rewrite_use_compare): Pass data to may_eliminate_iv.
1728         (rewrite_use_outer): Pass data to may_replace_final_value.
1729         (free_loop_data): Clean up the niters cache.
1730         (tree_ssa_iv_optimize_finalize): Free the niters cache.
1731         (tree_ssa_iv_optimize_loop): Do not call loop_commit_inserts.
1732         * tree-ssa-loop-niter.c (find_loop_niter): New function.
1733         (find_loop_niter_by_eval): Use tree_int_cst_lt.
1734         (num_ending_zeros): Moved to tree.c.
1735         * tree.h (num_ending_zeros): Declare.
1736         * tree.c (num_ending_zeros): Moved from tree.c.
1737
1738 2005-02-09  Richard Henderson  <rth@redhat.com>
1739
1740         * builtins.c (DEF_BUILTIN): Add COND argument.
1741         * tree.h (DEF_BUILTIN): Likewise.
1742         * builtins.def (DEF_GCC_BUILTIN, DEF_LIB_BUILTIN, DEF_EXT_LIB_BUILTIN,
1743         DEF_C94_BUILTIN, DEF_C99_BUILTIN, DEF_C99_C90RES_BUILTIN): Update to
1744         match.
1745         (DEF_BUILTIN_STUB): New.
1746         (BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE, BUILT_IN_INIT_TRAMPOLINE,
1747         BUILT_IN_ADJUST_TRAMPOLINE, BUILT_IN_NONLOCAL_GOTO,
1748         BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT): Use it.
1749         * c-common.c (DEF_BUILTIN): Add COND argument.
1750         * tree.c (local_define_builtin): New.
1751         (build_common_builtin_nodes): New.
1752
1753 2005-02-09  Roger Sayle  <roger@eyesopen.com>
1754
1755         * fold-const.c (fold_strip_sign_ops): New function to simplify a
1756         floating point expression ignoring the sign of the result.
1757         (fold) <ABS_EXPR>: Use it to simplify fabs(x).
1758         (fold) <MULT_EXPR>: Use it to simplify x*x.
1759         * tree.h (fold_strip_sign_ops): Prototype here.
1760         * builtins.c (fold_builtin_copysign): Take an additional FNDECL
1761         argument.  Use fold_strip_sign_ops to simplify the first argument.
1762         (fold_builtin_pow):  Use fold_strip_sign_ops to simplify the
1763         first argument when the second argument is an even integer
1764         constant, but only with -funsafe_math_optimizations.
1765         (fold_builtin_1): Update call to fold_builtin_copysign.
1766
1767 2005-02-09  Ian Lance Taylor  <ian@airs.com>
1768
1769         PR middle-end/19583
1770         * gimple-low.c (try_catch_may_fallthru): In EH_FILTER_EXPR case,
1771         just check whether EH_FILTER_FAILURE falls through.
1772
1773 2005-02-09  Andreas Krebbel  <krebbel1@de.ibm.com>
1774
1775         * gcc/haifa-sched.c (schedule_block): Make queued sched group
1776         insns return to ready list in the next turn.
1777
1778 2005-02-09  Richard Guenther  <rguenth@gcc.gnu.org>
1779
1780         PR middle-end/19402
1781         * builtins.def: New __builtin_powi[lf].
1782         * builtins.c (mathfn_built_in): Handle BUILT_IN_POWI.
1783         (expand_builtin_powi): New function.
1784         (expand_builtin): Dispatch to expand_builtin_powi.
1785         * libgcc2.h: Add prototypes for __builtin_powi[lf].
1786         * libgcc2.c: Add __builtin_powi[lf] implementation.
1787         * mklibgcc.in: Add __builtin_powi[lf] to lib2funcs.
1788         * optabs.h: Add powi_optab.
1789         * optabs.c (init_optabs): Initialize powi_optab.
1790         * doc/extend.texi: Document __builtin_powi[lf].
1791
1792 2005-02-09  Dorit Naishlos  <dorit@il.ibm.com>
1793
1794         * tree-vectorizer.c (vect_set_dump_settings): Check that dump_file
1795         exists.
1796
1797 2005-02-09  Richard Guenther  <rguenth@gcc.gnu.org>
1798
1799         PR middle-end/19854
1800         * fold-const.c (try_move_mult_to_index): Remove redundant
1801         type argument.  Create ADDR_EXPR with correct type.
1802         (fold): Update callers of try_move_mult_to_index.  Convert
1803         result to the appropriate type.
1804
1805 2005-02-09  Roger Sayle  <roger@eyesopen.com>
1806
1807         PR target/19597
1808         * config/avr/avr.c (default_rtx_costs): Delete.
1809         (avr_operand_rtx_cost): New function.
1810         (avr_rtx_costs): Completely rewrite.
1811
1812 2005-02-08  Hans-Peter Nilsson  <hp@axis.com>
1813
1814         PR target/19806
1815         * config/cris/cris.c (in_code): New variable.
1816         (cris_output_addr_const): Now a static function, a wrapper for
1817         output_addr_const.
1818         (cris_asm_output_symbol_ref): New function, broken out SYMBOL_REF
1819         case from old cris_output_addr_const.
1820         (cris_asm_output_label_ref): Similar for LABEL_REF.
1821         (cris_output_addr_const_extra): Similar for UNSPEC.
1822         * config/cris/cris.h (OUTPUT_ADDR_CONST_EXTRA)
1823         (ASM_OUTPUT_SYMBOL_REF, ASM_OUTPUT_LABEL_REF): Define.
1824         * config/cris/cris-protos.h (cris_output_addr_const): Remove
1825         declaration.
1826         (cris_asm_output_symbol_ref, cris_output_addr_const_extra)
1827         (cris_asm_output_label_ref): Declare.
1828
1829 2005-02-08  Paolo Bonzini  <bonzini@gnu.org>
1830
1831         PR preprocessor/19801
1832         * doc/cppinternals.texi (Conventions, Lexer, Files): Adjust
1833         filenames that changed when libcpp was moved to the toplevel.
1834
1835 2005-02-07  Roger Sayle  <roger@eyesopen.com>
1836
1837         * simplify-rtx.c (simplify_relational_operation_1): Avoid creating
1838         zero extensions of BImode operands.  Call lowpart_subreg instead
1839         of gen_lowpart_common and gen_lowpart_SUBREG.
1840
1841 2005-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
1842
1843         PR ada/19489
1844         * libada-mk.in: Use cc_for_cross_gnattools, not cc_set_by_configure.
1845         * configure.ac: Set cc_for_cross_gnattools.
1846         * configure: Regenerate.
1847
1848 2005-02-08  Alan Modra  <amodra@bigpond.net.au>
1849
1850         PR target/19803
1851         * predict.c (PROB_VERY_UNLIKELY): Use 1% instead of 10%.
1852
1853 2005-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
1854
1855         PR debug/19327
1856         * dbxout.c (dbxout_symbol) <FUNCTION_DECL>: Skip inline instance
1857         of nested functions.
1858
1859 2005-02-07  Jonathan Wakely  <redi@gcc.gnu.org>
1860
1861         * doc/extend.texi: Document deprecated extensions allowing
1862         static floating-point members to have initializers and allowing
1863         floating-point literals in integral constant expressions.
1864
1865 2005-02-07  Kazu Hirata  <kazu@cs.umass.edu>
1866
1867         * cfgcleanup.c, df.h, diagnostic.c, rtl.c, tree-vectorizer.h,
1868         config/darwin7.h, config/mips/mips.c,
1869         config/rs6000/altivec.md, config/rs6000/darwin-tramp.asm:
1870         Update copyright.
1871
1872         * cse.c: Update comments.
1873
1874 2005-02-07  Richard Guenther  <rguenth@gcc.gnu.org>
1875
1876         PR middle-end/19775
1877         * builtins.c (fold_builtin_sqrt): Transform
1878         sqrt(pow(x,y)) to pow(fabs(x),y*0.5), not
1879         pow(x,y*0.5).
1880
1881 2005-02-07  Leehod Baruch  <leehod@il.ibm.com>
1882             Dorit Naishlos  <dorit@il.ibm.com>
1883
1884         * doc/invoke.texi (ftree-vectorizer-verbose): New.
1885         * opts.c (OPT_ftree_vectorizer_verbose_): New case for switch.
1886         * common.opt (ftree-vectorizer-verbose): New Flag for the vectorizer
1887         was added.
1888         * tree.h (vect_set_verbosity_level): New extern function declaration
1889         added.
1890         * tree-vectorizer.h (verbosity_levels): New enum type.
1891         * tree-vectorizer.c (vect_debug_stats): Function removed.
1892         (vect_debug_details): Likewise.
1893         (vect_verbosity_level): Global variable was defined and initialized.
1894         (vect_dump): Global variable definition.
1895         (vect_print_dump_info): New function.
1896         (vect_set_dump_settings): New function.
1897         (vect_set_verbosity_level): New function.
1898         (vectorize_loops): Add call to vect_set_dump_settings.
1899
1900         (slpeel_make_loop_iterate_ntimes): Dump condition was changed.
1901         (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
1902         (slpeel_tree_peel_loop_to_edge): Likewise.
1903
1904         (vect_analyze_offset_expr): Call to vect_print_dump_info with
1905         appropriate verbosity level instead of call to vect_debug_details
1906         or vect_debug_stats.
1907         (vect_get_base_and_offset):
1908         (vect_create_addr_base_for_vector_ref):
1909         (get_vectype_for_scalar_type):
1910         (vect_create_data_ref_ptr):
1911         (vect_init_vector):
1912         (vect_get_vec_def_for_operand):
1913         (vect_finish_stmt_generation):
1914         (vectorizable_assignment):
1915         (vectorizable_operation):
1916         (vectorizable_store):
1917         (vectorizable_load):
1918         (vect_transform_stmt):
1919         (vect_update_ivs_after_vectorizer):
1920         (vect_do_peeling_for_loop_bound):
1921         (vect_update_inits_of_drs):
1922         (vect_do_peeling_for_alignment):
1923         (vect_transform_loop):
1924         (vect_is_simple_use):
1925         (vect_analyze_operations):
1926         (vect_is_simple_iv_evolution):
1927         (vect_analyze_scalar_cycles):
1928         (vect_analyze_data_ref_dependence):
1929         (vect_analyze_data_ref_dependences):
1930         (vect_compute_data_ref_alignment):
1931         (vect_enhance_data_refs_alignment):
1932         (vect_analyze_data_refs_alignment):
1933         (vect_analyze_data_ref_access):
1934         (vect_analyze_data_ref_accesses):
1935         (vect_analyze_pointer_ref_access):
1936         (vect_get_memtag_and_dr):
1937         (vect_analyze_data_refs):
1938         (vect_mark_relevant):
1939         (vect_stmt_relevant_p):
1940         (vect_mark_stmts_to_be_vectorized):
1941         (vect_can_advance_ivs_p):
1942         (vect_get_loop_niters):
1943         (vect_analyze_loop_form):
1944         (vect_analyze_loop):
1945         (vectorize_loops): Likewise.
1946
1947         (vect_do_peeling_for_loop_bound): Dump format slightly changed.
1948         (vect_update_inits_of_drs):
1949         (vect_do_peeling_for_alignment):
1950         (vect_transform_loop):
1951         (vect_analyze_operations):
1952         (vect_analyze_scalar_cycles):
1953         (vect_analyze_data_ref_dependences):
1954         (vect_analyze_data_refs_alignment):
1955         (vect_analyze_data_ref_accesses):
1956         (vect_analyze_data_refs):
1957         (vect_mark_stmts_to_be_vectorized):
1958         (vect_get_loop_niters):
1959         (vect_analyze_loop_form):
1960         (vect_analyze_loop): Likewise.
1961         (vect_mark_stmts_to_be_vectorized): Add call to print_generic_expr.
1962
1963 2005-02-07  Richard Sandiford  <rsandifo@redhat.com>
1964
1965         PR bootstrap/19796
1966         Revert:
1967         2005-01-26  Richard Sandiford  <rsandifo@redhat.com>
1968         * config/mips/iris6.h (ENDFILE_SPEC): Don't link in irix-csr.o if
1969         either -ffast-math or -funsafe-math-optimizations is in use.
1970
1971         2005-01-24  Richard Sandiford  <rsandifo@redhat.com>
1972         * config/mips/irix-csr.c: New file.
1973         * config/mips/t-iris6 (irix-csr.o): New rule to build it.
1974         (EXTRA_MULTILIB_PARTS): Add irix-csr.o.
1975         * config/mips/iris6.h (ENDFILE_SPEC): Include it in n32 and n64
1976         executables.
1977
1978 2005-02-07  Alexandre Oliva  <aoliva@redhat.com>
1979
1980         * config/mn10300/linux.h (LIB_SPEC, STARTFILE_SPEC): Remove
1981         redundant, incorrect definitions.
1982
1983         * config/frv/frv.md ("tls_indirect_call"): Turn into libcall-like
1984         expand.
1985         ("*tls_indirect_call"): New, reference hard regs directly.
1986         * config/frv/frv.c (gen_inlined_tls_plt): Adjust.
1987
1988 2005-02-07  Ralf Corsepius  <ralf.corsepius@rtems.org>
1989
1990         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC):
1991         Let !-mhard-float !-msoft-float imply -mfpu=softfpa.
1992
1993 2005-02-06  Roger Sayle  <roger@eyesopen.com>
1994
1995         PR rtl-optimization/19800
1996         * simplify_rtx.c (simplify_relational_operation_1): Explicitly
1997         call gen_lowpart_common and gen_lowpart_SUBREG instead of calling
1998         gen_lowpart.
1999
2000 2005-02-07  Ralf Corsepius  <ralf.corsepius@rtems.org>
2001
2002         * config/m68k/t-rtems (MULTILIB_MATCHES): Let m528x match m5200.
2003
2004 2005-02-07  Joseph S. Myers  <joseph@codesourcery.com>
2005
2006         PR other/17135
2007         * doc/invoke.texi: Correct documentation of -freorder-functions.
2008
2009 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
2010
2011         PR other/14402
2012         * doc/invoke.texi: Don't mention gccbug.
2013
2014 2005-02-06  Roger Sayle  <roger@eyesopen.com>
2015             Andrew Pinski  <pinskia@physics.uc.edu>
2016             Paolo Bonzini  <paolo.bonzini@lu.unisi.ch>
2017
2018         * simplify-rtx.c (simplify_relational_operation_1): Simplify
2019         (ne:SI (zero_extract:SI FOO (const_int 1) BAR) (const_int 0))
2020         into just (zero_extract:SI FOO (const_int 1) BAR).
2021
2022 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
2023
2024         * doc/cpp.texi: Include gcc-common.texi.  Don't define gcctabopt
2025         macro locally.  Don't give last revision date.  Use GCC version
2026         number from gcc-common.texi.
2027         * doc/cppinternals.texi: Include gcc-common.texi.  Don't give last
2028         revision date.  Use GCC version number from gcc-common.texi.
2029         Describe being a library as current state rather than as 3.x
2030         history.
2031         * doc/gcc.texi: Remove last update date.
2032         * doc/gccint.texi: Likewise.  Update copyright dates.
2033         * doc/install.texi: Update copyright dates.
2034
2035 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
2036
2037         PR other/7549
2038         * doc/invoke.texi: Mention for each option included in -Wall that
2039         it is included in -Wall.
2040         * doc/gcc.texi: Update copyright and last modification date.
2041
2042 2005-02-06  Zdenek Dvorak  <dvorakz@suse.cz>
2043
2044         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Do not add
2045         unnecessary cast to original induction variable increments.
2046
2047 2005-02-06  Zdenek Dvorak  <dvorakz@suse.cz>
2048
2049         PR tree-optimization/18219
2050         * tree-ssa-loop-ivopts.c (get_computation_at): Produce computations
2051         in distributed form.
2052
2053 2005-02-06  Richard Sandiford  <rsandifo@redhat.com>
2054
2055         * expmed.c (store_bit_field): Make the SUBREG code adjust bitnum.
2056         Set bitpos and offset later in the function.  Do nothing if the
2057         target is a register and if the bitfield lies completely outside
2058         that register.
2059         (extract_bit_field): Make the same SUBREG, bitpos and offset changes
2060         here.  Return an uninitialised register if the source value is stored
2061         in a register and the bitfield lies completely outside that register.
2062
2063 2005-02-06  Steven Bosscher  <stevenb@suse.de>
2064
2065         * df.c (df_insn_refs_record): Use XEXP to get the operand of a USE,
2066         not SET_DEST.
2067
2068 2005-02-06  Marcin Dalecki  <martin@dalecki.de>
2069
2070         * diagnostic.c (default_diagnostic_finalizer): Fix use of attribute.
2071
2072 2005-02-06  Geoffrey Keating  <geoffk@apple.com>
2073
2074         * config.gcc (*-*-darwin*): Separate darwin7 and darwin8 configs.
2075         * config/darwin8.h: New.
2076         * config/darwin7.h: Update comment.
2077
2078 2005-02-03  Leehod Baruch  <leehod@il.ibm.com>
2079             Dorit Naishlos  <dorit@il.ibm.com>
2080
2081         * tree-vectorizer.h (LOC): New type.
2082         (UNKNOWN_LOC, EXPR_LOC, LOC_FILE, LOC_LINE): New macros.
2083         (loop_line_number): New field in struct _loop_vec_info.
2084         (LOOP_VINFO_LOC, LOOP_LOC): New macros.
2085
2086         * tree-vectorizer.c (input.h): Included.
2087         (find_loop_location): New function.
2088         (vect_debug_stats): Argument changed from loop to LOC. Computation of
2089         loop line number removed.
2090         (vect_debug_details): Likewise.
2091         (new_loop_vec_info): Initialize new field LOOP_VINFO_LOC.
2092
2093         (slpeel_make_loop_iterate_ntimes): Call find_loop_location. Argument in
2094         call to vect_debug_details/stats changed from loop to loop_loc.
2095         (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
2096         (slpeel_tree_peel_loop_to_edge): Likewise.
2097
2098         (vect_analyze_offset_expr): Argument in call to vect_debug_details/stats
2099         changed from NULL to UNKNOWN_LOC.
2100         (vect_get_base_and_offset):
2101         (vect_create_addr_base_for_vector_ref):
2102         (get_vectype_for_scalar_type):
2103         (vect_create_data_ref_ptr):
2104         (vect_init_vector):
2105         (vect_get_vec_def_for_operand):
2106         (vect_finish_stmt_generation):
2107         (vectorizable_assignment):
2108         (vectorizable_operation):
2109         (vectorizable_store):
2110         (vectorizable_load):
2111         (vect_transform_stmt):
2112         (vect_update_ivs_after_vectorizer):
2113         (vect_do_peeling_for_loop_bound):
2114         (vect_do_peeling_for_alignment):
2115         (vect_transform_loop):
2116         (vect_is_simple_use):
2117         (vect_analyze_operations):
2118         (vect_is_simple_iv_evolution):
2119         (vect_analyze_scalar_cycles):
2120         (vect_analyze_data_ref_dependences):
2121         (vect_compute_data_ref_alignment):
2122         (vect_enhance_data_refs_alignment):
2123         (vect_analyze_data_ref_access):
2124         (vect_analyze_data_ref_accesses):
2125         (vect_analyze_pointer_ref_access):
2126         (vect_get_memtag_and_dr):
2127         (vect_analyze_data_refs):
2128         (vect_mark_relevant):
2129         (vect_stmt_relevant_p):
2130         (vect_mark_stmts_to_be_vectorized):
2131         (vect_can_advance_ivs_p):
2132         (vect_get_loop_niters):
2133         (vect_analyze_loop):
2134         (vectorize_loops): Likewise.
2135
2136         (vectorizable_load): Argument in call to vect_debug_details/stats
2137         changed from loop to LOOP_LOC (loop_vinfo).
2138         (vect_transform_loop):
2139         (vect_analyze_operations):
2140         (vect_analyze_scalar_cycles):
2141         (vect_analyze_data_ref_dependence):
2142         (vect_enhance_data_refs_alignment):
2143         (vect_analyze_data_ref_accesses):
2144         (vect_analyze_pointer_ref_access):
2145         (vect_analyze_data_refs):
2146         (vect_analyze_loop): Likewise.
2147
2148         (vect_analyze_loop_form): Argument in call to vect_debug_details/stats
2149         changed from loop to loop_loc.
2150
2151         (vect_enhance_data_refs_alignment): Removed unused variable loop.
2152
2153 2005-02-03  Leehod Baruch  <leehod@il.ibm.com>
2154             Dorit Naishlos  <dorit@il.ibm.com>
2155
2156         * tree-vectorizer.c (vect_analyze_data_ref_dependence): Function
2157         declaration added.
2158         (vect_analyze_data_ref_dependences): Likewise.
2159
2160         (vect_is_simple_use): Argument changed from loop structure to
2161         loop_vect_info structure.
2162         (vect_can_advance_ivs_p): Likewise.
2163         (vect_create_index_for_vector_ref): Likewise.
2164         (vect_update_ivs_after_vectorizer): Likewise.
2165         (new_stmt_vec_info): Likewise.
2166
2167         (new_loop_vec_info): Second argument in call to new_stmt_vec_info was
2168         changed from loop to loop_vinfo.
2169         (vect_create_data_ref_ptr): First argument in call to
2170         vect_create_index_for_vector_ref was changed from loop to loop_vinfo.
2171         (vectorizable_assignment): Second argument in call to vect_is_simple_use
2172         was changed from loop to loop_vinfo.
2173         (vectorizable_operation): Likewise.
2174         (vectorizable_store): Likewise.
2175         (vect_mark_stmts_to_be_vectorized): Likewise.
2176         (vect_do_peeling_for_loop_bound): First argument in call to
2177         vect_update_ivs_after_vectorizer was changed from loop to loop_vinfo.
2178         (vect_analyze_operations): Argument in call to vect_can_advance_ivs_p
2179         was changed from loop to loop_vinfo.
2180         (vect_analyze_data_ref_dependences): Third argument in call to
2181         vect_analyze_data_ref_dependence was changed from loop to loop_vinfo.
2182
2183         (vect_create_index_for_vector_ref): Get the loop from loop_vinfo.
2184         (vect_create_data_ref_ptr): Likewise.
2185         (vect_init_vector): Likewise.
2186         (vect_get_vec_def_for_operand): Likewise.
2187         (vectorizable_assignment): Likewise.
2188         (vectorizable_operation): Likewise.
2189         (vectorizable_store): Likewise.
2190         (vectorizable_load): Likewise.
2191         (vect_update_ivs_after_vectorizer): Likewise.
2192         (vect_is_simple_use): Likewise.
2193         (vect_analyze_data_ref_dependence): Likewise.
2194         (vect_analyze_pointer_ref_access): Likewise.
2195         (vect_can_advance_ivs_p): Likewise.
2196
2197         * tree-vectorizer.h: (_loop_vec_info): Definition and macros moved
2198         before _stmt_vec_info.
2199         (_stmt_vec_info): Loop field replaced by loop_vec_info.
2200         (STMT_VINFO_LOOP): Replaced with STMT_VINFO_LOOP_VINFO.
2201         (new_stmt_vec_info): Argument changed from loop structure to
2202         loop_vect_info structure
2203
2204         (vect_analyze_data_ref_dependences): Unnecessary line was removed.
2205         (vect_analyze_offset_expr): Avoid 80 columns overflow.
2206         (vect_create_addr_base_for_vector_ref): Likewise.
2207         (vect_analyze_pointer_ref_access): Likewise.
2208
2209 2005-02-03  Andrew Pinski  <pinskia@physics.uc.edu>
2210
2211         PR tree-opt/19768
2212         * tree-ssa-dse.c (fix_phi_uses): Update the occurs in abnormal
2213         phi flag if the phi is abnormal.
2214
2215 2005-02-03  Andrew Pinski  <pinskia@physics.uc.edu>
2216
2217         PR tree-opt/19736
2218         * tree-ssa.c (replace_immediate_uses): Update the immediate_uses
2219         information for the new statement.
2220
2221 2005-02-03  Joseph S. Myers  <joseph@codesourcery.com>
2222
2223         PR driver/19117
2224         * gcc.c (main): Include the target in -v output.
2225
2226 2005-02-03  Alexandre Oliva  <aoliva@redhat.com>
2227
2228         * combine.c (simplify_comparison, case SIGN_EXTEND, ZERO_EXTEND):
2229         Do not drop the extend if we'd have to add a paradoxical subreg
2230         later.  Include optabs.h and insn-codes.h.
2231         * Makefile.in (combine.o): Depend on $(OPTABS_H).
2232
2233 2005-02-02  Roger Sayle  <roger@eyesopen.com>
2234
2235         PR middle-end/19405
2236         * real.h (REAL_MODE_FORMAT_COMPOSITE_P): New macro.
2237         * fold-const.c (const_binop): Avoid constant folding floating
2238         point operations in modes that use composite representations.
2239         * simplify-rtx.c (simplify_binary_operation): Likewise.
2240
2241 2005-02-02  Geoffrey Keating  <geoffk@apple.com>
2242
2243         * config/rs6000/altivec.md (altivec_dst): Make the first operand
2244         a REG, not a MEM.
2245         (altivec_dstt): Likewise.
2246         (altivec_dstst): Likewise.
2247         (altivec_dststt): Likewise.
2248         * config/rs6000/rs6000.c (altivec_expand_dst_builtin): Adjust creation
2249         of first operand.
2250
2251 2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>
2252
2253         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Copy
2254         EXPR_LOCUS from orig_cond to the new cond_stmt.
2255         (vect_finish_stmt_generation): Copy EXPR_LOCUS from stmt to
2256         the new vec_stmt.
2257
2258 2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>
2259
2260         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Call
2261         standard_iv_increment_position. Remove call to bsi_next
2262         (no need to bump the iterator anymore).
2263         (vect_create_index_for_vector_ref): Call
2264         standard_iv_increment_position. Remove second function argument.
2265         (vect_finish_stmt_generation): Remove call to bsi_next
2266         (no need to bump the iterator anymore).
2267         (vect_create_data_ref_ptr): Remove second argument (bsi) in call
2268         to vect_create_index_for_vector_ref.
2269
2270 2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>
2271
2272         * tree-vectorizer.c (vect_mark_stmts_to_be_vectorized): Check if
2273         phis are used out of the loop.
2274
2275 2005-02-03  Joseph S. Myers  <joseph@codesourcery.com>
2276
2277         PR c/17807
2278         * c-decl.c (undef_nested_function): New variable.
2279         (pop_scope): Diagnose undefined nested functions.
2280         (finish_function): Don't attempt cgraph processing or genericizing
2281         if current top-level function contained an undefined nested
2282         function.  Reset undef_nested_function at the end of a top-level
2283         function.
2284
2285 2005-02-02  Zdenek Dvorak  <dvorakz@suse.cz>
2286
2287         * tree.c (build_int_cst_type): Take sign of the value into account
2288         when deciding whether sign extend the value.
2289
2290 2005-02-02  Joseph S. Myers  <joseph@codesourcery.com>
2291
2292         PR c/18502
2293         * gcc.c (cpp_unique_options): Remove %{trigraphs}.
2294         (cpp_options, cc1_options): Change %{std*&ansi} to
2295         %{std*&ansi&trigraphs}.
2296
2297 2005-02-02  Kazu Hirata  <kazu@cs.umass.edu>
2298
2299         * cse.c: Update comments.
2300
2301 2005-02-02  Aldy Hernandez  <aldyh@redhat.com>
2302
2303         * config/rs6000/rs6000.c (rs6000_spe_function_arg): Multi-reg
2304         arguments go on the stack.  Do not put complex doubles in odd/even
2305         pairs.
2306
2307 2005-02-02  Steven Bosscher  <stevenb@suse.de>
2308
2309         * doc/invoke.texi: Update the options enabled at -O1, -O2,
2310         and -O3.  Update the documentation for -fgcse-sm, -fgcse-las,
2311         -ftree-pre, and -fthread-jumps.
2312
2313 2005-02-02  Richard Sandiford  <rsandifo@redhat.com>
2314
2315         PR tree-optimization/19578
2316         * tree-flow.h (modified_noreturn_calls): Declare.
2317         (noreturn_call_p): Declare.
2318         * tree-flow-inline.h (noreturn_call_p): New function.
2319         (modify_stmt): Add modified noreturn calls to modified_noreturn_calls.
2320         * tree-cfg.c (modified_noreturn_calls): New variable.
2321         (cleanup_control_flow): Use noreturn_call_p.  Split basic blocks
2322         that contain a mid-block noreturn call.
2323         * tree-ssa.c (delete_tree_ssa): Clear modified_noreturn_calls.
2324
2325 2005-02-02  Kazu Hirata  <kazu@cs.umass.edu>
2326
2327         * df.c (df_def_record_1, df_uses_record): Don't use
2328         DF_FOR_REGALLOC.
2329         * df.h (DF_FOR_REGALLOC): Remove.
2330
2331 2005-02-02  Joseph S. Myers  <joseph@codesourcery.com>
2332
2333         PR c/19435
2334         * c-typeck.c (really_start_incremental_init): Reset
2335         constructor_max_index for arrays of incomplete type.
2336
2337 2005-02-02  Jeff Law  <law@redhat.com>
2338
2339         * gcse.c (struct reg_set): Store the block index where the register
2340         was set rather than the setting insn.
2341         (record_one_set, compute_transp): Corresponding changes.
2342         (pre_insert_copy_insn): Do not call replace_one_set.
2343         (replace_one_set): Remove.
2344
2345 2005-02-02  Joseph S. Myers  <joseph@codesourcery.com>
2346
2347         PR other/15514
2348         * doc/gcov.texi: Fix typo.
2349
2350 2005-02-01  Richard Henderson  <rth@redhat.com
2351
2352         PR target/19680
2353         * config/i386/i386.h (MODES_TIEABLE_P): Use ix86_modes_tieable_p.
2354         * config/i386/i386.c (ix86_hard_regno_mode_ok): Change return
2355         type to bool.
2356         (ix86_tieable_integer_mode_p, ix86_modes_tieable_p): New.
2357         * config/i386/i386-protos.h: Update.
2358
2359 2005-02-01  Steven Bosscher  <stevenb@suse.de>
2360
2361         PR tree-optimization/19217
2362         * tree-cfg.c (verify_expr): Use the data field to see if TP was
2363         seen inside a PHI node.  Do not do the ADDR_EXPR check if it was.
2364         (verify_stmts): Pass (void*)1 as data to verify_expr to signal
2365         that it is walking a PHI node.
2366
2367 2005-02-01  Joseph S. Myers  <joseph@codesourcery.com>
2368
2369         * doc/extend.texi (Nested Functions): Update.
2370
2371 2005-02-01  Richard Henderson  <rth@redhat.com>
2372
2373         PR 19696
2374         * optabs.c (expand_copysign_absneg): Export.
2375         * optabs.h (expand_copysign_absneg): Declare.
2376         * config/rs6000/rs6000.md (copysigntf3): New.
2377
2378 2005-02-01  Diego Novillo  <dnovillo@redhat.com>
2379
2380         PR tree-optimization/19633
2381         * tree-flow.h (struct ptr_info_def): Add field 'pt_null'.
2382         * tree-ssa-alias.c (init_alias_info): Initialize.
2383         (merge_pointed_to_info): Set.
2384         (add_pointed_to_expr): Set pt_null if EXPR is a NULL pointer.
2385         (dump_points_to_info_for): Show value of pt_null.
2386         (struct count_ptr_d): Declare.
2387         (find_ptr_dereference): Remove.
2388         (ptr_is_dereferenced_by): Remove.
2389         (count_ptr_derefs): New local function.
2390         (count_uses_and_derefs): New local function.
2391         (compute_points_to_and_addr_escape): Call it.  If the number
2392         of dereferences is greater than zero, mark the pointer as
2393         dereferenced.  If there are fewer dereferences than uses of
2394         the pointer, the pointer's value escapes.
2395
2396 2005-02-01  Diego Novillo  <dnovillo@redhat.com>
2397
2398         PR tree-optimization/19670
2399         * tree-ssa.c (verify_ssa_name): Don't set TREE_VISITED
2400         here...
2401         (verify_use): ... set it here, instead.
2402
2403 2005-02-01  Janis Johnson  <janis187@us.ibm.com>
2404
2405         * doc/sourcebuild.texi (Test directives): Fix formatting.
2406
2407         * doc/sourcebuild.texi (Test directives): Describe selector
2408         expressions.
2409
2410 2005-02-01  Segher Boessenkool  <segher@kernel.crashing.org>
2411
2412         * config.gcc (powerpc64-*-linux*): Default to -m64 also for
2413         specific 64-bit CPUs.
2414
2415 2005-02-01  Richard Earnshaw  <rearnsha@arm.com>
2416
2417         PR target/16201
2418         * arm.c (arm_eliminable_register): New function.
2419         (adjacent_mem_locations): Don't allow eliminable registers.  Use
2420         HOST_WIDE_INT for address offsets.
2421         * arm-protos.h (arm_eliminable_register): Add prototype.
2422
2423 2005-02-01  Steven Bosscher  <stevenb@suse.de>
2424
2425         PR optimization/15242
2426         * params.def (PARAM_MAX_GOTO_DUPLICATION_INSNS): New param.
2427         * basic-block.h (duplicate_computed_gotos): Add prototype.
2428         * bb-reorder.c (duplicate_computed_gotos): New function to
2429         duplicate sufficiently small blocks ending in a computed jump.
2430         * passes.c (rest_of_compilation): Call duplicate_computed_gotos
2431         if not optimizing for size.
2432         * cfgcleanup.c (try_crossjump_bb): If not optimizing for size,
2433         never do tail merging for blocks ending in a computed jump.
2434         * doc/invoke.texi: Document the max-goto-duplication-insns param.
2435
2436 2005-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
2437
2438         Patch from Richard Sandiford <rsandifo@redhat.com>
2439         * reload1.c (choose_reload_regs): Prevent the find_equiv_reg() code
2440         from inheriting a subreg equivalence with a non-spill register.
2441
2442         * tree.h (DECL_FUNCTION_CODE): Document that it is overloaded.
2443
2444 2005-02-01  Alexandre Oliva  <aoliva@redhat.com>
2445
2446         * config/frv/frv.c (movcc_fp_destination_operand): New.
2447         (gpr_or_memory_operand): Fix typo in comment.
2448         (gpr_or_memory_operand_with_scratch): New.
2449         * config/frv/frv.h (PREDICATE_CODES): Add the two new predicates.
2450         * config/frv/frv.md (movcc_fp, movcc_fp_internal): Use
2451         movcc_fp_destination_operand.
2452         (reload_incc_fp): Use gpr_or_memory_operand_with_scratch.
2453         Legitimize memory addresses using a scratch register.
2454
2455 2005-01-31  Jeff Law  <law@redhat.com>
2456
2457         * tree-into-ssa.c (mark_def_sites_global_data): Make KILLS
2458         bitmap a sparse bitmap instead of a simple bitmap.
2459         (mark_def_sites_initialize_block):  Corresponding changes.
2460         (ssa_mark_def_sites_initialize_block): Likewise.
2461         (ssa_mark_phi_uses): Likewise.
2462         (mark_def_site, ssa_mark_def_sites): Likewise.
2463         (mark_def_site_blocks): Likewise.
2464         (rewrite_ssa_into_ssa): Likewise.
2465
2466         * tree-ssa-dom.c (record_cond): Pass correct variable type
2467         for last argument to htab_find_slot_with_hash.
2468
2469         * fold-const.c (fold, case CEIL_MOD_EXPR): Do not lose side
2470         effects when optimizing 0 % X.  Do not try to optimize X % 0.
2471
2472 2005-01-31  James E. Wilson  <wilson@specifixinc.com>
2473
2474         * config/ia64/itanium1.md (1_scall bypass): Change 2_mmalua to
2475         1_mmalua.
2476
2477 2005-02-01  Eric Christopher  <echristo@redhat.com>
2478
2479         * config/mips/mips.c (override_options): Warn if -mint64
2480         is used.
2481         * doc/invoke.texi (MIPS Options): Document that -mint64 is
2482         deprecated.
2483
2484 2005-02-01  Kazu Hirata  <kazu@cs.umass.edu>
2485
2486         * cse.c (cse_reg_info): Remove hash_next, next, regno.  Add
2487         timestamp.
2488         (cse_reg_info_list, cse_reg_info_list_free, REGHASH_SHIFT,
2489         REGHASH_SIZE, REGHASH_MASK, reg_hash, REGHASH_FN,
2490         cached_cse_reg_info, GET_CSE_REG_INFO): Remove.
2491         (cached_regno): Initialize to INVALID_REGNUM.
2492         (cse_reg_info_table_size,
2493         cse_reg_info_table_first_uninitialized,
2494         cse_reg_info_timestamp): New.
2495         (REG_TICK, REG_IN_TABLE, SUBREG_TICKED, REG_QTY): Use
2496         get_cse_reg_info.
2497         (init_cse_reg_info, get_cse_reg_info_1): New.
2498         (get_cse_reg_info): Cache the last look-up.
2499         (new_basic_block): Update the code to clear mappings from
2500         registers to cse_reg_info entries.
2501         (cse_main): Call init_cse_reg_info.
2502
2503         * cse.c (get_cse_reg_info): Update a comment.
2504
2505 2005-01-31  Steven Bosscher  <stevenb@suse.de>
2506
2507         PR c/19333
2508         * c-decl.c (start_decl): Do not warn about arrays of elements with
2509         an incomplete type here.
2510         (grokdeclarator): Do it here by making a pedwarn an error.
2511         * c-typeck.c (push_init_level): If there were previous errors with
2512         the constructor type, do not warn about braces for initializers.
2513         (process_init_element): Likewise for excess initializer elements.
2514
2515 2005-01-31  Kazu Hirata  <kazu@cs.umass.edu>
2516
2517         * cse.c (delete_trivially_dead_insn): Don't iterate.
2518
2519 2005-01-31  Andrew Pinski  <pinskia@physics.uc.edu>
2520
2521         * config/rs6000/rs6000.md (copysignsf3): New expand.
2522         (copysigndf3): Likewise.
2523
2524 2005-01-31  Steven Bosscher  <stevenb@suse.de>
2525
2526         * recog.c (constrain_operands): Only look for earlyclobber operand
2527         conflicts if an '&' constraint was seen.
2528
2529 2005-01-31  Marc Espie <espie@openbsd.org>
2530
2531         * config.gcc: Don't include embedded systems fragment, switches default
2532         debugging format to ELF.
2533         * config/i386/openbsdelf.h: Add DBX_REGISTER_NUMBER since we no
2534         longer pick it up there.
2535
2536 2005-01-31  Dale Johannesen  <dalej@apple.com>
2537
2538         * doc/extend.texi (nested functions): Fix linkage description.
2539         Clarify that static is not allowed.
2540
2541 2005-01-31  Dale Johannesen  <dalej@apple.com>
2542
2543         * config/rs6000/darwin.md (movsf_low_di):  Make work.
2544         (movdf_low_di):  Make work.
2545
2546 2005-01-31  Dale Johannesen  <dalej@apple.com>
2547
2548         * config/rs6000/darwin-tramp.asm (__trampoline_setup):
2549         Make work for 64 bit.
2550
2551 2005-01-31  Roger Sayle  <roger@eyesopen.com>
2552             Dale Johannesen  <dalej@apple.com>
2553
2554         PR middle-end/19650
2555         * fold-const.c (fold_binary_op_with_conditional_arg):
2556         Make types match original operands, before STRIP_NOPS.
2557
2558 2005-01-31  Alan Modra  <amodra@bigpond.net.au>
2559
2560         * config/rs6000/linux-unwind.h (struct gcc_vregs): New.
2561         (struct gcc_regs): Rename from gcc_pt_regs.  Add more regs.
2562         (struct gcc_sigcontext): Delete.  Merge contents to..
2563         (struct gcc_ucontext): ..here.
2564         (get_sigcontext): Delete.
2565         (get_regs): New function, like get_sigcontext but return regs ptr.
2566         64-bit version finds regs from r1 to support vdso.
2567         (ppc_linux_aux_vector): New function.
2568         (ppc_fallback_frame_state): Modify for get_regs.  Restore fprs
2569         and vector regs.
2570
2571 2005-01-31  Ira Rosen  <irar@il.ibm.com>
2572
2573         * tree-vectorizer.c (vect_analyze_offset_expr): Use ssizetype instead
2574         sizetype.
2575         (vect_get_base_and_offset): Use ssizetype instead sizetype. Remove
2576         redundant fold. Fix misalignment for MINUS_EXPR.
2577         (vect_compute_data_ref_alignment): Use ssizetype instead sizetype.
2578         (vect_analyze_pointer_ref_access): Likewise.
2579         (vect_get_memtag_and_dr): Likewise.
2580
2581 2005-01-31  Richard Henderson  <rth@redhat.com>
2582
2583         * config/i386/i386.c (absnegsf2_mixed): Remove all of the # hackery.
2584         (absnegsf2_sse, absnegsf2_i387, absnegdf2_mixed, absnegdf2_sse,
2585         absnegdf2_i387, absnegxf2_i387): Likewise.
2586
2587 2005-01-31  Richard Henderson  <rth@redhat.com>
2588
2589         PR 19696
2590         * optabs.c (expand_copysign_absneg): New.
2591         (expand_copysign_bit): Split out from ...
2592         (expand_copysign): ... here.  Use expand_copysign_absneg.
2593
2594 2005-01-30  Roger Sayle  <roger@eyesopen.com>
2595
2596         PR middle-end/19697
2597         * config/pa/pa.md (anddi3, iordi3): On HPPA64, disallow an integer
2598         constant as the second operand and a register as the third.
2599
2600 2005-01-31  Danny Smith  <dannysmith@users.sourceforge.net>
2601
2602         PR target/19704
2603         * config/i386/i386.c (ix86_function_ok_for_sibcall):  Also check
2604         that dllimport'd functions do not use all call-clobbered registers
2605         to pass parameters.
2606
2607 2005-01-30  Richard Henderson  <rth@redhat.com>
2608
2609         PR 19696
2610         * optabs.c (expand_absneg_bit): Split out from expand_unop and
2611         expand_abs_nojump and generalize.  Use operand_subword and
2612         emit_no_conflict_block.  Support large modes.
2613         (expand_abs_nojump): Use it.  Use HONOR_SIGNED_ZEROS to fall
2614         back to maximum.
2615         (expand_unop): Likewise.  Use HONOR_SIGNED_ZEROS to fall back
2616         negation to subtraction.
2617         (expand_copysign): Check that the format has signed zeros.
2618         Use operand_subword and emit_no_conflict_block.  Support large modes.
2619
2620 2005-01-30  Daniel Berlin  <dberlin@dberlin.org>
2621
2622         Fix PR tree-optimization/19624
2623
2624         * Makefile.in (tree-ssa-pre.o): Add CFGLOOP_H.
2625         * tree-ssa-pre.c: Add cfgloop.h.
2626         Update comment.
2627         (pre_stats): New member, constified.
2628         (inserted_exprs): New static variable.
2629         (NECESSARY): New macro.
2630         (create_expression_by_pieces): Fold the expression, and
2631         mark it as defaulting to not necessary. Also put in
2632         inserted_exprs.
2633         (fully_constant_expression): New function.
2634         (insert_into_preds_of_block): Modify to not insert phis when we
2635         are playing with induction variables.
2636         Push phis onto the inserted_exprs vector, and mark them as not
2637         necessary by default.
2638         (insert_aux): Call fully_constant_expression on eprime.
2639         If all edges produce the same value, mark it constant.
2640         (mark_operand_necessary): New function.
2641         (remove_dead_inserted_code): New function.
2642         (init_pre): Init loop optimizer to get loop info.
2643         (fini_pre): Free loop_optimizer, and inserted_exprs vec.
2644         (execute_pre): Commit edge inserts, then remove dead code.
2645
2646 2005-01-30  Richard Henderson  <rth@redhat.com>
2647
2648         * rtl.c (rtx_equal_p): No early exit for CONST_VECTOR.
2649         * varasm.c (const_rtx_hash_1): Handle CONST_VECTOR.
2650
2651 2005-01-30  Richard Henderson  <rth@redhat.com>
2652
2653         PR target/19700
2654         * config/i386/i386.c (ix86_expand_copysign): New.
2655         (ix86_split_copysign_const): New.
2656         (ix86_split_copysign_var): Rename from ix86_split_copysign,
2657         rearrange op1/nmask operands.
2658         * config/i386/i386-protos.h: Update.
2659         * config/i386/i386.md (copysignsf3): Use ix86_expand_copysign.
2660         (copysigndf3): Likewise.
2661         (copysignsf3_const, copysigndf3_const): New.
2662         (copysignsf3_var): Rename from copysignsf3, split out splitter
2663         and fix split predicate for X constraint.
2664         (copysigndf3_var): Similarly.
2665
2666 2005-01-30  Kazu Hirata  <kazu@cs.umass.edu>
2667
2668         * optabs.c, doc/c-tree.texi, doc/install.texi, doc/md.texi,
2669         doc/passes.texi, doc/rtl.texi, doc/sourcebuild.texi,
2670         doc/tm.texi, doc/tree-ssa.texi: Update copyright.
2671
2672 2005-01-29  Richard Henderson  <rth@redhat.com>
2673
2674         PR target/19690
2675         * config/i386/i386.md (movdf_nointeger, movdf_integer): Fix ordering
2676         of # and * in constraints.
2677
2678 2005-01-29  Richard Henderson  <rth@redhat.com>
2679
2680         PR middle-end/19689
2681         * expr.c (store_field): Don't strip sub-mode cast when the input
2682         data is even smaller.
2683
2684 2005-01-29  Richard Henderson  <rth@redhat.com>
2685
2686         PR middle-end/19687
2687         * expr.c (categorize_ctor_elements_1): Check for CONSTRUCTOR of a
2688         union being empty.
2689
2690 2005-01-29  Richard Henderson  <rth@redhat.com>
2691
2692         * combine.c (make_field_assignment): Fix argument order
2693         to gen_int_mode.
2694
2695 2005-01-29  Richard Guenther <richard.guenther@uni-tuebingen.de>
2696
2697         PR tree-optimization/15791
2698         * fold-const.c (extract_array_ref): New function.
2699         (fold): Fold comparisons between &a[i] and &a[j] or
2700         semantically equivalent trees.
2701
2702 2005-01-29  Jeff Law  <law@redhat.com>
2703
2704         * gcse.c (insert_expr_in_table): Revamp handling of available
2705         and anticipatable occurrence lists to avoid unnecessary list
2706         walking.
2707         (insert_set_in_table): Similarly.
2708
2709 2005-01-29  Joseph S. Myers  <joseph@codesourcery.com>
2710
2711         * c-common.c (fix_string_type): Just use c_build_qualified_type to
2712         build string type.
2713         (c_build_qualified_type): Build qualified array types with
2714         TYPE_MAIN_VARIANT pointing to corresponding unqualified type.
2715         * c-decl.c (c_make_fname_decl): Build unqualified array type
2716         before qualified type.
2717         (grokdeclarator): Use TYPE_MAIN_VARIANT of typedef type if element
2718         type is qualified, not just if type itself is.  Don't apply
2719         qualifiers to array type when declarator is processed.  Apply
2720         qualifiers to field type whether or not it is an array type.
2721         Don't handle array types specially for applying qualifiers to
2722         variables.
2723         * c-typeck.c (composite_type): Build unqualified element type and
2724         array type when forming composite of array types.
2725         (common_pointer_type, comptypes, comp_target_types,
2726         type_lists_compatible_p, build_indirect_ref, build_array_ref,
2727         convert_for_assignment): Don't apply TYPE_MAIN_VARIANT to array
2728         types.
2729         (type_lists_compatible_p): Cache TREE_VALUE (args1) and TREE_VALUE
2730         (args2) in variables a1 and a2.
2731
2732 2005-01-29  Kazu Hirata  <kazu@cs.umass.edu>
2733
2734         * cse.c (n_elements_made, max_elements_made): Remove.
2735         (insert): Don't touch n_elements_made.
2736         (cse_main): Don't touch n_elements_made or max_elements_made.
2737
2738 2005-01-28  Stephane Carrez  <stcarrez@nerim.fr>
2739
2740         PR target/15384
2741         * config/m68hc11/t-m68hc11-gas (dp-bit.c): Fix typo causing a
2742         configuration part of dp-bit.c to be lost.
2743
2744 2005-01-28  Roger Sayle  <roger@eyesopen.com>
2745
2746         * expmed.c (expand_mult_highpart_optab): When attempting to use
2747         a non-widening multiplication in a wider mode, the operands need
2748         to be converted (zero or sign extended) to that mode.
2749
2750 2005-01-28  Ian Lance Taylor  <ian@airs.com>
2751
2752         PR middle-end/16558
2753         PR middle-end/19583
2754         * gimple-low.c (block_may_fallthru): TRY_FINALLY_EXPR only falls
2755         through if both operands fall through.
2756
2757 2005-01-28  Kazu Hirata  <kazu@cs.umass.edu>
2758
2759         * cse.c (fold_rtx) <PC>: Don't optimize.
2760
2761 2005-01-28  Jeff Law  <law@redhat.com>
2762
2763         * fold-const.c (fold, case CEIL_MOD_EXPR): Optimize 0 % X.
2764         (case FLOOR_MOD_EXPR, ROUND_MOD_EXPR, TRUNC_MOD_EXPR): Similarly.
2765
2766 2005-01-28  Kazu Hirata  <kazu@cs.umass.edu>
2767
2768         * cse.c (cse_reg_info_free_list, cse_reg_info_used_list,
2769         cse_reg_info_used_list_end): Remove.
2770         (cse_reg_info_list, cse_reg_info_list_free): New.
2771         (get_cse_reg_info): When allocating an instance of
2772         cse_reg_info, add it to the beginning of the cse_reg_info_list
2773         list.  Remove code to maintain cse_reg_info_used_list.
2774         (new_basic_block): Reset the free list to the beginning of
2775         cse_reg_info_list.
2776
2777 2005-01-28  Richard Sandiford  <rsandifo@redhat.com>
2778
2779         * config/frv/frv.c (bdesc_2arg): Remove __MDPACKH.
2780         (frv_init_builtins): Change its prototype to take 4 uhalf arguments.
2781         (frv_expand_mdpackh_builtin): New function.
2782         (frv_expand_builtin): Use it to expand __MDPACKH.
2783         * doc/extend.texi (__MDPACKH): Update documentation.
2784
2785 2005-01-28  Uros Bizjak  <uros@kss-loka.si>
2786
2787         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Use
2788         SSE_FLOAT_MODE_P for use_sse computation.
2789
2790 2005-01-28  Ralf Corsepius  <ralf.corsepius@rtems.org>
2791
2792         PR target/19663
2793         * config/sparc/rtemself.h (LINK_GCC_C_SEQUENCE_SPEC): undefine.
2794
2795 2005-01-27  Richard Henderson  <rth@redhat.com>
2796
2797         * builtins.c (expand_builtin_copysign): New.
2798         (expand_builtin): Call it.
2799         * genopinit.c (optabs): Add copysign_optab.
2800         * optabs.c (init_optabs): Initialize it.
2801         (expand_copysign): New.
2802         * optabs.h (OTI_copysign, copysign_optab): New.
2803         (expand_copysign): Declare.
2804
2805         * config/alpha/alpha.md (UNSPEC_COPYSIGN): New.
2806         (copysignsf3, ncopysignsf3, copysigndf3, ncopysigndf3): New.
2807
2808         * config/i386/i386.c (ix86_build_signbit_mask): Split from ...
2809         (ix86_expand_fp_absneg_operator): ... here.
2810         (ix86_split_copysign): New.
2811         * config/i386/i386-protos.h: Update.
2812         * config/i386/i386.md (UNSPEC_COPYSIGN): New.
2813         (copysignsf3, copysigndf3): New.
2814
2815         * config/ia64/ia64.md (UNSPEC_COPYSIGN): New.
2816         (copysignsf3, ncopysignsf3): New.
2817         (copysigndf3, ncopysigndf3): New.
2818         (copysignxf3, ncopysignxf3): New.
2819         * config/ia64/ia64.c (rtx_needs_barrier): Handle UNSPEC_COPYSIGN.
2820
2821 2005-01-27  Arend Bayer  <arend.bayer@web.de>
2822             Kazu Hirata  <kazu@cs.umass.edu>
2823
2824         * cse.c: (find_best_addr): Don't call copy_rtx before calling
2825         fold_rtx.  Save cost recomputation if fold_rtx did nothing.
2826         (fold_rtx) <ASM_OPERANDS>: Don't do anything if INSN is
2827         NULL_RTX.
2828
2829 2005-01-27  Jeff Law  <law@redhat.com>
2830
2831         * tree-into-ssa.c (ssa_rewrite_initialize_block): Do not register
2832         definitions of SSA_NAMEs which are not being rewritten.
2833         (rewrite_ssa_into_ssa): Only initialize the current definition
2834         of an SSA_NAME if that SSA_NAME has been marked for rewriting.
2835         If checking is enabled, assert that SSA_NAME_AUX is clear for all
2836         SSA_NAMEs before returning.
2837
2838 2005-01-27  Kazu Hirata  <kazu@cs.umass.edu>
2839
2840         * c-common.def, c-dump.c, c-gimplify.c, c-objc-common.c,
2841         cfgexpand.c, dbxout.c, function.h, opts.c, tree-flow-inline.h,
2842         tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-tailcall.c,
2843         config/avr/avr.md, config/cris/aout.h, config/cris/cris.h,
2844         config/mips/iris6.h, config/sh/sh.c: Update copyright.
2845
2846 2005-01-27  Steven Bosscher  <stevenb@suse.de>
2847
2848         PR middle-end/17278
2849         * opts.c (decode_options): Move flag_thread_jumps from -O1 and
2850         higher to -O2 and higher.  Likewise for tree PRE.
2851         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only iterate at -O2
2852         and better.
2853
2854 2005-01-27  Ian Lance Taylor  <ian@airs.com>
2855
2856         PR middle-end/19583
2857         * gimple-low.c (try_catch_may_fallthru): New static function.
2858         (block_may_fallthru): Handle TRY_CATCH_EXPR.
2859         * tree-inline.c (expand_call_inline): Don't warn about reaching
2860         the end of a non-void function being inlined if the function uses
2861         a return slot.
2862
2863 2005-01-27  Jakub Jelinek  <jakub@redhat.com>
2864
2865         * config/i386/i386.h (CALL_USED_REGISTERS): Fix comment pastos.
2866
2867         PR c/18946
2868         * c-decl.c (warn_if_shadowing): Handle old_decl error_mark_node.
2869         (pushdecl): Only use DECL_FILE_SCOPE_P if DECL_P.
2870         (implicitly_declare): Handle error_mark_node.
2871
2872 2005-01-27  Richard Henderson  <rth@redhat.com>
2873
2874         PR tree-opt/14329
2875         * tree.h (struct tree_decl): Add debug_expr_is_from.
2876         (DECL_DEBUG_EXPR_IS_FROM): New.
2877         (DECL_DEBUG_EXPR): Rename from DECL_DEBUG_ALIAS_OF.
2878         * dwarf2out.c (dwarf2out_var_location): Update to match.
2879         * tree-outof-ssa.c (create_temp): Likewise.
2880         * var-tracking.c (track_expr_p): Likewise.
2881         * tree-sra.c (instantiate_element): Set DECL_DEBUG_EXPR.
2882         * c-objc-common.c (c_tree_printer) <'D'>: Handle DECL_DEBUG_EXPR.
2883         * toplev.c (default_tree_printer): Likewise.
2884
2885 2005-01-27  Alexandre Oliva  <aoliva@redhat.com>
2886
2887         * config/frv/frv.c (frv_class_likely_spilled_p): Add GR8_REGS,
2888         GR9_REGS, GR89_REGS, FDPIC_FPTR_REGS, FDPIC_REGS.
2889
2890 2005-01-27  Steven Bosscher  <stevenb@suse.de>
2891
2892         * tree.h (SWITCH_COND, SWITCH_BODY, SWITCH_LABELS, CASE_LOW,
2893         CASE_HIGH, CASE_LABEL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
2894         ASM_CLOBBERS): Add tree checks.
2895
2896         * c-common.h (SWITCH_TYPE): Rename to SWITCH_STMT_TYPE.
2897         (SWITCH_STMT_COND, SWITCH_STMT_BODY): New.
2898         * c-common.def (SWITCH_STMT): Update to match.
2899         * c-common.c (c_do_switch_warnings): Use SWITCH_STMT accessor
2900         macros instead of SWITCH_EXPR ones.
2901         * c-dump.c (c_dump_tree): Likewise.
2902         * c-gimplify.c (gimplify_switch_stmt): Likewise.
2903         * c-typeck.c (c_start_case, do_case, c_finish_case): Likewise.
2904
2905         * doc/c-tree.texi (SWITCH_STMT): Update accessor macro names.
2906
2907 2005-01-27  Alan Modra  <amodra@bigpond.net.au>
2908
2909         * unwind-dw2.c (execute_stack_op): Add missing cases for
2910         DW_OP_shl, DW_OP_shr, DW_OP_shra, DW_OP_xor.
2911
2912 2005-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
2913
2914         * config.gcc (Obsolete configurations): Remove 'dummy', add
2915         sparclite-*-coff*, sparclite-*-elf*, sparc86x-*-elf* and
2916         sparc-*-openbsd*.
2917
2918 2005-01-26  Diego Novillo  <dnovillo@redhat.com>
2919
2920         PR tree-optimization/19633
2921         * tree-ssa-alias.c (ptr_is_dereferenced_by): Also handle
2922         CALL_EXPRs.
2923         (maybe_create_global_var): Do not create .GLOBAL_VAR if there
2924         are no call-clobbered variables.
2925         * tree-outof-ssa.c (check_replaceable): Return false for calls
2926         with side-effects.
2927
2928 2005-01-26  Ulrich Weigand  <uweigand@de.ibm.com>
2929
2930         * dbxout.c (dbxout_symbol_location): Resolve constant pool references
2931         even for variables with NULL DECL_INITIAL.
2932
2933 2005-01-26  Stuart Hastings  <stuart@apple.com>
2934
2935         * gimplify.c (shortcut_cond_expr): Re-compute side-effects.
2936
2937 2005-01-26  Richard Henderson  <rth@redhat.com>
2938
2939         PR middle-end/18008
2940         * c-decl.c (finish_struct): Set DECL_MODE after resetting a
2941         field's type.
2942         * expr.c (store_field): Strip conversions to odd-bit-sized types
2943         if the destination field width matches.
2944
2945 2005-01-26  Richard Henderson  <rth@redhat.com>
2946
2947         * c-decl.c, expmed.c, expr.c: Revert last change.
2948
2949 2005-01-26  Richard Henderson  <rth@redhat.com>
2950
2951         PR middle-end/18008
2952         * c-decl.c (finish_struct): Set DECL_MODE after resetting a
2953         field's type.
2954         * expmed.c (store_fixed_bit_field): Create a paradoxical subreg
2955         if we don't need the bits above those present in the current mode.
2956         * expr.c (store_field): Strip conversions to odd-bit-sized types
2957         if the destination field width matches.
2958
2959 2005-01-26  Richard Sandiford  <rsandifo@redhat.com>
2960
2961         * config/mips/iris6.h (ENDFILE_SPEC): Don't link in irix-csr.o if
2962         either -ffast-math or -funsafe-math-optimizations is in use.
2963
2964 2005-01-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>
2965
2966         PR target/19293
2967         PR target/19329
2968         * config/avr/avr.c (notice_update_cc): Only set condition code for
2969         ashrqi3 if shift count > 0.
2970         (out_shift_with_cnt): Handle shift count <= 0 as a no-op.
2971         (ashlqi3_out, ashlhi3_out, ashlsi3_out, ashrqi3_out, ashrhi3_out,
2972         ashrsi3_out, lshrqi3_out, lshrhi3_out, lshrsi3_out): Handle shift
2973         count <= 0 as a no-op, and shift count >= width by copying zero
2974         or sign bit to all bits of the result.
2975         * config/avr/avr.md (all shifts): Add alternatives for zero shift
2976         count, with attribute "length" set to 0 and "cc" set to "none".
2977
2978 2005-01-26  Aldy Hernandez  <aldyh@redhat.com>
2979
2980         * doc/invoke.texi: Document -mTLS.
2981
2982         * testsuite/gcc.target/frv/all-tls-global-dynamic.c: New.
2983         * testsuite/gcc.target/frv/all-tls-initial-exec.c: New.
2984         * testsuite/gcc.target/frv/all-tls-initial-exec-pic.c: New.
2985         * testsuite/gcc.target/frv/all-tls-local-dynamic.c: New.
2986         * testsuite/gcc.target/frv/all-tls-local-dynamic-plt.c: New.
2987         * testsuite/gcc.target/frv/all-tls-local-dynamic-plt-pic.c: New.
2988         * testsuite/gcc.target/frv/all-tls-local-exec.c: New.
2989         * testsuite/gcc.target/frv/all-tls-local-exec-TLS.c: New.
2990
2991         * configure.ac: Check for a TLS capable gas.
2992
2993         * configure: Regenerate.
2994
2995 2005-01-26  Richard Henderson  <rth@redhat.com>
2996
2997         PR middle-end/18008
2998         * combine.c (make_field_assignment): Simplify store to zero_extract
2999         from a source with an overlapping mask.
3000
3001 2005-01-26  Aldy Hernandez  <aldyh@redhat.com>
3002
3003         2004-11-11  Eric Christopher  <echristo@redhat.com>
3004
3005         * config/frv/frv.md: Add fr400_integer automaton. Don't
3006         allow TYPE_MUL, TYPE_MACC, or TYPE_CUT to issue in parallel
3007         to TYPE_MACC.
3008
3009 2005-01-26  Steven Bosscher  <stevenb@suse.de>
3010
3011         PR middle-end/16585
3012         * cfgbuild.c (make_edges): Do not clear or set
3013         current_function_has_computed_jump.
3014         * function.h (struct function): Remove the has_computed_jump field.
3015         (current_function_has_computed_jump): Do not define.
3016         * sched-rgn.c (is_cfg_nonregular): Return true if a basic block ends
3017         in a computed jump.  Ignore current_function_has_computed_jump.
3018
3019 2005-01-26  Richard Henderson  <rth@redhat.com>
3020
3021         PR middle-end/19515
3022         * expr.c (categorize_ctor_elements): New argument p_must_clear.
3023         (categorize_ctor_elements_1): Likewise.  Detect a union that isn't
3024         fully initialized.
3025         (mostly_zeros_p): Update for new categorize_ctor_elements argument.
3026         * gimplify.c (gimplify_init_constructor): Likewise.  Only shove
3027         objects into static storage if they have more than one non-zero value.
3028         * tree.h (categorize_ctor_elements): Update decl.
3029
3030 2005-01-26  Steven Bosscher  <stevenb@suse.de>
3031
3032         PR middle-end/19616
3033         * tree.h (CALL_EXPR_TAILCALL): Add comment.
3034         * calls.c (check_sibcall_argument_overlap_1): Revert the change
3035         to this function from 2004-07-10.
3036         * tree-tailcall.c (suitable_for_tail_opt_p): Do not consider the
3037         the current function for tail call optimizations if the address
3038         of one of it its arguments is taken.
3039
3040 2005-01-26  Kazu Hirata  <kazu@cs.umass.edu>
3041
3042         * cse.c (fold_rtx): Call equiv_constant only when necessary.
3043
3044 2005-01-26  Bernd Schmidt  <bernd.schmidt@analog.com>
3045
3046         * function.c (expand_function_end): If current_function_calls_alloca,
3047         emit stack restore in a place that is reached when the function falls
3048         through at the end.
3049
3050 2005-01-26  Alexandre Oliva  <aoliva@redhat.com>
3051
3052         * Makefile.in (../$(build_subdir)/fixincludes/fixincl): Add dummy
3053         rule to avoid matching inappropriate suffix rule.
3054
3055 2005-01-26  Jan Hubicka  <jh@suse.cz>
3056
3057         PR tree-optimization/19241
3058         * tree-inline.c (copy_body_r): Do not walk subtrees after substituting.
3059
3060 2005-01-26  Hans-Peter Nilsson  <hp@axis.com>
3061
3062         * config/cris/cris.h (LIB_SPEC) <sim*>: Use -lsyslinux, not
3063         -lsyssim.  Wrap -lc -lsyssim in --start-group --end-group instead
3064         of doubling.
3065         (STARTFILE_SPEC): Add crti.o, before crtbegin.o.
3066         <sim*>: Always use crt1.o, regardless of N in simN.
3067         <!sim>: Drop support for -pg and -p variants; always use crt0.o.
3068         (ENDFILE_SPEC): Add crtn.o, after crtend.o.
3069         (CRT_CALL_STATIC_FUNCTION): Remove.
3070         * config/cris/aout.h (STARTFILE_SPEC): <!melinux && sim*>: Always
3071         use crt1.o, regardless of N in simN.
3072         <!sim>: Drop support for -pg and -p variants; always use crt0.o.
3073         (LIB_SPEC): Do not define; default to the one in config/cris/cris.h.
3074         (CRIS_CPP_SUBTARGET_SPEC) <melinux && !nostdinc>: Remove special
3075         case isystem setting.
3076         (MAX_OFILE_ALIGNMENT): Correct to 32, not 16.
3077
3078 2005-01-25  Ian Lance Taylor  <ian@airs.com>
3079
3080         * gimple-low.c (block_may_fallthru): Correct handling of
3081         SWITCH_EXPR--may fall through if SWITCH_LABELS is NULL.
3082
3083 2005-01-26  Hans-Peter Nilsson  <hp@axis.com>
3084
3085         * config/cris/cris.h (CPP_SPEC): Adjust the various mtune=
3086         handlers to match indentation; nested under the mtune=* handler.
3087         Similar for mcpu= and march=.
3088
3089 2005-01-25  Daniel Jacobowitz  <dan@codesourcery.com>
3090
3091         * config/mips/linux.h (LIB_SPEC): Remove -rpath-link.
3092         * config/mips/linux64.h (LIB_SPEC): Likewise.
3093         * config/mn10300/linux.h (LIB_SPEC): Likewise.
3094         * config/sh/linux.h (LIB_SPEC): Likewise.
3095
3096 2005-01-25  Aldy Hernandez  <aldyh@redhat.com>
3097
3098         * config/frv/frv.c (frv_legitimize_tls_address): New.
3099         (TARGET_HAVE_TLS): Define.
3100         (FRV_SYMBOL_REF_TLS_P): Define.
3101         (frv_override_options): Handle new register classes.
3102         (frv_legitimate_address_p): Reject tls addresses.
3103         (frv_legitimize_address): Handle TLS addresses.
3104         (gen_inlined_tls_plt): New.
3105         (gen_tlsmoff): New.
3106         (frv_legitimize_tls_address): New.
3107         (unspec_got_name): Add TLS entries.
3108         (got12_operand): Add R_FRV_TLSMOFF12 case.
3109         (frv_emit_move): Fixup TLS addresses.
3110         (frv_emit_movsi): Legitimize TLS addresses.
3111
3112         * config/frv/frv.h (MASK_BIG_TLS): New.
3113         (TARGET_BIG_TLS): New.
3114         (HAVE_AS_TLS): Define.
3115         (TARGET_SWITCHES): Add -mTLS and -mtls options.
3116         (enum reg_class): Add GR8_REGS, GR9_REGS, GR89_REGS.
3117         (REG_CLASS_NAMES): Same.
3118         (REG_CLASS_CONTENTS): Same.
3119         (CONSTRAINT_LEN): New.
3120         (REG_CLASS_FROM_CONSTRAINT): New.
3121         (PREDICATE_CODES): Add symbolic_operand.
3122
3123         * config/frv/frv.md (define_constants): Add UNSPEC_GETTLSOFF,
3124         UNSPEC_TLS_LOAD_GOTTLSOFF12, UNSPEC_TLS_INDIRECT_CALL,
3125         UNSPEC_TLS_TLSDESC_LDD, UNSPEC_TLS_TLSDESC_LDD_AUX,
3126         UNSPEC_TLS_TLSOFF_LD, UNSPEC_TLS_LDDI, UNSPEC_TLSOFF_HILO,
3127         R_FRV_GOTTLSOFF_HI, R_FRV_GOTTLSOFF_LO, R_FRV_TLSMOFFHI,
3128         R_FRV_TLSMOFFLO, R_FRV_TLSMOFF12, R_FRV_TLSDESCHI,
3129         R_FRV_TLSDESCLO, R_FRV_GOTTLSDESCHI, R_FRV_GOTTLSDESCLO, GR8_REG,
3130         GR9_REG, GR14_REG, LRREG.
3131         (type): Add load_or_call attribute.
3132         ("load_or_call"): New reservation.
3133         ("call_gettlsoff"): New.
3134         ("tls_indirect_call"): New.
3135         ("tls_load_gottlsoff12"): New.
3136         ("tlsoff_hilo"): New.
3137         ("tls_tlsdesc_ldd"): New.
3138         ("tls_tlsoff_ld"): New.
3139         ("tls_lddi"): New.
3140
3141         * config/frv/frv-protos.h (symbolic_operand): Protoize.
3142
3143         2005-01-25  Alexandre Oliva  <aoliva@redhat.com>
3144
3145         * config/frv/frv.h (ASM_OUTPUT_DWARF_DTPREL): Define.
3146         * config/frv/frv-protos.h (frv_output_dwarf_dtprel): Declare.
3147         * config/frv/frv.c (TLS_BIAS): Define.
3148         (frv_output_dwarf_dtprel): New.
3149
3150 2005-01-26  Jakub Jelinek  <jakub@redhat.com>
3151
3152         PR rtl-optimization/19579
3153         * ifcvt.c (noce_try_cmove_arith): If emitting instructions to set up
3154         both A and B, see if they don't clobber registers the other expr uses.
3155
3156 2005-01-25  J"orn Rennecke <joern.rennecke@st.com>
3157
3158         * real.c (do_add): Initialize signalling and canonical members.
3159
3160         * real.c (real_from_integer): Zero out destination.
3161
3162 2005-01-18  Jan Hubicka  <jh@suse.cz>
3163
3164         PR tree-optimize/19337
3165         * tree-inline.c (initialize_inlined_parameters): Copy
3166         saved_static_chain_decl only.
3167
3168 2005-01-25  Richard Henderson  <rth@redhat.com>
3169
3170         PR target/19556
3171         PR target/19584
3172         * config/i386/i386.c (x86_inter_unit_moves): Zero.
3173         (ix86_preferred_reload_class): Rewrite fp-constant section, with
3174         80387 enabled, to return a proper subclass.  Return the subset that
3175         overlaps with GENERAL_REGS for PLUS.
3176         * config/i386/i386.md (movsi_1, movdi_2): Set type to "mmx" for pxor.
3177
3178 2005-01-25  Richard Henderson  <rth@redhat.com>
3179
3180         PR middle-end/19609
3181         * tree-complex.c (expand_complex_div_wide): Use the correct formulae.
3182
3183 2005-01-25  Roger Sayle  <roger@eyesopen.com>
3184
3185         * expmed.c (choose_multiplier): Change interface to return the
3186         multiplier lowpart as an rtx instead of an unsigned HOST_WIDE_INT.
3187         (expand_divmod): Update calls to choose_multiplier.
3188
3189 2005-01-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3190
3191         PR middle-end/19330
3192         * expmed.c (extract_bit_field): Use adjust_address instead of
3193         gen_lowpart when op0 is a MEM.
3194
3195 2005-01-24  Steven Bosscher  <stevenb@suse.de>
3196
3197         * cfgexpand.c (expand_gimple_tailcall): Fix typo.
3198
3199 2005-01-24  Richard Sandiford  <rsandifo@redhat.com>
3200
3201         * config/mips/irix-csr.c: New file.
3202         * config/mips/t-iris6 (irix-csr.o): New rule to build it.
3203         (EXTRA_MULTILIB_PARTS): Add irix-csr.o.
3204         * config/mips/iris6.h (ENDFILE_SPEC): Include it in n32 and n64
3205         executables.
3206
3207 2005-01-24  Eric Botcazou  <ebotcazou@libertysurf.fr>
3208
3209         PR bootstrap/19364
3210         * config.gcc (sparc-*-elf*): Remove sol2.h, sparc/sol2.h and
3211         sparc/elf.h, add sparc/sp-elf.h.
3212         (sparc-*-rtems*): Likewise.
3213         (sparclite-*-elf*): Remove sol2.h, sparc/sol2.h, sparc/elf.h and
3214         tm-dwarf2.h, add sparc/sp-elf.h.
3215         (sparc86x-*-elf): Likewise.
3216         (sparc64-*-elf*): Remove sol2.h, sparc/sol2.h and tm-dwarf2.h.
3217         * config/sparc/liteelf.h (TARGET_SUB_OS_CPP_BUILTINS): Rename into
3218         TARGET_OS_CPP_BUILTINS.
3219         * config/sparc/sp86x-elf (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
3220         * config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
3221         Undefine it.
3222         * config/sparc/openbsd64.h (NO_IMPLICIT_EXTERN_C): Undefine.
3223         * config/sparc/sp64-elf.h (NO_IMPLICIT_EXTERN_C): New macro.
3224         (SWITCH_TAKES_ARG): Likewise.
3225         (LOCAL_LABEL_PREFIX): Likewise.
3226         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
3227         (TARGET_N_FORMAT_TYPES): Delete.
3228         (TARGET_FORMAT_TYPES): Likewise.
3229         (ASM_DECLARE_FUNCTION_SIZE): Likewise.
3230         * config/sparc/elf.h: Delete.
3231         * config/sparc/sp-elf.h: New file.
3232
3233 2005-01-24  Kazu Hirata  <kazu@cs.umass.edu>
3234
3235         * tree-flow-inline.h (phi_arg_from_edge): Remove.
3236         * tree-flow.h: Remove the corresponding prototype.
3237         * tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-ssa.c,
3238         tree-vectorizer.c: Use dest_idx instead of phi_arg_from_edge.
3239
3240 2005-01-24  Jakub Jelinek  <jakub@redhat.com>
3241
3242         PR target/17751
3243         * config/rs6000/rs6000.c (rs6000_file_start): Create toc section
3244         for AIX ABI or ELF -fPIC.
3245         (rs6000_emit_load_toc_table): Don't create toc_section here.
3246         (rs6000_xcoff_file_start): Nor here.
3247
3248 2005-01-24  J"orn Rennecke <joern.rennecke@st.com>
3249
3250         * sh.c (ra.h): Don't #include.
3251         (hard_regs_intersect_p): New function, resurrected from ra.c.
3252
3253         * sh.c: Fix 1996 Copyright.
3254
3255 2005-01-24  Richard Henderson  <rth@redhat.com>
3256             Aldy Hernandez  <aldyh@redhat.com>
3257
3258         * regrename.c (note_sets): Handle subregs.
3259
3260 2005-01-24  Joseph S. Myers  <joseph@codesourcery.com>
3261
3262         PR bootstrap/18058
3263         * genconditions.c (write_header, write_conditions): Elide file if
3264         not GCC >= 3.0.1.
3265
3266 2005-01-24  Kazu Hirata  <kazu@cs.umass.edu>
3267
3268         * c-opts.c, expmed.c, gengtype.c, tree-complex.c,
3269         config/arm/iwmmxt.md, config/avr/avr.c, config/s390/s390.h:
3270         Update copyright.
3271
3272 2005-01-24  Jakub Jelinek  <jakub@redhat.com>
3273
3274         * builtins.c (get_pointer_alignment, gimplify_va_arg_expr,
3275         expand_builtin_printf, expand_builtin_fprintf,
3276         expand_builtin_sprintf): Use POINTER_TYPE_P instead TREE_CODE
3277         checking against POINTER_TYPE.
3278         (validate_arglist): Handle POINTER_TYPE code by checking
3279         POINTER_TYPE_P.
3280
3281 2005-01-24  Paolo Bonzini  <bonzini@gnu.org>
3282
3283         * rtlanal.c (non_rtx_starting_operands, for_each_rtx_1,
3284         init_rtlanal): New.
3285         (for_each_rtx): Call for_each_rtx_1.
3286         * rtl.h (init_rtlanal): Declare.
3287         * toplev.c (backend_init): Call init_rtlanal.
3288
3289 2005-01-24  Jakub Jelinek  <jakub@redhat.com>
3290
3291         * flow.c (propagate_one_insn): Formatting.
3292
3293         PR middle-end/19551
3294         * flow.c (libcall_dead_p): Be more conservative if unsure.
3295         If there are any instructions between insn and call, see if they are
3296         all dead before saying the libcall is dead.
3297
3298 2005-01-24  Uros Bizjak  <uros@kss-loka.si>
3299
3300         * config/i386/i386.md (*extendsfdf2_sse): Use "nonimmediate_operand"
3301         operand constraint for operand 0.
3302
3303 2005-01-23  Richard Henderson  <rth@redhat.com>
3304
3305         PR 19486
3306         * tree-complex.c (expand_complex_div_wide): Set EDGE_FALLTHRU on
3307         edges leading to join block.
3308
3309 2005-01-23  Roger Sayle  <roger@eyesopen.com>
3310
3311         * expmed.c (expand_mult_highpart): Make static.  Change type of
3312         constant multiplier argument from unsigned HOST_WIDE_INT to rtx.
3313         (expand_divmod): Updates calls to expand_mult_highpart by using
3314         gen_int_mode to pass a CONST_INT rtx.
3315         * rtl.h (expand_mult_highpart): Remove prototype.
3316
3317 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
3318
3319         * flow.c (regset_bytes, regset_size): Remove.
3320
3321         * cfganal.c: Fix a reference to Harvey's paper.
3322
3323 2005-01-23  Steven Bosscher  <stevenb@suse.de>
3324
3325         PR rtl-optimization/19464
3326         * tree-optimize.c (init_tree_optimization_passes): Add one more
3327         copyrename pass just before out-of-ssa.
3328
3329 2005-01-23  Joseph S. Myers  <joseph@codesourcery.com>
3330
3331         PR bootstrap/18058
3332         * recog.c (recog_memoized): Don't define if GENERATOR_FILE.
3333         * ggc-none.c (ggc_free): Define.
3334
3335 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
3336
3337         * cse.c (max_reg, max_insn_uid): Remove.
3338         (cse_main): Don't access max_reg or max_insn_uid.
3339
3340         * c-common.c (explicit_flag_signed_bitfields,
3341         lang_statement_code_p, lang_expand_function_end): Remove.
3342         * c-common.h: Remove the corresponding declarations.
3343         * c-opts.c (c_common_handle_option): Remove all write access
3344         to explicit_flag_signed_bitfields.
3345
3346         * cgraph.c (cgraph_varpool_n_nodes): Remove.
3347         (cgraph_varpool_node): Don't access cgraph_varpool_n_nodes.
3348         * cgraph.h: Remove the corresponding declaration.
3349
3350         * gcse.c (null_pointer_info): Remove.
3351
3352 2005-01-23  Roger Sayle  <roger@eyesopen.com>
3353             Eric Botcazou  <ebotcazou@libertysurf.fr>
3354
3355         * combine.c (simplify_logical): Only simplify logical expressions
3356         of the form ior(and(x,y),z) by the inverse distributive law if the
3357         result is cheaper than the original.
3358
3359 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
3360
3361         * alias.c, c-common.h, c-incpath.c, c-incpath.h, expr.c,
3362         fold-const.c, gimplify.c, params.h, tree-data-ref.c,
3363         tree-if-conv.c, tree-nested.c, tree-outof-ssa.c,
3364         tree-ssa-dom.c, tree-vectorizer.c, tree.def, config/darwin.c,
3365         config/freebsd-spec.h, config/arm/arm.h,
3366         config/h8300/h8300.md, config/i386/i386.md,
3367         config/i386/predicates.md, config/i386/sse.md,
3368         config/ia64/ia64.c, config/ip2k/ip2k.c, config/s390/s390.c,
3369         config/vax/vax.md: Fix comment typos.  Follow spelling
3370         conventions.
3371
3372 2005-01-23  Steven Bosscher  <stevenb@suse.de>
3373
3374         * gengtype.c (walk_type): Produce `not equal to' compares for loop
3375         tests, instead of `less than'.
3376
3377 2005-01-23  Richard Sandiford  <rsandifo@redhat.com>
3378
3379         * function.c (assign_parm_setup_block): When creating a new stack slot
3380         for a parameter, get its alignment from the parameter's DECL_ALIGN
3381         rather than the type's TYPE_ALIGN.  Make sure that the parameter
3382         is at least word aligned.
3383
3384 2005-01-22  Roger Sayle  <roger@eyesopen.com>
3385
3386         PR middle-end/19378
3387         * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
3388
3389 2005-01-22  Richard Henderson  <rth@redhat.com>
3390
3391         PR target/19506
3392         * config/i386/i386.md (movsfcc_1_sse_max): Use nonimmediate_operand
3393         in both compare operands.
3394         (movdfcc_1_sse_max): Likewise.
3395         (movsfcc_1_sse): Likewise.  Add earlyclobber for scratch.
3396         (movdfcc_1_sse): Likewise.
3397         * config/i386/i386.c (ix86_split_sse_movcc): Emit copies into the
3398         scratch register as needed.
3399
3400 2005-01-22  Richard Henderson  <rth@redhat.com>
3401
3402         * config/i386/i386.md (smaxsf3): Fix mnemonic typo.
3403
3404         * config/i386/i386.c (ix86_prepare_fp_compare_args): Fix is_sse test.
3405
3406 2005-01-22  Richard Henderson  <rth@redhat.com>
3407
3408         * genopinit.c (optabs): Use smin/smax for floating point too.
3409         * doc/md.texi: Update to match.  Clarify that floating point
3410         results are undefined for +0/-0 and NaN.
3411         * doc/rtl.texi: Likewise.
3412         * rtl.def (SMIN, SMAX): Likewise
3413         * tree.def (MIN_EXPR, MAX_EXPR): Likewise.
3414
3415         * config/alpha/alpha.md (smaxdf3, smindf3, smaxsf3, sminsf3): Add
3416         leading 's' to the name.
3417         * config/ia64/ia64.md (smaxsf3, sminsf3, smaxdf3, smindf3,
3418         smaxxf3, sminxf3): Likewise.
3419         * config/rs6000/rs6000.md (smaxdf3, smindf3, smaxsf3, sminsf3):
3420         Likewise.
3421
3422 2005-01-22  Paul Brook  <paul@codesourcery.com>
3423
3424         * config/arm/arm.md: Use "Uy" constraint for wcgr load/stores.
3425
3426 2005-01-21  Mark Dettinger  <dettinge@de.ibm.com>
3427
3428         * config/s390/s390.c (struct processor_costs): New fields
3429         dlgr, dlr, dr, dsgfr, dsgr.
3430         (z900_cost, z990_cost): Values for new fields.
3431         (s390_rtx_costs): New cases MEM und COMPARE in switch
3432         statement. Modified handling of SIGN_EXTEND, ZERO_EXTEND,
3433         DIV, MOD, UDIV, UMOD.
3434
3435 2005-01-21  Ulrich Weigand  <uweigand@de.ibm.com>
3436
3437         * config/s390/s390.md ("doloop_si64"): Reload input value directly
3438         into the register being decremented.
3439         ("doloop_si31", "doloop_di"): Likewise.
3440         ("*doloop_si_long"): Adapt pattern.
3441
3442 2005-01-21  Ulrich Weigand  <uweigand@de.ibm.com>
3443
3444         * config/s390/s390.h (HARD_REGNO_NREGS): Fix computation for
3445         access registers.
3446         (CLASS_MAX_NREGS): Likewise.
3447
3448 2005-01-21  Daniel Berlin  <dberlin@dberlin.org>
3449
3450         * doc/tree-ssa.texi (Statement Operands): Add example for new
3451         must-def macro. Note deprecation of old operands interface.
3452
3453 2005-01-22  Richard Sandiford  <rsandifo@redhat.com>
3454
3455         PR tree-optimization/19484
3456         * tree-cfg.c (remove_fallthru_edge): New function.
3457         (cleanup_control_flow): Remove fallthru edges from calls that are
3458         now known not to return.
3459
3460 2005-01-20  Daniel Berlin  <dberlin@dberlin.org>
3461
3462         Fix PR tree-optimization/19038
3463         * tree-ssa-dom.c (cprop_operand): Don't replace loop invaeriant
3464         copies with loop variant ones.
3465
3466 2005-01-22  Kazu Hirata  <kazu@cs.umass.edu>
3467
3468         * cfganal.c, real.h, reorg.c, timevar.def, tree-ssa-ccp.c,
3469         config/alpha/alpha-protos.h, config/alpha/alpha.h,
3470         config/alpha/alpha.md, config/alpha/predicates.md,
3471         config/sparc/freebsd.h, config/sparc/netbsd-elf.h,
3472         config/sparc/sol2.h: Update copyright.
3473
3474         * tree-cfg.c (remove_forwarder_block_with_phi): Look at the
3475         first label to see if it is a nonlocal label.
3476
3477 2005-01-22  David Edelsohn  <edelsohn@gnu.org>
3478             Andrew Pinski  <pinskia@physics.uc.edu>
3479
3480         PR target/19491
3481         * config/rs6000/rs6000.c (rs6000_va_start): Saturate n_gpr at
3482         maximum number of GPRs.  Saturate n_fpr at maximum number of FPRs.
3483
3484 2005-01-22  Ralf Corsepius  <ralf.corsepius@rtems.org>
3485
3486         * config/rs6000/rtems.h: Update copyright.
3487
3488 2005-01-22  Ralf Corsepius  <ralf.corsepius@rtems.org>
3489
3490         PR target/19548
3491         * config/rs6000/rtems.h: Resurrect cpp_os_rtems_spec from gcc < 3.4.
3492         (CPP_OS_RTEMS_SPEC): New (From gcc-3.3's config/rs6000/sys4.h).
3493         (SUBSUBTARGET_EXTRA_SPECS): Use CPP_OS_RTEMS_SPEC.
3494
3495 2005-01-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3496
3497         PR c/18809
3498         * c-typeck.c (convert_arguments): Check for error_mark_node.
3499
3500 2005-01-21  Ian Lance Taylor  <ian@airs.com>
3501
3502         PR tree-optimization/13000
3503         * tree-inline.c: Include "tree-flow.h".
3504         (expand_call_inline): If warn_return_type, warn if non-void inline
3505         function falls through.
3506         * tree-cfg.c (execute_warn_function_return): Don't warn about
3507         control reaching end if TREE_NO_WARNING is set.  Set
3508         TREE_NO_WARNING.
3509         * gimple-low.c (block_may_fallthru): Don't assume that SWITCH_EXPR
3510         has been lowered.
3511         * gimplify.c (shortcut_cond_expr): Don't emit a jump over the else
3512         branch if we don't need one.
3513         * c-typeck.c: Include "tree-flow.h"
3514         (c_finish_bc_stmt): Don't add a goto if the current statement
3515         list doesn't fall through to the current point.
3516
3517 2005-01-21  Roger Sayle  <roger@eyesopen.com>
3518
3519         PR rtl-optimization/576
3520         * real.c (real_arithmetic): Change return type from void to bool
3521         to return an indication that the result may be inexact.
3522         * real.h (real_arithmeric): Update prototype.
3523         * fold-const.c (const_binop):  Don't constant fold floating
3524         point expressions when the user specifies -frounding-math and
3525         the result may depend upon the run-time rounding mode.
3526         (fold_convert_const_real_from_real): Clean-up.
3527         (fold_initializer): Ignore flag_rounding_math for initializers.
3528         * simplify-rtx.c (simplify_binary_operation): Likewise, don't
3529         constant fold FP operations with flag_rounding_math if the
3530         result may depend upon the run-time rounding mode.
3531
3532 2005-01-21  Tom Tromey  <tromey@redhat.com>
3533
3534         * c-cppbuiltin.c (define__GNUC__): Correct assertion.
3535
3536 2005-01-21  Kazu Hirata  <kazu@cs.umass.edu>
3537
3538         * tree-cfg.c: Fix comment typos.
3539
3540 2005-01-21  J"orn Rennecke <joern.rennecke@st.com>
3541
3542         * passes.c (rest_of_handle_flow2): Close / open the flow2 dump file
3543         around the call to rest_of_handle_branch_target_load_optimize.
3544
3545 2005-01-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
3546
3547         * config.gcc (sparc-*-netbsdelf*): Include dbxelf.h
3548         (sparc64-*-openbsd*): Likewise.
3549         (sparclite-*-elf*): Include tm-dwarf2.h.
3550         (sparc86x-*-elf*): Likewise.
3551         (sparc64-*-elf*): Likewise.
3552         * config/sparc/linux64.h (DWARF2_DEBUGGING_INFO): Delete.
3553         (DBX_DEBUGGING_INFO): Likewise.
3554         * config/sparc/liteelf.h (DWARF2_DEBUGGING_INFO): Likewise.
3555         (PREFERRED_DEBUGGING_TYPE): Likewise.
3556         * config/sparc/netbsd-elf.h (PREFERRED_DEBUGGING_TYPE): Likewise.
3557         * config/sparc/sp64-elf.h (DBX_DEBUGGING_INFO): Likewise.
3558         (PREFERRED_DEBUGGING_TYPE): Likewise.
3559         * config/sparc/sp86x-elf.h (DWARF2_DEBUGGING_INFO): Likewise.
3560         (PREFERRED_DEBUGGING_TYPE): Likewise.
3561         * config/sparc/sparc.h (DBX_DEBUGGING_INFO): Likewise.
3562
3563 2005-01-21  Hans-Peter Nilsson  <hp@bitrange.com>
3564
3565         PR target/18701
3566         * combine.c (combine_simplify_rtx): Revert change of 2004-12-31.
3567
3568 2005-01-20  Paul Brook  <paul@codesourcery.com>
3569
3570         * doc/rtl.texi: Document value extension requirements for CONST_INT.
3571
3572 2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
3573
3574         * tree-cfg.c (tree_verify_flow_info): Check that a nonlocal
3575         label is first in a sequence of labels.
3576
3577         * tree-cfg.c (tree_verify_flow_info): Fix a typo.
3578
3579 2005-01-20  Janis Johnson  <janis187@us.ibm.com>
3580             Giovanni Bajo  <giovannibajo@gcc.gnu.org>
3581
3582         * doc/sourcebuild.texi (Test Directives): New.
3583
3584 2005-01-20  Roger Sayle  <roger@eyesopen.com>
3585
3586         * real.c (real_floor): Don't leave the result uninitialized when
3587         mode is VOIDMode, but return the unrounded intermediate value.
3588         (real_ceil): Likewise.
3589
3590 2005-01-20  Paul Brook  <paul@codesourcery.com>
3591
3592         * config/arm/arm.md (insv): Use gen_int_mode.
3593
3594 2005-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
3595
3596         * config/sparc/freebsd.h (ASM_OUTPUT_INTERNAL_LABELREF): Delete.
3597         * config/sparc/linux.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
3598         * config/sparc/linux64.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
3599         * config/sparc/netbsd-elf.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
3600         * config/sparc/sol2.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
3601
3602 2005-01-20  Daniel Berlin  <dberlin@dberlin.org>
3603
3604         Fix PR debug/19124
3605         * dwarf2out.c (concat_loc_descriptor): We don't know we can use
3606         fbreg, so we have to assume we can't.
3607         (loc_descriptor_from_tree_1): Ditto.
3608         (containing_function_has_frame_base): New function.
3609         (add_location_or_const_value_attribute): Use it.
3610         Also try to generate a frame_base from a single element location
3611         list.
3612
3613 2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
3614
3615         PR tree-optimization/15349
3616         * timevar.def (TV_TREE_MERGE_PHI): New.
3617         * tree-cfg.c (tree_forwarder_block_p): Add a new argument
3618         PHI_WANTED.
3619         (remove_forwarder_block, cleanup_forwarder_blocks): Adjust the
3620         calls to tree_forwarder_block_p.
3621         (remove_forwarder_block_with_phi, merge_phi_nodes,
3622         gate_merge_phi, pass_merge_phi): New.
3623         * tree-optimize.c (init_tree_optimization_passes): Add
3624         pass_merge_phi.
3625         * tree-pass.h: Add an extern for pass_merge_phi;
3626
3627 2005-01-20  Richard Henderson  <rth@redhat.com>
3628
3629         PR target/19418
3630         * config/i386/emmintrin.h (_mm_castpd_ps, _mm_castpd_si128): New.
3631         (_mm_castps_pd, _mm_castps_si128): New.
3632         (_mm_castsi128_ps, _mm_castsi128_pd): New.
3633
3634 2005-01-20  Richard Henderson  <rth@redhat.com>
3635
3636         PR target/19530
3637         * config/i386/mmintrin.h (_mm_cvtsi32_si64): Use
3638         __builtin_ia32_vec_init_v2si.
3639         (_mm_cvtsi64_si32): Use __builtin_ia32_vec_ext_v2si.
3640         * config/i386/i386.c (IX86_BUILTIN_VEC_EXT_V2SI): New.
3641         (ix86_init_mmx_sse_builtins): Create it.
3642         (ix86_expand_builtin): Expand it.
3643         (ix86_expand_vector_set): Handle V2SFmode and V2SImode.
3644         * config/i386/mmx.md (vec_extractv2sf_0, vec_extractv2sf_1): New.
3645         (vec_extractv2si_0, vec_extractv2si_1): New.
3646
3647 2005-01-20  Richard Henderson  <rth@redhat.com>
3648
3649         PR target/16533
3650         * config/i386/i386.c (ix86_expand_push): New.
3651         * config/i386/mmx.md (push<MMXMODE>1): New.
3652         * config/i386/sse.md (push<SSEMODE>1): New.
3653         * config/i386/i386-protos.h: Update.
3654
3655 2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
3656
3657         * params.def, params.h, predict.c, tree-ssa-loop-im.c: Update
3658         copyright.
3659
3660 2005-01-20  Richard Henderson  <rth@redhat.com>
3661
3662         * rtl.def (CONST_VECTOR): Use RTX_CONST_OBJ.
3663         * rtl.h (CONSTANT_P): Don't special case CONST_VECTOR.
3664
3665 2005-01-19  Richard Henderson  <rth@redhat.com>
3666
3667         PR target/19350
3668         * config/i386/i386.c (ix86_expand_vector_move_misalign): Convert
3669         to V4SFmode in SSE1 fallback load path.
3670
3671 2005-01-19  Richard Henderson  <rth@redhat.com>
3672
3673         * config/i386/i386.c (ix86_expand_vector_init_one_var): Fix typo
3674         in QImode expansion to ix86_expand_vector_set.
3675         (ix86_expand_vector_init_general): Fix typo in V8HImode recursive call.
3676
3677 2005-01-19  Richard Henderson  <rth@redhat.com>
3678
3679         PR target/19511
3680         * config/i386/i386.c (ix86_preferred_reload_class): Return a proper
3681         subclass of the input class.
3682         (ix86_secondary_memory_needed): Always true for cross-MMX classes.
3683         Always true for cross-SSE1 classes.  Rationalize conditionals.
3684         * config/i386/i386.h (SSE_CLASS_P, MMX_CLASS_P): Use straight equality.
3685         * config/i386/i386.md (movsi_1): Add MMX/SSE zeros.  Fix alternatives
3686         for SSE1.  Don't check TARGET_INTER_UNIT_MOVES.
3687         (movdi_2): Add MMX/SSE zeros.
3688         (movdi_1_rex64): Likewise.  Don't check TARGET_INTER_UNIT_MOVES.
3689         (movsf_1): Don't check TARGET_INTER_UNIT_MOVES.
3690         (zero_extendsidi2_32, zero_extendsidi2_rex64): Likewise.
3691         (movsi_1_nointernunit, movdi_1_rex64_nointerunit): Remove.
3692         (movsf_1_nointerunit, zero_extendsidi2_32_1): Remove.
3693         (zero_extendsidi2_rex64_1): Remove.
3694         (MOV0 peephole): Check GENERAL_REG_P.
3695
3696 2005-01-19  Richard Henderson  <rth@redhat.com>
3697
3698         PR target/19427
3699         * config/i386/i386.c (ix86_expand_vector_set): Fix third and fourth
3700         shufps elements.
3701         (ix86_expand_vector_extract): Likewise.
3702
3703 2005-01-19  Richard Henderson  <rth@redhat.com>
3704
3705         PR middle-end/19304
3706         * expr.c (emit_move_change_mode): New argument force; use
3707         simplify_gen_subreg if true.
3708         (emit_move_via_alt_mode): Merge into ...
3709         (emit_move_via_integer): ... here.
3710         (emit_move_ccmode): Use emit_move_change_mode directly.
3711
3712 2005-01-19  Richard Henderson  <rth@redhat.com>
3713
3714         PR target/19518
3715         * config/alpha/alpha.c (alpha_rtx_costs): Handle HIGH.
3716         (alpha_preferred_reload_class): Handle CONST_VECTOR.
3717         (alpha_emit_set_const_1): Add no_output parameter; don't emit
3718         rtl if true.
3719         (alpha_emit_set_const): Likewise.  Make static.
3720         (alpha_emit_set_long_const): Make static.
3721         (alpha_extract_integer): Split out from alpha_expand_mov.
3722         (alpha_split_const_mov): Likewise.
3723         (alpha_expand_mov): Use them.  Handle CONST_VECTOR.
3724         (alpha_legitimate_constant_p): New.
3725         * config/alpha/alpha-protos.h: Update.
3726         * config/alpha/alpha.h (REGISTER_MOVE_COST): Correct fp<->gp cost.
3727         (LEGITIMATE_CONSTANT_P): Re-implement with a function.
3728         * config/alpha/alpha.md (movsi): Add n alternative.
3729         (movsi_nt_vms, movdi_er_nofix, movdi_er_fix, movdi_fix): Likewise.
3730         (mov<VEC>_fix, mov<VEC>_nofix): Add i alternative.
3731         (splitters for all of the above): Use alpha_split_const_mov.
3732         * config/alpha/predicates.md (non_add_const_operand): New.
3733         (non_zero_const_operand): New.
3734         (input_operand): Use alpha_legitimate_constant_p after reload.
3735
3736 2005-01-19  Zdenek Dvorak  <dvorakz@suse.cz>
3737
3738         PR tree-optimization/19038
3739         * tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): New function.
3740         (add_candidate): Add ivs with increment in latch only if
3741         allow_ip_end_pos_p is true.
3742         (determine_iv_cost): Use empty_block_p.
3743
3744 2005-01-19  Daniel Berlin  <dberlin@dberlin.org>
3745
3746         * cfganal.c (compute_dominance_frontiers_1): Replace with new algorithm
3747         (compute_dominance_frontiers): Ditto.
3748
3749 2005-01-19  Ralf Corsepius  <ralf.corsepius@rtems.org>
3750
3751         PR target/19529
3752         * config/sh/t-rtems: New.
3753         * config.gcc (sh-*-rtems*): Reflect having added config/sh/t-rtems.
3754
3755 2005-01-19  Zdenek Dvorak  <dvorakz@suse.cz>
3756
3757         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Always subtract
3758         the offset of the selected field.
3759
3760 2005-01-19  Kazu Hirata  <kazu@cs.umass.edu>
3761
3762         * tree-cfg.c (remove_forwarder_block): Fix the check to
3763         prevent a nonlocal label from appearing in the middle of a
3764         basic block.
3765
3766 2005-01-19  Hans-Peter Nilsson  <hp@axis.com>
3767
3768         PR rtl-optimization/19462
3769         * reorg.c (find_end_label): Create return insn only if
3770         current_function_epilogue_delay_list is empty.
3771
3772 2005-01-19  Paolo Bonzini  <bonzini@gnu.org>
3773
3774         * doc/passes.texi: Remove paragraph mentioning new-ra.
3775
3776 2005-01-19  Jakub Jelinek  <jakub@redhat.com>
3777
3778         PR rtl-optimization/15139
3779         * combine.c: Include params.h.
3780         (count_rtxs): New function.
3781         (record_value_for_reg): If replace_rtx would replace at least
3782         2 occurrences of REG in VALUE and TEM is really large, replace REG with
3783         (clobber (const_int 0)) instead of TEM.
3784         * params.def (PARAM_MAX_LAST_VALUE_RTL): New.
3785         * params.h (MAX_LAST_VALUE_RTL): New.
3786         * Makefile.in (combine.o): Depend on $(PARAMS_H).
3787         * doc/invoke.texi (--param max-last-value-rtl=N): Document.
3788
3789         PR c/17297
3790         * c-typeck.c (digest_init): Only call build_vector if all constructor
3791         elements are *_CST nodes.
3792         * gimplify.c (gimplify_init_constructor): Likewise.
3793
3794         PR middle-end/19164
3795         * c-typeck.c (digest_init): Only call build_vector if inside_init
3796         is a CONSTRUCTOR.
3797
3798 2005-01-18  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
3799
3800         * toplev.c (init_asm_output): Remove dead #ifdef.
3801
3802 2005-01-18  Kaz Kojima  <kkojima@gcc.gnu.org>
3803
3804         * config/sh/linux.h (TARGET_C99_FUNCTIONS): Define.
3805
3806 2005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
3807
3808         * calls.c (expand_call): Check DECL_BUILT_IN_CLASS before
3809         accessing DECL_FUNCTION_CODE.
3810         * dojump.c (do_jump): Likewise.
3811         * gimplify.c (gimplify_call_expr): Likewise.
3812         * predict.c (expr_expected_value): Likewise.
3813         (strip_builtin_expect): Likewise.
3814         * tree-inline.c (estimate_num_insns_1): Likewise.
3815         * tree-ssa-loop-im.c (stmt_cost): Likewise
3816         * fold-const.c (fold): Test for BUILT_IN_NORMAL.
3817         (tree_expr_nonnegative_p): Likewise.
3818
3819 2005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
3820
3821         * config/sparc/sparc.c (load_pic_register): Emit the appropriate
3822         variant of the load_pcrel_sym pattern.
3823         * config/sparc/sparc.md (P macro): Move to the top.
3824         (load_pcrel_sym): Macroize using P.
3825         (save_register_window): Likewise.
3826
3827 2005-01-18  Aldy Hernandez  <aldyh@redhat.com>
3828
3829         * config/rs6000/rs6000.md ("sunordered"): Disable for e500.
3830         ("sordered"): Same.
3831
3832 2005-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
3833
3834         PR C/19472
3835         * c-typeck.c (build_asm_expr): Strip nops off
3836         input memory operands.
3837
3838 2005-01-18  David Edelsohn  <edelsohn@gnu.org>
3839
3840         * config/rs6000/aix43.h (CPLUSPLUS_CPP_SPEC): Delete
3841         _XOPEN_SOURCE, _XOPEN_SOURCE_EXTENDED, _LARGE_FILE_API.
3842         * config/rs6000/aix51.h (CPLUSPLUS_CPP_SPEC): Same.
3843         * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Same.
3844
3845 2005-01-18  Joel Sherrill <joel.sherrill@oarcorp.com>
3846
3847         PR target/19379
3848         * config/i386/i386.c (override_options): If the 80387 is disabled,
3849         then do not return FP values using FP registers.
3850
3851 2005-01-18  Kazu Hirata  <kazu@cs.umass.edu>
3852
3853         * basic-block.h, c-common.c, c-cppbuiltin.c, c-lang.c,
3854         c-tree.h, cfgbuild.c, cgraph.c, cgraph.h, collect2.c,
3855         combine.c, config.gcc, coverage.h, cse.c, cselib.c,
3856         defaults.h, df.c, dwarf2asm.c, dwarf2out.c, explow.c, expr.c,
3857         flow.c, fold-const.c, gcse.c, ggc-page.c, gimple-low.c,
3858         gimplify.c, ifcvt.c, langhooks-def.h, lcm.c, optabs.h,
3859         output.h, postreload-gcse.c, postreload.c, recog.c,
3860         resource.c, rtl.def, rtlanal.c, sched-deps.c, sched-rgn.c,
3861         targhooks.h, toplev.c, tree-data-ref.c, tree-eh.c,
3862         tree-flow.h, tree-loop-linear.c, tree-mudflap.h, tree-nrv.c,
3863         tree-optimize.c, tree-outof-ssa.c, tree-pass.h,
3864         tree-scalar-evolution.c, tree-ssa-copy.c, tree-ssa-dce.c,
3865         tree-ssa-dse.c, tree-ssa-loop-ivopts.c, tree-ssa-operands.c,
3866         tree-ssa-pre.c, tree-ssa.c, tree-vectorizer.c, tree.def,
3867         unwind-dw2-fde-darwin.c, var-tracking.c: Update copyright.
3868
3869         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
3870         config/alpha/alpha.c, config/arm/vfp.md,
3871         config/i386/emmintrin.h, config/i386/i386-modes.def,
3872         config/i386/i386-protos.h, config/i386/i386.h,
3873         config/i386/pmmintrin.h, config/i386/ppro.md,
3874         config/i386/predicates.md, config/i386/xmmintrin.h,
3875         config/i860/i860.c, config/ia64/ia64-modes.def,
3876         config/ia64/ia64-protos.h, config/ia64/ia64.h,
3877         config/ia64/ia64.md, config/ia64/itanium1.md,
3878         config/ia64/itanium2.md, config/ia64/predicates.md,
3879         config/iq2000/iq2000.h, config/mips/linux64.h,
3880         config/rs6000/aix41.h, config/rs6000/aix43.h,
3881         config/rs6000/aix52.h, config/rs6000/darwin-fallback.c,
3882         config/rs6000/rs6000.c, config/rs6000/rs6000.h,
3883         config/rs6000/spe.md, config/sh/sh.md, config/sparc/linux.h,
3884         config/sparc/linux64.h, config/sparc/litecoff.h,
3885         config/sparc/sp64-elf.h, config/sparc/sparc.c,
3886         config/sparc/sparc.h, config/sparc/sparc.md,
3887         config/sparc/sysv4-only.h: Update copyright.
3888
3889 2005-01-18  Richard Henderson  <rth@redhat.com>
3890
3891         PR target/19496
3892         * config/i386/i386.c (ix86_expand_fp_movcc): Fail for LTGT and UNEQ.
3893
3894 2005-01-18  Marc Espie  <espie@openbsd.org>
3895         * config/i386/openbsdelf.h: Typo.
3896
3897 2005-01-18  Richard Henderson  <rth@redhat.com>
3898
3899         * config/i386/i386.c (ix86_expand_fp_movcc): Remove TARGET_IEEE_FP
3900         special case for sse.
3901         * config/i386/predicates.md (sse_comparison_operator): Likewise.
3902
3903 2005-01-18  Dorit Naishlos  <dorit@il.ibm.com>
3904
3905         * tree-inline.c (estimate_num_insns_1): Added cases for
3906         ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF, and REALIGN_LOAD_EXPR.
3907
3908 2005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
3909
3910         PR rtl-optimization/19296
3911         * combine.c (simplify_comparison): Rewrite the condition under
3912         which a non-paradoxical SUBREG of a PLUS can be lifted when
3913         compared against a constant.
3914
3915 2005-01-18  Andi Kleen <ak@muc.de>
3916
3917         * c-typeck.c: (convert_for_assignment): Check warn_pointer_sign.
3918         * c.opt (-Wpointer-sign): Add.
3919         * doc/invoke.texi: (-Wpointer-sign): Add.
3920
3921 2005-01-18  Uros Bizjak  <uros@kss-loka.si>
3922
3923         * config/i386/i386.c (override_options): Revert 2004-11-24 change.
3924         * config/i386/i386.md (fmodsf3, dremsf3, *sinsf2, *cossf2, sincossf3,
3925         *tansf3_1, tansf2, atan2sf3_1, atan2sf3, atansf2, asinsf2, acossf2,
3926         logsf2, log10sf2, log2sf2, log1psf2, logbsf2, ilogbsf2, expsf2,
3927         exp10sf2, exp2sf2, expm1sf2, rintsf2, floorsf2, ceilsf2, btruncsf2,
3928         nearbyintsf2): Disable for TARGET_SSE_MATH.  Leave patterns enabled
3929         for TARGET_MIX_SSE_I387.
3930         (fmoddf3, dremdf3, *sindf2, *sinextendsfdf2, *cosdf2, *cosextendsfdf2,
3931         sincosdf3, *sincosextendsfdf3, *tandf3_1, tandf2, atan2df3_1,
3932         atan2df3, atandf2, asindf2, acosdf2, logdf2, log10df2, log2df2,
3933         log1pdf2, logbdf2, expdf2, exp10df2, exp2df2, expm1df2, rintdf2,
3934         floordf2, ceildf2, btruncdf2, nearbyintdf2): Disable for
3935         (TARGET_SSE2 && TARGET_SSE_MATH).  Leave patterns enabled for
3936         TARGET_MIX_SSE_I387.
3937         (atan2sf3, atan2df3, atan2xf3): Remove register constraints
3938         from expander.
3939
3940 2005-01-18  Uros Bizjak  <uros@kss-loka.si>
3941
3942         PR target/19424
3943         * config/i386/mmx.md (*movv2sf_internal_rex64, *movv2sf_internal):
3944         Add movaps alternative for xmm reg->reg move.
3945
3946 2005-01-17  Jeff Law  <law@redhat.com>
3947
3948         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Clear SSA_NAME_VALUE
3949         at the end of the main DOM loop rather than just before DOM exits.
3950
3951 2005-01-17  Diego Novillo  <dnovillo@redhat.com>
3952
3953         PR tree-optimization/19121
3954         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): When
3955         adding aliases to a name tag, also add them to the pointer's
3956         type tag.
3957         * tree-ssa-copy.c (merge_alias_info): Do not merge flow
3958         sensitive alias info at all.  Only check that the two pointers
3959         have compatible pointed-to sets.
3960         * tree-ssa.c (verify_name_tags): Verify that the alias set of
3961         a pointer's type tag is a superset of the alias set of the
3962         pointer's name tag.
3963
3964 2005-01-17  James E Wilson  <wilson@specifixinc.com>
3965
3966         PR target/19357
3967         * config/ia64/ia64.md (movxf): Handle general register source.  Adjust
3968         comment to document why.
3969
3970 2005-01-17  Richard Henderson  <rth@redhat.com>
3971
3972         * config/i386/sse.md (smaxv4sf3_finite, sse_vmsmaxv4sf3_finite,
3973         sminv4sf3_finite, sse_vmsminv4sf3_finite, smaxv2df3_finite,
3974         sse2_vmsmaxv2df3_finite, sminv2df3_finite,
3975         sse2_vmsminv2df3_finite): New.
3976         (smaxv4sf3, sse_vmsmaxv4sf3, sminv4sf3, sse_vmsminv4sf3, smaxv2df3,
3977         sse2_vmsmaxv2df3, sminv2df3, sse2_vmsminv2df3): Remove commutative.
3978         Force op1 into register.
3979
3980 2005-01-17  Kelley Cook  <kcook@gcc.gnu.org>
3981
3982         * Makefile.in (STAGEMOVESTUFF): Stage all the stamp files to prevent
3983         bubblestrap from always rebuilding build directory.
3984
3985 2005-01-17  Ulrich Weigand  <uweigand@de.ibm.com>
3986
3987         * config/s390/s390.md ("*clc"): Remove incorrect '='.
3988         ("*cmpmem_short"): Likewise.
3989
3990 2005-01-17  Steven Bosscher  <stevenb@suse.de>
3991
3992         * basic-block.h: Document BB_* flags.
3993         * regrename.c (copyprop_hardreg_forward): Don't use BB_VISITED,
3994         use an sbitmap instead.
3995         * sched-rgn.c (compute_trg_info): Likewise.
3996
3997 2005-01-17  Richard Sandiford  <rsandifo@redhat.com>
3998
3999         * config.gcc (mips64*-*-linux*): Set the default abi to n32.  Remove
4000         redundant target_cpu_default and extra_parts lines.  Use the default
4001         "from-abi" ISA.
4002         * config/mips/linux64.h (DRIVER_DEFAULT_ABI_SELF_SPEC): Delete.
4003         (SUBTARGET_EXTRA_SPECS): Delete.
4004         (DRIVER_SELF_SPECS): Remove architecture lines.  Set the ABI directly.
4005         (SUBTARGET_ASM_SPEC): Remove -mabi=n32 and -mabi=64 mappings.
4006         * config/mips/t-linux64 (MULTILIB_DIRNAMES): Use "32" for -mabi=32
4007         and "n32" for -mabi=n32.
4008
4009 2005-01-17  Ian Lance Taylor  <ian@airs.com>
4010
4011         PR c/5675
4012         * c-typeck.c (build_c_cast): Revert patch of 2003-02-16: don't
4013         fold constant variables into initial values.
4014
4015 2005-01-17  Kazu Hirata  <kazu@cs.umass.edu>
4016
4017         * tree-cfg.c (tree_can_merge_blocks_p): Reorder two checks.
4018
4019         * tree-cfg.c (tree_forwarder_block_p): Speed up by walking
4020         through the statements backward.
4021
4022 2005-01-17  Ian Lance Taylor  <ian@airs.com>
4023
4024         PR middle-end/13127:
4025         * tree-inline.c (expand_call_inline): Set TREE_NO_WARNING on
4026         a variable set to the return value of the inlined function.
4027
4028 2005-01-17  Mark Dettinger  <dettinge@de.ibm.com>
4029
4030         * rtlanal.c (rtx_cost): Assign cost of 0 to a SUBREG
4031         when modes are tieable.
4032
4033 2005-01-17  Ranjit Mathew  <rmathew@hotmail.com>
4034
4035         * gthr-posix.h (__gthread_active_p): Use pthread_cancel instead
4036         of pthread_create to find out if threads are enabled.
4037         * gthr-posix95.h (__gthread_active_p): Likewise.
4038
4039 2005-01-17  Paolo Bonzini  <bonzini@gnu.org>
4040
4041         * common.opt (-fnew-ra): Remove.
4042         * ra*.*: Remove.
4043         * toplev.h (flag_new_regalloc): Remove.
4044         * Makefile.in (ra*.*): Don't mention.
4045         * passes.c (rest_of_handle_new_regalloc): Remove.
4046         (rest_of_handle_combine, rest_of_compilation): Always consider
4047         flag_new_regalloc as false.
4048         * doc/invoke.texi: Don't document -fnew-ra.
4049
4050 2005-01-17  Paolo Bonzini <bonzini@gnu.org>
4051
4052         * bb-reorder.c (fix_edges_for_rarely_executed_code): Remove
4053         last parameter to reg_scan.
4054         * loop.c (loop_optimize): Likewise.
4055         * passes.c (rest_of_handle_tracer, rest_of_handle_if_conversion,
4056         rest_of_handle_web, rest_of_handle_cfg, rest_of_handle_jump_bypass,
4057         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
4058         rest_of_handle_gcse, rest_of_handle_loop_optimize,
4059         rest_of_handle_loop2, rest_of_handle_jump2): Likewise.
4060         * regclass.c (reg_scan): Likewise, for the declaration.
4061         * rtl.h (reg_scan): Likewise, for the prototype.
4062
4063 2005-01-17  Kazu Hirata  <kazu@cs.umass.edu>
4064
4065         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Don't call
4066         mark_dfs_back_edges.
4067
4068 2005-01-16  Daniel Berlin  <dberlin@dberlin.org>
4069
4070         * tree-ssa-pre.c (add_to_sets): s1 may be NULL.
4071         (compute_avail): Uses don't go in tmp_gen.
4072
4073 2005-01-16  Steven Bosscher  <stevenb@suse.de>
4074
4075         * ggc-page.c (ggc_alloc_stat): Use __builtin_ctzl instead of a
4076         loop to look for a free slot in a page entry.
4077
4078 2005-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4079
4080         PR target/16304
4081         * defaults.h (TARGET_DEFERRED_OUTPUT_DEFS): Provide default.
4082         * toplev.c (compile_file): Call process_pending_assemble_output_defs
4083         just before targetm.asm_out.file_end.
4084         * tree.h (process_pending_assemble_output_defs): Declare.
4085         * varasm.c (assemble_output_def, process_pending_assemble_output_defs):
4086         New functions.
4087         (assemble_alias): Defer generation of assembly code for defines when
4088         TARGET_DEFERRED_OUTPUT_DEFS is true.
4089         * config/rs6000/aix41.h (TARGET_DEFERRED_OUTPUT_DEFS): Define.
4090         * config/rs6000/aix43.h (TARGET_DEFERRED_OUTPUT_DEFS): Define.
4091         * doc/tm.texi (TARGET_DEFERRED_OUTPUT_DEFS): document.
4092
4093 2005-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4094
4095         PR target/19336
4096         * pa.c (pa_scalar_mode_supported_p): New function.
4097         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
4098         * pa.h (MIN_UNITS_PER_WORD): Add comment.
4099
4100         * pa-protos.h (prefetch_operand): Delete.
4101         (prefetch_cc_operand, prefetch_nocc_operand): New declations.
4102         * pa.c (prefetch_operand): Delete.
4103         (prefetch_cc_operand, prefetch_nocc_operand): New functions.
4104         * pa.h (EXTRA_CONSTRAINT): Add `W' constraint.
4105         (PREDICATE_CODES): Delete prefetch_operand.  Add prefetch_cc_operand
4106         and prefetch_nocc_operand.
4107         * pa.md (prefetch): Rework to avoid reload problems handling short
4108         displacements when a cache control completer needs to be provided.
4109         (prefetch_32, prefetch_64): Delete.
4110         (prefetch_cc, prefetch_nocc): New patterns.
4111
4112 2005-01-15  David Edelsohn  <edelsohn@gnu.org>
4113
4114         * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Revert previous change.
4115
4116 2005-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4117
4118         PR ada/19388
4119         * pa.c (pa_asm_output_aligned_common): Warn if specified alignment
4120         exceeds maximum alignment for global common data.
4121         * pa64-hpux.h (MAX_OFILE_ALIGNMENT): Define to 32768.
4122         * som.h (MAX_OFILE_ALIGNMENT): Likewise.
4123
4124 2004-01-15  Roger Sayle  <roger@eyesopen.com>
4125
4126         * tree-ssa-dom.c (extract_range_from_cond): Correct condition.
4127
4128 2004-01-15  Roger Sayle  <roger@eyesopen.com>
4129
4130         * harg-reg-set.h (reg_class_names): Prototype global array.
4131         * regclass.c (reg_class_names): Declare here and initialize to
4132         REG_CLASS_NAMES.
4133         (dump_regclass): Remove local declaration of reg_class_names.
4134         (regclass): Likewise.
4135         * cfg.c (dump_flow_info): Likewise.
4136         * ra-debug.c (reg_class_names): Likewise.
4137         * regrename.c (reg_class_names): Likewise.
4138         * reload.c (reg_class_names): Likewise.
4139         * reload1.c (spill_failure): Likewise.
4140         * config/m68hc11/m68hc11.c (reg_class_names): Likewise.
4141
4142 2005-01-15  Ulrich Weigand  <uweigand@de.ibm.com>
4143
4144         * config/s390/s390.md ("reload_outti"): Remove predicate for
4145         output operand.  Abort if operand is not a MEM.
4146         ("reload_outdi", "reload_outdf"): Likewise.
4147
4148 2005-01-15  Marc Espie  <espie@openbsd.org>
4149
4150         * config.gcc (*-*-openbsd*): Set HAS_LIBC_R for OpenBSD <= 3.2.
4151         (i[34567]86-*-openbsd*): Switch to ELF for OpenBSD >= 3.4.
4152         * config/openbsd.h:  Fix C++ includes for native configurations.
4153         Add proper OS_CPP_BUILTINS.  Fix libspec for recent OpenBSD.
4154         Add trampoline support.
4155         * config/i386/openbsdelf.h: New.
4156
4157 2005-01-15  Marc Espie  <espie@openbsd.org>
4158
4159         * collect2.c (main): Explicitly parse -dynamic-linker option.
4160
4161 2005-01-15  Jakub Jelinek  <jakub@redhat.com>
4162
4163         PR tree-optimization/19060
4164         * tree-ssa-dom.c (extract_range_from_cond) <case LT_EXPR, GT_EXPR>:
4165         Return 0 if op1 <= TYPE_MIN_VALUE () resp. op1 >= TYPE_MAX_VALUE ().
4166         (simplify_cond_and_lookup_avail_expr): Add assert for dummy == 0
4167         and handle extract_range_from_cond returning false.
4168         * fold-const.c (fold): Optimize comparisons with min/max even for
4169         width > HOST_BITS_PER_WIDE_INT.
4170
4171 2005-01-15  Ralf Corsepius  <ralf.corsepius@rtems.org>
4172
4173         * config/mips/rtems.h (MIPS_DEFAULT_GVALUE): Set to 0.
4174         * config/mips/t-rtems (MULTILIBS_DIRNAMES,MULTILIB_OPTIONS):
4175         Remove little endian multilib variants.
4176         Add mips32 multilib variant.
4177
4178 2005-01-15  Kazu Hirata  <kazu@cs.umass.edu>
4179
4180         * explow.c (copy_all_reg, stabilize): Remove.
4181         * expr.h: Remove the corresponding prototypes.
4182
4183         * rtlanal.c (regs_set_between_p): Remove.
4184         * rtl.h: Remove the corresponding prototype.
4185
4186 2005-01-14  David Edelsohn  <edelsohn@gnu.org>
4187
4188         * config/rs6000/rs6000.c (rs6k_nonimmediate_operand): Rename
4189         to rs6000_nonimmediate_operand.
4190         * config/rs6000/rs6000.h (PREDICATE_CODES): Rename
4191         rs6k_nonimmediate_operand to rs6000_nonimmediate_operand.
4192         * config/rs6000/rs6000.md (movsi_internal1): Rename predicate to
4193         rs6000_nonimmediate_operand.
4194         * config/rs6000/spe.md (movdf_e500_double): Rename predicate to
4195         rs6000_nonimmediate_operand.
4196
4197 2005-01-14  Andrew Pinski  <pinskia@physics.uc.edu>
4198
4199         * tree-ssa-alias.c (pass_may_alias): Add TODO_verify_stmts.
4200
4201 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
4202
4203         * config/rs6000/rs6000.h (CLASS_MAX_NREGS): DF goes in 1 register
4204         on e500v2.
4205         (CANNOT_CHANGE_MODE_CLASS): Restrict DI mode changes on e500v2.
4206         (PREDICATE_CODES): Add rs6k_nonimmediate_operand.
4207
4208         * config/rs6000/rs6000.c (invalid_e500_subreg): New.
4209         (rs6k_nonimmediate_operand): New.
4210         (rs6000_legitimate_offset_address_p): Handle DI modes on e500v2
4211         correctly.
4212         (legitimate_lo_sum_address_p): Same.
4213         (rs6000_legitimize_address): Same.
4214         (rs6000_legitimize_reload_address): Same.
4215         (rs6000_legitimate_address): Same.
4216         (spe_build_register_parallel): Pass DF and DC modes in a DI
4217         register.
4218
4219         * config/rs6000/rs6000.md ("*movsi_internal1"): Change predicate
4220         to rs6k_nonimmediate_operand.
4221
4222         * config/rs6000/spe.md ("*frob_df_di"): New.
4223         ("*frob_di_df"): New.
4224         ("*frob_di_df_2"): New.
4225         ("*mov_sidf_e500_subreg0"): New.
4226         ("*mov_sidf_e500_subreg4"): New.
4227         ("*movdf_e500_double"): Change predicate to
4228         rs6k_nonimmediate_operand.
4229
4230 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
4231
4232         * postreload.c (move2add_note_store): Only call
4233         trunc_int_for_mode on scalar integers.
4234
4235 2005-01-14  Steven Bosscher  <stevenb@suse.de>
4236
4237         * tree-ssa-dce.c (visited_control_parents): New sbitmap to
4238         replace BB_VISITED uses.
4239         (find_obviously_necessary_stmts): Don't clear BB_VISITED.
4240         (propagate_necessity): Check the bitmap instead of BB_VISITED.
4241         (tree_dce_done): Free visited_control_parents.
4242         (perform_tree_ssa_dce): Allocate and clear it.
4243         * tree-ssa-pre.c (compute_antic_aux): Make non-recursive.
4244         (compute_antic): Iterate from here using a DFS.  Use an sbitmap
4245         instead of BB_VISITED.
4246
4247 2005-01-14  Kazu Hirata  <kazu@cs.umass.edu>
4248
4249         * c-tree.h, coverage.h, langhooks-def.h, optabs.h, output.h,
4250         rtl.h, targhooks.h, tree-flow.h, tree-mudflap.h, tree.h:
4251         Remove unused prototypes.
4252
4253 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
4254
4255         * config/rs6000/rs6000.c (rs6000_stack_info): Fix caching of SPE
4256         64-bit register usage.
4257         (spe_func_has_64bit_regs_p): Add FIXME note.
4258
4259 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
4260
4261         * config/rs6000/rs6000.c (rs6000_generate_compare): Replace
4262         flag_finite_math_only with flag_unsafe_math_optimizations.
4263
4264 2005-01-14  J. D. Johnston  <jjohnst@us.ibm.com>
4265
4266         * config/s390/tpf-unwind.h (s390_fallback_frame_state): Correct
4267         end-of-stack check.
4268         (__tpf_eh_return): Copy TPF private stack area from the module
4269         boundary stack frame.  Add check for when module addresses are
4270         equal, but no stub address is found.
4271
4272 2005-01-14  Richard Earnshaw  <rearnsha@arm.com>
4273
4274         PR target/7525
4275         * arm.h (struct machine_function): Add call_via field.
4276         (thumb_call_via_label): Declare.
4277         * arm.c (thumb_call_via_label): New variable.
4278         (thumb_call_reg_needed): New variable.
4279         (arm_output_function_epilogue): For Thumb code, output any per-function
4280         call-indirect trampolines.
4281         (thumb_call_via_reg): New function.
4282         (arm_file_end): New function.
4283         (TARGET_ASM_FILE_END): Call arm_file_end.
4284         (aof_file_end): Likewise.
4285         * arm-protos.h (thumb_call_via_reg): Declare.
4286         * arm.md (call_reg_thumb, call_value_reg_thumb): Call
4287         thumb_call_via_reg in normal case.
4288
4289 2005-01-14  Jakub Jelinek  <jakub@redhat.com>
4290
4291         PR middle-end/19084
4292         PR rtl-optimization/19348
4293         * recog.c (peephole2_optimize): Do global life update if some peephole
4294         decides it doesn't need at least one of its inputs and that change
4295         influences liveness at the start of the basic block.
4296
4297         * basic-block.h (EXECUTE_IF_AND_COMPL_IN_REG_SET): Needs 2 REGSET
4298         arguments instead of 1.
4299
4300 2005-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
4301
4302         PR middle-end/18820
4303         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Return
4304         zero for nested functions needing a static chain or functions
4305         with a non-constant address.
4306
4307 2005-01-13  Roger Sayle  <roger@eyesopen.com>
4308
4309         * simplify-rtx.c (simplify_binary_operation) <AND>: Optimize
4310         (and (sign_extend X) C) into (zero_extend (and X C)).
4311
4312 2005-01-13  David O'Brien  <obrien@FreeBSD.org>
4313
4314         * config/freebsd-spec.h:  Make KSE pthread lib logic the default.
4315
4316 2005-01-13  Richard Henderson  <rth@redhat.com>
4317
4318         PR target/19009
4319         PR target/19250
4320         PR target/19252
4321         * config/i386/i386.md (cmpdf, cmpsf, bunordered, bordered, buneq,
4322         bunge, bungt, bunle, bunlt, bltgt): Enable for TARGET_SSE_MATH,
4323         not just TARGET_SSE.
4324         (cmpfp_i_387): Rename from cmpfp_i.  Move after sse patterns.
4325         (cmpfp_i_mixed): Rename from cmpfp_i_sse; use for TARGET_MIX_SSE_I387.
4326         (cmpfp_i_sse): Rename from cmpfp_i_sse_only; use for TARGET_SSE_MATH.
4327         (cmpfp_iu_mixed, cmpfp_iu_sse, cmpfp_iu_387): Similarly.
4328         (fp_jcc_1_mixed, fp_jcc_1_sse, fp_jcc_1_387): Similarly.
4329         (fp_jcc_2_mixed, fp_jcc_2_sse, fp_jcc_2_387): Similarly.
4330         (fp_jcc_3_387, fp_jcc_4_387, fp_jcc_5_387, fp_jcc_6_387,
4331         fp_jcc_7_387, fp_jcc_8_387): Rename from fp_jcc_N.
4332         (movdicc_c_rex64): Rename with '*'.
4333         (movsfcc, movdfcc): Add checks for 387 and sse math to condition.
4334         (movsfcc_1_sse_min, movsfcc_1_sse_max, movsfcc_1_sse): New.
4335         (movsfcc_1_387): Rename from movsfcc_1.
4336         (movdfcc_1_sse_min, movdfcc_1_sse_max, movdfcc_1_sse): New.
4337         (movdfcc_1, movdfcc_1_rex64): Add check for 387.
4338         (sminsf3, smaxsf3, smindf3, smaxdf3): New.
4339         (minsf3, minsf, minsf_nonieee, minsf_sse, mindf3, mindf,
4340         mindf_nonieee, mindf_sse, maxsf3, maxsf, maxsf_nonieee, maxsf_sse,
4341         maxdf3, maxdf, maxdf_nonieee, maxdf_sse, sse_movsfcc, sse_movsfcc_eq,
4342         sse_movdfcc, sse_movdfcc_eq, sse_movsfcc_const0_1,
4343         sse_movsfcc_const0_2, sse_movsfcc_const0_3, sse_movsfcc_const0_4,
4344         sse_movdfcc_const0_1, sse_movdfcc_const0_2, sse_movdfcc_const0_3,
4345         sse_movdfcc_const0_4): Remove.
4346         * config/i386/i386.c (ix86_expand_fp_movcc): For TARGET_SSE_MATH,
4347         recognize min/max early.  Update for changed sse cmove patterns.
4348         (ix86_split_sse_movcc): New.
4349         * config/i386/i386-protos.h: Update.
4350
4351 2005-01-13  Steven Bosscher  <stevenb@suse.de>
4352
4353         * tree-ssa-dse.c (fix_phi_uses): Use SSA operand iterators.
4354         (fix_stmt_v_may_defs): Likewise.
4355
4356 2005-01-13  Richard Henderson  <rth@redhat.com>
4357
4358         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Use elt_mode
4359         for converting the mask.
4360
4361 2005-01-13  David Edelsohn  <edelsohn@gnu.org>
4362
4363         * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Change _XOPEN_SOURCE
4364         definition to 600.
4365
4366 2005-01-13  Richard Henderson  <rth@redhat.com>
4367
4368         * config/i386/i386.c (IX86_BUILTIN_MOVQ, IX86_BUILTIN_LOADD,
4369         IX86_BUILTIN_STORED, IX86_BUILTIN_MOVQ2DQ,
4370         IX86_BUILTIN_MOVDQ2Q): Remove.
4371         (IX86_BUILTIN_VEC_EXT_V4SI): New.
4372         (ix86_init_mmx_sse_builtins, ix86_expand_builtin): Update to match.
4373         (ix86_expand_vector_extract): For V4S[FI], extract element 0 after
4374         shuffling.
4375         * config/i386/sse.md (sse_concatv2sf): Accept zero operand 2.
4376         (sse2_pextrw): Fix immediate constraint.
4377         (sse2_loadq, sse2_loadq_rex64): Remove.
4378         * config/i386/emmintrin.h (_mm_cvtsi128_si32, _mm_cvtsi128_si64x):
4379         Use __builtin_ia32_vec_ext_<size>.
4380         (_mm_cvtsi32_si128, _mm_cvtsi64x_si128): Use _mm_set_epi<size>.
4381
4382 2005-01-13  Aldy Hernandez  <aldyh@redhat.com>
4383
4384         * function.c (assign_parm_setup_block): Look inside original
4385         entry_parm when inspecting PARALLEL.
4386
4387 2005-01-13  Ralf Corsepius  <ralf.corsepius@rtems.org>
4388             Joel Sherrill  <joel@oarcorp.com>
4389
4390         PR target/19399
4391         * gthr-rtems.h (__gthread_recursive_mutex_t): New type.
4392         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Define to
4393         rtems_gxx_recursive_mutex_init.
4394         (__gthread_recursive_mutex_lock): New function.
4395         (__gthread_recursive_mutex_trylock): Likewise.
4396         (__gthread_recursive_mutex_unlock): Likewise.
4397
4398 2005-01-13  Ralf Corsepius <ralf.corsepius@rtems.org>
4399
4400         * config/i386/t-rtems-i386: Multilib on -mtune instead of -mcpu.
4401
4402 2005-01-13  Jan Beulich  <jbeulich@novell.com>
4403
4404         * config/ia64/ia64.md (ashlti3, ashlti3_internal): New.
4405         (ashrti3_internal): Indicate output is early clobber. Generate result
4406         into output rather than first input. Use move for low word of output
4407         if shift count is exactly 64.
4408         (lshrti3_internal): Likewise.
4409
4410 2005-01-13  Hans-Peter Nilsson  <hp@bitrange.com>
4411
4412         PR target/18329
4413         PR target/18330
4414         * reload1.c (delete_output_reload): Don't delete an output reload
4415         if the pseudo lives longer than a single basic block.  Adjust and
4416         improve wording of comment.
4417
4418 2005-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
4419
4420         PR target/19334
4421         * config/darwin.c (machopic_select_section): Use TYPE_SIZE_UNIT instead
4422         of TYPE_SIZE where we mean the number of bytes.
4423
4424 2005-01-12  Aldy Hernandez  <aldyh@redhat.com>
4425
4426         * function.c (assign_parm_setup_block): Relax condition on
4427         multi-register optimization.
4428
4429 2005-01-12  Nick Clifton  <nickc@redhat.com>
4430
4431         * config/sh/sh.md (udivsi3_sh2a, divsi3_sh2a): Give these patterns
4432         an "in_delay_slot" attribute of "no" to prevent them being used in
4433         delay slots.  This is forbidden because they might generate
4434         exceptions.
4435
4436 2005-01-12  Alan Modra  <amodra@bigpond.net.au>
4437
4438         PR target/19389
4439         * config/rs6000/rs6000.md (movtf_internal): Replace r->o and m->r
4440         with r->Y and Y->r.
4441
4442 2005-01-12  Nick Clifton  <nickc@redhat.com>
4443
4444         * config/iq2000/iq2000.h (ASM_SPEC): Undefine (to stop -Qy being
4445         passed on to GAS) but do not define, as GAS no longer supports or
4446         needs the -m2000 option.
4447
4448 2005-01-11  Roger Sayle  <roger@eyesopen.com>
4449
4450         * builtins.c (fold_builtin_fabs): Convert argument to the appropriate
4451         type as args of unprototyped builtins aren't automatically promoted.
4452         (fold_builtin_abs): Likewise.
4453
4454 2005-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4455
4456         * Makefile.in: Set a `build-warn' variable.
4457
4458 2005-01-11  Zdenek Dvorak  <dvorakz@suse.cz>
4459
4460         PR tree-optimization/17949
4461         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): New function.
4462         (find_interesting_uses_address): Use it.
4463
4464 2005-01-11  Aldy Hernandez  <aldyh@redhat.com>
4465
4466         * regrename.c (kill_value): Handle subreg's that won't simplify.
4467
4468 2005-01-11  Richard Henderson  <rth@redhat.com>
4469
4470         PR target/13366
4471         * config/i386/i386.h (enum ix86_builtins): Move ...
4472         * config/i386/i386.c: ... here.
4473         (IX86_BUILTIN_MOVDDUP, IX86_BUILTIN_MMX_ZERO, IX86_BUILTIN_PEXTRW,
4474         IX86_BUILTIN_PINSRW, IX86_BUILTIN_LOADAPS, IX86_BUILTIN_LOADSS,
4475         IX86_BUILTIN_STORESS, IX86_BUILTIN_SSE_ZERO, IX86_BUILTIN_PEXTRW128,
4476         IX86_BUILTIN_PINSRW128, IX86_BUILTIN_LOADAPD, IX86_BUILTIN_LOADSD,
4477         IX86_BUILTIN_STOREAPD, IX86_BUILTIN_STORESD,  IX86_BUILTIN_STOREHPD,
4478         IX86_BUILTIN_STORELPD, IX86_BUILTIN_SETPD1, IX86_BUILTIN_SETPD,
4479         IX86_BUILTIN_CLRPD, IX86_BUILTIN_LOADPD1, IX86_BUILTIN_LOADRPD,
4480         IX86_BUILTIN_STOREPD1, IX86_BUILTIN_STORERPD, IX86_BUILTIN_LOADDQA,
4481         IX86_BUILTIN_STOREDQA, IX86_BUILTIN_CLRTI,
4482         IX86_BUILTIN_LOADDDUP): Remove.
4483         (IX86_BUILTIN_VEC_INIT_V2SI, IX86_BUILTIN_VEC_INIT_V4HI,
4484         IX86_BUILTIN_VEC_INIT_V8QI, IX86_BUILTIN_VEC_EXT_V2DF,
4485         IX86_BUILTIN_VEC_EXT_V2DI, IX86_BUILTIN_VEC_EXT_V4SF,
4486         IX86_BUILTIN_VEC_EXT_V8HI, IX86_BUILTIN_VEC_EXT_V4HI,
4487         IX86_BUILTIN_VEC_SET_V8HI, IX86_BUILTIN_VEC_SET_V4HI): New.
4488         (ix86_init_builtins): Make static.
4489         (ix86_init_mmx_sse_builtins): Update for changed builtins.
4490         (ix86_expand_binop_builtin): Only use ix86_fixup_binary_operands
4491         if all the modes match.  Otherwise, fake it.
4492         (get_element_number, ix86_expand_vec_init_builtin,
4493         ix86_expand_vec_ext_builtin, ix86_expand_vec_set_builtin): New.
4494         (ix86_expand_builtin): Make static.  Update for changed builtins.
4495         (ix86_expand_vector_move_misalign): Use sse2_loadlpd with zero
4496         operand instead of sse2_loadsd.  Cast sse1 fallback to V4SFmode.
4497         (ix86_expand_vector_init_duplicate): New.
4498         (ix86_expand_vector_init_low_nonzero): New.
4499         (ix86_expand_vector_init_one_var, ix86_expand_vector_init_general):
4500         Split out from ix86_expand_vector_init; handle integer modes.
4501         (ix86_expand_vector_init): Use them.
4502         (ix86_expand_vector_set, ix86_expand_vector_extract): New.
4503         * config/i386/i386-protos.h: Update.
4504         * config/i386/predicates.md (reg_or_0_operand): New.
4505         * config/i386/mmx.md (mov<MMXMODEI>_internal): Add 'r' variants.
4506         (movv2sf_internal): Likewise.  And a splitter to match them all.
4507         (vec_dupv2sf, mmx_concatv2sf, vec_setv2sf, vec_extractv2sf,
4508         vec_initv2sf, vec_dupv4hi, vec_dupv2si, mmx_concatv2si, vec_setv2si,
4509         vec_extractv2si, vec_initv2si, vec_setv4hi, vec_extractv4hi,
4510         vec_initv4hi, vec_setv8qi, vec_extractv8qi, vec_initv8qi): New.
4511         (mmx_pinsrw): Fix operand ordering.
4512         * config/i386/sse.md (movv4sf splitter): Use direct pattern,
4513         rather than sse_loadss expander.
4514         (movv2df splitter): Similarly.
4515         (sse_loadss, sse_loadlss): Remove.
4516         (vec_dupv4sf, sse_concatv2sf, sse_concatv4sf, vec_extractv4sf_0): New.
4517         (vec_setv4sf, vec_setv2df): Use ix86_expand_vector_set.
4518         (vec_extractv4sf, vec_extractv2df): Use ix86_expand_vector_extract.
4519         (sse3_movddup): Rename with '*'.
4520         (sse3_movddup splitter): Use gen_rtx_REG instead of gen_lowpart.
4521         (sse2_loadsd): Remove.
4522         (vec_dupv2df_sse3): Rename from sse3_loadddup.
4523         (vec_dupv2df, vec_concatv2df_sse3, vec_concatv2df): New.
4524         (sse2_pinsrw): Fix argument ordering.
4525         (sse2_loadld, sse2_loadq): Add sse1 alternatives.
4526         (sse2_stored): Remove 'r' destination.
4527         (vec_dupv4si, vec_dupv2di, sse2_concatv2si, sse1_concatv2si,
4528         vec_concatv4si_1, vec_concatv2di, vec_setv2di, vec_extractv2di,
4529         vec_initv2di, vec_setv4si, vec_extractv4si, vec_initv4si,
4530         vec_setv8hi, vec_extractv8hi, vec_initv8hi, vec_setv16qi,
4531         vec_extractv16qi, vec_initv16qi): New.
4532
4533         * config/i386/emmintrin.h (__m128i, __m128d): Use typedef, not define.
4534         (_mm_set_sd, _mm_set1_pd, _mm_setzero_pd, _mm_set_epi64x,
4535         _mm_set_epi32, _mm_set_epi16, _mm_set_epi8, _mm_setzero_si128): Use
4536         constructor form.
4537         (_mm_load_pd, _mm_store_pd): Use plain dereference.
4538         (_mm_load_si128, _mm_store_si128): Likewise.
4539         (_mm_load1_pd): Use _mm_set1_pd.
4540         (_mm_load_sd): Use _mm_set_sd.
4541         (_mm_store_sd, _mm_storeh_pd): Use __builtin_ia32_vec_ext_v2df.
4542         (_mm_store1_pd, _mm_storer_pd): Use _mm_store_pd.
4543         (_mm_set_epi64): Use _mm_set_epi64x.
4544         (_mm_set1_epi64x, _mm_set1_epi64, _mm_set1_epi32, _mm_set_epi16,
4545         _mm_set1_epi8, _mm_setr_epi64, _mm_setr_epi32, _mm_setr_epi16,
4546         _mm_setr_epi8): Use _mm_set_foo form.
4547         (_mm_loadl_epi64, _mm_movpi64_epi64, _mm_move_epi64): Use _mm_set_epi64.
4548         (_mm_storel_epi64, _mm_movepi64_pi64): Use __builtin_ia32_vec_ext_v2di.
4549         (_mm_extract_epi16): Use __builtin_ia32_vec_ext_v8hi.
4550         (_mm_insert_epi16): Use __builtin_ia32_vec_set_v8hi.
4551         * config/i386/mmintrin.h (_mm_setzero_si64): Use plain cast.
4552         (_mm_set_pi32): Use __builtin_ia32_vec_init_v2si.
4553         (_mm_set_pi16): Use __builtin_ia32_vec_init_v4hi.
4554         (_mm_set_pi8): Use __builtin_ia32_vec_init_v8qi.
4555         (_mm_set1_pi16, _mm_set1_pi8): Use _mm_set_piN variant.
4556         * config/i386/pmmintrin.h (_mm_loaddup_pd): Use _mm_load1_pd.
4557         (_mm_movedup_pd): Use _mm_shuffle_pd.
4558         * config/i386/xmmintrin.h (_mm_setzero_ps, _mm_set_ss,
4559         _mm_set1_ps, _mm_set_ps, _mm_setr_ps): Use constructor form.
4560         (_mm_cvtpi16_ps, _mm_cvtpu16_ps, _mm_cvtpi8_ps, _mm_cvtpu8_ps,
4561         _mm_cvtps_pi8, _mm_cvtpi32x2_ps): Avoid __builtin_ia32_mmx_zero;
4562         Use _mm_setzero_ps.
4563         (_mm_load_ss, _mm_load1_ps): Use _mm_set* form.
4564         (_mm_load_ps, _mm_loadr_ps): Use raw dereference.
4565         (_mm_store_ss): Use __builtin_ia32_vec_ext_v4sf.
4566         (_mm_store_ps): Use raw dereference.
4567         (_mm_store1_ps): Use _mm_storeu_ps.
4568         (_mm_storer_ps): Use _mm_store_ps.
4569         (_mm_extract_pi16): Use __builtin_ia32_vec_ext_v4hi.
4570         (_mm_insert_pi16): Use __builtin_ia32_vec_set_v4hi.
4571
4572 2005-01-11  Stan Shebs  <shebs@apple.com>
4573
4574         * config/rs6000/rs6000.c (machopic_output_stub): Issue
4575         ldu instead of lwzu if 64-bit -mdynamic-no-pic.
4576
4577 2005-01-11  Andrew Pinski  <pinskia@physics.uc.edu>
4578
4579         PR target/18761
4580         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
4581         Skip all DECLs except for FIELD_DECLs.
4582
4583 2005-01-11  Andreas Krebbel  <krebbel1@de.ibm.com>
4584
4585         * config/s390/s390.c (override_options): Return error if
4586         -mbackchain, -mpacked-stack and -mhard-float are used together.
4587         (s390_va_start): Remove the backchain && packed-stack special case.
4588         (s390_gimplify_va_arg): Likewise.
4589         * doc/invoke.texi: Remove the ABI incompatibility note.
4590
4591 2005-01-11  Andreas Krebbel  <krebbel1@de.ibm.com>
4592
4593         * config/s390/s390.c (struct s390_frame_layout): Remove
4594         save_backchain_p.
4595         (s390_frame_info, s390_emit_prologue): Replace occurrences of
4596         save_backchain_p with TARGET_BACKCHAIN.
4597
4598 2005-01-11  Alan Modra  <amodra@bigpond.net.au>
4599
4600         PR target/18916
4601         * builtins.c (std_gimplify_va_arg_expr): Adjust alignment of *ap.
4602         * expr.h (struct locate_and_pad_arg_data): Add "boundary".
4603         * function.c (locate_and_pad_parm): Set new field.
4604         (assign_parm_find_stack_rtl): Use it instead of FUNCTION_ARG_BOUNDARY.
4605         Tweak where_pad test to include "none".  Always set mem align for
4606         stack_parm.
4607         (assign_parm_adjust_stack_rtl): Discard stack_parm if alignment
4608         not sufficient for type.
4609         (assign_parm_setup_block): If stack_parm is zero on entry, always
4610         make a new stack local.  Block move old stack parm if necessary
4611         to new aligned stack local.
4612         (assign_parm_setup_stack): Use a block move to handle
4613         potentially misaligned entry_parm.
4614         (assign_parms_unsplit_complex): Specify required alignment when
4615         creating stack local.
4616         * calls.c (compute_argument_addresses): Override alignment of stack
4617         arg calculated from its type with the alignment given by
4618         FUNCTION_ARG_BOUNDARY.
4619         (store_one_arg): Likewise.
4620
4621 2005-01-11  Jan Beulich  <jbeulich@novell.com>
4622
4623         * config/ia64/ia64.md (zero_extendsidi2): Replace zxt4 by addp4.
4624         Change respective itanium_class attribute to ialu.
4625         (shladdp4_internal): New.
4626         * config/ia64/predicates.md (shladd_log2_operand): New.
4627
4628 2005-01-11  Richard Henderson  <rth@redhat.com>
4629
4630         * expr.c (store_constructor): Use rtvec_alloc instead of
4631         alloca+gen_rtvec_v, and an incorrect number passed to alloca.
4632
4633 2005-01-11  Kazu Hirata  <kazu@cs.umass.edu>
4634
4635         * config/alpha/alpha.c, config/i386/mmx.md: Fix comment typos.
4636
4637 2005-01-11  Alan Modra  <amodra@bigpond.net.au>
4638
4639         * varasm.c (default_section_type_flags_1): Don't set SECTION_SMALL.
4640         * config/ia64/ia64.c (TARGET_SECTION_TYPE_FLAGS): Define.
4641         (TARGET_RWRELOC): Define.
4642         (ia64_rwreloc_section_type_flags): Delete.
4643         (ia64_section_type_flags): New function.
4644         * config/ia64/hpux.h (TARGET_SECTION_TYPE_FLAGS): Don't define.
4645         (TARGET_RWRELOC): Define.
4646
4647 2005-01-10  David Mosberger  <davidm@hpl.hp.com>
4648
4649         PR target/18987
4650         * config/ia64/ia64.c (process_set): For alloc insn, only call
4651         process_epilogue is !frame_pointer_needed.
4652
4653 2005-01-10  Roger Sayle  <roger@eyesopen.com>
4654
4655         PR c++/19355
4656         * c-common.c (c_common_truthvalue_conversion): TRUTH_NOT_EXPR is a
4657         unary operator and can't be treated as a binary/comparison operator.
4658
4659 2005-01-10  Richard Henderson  <rth@redhat.com>
4660
4661         * config/i386/i386.c (ix86_function_value): Use type_natural_mode.
4662         (ix86_return_in_memory): Likewise.
4663         (function_arg_advance):  Likewise.  Mirror structure in function_arg
4664         for choosing register to advance.
4665
4666 2005-01-10  Kazu Hirata  <kazu@cs.umass.edu>
4667
4668         * tree-vectorizer.c, tree.def: Fix comment typos.
4669
4670 2005-01-10  Mark Dettinger  <dettinge@de.ibm.com>
4671
4672         * config/s390/s390.c (struct processor_costs): 4 new fields:
4673         ddbr, ddr, debr, der.
4674         (s390_rtx_costs): More precise handling of divide instructions.
4675
4676 2005-01-10  David Edelsohn  <edelsohn@gnu.org>
4677
4678         * config/rs6000/t-aix43 (BOOT_LDFLAGS): Define.
4679
4680 2005-01-10  Jan Beulich  <jbeulich@novell.com>
4681
4682         * config/ia64/ia64.c (ia64_in_small_data_p): Also handle the section
4683         names resulting from -ffunction-sections/-fdata-sections and linkonce
4684         ones.
4685         * varasm.c (default_section_type_flags_1): Also set SECTION_SMALL
4686         based on the section name. Rearrange the section name comparison logic
4687         slightly so that each section name is compared against at most once.
4688
4689 2005-01-10  Ben Elliston  <bje@au.ibm.com>
4690
4691         * doc/invoke.texi (Code Gen Options): Add PowerPC to the list of
4692         targets for which -fPIC reduces limitations on the GOT size.
4693
4694 2005-01-09  Falk Hueffner  <falk@debian.org>
4695
4696         * fold-const.c (fold): Also handle EXACT_DIV_EXPR when folding
4697         X/C1 cmpop C2.
4698
4699 2005-01-09  David Edelsohn  <edelsohn@gnu.org>
4700
4701         PR target/18720
4702         * collect2.c (main): Set aixrtl_flag for -brtl option.
4703         (resolve_lib_name): Search for .so file extension before .a
4704         if aixrtl_flag set.
4705
4706 2005-01-09  Dorit Naishlos  <dorit@il.ibm.com>
4707
4708         * tree-vectorizer.c (vect_enhance_data_refs_alignment): Add dump prints.
4709         (vect_analyze_data_refs_alignment): Add dump prints.
4710
4711 2005-01-09  Ira Rosen  <irar@il.ibm.com>
4712
4713         * tree-vectorizer.c (vect_analyze_offset_expr): Use
4714         expr_invariant_in_loop_p.
4715         Initialize outputs first thing in the function.
4716         (vect_update_ivs_after_vectorizer): Call initial_condition_in_loop_num.
4717         (vect_is_simple_iv_evolution): Call initial_condition_in_loop_num.
4718         (vect_analyze_pointer_ref_access): Check that the initial condition of
4719         the access function is loop invariant.
4720
4721 2005-01-09  Richard Henderson  <rth@redhat.com>
4722
4723         * config/i386/i386.c (bdesc_2arg): Update names for mmx_ prefixes.
4724         (ix86_expand_builtin): Likewise.  Frob MASKMOVQ wrt the input mem
4725         just like MASKMOVDQU.  Return plain zero for MMX_ZERO.
4726         * config/i386/i386.md (MMXMODEI, mov<MMXMODEI>,
4727         mov<MMXMODEI>_internal_rex64, mov<MMXMODEI>_internal, movv2sf,
4728         movv2sf_internal_rex64, movv2sf_internal, MMXMODE,
4729         movmisalign<MMXMODE>, mmx_pmovmskb, mmx_maskmovq, mmx_maskmovq_rex,
4730         sse_movntdi, addv8qi3, addv4hi3, addv2si3, mmx_adddi3, ssaddv8qi3,
4731         ssaddv4hi3, usaddv8qi3, usaddv4hi3, subv8qi3, subv4hi3, subv2si3,
4732         mmx_subdi3, sssubv8qi3, sssubv4hi3, ussubv8qi3, ussubv4hi3,
4733         mulv4hi3, smulv4hi3_highpart, umulv4hi3_highpart, mmx_pmaddwd,
4734         sse2_umulsidi3, mmx_iordi3, mmx_xordi3, mmx_anddi3, mmx_nanddi3,
4735         mmx_uavgv8qi3, mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pinsrw,
4736         mmx_pextrw, mmx_pshufw, eqv8qi3, eqv4hi3, eqv2si3, gtv8qi3, gtv4hi3,
4737         gtv2si3, umaxv8qi3, smaxv4hi3, uminv8qi3, sminv4hi3, ashrv4hi3,
4738         ashrv2si3, lshrv4hi3, lshrv2si3, mmx_lshrdi3, ashlv4hi3, ashlv2si3,
4739         mmx_ashldi3, mmx_packsswb, mmx_packssdw, mmx_packuswb, mmx_punpckhbw,
4740         mmx_punpckhwd, mmx_punpckhdq, mmx_punpcklbw, mmx_punpcklwd,
4741         mmx_punpckldq, emms, addv2sf3, subv2sf3, subrv2sf3, gtv2sf3, gev2sf3,
4742         eqv2sf3, pfmaxv2sf3, pfminv2sf3, mulv2sf3, femms, pf2id, pf2iw,
4743         pfacc, pfnacc, pfpnacc, pi2fw, floatv2si2, pfrcpv2sf2, pfrcpit1v2sf3,
4744         pfrcpit2v2sf3, pfrsqrtv2sf2, pfrsqit1v2sf3, pmulhrwv4hi3, pswapdv2si2,
4745         pswapdv2sf2): Move to mmx.md; rename as necessary with leading
4746         mmx_ prefix.
4747         (mmx_clrdi, pavgusb): Remove.
4748         (ldmxcsr, stmxcsr, sfence, sfence_insn): Move to sse.md; rename
4749         with leading sse_ prefix.
4750         * config/i386/sse.md: Receive them.
4751         * config/i386/mmx.md: New file.
4752         (MMXMODE12, MMXMODE24, mmxvecsize): New.
4753         (subrv2sf3): Turn into expander for normal subtraction.
4754         (mmx_addv2sf3, mmx_mulv2sf3, mmx_smaxv2sf3, mmx_sminv2sf3,
4755         mmx_eqv2sf3, mmx_mulv4hi3, mmx_smulv4hi3_highpart,
4756         mmx_umulv4hi3_highpart, mmx_pmaddwd, mmx_pmulhrwv4hi3, sse2_umulsidi3,
4757         mmx_umaxv8qi3, mmx_smaxv4hi3, mmx_uminv8qi3, mmx_sminv4hi3): Mark
4758         commutative; use ix86_binary_operator_ok.
4759         (mmx_add<MMXMODEI>3, mmx_ssadd<MMXMODE12>3, mmx_usadd<MMXMODE12>3,
4760         mmx_sub<MMXMODEI>3, mmx_sssub<MMXMODE12>3, mmx_ussub<MMXMODE12>3
4761         mmx_ashr<MMXMODE24>3, mmx_lshr<MMXMODE23>3, mmx_ashl<MMXMODE24>3
4762         mmx_eq<MMXMODEI>3, mmx_gt<MMXMODEI>3, mmx_and<MMXMODEI>3,
4763         mmx_nand<MMXMODEI>3, mmx_ior<MMXMODEI>3, mmx_xor<MMXMODEI>3):
4764         Macroize from existing patterns; use ix86_binary_operator_ok.
4765         (mmx_packsswb, mmx_packssdw, mmx_packuswb): Add memory alternative.
4766         (mmx_punpckhbw, mmx_punpcklbw, mmx_punpckhwd, mmx_punpcklwd,
4767         mmx_punpckhdq, mmx_punpckhdq, mmx_punpckldq): Likewise.  Model
4768         with vec_select+vec_concat.
4769         (mmx_pshufw, mmx_pshufw_1): Likewise.
4770         (mmx_uavgv8qi3): Merge pavgusb.  Model correcty.
4771         (mmx_uavgv4hi3): Model correctly.
4772         * config/i386/mmintrin.h (_mm_and_si64, _mm_andnot_si64, _mm_or_si64,
4773         _mm_xor_si64): Remove casts.
4774
4775 2005-01-09  Zdenek Dvorak  <dvorakz@suse.cz>
4776
4777         PR tree-optimization/19224
4778         * tree-scalar-evolution.c (get_instantiated_value,
4779         set_instantiated_value): New functions.
4780         (instantiate_parameters_1): Cache the results.
4781         (instantiate_parameters, resolve_mixers): Initialize and free
4782         the cache.
4783
4784 2005-01-08  David Edelsohn  <edelsohn@gnu.org>
4785
4786         * config/i386/i386.md (addhi_4): Correct reference in comment.
4787         (addqi_4): Same.
4788
4789 2005-01-08  Richard Henderson  <rth@redhat.com>
4790
4791         * config/i386/emmintrin.h (_mm_cvtsi128_si32): Move earlier.
4792         (_mm_cvtsi128_si64x): Likewise.
4793         (_mm_srl_epi64, _mm_srl_epi32, _mm_srl_epi16, _mm_sra_epi32,
4794         _mm_sra_epi16, _mm_sll_epi64, _mm_sll_epi32, _mm_sll_epi16): Use
4795         the _mm_{srl,sll}i_foo counterpart, and _mm_cvtsi128_si32.
4796         * config/i386/i386-modes.def: Add V16HI, V32QI, V4DF, V8SF.
4797         * config/i386/i386-protos.h: Update.
4798         * config/i386/i386.c (print_operand): Add 'H'.
4799         (ix86_fixup_binary_operands): Split out from ...
4800         (ix86_expand_binary_operator): ... here.
4801         (ix86_fixup_binary_operands_no_copy): New.
4802         (ix86_expand_fp_absneg_operator): Handle vector mode results.
4803         (bdesc_2arg): Update names for sse{,2,3}_ prefixes.
4804         (ix86_init_mmx_sse_builtins): Remove *maskncmp* special cases.
4805         (safe_vector_operand): Use CONST0_RTX.
4806         (ix86_expand_binop_builtin): Use ix86_fixup_binary_operands.
4807         (ix86_expand_builtin): Merge CODE_FOR_sse2_maskmovdqu_rex64 and
4808         CODE_FOR_sse2_maskmovdqu.  Special case SSE version of MASKMOVDQU
4809         expansion.  Update names for sse{,2,3}_ prefixes.  Remove *maskncmp*
4810         special cases.
4811         * config/i386/i386.h (IX86_BUILTIN_CMPNGTSS): New.
4812         (IX86_BUILTIN_CMPNGESS): New.
4813         * config/i386/i386.md (UNSPEC_FIX_NOTRUNC): New.
4814         (attr type): Add sselog1.
4815         (attr unit, attr memory): Handle it.
4816         (movti, movti_internal, movti_rex64): Move near other integer moves.
4817         (movtf, movtf_internal): Move near other fp moves.
4818         (SSEMODE, SSEMODEI, vec_setv2df, vec_extractv2df, vec_initv2df,
4819         vec_setv4sf, vec_extractv4sf, vec_initv4sf, movv4sf, movv4sf_internal,
4820         movv2df, movv2df_internal, mov<SSEMODEI>, mov<SSEMODEI>_internal,
4821         movmisalign<SSEMODE>, sse_movups_1, sse_movmskps, sse_movntv4sf,
4822         sse_movhlps, sse_movlhps, sse_storehps, sse_loadhps, sse_storelps,
4823         sse_loadlps, sse_loadss, sse_loadss_1, sse_movss, sse_storess,
4824         sse_shufps, addv4sf3, vmaddv4sf3, subv4sf3, vmsubv4sf3, negv4sf2,
4825         mulv4sf3, vmmulv4sf3, divv4sf3, vmdivv4sf3, rcpv4sf2, vmrcpv4sf2,
4826         rsqrtv4sf2, vmrsqrtv4sf2, sqrtv4sf2, vmsqrtv4sf2, sse_andv4sf3,
4827         sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3, sse2_andv2df3,
4828         sse2_nandv2df3, sse2_iorv2df3, sse2_xorv2df3, sse2_andv2di3,
4829         sse2_nandv2di3, sse2_iorv2di3, sse2_xorv2di3, maskcmpv4sf3,
4830         vmmaskcmpv4sf3, sse_comi, sse_ucomi, sse_unpckhps, sse_unpcklps,
4831         smaxv4sf3, vmsmaxv4sf3, sminv4sf3, vmsminv4sf3, cvtpi2ps, cvtps2pi,
4832         cvttps2pi, cvtsi2ss, cvtsi2ssq, cvtss2si, cvtss2siq, cvttss2si,
4833         cvttss2siq, addv2df3, vmaddv2df3, subv2df3, vmsubv2df3, mulv2df3,
4834         vmmulv2df3, divv2df3, vmdivv2df3, smaxv2df3, vmsmaxv2df3, sminv2df3,
4835         vmsminv2df3, sqrtv2df2, vmsqrtv2df2, maskcmpv2df3, vmmaskcmpv2df3,
4836         sse2_comi, sse2_ucomi, sse2_movmskpd, sse2_pmovmskb, sse2_maskmovdqu,
4837         sse2_maskmovdqu_rex64, sse2_movntv2df, sse2_movntv2di, sse2_movntsi,
4838         cvtdq2ps, cvtps2dq, cvttps2dq, cvtdq2pd, cvtpd2dq, cvttpd2dq,
4839         cvtpd2pi, cvttpd2pi, cvtpi2pd, cvtsd2si, cvtsd2siq, cvttsd2si,
4840         cvttsd2siq, cvtsi2sd, cvtsi2sdq, cvtsd2ss, cvtss2sd, cvtpd2ps,
4841         cvtps2pd, addv16qi3, addv8hi3, addv4si3, addv2di3, ssaddv16qi3,
4842         ssaddv8hi3, usaddv16qi3, usaddv8hi3, subv16qi3, subv8hi3, subv4si3,
4843         subv2di3, sssubv16qi3, sssubv8hi3, ussubv16qi3, ussubv8hi3, mulv8hi3,
4844         smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3,
4845         sse2_umulv2siv2di3, sse2_pmaddwd, sse2_uavgv16qi3, sse2_uavgv8hi3,
4846         sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd, sse2_pshuflw,
4847         sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3, gtv8hi3,
4848         gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3, ashrv8hi3,
4849         ashrv4si3, lshrv8hi3, lshrv4si3, lshrv2di3, ashlv8hi3, ashlv4si3,
4850         ashlv2di3, sse2_ashlti3, sse2_lshrti3, sse2_unpckhpd, sse2_unpcklpd,
4851         sse2_packsswb, sse2_packssdw, sse2_packuswb, sse2_punpckhbw,
4852         sse2_punpckhwd, sse2_punpckhdq, sse2_punpcklbw, sse2_punpcklwd,
4853         sse2_punpckldq, sse2_punpcklqdq, sse2_punpckhqdq, sse2_movupd,
4854         sse2_movdqu, sse2_movdq2q, sse2_movdq2q_rex64, sse2_movq2dq,
4855         sse2_movq2dq_rex64, sse2_loadd, sse2_stored, sse2_storehpd,
4856         sse2_loadhpd, sse2_storelpd, sse2_loadlpd, sse2_movsd, sse2_loadsd,
4857         sse2_loadsd_1, sse2_storesd, sse2_shufpd, sse2_clflush, sse2_mfence,
4858         mfence_insn, sse2_lfence, lfence_insn, mwait, monitor, addsubv4sf3,
4859         addsubv2df3, haddv4sf3, haddv2df3, hsubv4sf3, hsubv2df3, movshdup,
4860         movsldup, lddqu, loadddup, movddup): Move to sse.md.  Any with
4861         non-optabs meanings renamed with an "sse{,2,3}_" prefix at the
4862         same time.
4863         (SSEPUSH, push<SSEPUSH>): Remove.
4864         (MMXPUSH, push<MMXPUSH>): Remove.
4865         (sse_movaps, sse_movaps_1, sse_movups): Remove.
4866         (sse2_movapd, sse2_movdqa, sse2_movq): Remove.
4867         (sse2_andti3, sse2_nandti3, sse2_iorti3, sse2_xorti3): Remove.
4868         (sse_clrv4sf, sse_clrv2df, sse2_clrti): Remove.
4869         (maskncmpv4sf3, vmmaskncmpv4sf3): Remove.
4870         (maskncmpv2df3, vmmaskncmpv2df3): Remove.
4871         (ashrv8hi3_ti, ashrv4si3_ti, lshrv8hi3_ti, lshrv4si3_ti): Remove.
4872         (lshrv2di3_ti, ashlv8hi3_ti, ashlv4si3_ti, ashlv2di3_ti): Remove.
4873         * config/i386/athlon.md (athlon_sselog_load): Handle sselog1.
4874         (athlon_sselog_load_k8, athlon_sselog, athlon_sselog_k8): Likewise.
4875         * config/i386/ppro.md (ppro_sse_div_V4SF_load): Fix memory attr.
4876         (ppro_sse_log_V4SF_load): Similarly.  Handle sselog1.
4877         (ppro_sse_log_V4SF): Handle sselog1.
4878         * config/i386/predicates.md (const_0_to_1_operand): New.
4879         (const_0_to_255_mul_8_operand): New.
4880         (const_1_to_31_operand): Rename from const_int_1_31_operand.
4881         (const_2_to_3_operand, const_4_to_7_operand): New.
4882         * config/i386/sse.md: New file.
4883         (SSEMODE12, SSEMODE24, SSEMODE124, SSEMODE248, ssevecsize): New.
4884         (sse_movups): Rename from sse_movups_1.
4885         (sse_loadlss): Rename from sse_loadss_1.
4886         (andv4sf3, iorv4sf3, xorv4sf3, andv2df3): Remove the sse prefix
4887         from the name.
4888         (negv4sf2): Use ix86_expand_fp_absneg_operator.
4889         (absv4sf2, negv2df, absv2df): New.
4890         (addv4sf3): Add expander to call ix86_fixup_binary_operands_no_copy.
4891         (subv4sf3, mulv4sf3, divv4sf3, smaxv4sf3, sminv4sf3, andv4sf3,
4892         iorv4sf3, xorv4sf3, addv2df3, subv2df3, mulv2df3, divv2df3,
4893         smaxv2df3, sminv2df3, andv2df3, iorv2df3, xorv2df3, mulv8hi3,
4894         umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3): Likewise.
4895         (sse3_addsubv4sf3): Model correctly.
4896         sse3_haddv4sf3, sse3_hsubv4sf3, sse3_addsubv2df3, sse3_haddv2df3,
4897         sse3_hsubv2df3, sse2_ashlti3, sse2_lshrti3): Likewise.
4898         (sse_movhlps): Model with vec_select+vec_concat.
4899         (sse_movlhps, sse_unpckhps, sse_unpcklps, sse3_movshdup,
4900         sse3_movsldup, sse_shufps, sse_shufps_1, sse2_unpckhpd, sse3_movddup,
4901         sse2_unpcklpd, sse2_shufpd, sse2_shufpd_1, sse2_punpckhbw,
4902         sse2_punpcklbw, sse2_punpckhwd, sse2_punpcklwd, sse2_punpckhdq,
4903         sse2_punpckldq, sse2_punpckhqdq, sse2_punpcklqdq, sse2_pshufd,
4904         sse2_pshufd_1, sse2_pshuflw, sse2_pshuflw_1, sse2_pshufhw,
4905         sse2_pshufhw_1): Likewise.
4906         (neg<SSEMODEI>2, one_cmpl<SSEMODEI>2): New.
4907         (add<SSEMODEI>3, sse2_ssadd<SSEMODE12>3, sse2_usadd<SSEMODE12>3,
4908         sub<SSEMODEI>3, sse2_sssub<SSEMODE12>3, sse2_ussub<SSEMODE12>3,
4909         ashr<SSEMODE24>3, lshr<SSEMODE248>3, sse2_eq<SSEMODE124>3,
4910         sse2_gt<SSEMODDE124>3, and<SSEMODEI>3, sse_nand<SSEMODEI>3,
4911         ior<SSEMODEI>3, xor<SSEMODEI>3): Macroize from existing patterns.
4912         (addv4sf3, sse_vmaddv4sf3, mulv4sf3, sse_vmmulv4sf3, smaxv4sf3,
4913         sse_vmsmaxv4sf3, sminv4sf3, sse_vmsminv4sf3, addv2df3, sse2_vmaddv2df3,
4914         mulv2df3, sse2_vmmulv2df3, smaxv2df3, sse2_vmsmaxv2df3, sminv2df3,
4915         sse2_vmsminv2df3, umaxv16qi3, smaxv8hi3, uminv16qi3
4916         sminv8hi3): Mark commutative
4917         operands.  Use ix86_binary_operator_ok.
4918         (sse_unpckhps, sse_unpcklps, sse2_packsswb, sse2_packssdw,
4919         sse2_packuswb, sse2_punpckhbw, sse2_punpcklbw, sse2_punpckhwd,
4920         sse2_punpcklwd, sse2_punpckhdq, sse2_punpckldq, sse2_punpckhqdq,
4921         sse2_punpcklqdq): Allow operand2 in memory.
4922         (sse_movhlps, sse_movlhps, sse2_unpckhpd, sse2_unpcklpd
4923         sse2_movsd): Add memory alternatives.
4924         (sse_storelps): Turn expander into an insn; split after reload.
4925         (sse_storess, sse2_loadhpd, sse2_loadlpd): Add non-xmm inputs.
4926         (sse2_storehpd, sse2_storelpd): Add non-xmm outputs.
4927
4928 2005-01-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
4929
4930         * configure.ac (DWARF-2 debug_line): Use objdump.
4931         * configure: Regenerate.
4932
4933 2005-01-08  Jeff Law  <law@redhat.com>
4934             Diego Novillo  <dnovillo@redhat.com>
4935
4936         PR tree-optimization/18241
4937         * tree-nrv.c (tree_nrv): Ignore volatile return values.
4938         * tree-ssa-dse.c (dse_optimize_stmt): Do not optimize
4939         statements with volatile operands.
4940         * tree-ssa-operands.c (add_stmt_operand): Do add volatile
4941         operands after marking a statement with has_volatile_ops.
4942
4943 2005-01-08  Roger Sayle  <roger@eyesopen.com>
4944
4945         * tree.c (int_fits_type_p): Always honor integer constant
4946         TYPE_MIN_VALUE and TYPE_MAX_VALUE if they exist.
4947
4948 2005-01-08  Roger Sayle  <roger@eyesopen.com>
4949
4950         * ifcvt.c (find_if_case_1): Reinstate 2005-01-04 change, now that
4951         the latent bug in rtl_delete_block has been resolved.
4952
4953 2005-01-08  Richard Sandiford  <rsandifo@redhat.com>
4954
4955         * config/mips/t-iris6 (MULTILIB_DIRNAMES): Use -mabi argument values.
4956         (MULTILIB_OSDIRNAMES): Use the standard lib, lib32 and lib64.
4957
4958 2005-01-08  Richard Sandiford  <rsandifo@redhat.com>
4959
4960         * config/mips/t-slibgcc-irix (SHLIB_LINK): Install a copy of the
4961         library as @multilib_dir@/$(SHLIB_SONAME).
4962
4963 2005-01-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
4964
4965         * configure.ac (HAVE_AS_OFFSETABLE_LO10): Fix typo.
4966         * configure: Regenerate.
4967
4968 2005-01-07  Jakub Jelinek  <jakub@redhat.com>
4969
4970         * c-common.c (handle_mode_attribute): For ENUMERAL_TYPE, also copy
4971         TYPE_MODE.
4972
4973 2005-01-07  David Edelsohn  <edelsohn@gnu.org>
4974
4975         PR target/13674
4976         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
4977         Convert non-word aligned offset address using ld/std into
4978         indirect address.
4979
4980 2005-01-07  Richard Henderson  <rth@redhat.com>
4981
4982         * config/i386/i386.md (sse_loadhps splitter): Fix operand number typo.
4983
4984 2005-01-07  Richard SAndiford  <rsandifo@redhat.com>
4985
4986         * tree.h (IS_EXPR_CODE_CLASS): Use a straight-forward range check.
4987
4988 2005-01-07  Jakub Jelinek  <jakub@redhat.com>
4989
4990         PR tree-optimization/19283
4991         * fold-const.c (fold_widened_comparison): Return NULL if shorter_type
4992         is not shorter than the original type.
4993
4994         PR rtl-optimization/19012
4995         * config/i386/i386.md (addqi_1_slp): Set memory attribute.
4996
4997         PR rtl-optimization/18861
4998         * cfgbuild.c (BLOCK_USED_BY_TABLEJUMP): Define.
4999         (FULL_STATE): Define.
5000         (mark_tablejump_edge): New function.
5001         (purge_dead_tablejump_edges): New function.
5002         (find_bb_boundaries): Use it.
5003
5004         PR tree-optimization/18828
5005         * builtins.c (expand_builtin_next_arg): Remove argument and all
5006         the argument checking.
5007         (expand_builtin): Adjust caller.
5008         (expand_builtin_va_start): Likewise.  Remove error for too many
5009         arguments.
5010         (fold_builtin_next_arg): Issue error for too many arguments.
5011         After checking arguments, replace them with magic arguments that
5012         prevent further checking of the args.
5013
5014 2005-01-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5015
5016         * pa64-hpux.h (STARTFILE_SPEC): Fix typo in spec.
5017
5018 2005-01-06  Roger Sayle  <roger@eyesopen.com>
5019
5020         PR target/6077
5021         * gcc.c (input_suffix_matches): Tweak the semantics of %{.s:...}
5022         and %{.S:...} (and their negative variants) to test whether the
5023         input file is assembler or pre-processed-assembler independent of
5024         the actual filename extension.
5025
5026 2005-01-06  Roger Sayle  <roger@eyesopen.com>
5027
5028         * simplify-rtx.c (simplify_subreg): Simplify truncations of shifts
5029         of sign or zero extended values.
5030
5031 2005-01-06  Geoffrey Keating  <geoffk@apple.com>
5032
5033         * c-cppbuiltin.c (builtin_define_float_constants): Set __*_EPSILON__
5034         for IBM long double format correctly.
5035
5036 2005-01-06  Daniel Berlin <dberlin@dberlin.org>
5037
5038         Fix PR tree-optimization/18792
5039
5040         * tree-data-ref.c (build_classic_dist_vector): Change first_loop
5041         to first_loop_depth, and use loop depth instead of loop number.
5042         (build_classic_dir_vector): Ditto.
5043         (compute_data_dependences_for_loop): Use depth, not loop number.
5044         * tree-loop-linear.c (try_interchange_loops): Use loop depth, not loop
5045         number. Pass in loops, instead of loop numbers.
5046         (gather_interchange_stats): Ditto.
5047         (linear_transform_loops): Ditto.
5048
5049 2005-01-06  Richard Sandiford  <rsandifo@redhat.com>
5050
5051         PR rtl-opt/13299
5052         * loop.c (get_monotonic_increment, biased_biv_fits_mode_p,
5053         biv_fits_mode_p, extension_within_bounds_p): New functions.
5054         (check_ext_dependent_givs): Use them.
5055
5056 2005-01-06  Roger Sayle  <roger@eyesopen.com>
5057
5058         * cfgrtl.c (rtl_delete_block): A basic block may be followed by
5059         more than one barrier, in which case we should delete them all.
5060
5061 2005-01-06  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
5062
5063         * gcc.c (process_command): Change year in 'gcc --version' to 2005.
5064
5065 2005-01-05  Daniel Berlin  <dberlin@dberlin.org>
5066
5067         Fix PR middle-end/19286
5068         Fix PR debug/19267
5069         * dwarf2out.c (gen_subprogram_die): If we've already tried to
5070         output this subprogram, simply ignore this attempt to do it again.
5071         (add_abstract_origin_attribute): Don't abort trying to add the abstract
5072         origin attribute if it's not possible.
5073         (gen_block_die): Don't ignore subblocks of "unused" blocks.
5074         (decls_for_scope): Ditto.
5075         * gimple-low.c (mark_blocks_with_used_subblocks): Remove.
5076         (mark_used_blocks): Don't call mark_blocks_with_used_subblocks.
5077
5078 2005-01-05  Richard Henderson  <rth@redhat.com>
5079
5080         PR target/11327
5081         * config/i386/i386.c (BUILTIN_DESC_SWAP_OPERANDS): New.
5082         (bdesc_2arg): Use it.
5083         (ix86_expand_binop_builtin): Force operands into registers
5084         when optimizing.
5085         (ix86_expand_unop_builtin, ix86_expand_unop1_builtin,
5086         ix86_expand_sse_compare, ix86_expand_sse_comi,
5087         ix86_expand_builtin): Likewise.
5088
5089 2005-01-05  Richard Henderson  <rth@redhat.com>
5090
5091         * config/ia64/ia64.c (rtx_needs_barrier): Handle CONST_VECTOR
5092         and VEC_SELECT.
5093         * config/ia64/vect.md (mulv8qi3): Re-implement with mix_[rl].
5094         (mulv4hi3): Set itanium_class mmmul.
5095         (fpack_sfxf, fpack_xfsf, fpack_xfxf): Remove.
5096         (fpack): Rename from fpack_sfsf.
5097
5098 2005-01-05  Richard Henderson  <rth@redhat.com>
5099
5100         PR rtl-opt/10692
5101         * reload1.c (do_input_reload): Restrict the optimization deleteing
5102         a previous output reload to RELOAD_FOR_INPUT.
5103
5104 2005-01-05  Steven Bosscher  <stevenb@suse.de>
5105
5106         * combine.c (expand_compound_operation)  <ZERO_EXTRACT>: Add
5107         comment that we fall through after case.
5108         (mark_used_regs_combine): Don't expect a SIGN_EXTRACT in a SET_DEST.
5109         (distribute_links): Likewise.
5110         * cse.c (cse_insn): Likewise.
5111         * cselib.c (cselib_invalidate_mem): Likewise.
5112         * df.c: Update comments at the top of the file.
5113         (read_modify_subreg_p): Update comments here too.
5114         (df_def_record_1): Don't expect a SIGN_EXTRACT in a SET_DEST.
5115         * flow.c (mark_set_1): Likewise.
5116         (mark_used_regs): Likewise.
5117         * gcse.c (mems_conflict_for_gcse_p): Likewise.
5118         (canon_list_insert): Likewise.
5119         (mark_set): Likewise.
5120         (try_replace_reg): Likewise.
5121         (store_killed_in_insn): Likewise.
5122         * loop.c (count_one_set): Likewise.
5123         (basic_induction_var): Likewise.
5124         * postreload-gcse.c (find_mem_conflicts): Likewise.
5125         * postreload.c (reload_combine_note_store): Likewise.
5126         (move2add_note_store): Likewise.
5127         * reload.c (find_equiv_reg): Likewise.
5128         (mark_referenced_resources): Likewise.
5129         * rtlanal.c (set_noop_p): Likewise.
5130         (note_stores): Likewise.
5131         (note_uses): Likewise.
5132         * sched-deps.c (sched_analyze_1): Likewise.
5133         * sched-rgn.c (check_live_1): Likewise.
5134         (update_live_1): Likewise.
5135         * config/i860/i860.c: Likewise.
5136
5137         * rtl.dec (SIGN_EXTRACT): Document that this cannot appear as
5138         an lvalue.
5139         (ZERO_EXTRACT): Mention that this one can be an lvalue.
5140
5141         * doc/rtl.texi: Update documentation for bit-fields and SET.
5142
5143 2005-01-05  Roger Sayle  <roger@eyesopen.com>
5144
5145         * ifcvt.c (find_if_case_1): Revert 2005-01-04 change.
5146
5147 2005-01-05  Jan Hubicka  <jh@suse.cz>
5148             Richard Henderson  <rth@redhat.com>
5149
5150         PR target/18910
5151         * config/i386/i386.c (ix86_expand_move): Handle tls symbols
5152         with an offset.
5153
5154 2005-01-05  Richard Henderson  <rth@redhat.com>
5155
5156         PR target/12902
5157         * config/i386/i386.md (sse_movhps, sse_movlps): Remove.
5158         (sse_shufps): Change operand 3 to const_int_operand.
5159         (sse2_storelps): Fix typo in template.
5160         (sse_storehps, sse_loadhps, sse_storelps, sse_loadlps): New.
5161         * config/i386/i386.c (ix86_expand_vector_move_misalign): Use them.
5162         (ix86_expand_builtin): Likewise.
5163
5164 2005-01-05  Julian Brown  <julian@codesourcery.com>
5165
5166         * config/arm/arm.c (arm_return_in_memory): Treat complex types
5167         as aggregates for AAPCS ABIs.
5168
5169 2005-01-05  Stan Shebs  <shebs@apple.com>
5170
5171         * unwind-dw2-fde-darwin.c (examine_objects): Use 64-bit
5172         Mach-O getters if ppc64.
5173         * config/darwin.c (darwin_asm_output_dwarf_delta): Obey
5174         size argument.
5175         * config/darwin.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
5176         signed four-byte field for global code case.
5177         (STARTFILE_SPEC): Avoid crt2.o for 64-bit compilation.
5178
5179 2005-01-05  Roger Sayle  <roger@eyesopen.com>
5180
5181         PR middle-end/19100
5182         * c-common.c: Include real.h.
5183         (c_common_truthvalue_conversion): Avoid destructively modifying expr.
5184         Correctly handle TREE_CONSTANT_OVERFLOW for INTEGER_CST.
5185         Correctly handle TREE_CONSTANT_OVERFLOW and NaNs for REAL_CST.
5186         * Makefile.in (c-common.o): Update dependencies.
5187
5188 2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
5189
5190         * c-parse.in (asm_string): Add trailing semicolon.
5191
5192 2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
5193
5194         * c-parse.in (asm_string): New.  Don't allow wide strings in
5195         'asm'.
5196         (simple_asm_expr, asm_argument, asm_operand, asm_clobbers): Use
5197         asm_string instead of STRING.
5198
5199 2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
5200
5201         * c-typeck.c (constructor_no_implicit): Remove.
5202         (set_designator, process_init_element): Don't check
5203         constructor_no_implicit.
5204
5205 2005-01-05  J"orn Rennecke <joern.rennecke@st.com>
5206             Kaz Kojima  <kkojima@gcc.gnu.org>
5207
5208         PR target/16482
5209         * lcm.c (create_pre_exit): New.
5210         (optimize_mode_switching): In MODE_ENTRY / MODE_EXIT case, set
5211         ENTRY_EXIT_EXTRA to 3.  Use create_pre_exit.
5212
5213 2004-01-05  Richard Earnshaw  <rearnsha@arm.com>
5214
5215         * arm.h (TARGET_OPTIONS): Correctly record -mhard-float and
5216         -msoft-float in target_float_switch.
5217         * arm.c (arm_override_options): Fix processing of target_float_switch.
5218
5219 2004-01-05  Richard Earnshaw  <rearnsha@arm.com>
5220
5221         * arm/vfp.md (arm_movsi_vfp): Hide VFP register classes from register
5222         preferencing.
5223
5224 2004-01-05  Uros Bizjak  <uros@kss-loka.si>
5225
5226         * doc/invoke.texi (Intel 386 and AMD x86-64 Options):
5227         Replace i387 with 'i386 compiler' in -mfpmath=sse option.
5228
5229 2005-01-04  Roger Sayle  <roger@eyesopen.com>
5230
5231         * ifcvt.c (find_if_case_1): Avoid creating an empty forwarder block,
5232         if deleting the then-block allows the test-block to fallthru to the
5233         else-block.
5234
5235 2005-01-04  Andrew Pinski  <pinskia@physics.uc.edu>
5236
5237         PR c/19152
5238         * c-decl.c (diagnose_mismatched_decls): Accept "extern inline" declared
5239         after the full declaration if the are in two different TUs.
5240
5241 2005-01-04  Richard Henderson  <rth@redhat.com>
5242
5243         PR tree-opt/19158
5244         * tree-sra.c (generate_one_element_init): Just
5245         call gimplify_and_add.
5246         (generate_element_init): Record the
5247         new referenced variables and mark them for renaming
5248         and split out to ...
5249         (generate_element_init_1): This.
5250         (scalarize_init): Don't call push_gimplify_context/
5251         pop_gimplify_context.
5252
5253 2005-01-04  Geoffrey Keating  <geoffk@apple.com>
5254
5255         * toplev.c (get_src_pwd): Handle failure of getpwd().
5256
5257 2005-01-04  Roger Sayle  <roger@eyesopen.com>
5258
5259         * fold-const.c (fold_single_bit_test): Delete unreachable handling
5260         of TRUTH_NOT_EXPR.
5261         (fold): Don't call fold_single_bit_test with a TRUTH_NOT_EXPR, as
5262         all the cases handled by it are inverted by invert_truthvalue.
5263
5264 2005-01-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
5265
5266         * config/sparc/sparc.md (save_register_windowdi): Add missing mode.
5267         (save_register_windowsi): Likewise.
5268
5269 2005-01-04  Richard Henderson  <rth@redhat.com>
5270
5271         * tree-mudflap.c (mf_varname_tree): Fix thinko setting declname.
5272
5273 2005-01-04  Uros Bizjak  <uros@kss-loka.si>
5274
5275         PR middle-end/17767
5276         * cse.c (fold_rtx) [RTX_COMPARE, RTX_COMM_COMPARE]: Don't attempt
5277         any simplifications of vector mode comparison operators.
5278         * simplify-rtx.c (simplify_relational_operation): Fix variable name.
5279
5280 2005-01-04  Paolo Bonzini  <bonzini@gnu.org>
5281             Devang Patel  <dpatel@apple.com>
5282
5283         PR tree-optimization/18308
5284         * tree-if-conv.c (add_to_dst_predicate_list): Gimplify
5285         the operands before creating a new expression.
5286         * dojump.c (do_jump): Make drop_through_label available
5287         for all cases.  Add expansion of COND_EXPR.
5288
5289 2005-01-04  Ira Rosen  <irar@il.ibm.com>
5290
5291         * tree-vectorizer.c (vect_analyze_offset_expr): Test for
5292         INTEGER_CST instead of TREE_CONSTANT.
5293         (vect_gen_niters_for_prolog_loop): Test for INTEGER_CST
5294         instead of TREE_CONSTANT.
5295         (vect_analyze_pointer_ref_access): Test for INTEGER_CST
5296         instead of TREE_CONSTANT.
5297
5298 2005-01-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
5299
5300         * tree-eh.c (replace_goto_queue): Return early if the queue is empty.
5301
5302 2005-01-04  Uros Bizjak  <uros@kss-loka.si>
5303
5304         PR target/19240
5305         * config/i386/i386.md (*fop_df_1_i387): Disable for TARGET_SSE_MATH.
5306         (*fop_df_1_i387): Disable for (TARGET_SSE2 && TARGET_SSE_MATH).
5307
5308 2005-01-03  Richard Henderson  <rth@redhat.com>
5309
5310         * fold-const.c (force_fit_type): Cope with types larger than 2 HWI.
5311         (fold_convert_const_int_from_int, fold_convert_const_int_from_real,
5312         fold_convert_const_real_from_real): Split out from ...
5313         (fold_convert_const): ... here.
5314
5315 2005-01-03  Richard Henderson  <rth@redhat.com>
5316
5317         PR target/19235
5318         * config/i386/i386.md (movdi_2): Separate SSE1 and SSE2 alternatives.
5319         (mov<MMXMODEI>_internal): Likewise.
5320         (movdf_nointeger): Prefer Y while not preferring, but allowing, x.
5321         Add V2SF case; use it for SSE1; don't use TI.
5322         (movdf_integer): Likewise.
5323         (mov<SSEMODEI>_internal, movti_internal): Force V4SF for SSE1.
5324
5325 2005-01-03  Ira Rosen  <irar@il.ibm.com>
5326
5327         * tree-vectorizer.c (vect_strip_conversions): New function.
5328         (vect_analyze_offset_expr): Call vect_strip_conversions. Add
5329         check for binary class.
5330
5331 2005-01-03  Daniel Berlin  <dberlin@dberlin.org>
5332
5333         Fix PR debug/17924
5334         Fix PR debug/19191
5335         * dwarf2out.c (block_ultimate_origin): Follow decl origin if origin
5336         is a decl.
5337         * gimple-low.c (mark_blocks_with_used_vars): New function.
5338         (mark_blocks_with_used_subblocks): Ditto.
5339         (mark_used_blocks): Ditto.
5340         (pass_mark_used_blocks): New pass.
5341         * tree-inline.c: Include debug.h.
5342         (expand_call_inline): Call outlining_inline_function here.
5343         * tree-optimize.c (init_tree_optimization_passes): Add
5344         pass_mark_used_blocks.
5345         * tree-pass.h (pass_mark_used_blocks): New.
5346         * Makefile.in (tree-inline.o): Add debug.h dependency.
5347
5348 2005-01-03  Geoffrey Keating  <geoffk@apple.com>
5349
5350         * config/darwin.c (darwin_handle_weak_import_attribute): Permit
5351         VAR_DECLs to have weak_import attribute.
5352
5353         * config/rs6000/darwin-fallback.c: Use 'ucontext_t' rather than
5354         'struct ucontext'.
5355
5356 2004-01-03  Steven Bosscher  <stevenb@suse.de>
5357
5358         * passes.c (rest_of_compilation): Don't run regmove if only
5359         flag_expensive_optimizations, require flag_regmove instead.
5360
5361 2005-01-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
5362
5363         * config/sparc/litecoff.h (TARGET_OS_CPP_BUILTINS): Do not
5364         register "sparc".
5365         * config/sparc/sysv4-only.h (TARGET_OS_CPP_BUILTINS): Likewise.
5366         * config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
5367         * config/sparc/sol2-64.h (TARGET_SUB_OS_CPP_BUILTINS): Delete.
5368         * config/sparc/sp64-elf.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
5369
5370 2005-01-03  Richard Henderson  <rth@redhat.com>
5371
5372         * config/ia64/ia64.c (TARGET_VECTOR_MODE_SUPPORTED_P): New.
5373         (ia64_const_ok_for_letter_p): New.
5374         (ia64_const_double_ok_for_letter_p): New.
5375         (ia64_extra_constraint): New.
5376         (ia64_expand_vecint_compare): New.
5377         (ia64_expand_vcondu_v2si): New.
5378         (ia64_expand_vecint_cmov): New.
5379         (ia64_expand_vecint_minmax): New.
5380         (ia64_print_operand): Add 'v'.
5381         (ia64_preferred_reload_class): New.
5382         (ia64_vector_mode_supported_p): New.
5383         * config/ia64/ia64.h (UNITS_PER_SIMD_WORD): New.
5384         (PREFERRED_RELOAD_CLASS): Move to function.
5385         (CONST_OK_FOR_LETTER_P): Move to function.
5386         (CONST_DOUBLE_OK_FOR_LETTER_P): Move to function.
5387         (CONSTRAINT_OK_FOR_Q, CONSTRAINT_OK_FOR_R): Remove.
5388         (CONSTRAINT_OK_FOR_S, CONSTRAINT_OK_FOR_T): Remove.
5389         (EXTRA_CONSTRAINT): Move to function.
5390         * config/ia64/ia64.md: Include vect.md.
5391         (itanium_class): Add mmalua.
5392         (type): Handle it.
5393         * config/ia64/itanium1.md (1_mmalua): New.  Add it to bypasses.
5394         (1b_mmalua): New.
5395         * config/ia64/itanium2.md (2_mmalua, 2b_mmalua): Similarly.
5396         * config/ia64/predicates.md (gr_reg_or_0_operand): Accept any
5397         CONST0_RTX.
5398         (const_int_2bit_operand): New.
5399         (fr_reg_or_0_operand): New.
5400         * config/ia64/ia64-modes.def: Add vector modes.
5401         * config/ia64/ia64-protos.h: Update.
5402         * config/ia64/vect.md: New file.
5403
5404 2005-01-03  Richard Henderson  <rth@redhat.com>
5405
5406         * simplify-rtx.c (simplify_binary_operation): Handle VEC_CONCAT.
5407
5408 2005-01-03  Uros Bizjak  <uros@kss-loka.si>
5409
5410         PR target/19236
5411         * config/i386/i386.c (log1psf2): Change mode of operands[0,1]
5412         to SFmode.
5413         (log1pdf2): Change mode of operands[0,1] to DFmode.
5414
5415 2005-01-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
5416
5417         * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Define to false.
5418         * config/sparc/linux.h (SPARC_RELAXED_ORDERING): Define to true.
5419         * config/sparc/linux64.h (SPARC_RELAXED_ORDERING): Likewise.
5420         * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Define to
5421         SPARC_RELAXED_ORDERING.
5422
5423 2005-01-03  Richard Henderson  <rth@redhat.com>
5424             Uros Bizjak  <uros@kss-loka.si>
5425
5426         PR target/14631
5427         * config/i386/i386.c (ix86_expand_builtin): [IX86_BUILTIN_PINSRW,
5428         IX86_BUILTIN_PINSRW128]: Fix wrong selector range in error message.
5429         * config/i386/i386.md (mmx_pinsrw, sse2_pinsrw): Fix selector
5430         handling.
5431         (*mmx_pinsrw, *sse2_pinsrw): New patterns.
5432         * config/i386/i386/predicates.md (const_pow2_1_to_8_operand,
5433         const_pow2_1_to_128_operand): New predicates.
5434
5435 2005-01-02  Greg McGary  <greg@mcgary.org>
5436
5437         * tree-mudflap.c (mf_varname_tree): decl_printable_name handles
5438         anonymous decls.
5439         (mf_xform_derefs_1) [RESULT_DECL, STRING_CST]: Handle as innermost
5440         object.  [ptr_type]: Remove unused variable.
5441         Remember nearest addressable array-element or record-component
5442         when checking bitfield components.  Tolerate empty BIND_EXPR.
5443
5444 2005-01-01  Richard Henderson  <rth@redhat.com>
5445
5446         * tree-vectorizer.c (vect_analyze_offset_expr): Strip conversions
5447         that don't narrow the value.  Fail for other conversions.
5448
5449 2005-01-01  Richard Henderson  <rth@redhat.com>
5450
5451         PR c/19031
5452         * c-decl.c (pop_file_scope): Call maybe_apply_pending_pragma_weaks.
5453         * c-lang.c (finish_file): Don't do it here.
5454         * objc/objc-act.c (objc_finish_file): Likewise.
5455
5456         * cgraph.c (decl_assembler_name_equal): New.
5457         (cgraph_node_for_asm, cgraph_varpool_node_for_asm): New.
5458         (cgraph_varpool_node): Actually link up cgraph_varpool_nodes.
5459         * cgraph.h (struct cgraph_varpool_node): Add next.
5460         (cgraph_node_for_asm, cgraph_varpool_node_for_asm): Declare.
5461         * varasm.c (assemble_alias): Mark the target as needed.
5462
5463 2005-01-01  Andrew Pinski  <pinskia@physics.uc.edu>
5464
5465         PR middle-end/19221
5466         * function.c (get_arg_pointer_save_area): Use entry_of_function
5467         instead of get_insns.
5468
5469 2005-01-01  Roger Sayle  <roger@eyesopen.com>
5470             Andrew Pinski  <pinskia@physics.uc.edu>
5471             James E. Wilson  <wilson@specifixinc.com>
5472
5473         PR rtl-optimization/12092
5474         * loop.c (emit_prefetch_instructions): Do nothing if PREFETCH_BLOCK
5475         is zero.
5476
5477 2005-01-01  Roger Sayle  <roger@eyesopen.com>
5478             Olivier Hainque  <hainque@act-europe.fr>
5479
5480         * tree.c (int_fits_type_p): A narrower type always fits in a
5481         wider one, except for negative values into unsigned types.
5482
5483 2005-01-01  Roger Sayle  <roger@eyesopen.com>
5484
5485         * tree.c (int_fits_type_p): Compare the result of force_fit_type
5486         with the original constant rather than require TREE_OVERFLOW.
5487
5488 2005-01-01  Steven Bosscher  <stevenb@suse.de>
5489
5490         PR middle-end/17544
5491         * c-decl.c (finish_function): If compiling C99, annotate the
5492         compiler generated return with the current file name and line 0.
5493         * tree-cfg.c (remove_useless_stmts_warn_notreached): Only warn if
5494         the source line is greater than 0.
5495         (remove_bb): Likewise.
5496
5497 See ChangeLog.12 for earlier changes.