OSDN Git Service

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