OSDN Git Service

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