OSDN Git Service

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