OSDN Git Service

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