OSDN Git Service

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