OSDN Git Service

2005-03-04 Andrew Haley <aph@redhat.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2005-03-04  Andrew Haley  <aph@redhat.com>
2
3         * unwind-dw2-fde-glibc.c (struct
4         unw_eh_callback_data.check_cache): New field.
5         (frame_hdr_cache): New.
6         (_Unwind_IteratePhdrCallback): Add ext_dl_phdr_info.
7         Cache frame header info.
8
9 2005-03-04  Richard Sandiford  <rsandifo@redhat.com>
10
11         * rtl.h (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
12         (print_c_condition): Declare.
13         * read-rtl.c (ptr_loc): New structure.
14         (ptr_locs, ptr_loc_obstack, joined_conditions)
15         (joined_conditions_obstack): New variables.
16         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc)
17         (get_rtx_ptr_loc, copy_rtx_ptr_loc, print_rtx_ptr_loc)
18         (join_c_conditions, print_c_condition): New functions.
19         (apply_macro_to_string): Associate the new string with the same
20         source location as the old one.
21         (add_condition_to_string): Use join_c_conditions.
22         (read_string): Use set_rtx_ptr_loc to record a filename and line
23         number for the string.
24         (read_rtx): Initialize the new variables above.
25         * genattrtab.c (write_test_expr, write_attr_value): Use
26         print_c_condition.
27         * genconditions.c (write_header): Don't define MAYBE_EVAL.  Move its
28         comment above the GCC_VERSION check.
29         (write_one_condition): Use print_rtx_ptr_loc and print_c_condition.
30         Inline the definition of MAYBE_EVAL.
31         * genemit.c (gen_expand, gen_split): Use print_rtx_ptr_loc.
32         * genoutput.c (process_template): Likewise.
33         * genpreds.c (write_predicate_subfunction): Likewise.
34         (write_predicate_expr): Use print_c_condition.
35         * genrecog.c (write_cond): Likewise.
36         * gensupport.c (process_rtx): Use join_c_conditions to join the
37         conditions of a define_insn_and_split.  Record a source location
38         for the string after the "&&".
39         (alter_test_for_insn): Use join_c_conditions.
40
41 2005-03-04  Andrew Pinski  <pinskia@physics.uc.edu>
42
43         Revert for now:
44         2005-03-03  James A. Morrison  <phython@gcc.gnu.org>
45         PR tree-optimization/15784
46         * fold-const.c (fold): Fold ~A + 1 to -1.  Fold -A - 1
47         and -1 - A to ~A.
48
49 2005-03-04  Ben Elliston  <bje@au.ibm.com>
50
51         * gcc.c (option_map): Add --coverage.
52         (LINK_COMMAND_SPEC): Pass -lgcov for `coverage'.
53         (cc1_options): Pass -fprofile-arcs -ftest-coverage for `coverage'.
54         * config/darwin.h: Pass -lgcov for `coverage'.
55         * doc/invoke.texi (Debugging Options): Document --coverage.
56
57 2005-03-04  Kazu Hirata  <kazu@cs.umass.edu>
58
59         * gcse.c (bypass_block): Use find_edge wherever possible.
60
61 2005-03-03  Daniel Berlin <dberlin@dbrelin.org>
62
63         Fix PR debug/20253
64         
65         * c-opts.c (c_common_parse_file): Call start_source_file
66         and end_source_file at the approriate times.
67
68         * dwarf2out.c (dwarf2out_finish): Don't auto-end
69         the main file, it will be done for us now.
70         
71 2005-03-04  Kazu Hirata  <kazu@cs.umass.edu>
72
73         * fold-const.c (fold_ternary): New.
74         (fold): Call fold_ternary on ternary expressions.  Remove
75         handling of ternary expressions.
76
77 2005-03-03  James A. Morrison  <phython@gcc.gnu.org>
78
79         PR tree-optimization/15784
80         * fold-const.c (fold): Fold ~A + 1 to -1.  Fold -A - 1
81         and -1 - A to ~A.
82
83 2005-03-03  David Edelsohn  <edelsohn@gnu.org>
84
85         * config/rs6000/predicates.md (branch_comparison_operator):
86         Convert from C block to conditional format.
87
88 2005-03-03  Jan Hubicka  <jh@suse.cz>
89
90         * tree-dfa.c (add_referenced_var): Don't walk initializer of external
91         and non-constant public variables.
92
93 2005-03-03  Kazu Hirata  <kazu@cs.umass.edu>
94
95         * tree-cfg.c (stmt_starts_bb_p): Clean up by replacing code
96         with LABEL_EXPR.
97
98         * cfgexpand.c (construct_exit_block): Use EDGE_PRED instead of
99         EDGE_I.
100
101         * tree-phinodes.c (remove_phi_node): Clean up by factoring out
102         calls to release_ssa_name and release_phi_node.
103
104         * fold-const.c (fold): Remove handling of unary expressions.
105
106         * fold-const.c (fold_unary): Avoid directly using the original
107         expression t as much as possible.
108
109 2005-03-03  Roger Sayle  <roger@eyesopen.com>
110             Andrew Pinski  <pinskia@physics.uc.edu>
111
112         * jump.c (redirect_exp_1): If nlabel is a NULL pointer create a
113         RETURN rtx, and not a LABEL_REF containing a NULL pointer.
114
115 2005-03-03  Hans-Peter Nilsson  <hp@axis.com>
116
117         Describe special registers SRP and MOF as allocatable registers.
118         * config/cris/cris.c (cris_md_asm_clobbers): New function.
119         (TARGET_MD_ASM_CLOBBERS): Define to cris_md_asm_clobbers.
120         (cris_conditional_register_usage): Enable CRIS_MOF_REGNUM if
121         TARGET_HAS_MUL_INSNS.
122         (cris_print_operand) <case 'd'>: New case.
123         <case REG>: Allow CRIS_MOF_REGNUM and CRIS_SRP_REGNUM.
124         * config/cris/cris.h (CRIS_PC_REGNUM, CRIS_SRP_REGNUM): Don't
125         define.
126         (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS)
127         (REG_ALLOC_ORDER): Update for MOF.
128         (enum reg_class): New members MOF_REGS, GENERAL_REGS and
129         SPECIAL_REGS.
130         (GENERAL_REGS): No longer a define of ALL_REGS.
131         (REGNO_REG_CLASS, REG_CLASS_CONTENTS, REG_CLASS_NAMES)
132         (PREFERRED_RELOAD_CLASS, REGISTER_NAMES, DBX_REGISTER_NUMBER):
133         Adjust accordingly.
134         (CRIS_SPECIAL_REGS_CONTENTS): New macro.
135         (REG_CLASS_FROM_LETTER): Allocate 'h' and 'x'.
136         (SECONDARY_RELOAD_CLASS): Define.
137         (STACK_POINTER_REGNUM): Define as CRIS_SP_REGNUM.
138         (FRAME_POINTER_REGNUM): Define as CRIS_FP_REGNUM.
139         (ARG_POINTER_REGNUM): Define as CRIS_AP_REGNUM.
140         (STATIC_CHAIN_REGNUM): Define as CRIS_STATIC_CHAIN_REGNUM.
141         (REGISTER_MOVE_COST): Define.
142         (PIC_OFFSET_TABLE_REGNUM): Define in terms of CRIS_GOT_REGNUM.
143         * config/cris/cris.md (CRIS_GOT_REGNUM, CRIS_STATIC_CHAIN_REGNUM)
144         (CRIS_FP_REGNUM, CRIS_SP_REGNUM, CRIS_SRP_REGNUM, CRIS_AP_REGNUM)
145         (CRIS_MOF_REGNUM): New define_constants.
146         ("*movsi_internal", "movhi", "movqi", "movsf"): Add alternatives for
147         special registers.
148         ("reload_inhi", "reload_outhi", "reload_inqi", "reload_outqi"):
149         New patterns.
150         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3")
151         ("mulsidi3", "umulsidi3", "smulsi3_highpart", "umulsi3_highpart"):
152         Adjust for MOF being properly described as a register.
153         (indir_to_reg_split): Name this split.  Conditionalize on the
154         destination register being a general register.
155         (movei): Conditionalize on on operands 0 and 1 having the same
156         register class.
157
158 2005-03-03  Alan Modra  <amodra@bigpond.net.au>
159
160         PR target/20277
161         * config/rs6000/rs6000.c (rs6000_override_options): Don't allow
162         -mcpu to override any other explicitly given flags.
163
164 2005-03-02  J"orn Rennecke <joern.rennecke@st.com>
165
166         * recog.c (verify_changes, confirm_change_group): New functions,
167         broken out of apply_change_group.
168         (apply_change_group): Use them.
169         * recog.h (verify_change, confirm_change_group): Declare.
170         * rtl.h (redirect_jump_2): Declare.
171         * jump.c (redirect_exp, invert_exp): Delete.
172         (invert_exp_1): Take second parameter.  Return value.  Changed caller.
173         (redirect_jump_2): New function, broken out of redirect_jump.
174         (redirect_jump): Use redirect_jump_1 and redirect_jump_2.
175         (invert_jump): Use invert_jump_1 and redirect_jump_2.
176         * ifcvt.c (dead_or_predicable): Use redirect_jump_2.
177
178 2005-03-02  Geoffrey Keating  <geoffk@apple.com>
179
180         * varasm.c (named_section): Use xstrdup rather than doing it by
181         hand.
182
183         * config/darwin8.h (LIB_SPEC): Switch -lmx and -lSystem.
184
185 2005-03-02  Devang Patel  <dpatel@apple.com>
186         
187         Undo PR tree-optimization/18815 fix.
188         
189 2005-03-02  Devang Patel  <dpatel@apple.com>
190
191         PR tree-optimization/18815
192         * tree-if-conv.c (combine_blocks): Adjust loop header edges for
193         loops with zero exit edges.
194         
195 2005-03-02  Kazu Hirata  <kazu@cs.umass.edu>
196
197         * cfg.c (connect_src, connect_dest, disconnect_src,
198         disconnct_dest): New.
199         (unchecked_make_edge, remove_edge, redirect_edge_succ,
200         redirect_edge_pred): Use the new functions.
201
202         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
203         free_dominance_info only when needed.
204
205 2005-03-02  David Edelsohn  <edelsohn@gnu.org>
206
207         PR target/20276
208         * config/rs6000/predicates.md (reg_or_cint64_operand): Fix typo.
209         (reg_or_sub_cint64_operand): Same.
210
211 2005-03-02  Jeff Law  <law@redhat.com>
212
213         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Fix setting of
214         CFG_ALTERED in the main DOM iteration loop.
215
216 2005-03-02  Mark Mitchell  <mark@codesourcery.com>
217
218         PR c++/19916
219         * varasm.c (initializer_constant_valid_p): Allow conversions
220         between OFFSET_TYPEs.  Tidy.
221
222 2005-03-02  Hans-Peter Nilsson  <hp@axis.com>
223
224         * config/cris/cris.md ("return"): Remove epilogue delay list
225         sanity check.
226
227 2005-03-02  Daniel Jacobowitz  <dan@codesourcery.com>
228
229         * config/arm/linux-elf.h (ARM_FUNCTION_PROFILER): Do not use (PLT)
230         for Thumb.
231         * config/arm/netbsd-elf.h (ARM_FUNCTION_PROFILER): Likewise.
232
233 2005-03-02  Kazu Hirata  <kazu@cs.umass.edu>
234
235         * cfgloop.h, cfgloopanal.c, cfgloopmanip.c, conflict.c,
236         loop-init.c, loop-unroll.c, print-tree.c, reg-notes.def,
237         config/m68k/m68k.c, config/mips/mips.h,
238         config/rs6000/rs6000-protos.h, doc/contrib.texi,
239         doc/include/gcc-common.texi: Update copyright.
240
241         PR middle-end/18029 and PR middle-end/18030
242         * expr.c (optimize_bitfield_assignment_op): Add a special case
243         to handle BIT_IOR_EXPR and BIT_XOR_EXPR.
244
245         * fold-const.c (fold_unary): New.
246         (fold): Call fold_unary on unary expressions.
247
248 2005-03-02  Richard Guenther  <rguenth@gcc.gnu.org>
249
250         * cgraph.h (struct cgraph_edge): Add prev_caller and
251         prev_callee fields.
252         (cgraph_node_remove_callees): Export.
253         * cgraph.c (cgraph_create_edge): Initialize prev_caller
254         and prev_callee.
255         (cgraph_edge_remove_callee): New function.
256         (cgraph_edge_remove_caller): Likewise.
257         (cgraph_remove_edge): Use.
258         (cgraph_redirect_edge_callee): Likewise.
259         (cgraph_node_remove_callees): New function.
260         (cgraph_node_remove_callers): Likewise.
261         (cgraph_remove_node): Use.
262         * tree-optimize.c (tree_rest_of_compilation): Use
263         cgraph_node_remove_callees instead of manual loop.
264         * cgraphunit.c (cgraph_finalize_function): Likewise.
265         (cgraph_expand_function): Likewise.
266         (cgraph_remove_unreachable_nodes): Likewise.
267
268 2005-03-02  Joseph S. Myers  <joseph@codesourcery.com>
269
270         PR c/8927
271         * c-tree.h (undeclared_variable, build_external_ref): Add extra
272         argument.
273         * c-decl.c (undeclared_variable): Take location as argument.
274         * c-typeck.c (build_external_ref): Likewise.
275         * c-parser.c (c_parser_postfix_expression): Pass location of
276         identifier to build_external_ref.
277
278 2005-03-01  David Edelsohn  <edelsohn@gnu.org>
279
280         * config/rs6000/rs6000.md (cceq splitter): Use operand mode, not
281         CCEQ mode for branch_positive_comparison_operator test.
282         * config/rs6000/predicates (branch_comparison_operator): Revert to
283         define_predicate.
284         (scc_comparison_operator): Same.
285         (branch_positive_comparison_operator): Same.
286
287 2005-03-01  Hans-Peter Nilsson  <hp@axis.com>
288
289         * config/cris/cris.c (cris_eligible_for_epilogue_delay)
290         (cris_delay_slots_for_epilogue): Remove.
291         (save_last): Move into cris_target_asm_function_epilogue.
292         (cris_target_asm_function_epilogue): Remove tests for file being
293         NULL.
294         * config/cris/cris-protos.h (cris_eligible_for_epilogue_delay)
295         (cris_delay_slots_for_epilogue): Remove prototypes.
296         * config/cris/cris.h (DELAY_SLOTS_FOR_EPILOGUE)
297         (ELIGIBLE_FOR_EPILOGUE_DELAY): Do not define.
298
299 2005-03-01  David Edelsohn  <edelsohn@gnu.org>
300
301         * config/rs6000/predicates.md (branch_comparison_operator): Change
302         to define_special_predicate.
303         (scc_comparison_operator): Same.
304         (branch_positive_comparison_operator): Same.
305
306 2005-03-01  Daniel Berlin <dberlin@dberlin.org>
307
308         * Makefile.in (tree-ssa-sink.o): New.
309         (OBJS-common): Add tree-ssa-sink.o.
310         * common.opt: Add -ftree-sink
311         * opts.c (decode_options): flag_tree_sink is set at O1 or higher.
312         * timevar.def (TV_TREE_SINK): new timevar.
313         * tree-flow.h (is_hidden_global_store): Prototype.
314         * tree-optimize.c (init_tree_optimization_passes): Add
315         pass_sink_code.
316         * tree-pass.h (pass_sink_code): New.
317         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Move checking
318         for non-obvious global store store to is_hidden_global_store, and
319         call that new function.
320         * tree-ssa-sink.c: New file.
321         * doc/invoke.texi: Document -fdump-tree-sink and -ftree-sink.
322         * doc/passes.texi: Document forward store motion.
323         * testsuite/gcc.dg/tree-ssa/ssa-sink-1.c: New test
324         * testsuite/gcc.dg/tree-ssa/ssa-sink-2.c: New test
325         * testsuite/gcc.dg/tree-ssa/ssa-sink-3.c: New test
326         * testsuite/gcc.dg/tree-ssa/ssa-sink-4.c: New test
327
328 2005-03-01  Per Bothner  <per@bothner.com>
329
330         * diagnostic.c (diagnostic_build_prefix): If USE_MAPPED_LOCATION
331         and we have a non-zero column-number, add it to the message.
332         Also factor out the diagnostic_kind_text.
333
334 2005-03-01  Zdenek Dvorak  <dvorakz@suse.cz>
335
336         * cfgloop.c (flow_loop_entry_edges_find, flow_loop_exit_edges_find,
337         flow_loop_pre_header_scan, flow_loop_pre_header_find,
338         flow_loop_scan): Removed.
339         (flow_loop_dump): Do not dump removed fields.
340         (flow_loop_free): Do not free removed fields.
341         (flow_loops_find): Flags argument removed.  Do not call flow_loop_scan.
342         (loop_exit_edge_p): New function.
343         * cfgloop.h (struct loop): Removed fields pre_header, pre_header_edges,
344         num_pre_header_edges, entry_edges, num_entries, exit_edges,
345         num_exits, exits_doms.
346         (LOOP_TREE, LOOP_PRE_HEADER, LOOP_ENTRY_EDGES, LOOP_EXIT_EDGES,
347         LOOP_EDGES, LOOP_ALL): Removed.
348         (flow_loop_scan): Declaration removed.
349         (loop_exit_edge_p, mark_loop_exit_edges): Declare.
350         * cfgloopmanip.c (create_loop_notes): Do not pass flags to
351         flow_loops_find.
352         * ifcvt.c (mark_loop_exit_edges): Moved to cfgloopanal.c.
353         (if_convert): Call flow_loops_find and flow_loops_free
354         when calling mark_loop_exit_edges.
355         * cfgloopanal.c (mark_loop_exit_edges): Moved from
356         ifcvt.c.  Removed the flow_loops_find, flow_loops_free and
357         free_dominance_info calls.
358         * loop-init.c (flow_loops_find): Ditto.
359         * passes.c (rest_of_handle_branch_prob): Ditto.
360         * lambda-code.c (perfect_nestify): Do not call flow_loops_find.
361         * loop-unroll.c (analyze_insns_in_loop): Do not use
362         EDGE_LOOP_EXIT.
363         * predict.c (predict_loops): Do not call flow_loop_scan.
364         Use get_loop_exit_edges.
365         (tree_estimate_probability): Do not pass flags to flow_loops_find.
366         * tree-if-conv.c (bb_with_exit_edge_p): Take loop as argument.
367         Do not use EDGE_LOOP_EXIT.
368         (tree_if_convert_cond_expr, if_convertible_modify_expr_p): Pass loop
369         to bb_with_exit_edge_p.
370         (if_convertible_loop_p): Do not call flow_loop_scan.  Use
371         loop->single_exit.  Do not use EDGE_LOOP_EXIT.  Pass loop
372         to bb_with_exit_edge_p.
373         (combine_blocks): Pass loop to bb_with_exit_edge_p.  Do not use
374         EDGE_LOOP_EXIT.
375         * tree-loop-linear.c (linear_transform_loops): Do not call
376         flow_loop_scan.  Use loop->single_exit.
377         * tree-vect-analyze.c (vect_analyze_operations): Use loop->single_exit.
378         (vect_analyze_loop_form): Do not call flow_loop_scan.
379         * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Use
380         loop->single_exit.
381         (vect_do_peeling_for_loop_bound): Use loop_preheader_edge and
382         loop->single_exit.
383         * tree-vectorizer.c (slpeel_update_phis_for_duplicate_loop,
384         slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
385         slpeel_tree_duplicate_loop_to_edge_cfg,
386         slpeel_verify_cfg_after_peeling, slpeel_tree_peel_loop_to_edge):
387         Use loop_preheader_edge and loop->single_exit.  Do not call
388         flow_loop_scan.
389
390 2005-03-01  Nick Clifton  <nickc@redhat.com>
391
392         * config/arm/arm.c (thumb_find_work_register): Check all of the
393         argument registers to see if they are free, and a couple of
394         special cases where the last argument register but can be proved
395         to be available during the function's prologue.
396         (print_multi_reg, arm_compute_save_reg0_reg12_mask,
397         output_return_instruction, emit_multi_reg_push, thumb_pushpop,
398         thumb_unexpanded_epilogue): Use unsigned long as the type for the
399         register bit-mask.
400         (thumb_compute_save_reg_mask): Likewise.  Also use
401         thumb_find_work_register() to ensure that there is agreement about
402         which work register is going to be used in the prologue.
403         (thumb_output_function_prologue): Use unsigned long as the type
404         for the register bit-mask.  Also delay pushing the link register if
405         other high registers are going to be pushed.
406         (thumb_compute_save_reg_mask, emit_multi_reg_push,
407         print_multi-reg, number_of_first_bit_set, thumb_pushpop): Remove
408         redundant prototypes.
409
410 2005-02-28  John David Anglin  <dave.anglin#nrc-cnrc.gc.ca>
411
412         PR target/19819
413         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow allow hard registers during
414         and after reload in REG+REG indexed addresses without REG_POINTER
415         set in the base and not set in the index.
416
417 2005-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
418
419         * config/sh/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
420         Don't undefine here.
421         (HANDLE_PRAGMA_PACK_PUSH_POP): Delete.
422         (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC): Likewise.
423         (TARGET_OS_CPP_BUILTINS): Use LINUX_TARGET_OS_CPP_BUILTINS.
424         (LIB_SPEC, LINK_EH_SPEC, STARTFILE_SPEC, ENDFILE_SPEC,
425         LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED, TARGET_C99_FUNCTIONS):
426         Delete.
427         * config.gcc (sh*-*-linux*): Use config/linux.h.
428
429 2005-02-28  Dale Johannesen  <dalej@apple.com>
430             Stan Shebs  <shebs@apple.com>
431
432         Rewrite of 64-bit Darwin structure-by-value pass/return.
433         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): New fields
434         intoffset, use_stack, named.
435         * config/rs6000/rs6000.c (rs6000_darwin64_function_arg):  Remove.
436         (rs6000_darwin64_record_arg_advance_flush):  New.
437         (rs6000_darwin64_record_arg_advance_recurse): New.
438         (rs6000_darwin64_record_arg_flush):  New.
439         (rs6000_darwin64_record_arg_recurse):  New.
440         (rs6000_darwin64_record_arg):  New.
441         (rs6000_return_in_memory):  Remove AGGREGATE_TYPE_P check.
442         (function_arg_boundary):  Handle 128-bit aligned structs.
443         (function_arg_advance):  Rewrite darwin64 struct handling.
444         (function_arg):  Call rs6000_darwin64_record_arg.
445         (function_arg_partial_nregs):  Handle darwin64 structs.
446         (rs6000_darwin64_function_value):  Remove.
447         (rs6000_function_value):  Call rs6000_darwin64_record_arg.
448
449 2005-02-28  Roger Sayle  <roger@eyesopen.com>
450
451         PR tree-optimization/20216
452         * tree-chrec.c (tree_fold_factorial): Delete.
453         (tree_fold_binomial): Change argument list to take a return type
454         and change the type of K to unsigned int.  Rewrite to avoid explicit
455         evaluation of factorials, and (recursively) calling fold to perform
456         compile-time arithmetic.  Return NULL on (internal) overflow.
457         (chrec_evaluate): Change type of K to an unsigned int.  Avoid
458         calling tree_fold_binomial unnecessarily.  Return chrec_dont_know
459         if any intermediate calculation overflows.
460         (chrec_apply): Update call to chrec_evaluate.
461
462 2005-02-28  James E Wilson  <wilson@specifixinc.com>
463
464         * config/mips/mips.h (NO_PROFILE_COUNTERS): Define.
465
466 2005-02-28  Joseph S. Myers  <joseph@codesourcery.com>
467
468         PR c/20245
469         * c-parser.c (c_parser_compound_statement): Return error_mark_node
470         instead of NULL_TREE on error.
471
472 2005-02-28  David Edelsohn  <edelsohn@gnu.org>
473
474         * config/rs6000/rs6000.c (EASY_VECTOR_15): Remove.
475         (EASY_VECTOR_15_ADD_SELF): Remove.
476         (num_insns_constant_wide): Not static.
477         (validate_condition_mode): Not static.
478         (toc_relative_expr_p): Not static.
479         (legitimate_indirect_address_p): Not static.
480         (macho_lo_sum_memory_operand): Not static.
481         (invalid_e500_subreg): Not static.
482         (easy_vector_same): Not static.
483         (easy_vector_splat_const): Not static.
484         (RS6000_SYMBOL_REF_TLS_P): Remove.
485         (any_operand): Delete.
486         (any_parallel_operand): Delete.
487         (count_register_operand): Delete.
488         (altivec_register_operand): Delete.
489         (xer_operand): Delete.
490         (s8bit_cint_operand): Delete.
491         (short_cint_operand): Delete.
492         (u_short_cint_operand): Delete.
493         (non_short_cint_operand): Delete.
494         (exact_log2_cint_operand): Delete.
495         (gpc_reg_operand): Delete.
496         (cc_reg_operand): Delete.
497         (cc_reg_not_cr0_operand): Delete.
498         (reg_or_short_operand): Delete.
499         (reg_or_neg_short_operand): Delete.
500         (reg_or_aligned_short_operand): Delete.
501         (reg_or_u_short_operand): Delete.
502         (reg_or_cint_operand): Delete.
503         (reg_or_arith_cint_operand): Delete.
504         (reg_or_add_cint64_operand): Delete.
505         (reg_or_sub_cint64_operand): Delete.
506         (reg_or_logical_cint_operand): Delete.
507         (got_operand): Delete.
508         (got_no_const_operand): Delete.
509         (easy_fp_constant): Delete.
510         (easy_vector_constant): Delete.
511         (easy_vector_constant_add_self): Delete.
512         (zero_constant): Delete.
513         (zero_fp_constant): Delete.
514         (volatile_mem_operand): Delete.
515         (offsettable_mem_operand): Delete.
516         (mem_or_easy_const_operand): Delete.
517         (add_operand): Delete.
518         (non_add_cint_operand): Delete.
519         (logical_operand): Delete.
520         (non_logical_cint_operand): Delete.
521         (mask_operand): Delete.
522         (mask_operand_wrap): Delete.
523         (mask64_operand): Delete.
524         (mask64_2_operand): Delete.
525         (and64_operand): Delete.
526         (and64_2_operand): Delete.
527         (and_operand): Delete.
528         (reg_or_mem_operand): Delete.
529         (lwa_operand): Delete.
530         (symbol_ref_operand): Delete.
531         (call_operand): Delete.
532         (current_file_function_operand): Delete.
533         (input_operand): Delete.
534         (rs6000_nonimmediate_operand): Delete.
535         (rs6000_tls_symbol_ref): Delete.
536         (save_world_operation): Delete.
537         (restore_world_operation): Delete.
538         (load_multiple_operation): Delete.
539         (store_multiple_operation): Delete.
540         (vrsave_operation): Delete.
541         (mfcr_operation): Delete.
542         (mtcrf_operation): Delete.
543         (lmw_operation): Delete.
544         (stmw_operation): Delete.
545         (branch_comparison_operator): Delete.
546         (branch_positive_comparison_operator): Delete.
547         (scc_comparison_operator): Delete.
548         (trap_comparison_operator): Delete.
549         (boolean_operator): Delete.
550         (boolean_or_operator): Delete.
551         (min_max_operator): Delete.
552         * config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Move to here.
553         (EASY_VECTOR_15): Moved to here.
554         (EASY_VECTOR_15_ADD_SELF): Move to here.
555         (PREDICATE_CODES): Delete.
556         * config/rs6000/rs6000-protos.h: Delete predicate functions.
557         Declare functions no longer static.
558         * config/rs6000/predicates.md: New.
559         * config/rs6000/rs6000.md: Include predicates.md
560
561 2005-02-28  Kazu Hirata  <kazu@cs.umass.edu>
562
563         * calls.c (emit_call_1): Don't use  REG_ALWAYS_RETURN.
564         (emit_library_call_value_1): Don't use LCT_ALWAYS_RETURN and
565         REG_ALWAYS_RETURN.
566         * cfgrtl.c (need_fake_edge_p): Likewise.
567         * combine.c (distribute_notes): Likewise.
568         * emit-rtl.c (try_split): Likewise.
569         * recog.c (peephole2_opimize): Likewise.
570         * reg-notes.def (ALWAYS_RETURN): Remove.
571         * rtl.h (LCT_ALWAYS_RETURN): Remove.
572         * tree-cfg.c (need_fake_edge_p): Don't use ECF_ALWAYS_RETURN.
573         * tree.h (ECF_ALWAYS_RETURN): Remove.
574
575 2005-02-28  Roger Sayle  <roger@eyesopen.com>
576
577         PR middle-end/19874
578         * tree-ssa.c (tree_ssa_useless_type_conversion_1): A conversion
579         between different machine modes is never a "useless" conversion.
580
581 2005-02-28  Geert Bosch  <bosch@gnat.com>
582
583         PR ada/15977
584         * doc/contrib.texi: List contributors for Ada front end
585
586 2005-02-28 Paolo Bonzini <bonzini@gnu.org>
587
588         * simplify-rtx.c (simplify_unary_operation_1,
589         simplify_const_unary_operation): New, extracted from...
590         (simplify_unary_operation): ... this one.
591         (simplify_binary_operation_1,
592         simplify_const_binary_operation): New, extracted from...
593         (simplify_binary_operation): ... this one.
594         * rtl.h (simplify_const_unary_operation,
595         simplify_const_binary_operation): Add prototypes.
596
597 2005-02-28  Julian Brown  <julian@codesourcery.com>
598
599         * config/elfos.h: Revert my patch from 2005-02-25 since it broke
600         building libjava and caused PR regression/20228.
601
602 2005-02-28  Paolo Bonzini  <bonzini@gnu.org>
603
604         PR bootstrap/17383
605         * Makefile.in (host_subdir): New.
606         (build_objdir): New.  Replace ../$(build_subdir) with it throughout.
607         * configure: Regenerate.
608
609 2005-02-27  Zack Weinberg  <zack@codesourcery.com>
610
611         * config/alpha/t-osf4, config/arm/t-netbsd, config/ia64/t-hpux
612         * config/pa/t-hpux-shlib (SHLIB_INSTALL): Create the
613         installation directory first.
614
615 2005-02-28  Hans-Peter Nilsson  <hp@axis.com>
616
617         PR target/19065.
618         * config/cris/cris.h (EXTRA_CONSTRAINT_Q): Accept only (mem (reg)),
619         not including (reg). Do not check for reg being CRIS_PC_REGNUM.
620         (EXTRA_MEMORY_CONSTRAINT): Define as 'Q'.
621         * config/cris/cris.md: Tweak comments referring to Q.
622         ("cmpsi", "cmphi", "cmpqi", "*movsi_internal", "movhi")
623         ("movstricthi", "movqi", "movstrictqi", "movsf", "addsi3")
624         ("addhi3", "addqi3", "subsi3", "subhi3", "subqi3")
625         ("*expanded_andsi", "*expanded_andhi", "*andhi_lowpart", "andqi3")
626         ("*andqi_lowpart", "iorsi3", "iorhi3", "iorqi3", "uminsi3"):
627         Insert spaces in constraints to align alternatives vertically for
628         readability.
629         ("cmphi"): Ditto.  Add separate alternative for operand 0 "r",
630         operand 1: "M".
631
632 2005-02-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
633
634         PR rtl-optimization/17728
635         * pa.md (mulsi3, divsi3, udivsi3, modsi3): Change predicate for
636         operand 0 from general_operand to move_dest_operand.
637
638 2005-02-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
639
640         * pa/elf.h, pa/som.h (ASM_OUTPUT_EXTERNAL): Use assemble_name_raw
641         instead of trying to save and restore TREE_SYMBOL_REFERENCED.
642         * pa/pa64-hpux.h (ASM_OUTPUT_TYPE_DIRECTIVE): Define.
643         (ASM_OUTPUT_EXTERNAL): Don't save and restore TREE_SYMBOL_REFERENCED.
644
645 2005-02-26  Nathanael Nerode  <neroden@gcc.gnu.org>
646
647         * configure.ac: Rename cc_for_cross_gnattools to host_cc_for_libada.
648         * configure: Regenerate.
649         * libada-mk.in: Remove CC; rename
650         cc_for_cross_gnattools / cc_set_by_configure to host_cc_for_libada.
651
652 2005-02-26  Andrew Pinski  <pinskia@physics.uc.edu>
653
654         PR tree-opt/20188
655         * tree-ssa-alias.c (count_uses_and_derefs): If we have TREE_LIST
656         for the lhs, also walk over the tree.  Likewise for rhs.
657
658 2005-02-26  Zdenek Dvorak  <dvorakz@suse.cz>
659
660         * tree-ssa-dom.c (simple_iv_increment_p): New function.
661         (simplify_rhs_and_lookup_avail_expr, eliminate_redundant_computations):
662         Do not propagate value of iv before increment over the increment.
663
664 2005-02-25  Joseph S. Myers  <joseph@codesourcery.com>
665
666         * c-parser.c: New file.
667         * c-parse.in: Remove.
668         * Makefile.in (c-parse.o-warn, c-parse.o, c-parse.c, c-parse.y):
669         Remove.
670         (c-parser.o): Add dependencies.
671         (C_AND_OBJC_OBJC, C_OBJS, gcc.srcextra, GTFILES, distclean,
672         maintainer-clean, TAGS): Update.
673         * c-config-lang.in (gtfiles): Update.
674         * gengtype-lex.l: Don't handle "@@".
675         * stub-objc.c (objc_get_class_ivars, objc_build_throw_stmt,
676         objc_build_synchronized, objc_begin_try_stmt,
677         objc_begin_catch_clause, objc_finish_catch_clause,
678         objc_build_finally_clause, objc_finish_try_stmt): New.
679         * c-tree.h (struct c_declspecs): Add declspecs_seen_p and
680         type_seen_p.
681         (c_parse_init): Update comment.
682         * c-decl.c (c_init_decl_processing): Update comment.
683         (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
684         declspecs_add_scspec, declspecs_add_attrs): Initialize and update
685         new c_declspecs members.
686
687 2005-02-25  Julian Brown  <julian@codesourcery.com>
688
689         * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK
690         from being used for symbols with vague linkage when
691         HAVE_GAS_COMDAT_GROUP is true.
692
693 2005-02-25  Mark Mitchell  <mark@codesourcery.com>
694
695         * doc/include/gcc-common.texi (version-GCC): Update to 4.1.
696
697 2005-02-25  Steve Ellcey  <sje@cup.hp.com>
698
699         PR target/19930
700         * doc/tm.texi (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Document.
701         (LIBGCC2_HAS_DF_MODE): New.
702         (LIBGCC2_HAS_XF_MODE): New.
703         (LIBGCC2_HAS_TF_MODE): New.
704         * libgcc2.h (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
705         (LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
706         * libgcc2.c (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
707         (LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
708         (LIBGCC2_HAS_DF_MODE): New name for HAVE_DFMODE.
709         * config/ia64/t-ia64 (LIB1ASMFUNCS): Remove __compat
710         and add _fixtfdi, _fixunstfdi, _floatditf
711         * lib1funcs.asm: Remove L__compat. Add L_fixtfdi,
712         L_fixunstfdi, L_floatditf.
713         * config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE): Define.
714         (LIBGCC2_HAS_TF_MODE): Define.
715
716 2005-02-25  Diego Novillo  <dnovillo@redhat.com>
717
718         PR tree-optimization/20204
719         * tree-into-ssa.c (insert_phi_nodes_for): Do not use
720         REWRITE_THIS_STMT markers on PHI nodes.
721         (rewrite_initialize_block): Likewise.
722
723 2005-02-25  Mark Mitchell  <mark@codesourcery.com>
724
725         * version.c (version_string): Update to 4.1.
726
727 2005-02-25  Paolo Carlini  <pcarlini@suse.de>
728
729         * doc/extend.texi (5.24 Declaring Attributes of Functions)<noreturn>:
730         Clarify that the alternative way doesn't work in GNU C++.
731
732 2005-02-25  Zdenek Dvorak  <dvorakz@suse.cz>
733
734         PR tree-optimization/19937
735         * tree-ssa-loop-ivopts.c (rewrite_use_compare): Cast the final value
736         to the type of the induction variable.
737
738 2005-02-25  Kaz Kojima  <kkojima@gcc.gnu.org>
739
740         PR rtl-optimization/20117
741         * bb-reorder.c (duplicate_computed_gotos): Don't duplicate
742         the block including noncopyable insn.
743
744 2005-02-24  Kazu Hirata  <kazu@cs.umass.edu>
745
746         * cse.c (delete_trivially_dead_insns): Speed up by minimizing
747         calls to find_reg_note.
748
749 2005-02-24  Richard Henderson  <rth@redhat.com>
750
751         PR tree-opt/20127
752         * tree-sra.c (instantiate_element): Copy TREE_THIS_VOLATILE from
753         the type.
754
755 2005-02-24  Fariborz Jahanian <fjahanian@apple.com>
756
757         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Check for
758         vector types if to use base reg for misaligned non-word ld/std.
759
760 2005-02-24  Hans-Peter Nilsson  <hp@axis.com>
761
762         PR target/14619
763         * config/cris/cris.c (cris_target_asm_function_prologue): Create
764         dwarf2 label manually and put it after, not before the prologue.
765
766 2005-02-24  David Edelsohn  <edelsohn@gnu.org>
767
768         PR target/19019
769         * reload.c (operands_match_p): Only increment register number for
770         SCALAR_INT_MODE_P modes in multiple hard registers.
771
772         * config/rs6000/rs6000.md (trunctfdf2): Remove register constraints.
773         Fix formatting.
774
775 2005-02-24  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
776
777         * ChangeLog.5: Fix log message typo(s).
778         * ChangeLog.7: Likewise.
779         * ChangeLog.tree-ssa: Likewise.
780         * cfgexpand.c: Fix comment typo(s).
781         * conflict.c: Likewise.
782         * defaults.h: Likewise.
783         * dwarf2out.c: Likewise.
784         * gcse.c: Likewise.
785         * ggc-page.c: Likewise.
786         * tree-eh.c: Likewise.
787         * tree-ssa-dom.c: Likewise.
788
789 2005-02-24  Jakub Jelinek  <jakub@redhat.com>
790
791         PR target/19019
792         * mklibgcc.in: Pass -DSHARED when compiling all *_s${objext} objects.
793         * config/rs6000/darwin-ldouble.c: Only use the .symver directives
794         if SHARED is defined.
795
796         PR target/20196
797         * config/rs6000/rs6000.md (LTU, GTU sCC splitters): Add earlyclobber,
798         allow splitting only if operands 0 and 3 don't overlap.
799
800 2005-02-24  Richard Henderson  <rth@redhat.com>
801
802         PR middle-end/19953
803         * builtins.c (fold_builtin_complex_mul, fold_builtin_complex_div): New.
804         (fold_builtin_1): Call them.
805         * fold-const.c (fold_complex_mult_parts): Split out from ...
806         (fold_complex_mult): ... here.  Fix typo in both imaginary case.
807         (fold_complex_div_parts, fold_complex_div): New.
808         (fold): Use them.
809         * tree.h (fold_complex_mult_parts, fold_complex_div_parts): Declare.
810
811 2005-02-24  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
812
813         * tree-ssa-ccp.c (visit_assignment): Verify that result of
814         VIEW_CONVERT_EXPR is_gimple_min_invariant.
815
816         * print-tree.c (print_node_brief): Print LABEL_DECL_UID.
817         (print_node): Likewise.
818         Print TYPE_SIZES_GIMPLIFIED.
819
820 2005-02-24  Hans-Peter Nilsson  <hp@axis.com>
821
822         * config/cris/cris.md ("umulhisi3", "umulqihi3", "mulsi3")
823         ("mulqihi3", "mulhisi3", "mulsidi3", "umulsidi3"): Mark input
824         operands as commutative in constraints.
825
826 2005-02-24  Diego Novillo  <dnovillo@redhat.com>
827
828         * tree-into-ssa.c: Re-organize internal functions.
829
830 2005-02-24  Richard Henderson  <rth@redhat.com>
831
832         PR middle-end/18902
833         * c-opts.c (c_common_post_options): Set flag_complex_method to 2
834         for c99.
835         * common.opt (fcx-limited-range): New.
836         * opts.c (set_fast_math_flags): Set flag_cx_limited_range.
837         * toplev.c (flag_complex_method): Initialize to 1.
838         (process_options): Set flag_complex_method to 0 if
839         flag_cx_limited_range.
840         * doc/invoke.texi (-fcx-limited-range): New.
841
842 2005-02-24  Kazu Hirata  <kazu@cs.umass.edu>
843
844         * cse.c (delete_trivially_dead_insns): Speed up by using
845         NEXT_INSN and PREV_INSN directly instead of next_real_insn and
846         prev_real_insn.
847
848 2005-02-24  Andrea Tarani  <andrea.tarani@gilbarco.com>
849
850         * config/m68k/m68k.c (m68k_save_reg): Also save A5 for non-leaf
851         functions when -mid-shared-library is being used.
852
853 2005-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
854
855         * doc/tm.texi (LINK_LIBGCC_SPECIAL): Remove.
856         (LINK_LIBGCC_SPECIAL_1): Don't mention it.
857         * gcc.c: Don't check for LINK_LIBGCC_SPECIAL.
858         * system.h: Poison LINK_LIBGCC_SPECIAL.
859
860 2005-02-23  James E Wilson  <wilson@specifixinc.com>
861
862         * gengtype.c (note_insn_name): Make 1 element larger.
863
864 2005-02-23  Roger Sayle  <roger@eyesopen.com>
865
866         PR target/20018
867         PR rtl-optimization/20097
868         * simplify-rtx.c (simplify_relational_operation_1): Avoid creating
869         BImode SUBREGs of SImode registers which confuse the ia64 backend.
870
871 2005-02-23  David Edelsohn  <edelsohn@gnu.org>
872
873         * t-aix43 (SHLIB_INSTALL): Create directory for shared library.
874         * t-aix52 (SHLIB_INSTALL): Same.
875
876 2005-02-23  Kazu Hirata  <kazu@cs.umass.edu>
877
878         * genpreds.c: Update copyright.
879
880 2005-02-23  Michael Beach  <michaelb@ieee.org>
881
882         PR target/20159
883         * config/sparc/t-elf (startup files): Assemble with CPP.
884
885 2005-02-23  Paolo Bonzini  <bonzini@gnu.org>
886
887         * genpreds.c (mark_mode_tests): Handle non-VOIDmode match_operands.
888         (write_predicate_expr): Likewise.
889
890 2005-02-22  Diego Novillo  <dnovillo@redhat.com>
891
892         PR tree-optimization/20100
893         PR tree-optimization/20115
894         * tree-optimize.c (init_tree_optimization_passes): Remove
895         pass_maybe_create_global_var.
896         * tree-pass.h (pass_maybe_create_global_var): Remove.
897         * tree-ssa-alias.c (aliases_computed_p): Declare.
898         (struct alias_info): Add field NUM_PURE_CONST_CALLS_FOUND.
899         (count_calls_and_maybe_create_global_var): Remove.
900         (pass_maybe_create_global_var): Remove.
901         (init_alias_info): Do not declare aliases_computed_p.
902         (maybe_create_global_var): If the function contains no
903         call-clobbered variables and a mix of pure/const and regular
904         function calls, create .GLOBAL_VAR.
905         Mark all call-clobbered variables for renaming.
906         (merge_pointed_to_info): Update comment.
907         (add_pointed_to_var): Likewise.
908         (is_escape_site): Likewise.
909         Accept struct alias_info * instead of size_t *.
910         Update all users.
911         Update AI->NUM_CALLS_FOUND and AI->NUM_PURE_CONST_CALLS_FOUND
912         as necessary.
913         * tree-ssa-operands.c (get_call_expr_operands): If
914         ALIASES_COMPUTED_P is false, do not add call-clobbering
915         operands.
916         * tree-ssa.c (init_tree_ssa): Set ALIASES_COMPUTED_P to false.
917         (delete_tree_ssa): Likewise.
918
919 2005-02-22  James E Wilson  <wilson@specifixinc.com>
920
921         * toplev.c (backend_init): Don't call init_adjust_machine_modes here.
922         (do_compile): Do call it here.
923
924 2005-02-22  Kazu Hirata  <kazu@cs.umass.edu>
925
926         PR rtl-optimization/20017.
927         * passes.c (rest_of_handle_combine, rest_of_handle_cse,
928         rest_of_handle_cse2, rest_of_handle_gcse): Call
929         delete_dead_jumptables immediately before calling cleanup_cfg.
930
931 2005-02-22  Devang Patel  <dpatel@apple.com>
932
933         PR 19952
934         * tree-if-conv.c (process_phi_nodes): Use bsi_after_labels and skip
935         all labels
936
937 2005-02-22  David Edelsohn  <edelsohn@gnu.org>
938
939         * config/rs6000/aix.h (WINT_TYPE): Define.
940
941 2005-02-22  Stan Shebs  <shebs@apple.com>
942
943         * config/rs6000/rs6000.c (rs6000_override_options): Default to
944         natural alignment for 64-bit Darwin.
945         (rs6000_parse_alignment_option): Warn about uses of -malign-power
946         on 64-bit Darwin.
947         * doc/invoke.texi: Document this.
948
949 2005-02-22  DJ Delorie  <dj@redhat.com>
950
951         * c-common.c (c_common_type_for_mode): Pass the mode's precision
952         to make_[un]signed_type, not the mode itself.
953
954 2005-02-22  Kazu Hirata  <kazu@cs.umass.edu>
955
956         * cfg.c (cached_make_edge): Call make_edge if edge cache is
957         not available.  Use tail calls wherever possible.
958         (make_edge): Call unchecked_make_edge to create an edge.
959
960         * tree-outof-ssa.c (SSANORM_USE_COALESCE_LIST): Remove.
961         (coalesce_ssa_name): Don't check for
962         SSANORM_USE_COALESCE_LIST.
963         (rewrite_out_of_ssa): Don't use SSANORM_USE_COALESCE_LIST.
964
965 2005-02-22  Diego Novillo  <dnovillo@redhat.com>
966
967         * tree-into-ssa.c (rewrite_blocks): Move debug dumps from ...
968         (rewrite_into_ssa): ... here.
969
970 2005-02-21  Alexandre Oliva  <aoliva@redhat.com>
971
972         PR tree-optimization/19786
973         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add one
974         tag to another's may-alias bitmap when adding to the other's list.
975
976 2005-02-21  DJ Delorie  <dj@redhat.com>
977
978         * tree-ssa-loop-ivopts.c (computation_cost): Start register
979         numbering at LAST_VIRTUAL_REGISTER+1 to avoid possibly using hard
980         registers in unsupported ways.
981         * expmed.c (init_expmed): Likewise.
982
983 2005-02-21  Stan Cox  <scox@redhat.com>
984
985         * config/iq2000/iq2000.h (DWARF_FRAME_RETURN_COLUMN): Change to 31.
986
987 2005-02-21  Kazu Hirata  <kazu@cs.umass.edu>
988
989         * tree-cfg.c (fold_cond_expr_cond): New.
990         (make_edges): Call fold_cond_expr_cond.
991         (find_taken_edge): Accept nothing but INTEGER_CST.
992         (find_taken_edge_cond_expr): Reject INTEGER_CST other than 0
993         and 1.
994         (find_taken_edge_switch_expr): Remove a check for INTEGER_CST.
995
996         * flow.c (delete_dead_jumptables): Speed up by scanning insns
997         that do not belong to any basic block.
998
999 2005-02-21  Jeff Law  <law@redhat.com>
1000
1001         * cfganal.c (find_unreachable_blocks): Manually CSE load of
1002         e->dest.
1003
1004 2005-02-21  Kazu Hirata  <kazu@cs.umass.edu>
1005
1006         * tree-outof-ssa.c (SSANORM_REMOVE_ALL_PHIS): Remove.
1007         (SSANORM_COALESCE_PARTITIONS, SSANORM_USE_COALESCE_LIST):
1008         Adjust their definitions.
1009         (remove_ssa_form): Don't check for SSANORM_REMOVE_ALL_PHIS.
1010         (rewrite_out_of_ssa): Don't use SSANORM_REMOVE_ALL_PHIS.
1011
1012         * c-objc-common.h, c-pretty-print.c, cgraphunit.c, except.c,
1013         genautomata.c, langhooks.c, langhooks.h, system.h,
1014         config/arm/lib1funcs.asm: Update copyright.
1015
1016 2005-02-21  Ulrich Weigand  <uweigand@de.ibm.com>
1017
1018         * dbxout.c (dbxout_function_end): Emit Lscope label always.
1019
1020 2005-02-21  Richard Guenther  <rguenth@gcc.gnu.org>
1021
1022         PR bootstrap/13770
1023         * doc/install.texi: Document --with-gc.
1024
1025 2005-02-21  Paolo Bonzini  <bonzini@gnu.org>
1026
1027         * simplify-rtx.c (simplify_unary_operation): Add a missing
1028         "break" statement.
1029
1030 2005-02-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
1031
1032         PR tree-optimization/18663
1033         * tree-ssa-dom.c (extract_range_from_cond): Return 0
1034         if the type has variable bounds.
1035
1036 2005-02-20  Kazu Hirata  <kazu@cs.umass.edu>
1037
1038         * gcse.c: Remove an obsolete comment.
1039
1040         * cse.c (init_cse_reg_info): Use xmalloc instead of xrealloc.
1041
1042 2005-02-20  Hans-Peter Nilsson  <hp@axis.com>
1043
1044         * doc/extend.texi (Function Attributes) <Attribute const>: The
1045         attribute "pure" is below this text, not above.
1046
1047 2005-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1048
1049         * pa.c (pa_assemble_integer, get_plabel): Small cleanups.
1050         (pa_asm_output_mi_thunk): Use asm_output_insn instead of fprintf.
1051         * som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Small cleanup.
1052
1053 2005-02-20  Zack Weinberg  <zack@codesourcery.com>
1054
1055         PR 18785
1056         * langhooks.h (struct lang_hooks): Add to_target_charset.
1057         * langhooks.c (lhd_to_target_charset): New function.
1058         * langhooks-def.h: Declare lhd_to_target_charset.
1059         (LANG_HOOKS_TO_TARGET_CHARSET): New macro.
1060         (LANG_HOOKS_INITIALIZER): Update.
1061         * c-common.c (c_common_to_target_charset): New function.
1062         * c-common.h: Declare it.
1063         * c-objc-common.h (LANG_HOOKS_TO_TARGET_CHARSET): Set to
1064         c_common_to_target_charset.
1065
1066         * defaults.c (TARGET_BELL, TARGET_BS, TARGET_CR, TARGET_DIGIT0)
1067         (TARGET_ESC, TARGET_FF, TARGET_NEWLINE, TARGET_TAB, TARGET_VT):
1068         Delete definitions.
1069         * system.h: Poison them.
1070         * doc/tm.texi: Don't discuss them.
1071         * builtins.c (fold_builtin_isdigit): Use lang_hooks.to_target_charset.
1072         * c-pretty-print.c (pp_c_integer_constant): Don't use pp_c_char.
1073         (pp_c_char): Do not attempt to generate letter escapes for
1074         newline, tab, etc.
1075         * config/arm/arm.c (output_ascii_pseudo_op): Likewise.
1076         * config/mips/mips.c (mips_output_ascii): Likewise.
1077
1078 2005-02-20  Dorit Naishlos  <dorit@il.ibm.com>
1079
1080         PR tree-optimization/19951
1081         * tree-vect-analyze.c (vect_analyze_loop_form): Check if loop exit edge
1082         is abnormal.
1083
1084 2005-02-19  Steven Bosscher  <stevenb@suse.de>
1085
1086         PR middle-end/19698
1087         * function.h (struct function): New field `max_loop_depth'.
1088         * cfgloop.c (establish_preds): Update maximum loop depth seen so far.
1089         (flow_loops_find): Reset the max loop depth count before finding loops.
1090         * flow.c (MAX_LIVENESS_ROUNDS): New constant.
1091         (update_life_info_in_dirty_blocks): Remove 2002-05-28 workaround.
1092         (calculate_global_regs_live): Make sure the loop will terminate
1093         when the initial sets are not empty.
1094
1095 2005-02-19  Zack Weinberg  <zack@codesourcery.com>
1096
1097         * mklibgcc.in: If libgcc_eh.a would be empty, put a dummy
1098         object inside.
1099         * config/ia64/hpux.h: Don't define LIBGCC_SPEC.
1100
1101 2005-02-19  Richard Sandiford  <rsandifo@redhat.com>
1102
1103         PR other/19525
1104         * doc/invoke.texi: Remove documentation of %M spec.
1105         * gcc.c: Likewise.
1106         (init_spec): Remove %M suffix from -lgcc_s.
1107         (do_spec_1): Remove 'M' case.
1108         * mklibgcc.in: Remove SHLIB_MULTILIB handling.  Expect SHLIB_LINK
1109         to put shared libraries in the multilib directory.  Remove the
1110         shlib_so_soname substitution variable.  Don't add a multilib encoding
1111         to shlib_base_name.  Set shlib_slibdir_qual to the full pathname
1112         reported by -print-multi-os-directory.  Pass @multilib_dir@ to
1113         SHLIB_INSTALL as well as SHLIB_LINK.
1114         * config/t-slibgcc-elf-ver (SHLIB_SONAME): Use @shlib_base_name@.
1115         (SHLIB_NAME): Delete.
1116         (SHLIB_DIR): New macro.
1117         (SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_SOLINK) in $(SHLIB_DIR).
1118         (SHLIB_INSTALL): Adjust accordingly.
1119         * config/t-slibgcc-darwin: As for t-slibgcc-elf-ver.
1120         * config/t-slibgcc-sld: Likewise.
1121         * config/t-libunwind-elf (SHLIBUNWIND_NAME): Delete.
1122         (SHLIBUNWIND_SONAME): Use @shlib_base_name@.
1123         (SHLIBUNWIND_LINK): Put $(SHLIBUNWIND_SONAME) and $(SHLIB_SOLINK)
1124         in $(SHLIB_DIR).
1125         (SHLIBUNWIND_INSTALL): Adjust accordingly.
1126         * config/i386/t-nwld (SHLIB_SONAME): Delete.
1127         (SHLIB_LINK, SHLIB_INSTALL): Use SHLIB_NAME instead of SHLIB_SONAME.
1128         Use @shlib_base_name@ instead of @shlib_so_name@.
1129         * config/ia64/t-hpux (SHLIB_LINK): Put @shlib_base_name@.so.0
1130         and @shlib_base_name@.so in @multilib_dir@.
1131         (SHLIB_INSTALL): Adjust accordingly.  Add @shlib_slibdir_qual@
1132         to the install path.
1133         * config/mips/t-slibgcc-irix: As for t-slibgcc-elf-ver.
1134         (SHLIB_LINK): Remove previous workaround.
1135         * config/pa/t-hpux-shlib (SHLIB_DIR, SHLIB_SLIBDIR_QUAL): New macros.
1136         (SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_NAME) in $(SHLIB_DIR).
1137         (SHLIB_INSTALL): Adjust accordingly.  Add $(SHLIB_SLIBDIR_QUAL) to
1138         the install path.
1139         * config/rs6000/t-aix43 (SHLIB_LINK): Put @shlib_base_name@.a in
1140         @multilib_dir@.  Use @multilib_dir@ to check for threading libraries.
1141         (SHLIB_INSTALL): Adjust accordingly.
1142         (SHLIB_LIBS): Use @multilib_dir@ to check for threading libraries.
1143         * config/rs6000/t-aix52: As for config/rs6000/t-aix43.
1144         * config/sh/t-linux (SHLIB_LINK, SHLIB_INSTALL): As for
1145         config/t-slibgcc-elf-ver.
1146
1147 2005-02-19  Zdenek Dvorak  <dvorakz@suse.cz>
1148             Jakub Jelinek  <jakub@redhat.com>
1149
1150         PR tree-optimization/19828
1151         * tree-ssa-loop-im.c: Add a TODO comment.
1152         (movement_possibility): Return MOVE_PRESERVE_EXECUTION for calls
1153         without side-effects.
1154
1155 2005-02-18  James A. Morrison  <phython@gcc.gnu.org>
1156
1157         * tree-ssa-ccp.c (widen_bitfield): Pass type to build_int_cst and don't
1158         call fold_convert.
1159
1160 2005-02-18  James E. Wilson  <wilson@specifixinc.com>
1161
1162         * doc/invoke.texi (IA-64 Options): Delete -mb-step.
1163         * config/ia64/ia64.c (last_group, group_idx): Delete variables.
1164         (errata_find_address_regs, errata_emit_nops, fixup_errata): Delete
1165         functions.
1166         (ia64_reorg): Delete fixup_errata call.
1167         * config/ia64/ia64.h (MASK_B_STEP, TARGET_B_STEP): Delete.
1168         (TARGET_SWITCHES): Delete -mb-step entry.
1169
1170 2005-02-19  Jakub Jelinek  <jakub@redhat.com>
1171
1172         PR c/20043
1173         * c-typeck.c (composite_type): Handle quals in transparent unions.
1174         (type_lists_compatible_p): Likewise.
1175
1176 2005-02-18  Stan Shebs  <shebs@apple.com>
1177
1178         * config/darwin.c (machopic_select_rtx_section): Don't put relocatable
1179         expressions in the .literal8 section.
1180
1181 2005-02-18  Geoffrey Keating  <geoffk@apple.com>
1182
1183         * config/rs6000/darwin-tramp.asm: Remove stray 'APPLE LOCAL' marker.
1184
1185 2005-02-18  Roger Sayle  <roger@eyesopen.com>
1186
1187         * fold-const.c (constant_boolean_node): Always create values of the
1188         specified type, don't bother calling truthvalue_conversion.
1189
1190 2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
1191
1192         * except.c (output_function_exception_table): Call
1193         assemble_external_libcall (eh_personality_libfunc).
1194
1195 2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
1196
1197         PR target/19886
1198         * config/ia64/ia64.h (struct machine_function): Add state_num.
1199         * config/ia64/ia64.c (process_epilogue,
1200         process_for_unwind_directive): Use new unwind state numbers each
1201         time rather than state 1.
1202
1203 2005-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
1204
1205         PR target/20054
1206         * config/s390/s390.md ("*llgt_sidi", "*llgt_sidi_split"): Move to
1207         before the "*llgt_didi" pattern.
1208
1209 2005-02-18  Jason Merrill  <jason@redhat.com>
1210
1211         * gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Revert again.
1212
1213 2005-02-18  Richard Earnshaw  <rearnsha@arm.com>
1214
1215         * arm/lib1funcs.asm (FUNC_ALIAS): New macro.
1216         (div0): Use it in place of ARM_FUNC_ALIAS.
1217         (lshrdi3, ashrdi3, ashlrdi3): Likewise.
1218
1219 2005-02-18  Andrew Pinski  <pinskia@physics.uc.edu>
1220
1221         PR middle-end/20030
1222         * fold-const.c (fold_indirect_ref_1): Use the correct index for zero
1223         access, the lower bound of the array type if it exists.
1224
1225 2005-02-18  Alexandre Oliva  <aoliva@redhat.com>
1226
1227         PR c++/20008
1228         * stmt.c (expand_case): Don't assume cleanup_tree_cfg will remove
1229         cases that are out-of-range for the index type.
1230
1231 2005-02-18  James A. Morrison  <phython@gcc.gnu.org>
1232
1233         * stmt.c (emit_case_bit_tests): Call fold_convert instead of convert.
1234         (estimate_case_costs): Don't call convert.
1235         * expmed.c (expand_shift): Likewise.
1236         (make_tree): Call fold_convert instead of convert.
1237
1238 2005-02-18  Jakub Jelinek  <jakub@redhat.com>
1239
1240         PR c++/19813
1241         * emit-rtl.c (set_mem_attributes_minus_bitpos): Add assertion
1242         that ref to be marked MEM_READONLY_P doesn't have base that needs
1243         constructing.
1244
1245 2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
1246
1247         * genautomata.c (output_get_cpu_unit_code_func,
1248         output_cpu_unit_reservation_p): Don't generate old-style function
1249         definitions.
1250
1251 2005-02-18  Jakub Jelinek  <jakub@redhat.com>
1252
1253         PR c++/20023
1254         PR tree-optimization/20009
1255         * convert.c (convert_to_integer): Revert 2005-02-16 change.
1256
1257         PR tree-optimization/18947
1258         * cgraphunit.c (cgraph_finalize_function): When redefining an extern
1259         inline, remove all nodes that are inlined into the extern inline
1260         being redefined.
1261
1262 2005-02-17  Kazu Hirata  <kazu@cs.umass.edu>
1263
1264         * bt-load.c, cfgloop.c, convert.c, dominance.c, global.c,
1265         loop-invariant.c, stmt.c, tree-ssa-forwprop.c,
1266         tree-ssa-live.c, tree-ssanames.c, tree-vn.c,
1267         config/host-linux.c, config/arm/fpa.md, config/avr/avr.h:
1268         Update copyright.
1269
1270 2005-02-17  Roger Sayle  <roger@eyesopen.com>
1271
1272         PR tree-optimization/19917
1273         * tree-eh.c (tree_could_trap_p): Consider calls to weak functions
1274         to be potentially trapping.
1275
1276 2005-02-17  Kazu Hirata  <kazu@cs.umass.edu>
1277
1278         * libgcc2.c, tree-vect-analyze.c: Fix comment typos.
1279
1280 2005-02-17  Andreas Krebbel  <krebbel1@de.ibm.com>
1281
1282         * builtins.c (expand_builtin_return_addr): Remove tem parameter.
1283         tem becomes a local variable which is set to the value of the
1284         back end defined INITIAL_FRAME_ADDRESS macro.
1285         (expand_builtin_frame_address): Omit the base parameter to
1286         expand_builtin_return_addr.
1287         (expand_builtin_profile_func): Likewise.
1288         * config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Define new macro.
1289         (DYNAMIC_CHAIN_ADDRESS): Remove the case for the initial frame.
1290         * doc/tm.texi: Documentation for INITIAL_FRAME_ADDRESS_RTX added.
1291
1292 2005-02-17  Jakub Jelinek  <jakub@redhat.com>
1293
1294         * config/s390/s390.c (s390_alloc_pool, s390_free_pool,
1295         s390_chunkify_start): Use BITMAP_ALLOC and BITMAP_FREE.
1296         * config/frv/frv.c (frv_function_epilogue): Likewise.
1297
1298 2005-02-17  Daniel Berlin  <dberlin@dberlin.org>
1299
1300         * lambda-code (perfect_nestify): Remove mark/unmark
1301         for rewriting hack.
1302         * tree-loop-linear.c (linear_transform_loops): Add
1303         rewrite_into_ssa call so that ssa is correct for
1304         rewriting into loop closed.
1305
1306 2005-02-17  Nathan Sidwell  <nathan@codesourcery.com>
1307
1308         * bitmap.h (BITMAP_XMALLOC, BITMAP_XFREE): Remove.
1309         * bb-reorder.c (duplicate_computed_gotos): Use BITMAP_ALLOC and
1310         BITMAP_FREE.
1311         * bt-load.c (btr_def_live_range, combine_btr_defs,
1312         migrate_btr_def, migrate_btr_defs): Likewise.
1313         * cfgcleanup.c (thread_jump): Likewise.
1314         * cfgloop.c (get_loop_body_in_bfs_order): Likewise.
1315         * df.c (df_insn_table_realloc, df_bitmaps_alloc, df_bitmaps_free,
1316         df_alloc, df_free, df_du_chain_create, df_bb_rd_local_compute,
1317         df_rd_local_compute, df_reg_info_compute): Likewise.
1318         * dominance.c (init_dom_info, free_dom_info): Likewise.
1319         * flow.c (init_propagate_block_info,
1320         free_propagate_block_info): Likewise.
1321         * gcse.c (alloc_gcse_mem, free_gcse_mem): Likewise.
1322         * global.c (allocate_bb_info, free_bb_info, calculate_reg_pav,
1323         modify_reg_pav): Likewise.
1324         * loop-invariant.c (find_defs, find_invariant_insn,
1325         find_invariants, free_inv_motion_data): Likewise.
1326         * predict.c (tree_predict_by_opcode,
1327         estimate_bb_frequencies): Likewise.
1328         * stmt.c (expand_case): Likewise.
1329         * tree-cfg.c (tree_duplicate_sese_region): Likewise.
1330         * tree-dfa.c (mark_new_vars_to_rename): Likewise.
1331         * tree-if-conv.c (get_loop_body_in_if_conv_order): Likewise.
1332         * tree-into-ssa.c (insert_phi_nodes_for, def_blocks_free,
1333         get_def_blocks_for, mark_def_site_blocks, rewrite_into_ssa,
1334         rewrite_ssa_into_ssa): Likewise.
1335         * tree-optimize.c (tree_rest_of_compilation): Likewise.
1336         * tree-outof-ssa.c (new_temp_expr_table, free_temp_expr_table,
1337         analyze_edges_for_bb, perform_edge_inserts): Likewise.
1338         * tree-scalar-evolution.c (scev_initialize, scev_finalize): Likewise.
1339         * tree-sra.c (tree_sra): Likewise.
1340         * tree-ssa-alias.c (init_alias_info, delete_alias_info): Likewise.
1341         * tree-ssa-ccp.c (ccp_fold_builtin): Likewise.
1342         * tree-ssa-dce.c (tree_dce_init, tree_dce_done): Likewise.
1343         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
1344         * tree-ssa-dse.c (tree_ssa_dse): Likewise.
1345         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_var):
1346         Likewise.
1347         * tree-ssa-live.c (new_tree_live_info, delete_tree_live_info,
1348         calculate_live_on_entry, calculate_live_on_exit,
1349         build_tree_conflict_graph): Likewise.
1350         * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize_init, record_use,
1351         record_important_candidates, set_use_iv_cost, find_depends,
1352         determine_use_iv_costs, iv_ca_new, iv_ca_free, free_loop_data,
1353         tree_ssa_iv_optimize_finalize): Likewise.
1354         * tree-ssa-loop-manip.c (add_exit_phis_var, get_loops_exit,
1355         find_uses_to_rename_use, rewrite_into_loop_closed_ssa,
1356         tree_duplicate_loop_to_header_edge): Likewise.
1357         * tree-ssa-pre.c (init_pre, fini_pre): Likewise.
1358         * tree-ssa.c (verify_flow_insensitive_alias_info,
1359         verify_name_tags, verify_ssa, init_tree_ssa,
1360         delete_tree_ssa): Likewise.
1361         * tree-ssanames.c (marked_ssa_names, init_ssanames,
1362         fini_ssanames): Likewise.
1363         * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Likewise.
1364
1365 2005-02-17  Ralf Corsepius  <ralf.corsepius@rtems.org>
1366
1367         * config/rs6000/t-rtems: Completely reworked.
1368
1369 2005-02-17  Ira Rosen  <irar@il.ibm.com>
1370
1371         * tree-data-ref.c (array_base_name_differ_p): Remove gcc_assert.
1372
1373 2005-02-17  Ira Rosen  <irar@il.ibm.com>
1374
1375         * tree-vect-analyze.c (vect_analyze_pointer_ref_access): Use
1376         POINTER_TYPE_P when checking that type is a pointer.
1377         (vect_get_memtag): Remove.
1378         (vect_address_analysis): Use POINTER_TYPE_P. Call
1379         vect_object_analysis with dummy parameter for memtag.
1380         (vect_object_analysis): Extract memtag (functionality that
1381         used to be in vect_get_memtag and moved here). Fix printings.
1382         (vect_analyze_data_refs): Fix comment. Call vect_object_analysis
1383         with correct parameters. Remove call to vect_get_memtag.
1384
1385 2005-02-17  Dorit Naishlos  <dorit@il.ibm.com>
1386
1387         * Makefile.in (tree-vect-analyze.o, tree-vect-transform.o): New.
1388         (tree-vectorizer.o): Added missing dependencies.
1389
1390         * tree-vectorizer.h (vect_dump, vect_verbosity_level): Added extern
1391         decleration.
1392         (slpeel_tree_peel_loop_to_edge): Function externalized (had a static
1393         declaration in tree-vectorizer.c, now has an extern declaration in
1394         tree-vectorizer.h).
1395         (slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
1396         slpeel_verify_cfg_after_peeling, vect_strip_conversion,
1397         get_vectype_for_scalar_type, vect_is_simple_use,
1398         vect_is_simple_iv_evolution, vect_can_force_dr_alignment_p,
1399         vect_supportable_dr_alignment, new_loop_vec_info, destroy_loop_vec_info,
1400         new_stmt_vec_info, vect_analyze_loop, vectorizable_load,
1401         vectorizable_store, vectorizable_operation, vectorizable_assignment,
1402         vect_transform_loop, vect_print_dump_info, vect_set_verbosity_level,
1403         find_loop_location): Likewise.
1404
1405         * tree-vectorizer.c (langhooks.h): #include removed.
1406         (slpeel_tree_peel_loop_to_edge): Function externalized. Declaration
1407         moved to tree-vectorized.h.
1408         (slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
1409         slpeel_verify_cfg_after_peeling, vect_strip_conversion,
1410         get_vectype_for_scalar_type, vect_is_simple_use,
1411         vect_is_simple_iv_evolution, vect_can_force_dr_alignment_p,
1412         vect_supportable_dr_alignment, new_loop_vec_info,
1413         destroy_loop_vec_info, new_stmt_vec_info, vect_print_dump_info,
1414         vect_set_verbosity_level, find_loop_location): Likewise.
1415
1416         (vect_analyze_loop): Function externalized. Declaration moved to
1417         tree-vectorized.h. Function definition moved to tree-vect-analyze.c.
1418         (vect_analyze_loop_form): Moved to tree-vect-analyze.c.
1419         (vect_mark_stmts_to_be_vectorized, vect_analyze_scalar_cycles,
1420         vect_analyze_data_ref_accesses, vect_analyze_data_ref_dependences,
1421         vect_analyze_data_refs_alignment, vect_compute_data_refs_alignment,
1422         vect_enhance_data_refs_alignment, vect_analyze_operations,
1423         exist_non_indexing_operands_for_use_p, vect_mark_relevant,
1424         vect_stmt_relevant_p, vect_get_loop_niters,
1425         vect_analyze_data_ref_dependence, vect_compute_data_ref_alignment,
1426         vect_analyze_data_ref_access, vect_analyze_pointer_ref_access,
1427         vect_can_advance_ivs_p, vect_get_ptr_offset, vect_analyze_offset_expr,
1428         vect_base_addr_differ_p, vect_object_analysis, vect_address_analysis,
1429         vect_get_memtag): Likewise.
1430
1431         (vectorizable_load): Function externalized. Declaration moved to
1432         tree-vectorized.h. Function definition moved to tree-vect-transform.c.
1433         (vectorizable_store, vectorizable_operation, vectorizable_assignment,
1434         vect_transform_loop): Likewise.
1435         (vect_transform_stmt): Moved to tree-vect-transform.c.
1436         (vect_align_data_ref, vect_create_destination_var,
1437         vect_create_data_ref_ptr, vect_create_index_for_vector_ref,
1438         vect_create_addr_base_for_vector_ref, vect_get_new_vect_var,
1439         vect_get_vec_def_for_operand, vect_init_vector,
1440         vect_finish_stmt_generation, vect_generate_tmps_on_preheader,
1441         vect_build_loop_niters, vect_update_ivs_after_vectorizer,
1442         vect_gen_niters_for_prolog_loop, vect_update_inits_of_dr,
1443         vect_update_inits_of_drs, vect_do_peeling_for_alignment,
1444         vect_do_peeling_for_loop_bound): Likewise.
1445
1446         * tree-vect-analyze.c: New file.
1447         * tree-vect-transform.c: New file.
1448
1449 2005-02-17  Jason Merrill  <jason@redhat.com>
1450
1451         PR mudflap/19319, c++/19317
1452         * gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Make return
1453         slot explicit.
1454
1455 2005-02-17  Gerald Pfeifer  <gerald@pfeifer.com>
1456
1457         * doc/install.texi (Specific): Update link for Darwin-specific
1458         tool binary site.
1459
1460 2005-02-16  James A. Morrison  <phython@gcc.gnu.org>
1461
1462         * fold-const.c (invert_truthvalue): <INTEGER_CST>: Call
1463         constant_boolean_node.
1464
1465 2005-02-16  David Edelsohn  <edelsohn@gnu.org>
1466
1467         PR target/19019
1468         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
1469         * config/rs6000/t-aix52 (SHLIB_MAPFILES): Same.
1470
1471 2005-02-16  Richard Henderson  <rth@redhat.com>
1472
1473         PR 19920
1474         * libgcc2.c (WORD_SIZE): Remove all definitions; replace uses
1475         with W_TYPE_SIZE.
1476         (HIGH_WORD_COEFF, HIGH_HALFWORD_COEFF): Remove all definitions;
1477         replace uses with Wtype_MAXp1_F.
1478         (L_fixunstfdi, L_fixtfdi, L_floatditf, L_fixunsxfdi, L_fixxfdi,
1479         L_floatdixf, L_fixunsxfsi, L_fixunsdfdi, L_floatdidf, L_fixunsdfsi,
1480         L_powidf2, L_powixf2, L_powitf2, L_muldc3, L_divdc3, L_mulxc3,
1481         L_divxc3, L_multc3, L_divtc3): Protect with HAVE_DFMODE, HAVE_XFMODE,
1482         and HAVE_TFMODE as appropriate.
1483         (__fixunssfDI): Provide an implementation that doesn't need DFmode.
1484         (__floatdisf): Likewise.
1485         * libgcc2.h (LIBGCC2_DOUBLE_TYPE_SIZE): New.
1486         (HAVE_DFMODE, HAVE_XFMODE, HAVE_TFMODE): New.
1487         (Wtype_MAXp1_F): New.
1488         (DFtype, DCtype, __fixdfdi, __floatdidf, __fixunsdfSI, __fixunsdfDI,
1489         __powidf2, __divdc3, __muldc3): Protect with HAVE_DFMODE.
1490
1491 2005-02-16  Richard Earnshaw  <rearnsha@arm.com>
1492
1493         * PR target/19162
1494         * arm.c (arm_apply_result_size): New function.
1495         * arm.h (APPLY_RESULT_SIZE): Define.
1496         * arm-protos.h (arm_apply_result_size): Add prototype.
1497         * arm.md (RO_REGNUM, FPA_F0_REGNUM, FPA_F7_REGNUM): New constants.
1498         (movxf): New expand.
1499         (ldmsi_postinc4_thumb, stmsi_postinc4_thumb): New patterns for Thumb.
1500         (call_value_symbol): Remove predicate for operand 0.
1501         (call_value_insn, sibcall_value, sibcall_value_insn): Likewise.
1502         (untyped_call): Rework to correclty return values for any type.
1503         (untyped_return): New expand.
1504         * fpa.md (movxf_fpa): Simplify and use sfm/lfm when appropriate.
1505
1506 2005-02-16  Stan Shebs  <shebs@apple.com>
1507
1508         * config.gcc (powerpc-*-darwin*): Use fragment for Darwin 8 or later.
1509         * config/rs6000/t-darwin8: New, for 64-bit multilib.
1510
1511 2005-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
1512
1513         * doc/install.texi (sparc-sun-solaris2*): Document required GMP
1514         configure settings on Solaris 7 and later.
1515
1516 2005-02-16  Diego Novillo  <dnovillo@redhat.com>
1517
1518         PR tree-optimization/19865
1519         * tree-optimize.c (init_tree_optimization_passes): Run
1520         pass_may_alias after pass_sra.
1521
1522 2005-02-16  Richard Henderson  <rth@redhat.com>
1523             Stuart Hastings  <stuart@apple.com>
1524
1525         PR debug/19521
1526         * dbxout.c (dbxout_function_end): Take decl parameter; update callers.
1527         Do nothing if debug info suppressed for this function.
1528         (dbxout_begin_function): Early exit if debug info suppressed for
1529         this function.
1530
1531 2005-02-16  Kazu Hirata  <kazu@cs.umass.edu>
1532
1533         PR target/20007
1534         * config/ip2k/ip2k.c (ip2k_reorg): Adjust calls to
1535         find_basic_blocks.
1536         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
1537
1538         PR tree-optimization/19967
1539         * builtins.c (expand_builtin_strstr, expand_builtin_strpbrk,
1540         expand_builtin_strchr, expand_builtin_strrchr): Take a new
1541         argument TYPE.  Adjust calls to fold_builtin_XXX.
1542         (expand_builtin, fold_builtin_1): Adjust calls to
1543         expand_builtin_XXX.
1544         (fold_builtin_strchr, fold_builtin_strpbrk,
1545         fold_builtin_strstr, fold_builtin_strrchr): Convert the folded
1546         result to a requested type TYPE.
1547
1548 2005-02-16  Jakub Jelinek  <jakub@redhat.com>
1549
1550         PR middle-end/19857
1551         * fold-const.c (fold): Don't optimize (T)(x & cst) to
1552         (T)x & (T)cst if (T)cst overflows.
1553         * convert.c (convert_to_integer) <case POINTER_TYPE>: Pass
1554         TYPE_UNSIGNED (type) as type_for_size's UNSIGNEDP argument.
1555
1556 2005-02-15  Jeff Law  <law@redhat.com>
1557
1558         * gcse.c (blocks_with_calls): New bitmap.
1559         (alloc_gcse_mem): Allocate it.
1560         (free_gcse_mem): Free it.
1561         (clear_modifY_mem_tables): Clear it.
1562         (record_last_mem_set_info): Set the proper bit in BLOCK_WITH_CALLS
1563         when we encounter CALL_INSNs.
1564         (compute_transp, case MEM): Handle blocks with calls separate
1565         from blocks without calls.  Use bitmap iterators rather than
1566         FOR_EACH_BB.
1567
1568 2005-02-15  Peter O'Gorman  <peter@pogma.com>
1569
1570         PR bootstrap/18810
1571         * mklibgcc.in (vis_hide): Use a temporary object file, not
1572         -o /dev/null.
1573
1574 2005-02-15  Andy Hutchinson  <HutchinsonAndy@netscape.net>
1575
1576         PR target/19924
1577         * config/avr/avr.h (MODES_TIEABLE_P): Define to 1 to allow subreg
1578         access optimization.
1579
1580 2005-02-15  David Edelsohn  <edelsohn@gnu.org>
1581             Alan Modra  <amodra@bigpond.net.au>
1582
1583         PR target/19019
1584         * config/rs6000/darwin-ldouble.c (_xlqadd): Rename to __gcc_qadd.
1585         (_xlqsub): Rename to __gcc_qsub.
1586         (_xlqmul): Rename to __gcc_qmul.
1587         (_xlqdiv): Rename to __gcc_qdiv.
1588         Provide versioned symbol aliases with old names.
1589         * config/rs6000/libgcc-ppc64.ver: Rename symbols.
1590         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Rename symbols.
1591         * config/rs6000/t-aix43 (LIB2FUNCS_EXTRA): New.
1592         * config/rs6000/t-aix52 (LIB2FUNCS_EXTRA): New.
1593         * config/rs6000/t-newas (LIB2FUNCS_EXTRA): New.
1594
1595 2005-02-15  James A. Morrison  <phython@gcc.gnu.org>
1596
1597         * fold-const.c (fold): Fold -(~A) to A + 1.  Fold ~(-A) to A - 1.
1598         Fold ~(A - 1) and ~(A + -1) to -A.
1599
1600 2005-02-15  James A. Morrison  <phython@gcc.gnu.org>
1601
1602         PR pch/14940
1603         PR target/19300
1604         * config/host-linux.c (linux_gt_pch_use_address): Copy from
1605         config/pa/pa-host.c:pa_gt_pch_use_address.
1606
1607 2005-02-15  Daniel Berlin  <dberlin@dberlin.org>
1608
1609         * tree-vn.c (get_value_handle): Make sure that given an
1610         is_gimple_min_invariant expression, we always return it.
1611
1612 2005-02-15  Kazu Hirata  <kazu@cs.umass.edu>
1613
1614         * passes.c (rest_of_handle_gcse): Fix a comment.
1615
1616 2005-02-15  Jeff Law  <law@redhat.com>
1617
1618         * gcse.c (canon_modify_mem_set_list_set): Kill unnecessary
1619         bitmap.
1620         (alloc_gcse_mem, free_gcse_mem): Corresponding changes.
1621         (canon_list_insert, record_last_mem_set_info): Similarly.
1622         (clear_modify_mem_tables): Similarly.
1623
1624 2005-02-15  Kazu Hirata  <kazu@cs.umass.edu>
1625
1626         * bitmap.c, bitmap.h, lambda-code.c, tree-dfa.c, tree-dump.c,
1627         tree-dump.h, tree-ssa-loop-manip.c, value-prof.c,
1628         config/mips/mips.md, config/rs6000/aix.h,
1629         config/rs6000/beos.h, config/rs6000/sysv4.h: Update copyright.
1630
1631 2005-02-15  Richard Henderson  <rth@redhat.com>
1632
1633         * bb-reorder.c (find_traces_1_round): Force fallthru edge from a
1634         call to be best_edge.
1635
1636 2005-02-14  Kazu Hirata  <kazu@cs.umass.edu>
1637
1638         * basic-block.h: Adjust the prototype for find_basic_blocks.
1639         * cfgbuild.c (find_basic_blocks): Remove unused arguments.
1640         * passes.c (rest_of_handle_loop_optimize): Adjust the call to
1641         find_basic_blocks.
1642
1643         * flow.c (recompute_reg_usage): Remove all arguments.
1644         * passes.c (rest_of_compilation): Adjust the call to
1645         recompute_reg_usage.
1646         * rtl.h: Adjust the prototype for recompute_reg_usage.
1647
1648 2005-02-14  Daniel Berlin  <dberlin@dberlin.org>
1649
1650         * tree-dump.c (dump_files): Update to reflect new member
1651         of dump_file_info.
1652         (dump_register): Add new argument.
1653         Set glob name.
1654         (dump_switch_p_1): Check against glob name if doglob was passed.
1655         (dump_switch_p): Check against regular first, then glob if
1656         we didn't have any hits on the dump name.
1657         * tree-optimize.c (register_one_dump_file):
1658         Pass in glob name as well.
1659         * tree-pass.h (struct dump_file_info): Add glob
1660         member.
1661
1662 2005-02-14  Joseph S. Myers  <joseph@codesourcery.com>
1663
1664         PR preprocessor/16323
1665         * doc/invoke.texi: Document that -Wendif-labels is on by default.
1666
1667 2005-02-14  David Edelsohn  <edelsohn@gnu.org>
1668
1669         PR target/19019
1670         * config/rs6000/rs6000.md (trunctfdf2): Change to define_expand.
1671         (trunctfdf2_internal1): New.
1672         (trunctfdf2_internal2): Renamed from trunctfdf2.
1673
1674 2005-02-14  Diego Novillo  <dnovillo@redhat.com>
1675
1676         PR tree-optimization/19853
1677         * tree-dfa.c (add_referenced_var): Always examine DECL_INITIAL.
1678
1679 2005-02-14  Kazu Hirata  <kazu@cs.umass.edu>
1680
1681         * passes.c (rest_of_handle_loop_optimize): Remove calls to
1682         delete_dead_jumptables and cleanup_cfg.
1683
1684 2005-02-14  Ulrich Weigand  <uweigand@de.ibm.com>
1685
1686         * reload.c (find_reloads): Swap address_reloaded flags when
1687         swapping commutative operands.
1688
1689 2005-02-14  Sebastian Pop  <pop@cri.ensmp.fr>
1690
1691         * lambda-code.c (lambda_loopnest_to_gcc_loopnest, perfect_nestify):
1692         Use standard_iv_increment_position for computing the bsi position
1693         for create_iv.
1694         * tree-ssa-loop-manip.c (create_iv): Add a comment on how to compute
1695         the bsi position.
1696
1697 2005-02-13  Zdenek Dvorak  <dvorakz@suse.cz>
1698
1699         PR target/17428
1700         * cfgrtl.c (safe_insert_insn_on_edge): Avoid extending
1701         life range of hard registers.
1702         * value-prof.c (insn_prefetch_values_to_profile): Only
1703         scan normal insns.
1704
1705         * value-prof.c (rtl_find_values_to_profile): Do not look for values to
1706         profile in libcalls.
1707
1708 2005-02-13  Nathan Sidwell  <nathan@codesourcery.com>
1709
1710         * bitmap.h (bitmap_and_compl_into): Return bool.
1711         * bitmap.c (bitmap_and_compl_into): Return changed flag.
1712
1713 2005-02-13  James A. Morrison  <phython@gcc.gnu.org>
1714
1715         PR tree-optimization/19944
1716         * fold-const.c (fold): Re-add ABS_EXPR folding.
1717
1718 2005-02-13  David Edelsohn  <edelsohn@gnu.org>
1719
1720         PR target/19019
1721         * config/rs6000/aix.h ({TARGET,MASK}_XL_CALL): Rename to
1722         {TARGET,MASK}_XL_COMPAT.
1723         (SUBTARGET_SWITCHES): Rename xl-call to xl-compat.  Use
1724         MASK_XL_COMPAT.
1725         * config/rs6000/beos.h ({TARGET,MASK}_XL_CALL): Remove.
1726         * config/rs6000/rs6000.c (function_arg): Change TARGET_XL_CALL to
1727         TARGET_XL_COMPAT.
1728         (rs6000_arg_partial_bytes): Same.
1729         (rs6000_generate_compare): Generate PARALLEL for compare if TFmode
1730         and XL compatibility enabled.
1731         * config/rs6000/rs6000.h (TARGET_XL_CALL): Rename to TARGET_XL_COMPAT.
1732         * config/rs6000/rs6000.md (cmptf_internal1): Add !TARGET_XL_COMPAT
1733         test to final condition.
1734         (cmptf_internal2): New.
1735         * doc/invoke.texi (RS/6000 Subtarget Options): Change xl-call to
1736         xl-compat.  Add TFmode information to description.
1737
1738 2005-02-13  Kazu Hirata  <kazu@cs.umass.edu>
1739
1740         * flags.h, read-rtl.c, tree-ssa-live.h: Update copyright.
1741
1742 2005-02-13  Jason Merrill  <jason@redhat.com>
1743
1744         PR c++/16405
1745         * fold-const.c (fold_indirect_ref_1): Split out from...
1746         (build_fold_indirect_ref): Here.
1747         (fold_indirect_ref): New fn.
1748         * tree.h: Declare it.
1749         * gimplify.c (gimplify_compound_lval): Call fold_indirect_ref.
1750         (gimplify_modify_expr_rhs): Likewise.
1751         (gimplify_expr): Likewise.
1752
1753 2005-02-13  James A. Morrison  <phython@gcc.gnu.org>
1754
1755         PR tree-optimization/14303
1756         PR tree-optimization/15784
1757         * fold-const.c (fold): Fold ABS_EXPR<x> >= 0 to true, when possible.
1758         Fold ABS_EXPR<x> < 0 to false.  Fold ABS_EXPR<x> == 0 to x == 0 and
1759         ABS_EXPR<x> != 0 to x != 0.
1760
1761 2005-02-12  Kazu Hirata  <kazu@cs.umass.edu>
1762
1763         * c-tree.h, combine.c, expmed.c, flow.c, libgcc2.c,
1764         simplify-rtx.c, tree-ssa-live.h: Fix comment typos.  Follow
1765         spelling conventions.
1766
1767         * passes.c (rest_of_handle_gcse): Don't run cse_main and
1768         delete_trivially_dead_insns too many times.
1769
1770         * passes.c (rest_of_handle_gcse): Remove dead assignments to
1771         tem and tem2.
1772
1773 2005-02-12  Ira Rosen  <irar@il.ibm.com>
1774
1775         * tree-vectorizer.c (vect_get_base_and_offset): Remove.
1776         (vect_is_simple_iv_evolution): Remove redundant parameter
1777         and step check.
1778         (vect_analyze_scalar_cycles): Call vect_is_simple_iv_evolution
1779         without last parameter.
1780         (vect_analyze_pointer_ref_access): Get access_fn as parameter.
1781         Return pointer step. Call vect_is_simple_iv_evolution without
1782         last parameter. Check only that the step is multiple of size
1783         type. Remove stmt_vinfo updates.
1784         (vect_get_memtag_and_dr): Remove.
1785         (vect_get_memtag): New function.
1786         (vect_address_analysis): New function.
1787         (vect_object_analysis): New function.
1788         (vect_analyze_data_refs): Call vect_object_analysis and
1789         vect_get_memtag. Update stmt_vinfo fields.
1790
1791 2005-02-12  Ira Rosen  <irar@il.ibm.com>
1792
1793         * tree-data-ref.c (array_base_name_differ_p): Check that the bases
1794         exist and are objects. Remove checks for pointer.
1795         * tree-vectorizer.c (vect_create_addr_base_for_vector_ref): Use
1796         STMT_VINFO_VECT_DR_BASE_ADDRESS instead of DR_BASE_NAME.
1797         (vect_create_data_ref_ptr): Likewise.
1798         (vect_base_addr_differ_p): New function.
1799         (vect_analyze_data_ref_dependence): Call vect_base_addr_differ_p.
1800         (vect_analyze_pointer_ref_access): Add output parameter - ptr_init.
1801         Don't set the DR_BASE_NAME field of data-ref.
1802         (vect_get_memtag_and_dr): Use ptr_init instead of DR_BASE_NAME.
1803
1804 2005-02-12  Uros Bizjak  <uros@kss-loka.si>
1805
1806         * optabs.h (enum optab_index): Add new OTI_ldexp.
1807         (ldexp_optab): Define corresponding macro.
1808         * optabs.c (init_optabs): Initialize ldexp_optab.
1809         * genopinit.c (optabs): Implement ldexp_optab using ldexp?f3
1810         patterns.
1811         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_LDEXP{,F,L}
1812         using ldexp_optab.
1813         (expand_builtin): Expand BUILT_IN_LDEXP{,F,L} using
1814         expand_builtin_mathfn_2 if flag_unsafe_math_optimizations is set.
1815
1816         * config/i386/i386.md (ldexpsf3, ldexpdf3, ldexpxf3): New expanders
1817         to implement ldexpf, ldexp and ldexpl built-ins as inline x87
1818         intrinsics.
1819
1820 2005-02-12  Ira Rosen  <irar@il.ibm.com>
1821
1822         * tree-vectorizer.h (struct _stmt_vec_info): Rename a field: base
1823         to base_address.
1824         * tree-vectorizer.c (new_stmt_vec_info): Rename the above field of
1825         stmt_vec_info.
1826         (vect_get_base_and_offset): Always return an address.
1827         (vect_create_addr_base_for_vector_ref): Remove treatment for
1828         different data reference types.
1829         (vect_compute_data_ref_alignment): Rename base to base_address in
1830         stmt_vec_info. Get the object in order to force its alignment.
1831         (vect_get_memtag_and_dr): Rename base to base_address in
1832         stmt_vec_info. Extract the object for memtag analysis.
1833
1834 2005-02-12  Hans-Peter Nilsson  <hp@axis.com>
1835
1836         PR regression/19898.
1837         * config/cris/cris.c (cris_notice_update_cc): When testing if insn
1838         changes cc_status, use apply modified_in_p to part of cc_status
1839         and insn, not cris_reg_overlap_mentioned_p on SET_DEST of insn
1840         body.
1841
1842 2005-02-11  Richard Henderson  <rth@redhat.com>
1843
1844         * tree-complex.c (expand_complex_libcall): New.
1845         (expand_complex_multiplication): Use it for c99 compliance.
1846         (expand_complex_division): Likewise.
1847         * fold-const.c (fold_complex_add, fold_complex_mult): New.
1848         (fold): Call them.
1849         * builtins.c (built_in_names): Remove const.
1850         * tree.c (build_common_builtin_nodes): Build complex arithmetic
1851         builtins.
1852         * tree.h (BUILT_IN_COMPLEX_MUL_MIN, BUILT_IN_COMPLEX_MUL_MAX): New.
1853         (BUILT_IN_COMPLEX_DIV_MIN, BUILT_IN_COMPLEX_DIV_MAX): New.
1854         (built_in_names): Remove const.
1855         * c-common.c (c_common_type_for_mode): Handle complex modes.
1856         * flags.h, toplev.c (flag_complex_method): Rename from
1857         flag_complex_divide_method.
1858         * libgcc2.c (__divsc3, __divdc3, __divxc3, __divtc3,
1859         __mulsc3, __muldc3, __mulxc3, __multc3): New.
1860         * libgcc2.h: Declare them.
1861         * libgcc-std.ver: Export them.
1862         * mklibgcc.in (lib2funcs): Build them.
1863
1864 2005-02-11  Steven Bosscher  <stevenb@suse.de>
1865
1866         PR tree-optimization/19876
1867         Partially revert my change from 2005-01-14
1868         * tree-ssa-pre.c (compute_antic_aux): Make recursive once again...
1869         (compute_antic): ...and remove the loop here.
1870
1871 2005-02-11  Jakub Jelinek  <jakub@redhat.com>
1872
1873         PR middle-end/19858
1874         * fold-const.c (make_bit_field_ref): If bitpos == 0 and bitsize
1875         is number of inner's bits, avoid creating a BIT_FIELD_REF.
1876
1877         * config/rs6000/sysv4.h (ENDFILE_LINUX_SPEC): Use crtendS.o instead of
1878         crtend.o if -pie.  Use %{x:a;:b} spec syntax.
1879
1880 2005-02-11  Daniel Jacobowitz  <dan@codesourcery.com>
1881
1882         * config/mips/linux-unwind.h (mips_fallback_frame_state): Adjust
1883         offsets for the big-endian 32-bit case.
1884
1885 2005-02-11  Joseph S. Myers  <joseph@codesourcery.com>
1886
1887         * config/ia64/hpux.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
1888
1889 2005-02-11  Dale Johannesen  <dalej@apple.com>
1890
1891         * cselib.c (cselib_process_insn):  Clear out regs where
1892         HARD_REGNO_CALL_PART_CLOBBERED is true at a call.
1893         * reload.c (find_equiv_reg): Ditto.
1894
1895 2005-02-11  Ian Lance Taylor  <ian@airs.com>
1896
1897         * read-rtl.c (read_rtx_1): Give fatal error if we see a vector
1898         with no elements.
1899
1900         * tree.c (build_function_type_list): Work correctly if there are
1901         no arguments.
1902
1903 2005-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
1904
1905         * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccs",
1906         "*cmpsi_ccs"): Use %h instead of %c to print immediate operand.
1907         ("*zero_extendhisi2_64", "*zero_extendhisi2_31"): Choose based on
1908         TARGET_ZARCH instead of TARGET_64BIT.
1909
1910 2005-02-11  Ralf Corsepius  <ralf.corsepius@rtems.org>
1911
1912         * config/rs6000/t-rtems:
1913         (MULTILIB_OPTIONS): Remove mcpu=602.
1914         (MUTLILIB_DIRNAMES): Remove m602.
1915         (MULTILIB_MATCHES): Add ${MULTILIB_MATCHES_FLOAT}.
1916         Let mcpu=602 match mcpu=603.
1917         (MULTILIB_NEW_EXCEPTIONS_ONLY): Add mcpu=601, mcpu=602, mcpu=m603.
1918
1919 2005-02-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1920
1921         * pa/linux-unwind.h (pa32_fallback_frame_state): Handle misaligned
1922         signal trampolines.
1923
1924 2005-02-10  David Daney  <ddaney@avtrex.com>
1925
1926         * config/alpha/linux-unwind.h: Add exception clause to copyright.
1927         * config/i386/linux-unwind.h: Likewise.
1928         * config/ia64/linux-unwind.h: Likewise.
1929         * config/mips/linux-unwind.h: Likewise.
1930         * config/pa/linux-unwind.h: Likewise.
1931         * config/rs6000/linux-unwind.h: Likewise.
1932         * config/s390/linux-unwind.h: Likewise.
1933         * config/sh/linux-unwind.h: Likewise.
1934         * config/sparc/linux-unwind.h: Likewise.
1935
1936 2005-02-10  Steven Bosscher  <stevenb@suse.de>
1937
1938         PR tree-optimization/17549
1939         * tree-outof-ssa.c (find_replaceable_in_bb): Do not allow
1940         TER to replace a DEF with its expression if the DEF and the
1941         rhs of the expression we replace into have the same root
1942         variable.
1943
1944 2005-02-10  Richard Sandiford  <rsandifo@redhat.com>
1945
1946         * config/mips/mips.md: Fix the placement of the match_scratch in the
1947         lea64 peephole2.
1948
1949 2005-02-10  Kazu Hirata  <kazu@cs.umass.edu>
1950
1951         * cse.c, tree-ssa-loop-ivopts.c, config/rs6000/linux-unwind.h:
1952         Fix comment typos.
1953
1954 2005-02-10  Zdenek Dvorak  <dvorakz@suse.cz>
1955
1956         * tree-ssa-loop-ivopts.c (determine_base_object): Ignore casts.
1957         (strip_offset): Handle addresses.
1958         (add_address_candidates): Use strip_offset.
1959         (difference_cost): Reflect strip_offset change.
1960         (force_var_cost, difference_cost): Strip nops.
1961
1962 2005-02-10  Kazu Hirata  <kazu@cs.umass.edu>
1963
1964         * df.h (DF_REF_MODE_CHANGE, DF_REF_MEM_OK): Remove.
1965
1966         * builtins.def, haifa-sched.c, libgcc2.c, libgcc2.h,
1967         tree-ssa-loop-ivcanon.c, tree-ssa-loop-niter.c,
1968         config/cris/cris-protos.h, config/cris/cris.c: Update
1969         copyright.
1970
1971 2005-02-10  Jeff Law  <law@redhat.com>
1972
1973         * tree-ssa-dom.c (thread_across_edge): Use xmalloc, not xcalloc.
1974         (lookup_avail_expr): Similarly.
1975
1976 2005-02-10  Richard Guenther  <rguenth@gcc.gnu.org>
1977
1978         * builtins.c (fold_builtin_powi): New function.
1979         (fold_builtin_1): Call it.
1980
1981 2005-02-10  Steven Bosscher  <stevenb@suse.de>
1982
1983         PR documentation/19309
1984         * doc/cpp.texi: The __GNUC__ and related predefined macros
1985         are also defined for the "standalone" cpp.
1986         Some non-GCC compilers may also define __GNUC__.
1987
1988 2005-02-10  Jakub Jelinek  <jakub@redhat.com>
1989
1990         PR c/19342
1991         * c-typeck.c (common_type): New routine.  Old common_type renamed
1992         to...
1993         (c_common_type): ...this.
1994         (build_conditional_expr, build_binary_op): Use c_common_type instead
1995         of common_type.
1996
1997 2005-02-10  Steven Bosscher  <stevenb@suse.de>
1998
1999         * doc/md.texi: Replace @samp{length} with @code{length}.
2000
2001 2005-02-09  Zdenek Dvorak  <dvorakz@suse.cz>
2002
2003         PR tree-optimization/18687
2004         * tree-flow.h (find_loop_niter): Declare.
2005         * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables):
2006         Try using scev even for loops with more than one exit.
2007         * tree-ssa-loop-ivopts.c (struct loop_data): Removed niter field.
2008         (struct ivopts_data): Added niters field.
2009         (struct nfe_cache_elt): New.
2010         (nfe_hash, nfe_eq, niter_for_exit, niter_for_single_dom_exit): New
2011         functions.
2012         (tree_ssa_iv_optimize_init): Initialize niters cache.
2013         (determine_number_of_iterations): Removed.
2014         (find_induction_variables): Do not call determine_number_of_iterations.
2015         Access niters for single exit through niter_for_single_dom_exit.
2016         (add_iv_outer_candidates): Access niters for single exit through
2017         niter_for_single_dom_exit.
2018         (may_eliminate_iv): Take data argument.  Use niter_for_exit.  Do not use
2019         number_of_iterations_cond.
2020         (iv_period): New function.
2021         (determine_use_iv_cost_condition): Pass data to may_eliminate_iv.
2022         (may_replace_final_value): Take data argument.  Use
2023         niter_for_single_dom_exit.
2024         (determine_use_iv_cost_outer): Pass data to may_replace_final_value.
2025         (rewrite_use_compare): Pass data to may_eliminate_iv.
2026         (rewrite_use_outer): Pass data to may_replace_final_value.
2027         (free_loop_data): Clean up the niters cache.
2028         (tree_ssa_iv_optimize_finalize): Free the niters cache.
2029         (tree_ssa_iv_optimize_loop): Do not call loop_commit_inserts.
2030         * tree-ssa-loop-niter.c (find_loop_niter): New function.
2031         (find_loop_niter_by_eval): Use tree_int_cst_lt.
2032         (num_ending_zeros): Moved to tree.c.
2033         * tree.h (num_ending_zeros): Declare.
2034         * tree.c (num_ending_zeros): Moved from tree.c.
2035
2036 2005-02-09  Richard Henderson  <rth@redhat.com>
2037
2038         * builtins.c (DEF_BUILTIN): Add COND argument.
2039         * tree.h (DEF_BUILTIN): Likewise.
2040         * builtins.def (DEF_GCC_BUILTIN, DEF_LIB_BUILTIN, DEF_EXT_LIB_BUILTIN,
2041         DEF_C94_BUILTIN, DEF_C99_BUILTIN, DEF_C99_C90RES_BUILTIN): Update to
2042         match.
2043         (DEF_BUILTIN_STUB): New.
2044         (BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE, BUILT_IN_INIT_TRAMPOLINE,
2045         BUILT_IN_ADJUST_TRAMPOLINE, BUILT_IN_NONLOCAL_GOTO,
2046         BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT): Use it.
2047         * c-common.c (DEF_BUILTIN): Add COND argument.
2048         * tree.c (local_define_builtin): New.
2049         (build_common_builtin_nodes): New.
2050
2051 2005-02-09  Roger Sayle  <roger@eyesopen.com>
2052
2053         * fold-const.c (fold_strip_sign_ops): New function to simplify a
2054         floating point expression ignoring the sign of the result.
2055         (fold) <ABS_EXPR>: Use it to simplify fabs(x).
2056         (fold) <MULT_EXPR>: Use it to simplify x*x.
2057         * tree.h (fold_strip_sign_ops): Prototype here.
2058         * builtins.c (fold_builtin_copysign): Take an additional FNDECL
2059         argument.  Use fold_strip_sign_ops to simplify the first argument.
2060         (fold_builtin_pow):  Use fold_strip_sign_ops to simplify the
2061         first argument when the second argument is an even integer
2062         constant, but only with -funsafe_math_optimizations.
2063         (fold_builtin_1): Update call to fold_builtin_copysign.
2064
2065 2005-02-09  Ian Lance Taylor  <ian@airs.com>
2066
2067         PR middle-end/19583
2068         * gimple-low.c (try_catch_may_fallthru): In EH_FILTER_EXPR case,
2069         just check whether EH_FILTER_FAILURE falls through.
2070
2071 2005-02-09  Andreas Krebbel  <krebbel1@de.ibm.com>
2072
2073         * gcc/haifa-sched.c (schedule_block): Make queued sched group
2074         insns return to ready list in the next turn.
2075
2076 2005-02-09  Richard Guenther  <rguenth@gcc.gnu.org>
2077
2078         PR middle-end/19402
2079         * builtins.def: New __builtin_powi[lf].
2080         * builtins.c (mathfn_built_in): Handle BUILT_IN_POWI.
2081         (expand_builtin_powi): New function.
2082         (expand_builtin): Dispatch to expand_builtin_powi.
2083         * libgcc2.h: Add prototypes for __builtin_powi[lf].
2084         * libgcc2.c: Add __builtin_powi[lf] implementation.
2085         * mklibgcc.in: Add __builtin_powi[lf] to lib2funcs.
2086         * optabs.h: Add powi_optab.
2087         * optabs.c (init_optabs): Initialize powi_optab.
2088         * doc/extend.texi: Document __builtin_powi[lf].
2089
2090 2005-02-09  Dorit Naishlos  <dorit@il.ibm.com>
2091
2092         * tree-vectorizer.c (vect_set_dump_settings): Check that dump_file
2093         exists.
2094
2095 2005-02-09  Richard Guenther  <rguenth@gcc.gnu.org>
2096
2097         PR middle-end/19854
2098         * fold-const.c (try_move_mult_to_index): Remove redundant
2099         type argument.  Create ADDR_EXPR with correct type.
2100         (fold): Update callers of try_move_mult_to_index.  Convert
2101         result to the appropriate type.
2102
2103 2005-02-09  Roger Sayle  <roger@eyesopen.com>
2104
2105         PR target/19597
2106         * config/avr/avr.c (default_rtx_costs): Delete.
2107         (avr_operand_rtx_cost): New function.
2108         (avr_rtx_costs): Completely rewrite.
2109
2110 2005-02-08  Hans-Peter Nilsson  <hp@axis.com>
2111
2112         PR target/19806
2113         * config/cris/cris.c (in_code): New variable.
2114         (cris_output_addr_const): Now a static function, a wrapper for
2115         output_addr_const.
2116         (cris_asm_output_symbol_ref): New function, broken out SYMBOL_REF
2117         case from old cris_output_addr_const.
2118         (cris_asm_output_label_ref): Similar for LABEL_REF.
2119         (cris_output_addr_const_extra): Similar for UNSPEC.
2120         * config/cris/cris.h (OUTPUT_ADDR_CONST_EXTRA)
2121         (ASM_OUTPUT_SYMBOL_REF, ASM_OUTPUT_LABEL_REF): Define.
2122         * config/cris/cris-protos.h (cris_output_addr_const): Remove
2123         declaration.
2124         (cris_asm_output_symbol_ref, cris_output_addr_const_extra)
2125         (cris_asm_output_label_ref): Declare.
2126
2127 2005-02-08  Paolo Bonzini  <bonzini@gnu.org>
2128
2129         PR preprocessor/19801
2130         * doc/cppinternals.texi (Conventions, Lexer, Files): Adjust
2131         filenames that changed when libcpp was moved to the toplevel.
2132
2133 2005-02-07  Roger Sayle  <roger@eyesopen.com>
2134
2135         * simplify-rtx.c (simplify_relational_operation_1): Avoid creating
2136         zero extensions of BImode operands.  Call lowpart_subreg instead
2137         of gen_lowpart_common and gen_lowpart_SUBREG.
2138
2139 2005-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
2140
2141         PR ada/19489
2142         * libada-mk.in: Use cc_for_cross_gnattools, not cc_set_by_configure.
2143         * configure.ac: Set cc_for_cross_gnattools.
2144         * configure: Regenerate.
2145
2146 2005-02-08  Alan Modra  <amodra@bigpond.net.au>
2147
2148         PR target/19803
2149         * predict.c (PROB_VERY_UNLIKELY): Use 1% instead of 10%.
2150
2151 2005-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
2152
2153         PR debug/19327
2154         * dbxout.c (dbxout_symbol) <FUNCTION_DECL>: Skip inline instance
2155         of nested functions.
2156
2157 2005-02-07  Jonathan Wakely  <redi@gcc.gnu.org>
2158
2159         * doc/extend.texi: Document deprecated extensions allowing
2160         static floating-point members to have initializers and allowing
2161         floating-point literals in integral constant expressions.
2162
2163 2005-02-07  Kazu Hirata  <kazu@cs.umass.edu>
2164
2165         * cfgcleanup.c, df.h, diagnostic.c, rtl.c, tree-vectorizer.h,
2166         config/darwin7.h, config/mips/mips.c,
2167         config/rs6000/altivec.md, config/rs6000/darwin-tramp.asm:
2168         Update copyright.
2169
2170         * cse.c: Update comments.
2171
2172 2005-02-07  Richard Guenther  <rguenth@gcc.gnu.org>
2173
2174         PR middle-end/19775
2175         * builtins.c (fold_builtin_sqrt): Transform
2176         sqrt(pow(x,y)) to pow(fabs(x),y*0.5), not
2177         pow(x,y*0.5).
2178
2179 2005-02-07  Leehod Baruch  <leehod@il.ibm.com>
2180             Dorit Naishlos  <dorit@il.ibm.com>
2181
2182         * doc/invoke.texi (ftree-vectorizer-verbose): New.
2183         * opts.c (OPT_ftree_vectorizer_verbose_): New case for switch.
2184         * common.opt (ftree-vectorizer-verbose): New Flag for the vectorizer
2185         was added.
2186         * tree.h (vect_set_verbosity_level): New extern function declaration
2187         added.
2188         * tree-vectorizer.h (verbosity_levels): New enum type.
2189         * tree-vectorizer.c (vect_debug_stats): Function removed.
2190         (vect_debug_details): Likewise.
2191         (vect_verbosity_level): Global variable was defined and initialized.
2192         (vect_dump): Global variable definition.
2193         (vect_print_dump_info): New function.
2194         (vect_set_dump_settings): New function.
2195         (vect_set_verbosity_level): New function.
2196         (vectorize_loops): Add call to vect_set_dump_settings.
2197
2198         (slpeel_make_loop_iterate_ntimes): Dump condition was changed.
2199         (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
2200         (slpeel_tree_peel_loop_to_edge): Likewise.
2201
2202         (vect_analyze_offset_expr): Call to vect_print_dump_info with
2203         appropriate verbosity level instead of call to vect_debug_details
2204         or vect_debug_stats.
2205         (vect_get_base_and_offset):
2206         (vect_create_addr_base_for_vector_ref):
2207         (get_vectype_for_scalar_type):
2208         (vect_create_data_ref_ptr):
2209         (vect_init_vector):
2210         (vect_get_vec_def_for_operand):
2211         (vect_finish_stmt_generation):
2212         (vectorizable_assignment):
2213         (vectorizable_operation):
2214         (vectorizable_store):
2215         (vectorizable_load):
2216         (vect_transform_stmt):
2217         (vect_update_ivs_after_vectorizer):
2218         (vect_do_peeling_for_loop_bound):
2219         (vect_update_inits_of_drs):
2220         (vect_do_peeling_for_alignment):
2221         (vect_transform_loop):
2222         (vect_is_simple_use):
2223         (vect_analyze_operations):
2224         (vect_is_simple_iv_evolution):
2225         (vect_analyze_scalar_cycles):
2226         (vect_analyze_data_ref_dependence):
2227         (vect_analyze_data_ref_dependences):
2228         (vect_compute_data_ref_alignment):
2229         (vect_enhance_data_refs_alignment):
2230         (vect_analyze_data_refs_alignment):
2231         (vect_analyze_data_ref_access):
2232         (vect_analyze_data_ref_accesses):
2233         (vect_analyze_pointer_ref_access):
2234         (vect_get_memtag_and_dr):
2235         (vect_analyze_data_refs):
2236         (vect_mark_relevant):
2237         (vect_stmt_relevant_p):
2238         (vect_mark_stmts_to_be_vectorized):
2239         (vect_can_advance_ivs_p):
2240         (vect_get_loop_niters):
2241         (vect_analyze_loop_form):
2242         (vect_analyze_loop):
2243         (vectorize_loops): Likewise.
2244
2245         (vect_do_peeling_for_loop_bound): Dump format slightly changed.
2246         (vect_update_inits_of_drs):
2247         (vect_do_peeling_for_alignment):
2248         (vect_transform_loop):
2249         (vect_analyze_operations):
2250         (vect_analyze_scalar_cycles):
2251         (vect_analyze_data_ref_dependences):
2252         (vect_analyze_data_refs_alignment):
2253         (vect_analyze_data_ref_accesses):
2254         (vect_analyze_data_refs):
2255         (vect_mark_stmts_to_be_vectorized):
2256         (vect_get_loop_niters):
2257         (vect_analyze_loop_form):
2258         (vect_analyze_loop): Likewise.
2259         (vect_mark_stmts_to_be_vectorized): Add call to print_generic_expr.
2260
2261 2005-02-07  Richard Sandiford  <rsandifo@redhat.com>
2262
2263         PR bootstrap/19796
2264         Revert:
2265         2005-01-26  Richard Sandiford  <rsandifo@redhat.com>
2266         * config/mips/iris6.h (ENDFILE_SPEC): Don't link in irix-csr.o if
2267         either -ffast-math or -funsafe-math-optimizations is in use.
2268
2269         2005-01-24  Richard Sandiford  <rsandifo@redhat.com>
2270         * config/mips/irix-csr.c: New file.
2271         * config/mips/t-iris6 (irix-csr.o): New rule to build it.
2272         (EXTRA_MULTILIB_PARTS): Add irix-csr.o.
2273         * config/mips/iris6.h (ENDFILE_SPEC): Include it in n32 and n64
2274         executables.
2275
2276 2005-02-07  Alexandre Oliva  <aoliva@redhat.com>
2277
2278         * config/mn10300/linux.h (LIB_SPEC, STARTFILE_SPEC): Remove
2279         redundant, incorrect definitions.
2280
2281         * config/frv/frv.md ("tls_indirect_call"): Turn into libcall-like
2282         expand.
2283         ("*tls_indirect_call"): New, reference hard regs directly.
2284         * config/frv/frv.c (gen_inlined_tls_plt): Adjust.
2285
2286 2005-02-07  Ralf Corsepius  <ralf.corsepius@rtems.org>
2287
2288         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC):
2289         Let !-mhard-float !-msoft-float imply -mfpu=softfpa.
2290
2291 2005-02-06  Roger Sayle  <roger@eyesopen.com>
2292
2293         PR rtl-optimization/19800
2294         * simplify_rtx.c (simplify_relational_operation_1): Explicitly
2295         call gen_lowpart_common and gen_lowpart_SUBREG instead of calling
2296         gen_lowpart.
2297
2298 2005-02-07  Ralf Corsepius  <ralf.corsepius@rtems.org>
2299
2300         * config/m68k/t-rtems (MULTILIB_MATCHES): Let m528x match m5200.
2301
2302 2005-02-07  Joseph S. Myers  <joseph@codesourcery.com>
2303
2304         PR other/17135
2305         * doc/invoke.texi: Correct documentation of -freorder-functions.
2306
2307 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
2308
2309         PR other/14402
2310         * doc/invoke.texi: Don't mention gccbug.
2311
2312 2005-02-06  Roger Sayle  <roger@eyesopen.com>
2313             Andrew Pinski  <pinskia@physics.uc.edu>
2314             Paolo Bonzini  <paolo.bonzini@lu.unisi.ch>
2315
2316         * simplify-rtx.c (simplify_relational_operation_1): Simplify
2317         (ne:SI (zero_extract:SI FOO (const_int 1) BAR) (const_int 0))
2318         into just (zero_extract:SI FOO (const_int 1) BAR).
2319
2320 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
2321
2322         * doc/cpp.texi: Include gcc-common.texi.  Don't define gcctabopt
2323         macro locally.  Don't give last revision date.  Use GCC version
2324         number from gcc-common.texi.
2325         * doc/cppinternals.texi: Include gcc-common.texi.  Don't give last
2326         revision date.  Use GCC version number from gcc-common.texi.
2327         Describe being a library as current state rather than as 3.x
2328         history.
2329         * doc/gcc.texi: Remove last update date.
2330         * doc/gccint.texi: Likewise.  Update copyright dates.
2331         * doc/install.texi: Update copyright dates.
2332
2333 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
2334
2335         PR other/7549
2336         * doc/invoke.texi: Mention for each option included in -Wall that
2337         it is included in -Wall.
2338         * doc/gcc.texi: Update copyright and last modification date.
2339
2340 2005-02-06  Zdenek Dvorak  <dvorakz@suse.cz>
2341
2342         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Do not add
2343         unnecessary cast to original induction variable increments.
2344
2345 2005-02-06  Zdenek Dvorak  <dvorakz@suse.cz>
2346
2347         PR tree-optimization/18219
2348         * tree-ssa-loop-ivopts.c (get_computation_at): Produce computations
2349         in distributed form.
2350
2351 2005-02-06  Richard Sandiford  <rsandifo@redhat.com>
2352
2353         * expmed.c (store_bit_field): Make the SUBREG code adjust bitnum.
2354         Set bitpos and offset later in the function.  Do nothing if the
2355         target is a register and if the bitfield lies completely outside
2356         that register.
2357         (extract_bit_field): Make the same SUBREG, bitpos and offset changes
2358         here.  Return an uninitialised register if the source value is stored
2359         in a register and the bitfield lies completely outside that register.
2360
2361 2005-02-06  Steven Bosscher  <stevenb@suse.de>
2362
2363         * df.c (df_insn_refs_record): Use XEXP to get the operand of a USE,
2364         not SET_DEST.
2365
2366 2005-02-06  Marcin Dalecki  <martin@dalecki.de>
2367
2368         * diagnostic.c (default_diagnostic_finalizer): Fix use of attribute.
2369
2370 2005-02-06  Geoffrey Keating  <geoffk@apple.com>
2371
2372         * config.gcc (*-*-darwin*): Separate darwin7 and darwin8 configs.
2373         * config/darwin8.h: New.
2374         * config/darwin7.h: Update comment.
2375
2376 2005-02-03  Leehod Baruch  <leehod@il.ibm.com>
2377             Dorit Naishlos  <dorit@il.ibm.com>
2378
2379         * tree-vectorizer.h (LOC): New type.
2380         (UNKNOWN_LOC, EXPR_LOC, LOC_FILE, LOC_LINE): New macros.
2381         (loop_line_number): New field in struct _loop_vec_info.
2382         (LOOP_VINFO_LOC, LOOP_LOC): New macros.
2383
2384         * tree-vectorizer.c (input.h): Included.
2385         (find_loop_location): New function.
2386         (vect_debug_stats): Argument changed from loop to LOC. Computation of
2387         loop line number removed.
2388         (vect_debug_details): Likewise.
2389         (new_loop_vec_info): Initialize new field LOOP_VINFO_LOC.
2390
2391         (slpeel_make_loop_iterate_ntimes): Call find_loop_location. Argument in
2392         call to vect_debug_details/stats changed from loop to loop_loc.
2393         (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
2394         (slpeel_tree_peel_loop_to_edge): Likewise.
2395
2396         (vect_analyze_offset_expr): Argument in call to vect_debug_details/stats
2397         changed from NULL to UNKNOWN_LOC.
2398         (vect_get_base_and_offset):
2399         (vect_create_addr_base_for_vector_ref):
2400         (get_vectype_for_scalar_type):
2401         (vect_create_data_ref_ptr):
2402         (vect_init_vector):
2403         (vect_get_vec_def_for_operand):
2404         (vect_finish_stmt_generation):
2405         (vectorizable_assignment):
2406         (vectorizable_operation):
2407         (vectorizable_store):
2408         (vectorizable_load):
2409         (vect_transform_stmt):
2410         (vect_update_ivs_after_vectorizer):
2411         (vect_do_peeling_for_loop_bound):
2412         (vect_do_peeling_for_alignment):
2413         (vect_transform_loop):
2414         (vect_is_simple_use):
2415         (vect_analyze_operations):
2416         (vect_is_simple_iv_evolution):
2417         (vect_analyze_scalar_cycles):
2418         (vect_analyze_data_ref_dependences):
2419         (vect_compute_data_ref_alignment):
2420         (vect_enhance_data_refs_alignment):
2421         (vect_analyze_data_ref_access):
2422         (vect_analyze_data_ref_accesses):
2423         (vect_analyze_pointer_ref_access):
2424         (vect_get_memtag_and_dr):
2425         (vect_analyze_data_refs):
2426         (vect_mark_relevant):
2427         (vect_stmt_relevant_p):
2428         (vect_mark_stmts_to_be_vectorized):
2429         (vect_can_advance_ivs_p):
2430         (vect_get_loop_niters):
2431         (vect_analyze_loop):
2432         (vectorize_loops): Likewise.
2433
2434         (vectorizable_load): Argument in call to vect_debug_details/stats
2435         changed from loop to LOOP_LOC (loop_vinfo).
2436         (vect_transform_loop):
2437         (vect_analyze_operations):
2438         (vect_analyze_scalar_cycles):
2439         (vect_analyze_data_ref_dependence):
2440         (vect_enhance_data_refs_alignment):
2441         (vect_analyze_data_ref_accesses):
2442         (vect_analyze_pointer_ref_access):
2443         (vect_analyze_data_refs):
2444         (vect_analyze_loop): Likewise.
2445
2446         (vect_analyze_loop_form): Argument in call to vect_debug_details/stats
2447         changed from loop to loop_loc.
2448
2449         (vect_enhance_data_refs_alignment): Removed unused variable loop.
2450
2451 2005-02-03  Leehod Baruch  <leehod@il.ibm.com>
2452             Dorit Naishlos  <dorit@il.ibm.com>
2453
2454         * tree-vectorizer.c (vect_analyze_data_ref_dependence): Function
2455         declaration added.
2456         (vect_analyze_data_ref_dependences): Likewise.
2457
2458         (vect_is_simple_use): Argument changed from loop structure to
2459         loop_vect_info structure.
2460         (vect_can_advance_ivs_p): Likewise.
2461         (vect_create_index_for_vector_ref): Likewise.
2462         (vect_update_ivs_after_vectorizer): Likewise.
2463         (new_stmt_vec_info): Likewise.
2464
2465         (new_loop_vec_info): Second argument in call to new_stmt_vec_info was
2466         changed from loop to loop_vinfo.
2467         (vect_create_data_ref_ptr): First argument in call to
2468         vect_create_index_for_vector_ref was changed from loop to loop_vinfo.
2469         (vectorizable_assignment): Second argument in call to vect_is_simple_use
2470         was changed from loop to loop_vinfo.
2471         (vectorizable_operation): Likewise.
2472         (vectorizable_store): Likewise.
2473         (vect_mark_stmts_to_be_vectorized): Likewise.
2474         (vect_do_peeling_for_loop_bound): First argument in call to
2475         vect_update_ivs_after_vectorizer was changed from loop to loop_vinfo.
2476         (vect_analyze_operations): Argument in call to vect_can_advance_ivs_p
2477         was changed from loop to loop_vinfo.
2478         (vect_analyze_data_ref_dependences): Third argument in call to
2479         vect_analyze_data_ref_dependence was changed from loop to loop_vinfo.
2480
2481         (vect_create_index_for_vector_ref): Get the loop from loop_vinfo.
2482         (vect_create_data_ref_ptr): Likewise.
2483         (vect_init_vector): Likewise.
2484         (vect_get_vec_def_for_operand): Likewise.
2485         (vectorizable_assignment): Likewise.
2486         (vectorizable_operation): Likewise.
2487         (vectorizable_store): Likewise.
2488         (vectorizable_load): Likewise.
2489         (vect_update_ivs_after_vectorizer): Likewise.
2490         (vect_is_simple_use): Likewise.
2491         (vect_analyze_data_ref_dependence): Likewise.
2492         (vect_analyze_pointer_ref_access): Likewise.
2493         (vect_can_advance_ivs_p): Likewise.
2494
2495         * tree-vectorizer.h: (_loop_vec_info): Definition and macros moved
2496         before _stmt_vec_info.
2497         (_stmt_vec_info): Loop field replaced by loop_vec_info.
2498         (STMT_VINFO_LOOP): Replaced with STMT_VINFO_LOOP_VINFO.
2499         (new_stmt_vec_info): Argument changed from loop structure to
2500         loop_vect_info structure
2501
2502         (vect_analyze_data_ref_dependences): Unnecessary line was removed.
2503         (vect_analyze_offset_expr): Avoid 80 columns overflow.
2504         (vect_create_addr_base_for_vector_ref): Likewise.
2505         (vect_analyze_pointer_ref_access): Likewise.
2506
2507 2005-02-03  Andrew Pinski  <pinskia@physics.uc.edu>
2508
2509         PR tree-opt/19768
2510         * tree-ssa-dse.c (fix_phi_uses): Update the occurs in abnormal
2511         phi flag if the phi is abnormal.
2512
2513 2005-02-03  Andrew Pinski  <pinskia@physics.uc.edu>
2514
2515         PR tree-opt/19736
2516         * tree-ssa.c (replace_immediate_uses): Update the immediate_uses
2517         information for the new statement.
2518
2519 2005-02-03  Joseph S. Myers  <joseph@codesourcery.com>
2520
2521         PR driver/19117
2522         * gcc.c (main): Include the target in -v output.
2523
2524 2005-02-03  Alexandre Oliva  <aoliva@redhat.com>
2525
2526         * combine.c (simplify_comparison, case SIGN_EXTEND, ZERO_EXTEND):
2527         Do not drop the extend if we'd have to add a paradoxical subreg
2528         later.  Include optabs.h and insn-codes.h.
2529         * Makefile.in (combine.o): Depend on $(OPTABS_H).
2530
2531 2005-02-02  Roger Sayle  <roger@eyesopen.com>
2532
2533         PR middle-end/19405
2534         * real.h (REAL_MODE_FORMAT_COMPOSITE_P): New macro.
2535         * fold-const.c (const_binop): Avoid constant folding floating
2536         point operations in modes that use composite representations.
2537         * simplify-rtx.c (simplify_binary_operation): Likewise.
2538
2539 2005-02-02  Geoffrey Keating  <geoffk@apple.com>
2540
2541         * config/rs6000/altivec.md (altivec_dst): Make the first operand
2542         a REG, not a MEM.
2543         (altivec_dstt): Likewise.
2544         (altivec_dstst): Likewise.
2545         (altivec_dststt): Likewise.
2546         * config/rs6000/rs6000.c (altivec_expand_dst_builtin): Adjust creation
2547         of first operand.
2548
2549 2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>
2550
2551         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Copy
2552         EXPR_LOCUS from orig_cond to the new cond_stmt.
2553         (vect_finish_stmt_generation): Copy EXPR_LOCUS from stmt to
2554         the new vec_stmt.
2555
2556 2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>
2557
2558         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Call
2559         standard_iv_increment_position. Remove call to bsi_next
2560         (no need to bump the iterator anymore).
2561         (vect_create_index_for_vector_ref): Call
2562         standard_iv_increment_position. Remove second function argument.
2563         (vect_finish_stmt_generation): Remove call to bsi_next
2564         (no need to bump the iterator anymore).
2565         (vect_create_data_ref_ptr): Remove second argument (bsi) in call
2566         to vect_create_index_for_vector_ref.
2567
2568 2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>
2569
2570         * tree-vectorizer.c (vect_mark_stmts_to_be_vectorized): Check if
2571         phis are used out of the loop.
2572
2573 2005-02-03  Joseph S. Myers  <joseph@codesourcery.com>
2574
2575         PR c/17807
2576         * c-decl.c (undef_nested_function): New variable.
2577         (pop_scope): Diagnose undefined nested functions.
2578         (finish_function): Don't attempt cgraph processing or genericizing
2579         if current top-level function contained an undefined nested
2580         function.  Reset undef_nested_function at the end of a top-level
2581         function.
2582
2583 2005-02-02  Zdenek Dvorak  <dvorakz@suse.cz>
2584
2585         * tree.c (build_int_cst_type): Take sign of the value into account
2586         when deciding whether sign extend the value.
2587
2588 2005-02-02  Joseph S. Myers  <joseph@codesourcery.com>
2589
2590         PR c/18502
2591         * gcc.c (cpp_unique_options): Remove %{trigraphs}.
2592         (cpp_options, cc1_options): Change %{std*&ansi} to
2593         %{std*&ansi&trigraphs}.
2594
2595 2005-02-02  Kazu Hirata  <kazu@cs.umass.edu>
2596
2597         * cse.c: Update comments.
2598
2599 2005-02-02  Aldy Hernandez  <aldyh@redhat.com>
2600
2601         * config/rs6000/rs6000.c (rs6000_spe_function_arg): Multi-reg
2602         arguments go on the stack.  Do not put complex doubles in odd/even
2603         pairs.
2604
2605 2005-02-02  Steven Bosscher  <stevenb@suse.de>
2606
2607         * doc/invoke.texi: Update the options enabled at -O1, -O2,
2608         and -O3.  Update the documentation for -fgcse-sm, -fgcse-las,
2609         -ftree-pre, and -fthread-jumps.
2610
2611 2005-02-02  Richard Sandiford  <rsandifo@redhat.com>
2612
2613         PR tree-optimization/19578
2614         * tree-flow.h (modified_noreturn_calls): Declare.
2615         (noreturn_call_p): Declare.
2616         * tree-flow-inline.h (noreturn_call_p): New function.
2617         (modify_stmt): Add modified noreturn calls to modified_noreturn_calls.
2618         * tree-cfg.c (modified_noreturn_calls): New variable.
2619         (cleanup_control_flow): Use noreturn_call_p.  Split basic blocks
2620         that contain a mid-block noreturn call.
2621         * tree-ssa.c (delete_tree_ssa): Clear modified_noreturn_calls.
2622
2623 2005-02-02  Kazu Hirata  <kazu@cs.umass.edu>
2624
2625         * df.c (df_def_record_1, df_uses_record): Don't use
2626         DF_FOR_REGALLOC.
2627         * df.h (DF_FOR_REGALLOC): Remove.
2628
2629 2005-02-02  Joseph S. Myers  <joseph@codesourcery.com>
2630
2631         PR c/19435
2632         * c-typeck.c (really_start_incremental_init): Reset
2633         constructor_max_index for arrays of incomplete type.
2634
2635 2005-02-02  Jeff Law  <law@redhat.com>
2636
2637         * gcse.c (struct reg_set): Store the block index where the register
2638         was set rather than the setting insn.
2639         (record_one_set, compute_transp): Corresponding changes.
2640         (pre_insert_copy_insn): Do not call replace_one_set.
2641         (replace_one_set): Remove.
2642
2643 2005-02-02  Joseph S. Myers  <joseph@codesourcery.com>
2644
2645         PR other/15514
2646         * doc/gcov.texi: Fix typo.
2647
2648 2005-02-01  Richard Henderson  <rth@redhat.com
2649
2650         PR target/19680
2651         * config/i386/i386.h (MODES_TIEABLE_P): Use ix86_modes_tieable_p.
2652         * config/i386/i386.c (ix86_hard_regno_mode_ok): Change return
2653         type to bool.
2654         (ix86_tieable_integer_mode_p, ix86_modes_tieable_p): New.
2655         * config/i386/i386-protos.h: Update.
2656
2657 2005-02-01  Steven Bosscher  <stevenb@suse.de>
2658
2659         PR tree-optimization/19217
2660         * tree-cfg.c (verify_expr): Use the data field to see if TP was
2661         seen inside a PHI node.  Do not do the ADDR_EXPR check if it was.
2662         (verify_stmts): Pass (void*)1 as data to verify_expr to signal
2663         that it is walking a PHI node.
2664
2665 2005-02-01  Joseph S. Myers  <joseph@codesourcery.com>
2666
2667         * doc/extend.texi (Nested Functions): Update.
2668
2669 2005-02-01  Richard Henderson  <rth@redhat.com>
2670
2671         PR 19696
2672         * optabs.c (expand_copysign_absneg): Export.
2673         * optabs.h (expand_copysign_absneg): Declare.
2674         * config/rs6000/rs6000.md (copysigntf3): New.
2675
2676 2005-02-01  Diego Novillo  <dnovillo@redhat.com>
2677
2678         PR tree-optimization/19633
2679         * tree-flow.h (struct ptr_info_def): Add field 'pt_null'.
2680         * tree-ssa-alias.c (init_alias_info): Initialize.
2681         (merge_pointed_to_info): Set.
2682         (add_pointed_to_expr): Set pt_null if EXPR is a NULL pointer.
2683         (dump_points_to_info_for): Show value of pt_null.
2684         (struct count_ptr_d): Declare.
2685         (find_ptr_dereference): Remove.
2686         (ptr_is_dereferenced_by): Remove.
2687         (count_ptr_derefs): New local function.
2688         (count_uses_and_derefs): New local function.
2689         (compute_points_to_and_addr_escape): Call it.  If the number
2690         of dereferences is greater than zero, mark the pointer as
2691         dereferenced.  If there are fewer dereferences than uses of
2692         the pointer, the pointer's value escapes.
2693
2694 2005-02-01  Diego Novillo  <dnovillo@redhat.com>
2695
2696         PR tree-optimization/19670
2697         * tree-ssa.c (verify_ssa_name): Don't set TREE_VISITED
2698         here...
2699         (verify_use): ... set it here, instead.
2700
2701 2005-02-01  Janis Johnson  <janis187@us.ibm.com>
2702
2703         * doc/sourcebuild.texi (Test directives): Fix formatting.
2704
2705         * doc/sourcebuild.texi (Test directives): Describe selector
2706         expressions.
2707
2708 2005-02-01  Segher Boessenkool  <segher@kernel.crashing.org>
2709
2710         * config.gcc (powerpc64-*-linux*): Default to -m64 also for
2711         specific 64-bit CPUs.
2712
2713 2005-02-01  Richard Earnshaw  <rearnsha@arm.com>
2714
2715         PR target/16201
2716         * arm.c (arm_eliminable_register): New function.
2717         (adjacent_mem_locations): Don't allow eliminable registers.  Use
2718         HOST_WIDE_INT for address offsets.
2719         * arm-protos.h (arm_eliminable_register): Add prototype.
2720
2721 2005-02-01  Steven Bosscher  <stevenb@suse.de>
2722
2723         PR optimization/15242
2724         * params.def (PARAM_MAX_GOTO_DUPLICATION_INSNS): New param.
2725         * basic-block.h (duplicate_computed_gotos): Add prototype.
2726         * bb-reorder.c (duplicate_computed_gotos): New function to
2727         duplicate sufficiently small blocks ending in a computed jump.
2728         * passes.c (rest_of_compilation): Call duplicate_computed_gotos
2729         if not optimizing for size.
2730         * cfgcleanup.c (try_crossjump_bb): If not optimizing for size,
2731         never do tail merging for blocks ending in a computed jump.
2732         * doc/invoke.texi: Document the max-goto-duplication-insns param.
2733
2734 2005-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
2735
2736         Patch from Richard Sandiford <rsandifo@redhat.com>
2737         * reload1.c (choose_reload_regs): Prevent the find_equiv_reg() code
2738         from inheriting a subreg equivalence with a non-spill register.
2739
2740         * tree.h (DECL_FUNCTION_CODE): Document that it is overloaded.
2741
2742 2005-02-01  Alexandre Oliva  <aoliva@redhat.com>
2743
2744         * config/frv/frv.c (movcc_fp_destination_operand): New.
2745         (gpr_or_memory_operand): Fix typo in comment.
2746         (gpr_or_memory_operand_with_scratch): New.
2747         * config/frv/frv.h (PREDICATE_CODES): Add the two new predicates.
2748         * config/frv/frv.md (movcc_fp, movcc_fp_internal): Use
2749         movcc_fp_destination_operand.
2750         (reload_incc_fp): Use gpr_or_memory_operand_with_scratch.
2751         Legitimize memory addresses using a scratch register.
2752
2753 2005-01-31  Jeff Law  <law@redhat.com>
2754
2755         * tree-into-ssa.c (mark_def_sites_global_data): Make KILLS
2756         bitmap a sparse bitmap instead of a simple bitmap.
2757         (mark_def_sites_initialize_block):  Corresponding changes.
2758         (ssa_mark_def_sites_initialize_block): Likewise.
2759         (ssa_mark_phi_uses): Likewise.
2760         (mark_def_site, ssa_mark_def_sites): Likewise.
2761         (mark_def_site_blocks): Likewise.
2762         (rewrite_ssa_into_ssa): Likewise.
2763
2764         * tree-ssa-dom.c (record_cond): Pass correct variable type
2765         for last argument to htab_find_slot_with_hash.
2766
2767         * fold-const.c (fold, case CEIL_MOD_EXPR): Do not lose side
2768         effects when optimizing 0 % X.  Do not try to optimize X % 0.
2769
2770 2005-01-31  James E. Wilson  <wilson@specifixinc.com>
2771
2772         * config/ia64/itanium1.md (1_scall bypass): Change 2_mmalua to
2773         1_mmalua.
2774
2775 2005-02-01  Eric Christopher  <echristo@redhat.com>
2776
2777         * config/mips/mips.c (override_options): Warn if -mint64
2778         is used.
2779         * doc/invoke.texi (MIPS Options): Document that -mint64 is
2780         deprecated.
2781
2782 2005-02-01  Kazu Hirata  <kazu@cs.umass.edu>
2783
2784         * cse.c (cse_reg_info): Remove hash_next, next, regno.  Add
2785         timestamp.
2786         (cse_reg_info_list, cse_reg_info_list_free, REGHASH_SHIFT,
2787         REGHASH_SIZE, REGHASH_MASK, reg_hash, REGHASH_FN,
2788         cached_cse_reg_info, GET_CSE_REG_INFO): Remove.
2789         (cached_regno): Initialize to INVALID_REGNUM.
2790         (cse_reg_info_table_size,
2791         cse_reg_info_table_first_uninitialized,
2792         cse_reg_info_timestamp): New.
2793         (REG_TICK, REG_IN_TABLE, SUBREG_TICKED, REG_QTY): Use
2794         get_cse_reg_info.
2795         (init_cse_reg_info, get_cse_reg_info_1): New.
2796         (get_cse_reg_info): Cache the last look-up.
2797         (new_basic_block): Update the code to clear mappings from
2798         registers to cse_reg_info entries.
2799         (cse_main): Call init_cse_reg_info.
2800
2801         * cse.c (get_cse_reg_info): Update a comment.
2802
2803 2005-01-31  Steven Bosscher  <stevenb@suse.de>
2804
2805         PR c/19333
2806         * c-decl.c (start_decl): Do not warn about arrays of elements with
2807         an incomplete type here.
2808         (grokdeclarator): Do it here by making a pedwarn an error.
2809         * c-typeck.c (push_init_level): If there were previous errors with
2810         the constructor type, do not warn about braces for initializers.
2811         (process_init_element): Likewise for excess initializer elements.
2812
2813 2005-01-31  Kazu Hirata  <kazu@cs.umass.edu>
2814
2815         * cse.c (delete_trivially_dead_insn): Don't iterate.
2816
2817 2005-01-31  Andrew Pinski  <pinskia@physics.uc.edu>
2818
2819         * config/rs6000/rs6000.md (copysignsf3): New expand.
2820         (copysigndf3): Likewise.
2821
2822 2005-01-31  Steven Bosscher  <stevenb@suse.de>
2823
2824         * recog.c (constrain_operands): Only look for earlyclobber operand
2825         conflicts if an '&' constraint was seen.
2826
2827 2005-01-31  Marc Espie <espie@openbsd.org>
2828
2829         * config.gcc: Don't include embedded systems fragment, switches default
2830         debugging format to ELF.
2831         * config/i386/openbsdelf.h: Add DBX_REGISTER_NUMBER since we no
2832         longer pick it up there.
2833
2834 2005-01-31  Dale Johannesen  <dalej@apple.com>
2835
2836         * doc/extend.texi (nested functions): Fix linkage description.
2837         Clarify that static is not allowed.
2838
2839 2005-01-31  Dale Johannesen  <dalej@apple.com>
2840
2841         * config/rs6000/darwin.md (movsf_low_di):  Make work.
2842         (movdf_low_di):  Make work.
2843
2844 2005-01-31  Dale Johannesen  <dalej@apple.com>
2845
2846         * config/rs6000/darwin-tramp.asm (__trampoline_setup):
2847         Make work for 64 bit.
2848
2849 2005-01-31  Roger Sayle  <roger@eyesopen.com>
2850             Dale Johannesen  <dalej@apple.com>
2851
2852         PR middle-end/19650
2853         * fold-const.c (fold_binary_op_with_conditional_arg):
2854         Make types match original operands, before STRIP_NOPS.
2855
2856 2005-01-31  Alan Modra  <amodra@bigpond.net.au>
2857
2858         * config/rs6000/linux-unwind.h (struct gcc_vregs): New.
2859         (struct gcc_regs): Rename from gcc_pt_regs.  Add more regs.
2860         (struct gcc_sigcontext): Delete.  Merge contents to..
2861         (struct gcc_ucontext): ..here.
2862         (get_sigcontext): Delete.
2863         (get_regs): New function, like get_sigcontext but return regs ptr.
2864         64-bit version finds regs from r1 to support vdso.
2865         (ppc_linux_aux_vector): New function.
2866         (ppc_fallback_frame_state): Modify for get_regs.  Restore fprs
2867         and vector regs.
2868
2869 2005-01-31  Ira Rosen  <irar@il.ibm.com>
2870
2871         * tree-vectorizer.c (vect_analyze_offset_expr): Use ssizetype instead
2872         sizetype.
2873         (vect_get_base_and_offset): Use ssizetype instead sizetype. Remove
2874         redundant fold. Fix misalignment for MINUS_EXPR.
2875         (vect_compute_data_ref_alignment): Use ssizetype instead sizetype.
2876         (vect_analyze_pointer_ref_access): Likewise.
2877         (vect_get_memtag_and_dr): Likewise.
2878
2879 2005-01-31  Richard Henderson  <rth@redhat.com>
2880
2881         * config/i386/i386.c (absnegsf2_mixed): Remove all of the # hackery.
2882         (absnegsf2_sse, absnegsf2_i387, absnegdf2_mixed, absnegdf2_sse,
2883         absnegdf2_i387, absnegxf2_i387): Likewise.
2884
2885 2005-01-31  Richard Henderson  <rth@redhat.com>
2886
2887         PR 19696
2888         * optabs.c (expand_copysign_absneg): New.
2889         (expand_copysign_bit): Split out from ...
2890         (expand_copysign): ... here.  Use expand_copysign_absneg.
2891
2892 2005-01-30  Roger Sayle  <roger@eyesopen.com>
2893
2894         PR middle-end/19697
2895         * config/pa/pa.md (anddi3, iordi3): On HPPA64, disallow an integer
2896         constant as the second operand and a register as the third.
2897
2898 2005-01-31  Danny Smith  <dannysmith@users.sourceforge.net>
2899
2900         PR target/19704
2901         * config/i386/i386.c (ix86_function_ok_for_sibcall):  Also check
2902         that dllimport'd functions do not use all call-clobbered registers
2903         to pass parameters.
2904
2905 2005-01-30  Richard Henderson  <rth@redhat.com>
2906
2907         PR 19696
2908         * optabs.c (expand_absneg_bit): Split out from expand_unop and
2909         expand_abs_nojump and generalize.  Use operand_subword and
2910         emit_no_conflict_block.  Support large modes.
2911         (expand_abs_nojump): Use it.  Use HONOR_SIGNED_ZEROS to fall
2912         back to maximum.
2913         (expand_unop): Likewise.  Use HONOR_SIGNED_ZEROS to fall back
2914         negation to subtraction.
2915         (expand_copysign): Check that the format has signed zeros.
2916         Use operand_subword and emit_no_conflict_block.  Support large modes.
2917
2918 2005-01-30  Daniel Berlin  <dberlin@dberlin.org>
2919
2920         Fix PR tree-optimization/19624
2921
2922         * Makefile.in (tree-ssa-pre.o): Add CFGLOOP_H.
2923         * tree-ssa-pre.c: Add cfgloop.h.
2924         Update comment.
2925         (pre_stats): New member, constified.
2926         (inserted_exprs): New static variable.
2927         (NECESSARY): New macro.
2928         (create_expression_by_pieces): Fold the expression, and
2929         mark it as defaulting to not necessary. Also put in
2930         inserted_exprs.
2931         (fully_constant_expression): New function.
2932         (insert_into_preds_of_block): Modify to not insert phis when we
2933         are playing with induction variables.
2934         Push phis onto the inserted_exprs vector, and mark them as not
2935         necessary by default.
2936         (insert_aux): Call fully_constant_expression on eprime.
2937         If all edges produce the same value, mark it constant.
2938         (mark_operand_necessary): New function.
2939         (remove_dead_inserted_code): New function.
2940         (init_pre): Init loop optimizer to get loop info.
2941         (fini_pre): Free loop_optimizer, and inserted_exprs vec.
2942         (execute_pre): Commit edge inserts, then remove dead code.
2943
2944 2005-01-30  Richard Henderson  <rth@redhat.com>
2945
2946         * rtl.c (rtx_equal_p): No early exit for CONST_VECTOR.
2947         * varasm.c (const_rtx_hash_1): Handle CONST_VECTOR.
2948
2949 2005-01-30  Richard Henderson  <rth@redhat.com>
2950
2951         PR target/19700
2952         * config/i386/i386.c (ix86_expand_copysign): New.
2953         (ix86_split_copysign_const): New.
2954         (ix86_split_copysign_var): Rename from ix86_split_copysign,
2955         rearrange op1/nmask operands.
2956         * config/i386/i386-protos.h: Update.
2957         * config/i386/i386.md (copysignsf3): Use ix86_expand_copysign.
2958         (copysigndf3): Likewise.
2959         (copysignsf3_const, copysigndf3_const): New.
2960         (copysignsf3_var): Rename from copysignsf3, split out splitter
2961         and fix split predicate for X constraint.
2962         (copysigndf3_var): Similarly.
2963
2964 2005-01-30  Kazu Hirata  <kazu@cs.umass.edu>
2965
2966         * optabs.c, doc/c-tree.texi, doc/install.texi, doc/md.texi,
2967         doc/passes.texi, doc/rtl.texi, doc/sourcebuild.texi,
2968         doc/tm.texi, doc/tree-ssa.texi: Update copyright.
2969
2970 2005-01-29  Richard Henderson  <rth@redhat.com>
2971
2972         PR target/19690
2973         * config/i386/i386.md (movdf_nointeger, movdf_integer): Fix ordering
2974         of # and * in constraints.
2975
2976 2005-01-29  Richard Henderson  <rth@redhat.com>
2977
2978         PR middle-end/19689
2979         * expr.c (store_field): Don't strip sub-mode cast when the input
2980         data is even smaller.
2981
2982 2005-01-29  Richard Henderson  <rth@redhat.com>
2983
2984         PR middle-end/19687
2985         * expr.c (categorize_ctor_elements_1): Check for CONSTRUCTOR of a
2986         union being empty.
2987
2988 2005-01-29  Richard Henderson  <rth@redhat.com>
2989
2990         * combine.c (make_field_assignment): Fix argument order
2991         to gen_int_mode.
2992
2993 2005-01-29  Richard Guenther <richard.guenther@uni-tuebingen.de>
2994
2995         PR tree-optimization/15791
2996         * fold-const.c (extract_array_ref): New function.
2997         (fold): Fold comparisons between &a[i] and &a[j] or
2998         semantically equivalent trees.
2999
3000 2005-01-29  Jeff Law  <law@redhat.com>
3001
3002         * gcse.c (insert_expr_in_table): Revamp handling of available
3003         and anticipatable occurrence lists to avoid unnecessary list
3004         walking.
3005         (insert_set_in_table): Similarly.
3006
3007 2005-01-29  Joseph S. Myers  <joseph@codesourcery.com>
3008
3009         * c-common.c (fix_string_type): Just use c_build_qualified_type to
3010         build string type.
3011         (c_build_qualified_type): Build qualified array types with
3012         TYPE_MAIN_VARIANT pointing to corresponding unqualified type.
3013         * c-decl.c (c_make_fname_decl): Build unqualified array type
3014         before qualified type.
3015         (grokdeclarator): Use TYPE_MAIN_VARIANT of typedef type if element
3016         type is qualified, not just if type itself is.  Don't apply
3017         qualifiers to array type when declarator is processed.  Apply
3018         qualifiers to field type whether or not it is an array type.
3019         Don't handle array types specially for applying qualifiers to
3020         variables.
3021         * c-typeck.c (composite_type): Build unqualified element type and
3022         array type when forming composite of array types.
3023         (common_pointer_type, comptypes, comp_target_types,
3024         type_lists_compatible_p, build_indirect_ref, build_array_ref,
3025         convert_for_assignment): Don't apply TYPE_MAIN_VARIANT to array
3026         types.
3027         (type_lists_compatible_p): Cache TREE_VALUE (args1) and TREE_VALUE
3028         (args2) in variables a1 and a2.
3029
3030 2005-01-29  Kazu Hirata  <kazu@cs.umass.edu>
3031
3032         * cse.c (n_elements_made, max_elements_made): Remove.
3033         (insert): Don't touch n_elements_made.
3034         (cse_main): Don't touch n_elements_made or max_elements_made.
3035
3036 2005-01-28  Stephane Carrez  <stcarrez@nerim.fr>
3037
3038         PR target/15384
3039         * config/m68hc11/t-m68hc11-gas (dp-bit.c): Fix typo causing a
3040         configuration part of dp-bit.c to be lost.
3041
3042 2005-01-28  Roger Sayle  <roger@eyesopen.com>
3043
3044         * expmed.c (expand_mult_highpart_optab): When attempting to use
3045         a non-widening multiplication in a wider mode, the operands need
3046         to be converted (zero or sign extended) to that mode.
3047
3048 2005-01-28  Ian Lance Taylor  <ian@airs.com>
3049
3050         PR middle-end/16558
3051         PR middle-end/19583
3052         * gimple-low.c (block_may_fallthru): TRY_FINALLY_EXPR only falls
3053         through if both operands fall through.
3054
3055 2005-01-28  Kazu Hirata  <kazu@cs.umass.edu>
3056
3057         * cse.c (fold_rtx) <PC>: Don't optimize.
3058
3059 2005-01-28  Jeff Law  <law@redhat.com>
3060
3061         * fold-const.c (fold, case CEIL_MOD_EXPR): Optimize 0 % X.
3062         (case FLOOR_MOD_EXPR, ROUND_MOD_EXPR, TRUNC_MOD_EXPR): Similarly.
3063
3064 2005-01-28  Kazu Hirata  <kazu@cs.umass.edu>
3065
3066         * cse.c (cse_reg_info_free_list, cse_reg_info_used_list,
3067         cse_reg_info_used_list_end): Remove.
3068         (cse_reg_info_list, cse_reg_info_list_free): New.
3069         (get_cse_reg_info): When allocating an instance of
3070         cse_reg_info, add it to the beginning of the cse_reg_info_list
3071         list.  Remove code to maintain cse_reg_info_used_list.
3072         (new_basic_block): Reset the free list to the beginning of
3073         cse_reg_info_list.
3074
3075 2005-01-28  Richard Sandiford  <rsandifo@redhat.com>
3076
3077         * config/frv/frv.c (bdesc_2arg): Remove __MDPACKH.
3078         (frv_init_builtins): Change its prototype to take 4 uhalf arguments.
3079         (frv_expand_mdpackh_builtin): New function.
3080         (frv_expand_builtin): Use it to expand __MDPACKH.
3081         * doc/extend.texi (__MDPACKH): Update documentation.
3082
3083 2005-01-28  Uros Bizjak  <uros@kss-loka.si>
3084
3085         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Use
3086         SSE_FLOAT_MODE_P for use_sse computation.
3087
3088 2005-01-28  Ralf Corsepius  <ralf.corsepius@rtems.org>
3089
3090         PR target/19663
3091         * config/sparc/rtemself.h (LINK_GCC_C_SEQUENCE_SPEC): undefine.
3092
3093 2005-01-27  Richard Henderson  <rth@redhat.com>
3094
3095         * builtins.c (expand_builtin_copysign): New.
3096         (expand_builtin): Call it.
3097         * genopinit.c (optabs): Add copysign_optab.
3098         * optabs.c (init_optabs): Initialize it.
3099         (expand_copysign): New.
3100         * optabs.h (OTI_copysign, copysign_optab): New.
3101         (expand_copysign): Declare.
3102
3103         * config/alpha/alpha.md (UNSPEC_COPYSIGN): New.
3104         (copysignsf3, ncopysignsf3, copysigndf3, ncopysigndf3): New.
3105
3106         * config/i386/i386.c (ix86_build_signbit_mask): Split from ...
3107         (ix86_expand_fp_absneg_operator): ... here.
3108         (ix86_split_copysign): New.
3109         * config/i386/i386-protos.h: Update.
3110         * config/i386/i386.md (UNSPEC_COPYSIGN): New.
3111         (copysignsf3, copysigndf3): New.
3112
3113         * config/ia64/ia64.md (UNSPEC_COPYSIGN): New.
3114         (copysignsf3, ncopysignsf3): New.
3115         (copysigndf3, ncopysigndf3): New.
3116         (copysignxf3, ncopysignxf3): New.
3117         * config/ia64/ia64.c (rtx_needs_barrier): Handle UNSPEC_COPYSIGN.
3118
3119 2005-01-27  Arend Bayer  <arend.bayer@web.de>
3120             Kazu Hirata  <kazu@cs.umass.edu>
3121
3122         * cse.c: (find_best_addr): Don't call copy_rtx before calling
3123         fold_rtx.  Save cost recomputation if fold_rtx did nothing.
3124         (fold_rtx) <ASM_OPERANDS>: Don't do anything if INSN is
3125         NULL_RTX.
3126
3127 2005-01-27  Jeff Law  <law@redhat.com>
3128
3129         * tree-into-ssa.c (ssa_rewrite_initialize_block): Do not register
3130         definitions of SSA_NAMEs which are not being rewritten.
3131         (rewrite_ssa_into_ssa): Only initialize the current definition
3132         of an SSA_NAME if that SSA_NAME has been marked for rewriting.
3133         If checking is enabled, assert that SSA_NAME_AUX is clear for all
3134         SSA_NAMEs before returning.
3135
3136 2005-01-27  Kazu Hirata  <kazu@cs.umass.edu>
3137
3138         * c-common.def, c-dump.c, c-gimplify.c, c-objc-common.c,
3139         cfgexpand.c, dbxout.c, function.h, opts.c, tree-flow-inline.h,
3140         tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-tailcall.c,
3141         config/avr/avr.md, config/cris/aout.h, config/cris/cris.h,
3142         config/mips/iris6.h, config/sh/sh.c: Update copyright.
3143
3144 2005-01-27  Steven Bosscher  <stevenb@suse.de>
3145
3146         PR middle-end/17278
3147         * opts.c (decode_options): Move flag_thread_jumps from -O1 and
3148         higher to -O2 and higher.  Likewise for tree PRE.
3149         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only iterate at -O2
3150         and better.
3151
3152 2005-01-27  Ian Lance Taylor  <ian@airs.com>
3153
3154         PR middle-end/19583
3155         * gimple-low.c (try_catch_may_fallthru): New static function.
3156         (block_may_fallthru): Handle TRY_CATCH_EXPR.
3157         * tree-inline.c (expand_call_inline): Don't warn about reaching
3158         the end of a non-void function being inlined if the function uses
3159         a return slot.
3160
3161 2005-01-27  Jakub Jelinek  <jakub@redhat.com>
3162
3163         * config/i386/i386.h (CALL_USED_REGISTERS): Fix comment pastos.
3164
3165         PR c/18946
3166         * c-decl.c (warn_if_shadowing): Handle old_decl error_mark_node.
3167         (pushdecl): Only use DECL_FILE_SCOPE_P if DECL_P.
3168         (implicitly_declare): Handle error_mark_node.
3169
3170 2005-01-27  Richard Henderson  <rth@redhat.com>
3171
3172         PR tree-opt/14329
3173         * tree.h (struct tree_decl): Add debug_expr_is_from.
3174         (DECL_DEBUG_EXPR_IS_FROM): New.
3175         (DECL_DEBUG_EXPR): Rename from DECL_DEBUG_ALIAS_OF.
3176         * dwarf2out.c (dwarf2out_var_location): Update to match.
3177         * tree-outof-ssa.c (create_temp): Likewise.
3178         * var-tracking.c (track_expr_p): Likewise.
3179         * tree-sra.c (instantiate_element): Set DECL_DEBUG_EXPR.
3180         * c-objc-common.c (c_tree_printer) <'D'>: Handle DECL_DEBUG_EXPR.
3181         * toplev.c (default_tree_printer): Likewise.
3182
3183 2005-01-27  Alexandre Oliva  <aoliva@redhat.com>
3184
3185         * config/frv/frv.c (frv_class_likely_spilled_p): Add GR8_REGS,
3186         GR9_REGS, GR89_REGS, FDPIC_FPTR_REGS, FDPIC_REGS.
3187
3188 2005-01-27  Steven Bosscher  <stevenb@suse.de>
3189
3190         * tree.h (SWITCH_COND, SWITCH_BODY, SWITCH_LABELS, CASE_LOW,
3191         CASE_HIGH, CASE_LABEL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
3192         ASM_CLOBBERS): Add tree checks.
3193
3194         * c-common.h (SWITCH_TYPE): Rename to SWITCH_STMT_TYPE.
3195         (SWITCH_STMT_COND, SWITCH_STMT_BODY): New.
3196         * c-common.def (SWITCH_STMT): Update to match.
3197         * c-common.c (c_do_switch_warnings): Use SWITCH_STMT accessor
3198         macros instead of SWITCH_EXPR ones.
3199         * c-dump.c (c_dump_tree): Likewise.
3200         * c-gimplify.c (gimplify_switch_stmt): Likewise.
3201         * c-typeck.c (c_start_case, do_case, c_finish_case): Likewise.
3202
3203         * doc/c-tree.texi (SWITCH_STMT): Update accessor macro names.
3204
3205 2005-01-27  Alan Modra  <amodra@bigpond.net.au>
3206
3207         * unwind-dw2.c (execute_stack_op): Add missing cases for
3208         DW_OP_shl, DW_OP_shr, DW_OP_shra, DW_OP_xor.
3209
3210 2005-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
3211
3212         * config.gcc (Obsolete configurations): Remove 'dummy', add
3213         sparclite-*-coff*, sparclite-*-elf*, sparc86x-*-elf* and
3214         sparc-*-openbsd*.
3215
3216 2005-01-26  Diego Novillo  <dnovillo@redhat.com>
3217
3218         PR tree-optimization/19633
3219         * tree-ssa-alias.c (ptr_is_dereferenced_by): Also handle
3220         CALL_EXPRs.
3221         (maybe_create_global_var): Do not create .GLOBAL_VAR if there
3222         are no call-clobbered variables.
3223         * tree-outof-ssa.c (check_replaceable): Return false for calls
3224         with side-effects.
3225
3226 2005-01-26  Ulrich Weigand  <uweigand@de.ibm.com>
3227
3228         * dbxout.c (dbxout_symbol_location): Resolve constant pool references
3229         even for variables with NULL DECL_INITIAL.
3230
3231 2005-01-26  Stuart Hastings  <stuart@apple.com>
3232
3233         * gimplify.c (shortcut_cond_expr): Re-compute side-effects.
3234
3235 2005-01-26  Richard Henderson  <rth@redhat.com>
3236
3237         PR middle-end/18008
3238         * c-decl.c (finish_struct): Set DECL_MODE after resetting a
3239         field's type.
3240         * expr.c (store_field): Strip conversions to odd-bit-sized types
3241         if the destination field width matches.
3242
3243 2005-01-26  Richard Henderson  <rth@redhat.com>
3244
3245         * c-decl.c, expmed.c, expr.c: Revert last change.
3246
3247 2005-01-26  Richard Henderson  <rth@redhat.com>
3248
3249         PR middle-end/18008
3250         * c-decl.c (finish_struct): Set DECL_MODE after resetting a
3251         field's type.
3252         * expmed.c (store_fixed_bit_field): Create a paradoxical subreg
3253         if we don't need the bits above those present in the current mode.
3254         * expr.c (store_field): Strip conversions to odd-bit-sized types
3255         if the destination field width matches.
3256
3257 2005-01-26  Richard Sandiford  <rsandifo@redhat.com>
3258
3259         * config/mips/iris6.h (ENDFILE_SPEC): Don't link in irix-csr.o if
3260         either -ffast-math or -funsafe-math-optimizations is in use.
3261
3262 2005-01-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>
3263
3264         PR target/19293
3265         PR target/19329
3266         * config/avr/avr.c (notice_update_cc): Only set condition code for
3267         ashrqi3 if shift count > 0.
3268         (out_shift_with_cnt): Handle shift count <= 0 as a no-op.
3269         (ashlqi3_out, ashlhi3_out, ashlsi3_out, ashrqi3_out, ashrhi3_out,
3270         ashrsi3_out, lshrqi3_out, lshrhi3_out, lshrsi3_out): Handle shift
3271         count <= 0 as a no-op, and shift count >= width by copying zero
3272         or sign bit to all bits of the result.
3273         * config/avr/avr.md (all shifts): Add alternatives for zero shift
3274         count, with attribute "length" set to 0 and "cc" set to "none".
3275
3276 2005-01-26  Aldy Hernandez  <aldyh@redhat.com>
3277
3278         * doc/invoke.texi: Document -mTLS.
3279
3280         * testsuite/gcc.target/frv/all-tls-global-dynamic.c: New.
3281         * testsuite/gcc.target/frv/all-tls-initial-exec.c: New.
3282         * testsuite/gcc.target/frv/all-tls-initial-exec-pic.c: New.
3283         * testsuite/gcc.target/frv/all-tls-local-dynamic.c: New.
3284         * testsuite/gcc.target/frv/all-tls-local-dynamic-plt.c: New.
3285         * testsuite/gcc.target/frv/all-tls-local-dynamic-plt-pic.c: New.
3286         * testsuite/gcc.target/frv/all-tls-local-exec.c: New.
3287         * testsuite/gcc.target/frv/all-tls-local-exec-TLS.c: New.
3288
3289         * configure.ac: Check for a TLS capable gas.
3290
3291         * configure: Regenerate.
3292
3293 2005-01-26  Richard Henderson  <rth@redhat.com>
3294
3295         PR middle-end/18008
3296         * combine.c (make_field_assignment): Simplify store to zero_extract
3297         from a source with an overlapping mask.
3298
3299 2005-01-26  Aldy Hernandez  <aldyh@redhat.com>
3300
3301         2004-11-11  Eric Christopher  <echristo@redhat.com>
3302
3303         * config/frv/frv.md: Add fr400_integer automaton. Don't
3304         allow TYPE_MUL, TYPE_MACC, or TYPE_CUT to issue in parallel
3305         to TYPE_MACC.
3306
3307 2005-01-26  Steven Bosscher  <stevenb@suse.de>
3308
3309         PR middle-end/16585
3310         * cfgbuild.c (make_edges): Do not clear or set
3311         current_function_has_computed_jump.
3312         * function.h (struct function): Remove the has_computed_jump field.
3313         (current_function_has_computed_jump): Do not define.
3314         * sched-rgn.c (is_cfg_nonregular): Return true if a basic block ends
3315         in a computed jump.  Ignore current_function_has_computed_jump.
3316
3317 2005-01-26  Richard Henderson  <rth@redhat.com>
3318
3319         PR middle-end/19515
3320         * expr.c (categorize_ctor_elements): New argument p_must_clear.
3321         (categorize_ctor_elements_1): Likewise.  Detect a union that isn't
3322         fully initialized.
3323         (mostly_zeros_p): Update for new categorize_ctor_elements argument.
3324         * gimplify.c (gimplify_init_constructor): Likewise.  Only shove
3325         objects into static storage if they have more than one non-zero value.
3326         * tree.h (categorize_ctor_elements): Update decl.
3327
3328 2005-01-26  Steven Bosscher  <stevenb@suse.de>
3329
3330         PR middle-end/19616
3331         * tree.h (CALL_EXPR_TAILCALL): Add comment.
3332         * calls.c (check_sibcall_argument_overlap_1): Revert the change
3333         to this function from 2004-07-10.
3334         * tree-tailcall.c (suitable_for_tail_opt_p): Do not consider the
3335         the current function for tail call optimizations if the address
3336         of one of it its arguments is taken.
3337
3338 2005-01-26  Kazu Hirata  <kazu@cs.umass.edu>
3339
3340         * cse.c (fold_rtx): Call equiv_constant only when necessary.
3341
3342 2005-01-26  Bernd Schmidt  <bernd.schmidt@analog.com>
3343
3344         * function.c (expand_function_end): If current_function_calls_alloca,
3345         emit stack restore in a place that is reached when the function falls
3346         through at the end.
3347
3348 2005-01-26  Alexandre Oliva  <aoliva@redhat.com>
3349
3350         * Makefile.in (../$(build_subdir)/fixincludes/fixincl): Add dummy
3351         rule to avoid matching inappropriate suffix rule.
3352
3353 2005-01-26  Jan Hubicka  <jh@suse.cz>
3354
3355         PR tree-optimization/19241
3356         * tree-inline.c (copy_body_r): Do not walk subtrees after substituting.
3357
3358 2005-01-26  Hans-Peter Nilsson  <hp@axis.com>
3359
3360         * config/cris/cris.h (LIB_SPEC) <sim*>: Use -lsyslinux, not
3361         -lsyssim.  Wrap -lc -lsyssim in --start-group --end-group instead
3362         of doubling.
3363         (STARTFILE_SPEC): Add crti.o, before crtbegin.o.
3364         <sim*>: Always use crt1.o, regardless of N in simN.
3365         <!sim>: Drop support for -pg and -p variants; always use crt0.o.
3366         (ENDFILE_SPEC): Add crtn.o, after crtend.o.
3367         (CRT_CALL_STATIC_FUNCTION): Remove.
3368         * config/cris/aout.h (STARTFILE_SPEC): <!melinux && sim*>: Always
3369         use crt1.o, regardless of N in simN.
3370         <!sim>: Drop support for -pg and -p variants; always use crt0.o.
3371         (LIB_SPEC): Do not define; default to the one in config/cris/cris.h.
3372         (CRIS_CPP_SUBTARGET_SPEC) <melinux && !nostdinc>: Remove special
3373         case isystem setting.
3374         (MAX_OFILE_ALIGNMENT): Correct to 32, not 16.
3375
3376 2005-01-25  Ian Lance Taylor  <ian@airs.com>
3377
3378         * gimple-low.c (block_may_fallthru): Correct handling of
3379         SWITCH_EXPR--may fall through if SWITCH_LABELS is NULL.
3380
3381 2005-01-26  Hans-Peter Nilsson  <hp@axis.com>
3382
3383         * config/cris/cris.h (CPP_SPEC): Adjust the various mtune=
3384         handlers to match indentation; nested under the mtune=* handler.
3385         Similar for mcpu= and march=.
3386
3387 2005-01-25  Daniel Jacobowitz  <dan@codesourcery.com>
3388
3389         * config/mips/linux.h (LIB_SPEC): Remove -rpath-link.
3390         * config/mips/linux64.h (LIB_SPEC): Likewise.
3391         * config/mn10300/linux.h (LIB_SPEC): Likewise.
3392         * config/sh/linux.h (LIB_SPEC): Likewise.
3393
3394 2005-01-25  Aldy Hernandez  <aldyh@redhat.com>
3395
3396         * config/frv/frv.c (frv_legitimize_tls_address): New.
3397         (TARGET_HAVE_TLS): Define.
3398         (FRV_SYMBOL_REF_TLS_P): Define.
3399         (frv_override_options): Handle new register classes.
3400         (frv_legitimate_address_p): Reject tls addresses.
3401         (frv_legitimize_address): Handle TLS addresses.
3402         (gen_inlined_tls_plt): New.
3403         (gen_tlsmoff): New.
3404         (frv_legitimize_tls_address): New.
3405         (unspec_got_name): Add TLS entries.
3406         (got12_operand): Add R_FRV_TLSMOFF12 case.
3407         (frv_emit_move): Fixup TLS addresses.
3408         (frv_emit_movsi): Legitimize TLS addresses.
3409
3410         * config/frv/frv.h (MASK_BIG_TLS): New.
3411         (TARGET_BIG_TLS): New.
3412         (HAVE_AS_TLS): Define.
3413         (TARGET_SWITCHES): Add -mTLS and -mtls options.
3414         (enum reg_class): Add GR8_REGS, GR9_REGS, GR89_REGS.
3415         (REG_CLASS_NAMES): Same.
3416         (REG_CLASS_CONTENTS): Same.
3417         (CONSTRAINT_LEN): New.
3418         (REG_CLASS_FROM_CONSTRAINT): New.
3419         (PREDICATE_CODES): Add symbolic_operand.
3420
3421         * config/frv/frv.md (define_constants): Add UNSPEC_GETTLSOFF,
3422         UNSPEC_TLS_LOAD_GOTTLSOFF12, UNSPEC_TLS_INDIRECT_CALL,
3423         UNSPEC_TLS_TLSDESC_LDD, UNSPEC_TLS_TLSDESC_LDD_AUX,
3424         UNSPEC_TLS_TLSOFF_LD, UNSPEC_TLS_LDDI, UNSPEC_TLSOFF_HILO,
3425         R_FRV_GOTTLSOFF_HI, R_FRV_GOTTLSOFF_LO, R_FRV_TLSMOFFHI,
3426         R_FRV_TLSMOFFLO, R_FRV_TLSMOFF12, R_FRV_TLSDESCHI,
3427         R_FRV_TLSDESCLO, R_FRV_GOTTLSDESCHI, R_FRV_GOTTLSDESCLO, GR8_REG,
3428         GR9_REG, GR14_REG, LRREG.
3429         (type): Add load_or_call attribute.
3430         ("load_or_call"): New reservation.
3431         ("call_gettlsoff"): New.
3432         ("tls_indirect_call"): New.
3433         ("tls_load_gottlsoff12"): New.
3434         ("tlsoff_hilo"): New.
3435         ("tls_tlsdesc_ldd"): New.
3436         ("tls_tlsoff_ld"): New.
3437         ("tls_lddi"): New.
3438
3439         * config/frv/frv-protos.h (symbolic_operand): Protoize.
3440
3441         2005-01-25  Alexandre Oliva  <aoliva@redhat.com>
3442
3443         * config/frv/frv.h (ASM_OUTPUT_DWARF_DTPREL): Define.
3444         * config/frv/frv-protos.h (frv_output_dwarf_dtprel): Declare.
3445         * config/frv/frv.c (TLS_BIAS): Define.
3446         (frv_output_dwarf_dtprel): New.
3447
3448 2005-01-26  Jakub Jelinek  <jakub@redhat.com>
3449
3450         PR rtl-optimization/19579
3451         * ifcvt.c (noce_try_cmove_arith): If emitting instructions to set up
3452         both A and B, see if they don't clobber registers the other expr uses.
3453
3454 2005-01-25  J"orn Rennecke <joern.rennecke@st.com>
3455
3456         * real.c (do_add): Initialize signalling and canonical members.
3457
3458         * real.c (real_from_integer): Zero out destination.
3459
3460 2005-01-18  Jan Hubicka  <jh@suse.cz>
3461
3462         PR tree-optimize/19337
3463         * tree-inline.c (initialize_inlined_parameters): Copy
3464         saved_static_chain_decl only.
3465
3466 2005-01-25  Richard Henderson  <rth@redhat.com>
3467
3468         PR target/19556