OSDN Git Service

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