OSDN Git Service

* config.gcc (extra_options): New variable for listing option files.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2005-03-14  Richard Sandiford  <rsandifo@redhat.com>
2
3         * config.gcc (extra_options): New variable for listing option files.
4         Add ${cpu_type}/${cpu_type}.opt to it if that file exists.
5         * configure.ac (extra_opt_files): New AC_SUBST variable.
6         (tm_file_list, tm_include_list): Include options.h first.
7         * configure: Regenerate.
8         * Makefile.in (extra_opt_files, ALL_OPT_FILES): New variables.
9         (s-options): Use $(ALL_OPT_FILES) instead of $(lang_opt_files)
10         (s-options-h): New rule.
11         (options.h): Depend on it.
12         (TEXI_GCCINT_FILES): Add options.texi.
13         * hooks.h (hook_bool_size_t_constcharptr_int_true): Declare.
14         * hooks.c (hook_bool_size_t_constcharptr_int_true): New function.
15         * target.h (gcc_target): Add default_target_flags and handle_option.
16         * target-def.h (TARGET_DEFAULT_TARGET_FLAGS)
17         (TARGET_HANDLE_OPTION): New macros.
18         (TARGET_INITIALIZER): Include them.
19         * opt-functions.awk (opt_args, nth_arg): New functions.
20         (switch_flags): Handle the "Target" flag.
21         (var_args): Delete.
22         (var_name): Use opt_args and nth_arg.
23         (var_set, var_ref): Likewise.  Handle "Mask" and "InverseMask".
24         * opth-gen.awk: Declare target_flags.  Declare MASK_* and TARGET_*
25         macros for the "Mask" and "InverseMask" options.
26         * opts.h (cl_var_cond): New enum.
27         (cl_option): Replace the "has_set_value" and "set_value" fields with 
28         "var_cond" and "var_value".
29         (CL_TARGET): New macro.
30         (option_enabled, print_filtered_help): Declare.
31         (decode_options): Move definition.
32         * opts.c (handle_option): Search for the original option before
33         removing any "no-" prefix.  Handle CL_TARGET.  Adjust for the new
34         var_cond and var_value fields.  Use targetm.handle_option to handle
35         target options.
36         (decode_options): Set target_flags to targetm.default_target_flags.
37         (print_filtered_help): Make global.  Handle CL_TARGET.
38         (option_enabled): New function.
39         * toplev.c (target_switches): Guard with #ifdef TARGET_SWITCHES.
40         (display_target_options, set_target_switch, print_switch_values)
41         (default_pch_valid_p): Guard uses of target_switches with
42         #ifdef TARGET_SWITCHES.  Also...
43         (display_target_options): Display the CL_TARGET entries in cl_options.
44         (set_target_option): Don't complain about the "" option when
45         TARGET_SWITCHES is undefined.
46         (print_switch_values): Use option_enabled.
47         (default_pch_valid_p): Check cl_options[] when looking for something
48         that has changed the value of target_flags.
49         * c.opt: Remove documentation from top of file.
50         * doc/gccint.texi: Add an "Options" chapter.  Include options.texi.
51         * doc/sourecebuild.texi: Refer to the new options documentation
52         instead of c.opt.  Document machine-specific .opt files.
53         * doc/tm.texi (target_flags): Say that this variable is declared
54         by options.h.
55         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Document.
56         (TARGET_SWITCHES, TARGET_OPTIONS): Refer to the option files as
57         an alternative.
58         * doc/options.texi: New file.
59
60 2005-03-14  Alexandre Oliva  <aoliva@redhat.com>
61
62         PR middle-end/18628
63         * cse.c (fold_rtx_mem): Don't fold a load from a jumptable into a
64         register.
65
66 2005-03-14  Alexandre Oliva  <aoliva@redhat.com>
67
68         PR c++/20280
69         * gimplify.c (gimplify_cond_expr): Add fallback argument.  Use a
70         temporary variable of pointer type if an lvalues is required.
71         (gimplify_modify_expr_rhs): Request an rvalue from it.
72         (gimplify_expr): Pass fallback on.
73
74 2005-03-14  Kazu Hirata  <kazu@cs.umass.edu>
75
76         * cfgbuild.c: Update comments.
77
78 2005-03-14  Roger Sayle  <roger@eyesopen.com>
79
80         PR rtl-optimization/17236
81         * optabs.c (expand_doubleword_mult): New helper function split out
82         from expand_binop.  Permute the order in which instructions are
83         emitted to minimize the number of simultaneously live registers.
84         (expand_binop): Call expand_doubleword_mult to synthesize a double
85         word multiplication.
86
87 2005-03-14  Kazu Hirata  <kazu@cs.umass.edu>
88
89         * basic-block.h: Update the prototypes of cached_make_edge and
90         rtl_make_eh_edge.
91         * cfg.c (cached_make_edge): Take edge_cache representing one
92         row of the adjacency matrix of edges.
93         * cfgbuild.c (make_label_edge, rtl_make_eh_edge): Likewise.
94         (make_edges): Initialize edge_cache to represent one row of
95         the adjacency matrix of edges.
96
97 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
98
99         * tree-ssa-phiopt.c (minmax_replacement, blocks_in_phiopt_order):
100         New functions.
101         (tree_ssa_phiopt): Use blocks_in_phiopt_order and minmax_replacement.
102         Remove unused removed_phis variable.
103         (conditional_replacement): Use build1/build2.
104         (abs_replacement): Use last_and_only_stmt and build1/build2.
105
106 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
107
108         * builtin-attrs.def (ATTR_NOVOPS, ATTR_NOVOPS_LIST,
109         ATTR_PURE_NOTHROW_NOVOPS_LIST): New.
110         * builtins.def (ATTR_MATHFN_FPROUNDING): Use NOVOPS.
111         (BUILT_IN_PREFETCH): Set the NOVOPS attribute.
112         * c-common.c (handle_novops_attribute): New function.
113         (c_common_attribute_table): Add "no vops" entry.
114         * c-decl.c (merge_decls): Copy DECL_IS_NOVOPS.
115         * calls.c (flags_from_decl_or_type): Set ECF_NOVOPS.
116         * tree-ssa-operands.c (get_call_expr_operands): Do not
117         create virtual operands for calls with ECF_NOVOPS flag.
118         * tree.h (DECL_IS_NOVOPS): New macro.
119         (struct tree_decl): Add novops_flag.
120         (ECF_NOVOPS): New constant.
121
122 2005-03-14  Uros Bizjak  <uros@kss-loka.si>
123
124         PR target/17688
125         * config/i386/i386.c (x86_use_himode_fiop): New.
126         (x86_use_simode_fiop): Rename from x86_use_fiop.
127         * config/i386/i386.h (x86_use_himode_fiop): Declare.
128         (TARGET_USE_HIMODE_FIOP): New.
129         (x86_use_simode_fiop): Rename from x86_use_fiop.
130         (TARGET_USE_SIMODE_FIOP): Rename from TARGET_USE_FIOP.
131         
132         * config/i386/i386.md (X87MODEI12): New mode macro define.
133         (*cmpfp_<mode>): Rename from *cmpfp_si.  Use X87MODEI12 mode macro
134         to implement x87 FP compare with HImode input operands.
135         (*fp_jcc_8<mode>_387, splitter): Rename from *fp_jcc_8_387.
136         Use X87MODEI12 mode macro to handle HImode input operands.
137         (*fop_sf_2<mode>_i387, *fop_sf_3<mode>_i387, *fop_df_2<mode>_i387,
138         *fop_df_3<mode>_i387, *fop_xf_2<mode>_i387, *fop_xf_3<mode>_i387):
139         Renamed from *fop_sf_2_i387, *fop_sf_3_i387, *fop_df_2_i387,
140         *fop_df_3_i387, *fop_xf_2_i387, *fop_xf_3_i387. Use X87MODEI12 mode
141         macro to implement x87 operators with HImode input operands.
142         (fop splitters): Use X87MODEI12 mode macro to handle HImode
143         input operands.
144
145 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
146
147         * tree-cfg.c (find_taken_edge_cond_expr): Use zero_p instead of
148         integer_zerop.
149         * tree-gimple.c (is_gimple_min_invariant): Consider overflowed
150         constants invariant.
151
152 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
153
154         * basic-block.h (BB_VISITED): Removed.
155         * cfganal.c (dfs_enumerate_from): Do not use BB_VISITED flag.
156
157 2005-03-14  Falk Hueffner  <falk@debian.org>
158
159         PR bootstrap/20424
160         * config/alpha/alpha.c (alpha_fold_builtin_cmpbge): Fix typo.
161
162 2005-03-14  Kazu Hirata  <kazu@cs.umass.edu>
163
164         * ggc-zone.c: Fix comment typos.
165
166         * alloc-pool.c, except.h, ggc-common.c, ggc-zone.c, ggc.h,
167         stringpool.c, config/mips/mips-protos.h: Update copyright.
168
169 2005-03-14  Alan Modra  <amodra@bigpond.net.au>
170
171         * config/rs6000/rs6000-protos.h: Replace "struct rtx_def *"
172         throughout with its typedef, "rtx".
173         * config/rs6000/rs6000.c: Likewise.  Formatting fixes.
174         (rs6000_tls_symbol_ref_1): Remove inline keyword.
175         * config/rs6000/rs6000.h (REG_ALLOC_ORDER): Formatting.  Reorder
176         regs in comment to match code.
177
178 2005-03-14  Kazu Hirata  <kazu@cs.umass.edu>
179
180         * except.c (check_handled): Make it static.
181         * except.h: Remove the corresponding prototype.
182
183         * function.c (get_func_frame_size): Make it static.
184         * function.h: Remove the corresponding type.
185
186         * regclass.c (reg_class_superclasses, reg_class_subclasses):
187         Make them static.
188         * hard-reg-set.h: Remove the corresponding declarations.
189
190         * tree-cfg.c (verify_stmts): Check that
191         bb_for_stmt (stmt) == bb for every PHI node and statement.
192
193 2005-03-14  Alan Modra  <amodra@bigpond.net.au>
194
195         * config.gcc: Remove excess indentation.
196         (powerpc*-*-*, rs6000-*-*): Accept --with-cpu/tune power5 and 8548.
197
198 2005-03-13  Roger Sayle  <roger@eyesopen.com>
199
200         PR middle-end/19331
201         * tree.c (get_unwidened): Treat CONVERT_EXPR and NOP_EXPR identically.
202         * fold-const.c (fold_sign_changed_comparison): Likewise.
203         (fold_binary): Optimize comparisons against widened operands if
204         the extension is represented by a CONVERT_EXPR, same as a NOP_EXPR.
205
206 2005-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
207
208         * config/sparc/sparc.c (struct_value_alias_set): New global variable.
209         (sparc_override_options): Initialize it.
210         (sparc_struct_value_rtx): Set it on the MEM to be returned.
211
212 2005-03-13  David Edelsohn  <edelsohn@gnu.org>
213
214         * config/rs6000/predicates.md (mem_or_easy_const_operand): Delete.
215         (reg_or_none500mem_operand): New predicate.
216         (zero_reg_mem_operand): New predicate.
217         * config/rs6000/rs6000.md (extendsfdf2): Change operand1 predicate
218         to reg_or_none500mem_operand.
219         (extendsfdf2_fpr): Add MEM alternative.
220         (extenddftf2_internal): Change operand2 predicate to
221         zero_reg_mem_operand.
222
223 2005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>
224
225         * ggc-zone.c: Rewritten.
226
227         * alloc-pool.c (dump_alloc_pool_statistics): Don't print statistics
228         if there are none.
229         * configure.ac: Define GGC_ZONE for --with-gc=zone.
230         * config.in: Regenerated.
231         * configure: Regenerated.
232         * gengtype.c (write_types_process_field, write_func_for_structure):
233         Pass new argument to gt_pch_note_object.
234         * ggc-common.c (struct ptr_data): Add TYPE.
235         (gt_pch_note_object): Take TYPE argument and save it.
236         (call_count): Update call to ggc_pch_count_object.
237         (call_alloc): Update call to ggc_pch_alloc_object.
238         (gt_pch_save): Call ggc_pch_prepare_write after paddng the PCH
239         file.
240         * ggc-none.c (rtl_zone, garbage_zone, ggc_alloc_zone_stat): Delete.
241         * ggc-page.c (rtl_zone, tree_zone, garbage_zone)
242         (ggc_alloc_zone_stat): Delete.
243         (ggc_pch_count_object, ggc_pch_alloc_object): Add TYPE argument.
244         * ggc.h (gt_pch_note_object, ggc_pch_count_object)
245         (ggc_pch_alloc_object): Update prototypes.
246         (garbage_zone): Delete.
247         (tree_zone, rtl_zone, ggc_alloc_zone_stat, ggc_alloc_zone): Move to
248         GGC_ZONE conditional.  Update.  Change tree_zone and rtl_zone into
249         pointers.
250         (tree_id_zone): New variable.
251         (ggc_alloc_cleared_zone): Remove unused.
252         (ggc_alloc_zone): Define.
253         (ggc_alloc_rtvec, ggc_alloc_tree): Update to use ggc_alloc_zone.
254         * rtl.c (rtx_alloc_stat, shallow_copy_rtx_stat): Use
255         ggc_alloc_zone_stat.
256         * stringpool.c (gt_pch_n_S): Update call to gt_pch_note_object.
257         * tree.c (copy_node_stat, make_tree_binfo_stat, make_tree_vec_stat)
258         (tree_cons_stat, build1_stat): Update call to ggc_alloc_zone_stat.
259         (make_node_stat): Likewise.  Use tree_id_zone.
260
261 2005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>
262             Joseph S. Myers  <joseph@codesourcery.com>
263
264         * configure.ac: Check for MIPS TLS.
265         * configure: Regenerated.
266         * config/mips/mips-protos.h (enum mips_symbol_type): Add
267         SYMBOL_TLS, SYMBOL_TLSGD, SYMBOL_TLSLDM, SYMBOL_DTPREL,
268         SYMBOL_GOTTPREL, and SYMBOL_TPREL.
269         * config/mips/mips.c (mips_regno_to_class): Handle V1_REG.
270         (TARGET_HAVE_TLS, TARGET_CANNOT_FORCE_CONST_MEM): Define.
271         (mips_classify_symbol, mips_symbolic_constant_p)
272         (mips_symbolic_address_p, mips_symbol_insns): Handle TLS symbols.
273         (mips_tls_operand_p, mips_call_tls_get_addr)
274         (mips_legitimize_tls_address, mips_cannot_force_const_mem)
275         (mips_tls_symbol_ref_1): New functions.
276         (mips_legitimize_address, mips_legitimize_const_move): Call
277         mips_legitimize_tls_address.
278         (override_options): Handle V1_REG and TLS symbols.  Disable TLS
279         for MIPS16.
280         * config/mips/mips.h (enum reg_class, REG_CLASS_NAMES)
281         (REG_CLASS_CONTENTS, GR_REG_CLASS_P): Include V1_REG.
282         (mips_char_to_class): Document V1_REG.
283         (HAVE_AS_TLS): Provide default.
284         * config/mips/mips.md (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): New
285         constants.
286         (load_got<mode>): Renamed from *load_got<mode>.  Allow when
287         !TARGET_ABICALLS.
288         (tls_get_tp_<mode>): New instruction.
289
290 2005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>
291
292         * configure.ac: Update checks for target tools.
293         * configure: Regenerated.
294
295 2005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>
296
297         * varasm.c (decl_tls_model): Check flag_shlib instead of flag_pic.
298
299 2005-03-13  Roger Sayle  <roger@eyesopen.com>
300
301         * expmed.c (expand_mult): Use synthetic multiplication sequences for
302         more classes of DImode multiplication by constant.  Allow both
303         multiplication by small negative constants (by performing a 
304         multiplication by a positive constant and negating the result) and
305         multiplications by large powers of two, by using a left shift.
306
307 2005-03-13  Kazu Hirata  <kazu@cs.umass.edu>
308
309         * tree-into-ssa.c (find_idf): Speed up by putting the indexes
310         of basic blocks into work_stack.
311
312         * builtin-attrs.def, c-lex.c, c-pragma.h, reg-stack.c,
313         config/mips/vr.h: Update copyright.
314
315         * c-decl.c (c_init_decl_processing): Remove useless calls to
316         build_function_type.
317
318         * builtins.c (fold_trunc_transparent_mathfn,
319         fold_fixed_mathfn, fold_builtin_atan, fold_builtin_trunc,
320         fold_builtin_floor, fold_builtin_ceil, fold_builtin_round,
321         fold_builtin_lround, fold_builtin_bitop, fold_builtin_memcpy,
322         fold_builtin_strcpy, fold_builtin_strncpy,
323         fold_builtin_signbit): Use TYPE (TYPE (fndecl)) instead of
324         TREE_TYPE (exp).
325
326         * builtins.c (expand_builtin_mathfn_3): Remove local variable
327         before_call.
328
329         * lambda-code.c (lambda_compute_auxillary_space): Remove local
330         variable determinant.
331
332         * tree-cfg.c (group_case_labels): Remove local variable type.
333
334         * tree-ssa-live.c (build_tree_conflict_graph): Remove local
335         variable ann.
336
337         * tree-ssa-phiopt.c (value_replacement): Remove local variable
338         result.
339
340 2005-03-13  Andy Hutchinson  <HutchinsonAndy@netscape.net>
341
342         PR target/18251
343         * config/avr/avr.md (movmemhi): Rewrite as RTL loop.
344         (*movmemqi_insn): Delete.
345         (*movmemhi): Delete.
346
347 2005-03-13  Kazu Hirata  <kazu@cs.umass.edu>
348
349         * builtins.c (fold_builtin_classify): Take decomposed
350         arguments of CALL_EXPR.
351         (fold_builtin_1): Update a call to fold_builtin_classify.
352
353 2005-03-13  Joseph S. Myers  <joseph@codesourcery.com>
354
355         PR c/20402
356         * c-parser.c (c_parser_struct_or_union_specifier): Don't fall
357         through into call to parser_xref_tag after parse error.
358         (c_parser_struct_declaration): Consistently return NULL_TREE on
359         error.
360
361 2005-03-12  Daniel Berlin  <dberlin@dberlin.org>
362
363         * tree-flow-inline.h (ref_contains_array_ref): New function.
364         (lookup_subvars_for_var): Ditto.
365         (get_subvars_for_var): Ditto.
366         (var_can_have_subvars): Ditto.
367
368         * tree-flow.h (mem_tag_kind): Add STRUCT_FIELD.
369         (struct subvar): New type.
370
371         * tree-dfa.c (okay_component_ref_for_subvars): New function.
372
373         * tree-optimize.c (init_tree_optimization_passes): Call
374         pass_create_structure_vars.
375
376         * tree-ssa-alias.c: Include vec.h.
377         (init_alias_info): Don't auto-clear call clobbered on struct-field
378         tags.
379         (compute_flow_insensitive_aliasing): Handle subvars.
380         (group_aliases): Handle STRUCT_FIELD aliases.
381         (setup_pointers_and_addressables): Ditto.
382         Don't mark variables non-addressable if they still have
383         addressable subvars.
384         Also mark subvars addressable when the real variable is marked
385         addressable. 
386         (add_pointed_to_var): Try to prune the pointed-to set by only
387         pointing to subvars when possible.
388         Otherwise, make sure we set addresses_needed and pt_vars to
389         properly include subvars.
390         (bitpos_of_field): New function.
391         (push_fields_onto_fieldstack): Ditto.
392         (get_or_create_used_part_for): Ditto.
393         (create_overlap_variables_for): Ditto.
394         (find_used_portions): Ditto.
395         (create_structure_vars): Ditto.
396         (pass_create_structure_vars): New structure.
397
398         * tree-ssa-operands.c (finalize_ssa_v_must_defs): Remove assert.
399         (get_expr_operands): Handle subvars.  Also try to turn
400         COMPONENT_REF accesses into must-defs now that we can accurately
401         portray it.
402         (note_addressable): Try to only mark as addressable those subvars
403         we know a COMPONENT_REF touches.
404         (overlap_subvar): New function.
405
406         * tree-vect-analyze.c (vect_object_analysis): Add new parameter.
407         Handle subvar storing.
408         (vect_address_analysis): Update caller of vect_object_analysis.
409
410         * tree-vect-transform.c (vect_create_data_ref_ptr): Copy subvars.
411
412         * tree-vectorizer.h (struct _stmt_vec_info): Add subvars member.
413         (STMT_VINFO_SUBVARS): New macro.
414
415         * common.opts: add flag_tree_salias.
416         
417         * opts.c (decode_options): flag_tree_salias defaults to on.
418         
419         * doc/invoke.texi: Document fdump-tree-svars and -ftree-salias.
420
421         * doc/tree-ssa.texi: Document structural alias analysis.
422         
423 2005-03-12  Steven Bosscher  <stevenb@suse.de>
424
425         * tree-cfg.c (make_goto_expr_edges): Don't use error_mark_node.
426         * tree-ssa-dce.c (mark_stmt_necessary): Don't check for it.
427         * tree-ssa-operands.c (get_expr_operands): Likewise.
428         (get_expr_operands): Likewise for ERROR_MARK.
429
430 2005-03-12  Kazu Hirata  <kazu@cs.umass.edu>
431
432         * tree-ssa.c (kill_redundant_phi_nodes): Remove local variable
433         var.
434
435         * tree-ssa-phiopt.c (tree_ssa_phiopt): Remove local variable
436         removed_phis.
437
438         * tree-ssa-pre.c (compute_avail): Remove local variable val.
439         (mark_operand_necessary): Remove local variable ver.
440
441         * tree-vect-transform.c (vect_get_new_vect_var): Remove local
442         variable prefix_len.
443
444         * value-prof.c (mod_subtract_transform): Remove local variable
445         value.
446
447         * builtins.c (fold_builtin_exponent): Take decomposed
448         arguments of CALL_EXPR.
449         (fold_builtin_1): Update a call to fold_builtin_exponent.
450
451         * builtins.c (fold_builtin_logarithm): Take decomposed
452         arguments of CALL_EXPR.
453         (fold_builtin_1): Update a call to fold_builtin_logarithm.
454
455         * c-decl.c (c_init_decl_processing): Remove local variables
456         ptr_ftype_void and ptr_ftype_ptr.
457
458         * gimplify.c (gimplify_expr): Remove local variables r0 and
459         r1.
460
461         * reg-stack.c (move_for_stack_reg): Remove local variable
462         push_insn.
463         (compare_for_stack_reg): Remove local variable flags_user.
464         (convert_regs_1): Remove local variable deleted.
465
466         * tree-if-conv.c (tree_if_convert_cond_expr): Remove local
467         variable new_cond.
468         (combine_blocks): Remove local variables exits and new_e.
469
470         * tree-inline.c (expand_call_inline): Remove local variable
471         decl.
472
473         * tree-ssa-live.c (create_ssa_var_map,
474         calculate_live_on_entry): Remove local variable snn.
475
476 2005-03-12  Geoffrey Keating  <geoffk@apple.com>
477
478         * c-lex.c (c_lex_with_flags): Add parameter to call to 
479         cpp_spell_token.
480
481 2005-03-11  Per Bothner  <per@bothner.com>
482
483         * c-tree.h (struct c_declarator): New id_loc field.
484         * c-pragma.h (c_lex_with_flags): Take position reference.
485         * c-lex.c (c_lex_with_flags): Set passed-in location from cpp token,
486         iff USE_MAPPED_LOCATION. (Type doesn't match otherwise.)
487         (c_lex): Pass dummy location to c_lex_with_flags.
488         * c-parser.c (c_lex_one_token): Set c_token's location using
489         c_lex_with_flags, instead of input_location, which might be "ahead".
490         (c_parser_direct_declarator): Set declarator's id_loc from
491         c_token's id_loc.
492         * c-decl.c (grokdeclarator): Set DECL_SOURCE_LOCATION from
493         declarator's id_loc, rather than probably-imprecise input_location.
494         (build_id_declarator): Initialize c_declarator's id_loc field.
495
496 2005-03-11  Roger Sayle  <roger@eyesopen.com>
497
498         PR middle-end/20419
499         * builtins.c (expand_builtin_signbit): Force the signbit's word
500         into an integer register to avoid SUBREGs of floating point modes.
501
502 2005-03-12  Kazu Hirata  <kazu@cs.umass.edu>
503
504         * cfglayout.c, loop-doloop.c, profile.c, target-def.h,
505         target.h, targhooks.c, tracer.c, tree-ssa-loop-ch.c,
506         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, vec.c, vmsdbgout.c,
507         config/m32r/m32r.md, config/xtensa/xtensa.h: Update copyright.
508
509 2005-03-11  David Edelsohn  <edelsohn@gnu.org>
510
511         PR rtl-optimization/20306
512         * expr.c (emit_move_complex): Set try_int false if mode is
513         MODE_COMPLEX_FLOAT and mov_optab exists for inner mode.  Only try
514         emit_block_move if try_int is true.
515
516 2005-03-11  Richard Henderson  <rth@redhat.com>
517
518         PR target/20415
519         * config/i386/mmx.md (vec_dupv4hi): Fix predicate.
520         * config/i386/i386.c (ix86_expand_vector_init_duplicate): Update
521         to match.
522
523 2005-03-11  Richard Sandiford  <rsandifo@redhat.com>
524
525         * config/mips/mips.h (mips_fix_vr4130_string): Declare.
526         (TARGET_FIX_VR4130): New macro.
527         (TARGET_OPTIONS): Add -mfix-vr4130.
528         (ISA_HAS_MACCHI): New macro.
529         (ASM_SPEC): Add -mfix-vr4130.
530         * config/mips/mips.c (mips_fix_vr4130_string): New variable.
531         (override_options): Handle mips_fix_vr4130_string.
532         (mips_avoid_hazards): Clear all_noreorder_p
533         if we're working around VR4130 errata and the macc alternatives
534         are not available.
535         * config/mips/mips.md (mfhilo_<mode>): Turn into a define_expand.
536         (*mfhilo_<mode>, *mfhilo_<mode>_macc): New insns.
537         * config/mips/vr.h (DEFAULT_VR_ARCH): Set to mfix-vr4130.
538         (MULTILIB_DEFAULTS): Remove leading "march=".
539         (DRIVER_SELF_SPECS): Likewise.  Make -mfix-vr4130 imply -march=vr4130
540         if no architecture option is given.
541         * config/mips/t-vr (MULTILIB_OPTIONS): Use -mfix-vr4130 for the
542         VR4130 multilibs.
543         (MULTILIB_MATCHES): Map -march=vr4130 to the -mfix-vr4130 multilibs.
544         * doc/invoke.texi: Document -mfix-vr4130.
545
546 2005-03-11  Richard Sandiford  <rsandifo@redhat.com>
547
548         * config/mips/mips.c (override_options): Only warn about -mint64
549         deprecation if TARGET_INT64.
550
551 2005-03-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
552
553         * builtin-attrs.def (ATTR_NONNULL_LIST, ATTR_NOTHROW_NONNULL,
554         ATTR_CONST_NOTHROW_NONNULL, ATTR_PURE_NOTHROW_NONNULL,
555         ATTR_MALLOC_NOTHROW_NONNULL): New "nonnull" attribute lists which
556         are non-specific regarding the nonnull parameter positions.
557         (ATTR_NONNULL_1_2, ATTR_NONNULL_1_4, ATTR_NOTHROW_NONNULL_1_2,
558         ATTR_NOTHROW_NONNULL_1_4, ATTR_CONST_NOTHROW_NONNULL_1,
559         ATTR_PURE_NOTHROW_NONNULL_1, ATTR_PURE_NOTHROW_NONNULL_1_2,
560         ATTR_MALLOC_NOTHROW_NONNULL_1): Delete.
561         
562         * builtins.def: Use the non-specific "nonnull" attibute lists.
563
564 2005-03-11  Zdenek Dvorak  <dvorakz@suse.cz>
565
566         * basic-block.h (single_succ_p, single_pred_p, single_succ_edge,
567         single_pred_edge, single_succ, single_pred): Improve comments.
568
569 2005-03-11  Zdenek Dvorak  <dvorakz@suse.cz>
570
571         * basic-block.h (single_succ_p, single_pred_p, single_succ_edge,
572         single_pred_edge, single_succ, single_pred): New inline functions.
573         * bb-reorder.c (rotate_loop, find_traces_1_round,
574         add_labels_and_missing_jumps, fix_up_fall_thru_edges,
575         duplicate_computed_gotos): Use the single_succ/pred functions.
576         * cfganal.c (forwarder_block_p): Ditto.
577         * cfgbuild.c (compute_outgoing_frequencies): Ditto.
578         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
579         outgoing_edges_match, try_crossjump_to_edge, try_optimize_cfg,
580         merge_seq_blocks): Ditto.
581         * cfghooks.c (split_edge, tidy_fallthru_edges): Ditto.
582         * cfglayout.c (fixup_reorder_chain): Ditto.
583         * cfgloop.c (mark_single_exit_loops, update_latch_info,
584         canonicalize_loop_headers, verify_loop_structure): Ditto.
585         * cfgloopmanip.c (remove_path, unloop, loop_delete_branch_edge,
586         mfb_update_loops, create_preheader, force_single_succ_latches,
587         create_loop_notes): Ditto.
588         * cfgrtl.c (rtl_can_merge_blocks, try_redirect_by_replacing_jump,
589         force_nonfallthru_and_redirect, rtl_tidy_fallthru_edge,
590         commit_one_edge_insertion, purge_dead_edges,
591         cfg_layout_can_merge_blocks_p): Ditto.
592         * except.c (sjlj_emit_function_enter): Ditto.
593         * flow.c (init_propagate_block_info): Ditto.
594         * function.c (thread_prologue_and_epilogue_insns): Ditto.
595         * gcse.c (find_implicit_sets, bypass_conditional_jumps,
596         insert_insn_end_bb): Ditto.
597         * ifcvt.c (merge_if_block, find_if_block, find_if_case_1,
598         find_if_case_2): Ditto.
599         * lambda-code.c (perfect_nestify): Ditto.
600         * lcm.c (optimize_mode_switching): Ditto.
601         * loop-doloop.c (doloop_modify): Ditto.
602         * loop-init.c (loop_optimizer_init): Ditto.
603         * loop-iv.c (simplify_using_initial_values): Ditto.
604         * loop-unroll.c (unroll_loop_runtime_iterations): Ditto.
605         * loop-unswitch.c (unswitch_loop): Ditto.
606         * modulo-sched.c (generate_prolog_epilog): Ditto.
607         * predict.c (combine_predictions_for_insn, estimate_probability,
608         tree_estimate_probability, last_basic_block_p,
609         estimate_bb_frequencies): Ditto.
610         * profile.c (branch_prob): Ditto.
611         * regrename.c (copyprop_hardreg_forward): Ditto.
612         * sched-rgn.c (is_cfg_nonregular, find_rgns, update_live): Ditto.
613         * tracer.c (layout_superblocks): Ditto.
614         * tree-cfg.c (tree_can_merge_blocks_p, tree_merge_blocks,
615         cfg_remove_useless_stmts_bb, cleanup_control_flow,
616         cleanup_control_expr_graph, disband_implicit_edges,
617         tree_find_edge_insert_loc, bsi_commit_edge_inserts,
618         tree_verify_flow_info, tree_make_forwarder_block,
619         tree_forwarder_block_p, remove_forwarder_block,
620         remove_forwarder_block_with_phi, merge_phi_nodes): Ditto.
621         * tree-if-conv.c (tree_if_conversion): Ditto.
622         * tree-mudflap.c (mf_build_check_statement_for): Ditto.
623         * tree-ssa-dce.c (remove_dead_stmt): Ditto.
624         * tree-ssa-dom.c (dom_opt_finalize_block): Ditto.
625         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p,
626         copy_loop_headers): Ditto.
627         * tree-ssa-loop-im.c (loop_commit_inserts): Ditto.
628         * tree-ssa-loop-ivopts.c (compute_phi_arg_on_exit): Ditto.
629         * tree-ssa-loop-manip.c (split_loop_exit_edge, ip_normal_pos,
630         lv_adjust_loop_entry_edge, tree_ssa_loop_version): Ditto.
631         * tree-ssa-loop-niter.c (simplify_using_initial_conditions): Ditto.
632         * tree-ssa-loop-unswitch.c (simplify_using_entry_checks): Ditto.
633         * tree-ssa-phiopt.c (tree_ssa_phiopt, value_replacement): Ditto.
634         * tree-ssa-pre.c (compute_antic_aux, insert_aux, init_pre): Ditto.
635         * tree-ssa-threadupdate.c (redirect_edges): Ditto.
636         * tree-tailcall.c (independent_of_stmt_p, find_tail_calls,
637         eliminate_tail_call, tree_optimize_tail_calls_1): Ditto.
638         * tree-vect-analyze.c (vect_analyze_loop_form): Ditto.
639         * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Ditto.
640         * tree-vectorizer.c (slpeel_update_phi_nodes_for_guard,
641         slpeel_add_loop_guard): Ditto.
642
643 2005-03-11  James A. Morrison  <phython@gcc.gnu.org>
644
645         PR tree-optimization/15784
646         * fold-const.c (fold): Fold ~A + 1 to -A.  Fold -A - 1
647         and -1 - A to ~A.
648
649         * stmt.c (expand_case): Don't change index_type.  Convert minval
650         to the proper type.
651
652         PR tree-optimization/20130
653         * fold-const.c (fold): Fold x * -1 into -x.
654
655 2005-03-11  Kaz Kojima  <kkojima@gcc.gnu.org>
656
657         PR rtl-optimization/20331
658         * rtlanal.c (modified_between_p): Check its address first for MEM.
659         (modified_in_p): Likewise.
660
661 2005-03-11  Joseph S. Myers  <joseph@codesourcery.com>
662
663         * config.gcc (hppa*64*-*-hpux11*): Use pa/t-hpux-shlib.
664
665 2005-03-10  Steven Bosscher  <stevenb@suse.de>
666
667         * expr.c (expand_expr_real_1): If possible, use a conditional
668         move for expanding MIN_EXPR and MAX_EXPR.
669         Use temp for moving around rtx-en.
670
671 2005-03-10  Andrew Pinski  <pinskia@physics.uc.edu>
672
673         PR rtl-opt/20412
674         * simplify-rtx.c (simplify_relational_operation_1): Fix typo - check the
675         correct mode.
676
677 2005-03-10  Roger Sayle  <roger@eyesopen.com>
678
679         * builtins.c (expand_builtin_signbit): Extend to handle floating
680         point modes wider than the largest integer type, using the
681         operand_subword_force function to obtain the signbit's word.
682
683 2005-03-10  Jakub Jelinek  <jakub@redhat.com>
684
685         PR target/20322
686         * combine.c (try_combine): If recog_for_combine added CLOBBERs
687         to NEWI2PAT, fail to combine if they are used by NEWPAT.
688
689 2005-03-10  Aldy Hernandez  <aldyh@redhat.com>
690
691         * doc/invoke.texi: Add 8540 to list of cpus in rs6000 cpu section.
692
693 2005-03-10  Kazu Hirata  <kazu@cs.umass.edu>
694
695         * tree-outof-ssa.c (analyze_edges_for_bb): Make the return
696         type void.
697         (perform_edge_inserts): Unconditionally call
698         free_dominator_info.
699
700         * tree-outof-ssa.c (analyze_edges_for_bb): Update a comment.
701
702 2005-03-10  Bob Wilson  <bob.wilson@acm.org>
703
704         * config/xtensa/xtensa.h (MEMBER_TYPE_FORCES_BLK): Define.
705
706 2005-03-10  Nathan Sidwell  <nathan@codesourcery.com>
707
708         * bitmap.c (bitmap_copy): Remove manual loop unrolling.
709
710         * value-prof.c (rtl_find_values_to_profile): Use gcc_assert and
711         gcc_unreachable.
712         (rtl_register_value_prof_hooks,
713         tree_value_profile_transformations,
714         tree_register_value_prof_hooks): Likewise.
715         * var-tracking.c (stack_adjust_offset_pre_post,
716         variable_htab_free, variable_union, dataflow_set_different_2,
717         count_uses, variable_was_changed, set_frame_base_location,
718         set_variable_part, emit_note_insn_var_location, vt_emit_notes,
719         vt_add_function_parameters): Likewise.
720         * varasm.c (named_section_real, named_section, make_decl_rtl,
721         asm_emit_uninitialised, assemble_integer, decode_addr_const,
722         const_hash_1, compare_constant, copy_constant, force_const_mem,
723         output_constant_pool_2, output_constant_pool_1, output_constant,
724         output_constructor, make_decl_one_only, decl_tls_model,
725         default_no_named_section, default_elf_select_section_1,
726         default_unique_section_1): Likewise.
727         * vec.c (vec_gc_o_reserve, vec_heap_o_reserve): Likewise.
728         * vmsdbgout.c (addr_const_to_string): Likewise.
729
730         PR c++/20375
731         * function.c (struct assign_parm_data_one): Remove last_named
732         field.
733         (assign_parm_find_data_types): Don't determine last_named.
734         Reorder named_parm determination.
735         (assign_parms): Only setup varargs on the last non-varadic
736         parameter.
737
738 2005-03-10  Kazuhiro Inaoka  <inaoka.lazuhiro@renesas.com>
739
740         * config/m32r/m32r.md (load_sda_base_32): New pattern.  Loads
741         sda base address on medium model.
742
743 2005-03-10  Zdenek Dvorak  <dvorakz@suse.cz>
744
745         * Makefile.in (tree-optimize.o): Add CFGLOOP_H dependence.
746         * cfgloop.c (flow_loop_nodes_find): Export.
747         * cfgloop.h (flow_loop_nodes_find, fix_loop_structure):
748         Declare.
749         * cfgloopmanip.c (fix_loop_structure): New function.
750         * predict.c (predict_loops): Clean up the loops information.
751         * tree-cfg.c (cleanup_tree_cfg_loop): New function.
752         (tree_can_merge_blocks_p, remove_bb, tree_forwarder_block_p): Respect
753         loop structure.
754         * tree-flow.h (cleanup_tree_cfg_loop): Declare.
755         (rewrite_into_loop_closed_ssa): Declaration changed.
756         * tree-loop-linear.c (linear_transform_loops): Add argument to
757         rewrite_into_loop_closed_ssa call.
758         * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
759         * tree-ssa-loop-im.c (move_computations): Ditto.
760         * tree-ssa-loop.c (tree_loop_optimizer_init): Ditto.
761         * tree-vectorizer.c (vectorize_loops): Ditto.
762         * tree-optimize.c: Include cfgloop.h.
763         (execute_todo): Choose whether to call cleanup_tree_cfg or
764         cleanup_tree_cfg_loop.
765         * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables,
766         (tree_unroll_loops_completely): Enable cleanup_tree_cfg_loop call.
767         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Enable
768         cleanup_tree_cfg_loop call.
769         * tree-ssa-loop-manip.c (find_uses_to_rename_bb): New function.
770         (find_uses_to_rename, rewrite_into_loop_closed_ssa): Support
771         work on part of cfg.
772
773 2005-03-10  Jakub Jelinek  <jakub@redhat.com>
774
775         PR inline-asm/20314
776         * gimplify.c (gimplify_asm_expr): Handle input/output constraints
777         with multiple alternatives.
778
779         * stmt.c (parse_output_constraint): Fix a typo.
780
781 2005-03-09  Bob Wilson  <bob.wilson@acm.org>
782
783         * config/xtensa/xtensa.h (TRAMPOLINE_TEMPLATE): Use "no-transform"
784         assembly directive instead of deprecated "no-generics".
785
786 2005-03-09  Ulrich Weigand  <uweigand@de.ibm.com>
787
788         * config/s390/s390.c (s390_secondary_output_reload_class): Adapt check
789         for non-offsettable memory references to cope with outstanding reload
790         replacements.
791         * config/s390/s390.md ("reload_outti"): Call find_replacement to
792         avoid losing outstanding address reloads.
793         ("reload_outdi", "reload_outdf"): Likewise.
794
795 2005-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
796
797         * builtins.c (fold_builtin_cbrt, fold_builtin_pow): Rearrange
798         code.  Add more cbrt transformations.
799
800 2005-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
801
802         * fold-const.c (fold_unary_to_constant): Add FIX_ROUND_EXPR case.
803
804 2005-03-09  Kazu Hirata  <kazu@cs.umass.edu>
805
806         * fold-const.c (fold_unary, fold_binary, fold_ternary): Return
807         NULL_TREE when a given tree is not simplified.
808         (fold): Return the original tree when any of the functions
809         mentioned above NULL_TREE.
810
811         * fold-const.c (fold_unary, fold_binary): Take decomposed
812         arguments, code, type, op0, and op1 in case of fold_binary.
813         (fold): Update calls to fold_unary and fold_binary.
814
815 2005-03-09  Roger Sayle  <roger@eyesopen.com>
816
817         * builtins.c (fold_builtin_unordered_cmp): Change prototype to take
818         a fndecl and an arglist instead of a CALL_EXPR, exp.
819
820 2005-03-09  Kazu Hirata  <kazu@cs.umass.edu>
821
822         * cfglayout.c (fixup_reorder_chain): Remove old_bb.
823
824         * cfgrtl.c (cfg_layout_merge_blocks): Remove new_e.
825
826         * expr.c (expand_assignment): Remove orig_to_rtx.
827
828         * fold-const.c (int_const_binop): Remove no_overflow.
829
830         * ifcvt.c (noce_emit_move_insn): Remove inmode.
831
832         * loop-iv.c (get_biv_step_1): Remove lhs.
833
834         * loop-unroll.c (analyze_insns_in_loop): Remove preheader.
835
836         * real.c (real_nan): Remove neg.
837
838         * function.c (thread_prologue_and_epilogue_insns): Remove i
839         and newinsn.
840
841         * tree-data-ref.c (array_base_name_differ_p): Remove ta and
842         tb.
843
844         * tree-eh.c (tree_could_trap_p): Remove idx.
845
846         * tree-into-ssa.c (ann): Remove ann.
847
848         * tree-outof-ssa.c (num_nodes): Remove num_nodes.
849
850         * tree-sra.c (decide_block_copy): Remove inst_count.
851
852         * tree-ssa-alias.c (may_alias_p): Remove v_ann.
853
854         * tree-ssa-loop-im.c (lhs): Remove.
855
856         * cfgbuild.c (state, STATE, SET_STATE,
857         BLOCK_USED_BY_TABLEJUMP, FULL_STATE): Move just before
858         make_edges.
859         (make_edges): Speed up by skipping blocks with BLOCK_ORIGINAL.
860         (find_basic_blocks): Set the state of each basic block to
861         BLOCK_NEW.
862
863 2005-03-08  Jeff Law  <law@redhat.com>
864
865         * tree-cfg.c (cleanup_control_flow): If removal of a computed
866         goto results in the removal of edges in the CFG, then we need
867         to recompute dominators.
868
869 2005-03-09  Ben Elliston  <bje@au.ibm.com>
870
871         * c-common.c (c_do_switch_warnings): Comment fix.
872
873 2005-03-08  Julian Brown  <julian@codesourcery.com>
874
875         * Patch from 2005-03-08 reverted for causing regressions and
876         ppc-darwin bootstrap failure.
877
878 2005-03-08  Fariborz Jahanian <fjahanian@apple.com>
879
880         * config/rs6000/rs6000.c (invalid_arg_for_unprototyped_fn): 
881         Define the real function for ppc-darwin.
882         * c-typeck.c (convert_arguments): Check for target-specific
883         invalid argument call to unprototyped function.
884         * target-def.h (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN): 
885         New Macro.
886         * target.h (invalid_arg_for_unprototyped_fn): New field 
887         in struct calls.
888         * targhooks.c (hook_invalid_arg_for_unprototyped_fn): New 
889         default target hook.
890         * targhooks.h (hook_invalid_arg_for_unprototyped_fn): 
891         Declare.
892
893 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
894
895         * c-typeck.c (constructor_stack, constructor_range_stack,
896         initializer_stack): Make them static.
897
898         * cfg.c (rbi_pool): Make it static.
899
900         * gimple-low.c (lower_stmt_body): Make it static.
901         * tree-flow.h: Remove the corresponding prototype.  Don't
902         declare lower_data.
903
904         * sched-deps.c (cache_size): Make it static.
905
906         * stor-layout.c (lang_adjust_rli): Make it static.
907
908 2005-03-08  Julian Brown  <julian@codesourcery.com>
909
910         * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK
911         from being used for symbols with vague linkage when
912         HAVE_GAS_COMDAT_GROUP is true.
913
914 2005-03-08  J"orn Rennecke <joern.rennecke@st.com>
915
916         * jump.c (invert_jump_1): Don't call redirect_jump_1 with
917         nlabel == JUMP_LABEL (jump).
918
919 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
920
921         * c-common.c, c-opts.c, combine.c, cse.c, dojump.c,
922         gimplify.c, tree-dfa.c, tree-ssa-loop-ivopts.c,
923         tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-sink.c,
924         tree-vect-analyze.c, tree.def, tree.h: Fix comment formatting.
925
926 2005-03-08  Alexey Neyman  <alex.neyman@auriga.ru>
927
928         PR c/14411
929         * calls.c (flags_from_decl_or_type): Handle eturns_twice' attribute.
930         * c-common.c (handle_returns_twice): New function.
931         (c_common_attribute_table): Declare eturns_twice' attribute.
932         * doc/extend.texi: Document eturns_twice' attribute.
933         * tree.h (DECL_IS_RETURNS_TWICE): New macro.
934         (struct tree_decl): Add returns_twice_flag.
935
936 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
937
938         * tree-ssa-phiopt.c: Fix a comment typo.
939
940         * c-semantics.c, cfghooks.c, diagnostic.h, loop-iv.c,
941         loop-unswitch.c, modulo-sched.c, stor-layout.c, tree-gimple.h,
942         config/i386/cygwin1.c, doc/cfg.texi, doc/objc.texi: Update
943         copyright.
944
945 2005-03-08  Richard Henderson  <rth@redhat.com>
946
947         * config/alpha/alpha.c (code_for_builtin): Replace special-case
948         builtin codes with ctzdi2, clzdi2, popcountdi2.
949         (struct alpha_builtin_def): Add is_const.
950         (zero_arg_builtins, one_arg_builtins, two_arg_builtins): Init it.
951         (alpha_v8qi_u, alpha_v8qi_s, alpha_v4hi_u, alpha_v4hi_s): New.
952         (alpha_init_builtins): Init them.  Set nothrow and const attributes
953         on builtins.
954         (alpha_fold_builtin_cmpbge, alpha_fold_builtin_zapnot, 
955         alpha_fold_builtin_extxx, alpha_fold_builtin_insxx, 
956         alpha_fold_builtin_mskxx, alpha_fold_builtin_umulh, 
957         alpha_fold_vector_minmax, alpha_fold_builtin_perr,
958         alpha_fold_builtin_pklb, alpha_fold_builtin_pkwb,
959         alpha_fold_builtin_unpkbl, alpha_fold_builtin_unpkbw,
960         alpha_fold_builtin_cttz, alpha_fold_builtin_ctlz,
961         alpha_fold_builtin_ctpop, alpha_fold_builtin): New.
962         (TARGET_FOLD_BUILTIN): New.
963         * config/alpha/alpha.md (UNSPEC_CTTZ): Remove.
964         (UNSPEC_CTLZ, UNSPEC_CTPOP): Remove.
965         (ffsdi2): Use ctz.
966         (cttz, builtin_cttz, builtin_ctlz, builtin_ctpop): Remove.
967
968 2005-03-08  Ira Rosen  <irar@il.ibm.com>
969
970         PR tree-optimization/20122
971         * tree-vect-analyze.c (vect_object_analysis): Analyze initial
972         condition of access function instead of base.
973
974 2005-03-07  Jeff Law  <law@redhat.com>
975             Steven Bosscher  <stevenb@suse.de>
976
977         * tree-cfg.c (find_taken_edge_computed_goto): New function.
978         (find_taken_edge): Call find_taken_edge_computed_goto as
979         appropriate.  Allow any gimple invariant rather than just
980         INTEGER_CST for VAL.
981         (cleanup_control_flow): Cleanup a computed goto which has turned
982         into a simple goto.
983         (tree_merge_blocks): If block B has any forced labels, move
984         them to the start of block A.
985         * tree-ssa-dom.c (thread_across_edge): Allow threading across
986         computed gotos as well.
987         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Handle
988         removal of unnecessary computed gotos too.
989         (lookup_redirection_data): Fix type of INSERT argument.  Callers
990         updated.
991
992 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
993
994         * tree-ssa-phiopt.c: Update copyright.  Fix indentations.
995         Remove trailing spaces.
996
997         * gimplify.c (gimple_push_bind_expr, gimple_pop_bind_expr,
998         unshare_all_trees): Make them static.
999         * tree-gimple.h: Remove the corresponding prototypes.
1000
1001         * diagnostic.h: Remove unused prototype
1002         debug_output_buffer.
1003         * modulo-sched.c: Remove unused prototype
1004         set_row_column_for_ps.
1005
1006         * tree-ssa-phiopt.c (tree_ssa_phiopt,
1007         replace_phi_edge_with_variable): Remove unused variable i.
1008
1009 2005-03-07  Per Bothner  <per@bothner.com>
1010
1011         * tree.h (DECL_IS_BUILTIN): Reverted my patch from earlier today.
1012
1013 2005-03-06  Andrew Pinski  <pinskia@physics.uc.edu>
1014         
1015         PR tree-opt/17671
1016         * tree-ssa-phiopt.c (tree_ssa_phiopt): Rewrite so we base the
1017         bbs on the COND_EXPR instead of the PHI_NODEs.
1018         (candidate_bb_for_phi_optimization): Remove.
1019         (replace_phi_with_stmt): Rename to ...
1020         (replace_phi_edge_with_variable): this and change so that we
1021         replace the phi argument instead of removing the PHI.
1022         (conditional_replacement): Change so we deal with PHI with more
1023         than two arguments.
1024         (value_replacement): Likewise.
1025         (abs_replacement): Likewise.
1026
1027 2005-03-07  Aldy Hernandez  <aldyh@redhat.com>
1028
1029         * config/rs6000/rs6000-protos.h: Rename output_e500_flip_eq_bit to
1030         output_e500_flip_gt_bit.
1031
1032         * config/rs6000/rs6000.c (print_operand): case D: Print out bit 31
1033         as bit 31.
1034         (rs6000_generate_compare): Fix logic to look at the correct bits.
1035         (output_e500_flip_eq_bit): Rename to output_e500_flip_gt_bit.
1036         Look at GT bit.
1037         (rs6000_emit_sCOND): Rename gen_e500_flip_eq_bit to
1038         gen_e500_flip_gt_bit.  Rename gen_move_from_CR_eq_bit to
1039         gen_move_from_CR_gt_bit.
1040
1041         * config/rs6000/rs6000.md ("move_from_CR_eq_bit"): Change bit
1042         ("move_from_CR_eq_bit"): Rename to move_from_CR_gt_bit.
1043         (UNSPEC_MV_CR_EQ): Rename to UNSPEC_MV_CR_GT.
1044
1045         * config/rs6000/spe.md ("e500_cr_ior_compare"): New.
1046         (E500_CR_IOR_COMPARE): New constant.
1047
1048 2005-03-08  Earl Chew <earl_chew@agilent.com>
1049             David Billinghurst <David.Billinghurst@riotinto.com>
1050
1051         * config/i386/host-cygwin.c: New file to support precompiled
1052         headers on cygwin
1053         * config/i386/x-cygwin: Use host-cygwin.c on cygwin host
1054         * config.host: Use above files for cygwin host.
1055
1056 2005-03-07  David Edelsohn  <edelsohn@gnu.org>
1057
1058         * fold-const.c (fold_binary_op_with_conditional_arg): Fix typo
1059         ordering ops from earlier change.
1060
1061 2005-03-07  Per Bothner  <per@bothner.com>
1062
1063         Various fixes to allow us to again build if --enable-mapped-location:
1064         * c-decl.c (finish_function): Use SET_EXPR_LOCATION instead of
1065         unavailable annotate_with_file_line, if USE_MAPPED_LOCATION.
1066         * tree-cfg.c (remove_bb): If USE_MAPPED_LOCATION, change type of
1067         local variable loc. Change logic appropriately.
1068         * tree-vect-transform.c (vect_finish_stmt_generation): Use
1069         EXPR_LOCATION rather than EXPR_LOCUS if USE_MAPPED_LOCATION.    
1070         * c-parser.c (c_parser_for_statement): Initialize loc variable.
1071         * tree.h (DECL_IS_BUILTIN): Temporarily revert definition of
1072         DECL_IS_BUILTIN in the USE_MAPPED_LOCATION because of jc1 issues.
1073
1074 2005-03-07  Richard Sandiford  <rsandifo@redhat.com>
1075
1076         PR rtl-optimization/19683
1077         * reload1.c (choose_reload_regs): Pass the number of bits, not the
1078         number of bytes, to smallest_int_for_mode.  Fix arguments to
1079         REG_CANNOT_CHANGE_MODE_P.
1080
1081 2005-03-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
1082
1083         * reorg.c (relax_delay_slots): Check that the jump is
1084         conditional before trying to invert it.
1085
1086 2005-03-07  Kazu Hirata  <kazu@cs.umass.edu>
1087
1088         * bb-reorder.c (max_entry_frequency, max_entry_frequency):
1089         Make them static.
1090
1091         * calls (stack_arg_under_construction): Make it static.
1092
1093         * flow.c (regs_live_at_setjmp): Make it static.
1094         * flow.h: Remove the corresponding prototype.
1095
1096         * reload1.c (reload_startobj, reload_firstobj,
1097         something_needs_operands_changed, reload_inherited,
1098         reload_inheritance_insn, reload_override_in,
1099         reload_spill_index): Make them static.
1100
1101         * recog.c (verify_changes): Make it static.
1102         * recog.h: Remove the corresponding prototype.
1103
1104         * cfgbuild.c (find_sub_basic_blocks): Remove.
1105         * basic-block.h: Remove the corresponding prototype.
1106         * cfgexpand.c, cfgrtl.c: Don't mention find_sub_basic_blocks
1107         in comments.
1108         * doc/cfg.texi: Don't mention find_sub_basic_blocks.
1109
1110         * tree-ssa-operands.c (check_build_stmt): Remove.
1111
1112         * stor-layout.c (set_alignment): Remove.
1113         * tree.h: Remove the corresponding prototype.
1114
1115         * tree-ssa-pre.c (has_abnormal_preds): Make it static.
1116
1117         * tree-ssa-dce.c (control_dependence_map,
1118         visited_control_parents): Make them static.
1119
1120         * cfghooks.c (verify_flow_info): Remove local variable
1121         num_bb_notes.
1122
1123         * cfgrtl.c (rtl_verify_flow_info_1): Remove local variable
1124         last_bb_seen.
1125
1126         * loop-unswitch.c (unswitch_loop): Remove local variable src.
1127
1128 2005-03-07  David Billinghurst <David.Billinghurst@riotinto.com>
1129
1130         * config/i386/cygwin1.c(mingw_scan): Use xstrdup in calls to putenv.
1131
1132 2005-03-07  Joseph S. Myers  <joseph@codesourcery.com>
1133
1134         * config/ia64/hpux.h (LINK_SPEC): Add -z.
1135         * config/ia64/ia64.c (ia64_function_value): Return a REG not a
1136         PARALLEL for an empty structure.
1137
1138 2005-03-07  Kazu Hirata  <kazu@cs.umass.edu>
1139
1140         * fold-const.c (fold_binary): Remove handling of RANGE_EXPR.
1141
1142         * fold-const.c (fold_binary): Unroll the very first "for"
1143         loop.
1144
1145 2005-03-06  David Edelsohn  <edelsohn@gnu.org>
1146
1147         * config/rs6000/predicates.md (branch_comparison_operator): Remove
1148         redundant match_code test.
1149         (scc_comparison_operator): Swap match_operand and match_code
1150         tests.
1151         (branch_positive_comparison_operator): Same.
1152         (trap_comparison_operator): Use comparison_operator and swap with
1153         match_code test.
1154
1155 2005-03-06  Marek Michalkiewicz  <marekm@amelek.gda.pl>
1156
1157         PR target/20288
1158         * config/avr/avr.c (print_operand): Add 'p' and 'r'.
1159         (out_movhi_r_mr): Read low byte of volatile MEM first.
1160         (out_movhi_mr_r): Write high byte of volatile MEM first.
1161
1162 2005-03-05  Kazu Hirata  <kazu@cs.umass.edu>
1163
1164         * cselib.c (reg_values, reg_values_size): Make them static.
1165
1166         * cse.c (cse_reg_info_table): Make it static.
1167
1168         * fold-const.c (fold_unary): Use build1 instead of copy_node.
1169
1170 2005-03-06  Zdenek Dvorak  <dvorakz@suse.cz>
1171
1172         * cse.c (find_best_addr): Use canon_for_address.
1173
1174 2005-03-06  Kazu Hirata  <kazu@cs.umass.edu>
1175
1176         * cse.c (fold_rtx_subreg, fold_rtx_mem): New.
1177         (fold_rtx): Call fold_rtx_subreg and fold_rtx_mem to handle
1178         SUBREG and MEM, respectively.
1179
1180         * fold-const.c (fold_binary): Use code instead of t.
1181
1182         * fold-const.c (optimize_minmax_comparison): Take decomposed
1183         arguments code, type, op0, and op1 instead of t.
1184         (fold_binary): Update a call to optimize_minmax_comparison.
1185
1186         * fold-const.c (fold_range_test): Take decomposed arguments
1187         code, type, op0, and op1 instead of t.
1188         (fold_binary): Update a call to fold_range_test.
1189
1190         * fold-const.c (fold_binary_op_with_conditional_arg): Take
1191         decomposed arguments code, type, op0, and op1 instead of t.
1192         (fold_binary): Update a call to fold_range_test.
1193
1194 2005-03-06  Kazu Hirata  <kazu@cs.umass.edu>
1195
1196         * fold-const.c (fold_binary): Avoid directly using the original
1197         expression t as much as possible.
1198
1199 2005-03-05  Kazu Hirata  <kazu@cs.umass.edu>
1200
1201         * c-semantics.c (build_stmt): Use TYPE_P instead of
1202         IS_NON_TYPE_CODE_CLASS.
1203         * tree.h (IS_NON_TYPE_CODE_CLASS): Remove.
1204         (NON_TYPE_CHECK): Use TYPE_P instead of
1205         IS_NON_TYPE_CODE_CLASS.
1206
1207         * fold-const.c (fold): Remove handling of binary expressions.
1208
1209 2005-03-05  James A. Morrison  <phython@gcc.gnu.org>
1210
1211         * doc/c-tree.texi: Wrap comments in @r{}.
1212         * doc/cpp.texi: Likewise.
1213         * doc/cppinternals.texi: Likewise.
1214         * doc/extend.texi: Likewise.
1215         * doc/md.texi: Likewise.
1216         * doc/objc.texi: Likewise.
1217         * doc/sourcebuild.texi: Likewise.
1218         * doc/tm.texi: Likewise.
1219         * doc/tree-ssa.texi
1220
1221 2005-03-05  Kazu Hirata  <kazu@cs.umass.edu>
1222
1223         * predict.c (apply_return_prediction): Standardize PHI chain
1224         walking.
1225         * tree-ssa.c (ssa_redirect_edge): Likewise.
1226
1227         * genattrtab.c, genemit.c, genoutput.c, genrecog.c,
1228         gensupport.c, jump.c, tree-phinodes.c, unwind-dw2-fde-glibc.c:
1229         Update copyright.
1230
1231         * tree-phinodes.c (remove_phi_node): Drop the last argument.
1232         * tree-flow.h: Adjust the prototype for remove_phi_node.
1233         * lambda-code.c (perfect_nestify): Adjust a call to
1234         remove_phi_node.
1235         * tree-cfg.c
1236         (remove_phi_nodes_and_edges_for_unreachable_block): Likewise.
1237         * tree-outof-ssa.c (eliminate_virtual_phis, remove_ssa_form):
1238         Likewise.
1239         * tree-ssa-dce.c (remove_dead_phis): Likewise.
1240         * tree-ssa-loop-ivopts.c (remove_statement): Likewise.
1241         * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
1242         * tree-ssa.c (kill_redundant_phi_nodes): Likewise.
1243
1244         * combine.c (simplify_and_const_int): Use gen_int_mode instead
1245         of GEN_INT (trunc_int_for_mode (...)).
1246         * loop-iv.c (iv_number_of_iterations): Likewise.
1247         * postreload.c (reload_cse_move2add): Likewise.
1248         * simplify-rtx.c (simplify_const_unary_operation,
1249         simplify_const_binary_operation): Likewise.
1250         * stor-layout.c (get_mode_bounds): Likewise.
1251
1252         * fold-const.c (fold_binary): New.
1253         (fold): Call fold_binary on binary expressions.
1254
1255 2005-03-05  Richard Sandiford  <rsandifo@redhat.com>
1256
1257         * doc/invoke.texi: Document new MIPS -msym32 and -mno-sym32 options.
1258         * config/mips/mips.h (MASK_SYM32, TARGET_SYM32): New macros.
1259         (TARGET_SWITCHES): Add -msym32 and -mno-sym32.
1260         (ABI_HAS_64BIT_SYMBOLS): Set to false if TARGET_SYM32.
1261         (ASM_SPEC): Pass down -msym32 and -mno-sym32.
1262
1263 2005-03-04  Devang Patel  <dpatel@apple.com>
1264         
1265         PR tree-optimization/18815
1266         * tree-if-conv.c (combine_blocks): Adjust loop header edges for
1267         loops with zero exit edges.
1268
1269 2005-03-04  Devang Patel  <dpatel@apple.com>
1270
1271         * doc/invoke.texi: Remove reference to webpage that does not exist.
1272         
1273 2005-03-04  John David Anglin  <dave.danglin@nrc-cnrc.gc.ca>
1274             Joseph S. Myers  <joseph@codesourcery.com>
1275
1276         PR c++/19797
1277         * pa/elf.h, pa64-hpux.h, som.h (ASM_OUTPUT_EXTERNAL_REAL): Define.
1278         (ASM_OUTPUT_EXTERNAL): Call pa_hpux_asm_output_external.
1279         * pa-protos.h (pa_hpux_asm_output_external): Add prototype.
1280         * pa.c (get_plabel): Change argument to symbol_ref.  Call
1281         maybe_get_identifier instead of get_identifier.
1282         (pa_hpux_asm_output_external, pa_hpux_file_end): New functions.
1283         (struct deferred_plabel): Replace name field with symbol field.
1284         (TARGET_ASM_FILE_END): Define as pa_hpux_file_end if
1285         ASM_OUTPUT_EXTERNAL_REAL is defined.
1286         (output_global_address): Use output_addr_const for output of all
1287         symbol_refs.
1288         (output_deferred_plabels): Use symbol_ref instead of name for address
1289         output.
1290         * pa.h (SYMBOL_FLAG_REFERENCED, SYMBOL_REF_REFERENCED_P,
1291         ASM_OUTPUT_SYMBOL_REF): New macros.
1292         * som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Use assemble_name_raw.  Update
1293         comment.
1294         (ASM_WEAKEN_LABEL): Use targetm.asm_out.globalize_label to globalize
1295         label.
1296
1297 2005-03-05  Joseph S. Myers  <joseph@codesourcery.com>
1298
1299         * config.gcc (hppa*64*-*-hpux11*): Use pa/pa-hpux1111.h for
1300         *-*-hpux11.[1-9]*, not just for *-*-hpux11.11.
1301
1302 2005-03-04  Jeff Law  <law@redhat.com>
1303
1304         * basic-block.h (rediscover_loops_after_threading): Declare.
1305         * tree-ssa-dom.c: Include cfgloop.h.
1306         (tree_ssa_dominator_optimize): Discover loops and some basic
1307         properties.  Remove forwarder blocks recreated by loop header
1308         canonicalization.  Also mark backedges in the CFG.
1309         * tree-ssa-threadupdate.c: Include cfgloop.h
1310         (rediscover_loops_after_threading): Define.
1311         (struct local_info): New field, JUMP_THREADED.
1312         (prune_undesirable_thread_requests): New function.
1313         (redirect_edges): Clear EDGE_ABNORMAL.  If edges were threaded
1314         then record that fact for the callers of redirct_edges.
1315         (thread_block): If BB has incoming backedges, then call
1316         prune_undesirable_thraed_requests.    Note when we are
1317         going to have to rediscover loop information.  Return a
1318         boolean indicating if any jumps were threaded.
1319         (thread_through_all_blocks): Bubble up boolean indicating
1320         if any jumps were threaded.
1321         * Makefile.in (tree-ssa-dom.o): Depend on cfgloop.h
1322         (tree-ssa-threadupdate.o): Similarly.
1323
1324 2005-03-04  Kazu Hirata  <kazu@cs.umass.edu>
1325
1326         * fold-const.c (fold_ternary): Unroll the "for" loop to
1327         extract operands.  
1328
1329 2005-03-04  Andrew Haley  <aph@redhat.com>
1330
1331         * unwind-dw2-fde-glibc.c (struct
1332         unw_eh_callback_data.check_cache): New field.
1333         (frame_hdr_cache): New.
1334         (_Unwind_IteratePhdrCallback): Add ext_dl_phdr_info.
1335         Cache frame header info.
1336
1337 2005-03-04  Richard Sandiford  <rsandifo@redhat.com>
1338
1339         * rtl.h (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
1340         (print_c_condition): Declare.
1341         * read-rtl.c (ptr_loc): New structure.
1342         (ptr_locs, ptr_loc_obstack, joined_conditions)
1343         (joined_conditions_obstack): New variables.
1344         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc)
1345         (get_rtx_ptr_loc, copy_rtx_ptr_loc, print_rtx_ptr_loc)
1346         (join_c_conditions, print_c_condition): New functions.
1347         (apply_macro_to_string): Associate the new string with the same
1348         source location as the old one.
1349         (add_condition_to_string): Use join_c_conditions.
1350         (read_string): Use set_rtx_ptr_loc to record a filename and line
1351         number for the string.
1352         (read_rtx): Initialize the new variables above.
1353         * genattrtab.c (write_test_expr, write_attr_value): Use
1354         print_c_condition.
1355         * genconditions.c (write_header): Don't define MAYBE_EVAL.  Move its
1356         comment above the GCC_VERSION check.
1357         (write_one_condition): Use print_rtx_ptr_loc and print_c_condition.
1358         Inline the definition of MAYBE_EVAL.
1359         * genemit.c (gen_expand, gen_split): Use print_rtx_ptr_loc.
1360         * genoutput.c (process_template): Likewise.
1361         * genpreds.c (write_predicate_subfunction): Likewise.
1362         (write_predicate_expr): Use print_c_condition.
1363         * genrecog.c (write_cond): Likewise.
1364         * gensupport.c (process_rtx): Use join_c_conditions to join the
1365         conditions of a define_insn_and_split.  Record a source location
1366         for the string after the "&&".
1367         (alter_test_for_insn): Use join_c_conditions.
1368
1369 2005-03-04  Andrew Pinski  <pinskia@physics.uc.edu>
1370
1371         Revert for now:
1372         2005-03-03  James A. Morrison  <phython@gcc.gnu.org>
1373         PR tree-optimization/15784
1374         * fold-const.c (fold): Fold ~A + 1 to -A.  Fold -A - 1
1375         and -1 - A to ~A.
1376
1377 2005-03-04  Ben Elliston  <bje@au.ibm.com>
1378
1379         * gcc.c (option_map): Add --coverage.
1380         (LINK_COMMAND_SPEC): Pass -lgcov for `coverage'.
1381         (cc1_options): Pass -fprofile-arcs -ftest-coverage for `coverage'.
1382         * config/darwin.h: Pass -lgcov for `coverage'.
1383         * doc/invoke.texi (Debugging Options): Document --coverage.
1384
1385 2005-03-04  Kazu Hirata  <kazu@cs.umass.edu>
1386
1387         * gcse.c (bypass_block): Use find_edge wherever possible.
1388
1389 2005-03-03  Daniel Berlin <dberlin@dbrelin.org>
1390
1391         Fix PR debug/20253
1392         
1393         * c-opts.c (c_common_parse_file): Call start_source_file
1394         and end_source_file at the approriate times.
1395
1396         * dwarf2out.c (dwarf2out_finish): Don't auto-end
1397         the main file, it will be done for us now.
1398         
1399 2005-03-04  Kazu Hirata  <kazu@cs.umass.edu>
1400
1401         * fold-const.c (fold_ternary): New.
1402         (fold): Call fold_ternary on ternary expressions.  Remove
1403         handling of ternary expressions.
1404
1405 2005-03-03  James A. Morrison  <phython@gcc.gnu.org>
1406
1407         PR tree-optimization/15784
1408         * fold-const.c (fold): Fold ~A + 1 to -A.  Fold -A - 1
1409         and -1 - A to ~A.
1410
1411 2005-03-03  David Edelsohn  <edelsohn@gnu.org>
1412
1413         * config/rs6000/predicates.md (branch_comparison_operator):
1414         Convert from C block to conditional format.
1415
1416 2005-03-03  Jan Hubicka  <jh@suse.cz>
1417
1418         * tree-dfa.c (add_referenced_var): Don't walk initializer of external
1419         and non-constant public variables.
1420
1421 2005-03-03  Kazu Hirata  <kazu@cs.umass.edu>
1422
1423         * tree-cfg.c (stmt_starts_bb_p): Clean up by replacing code
1424         with LABEL_EXPR.
1425
1426         * cfgexpand.c (construct_exit_block): Use EDGE_PRED instead of
1427         EDGE_I.
1428
1429         * tree-phinodes.c (remove_phi_node): Clean up by factoring out
1430         calls to release_ssa_name and release_phi_node.
1431
1432         * fold-const.c (fold): Remove handling of unary expressions.
1433
1434         * fold-const.c (fold_unary): Avoid directly using the original
1435         expression t as much as possible.
1436
1437 2005-03-03  Roger Sayle  <roger@eyesopen.com>
1438             Andrew Pinski  <pinskia@physics.uc.edu>
1439
1440         * jump.c (redirect_exp_1): If nlabel is a NULL pointer create a
1441         RETURN rtx, and not a LABEL_REF containing a NULL pointer.
1442
1443 2005-03-03  Hans-Peter Nilsson  <hp@axis.com>
1444
1445         Describe special registers SRP and MOF as allocatable registers.
1446         * config/cris/cris.c (cris_md_asm_clobbers): New function.
1447         (TARGET_MD_ASM_CLOBBERS): Define to cris_md_asm_clobbers.
1448         (cris_conditional_register_usage): Enable CRIS_MOF_REGNUM if
1449         TARGET_HAS_MUL_INSNS.
1450         (cris_print_operand) <case 'd'>: New case.
1451         <case REG>: Allow CRIS_MOF_REGNUM and CRIS_SRP_REGNUM.
1452         * config/cris/cris.h (CRIS_PC_REGNUM, CRIS_SRP_REGNUM): Don't
1453         define.
1454         (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS)
1455         (REG_ALLOC_ORDER): Update for MOF.
1456         (enum reg_class): New members MOF_REGS, GENERAL_REGS and
1457         SPECIAL_REGS.
1458         (GENERAL_REGS): No longer a define of ALL_REGS.
1459         (REGNO_REG_CLASS, REG_CLASS_CONTENTS, REG_CLASS_NAMES)
1460         (PREFERRED_RELOAD_CLASS, REGISTER_NAMES, DBX_REGISTER_NUMBER):
1461         Adjust accordingly.
1462         (CRIS_SPECIAL_REGS_CONTENTS): New macro.
1463         (REG_CLASS_FROM_LETTER): Allocate 'h' and 'x'.
1464         (SECONDARY_RELOAD_CLASS): Define.
1465         (STACK_POINTER_REGNUM): Define as CRIS_SP_REGNUM.
1466         (FRAME_POINTER_REGNUM): Define as CRIS_FP_REGNUM.
1467         (ARG_POINTER_REGNUM): Define as CRIS_AP_REGNUM.
1468         (STATIC_CHAIN_REGNUM): Define as CRIS_STATIC_CHAIN_REGNUM.
1469         (REGISTER_MOVE_COST): Define.
1470         (PIC_OFFSET_TABLE_REGNUM): Define in terms of CRIS_GOT_REGNUM.
1471         * config/cris/cris.md (CRIS_GOT_REGNUM, CRIS_STATIC_CHAIN_REGNUM)
1472         (CRIS_FP_REGNUM, CRIS_SP_REGNUM, CRIS_SRP_REGNUM, CRIS_AP_REGNUM)
1473         (CRIS_MOF_REGNUM): New define_constants.
1474         ("*movsi_internal", "movhi", "movqi", "movsf"): Add alternatives for
1475         special registers.
1476         ("reload_inhi", "reload_outhi", "reload_inqi", "reload_outqi"):
1477         New patterns.
1478         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3")
1479         ("mulsidi3", "umulsidi3", "smulsi3_highpart", "umulsi3_highpart"):
1480         Adjust for MOF being properly described as a register.
1481         (indir_to_reg_split): Name this split.  Conditionalize on the
1482         destination register being a general register.
1483         (movei): Conditionalize on on operands 0 and 1 having the same
1484         register class.
1485
1486 2005-03-03  Alan Modra  <amodra@bigpond.net.au>
1487
1488         PR target/20277
1489         * config/rs6000/rs6000.c (rs6000_override_options): Don't allow
1490         -mcpu to override any other explicitly given flags.
1491
1492 2005-03-02  J"orn Rennecke <joern.rennecke@st.com>
1493
1494         * recog.c (verify_changes, confirm_change_group): New functions,
1495         broken out of apply_change_group.
1496         (apply_change_group): Use them.
1497         * recog.h (verify_change, confirm_change_group): Declare.
1498         * rtl.h (redirect_jump_2): Declare.
1499         * jump.c (redirect_exp, invert_exp): Delete.
1500         (invert_exp_1): Take second parameter.  Return value.  Changed caller.
1501         (redirect_jump_2): New function, broken out of redirect_jump.
1502         (redirect_jump): Use redirect_jump_1 and redirect_jump_2.
1503         (invert_jump): Use invert_jump_1 and redirect_jump_2.
1504         * ifcvt.c (dead_or_predicable): Use redirect_jump_2.
1505
1506 2005-03-02  Geoffrey Keating  <geoffk@apple.com>
1507
1508         * varasm.c (named_section): Use xstrdup rather than doing it by
1509         hand.
1510
1511         * config/darwin8.h (LIB_SPEC): Switch -lmx and -lSystem.
1512
1513 2005-03-02  Devang Patel  <dpatel@apple.com>
1514         
1515         Undo PR tree-optimization/18815 fix.
1516         
1517 2005-03-02  Devang Patel  <dpatel@apple.com>
1518
1519         PR tree-optimization/18815
1520         * tree-if-conv.c (combine_blocks): Adjust loop header edges for
1521         loops with zero exit edges.
1522         
1523 2005-03-02  Kazu Hirata  <kazu@cs.umass.edu>
1524
1525         * cfg.c (connect_src, connect_dest, disconnect_src,
1526         disconnct_dest): New.
1527         (unchecked_make_edge, remove_edge, redirect_edge_succ,
1528         redirect_edge_pred): Use the new functions.
1529
1530         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
1531         free_dominance_info only when needed.
1532
1533 2005-03-02  David Edelsohn  <edelsohn@gnu.org>
1534
1535         PR target/20276
1536         * config/rs6000/predicates.md (reg_or_cint64_operand): Fix typo.
1537         (reg_or_sub_cint64_operand): Same.
1538
1539 2005-03-02  Jeff Law  <law@redhat.com>
1540
1541         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Fix setting of
1542         CFG_ALTERED in the main DOM iteration loop.
1543
1544 2005-03-02  Mark Mitchell  <mark@codesourcery.com>
1545
1546         PR c++/19916
1547         * varasm.c (initializer_constant_valid_p): Allow conversions
1548         between OFFSET_TYPEs.  Tidy.
1549
1550 2005-03-02  Hans-Peter Nilsson  <hp@axis.com>
1551
1552         * config/cris/cris.md ("return"): Remove epilogue delay list
1553         sanity check.
1554
1555 2005-03-02  Daniel Jacobowitz  <dan@codesourcery.com>
1556
1557         * config/arm/linux-elf.h (ARM_FUNCTION_PROFILER): Do not use (PLT)
1558         for Thumb.
1559         * config/arm/netbsd-elf.h (ARM_FUNCTION_PROFILER): Likewise.
1560
1561 2005-03-02  Kazu Hirata  <kazu@cs.umass.edu>
1562
1563         * cfgloop.h, cfgloopanal.c, cfgloopmanip.c, conflict.c,
1564         loop-init.c, loop-unroll.c, print-tree.c, reg-notes.def,
1565         config/m68k/m68k.c, config/mips/mips.h,
1566         config/rs6000/rs6000-protos.h, doc/contrib.texi,
1567         doc/include/gcc-common.texi: Update copyright.
1568
1569         PR middle-end/18029 and PR middle-end/18030
1570         * expr.c (optimize_bitfield_assignment_op): Add a special case
1571         to handle BIT_IOR_EXPR and BIT_XOR_EXPR.
1572
1573         * fold-const.c (fold_unary): New.
1574         (fold): Call fold_unary on unary expressions.
1575
1576 2005-03-02  Richard Guenther  <rguenth@gcc.gnu.org>
1577
1578         * cgraph.h (struct cgraph_edge): Add prev_caller and
1579         prev_callee fields.
1580         (cgraph_node_remove_callees): Export.
1581         * cgraph.c (cgraph_create_edge): Initialize prev_caller
1582         and prev_callee.
1583         (cgraph_edge_remove_callee): New function.
1584         (cgraph_edge_remove_caller): Likewise.
1585         (cgraph_remove_edge): Use.
1586         (cgraph_redirect_edge_callee): Likewise.
1587         (cgraph_node_remove_callees): New function.
1588         (cgraph_node_remove_callers): Likewise.
1589         (cgraph_remove_node): Use.
1590         * tree-optimize.c (tree_rest_of_compilation): Use
1591         cgraph_node_remove_callees instead of manual loop.
1592         * cgraphunit.c (cgraph_finalize_function): Likewise.
1593         (cgraph_expand_function): Likewise.
1594         (cgraph_remove_unreachable_nodes): Likewise.
1595
1596 2005-03-02  Joseph S. Myers  <joseph@codesourcery.com>
1597
1598         PR c/8927
1599         * c-tree.h (undeclared_variable, build_external_ref): Add extra
1600         argument.
1601         * c-decl.c (undeclared_variable): Take location as argument.
1602         * c-typeck.c (build_external_ref): Likewise.
1603         * c-parser.c (c_parser_postfix_expression): Pass location of
1604         identifier to build_external_ref.
1605
1606 2005-03-01  David Edelsohn  <edelsohn@gnu.org>
1607
1608         * config/rs6000/rs6000.md (cceq splitter): Use operand mode, not
1609         CCEQ mode for branch_positive_comparison_operator test.
1610         * config/rs6000/predicates (branch_comparison_operator): Revert to
1611         define_predicate.
1612         (scc_comparison_operator): Same.
1613         (branch_positive_comparison_operator): Same.
1614
1615 2005-03-01  Hans-Peter Nilsson  <hp@axis.com>
1616
1617         * config/cris/cris.c (cris_eligible_for_epilogue_delay)
1618         (cris_delay_slots_for_epilogue): Remove.
1619         (save_last): Move into cris_target_asm_function_epilogue.
1620         (cris_target_asm_function_epilogue): Remove tests for file being
1621         NULL.
1622         * config/cris/cris-protos.h (cris_eligible_for_epilogue_delay)
1623         (cris_delay_slots_for_epilogue): Remove prototypes.
1624         * config/cris/cris.h (DELAY_SLOTS_FOR_EPILOGUE)
1625         (ELIGIBLE_FOR_EPILOGUE_DELAY): Do not define.
1626
1627 2005-03-01  David Edelsohn  <edelsohn@gnu.org>
1628
1629         * config/rs6000/predicates.md (branch_comparison_operator): Change
1630         to define_special_predicate.
1631         (scc_comparison_operator): Same.
1632         (branch_positive_comparison_operator): Same.
1633
1634 2005-03-01  Daniel Berlin <dberlin@dberlin.org>
1635
1636         * Makefile.in (tree-ssa-sink.o): New.
1637         (OBJS-common): Add tree-ssa-sink.o.
1638         * common.opt: Add -ftree-sink
1639         * opts.c (decode_options): flag_tree_sink is set at O1 or higher.
1640         * timevar.def (TV_TREE_SINK): new timevar.
1641         * tree-flow.h (is_hidden_global_store): Prototype.
1642         * tree-optimize.c (init_tree_optimization_passes): Add
1643         pass_sink_code.
1644         * tree-pass.h (pass_sink_code): New.
1645         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Move checking
1646         for non-obvious global store store to is_hidden_global_store, and
1647         call that new function.
1648         * tree-ssa-sink.c: New file.
1649         * doc/invoke.texi: Document -fdump-tree-sink and -ftree-sink.
1650         * doc/passes.texi: Document forward store motion.
1651         * testsuite/gcc.dg/tree-ssa/ssa-sink-1.c: New test
1652         * testsuite/gcc.dg/tree-ssa/ssa-sink-2.c: New test
1653         * testsuite/gcc.dg/tree-ssa/ssa-sink-3.c: New test
1654         * testsuite/gcc.dg/tree-ssa/ssa-sink-4.c: New test
1655
1656 2005-03-01  Per Bothner  <per@bothner.com>
1657
1658         * diagnostic.c (diagnostic_build_prefix): If USE_MAPPED_LOCATION
1659         and we have a non-zero column-number, add it to the message.
1660         Also factor out the diagnostic_kind_text.
1661
1662 2005-03-01  Zdenek Dvorak  <dvorakz@suse.cz>
1663
1664         * cfgloop.c (flow_loop_entry_edges_find, flow_loop_exit_edges_find,
1665         flow_loop_pre_header_scan, flow_loop_pre_header_find,
1666         flow_loop_scan): Removed.
1667         (flow_loop_dump): Do not dump removed fields.
1668         (flow_loop_free): Do not free removed fields.
1669         (flow_loops_find): Flags argument removed.  Do not call flow_loop_scan.
1670         (loop_exit_edge_p): New function.
1671         * cfgloop.h (struct loop): Removed fields pre_header, pre_header_edges,
1672         num_pre_header_edges, entry_edges, num_entries, exit_edges,
1673         num_exits, exits_doms.
1674         (LOOP_TREE, LOOP_PRE_HEADER, LOOP_ENTRY_EDGES, LOOP_EXIT_EDGES,
1675         LOOP_EDGES, LOOP_ALL): Removed.
1676         (flow_loop_scan): Declaration removed.
1677         (loop_exit_edge_p, mark_loop_exit_edges): Declare.
1678         * cfgloopmanip.c (create_loop_notes): Do not pass flags to
1679         flow_loops_find.
1680         * ifcvt.c (mark_loop_exit_edges): Moved to cfgloopanal.c.
1681         (if_convert): Call flow_loops_find and flow_loops_free
1682         when calling mark_loop_exit_edges.
1683         * cfgloopanal.c (mark_loop_exit_edges): Moved from
1684         ifcvt.c.  Removed the flow_loops_find, flow_loops_free and
1685         free_dominance_info calls.
1686         * loop-init.c (flow_loops_find): Ditto.
1687         * passes.c (rest_of_handle_branch_prob): Ditto.
1688         * lambda-code.c (perfect_nestify): Do not call flow_loops_find.
1689         * loop-unroll.c (analyze_insns_in_loop): Do not use
1690         EDGE_LOOP_EXIT.
1691         * predict.c (predict_loops): Do not call flow_loop_scan.
1692         Use get_loop_exit_edges.
1693         (tree_estimate_probability): Do not pass flags to flow_loops_find.
1694         * tree-if-conv.c (bb_with_exit_edge_p): Take loop as argument.
1695         Do not use EDGE_LOOP_EXIT.
1696         (tree_if_convert_cond_expr, if_convertible_modify_expr_p): Pass loop
1697         to bb_with_exit_edge_p.
1698         (if_convertible_loop_p): Do not call flow_loop_scan.  Use
1699         loop->single_exit.  Do not use EDGE_LOOP_EXIT.  Pass loop
1700         to bb_with_exit_edge_p.
1701         (combine_blocks): Pass loop to bb_with_exit_edge_p.  Do not use
1702         EDGE_LOOP_EXIT.
1703         * tree-loop-linear.c (linear_transform_loops): Do not call
1704         flow_loop_scan.  Use loop->single_exit.
1705         * tree-vect-analyze.c (vect_analyze_operations): Use loop->single_exit.
1706         (vect_analyze_loop_form): Do not call flow_loop_scan.
1707         * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Use
1708         loop->single_exit.
1709         (vect_do_peeling_for_loop_bound): Use loop_preheader_edge and
1710         loop->single_exit.
1711         * tree-vectorizer.c (slpeel_update_phis_for_duplicate_loop,
1712         slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
1713         slpeel_tree_duplicate_loop_to_edge_cfg,
1714         slpeel_verify_cfg_after_peeling, slpeel_tree_peel_loop_to_edge):
1715         Use loop_preheader_edge and loop->single_exit.  Do not call
1716         flow_loop_scan.
1717
1718 2005-03-01  Nick Clifton  <nickc@redhat.com>
1719
1720         * config/arm/arm.c (thumb_find_work_register): Check all of the
1721         argument registers to see if they are free, and a couple of
1722         special cases where the last argument register but can be proved
1723         to be available during the function's prologue.
1724         (print_multi_reg, arm_compute_save_reg0_reg12_mask,
1725         output_return_instruction, emit_multi_reg_push, thumb_pushpop,
1726         thumb_unexpanded_epilogue): Use unsigned long as the type for the
1727         register bit-mask.
1728         (thumb_compute_save_reg_mask): Likewise.  Also use
1729         thumb_find_work_register() to ensure that there is agreement about
1730         which work register is going to be used in the prologue.
1731         (thumb_output_function_prologue): Use unsigned long as the type
1732         for the register bit-mask.  Also delay pushing the link register if
1733         other high registers are going to be pushed.
1734         (thumb_compute_save_reg_mask, emit_multi_reg_push,
1735         print_multi-reg, number_of_first_bit_set, thumb_pushpop): Remove
1736         redundant prototypes.
1737
1738 2005-02-28  John David Anglin  <dave.anglin#nrc-cnrc.gc.ca>
1739
1740         PR target/19819
1741         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow allow hard registers during
1742         and after reload in REG+REG indexed addresses without REG_POINTER
1743         set in the base and not set in the index.
1744
1745 2005-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
1746
1747         * config/sh/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
1748         Don't undefine here.
1749         (HANDLE_PRAGMA_PACK_PUSH_POP): Delete.
1750         (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC): Likewise.
1751         (TARGET_OS_CPP_BUILTINS): Use LINUX_TARGET_OS_CPP_BUILTINS.
1752         (LIB_SPEC, LINK_EH_SPEC, STARTFILE_SPEC, ENDFILE_SPEC,
1753         LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED, TARGET_C99_FUNCTIONS):
1754         Delete.
1755         * config.gcc (sh*-*-linux*): Use config/linux.h.
1756
1757 2005-02-28  Dale Johannesen  <dalej@apple.com>
1758             Stan Shebs  <shebs@apple.com>
1759
1760         Rewrite of 64-bit Darwin structure-by-value pass/return.
1761         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): New fields
1762         intoffset, use_stack, named.
1763         * config/rs6000/rs6000.c (rs6000_darwin64_function_arg):  Remove.
1764         (rs6000_darwin64_record_arg_advance_flush):  New.
1765         (rs6000_darwin64_record_arg_advance_recurse): New.
1766         (rs6000_darwin64_record_arg_flush):  New.
1767         (rs6000_darwin64_record_arg_recurse):  New.
1768         (rs6000_darwin64_record_arg):  New.
1769         (rs6000_return_in_memory):  Remove AGGREGATE_TYPE_P check.
1770         (function_arg_boundary):  Handle 128-bit aligned structs.
1771         (function_arg_advance):  Rewrite darwin64 struct handling.
1772         (function_arg):  Call rs6000_darwin64_record_arg.
1773         (function_arg_partial_nregs):  Handle darwin64 structs.
1774         (rs6000_darwin64_function_value):  Remove.
1775         (rs6000_function_value):  Call rs6000_darwin64_record_arg.
1776
1777 2005-02-28  Roger Sayle  <roger@eyesopen.com>
1778
1779         PR tree-optimization/20216
1780         * tree-chrec.c (tree_fold_factorial): Delete.
1781         (tree_fold_binomial): Change argument list to take a return type
1782         and change the type of K to unsigned int.  Rewrite to avoid explicit
1783         evaluation of factorials, and (recursively) calling fold to perform
1784         compile-time arithmetic.  Return NULL on (internal) overflow.
1785         (chrec_evaluate): Change type of K to an unsigned int.  Avoid
1786         calling tree_fold_binomial unnecessarily.  Return chrec_dont_know
1787         if any intermediate calculation overflows.
1788         (chrec_apply): Update call to chrec_evaluate.
1789
1790 2005-02-28  James E Wilson  <wilson@specifixinc.com>
1791
1792         * config/mips/mips.h (NO_PROFILE_COUNTERS): Define.
1793
1794 2005-02-28  Joseph S. Myers  <joseph@codesourcery.com>
1795
1796         PR c/20245
1797         * c-parser.c (c_parser_compound_statement): Return error_mark_node
1798         instead of NULL_TREE on error.
1799
1800 2005-02-28  David Edelsohn  <edelsohn@gnu.org>
1801
1802         * config/rs6000/rs6000.c (EASY_VECTOR_15): Remove.
1803         (EASY_VECTOR_15_ADD_SELF): Remove.
1804         (num_insns_constant_wide): Not static.
1805         (validate_condition_mode): Not static.
1806         (toc_relative_expr_p): Not static.
1807         (legitimate_indirect_address_p): Not static.
1808         (macho_lo_sum_memory_operand): Not static.
1809         (invalid_e500_subreg): Not static.
1810         (easy_vector_same): Not static.
1811         (easy_vector_splat_const): Not static.
1812         (RS6000_SYMBOL_REF_TLS_P): Remove.
1813         (any_operand): Delete.
1814         (any_parallel_operand): Delete.
1815         (count_register_operand): Delete.
1816         (altivec_register_operand): Delete.
1817         (xer_operand): Delete.
1818         (s8bit_cint_operand): Delete.
1819         (short_cint_operand): Delete.
1820         (u_short_cint_operand): Delete.
1821         (non_short_cint_operand): Delete.
1822         (exact_log2_cint_operand): Delete.
1823         (gpc_reg_operand): Delete.
1824         (cc_reg_operand): Delete.
1825         (cc_reg_not_cr0_operand): Delete.
1826         (reg_or_short_operand): Delete.
1827         (reg_or_neg_short_operand): Delete.
1828         (reg_or_aligned_short_operand): Delete.
1829         (reg_or_u_short_operand): Delete.
1830         (reg_or_cint_operand): Delete.
1831         (reg_or_arith_cint_operand): Delete.
1832         (reg_or_add_cint64_operand): Delete.
1833         (reg_or_sub_cint64_operand): Delete.
1834         (reg_or_logical_cint_operand): Delete.
1835         (got_operand): Delete.
1836         (got_no_const_operand): Delete.
1837         (easy_fp_constant): Delete.
1838         (easy_vector_constant): Delete.
1839         (easy_vector_constant_add_self): Delete.
1840         (zero_constant): Delete.
1841         (zero_fp_constant): Delete.
1842         (volatile_mem_operand): Delete.
1843         (offsettable_mem_operand): Delete.
1844         (mem_or_easy_const_operand): Delete.
1845         (add_operand): Delete.
1846         (non_add_cint_operand): Delete.
1847         (logical_operand): Delete.
1848         (non_logical_cint_operand): Delete.
1849         (mask_operand): Delete.
1850         (mask_operand_wrap): Delete.
1851         (mask64_operand): Delete.
1852         (mask64_2_operand): Delete.
1853         (and64_operand): Delete.
1854         (and64_2_operand): Delete.
1855         (and_operand): Delete.
1856         (reg_or_mem_operand): Delete.
1857         (lwa_operand): Delete.
1858         (symbol_ref_operand): Delete.
1859         (call_operand): Delete.
1860         (current_file_function_operand): Delete.
1861         (input_operand): Delete.
1862         (rs6000_nonimmediate_operand): Delete.
1863         (rs6000_tls_symbol_ref): Delete.
1864         (save_world_operation): Delete.
1865         (restore_world_operation): Delete.
1866         (load_multiple_operation): Delete.
1867         (store_multiple_operation): Delete.
1868         (vrsave_operation): Delete.
1869         (mfcr_operation): Delete.
1870         (mtcrf_operation): Delete.
1871         (lmw_operation): Delete.
1872         (stmw_operation): Delete.
1873         (branch_comparison_operator): Delete.
1874         (branch_positive_comparison_operator): Delete.
1875         (scc_comparison_operator): Delete.
1876         (trap_comparison_operator): Delete.
1877         (boolean_operator): Delete.
1878         (boolean_or_operator): Delete.
1879         (min_max_operator): Delete.
1880         * config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Move to here.
1881         (EASY_VECTOR_15): Moved to here.
1882         (EASY_VECTOR_15_ADD_SELF): Move to here.
1883         (PREDICATE_CODES): Delete.
1884         * config/rs6000/rs6000-protos.h: Delete predicate functions.
1885         Declare functions no longer static.
1886         * config/rs6000/predicates.md: New.
1887         * config/rs6000/rs6000.md: Include predicates.md
1888
1889 2005-02-28  Kazu Hirata  <kazu@cs.umass.edu>
1890
1891         * calls.c (emit_call_1): Don't use  REG_ALWAYS_RETURN.
1892         (emit_library_call_value_1): Don't use LCT_ALWAYS_RETURN and
1893         REG_ALWAYS_RETURN.
1894         * cfgrtl.c (need_fake_edge_p): Likewise.
1895         * combine.c (distribute_notes): Likewise.
1896         * emit-rtl.c (try_split): Likewise.
1897         * recog.c (peephole2_opimize): Likewise.
1898         * reg-notes.def (ALWAYS_RETURN): Remove.
1899         * rtl.h (LCT_ALWAYS_RETURN): Remove.
1900         * tree-cfg.c (need_fake_edge_p): Don't use ECF_ALWAYS_RETURN.
1901         * tree.h (ECF_ALWAYS_RETURN): Remove.
1902
1903 2005-02-28  Roger Sayle  <roger@eyesopen.com>
1904
1905         PR middle-end/19874
1906         * tree-ssa.c (tree_ssa_useless_type_conversion_1): A conversion
1907         between different machine modes is never a "useless" conversion.
1908
1909 2005-02-28  Geert Bosch  <bosch@gnat.com>
1910
1911         PR ada/15977
1912         * doc/contrib.texi: List contributors for Ada front end
1913
1914 2005-02-28 Paolo Bonzini <bonzini@gnu.org>
1915
1916         * simplify-rtx.c (simplify_unary_operation_1,
1917         simplify_const_unary_operation): New, extracted from...
1918         (simplify_unary_operation): ... this one.
1919         (simplify_binary_operation_1,
1920         simplify_const_binary_operation): New, extracted from...
1921         (simplify_binary_operation): ... this one.
1922         * rtl.h (simplify_const_unary_operation,
1923         simplify_const_binary_operation): Add prototypes.
1924
1925 2005-02-28  Julian Brown  <julian@codesourcery.com>
1926
1927         * config/elfos.h: Revert my patch from 2005-02-25 since it broke
1928         building libjava and caused PR regression/20228.
1929
1930 2005-02-28  Paolo Bonzini  <bonzini@gnu.org>
1931
1932         PR bootstrap/17383
1933         * Makefile.in (host_subdir): New.
1934         (build_objdir): New.  Replace ../$(build_subdir) with it throughout.
1935         * configure: Regenerate.
1936
1937 2005-02-27  Zack Weinberg  <zack@codesourcery.com>
1938
1939         * config/alpha/t-osf4, config/arm/t-netbsd, config/ia64/t-hpux
1940         * config/pa/t-hpux-shlib (SHLIB_INSTALL): Create the
1941         installation directory first.
1942
1943 2005-02-28  Hans-Peter Nilsson  <hp@axis.com>
1944
1945         PR target/19065.
1946         * config/cris/cris.h (EXTRA_CONSTRAINT_Q): Accept only (mem (reg)),
1947         not including (reg). Do not check for reg being CRIS_PC_REGNUM.
1948         (EXTRA_MEMORY_CONSTRAINT): Define as 'Q'.
1949         * config/cris/cris.md: Tweak comments referring to Q.
1950         ("cmpsi", "cmphi", "cmpqi", "*movsi_internal", "movhi")
1951         ("movstricthi", "movqi", "movstrictqi", "movsf", "addsi3")
1952         ("addhi3", "addqi3", "subsi3", "subhi3", "subqi3")
1953         ("*expanded_andsi", "*expanded_andhi", "*andhi_lowpart", "andqi3")
1954         ("*andqi_lowpart", "iorsi3", "iorhi3", "iorqi3", "uminsi3"):
1955         Insert spaces in constraints to align alternatives vertically for
1956         readability.
1957         ("cmphi"): Ditto.  Add separate alternative for operand 0 "r",
1958         operand 1: "M".
1959
1960 2005-02-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1961
1962         PR rtl-optimization/17728
1963         * pa.md (mulsi3, divsi3, udivsi3, modsi3): Change predicate for
1964         operand 0 from general_operand to move_dest_operand.
1965
1966 2005-02-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1967
1968         * pa/elf.h, pa/som.h (ASM_OUTPUT_EXTERNAL): Use assemble_name_raw
1969         instead of trying to save and restore TREE_SYMBOL_REFERENCED.
1970         * pa/pa64-hpux.h (ASM_OUTPUT_TYPE_DIRECTIVE): Define.
1971         (ASM_OUTPUT_EXTERNAL): Don't save and restore TREE_SYMBOL_REFERENCED.
1972
1973 2005-02-26  Nathanael Nerode  <neroden@gcc.gnu.org>
1974
1975         * configure.ac: Rename cc_for_cross_gnattools to host_cc_for_libada.
1976         * configure: Regenerate.
1977         * libada-mk.in: Remove CC; rename
1978         cc_for_cross_gnattools / cc_set_by_configure to host_cc_for_libada.
1979
1980 2005-02-26  Andrew Pinski  <pinskia@physics.uc.edu>
1981
1982         PR tree-opt/20188
1983         * tree-ssa-alias.c (count_uses_and_derefs): If we have TREE_LIST
1984         for the lhs, also walk over the tree.  Likewise for rhs.
1985
1986 2005-02-26  Zdenek Dvorak  <dvorakz@suse.cz>
1987
1988         * tree-ssa-dom.c (simple_iv_increment_p): New function.
1989         (simplify_rhs_and_lookup_avail_expr, eliminate_redundant_computations):
1990         Do not propagate value of iv before increment over the increment.
1991
1992 2005-02-25  Joseph S. Myers  <joseph@codesourcery.com>
1993
1994         * c-parser.c: New file.
1995         * c-parse.in: Remove.
1996         * Makefile.in (c-parse.o-warn, c-parse.o, c-parse.c, c-parse.y):
1997         Remove.
1998         (c-parser.o): Add dependencies.
1999         (C_AND_OBJC_OBJC, C_OBJS, gcc.srcextra, GTFILES, distclean,
2000         maintainer-clean, TAGS): Update.
2001         * c-config-lang.in (gtfiles): Update.
2002         * gengtype-lex.l: Don't handle "@@".
2003         * stub-objc.c (objc_get_class_ivars, objc_build_throw_stmt,
2004         objc_build_synchronized, objc_begin_try_stmt,
2005         objc_begin_catch_clause, objc_finish_catch_clause,
2006         objc_build_finally_clause, objc_finish_try_stmt): New.
2007         * c-tree.h (struct c_declspecs): Add declspecs_seen_p and
2008         type_seen_p.
2009         (c_parse_init): Update comment.
2010         * c-decl.c (c_init_decl_processing): Update comment.
2011         (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
2012         declspecs_add_scspec, declspecs_add_attrs): Initialize and update
2013         new c_declspecs members.
2014
2015 2005-02-25  Julian Brown  <julian@codesourcery.com>
2016
2017         * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK
2018         from being used for symbols with vague linkage when
2019         HAVE_GAS_COMDAT_GROUP is true.
2020
2021 2005-02-25  Mark Mitchell  <mark@codesourcery.com>
2022
2023         * doc/include/gcc-common.texi (version-GCC): Update to 4.1.
2024
2025 2005-02-25  Steve Ellcey  <sje@cup.hp.com>
2026
2027         PR target/19930
2028         * doc/tm.texi (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Document.
2029         (LIBGCC2_HAS_DF_MODE): New.
2030         (LIBGCC2_HAS_XF_MODE): New.
2031         (LIBGCC2_HAS_TF_MODE): New.
2032         * libgcc2.h (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
2033         (LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
2034         * libgcc2.c (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
2035         (LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
2036         (LIBGCC2_HAS_DF_MODE): New name for HAVE_DFMODE.
2037         * config/ia64/t-ia64 (LIB1ASMFUNCS): Remove __compat
2038         and add _fixtfdi, _fixunstfdi, _floatditf
2039         * lib1funcs.asm: Remove L__compat. Add L_fixtfdi,
2040         L_fixunstfdi, L_floatditf.
2041         * config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE): Define.
2042         (LIBGCC2_HAS_TF_MODE): Define.
2043
2044 2005-02-25  Diego Novillo  <dnovillo@redhat.com>
2045
2046         PR tree-optimization/20204
2047         * tree-into-ssa.c (insert_phi_nodes_for): Do not use
2048         REWRITE_THIS_STMT markers on PHI nodes.
2049         (rewrite_initialize_block): Likewise.
2050
2051 2005-02-25  Mark Mitchell  <mark@codesourcery.com>
2052
2053         * version.c (version_string): Update to 4.1.
2054
2055 2005-02-25  Paolo Carlini  <pcarlini@suse.de>
2056
2057         * doc/extend.texi (5.24 Declaring Attributes of Functions)<noreturn>:
2058         Clarify that the alternative way doesn't work in GNU C++.
2059
2060 2005-02-25  Zdenek Dvorak  <dvorakz@suse.cz>
2061
2062         PR tree-optimization/19937
2063         * tree-ssa-loop-ivopts.c (rewrite_use_compare): Cast the final value
2064         to the type of the induction variable.
2065
2066 2005-02-25  Kaz Kojima  <kkojima@gcc.gnu.org>
2067
2068         PR rtl-optimization/20117
2069         * bb-reorder.c (duplicate_computed_gotos): Don't duplicate
2070         the block including noncopyable insn.
2071
2072 2005-02-24  Kazu Hirata  <kazu@cs.umass.edu>
2073
2074         * cse.c (delete_trivially_dead_insns): Speed up by minimizing
2075         calls to find_reg_note.
2076
2077 2005-02-24  Richard Henderson  <rth@redhat.com>
2078
2079         PR tree-opt/20127
2080         * tree-sra.c (instantiate_element): Copy TREE_THIS_VOLATILE from
2081         the type.
2082
2083 2005-02-24  Fariborz Jahanian <fjahanian@apple.com>
2084
2085         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Check for
2086         vector types if to use base reg for misaligned non-word ld/std.
2087
2088 2005-02-24  Hans-Peter Nilsson  <hp@axis.com>
2089
2090         PR target/14619
2091         * config/cris/cris.c (cris_target_asm_function_prologue): Create
2092         dwarf2 label manually and put it after, not before the prologue.
2093
2094 2005-02-24  David Edelsohn  <edelsohn@gnu.org>
2095
2096         PR target/19019
2097         * reload.c (operands_match_p): Only increment register number for
2098         SCALAR_INT_MODE_P modes in multiple hard registers.
2099
2100         * config/rs6000/rs6000.md (trunctfdf2): Remove register constraints.
2101         Fix formatting.
2102
2103 2005-02-24  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2104
2105         * ChangeLog.5: Fix log message typo(s).
2106         * ChangeLog.7: Likewise.
2107         * ChangeLog.tree-ssa: Likewise.
2108         * cfgexpand.c: Fix comment typo(s).
2109         * conflict.c: Likewise.
2110         * defaults.h: Likewise.
2111         * dwarf2out.c: Likewise.
2112         * gcse.c: Likewise.
2113         * ggc-page.c: Likewise.
2114         * tree-eh.c: Likewise.
2115         * tree-ssa-dom.c: Likewise.
2116
2117 2005-02-24  Jakub Jelinek  <jakub@redhat.com>
2118
2119         PR target/19019
2120         * mklibgcc.in: Pass -DSHARED when compiling all *_s${objext} objects.
2121         * config/rs6000/darwin-ldouble.c: Only use the .symver directives
2122         if SHARED is defined.
2123
2124         PR target/20196
2125         * config/rs6000/rs6000.md (LTU, GTU sCC splitters): Add earlyclobber,
2126         allow splitting only if operands 0 and 3 don't overlap.
2127
2128 2005-02-24  Richard Henderson  <rth@redhat.com>
2129
2130         PR middle-end/19953
2131         * builtins.c (fold_builtin_complex_mul, fold_builtin_complex_div): New.
2132         (fold_builtin_1): Call them.
2133         * fold-const.c (fold_complex_mult_parts): Split out from ...
2134         (fold_complex_mult): ... here.  Fix typo in both imaginary case.
2135         (fold_complex_div_parts, fold_complex_div): New.
2136         (fold): Use them.
2137         * tree.h (fold_complex_mult_parts, fold_complex_div_parts): Declare.
2138
2139 2005-02-24  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2140
2141         * tree-ssa-ccp.c (visit_assignment): Verify that result of
2142         VIEW_CONVERT_EXPR is_gimple_min_invariant.
2143
2144         * print-tree.c (print_node_brief): Print LABEL_DECL_UID.
2145         (print_node): Likewise.
2146         Print TYPE_SIZES_GIMPLIFIED.
2147
2148 2005-02-24  Hans-Peter Nilsson  <hp@axis.com>
2149
2150         * config/cris/cris.md ("umulhisi3", "umulqihi3", "mulsi3")
2151         ("mulqihi3", "mulhisi3", "mulsidi3", "umulsidi3"): Mark input
2152         operands as commutative in constraints.
2153
2154 2005-02-24  Diego Novillo  <dnovillo@redhat.com>
2155
2156         * tree-into-ssa.c: Re-organize internal functions.
2157
2158 2005-02-24  Richard Henderson  <rth@redhat.com>
2159
2160         PR middle-end/18902
2161         * c-opts.c (c_common_post_options): Set flag_complex_method to 2
2162         for c99.
2163         * common.opt (fcx-limited-range): New.
2164         * opts.c (set_fast_math_flags): Set flag_cx_limited_range.
2165         * toplev.c (flag_complex_method): Initialize to 1.
2166         (process_options): Set flag_complex_method to 0 if
2167         flag_cx_limited_range.
2168         * doc/invoke.texi (-fcx-limited-range): New.
2169
2170 2005-02-24  Kazu Hirata  <kazu@cs.umass.edu>
2171
2172         * cse.c (delete_trivially_dead_insns): Speed up by using
2173         NEXT_INSN and PREV_INSN directly instead of next_real_insn and
2174         prev_real_insn.
2175
2176 2005-02-24  Andrea Tarani  <andrea.tarani@gilbarco.com>
2177
2178         * config/m68k/m68k.c (m68k_save_reg): Also save A5 for non-leaf
2179         functions when -mid-shared-library is being used.
2180
2181 2005-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
2182
2183         * doc/tm.texi (LINK_LIBGCC_SPECIAL): Remove.
2184         (LINK_LIBGCC_SPECIAL_1): Don't mention it.
2185         * gcc.c: Don't check for LINK_LIBGCC_SPECIAL.
2186         * system.h: Poison LINK_LIBGCC_SPECIAL.
2187
2188 2005-02-23  James E Wilson  <wilson@specifixinc.com>
2189
2190         * gengtype.c (note_insn_name): Make 1 element larger.
2191
2192 2005-02-23  Roger Sayle  <roger@eyesopen.com>
2193
2194         PR target/20018
2195         PR rtl-optimization/20097
2196         * simplify-rtx.c (simplify_relational_operation_1): Avoid creating
2197         BImode SUBREGs of SImode registers which confuse the ia64 backend.
2198
2199 2005-02-23  David Edelsohn  <edelsohn@gnu.org>
2200
2201         * t-aix43 (SHLIB_INSTALL): Create directory for shared library.
2202         * t-aix52 (SHLIB_INSTALL): Same.
2203
2204 2005-02-23  Kazu Hirata  <kazu@cs.umass.edu>
2205
2206         * genpreds.c: Update copyright.
2207
2208 2005-02-23  Michael Beach  <michaelb@ieee.org>
2209
2210         PR target/20159
2211         * config/sparc/t-elf (startup files): Assemble with CPP.
2212
2213 2005-02-23  Paolo Bonzini  <bonzini@gnu.org>
2214
2215         * genpreds.c (mark_mode_tests): Handle non-VOIDmode match_operands.
2216         (write_predicate_expr): Likewise.
2217
2218 2005-02-22  Diego Novillo  <dnovillo@redhat.com>
2219
2220         PR tree-optimization/20100
2221         PR tree-optimization/20115
2222         * tree-optimize.c (init_tree_optimization_passes): Remove
2223         pass_maybe_create_global_var.
2224         * tree-pass.h (pass_maybe_create_global_var): Remove.
2225         * tree-ssa-alias.c (aliases_computed_p): Declare.
2226         (struct alias_info): Add field NUM_PURE_CONST_CALLS_FOUND.
2227         (count_calls_and_maybe_create_global_var): Remove.
2228         (pass_maybe_create_global_var): Remove.
2229         (init_alias_info): Do not declare aliases_computed_p.
2230         (maybe_create_global_var): If the function contains no
2231         call-clobbered variables and a mix of pure/const and regular
2232         function calls, create .GLOBAL_VAR.
2233         Mark all call-clobbered variables for renaming.
2234         (merge_pointed_to_info): Update comment.
2235         (add_pointed_to_var): Likewise.
2236         (is_escape_site): Likewise.
2237         Accept struct alias_info * instead of size_t *.
2238         Update all users.
2239         Update AI->NUM_CALLS_FOUND and AI->NUM_PURE_CONST_CALLS_FOUND
2240         as necessary.
2241         * tree-ssa-operands.c (get_call_expr_operands): If
2242         ALIASES_COMPUTED_P is false, do not add call-clobbering
2243         operands.
2244         * tree-ssa.c (init_tree_ssa): Set ALIASES_COMPUTED_P to false.
2245         (delete_tree_ssa): Likewise.
2246
2247 2005-02-22  James E Wilson  <wilson@specifixinc.com>
2248
2249         * toplev.c (backend_init): Don't call init_adjust_machine_modes here.
2250         (do_compile): Do call it here.
2251
2252 2005-02-22  Kazu Hirata  <kazu@cs.umass.edu>
2253
2254         PR rtl-optimization/20017.
2255         * passes.c (rest_of_handle_combine, rest_of_handle_cse,
2256         rest_of_handle_cse2, rest_of_handle_gcse): Call
2257         delete_dead_jumptables immediately before calling cleanup_cfg.
2258
2259 2005-02-22  Devang Patel  <dpatel@apple.com>
2260
2261         PR 19952
2262         * tree-if-conv.c (process_phi_nodes): Use bsi_after_labels and skip
2263         all labels
2264
2265 2005-02-22  David Edelsohn  <edelsohn@gnu.org>
2266
2267         * config/rs6000/aix.h (WINT_TYPE): Define.
2268
2269 2005-02-22  Stan Shebs  <shebs@apple.com>
2270
2271         * config/rs6000/rs6000.c (rs6000_override_options): Default to
2272         natural alignment for 64-bit Darwin.
2273         (rs6000_parse_alignment_option): Warn about uses of -malign-power
2274         on 64-bit Darwin.
2275         * doc/invoke.texi: Document this.
2276
2277 2005-02-22  DJ Delorie  <dj@redhat.com>
2278
2279         * c-common.c (c_common_type_for_mode): Pass the mode's precision
2280         to make_[un]signed_type, not the mode itself.
2281
2282 2005-02-22  Kazu Hirata  <kazu@cs.umass.edu>
2283
2284         * cfg.c (cached_make_edge): Call make_edge if edge cache is
2285         not available.  Use tail calls wherever possible.
2286         (make_edge): Call unchecked_make_edge to create an edge.
2287
2288         * tree-outof-ssa.c (SSANORM_USE_COALESCE_LIST): Remove.
2289         (coalesce_ssa_name): Don't check for
2290         SSANORM_USE_COALESCE_LIST.
2291         (rewrite_out_of_ssa): Don't use SSANORM_USE_COALESCE_LIST.
2292
2293 2005-02-22  Diego Novillo  <dnovillo@redhat.com>
2294
2295         * tree-into-ssa.c (rewrite_blocks): Move debug dumps from ...
2296         (rewrite_into_ssa): ... here.
2297
2298 2005-02-21  Alexandre Oliva  <aoliva@redhat.com>
2299
2300         PR tree-optimization/19786
2301         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add one
2302         tag to another's may-alias bitmap when adding to the other's list.
2303
2304 2005-02-21  DJ Delorie  <dj@redhat.com>
2305
2306         * tree-ssa-loop-ivopts.c (computation_cost): Start register
2307         numbering at LAST_VIRTUAL_REGISTER+1 to avoid possibly using hard
2308         registers in unsupported ways.
2309         * expmed.c (init_expmed): Likewise.
2310
2311 2005-02-21  Stan Cox  <scox@redhat.com>
2312
2313         * config/iq2000/iq2000.h (DWARF_FRAME_RETURN_COLUMN): Change to 31.
2314
2315 2005-02-21  Kazu Hirata  <kazu@cs.umass.edu>
2316
2317         * tree-cfg.c (fold_cond_expr_cond): New.
2318         (make_edges): Call fold_cond_expr_cond.
2319         (find_taken_edge): Accept nothing but INTEGER_CST.
2320         (find_taken_edge_cond_expr): Reject INTEGER_CST other than 0
2321         and 1.
2322         (find_taken_edge_switch_expr): Remove a check for INTEGER_CST.
2323
2324         * flow.c (delete_dead_jumptables): Speed up by scanning insns
2325         that do not belong to any basic block.
2326
2327 2005-02-21  Jeff Law  <law@redhat.com>
2328
2329         * cfganal.c (find_unreachable_blocks): Manually CSE load of
2330         e->dest.
2331
2332 2005-02-21  Kazu Hirata  <kazu@cs.umass.edu>
2333
2334         * tree-outof-ssa.c (SSANORM_REMOVE_ALL_PHIS): Remove.
2335         (SSANORM_COALESCE_PARTITIONS, SSANORM_USE_COALESCE_LIST):
2336         Adjust their definitions.
2337         (remove_ssa_form): Don't check for SSANORM_REMOVE_ALL_PHIS.
2338         (rewrite_out_of_ssa): Don't use SSANORM_REMOVE_ALL_PHIS.
2339
2340         * c-objc-common.h, c-pretty-print.c, cgraphunit.c, except.c,
2341         genautomata.c, langhooks.c, langhooks.h, system.h,
2342         config/arm/lib1funcs.asm: Update copyright.
2343
2344 2005-02-21  Ulrich Weigand  <uweigand@de.ibm.com>
2345
2346         * dbxout.c (dbxout_function_end): Emit Lscope label always.
2347
2348 2005-02-21  Richard Guenther  <rguenth@gcc.gnu.org>
2349
2350         PR bootstrap/13770
2351         * doc/install.texi: Document --with-gc.
2352
2353 2005-02-21  Paolo Bonzini  <bonzini@gnu.org>
2354
2355         * simplify-rtx.c (simplify_unary_operation): Add a missing
2356         "break" statement.
2357
2358 2005-02-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
2359
2360         PR tree-optimization/18663
2361         * tree-ssa-dom.c (extract_range_from_cond): Return 0
2362         if the type has variable bounds.
2363
2364 2005-02-20  Kazu Hirata  <kazu@cs.umass.edu>
2365
2366         * gcse.c: Remove an obsolete comment.
2367
2368         * cse.c (init_cse_reg_info): Use xmalloc instead of xrealloc.
2369
2370 2005-02-20  Hans-Peter Nilsson  <hp@axis.com>
2371
2372         * doc/extend.texi (Function Attributes) <Attribute const>: The
2373         attribute "pure" is below this text, not above.
2374
2375 2005-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2376
2377         * pa.c (pa_assemble_integer, get_plabel): Small cleanups.
2378         (pa_asm_output_mi_thunk): Use asm_output_insn instead of fprintf.
2379         * som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Small cleanup.
2380
2381 2005-02-20  Zack Weinberg  <zack@codesourcery.com>
2382
2383         PR 18785
2384         * langhooks.h (struct lang_hooks): Add to_target_charset.
2385         * langhooks.c (lhd_to_target_charset): New function.
2386         * langhooks-def.h: Declare lhd_to_target_charset.
2387         (LANG_HOOKS_TO_TARGET_CHARSET): New macro.
2388         (LANG_HOOKS_INITIALIZER): Update.
2389         * c-common.c (c_common_to_target_charset): New function.
2390         * c-common.h: Declare it.
2391         * c-objc-common.h (LANG_HOOKS_TO_TARGET_CHARSET): Set to
2392         c_common_to_target_charset.
2393
2394         * defaults.c (TARGET_BELL, TARGET_BS, TARGET_CR, TARGET_DIGIT0)
2395         (TARGET_ESC, TARGET_FF, TARGET_NEWLINE, TARGET_TAB, TARGET_VT):
2396         Delete definitions.
2397         * system.h: Poison them.
2398         * doc/tm.texi: Don't discuss them.
2399         * builtins.c (fold_builtin_isdigit): Use lang_hooks.to_target_charset.
2400         * c-pretty-print.c (pp_c_integer_constant): Don't use pp_c_char.
2401         (pp_c_char): Do not attempt to generate letter escapes for
2402         newline, tab, etc.
2403         * config/arm/arm.c (output_ascii_pseudo_op): Likewise.
2404         * config/mips/mips.c (mips_output_ascii): Likewise.
2405
2406 2005-02-20  Dorit Naishlos  <dorit@il.ibm.com>
2407
2408         PR tree-optimization/19951
2409         * tree-vect-analyze.c (vect_analyze_loop_form): Check if loop exit edge
2410         is abnormal.
2411
2412 2005-02-19  Steven Bosscher  <stevenb@suse.de>
2413
2414         PR middle-end/19698
2415         * function.h (struct function): New field `max_loop_depth'.
2416         * cfgloop.c (establish_preds): Update maximum loop depth seen so far.
2417         (flow_loops_find): Reset the max loop depth count before finding loops.
2418         * flow.c (MAX_LIVENESS_ROUNDS): New constant.
2419         (update_life_info_in_dirty_blocks): Remove 2002-05-28 workaround.
2420         (calculate_global_regs_live): Make sure the loop will terminate
2421         when the initial sets are not empty.
2422
2423 2005-02-19  Zack Weinberg  <zack@codesourcery.com>
2424
2425         * mklibgcc.in: If libgcc_eh.a would be empty, put a dummy
2426         object inside.
2427         * config/ia64/hpux.h: Don't define LIBGCC_SPEC.
2428
2429 2005-02-19  Richard Sandiford  <rsandifo@redhat.com>
2430
2431         PR other/19525
2432         * doc/invoke.texi: Remove documentation of %M spec.
2433         * gcc.c: Likewise.
2434         (init_spec): Remove %M suffix from -lgcc_s.
2435         (do_spec_1): Remove 'M' case.
2436         * mklibgcc.in: Remove SHLIB_MULTILIB handling.  Expect SHLIB_LINK
2437         to put shared libraries in the multilib directory.  Remove the
2438         shlib_so_soname substitution variable.  Don't add a multilib encoding
2439         to shlib_base_name.  Set shlib_slibdir_qual to the full pathname
2440         reported by -print-multi-os-directory.  Pass @multilib_dir@ to
2441         SHLIB_INSTALL as well as SHLIB_LINK.
2442         * config/t-slibgcc-elf-ver (SHLIB_SONAME): Use @shlib_base_name@.
2443         (SHLIB_NAME): Delete.
2444         (SHLIB_DIR): New macro.
2445         (SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_SOLINK) in $(SHLIB_DIR).
2446         (SHLIB_INSTALL): Adjust accordingly.
2447         * config/t-slibgcc-darwin: As for t-slibgcc-elf-ver.
2448         * config/t-slibgcc-sld: Likewise.
2449         * config/t-libunwind-elf (SHLIBUNWIND_NAME): Delete.
2450         (SHLIBUNWIND_SONAME): Use @shlib_base_name@.
2451         (SHLIBUNWIND_LINK): Put $(SHLIBUNWIND_SONAME) and $(SHLIB_SOLINK)
2452         in $(SHLIB_DIR).
2453         (SHLIBUNWIND_INSTALL): Adjust accordingly.
2454         * config/i386/t-nwld (SHLIB_SONAME): Delete.
2455         (SHLIB_LINK, SHLIB_INSTALL): Use SHLIB_NAME instead of SHLIB_SONAME.
2456         Use @shlib_base_name@ instead of @shlib_so_name@.
2457         * config/ia64/t-hpux (SHLIB_LINK): Put @shlib_base_name@.so.0
2458         and @shlib_base_name@.so in @multilib_dir@.
2459         (SHLIB_INSTALL): Adjust accordingly.  Add @shlib_slibdir_qual@
2460         to the install path.
2461         * config/mips/t-slibgcc-irix: As for t-slibgcc-elf-ver.
2462         (SHLIB_LINK): Remove previous workaround.
2463         * config/pa/t-hpux-shlib (SHLIB_DIR, SHLIB_SLIBDIR_QUAL): New macros.
2464         (SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_NAME) in $(SHLIB_DIR).
2465         (SHLIB_INSTALL): Adjust accordingly.  Add $(SHLIB_SLIBDIR_QUAL) to
2466         the install path.
2467         * config/rs6000/t-aix43 (SHLIB_LINK): Put @shlib_base_name@.a in
2468         @multilib_dir@.  Use @multilib_dir@ to check for threading libraries.
2469         (SHLIB_INSTALL): Adjust accordingly.
2470         (SHLIB_LIBS): Use @multilib_dir@ to check for threading libraries.
2471         * config/rs6000/t-aix52: As for config/rs6000/t-aix43.
2472         * config/sh/t-linux (SHLIB_LINK, SHLIB_INSTALL): As for
2473         config/t-slibgcc-elf-ver.
2474
2475 2005-02-19  Zdenek Dvorak  <dvorakz@suse.cz>
2476             Jakub Jelinek  <jakub@redhat.com>
2477
2478         PR tree-optimization/19828
2479         * tree-ssa-loop-im.c: Add a TODO comment.
2480         (movement_possibility): Return MOVE_PRESERVE_EXECUTION for calls
2481         without side-effects.
2482
2483 2005-02-18  James A. Morrison  <phython@gcc.gnu.org>
2484
2485         * tree-ssa-ccp.c (widen_bitfield): Pass type to build_int_cst and don't
2486         call fold_convert.
2487
2488 2005-02-18  James E. Wilson  <wilson@specifixinc.com>
2489
2490         * doc/invoke.texi (IA-64 Options): Delete -mb-step.
2491         * config/ia64/ia64.c (last_group, group_idx): Delete variables.
2492         (errata_find_address_regs, errata_emit_nops, fixup_errata): Delete
2493         functions.
2494         (ia64_reorg): Delete fixup_errata call.
2495         * config/ia64/ia64.h (MASK_B_STEP, TARGET_B_STEP): Delete.
2496         (TARGET_SWITCHES): Delete -mb-step entry.
2497
2498 2005-02-19  Jakub Jelinek  <jakub@redhat.com>
2499
2500         PR c/20043
2501         * c-typeck.c (composite_type): Handle quals in transparent unions.
2502         (type_lists_compatible_p): Likewise.
2503
2504 2005-02-18  Stan Shebs  <shebs@apple.com>
2505
2506         * config/darwin.c (machopic_select_rtx_section): Don't put relocatable
2507         expressions in the .literal8 section.
2508
2509 2005-02-18  Geoffrey Keating  <geoffk@apple.com>
2510
2511         * config/rs6000/darwin-tramp.asm: Remove stray 'APPLE LOCAL' marker.
2512
2513 2005-02-18  Roger Sayle  <roger@eyesopen.com>
2514
2515         * fold-const.c (constant_boolean_node): Always create values of the
2516         specified type, don't bother calling truthvalue_conversion.
2517
2518 2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
2519
2520         * except.c (output_function_exception_table): Call
2521         assemble_external_libcall (eh_personality_libfunc).
2522
2523 2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
2524
2525         PR target/19886
2526         * config/ia64/ia64.h (struct machine_function): Add state_num.
2527         * config/ia64/ia64.c (process_epilogue,
2528         process_for_unwind_directive): Use new unwind state numbers each
2529         time rather than state 1.
2530
2531 2005-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
2532
2533         PR target/20054
2534         * config/s390/s390.md ("*llgt_sidi", "*llgt_sidi_split"): Move to
2535         before the "*llgt_didi" pattern.
2536
2537 2005-02-18  Jason Merrill  <jason@redhat.com>
2538
2539         * gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Revert again.
2540
2541 2005-02-18  Richard Earnshaw  <rearnsha@arm.com>
2542
2543         * arm/lib1funcs.asm (FUNC_ALIAS): New macro.
2544         (div0): Use it in place of ARM_FUNC_ALIAS.
2545         (lshrdi3, ashrdi3, ashlrdi3): Likewise.
2546
2547 2005-02-18  Andrew Pinski  <pinskia@physics.uc.edu>
2548
2549         PR middle-end/20030
2550         * fold-const.c (fold_indirect_ref_1): Use the correct index for zero
2551         access, the lower bound of the array type if it exists.
2552
2553 2005-02-18  Alexandre Oliva  <aoliva@redhat.com>
2554
2555         PR c++/20008
2556         * stmt.c (expand_case): Don't assume cleanup_tree_cfg will remove
2557         cases that are out-of-range for the index type.
2558
2559 2005-02-18  James A. Morrison  <phython@gcc.gnu.org>
2560
2561         * stmt.c (emit_case_bit_tests): Call fold_convert instead of convert.
2562         (estimate_case_costs): Don't call convert.
2563         * expmed.c (expand_shift): Likewise.
2564         (make_tree): Call fold_convert instead of convert.
2565
2566 2005-02-18  Jakub Jelinek  <jakub@redhat.com>
2567
2568         PR c++/19813
2569         * emit-rtl.c (set_mem_attributes_minus_bitpos): Add assertion
2570         that ref to be marked MEM_READONLY_P doesn't have base that needs
2571         constructing.
2572
2573 2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
2574
2575         * genautomata.c (output_get_cpu_unit_code_func,
2576         output_cpu_unit_reservation_p): Don't generate old-style function
2577         definitions.
2578
2579 2005-02-18  Jakub Jelinek  <jakub@redhat.com>
2580
2581         PR c++/20023
2582         PR tree-optimization/20009
2583         * convert.c (convert_to_integer): Revert 2005-02-16 change.
2584
2585         PR tree-optimization/18947
2586         * cgraphunit.c (cgraph_finalize_function): When redefining an extern
2587         inline, remove all nodes that are inlined into the extern inline
2588         being redefined.
2589
2590 2005-02-17  Kazu Hirata  <kazu@cs.umass.edu>
2591
2592         * bt-load.c, cfgloop.c, convert.c, dominance.c, global.c,
2593         loop-invariant.c, stmt.c, tree-ssa-forwprop.c,
2594         tree-ssa-live.c, tree-ssanames.c, tree-vn.c,
2595         config/host-linux.c, config/arm/fpa.md, config/avr/avr.h:
2596         Update copyright.
2597
2598 2005-02-17  Roger Sayle  <roger@eyesopen.com>
2599
2600         PR tree-optimization/19917
2601         * tree-eh.c (tree_could_trap_p): Consider calls to weak functions
2602         to be potentially trapping.
2603
2604 2005-02-17  Kazu Hirata  <kazu@cs.umass.edu>
2605
2606         * libgcc2.c, tree-vect-analyze.c: Fix comment typos.
2607
2608 2005-02-17  Andreas Krebbel  <krebbel1@de.ibm.com>
2609
2610         * builtins.c (expand_builtin_return_addr): Remove tem parameter.
2611         tem becomes a local variable which is set to the value of the
2612         back end defined INITIAL_FRAME_ADDRESS macro.
2613         (expand_builtin_frame_address): Omit the base parameter to
2614         expand_builtin_return_addr.
2615         (expand_builtin_profile_func): Likewise.
2616         * config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Define new macro.
2617         (DYNAMIC_CHAIN_ADDRESS): Remove the case for the initial frame.
2618         * doc/tm.texi: Documentation for INITIAL_FRAME_ADDRESS_RTX added.
2619
2620 2005-02-17  Jakub Jelinek  <jakub@redhat.com>
2621
2622         * config/s390/s390.c (s390_alloc_pool, s390_free_pool,
2623         s390_chunkify_start): Use BITMAP_ALLOC and BITMAP_FREE.
2624         * config/frv/frv.c (frv_function_epilogue): Likewise.
2625
2626 2005-02-17  Daniel Berlin  <dberlin@dberlin.org>
2627
2628         * lambda-code (perfect_nestify): Remove mark/unmark
2629         for rewriting hack.
2630         * tree-loop-linear.c (linear_transform_loops): Add
2631         rewrite_into_ssa call so that ssa is correct for
2632         rewriting into loop closed.
2633
2634 2005-02-17  Nathan Sidwell  <nathan@codesourcery.com>
2635
2636         * bitmap.h (BITMAP_XMALLOC, BITMAP_XFREE): Remove.
2637         * bb-reorder.c (duplicate_computed_gotos): Use BITMAP_ALLOC and
2638         BITMAP_FREE.
2639         * bt-load.c (btr_def_live_range, combine_btr_defs,
2640         migrate_btr_def, migrate_btr_defs): Likewise.
2641         * cfgcleanup.c (thread_jump): Likewise.
2642         * cfgloop.c (get_loop_body_in_bfs_order): Likewise.
2643         * df.c (df_insn_table_realloc, df_bitmaps_alloc, df_bitmaps_free,
2644         df_alloc, df_free, df_du_chain_create, df_bb_rd_local_compute,
2645         df_rd_local_compute, df_reg_info_compute): Likewise.
2646         * dominance.c (init_dom_info, free_dom_info): Likewise.
2647         * flow.c (init_propagate_block_info,
2648         free_propagate_block_info): Likewise.
2649         * gcse.c (alloc_gcse_mem, free_gcse_mem): Likewise.
2650         * global.c (allocate_bb_info, free_bb_info, calculate_reg_pav,
2651         modify_reg_pav): Likewise.
2652         * loop-invariant.c (find_defs, find_invariant_insn,
2653         find_invariants, free_inv_motion_data): Likewise.
2654         * predict.c (tree_predict_by_opcode,
2655         estimate_bb_frequencies): Likewise.
2656         * stmt.c (expand_case): Likewise.
2657         * tree-cfg.c (tree_duplicate_sese_region): Likewise.
2658         * tree-dfa.c (mark_new_vars_to_rename): Likewise.
2659         * tree-if-conv.c (get_loop_body_in_if_conv_order): Likewise.
2660         * tree-into-ssa.c (insert_phi_nodes_for, def_blocks_free,
2661         get_def_blocks_for, mark_def_site_blocks, rewrite_into_ssa,
2662         rewrite_ssa_into_ssa): Likewise.
2663         * tree-optimize.c (tree_rest_of_compilation): Likewise.
2664         * tree-outof-ssa.c (new_temp_expr_table, free_temp_expr_table,
2665         analyze_edges_for_bb, perform_edge_inserts): Likewise.
2666         * tree-scalar-evolution.c (scev_initialize, scev_finalize): Likewise.
2667         * tree-sra.c (tree_sra): Likewise.
2668         * tree-ssa-alias.c (init_alias_info, delete_alias_info): Likewise.
2669         * tree-ssa-ccp.c (ccp_fold_builtin): Likewise.
2670         * tree-ssa-dce.c (tree_dce_init, tree_dce_done): Likewise.
2671         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
2672         * tree-ssa-dse.c (tree_ssa_dse): Likewise.
2673         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_var):
2674         Likewise.
2675         * tree-ssa-live.c (new_tree_live_info, delete_tree_live_info,
2676         calculate_live_on_entry, calculate_live_on_exit,
2677         build_tree_conflict_graph): Likewise.
2678         * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize_init, record_use,
2679         record_important_candidates, set_use_iv_cost, find_depends,
2680         determine_use_iv_costs, iv_ca_new, iv_ca_free, free_loop_data,
2681         tree_ssa_iv_optimize_finalize): Likewise.
2682         * tree-ssa-loop-manip.c (add_exit_phis_var, get_loops_exit,
2683         find_uses_to_rename_use, rewrite_into_loop_closed_ssa,
2684         tree_duplicate_loop_to_header_edge): Likewise.
2685         * tree-ssa-pre.c (init_pre, fini_pre): Likewise.
2686         * tree-ssa.c (verify_flow_insensitive_alias_info,
2687         verify_name_tags, verify_ssa, init_tree_ssa,
2688         delete_tree_ssa): Likewise.
2689         * tree-ssanames.c (marked_ssa_names, init_ssanames,
2690         fini_ssanames): Likewise.
2691         * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Likewise.
2692
2693 2005-02-17  Ralf Corsepius  <ralf.corsepius@rtems.org>
2694
2695         * config/rs6000/t-rtems: Completely reworked.
2696
2697 2005-02-17  Ira Rosen  <irar@il.ibm.com>
2698
2699         * tree-data-ref.c (array_base_name_differ_p): Remove gcc_assert.
2700
2701 2005-02-17  Ira Rosen  <irar@il.ibm.com>
2702
2703         * tree-vect-analyze.c (vect_analyze_pointer_ref_access): Use
2704         POINTER_TYPE_P when checking that type is a pointer.
2705         (vect_get_memtag): Remove.
2706         (vect_address_analysis): Use POINTER_TYPE_P. Call
2707         vect_object_analysis with dummy parameter for memtag.
2708         (vect_object_analysis): Extract memtag (functionality that
2709         used to be in vect_get_memtag and moved here). Fix printings.
2710         (vect_analyze_data_refs): Fix comment. Call vect_object_analysis
2711         with correct parameters. Remove call to vect_get_memtag.
2712
2713 2005-02-17  Dorit Naishlos  <dorit@il.ibm.com>
2714
2715         * Makefile.in (tree-vect-analyze.o, tree-vect-transform.o): New.
2716         (tree-vectorizer.o): Added missing dependencies.
2717
2718         * tree-vectorizer.h (vect_dump, vect_verbosity_level): Added extern
2719         decleration.
2720         (slpeel_tree_peel_loop_to_edge): Function externalized (had a static
2721         declaration in tree-vectorizer.c, now has an extern declaration in
2722         tree-vectorizer.h).
2723         (slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
2724         slpeel_verify_cfg_after_peeling, vect_strip_conversion,
2725         get_vectype_for_scalar_type, vect_is_simple_use,
2726         vect_is_simple_iv_evolution, vect_can_force_dr_alignment_p,
2727         vect_supportable_dr_alignment, new_loop_vec_info, destroy_loop_vec_info,
2728         new_stmt_vec_info, vect_analyze_loop, vectorizable_load,
2729         vectorizable_store, vectorizable_operation, vectorizable_assignment,
2730         vect_transform_loop, vect_print_dump_info, vect_set_verbosity_level,
2731         find_loop_location): Likewise.
2732
2733         * tree-vectorizer.c (langhooks.h): #include removed.
2734         (slpeel_tree_peel_loop_to_edge): Function externalized. Declaration
2735         moved to tree-vectorized.h.
2736         (slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
2737         slpeel_verify_cfg_after_peeling, vect_strip_conversion,
2738         get_vectype_for_scalar_type, vect_is_simple_use,
2739         vect_is_simple_iv_evolution, vect_can_force_dr_alignment_p,
2740         vect_supportable_dr_alignment, new_loop_vec_info,
2741         destroy_loop_vec_info, new_stmt_vec_info, vect_print_dump_info,
2742         vect_set_verbosity_level, find_loop_location): Likewise.
2743
2744         (vect_analyze_loop): Function externalized. Declaration moved to
2745         tree-vectorized.h. Function definition moved to tree-vect-analyze.c.
2746         (vect_analyze_loop_form): Moved to tree-vect-analyze.c.
2747         (vect_mark_stmts_to_be_vectorized, vect_analyze_scalar_cycles,
2748         vect_analyze_data_ref_accesses, vect_analyze_data_ref_dependences,
2749         vect_analyze_data_refs_alignment, vect_compute_data_refs_alignment,
2750         vect_enhance_data_refs_alignment, vect_analyze_operations,
2751         exist_non_indexing_operands_for_use_p, vect_mark_relevant,
2752         vect_stmt_relevant_p, vect_get_loop_niters,
2753         vect_analyze_data_ref_dependence, vect_compute_data_ref_alignment,
2754         vect_analyze_data_ref_access, vect_analyze_pointer_ref_access,
2755         vect_can_advance_ivs_p, vect_get_ptr_offset, vect_analyze_offset_expr,
2756         vect_base_addr_differ_p, vect_object_analysis, vect_address_analysis,
2757         vect_get_memtag): Likewise.
2758
2759         (vectorizable_load): Function externalized. Declaration moved to
2760         tree-vectorized.h. Function definition moved to tree-vect-transform.c.
2761         (vectorizable_store, vectorizable_operation, vectorizable_assignment,
2762         vect_transform_loop): Likewise.
2763         (vect_transform_stmt): Moved to tree-vect-transform.c.
2764         (vect_align_data_ref, vect_create_destination_var,
2765         vect_create_data_ref_ptr, vect_create_index_for_vector_ref,
2766         vect_create_addr_base_for_vector_ref, vect_get_new_vect_var,
2767         vect_get_vec_def_for_operand, vect_init_vector,
2768         vect_finish_stmt_generation, vect_generate_tmps_on_preheader,
2769         vect_build_loop_niters, vect_update_ivs_after_vectorizer,
2770         vect_gen_niters_for_prolog_loop, vect_update_inits_of_dr,
2771         vect_update_inits_of_drs, vect_do_peeling_for_alignment,
2772         vect_do_peeling_for_loop_bound): Likewise.
2773
2774         * tree-vect-analyze.c: New file.
2775         * tree-vect-transform.c: New file.
2776
2777 2005-02-17  Jason Merrill  <jason@redhat.com>
2778
2779         PR mudflap/19319, c++/19317
2780         * gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Make return
2781         slot explicit.
2782
2783 2005-02-17  Gerald Pfeifer  <gerald@pfeifer.com>
2784
2785         * doc/install.texi (Specific): Update link for Darwin-specific
2786         tool binary site.
2787
2788 2005-02-16  James A. Morrison  <phython@gcc.gnu.org>
2789
2790         * fold-const.c (invert_truthvalue): <INTEGER_CST>: Call
2791         constant_boolean_node.
2792
2793 2005-02-16  David Edelsohn  <edelsohn@gnu.org>
2794
2795         PR target/19019
2796         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
2797         * config/rs6000/t-aix52 (SHLIB_MAPFILES): Same.
2798
2799 2005-02-16  Richard Henderson  <rth@redhat.com>
2800
2801         PR 19920
2802         * libgcc2.c (WORD_SIZE): Remove all definitions; replace uses
2803         with W_TYPE_SIZE.
2804         (HIGH_WORD_COEFF, HIGH_HALFWORD_COEFF): Remove all definitions;
2805         replace uses with Wtype_MAXp1_F.
2806         (L_fixunstfdi, L_fixtfdi, L_floatditf, L_fixunsxfdi, L_fixxfdi,
2807         L_floatdixf, L_fixunsxfsi, L_fixunsdfdi, L_floatdidf, L_fixunsdfsi,
2808         L_powidf2, L_powixf2, L_powitf2, L_muldc3, L_divdc3, L_mulxc3,
2809         L_divxc3, L_multc3, L_divtc3): Protect with HAVE_DFMODE, HAVE_XFMODE,
2810         and HAVE_TFMODE as appropriate.
2811         (__fixunssfDI): Provide an implementation that doesn't need DFmode.
2812         (__floatdisf): Likewise.
2813         * libgcc2.h (LIBGCC2_DOUBLE_TYPE_SIZE): New.
2814         (HAVE_DFMODE, HAVE_XFMODE, HAVE_TFMODE): New.
2815         (Wtype_MAXp1_F): New.
2816         (DFtype, DCtype, __fixdfdi, __floatdidf, __fixunsdfSI, __fixunsdfDI,
2817         __powidf2, __divdc3, __muldc3): Protect with HAVE_DFMODE.
2818
2819 2005-02-16  Richard Earnshaw  <rearnsha@arm.com>
2820
2821         * PR target/19162
2822         * arm.c (arm_apply_result_size): New function.
2823         * arm.h (APPLY_RESULT_SIZE): Define.
2824         * arm-protos.h (arm_apply_result_size): Add prototype.
2825         * arm.md (RO_REGNUM, FPA_F0_REGNUM, FPA_F7_REGNUM): New constants.
2826         (movxf): New expand.
2827         (ldmsi_postinc4_thumb, stmsi_postinc4_thumb): New patterns for Thumb.
2828         (call_value_symbol): Remove predicate for operand 0.
2829         (call_value_insn, sibcall_value, sibcall_value_insn): Likewise.
2830         (untyped_call): Rework to correclty return values for any type.
2831         (untyped_return): New expand.
2832         * fpa.md (movxf_fpa): Simplify and use sfm/lfm when appropriate.
2833
2834 2005-02-16  Stan Shebs  <shebs@apple.com>
2835
2836         * config.gcc (powerpc-*-darwin*): Use fragment for Darwin 8 or later.
2837         * config/rs6000/t-darwin8: New, for 64-bit multilib.
2838
2839 2005-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
2840
2841         * doc/install.texi (sparc-sun-solaris2*): Document required GMP
2842         configure settings on Solaris 7 and later.
2843
2844 2005-02-16  Diego Novillo  <dnovillo@redhat.com>
2845
2846         PR tree-optimization/19865
2847         * tree-optimize.c (init_tree_optimization_passes): Run
2848         pass_may_alias after pass_sra.
2849
2850 2005-02-16  Richard Henderson  <rth@redhat.com>
2851             Stuart Hastings  <stuart@apple.com>
2852
2853         PR debug/19521
2854         * dbxout.c (dbxout_function_end): Take decl parameter; update callers.
2855         Do nothing if debug info suppressed for this function.
2856         (dbxout_begin_function): Early exit if debug info suppressed for
2857         this function.
2858
2859 2005-02-16  Kazu Hirata  <kazu@cs.umass.edu>
2860
2861         PR target/20007
2862         * config/ip2k/ip2k.c (ip2k_reorg): Adjust calls to
2863         find_basic_blocks.
2864         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
2865
2866         PR tree-optimization/19967
2867         * builtins.c (expand_builtin_strstr, expand_builtin_strpbrk,
2868         expand_builtin_strchr, expand_builtin_strrchr): Take a new
2869         argument TYPE.  Adjust calls to fold_builtin_XXX.
2870         (expand_builtin, fold_builtin_1): Adjust calls to
2871         expand_builtin_XXX.
2872         (fold_builtin_strchr, fold_builtin_strpbrk,
2873         fold_builtin_strstr, fold_builtin_strrchr): Convert the folded
2874         result to a requested type TYPE.
2875
2876 2005-02-16  Jakub Jelinek  <jakub@redhat.com>
2877
2878         PR middle-end/19857
2879         * fold-const.c (fold): Don't optimize (T)(x & cst) to
2880         (T)x & (T)cst if (T)cst overflows.
2881         * convert.c (convert_to_integer) <case POINTER_TYPE>: Pass
2882         TYPE_UNSIGNED (type) as type_for_size's UNSIGNEDP argument.
2883
2884 2005-02-15  Jeff Law  <law@redhat.com>
2885
2886         * gcse.c (blocks_with_calls): New bitmap.
2887         (alloc_gcse_mem): Allocate it.
2888         (free_gcse_mem): Free it.
2889         (clear_modifY_mem_tables): Clear it.
2890         (record_last_mem_set_info): Set the proper bit in BLOCK_WITH_CALLS
2891         when we encounter CALL_INSNs.
2892         (compute_transp, case MEM): Handle blocks with calls separate
2893         from blocks without calls.  Use bitmap iterators rather than
2894         FOR_EACH_BB.
2895
2896 2005-02-15  Peter O'Gorman  <peter@pogma.com>
2897
2898         PR bootstrap/18810
2899         * mklibgcc.in (vis_hide): Use a temporary object file, not
2900         -o /dev/null.
2901
2902 2005-02-15  Andy Hutchinson  <HutchinsonAndy@netscape.net>
2903
2904         PR target/19924
2905         * config/avr/avr.h (MODES_TIEABLE_P): Define to 1 to allow subreg
2906         access optimization.
2907
2908 2005-02-15  David Edelsohn  <edelsohn@gnu.org>
2909             Alan Modra  <amodra@bigpond.net.au>
2910
2911         PR target/19019
2912         * config/rs6000/darwin-ldouble.c (_xlqadd): Rename to __gcc_qadd.
2913         (_xlqsub): Rename to __gcc_qsub.
2914         (_xlqmul): Rename to __gcc_qmul.
2915         (_xlqdiv): Rename to __gcc_qdiv.
2916         Provide versioned symbol aliases with old names.
2917         * config/rs6000/libgcc-ppc64.ver: Rename symbols.
2918         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Rename symbols.
2919         * config/rs6000/t-aix43 (LIB2FUNCS_EXTRA): New.
2920         * config/rs6000/t-aix52 (LIB2FUNCS_EXTRA): New.
2921         * config/rs6000/t-newas (LIB2FUNCS_EXTRA): New.
2922
2923 2005-02-15  James A. Morrison  <phython@gcc.gnu.org>
2924
2925         * fold-const.c (fold): Fold -(~A) to A + 1.  Fold ~(-A) to A - 1.
2926         Fold ~(A - 1) and ~(A + -1) to -A.
2927
2928 2005-02-15  James A. Morrison  <phython@gcc.gnu.org>
2929
2930         PR pch/14940
2931         PR target/19300
2932         * config/host-linux.c (linux_gt_pch_use_address): Copy from
2933         config/pa/pa-host.c:pa_gt_pch_use_address.
2934
2935 2005-02-15  Daniel Berlin  <dberlin@dberlin.org>
2936
2937         * tree-vn.c (get_value_handle): Make sure that given an
2938         is_gimple_min_invariant expression, we always return it.
2939
2940 2005-02-15  Kazu Hirata  <kazu@cs.umass.edu>
2941
2942         * passes.c (rest_of_handle_gcse): Fix a comment.
2943
2944 2005-02-15  Jeff Law  <law@redhat.com>
2945
2946         * gcse.c (canon_modify_mem_set_list_set): Kill unnecessary
2947         bitmap.
2948         (alloc_gcse_mem, free_gcse_mem): Corresponding changes.
2949         (canon_list_insert, record_last_mem_set_info): Similarly.
2950         (clear_modify_mem_tables): Similarly.
2951
2952 2005-02-15  Kazu Hirata  <kazu@cs.umass.edu>
2953
2954         * bitmap.c, bitmap.h, lambda-code.c, tree-dfa.c, tree-dump.c,
2955         tree-dump.h, tree-ssa-loop-manip.c, value-prof.c,
2956         config/mips/mips.md, config/rs6000/aix.h,
2957         config/rs6000/beos.h, config/rs6000/sysv4.h: Update copyright.
2958
2959 2005-02-15  Richard Henderson  <rth@redhat.com>
2960
2961         * bb-reorder.c (find_traces_1_round): Force fallthru edge from a
2962         call to be best_edge.
2963
2964 2005-02-14  Kazu Hirata  <kazu@cs.umass.edu>
2965
2966         * basic-block.h: Adjust the prototype for find_basic_blocks.
2967         * cfgbuild.c (find_basic_blocks): Remove unused arguments.
2968         * passes.c (rest_of_handle_loop_optimize): Adjust the call to
2969         find_basic_blocks.
2970
2971         * flow.c (recompute_reg_usage): Remove all arguments.
2972         * passes.c (rest_of_compilation): Adjust the call to
2973         recompute_reg_usage.
2974         * rtl.h: Adjust the prototype for recompute_reg_usage.
2975
2976 2005-02-14  Daniel Berlin  <dberlin@dberlin.org>
2977
2978         * tree-dump.c (dump_files): Update to reflect new member
2979         of dump_file_info.
2980         (dump_register): Add new argument.
2981         Set glob name.
2982         (dump_switch_p_1): Check against glob name if doglob was passed.
2983         (dump_switch_p): Check against regular first, then glob if
2984         we didn't have any hits on the dump name.
2985         * tree-optimize.c (register_one_dump_file):
2986         Pass in glob name as well.
2987         * tree-pass.h (struct dump_file_info): Add glob
2988         member.
2989
2990 2005-02-14  Joseph S. Myers  <joseph@codesourcery.com>
2991
2992         PR preprocessor/16323
2993         * doc/invoke.texi: Document that -Wendif-labels is on by default.
2994
2995 2005-02-14  David Edelsohn  <edelsohn@gnu.org>
2996
2997         PR target/19019
2998         * config/rs6000/rs6000.md (trunctfdf2): Change to define_expand.
2999         (trunctfdf2_internal1): New.
3000         (trunctfdf2_internal2): Renamed from trunctfdf2.
3001
3002 2005-02-14  Diego Novillo  <dnovillo@redhat.com>
3003
3004         PR tree-optimization/19853
3005         * tree-dfa.c (add_referenced_var): Always examine DECL_INITIAL.
3006
3007 2005-02-14  Kazu Hirata  <kazu@cs.umass.edu>
3008
3009         * passes.c (rest_of_handle_loop_optimize): Remove calls to
3010         delete_dead_jumptables and cleanup_cfg.
3011
3012 2005-02-14  Ulrich Weigand  <uweigand@de.ibm.com>
3013
3014         * reload.c (find_reloads): Swap address_reloaded flags when
3015         swapping commutative operands.
3016
3017 2005-02-14  Sebastian Pop  <pop@cri.ensmp.fr>
3018
3019         * lambda-code.c (lambda_loopnest_to_gcc_loopnest, perfect_nestify):
3020         Use standard_iv_increment_position for computing the bsi position
3021         for create_iv.
3022         * tree-ssa-loop-manip.c (create_iv): Add a comment on how to compute
3023         the bsi position.
3024
3025 2005-02-13  Zdenek Dvorak  <dvorakz@suse.cz>
3026
3027         PR target/17428
3028         * cfgrtl.c (safe_insert_insn_on_edge): Avoid extending
3029         life range of hard registers.
3030         * value-prof.c (insn_prefetch_values_to_profile): Only
3031         scan normal insns.
3032
3033         * value-prof.c (rtl_find_values_to_profile): Do not look for values to
3034         profile in libcalls.
3035
3036 2005-02-13  Nathan Sidwell  <nathan@codesourcery.com>
3037
3038         * bitmap.h (bitmap_and_compl_into): Return bool.
3039         * bitmap.c (bitmap_and_compl_into): Return changed flag.
3040
3041 2005-02-13  James A. Morrison  <phython@gcc.gnu.org>
3042
3043         PR tree-optimization/19944
3044         * fold-const.c (fold): Re-add ABS_EXPR folding.
3045
3046 2005-02-13  David Edelsohn  <edelsohn@gnu.org>
3047
3048         PR target/19019
3049         * config/rs6000/aix.h ({TARGET,MASK}_XL_CALL): Rename to
3050         {TARGET,MASK}_XL_COMPAT.
3051         (SUBTARGET_SWITCHES): Rename xl-call to xl-compat.  Use
3052         MASK_XL_COMPAT.
3053         * config/rs6000/beos.h ({TARGET,MASK}_XL_CALL): Remove.
3054         * config/rs6000/rs6000.c (function_arg): Change TARGET_XL_CALL to
3055         TARGET_XL_COMPAT.
3056         (rs6000_arg_partial_bytes): Same.
3057         (rs6000_generate_compare): Generate PARALLEL for compare if TFmode
3058         and XL compatibility enabled.
3059         * config/rs6000/rs6000.h (TARGET_XL_CALL): Rename to TARGET_XL_COMPAT.
3060         * config/rs6000/rs6000.md (cmptf_internal1): Add !TARGET_XL_COMPAT
3061         test to final condition.
3062         (cmptf_internal2): New.
3063         * doc/invoke.texi (RS/6000 Subtarget Options): Change xl-call to
3064         xl-compat.  Add TFmode information to description.
3065
3066 2005-02-13  Kazu Hirata  <kazu@cs.umass.edu>
3067
3068         * flags.h, read-rtl.c, tree-ssa-live.h: Update copyright.
3069
3070 2005-02-13  Jason Merrill  <jason@redhat.com>
3071
3072         PR c++/16405
3073         * fold-const.c (fold_indirect_ref_1): Split out from...
3074         (build_fold_indirect_ref): Here.
3075         (fold_indirect_ref): New fn.
3076         * tree.h: Declare it.
3077         * gimplify.c (gimplify_compound_lval): Call fold_indirect_ref.
3078         (gimplify_modify_expr_rhs): Likewise.
3079         (gimplify_expr): Likewise.
3080
3081 2005-02-13  James A. Morrison  <phython@gcc.gnu.org>
3082
3083         PR tree-optimization/14303
3084         PR tree-optimization/15784
3085         * fold-const.c (fold): Fold ABS_EXPR<x> >= 0 to true, when possible.
3086         Fold ABS_EXPR<x> < 0 to false.  Fold ABS_EXPR<x> == 0 to x == 0 and
3087         ABS_EXPR<x> != 0 to x != 0.
3088
3089 2005-02-12  Kazu Hirata  <kazu@cs.umass.edu>
3090
3091         * c-tree.h, combine.c, expmed.c, flow.c, libgcc2.c,
3092         simplify-rtx.c, tree-ssa-live.h: Fix comment typos.  Follow
3093         spelling conventions.
3094
3095         * passes.c (rest_of_handle_gcse): Don't run cse_main and
3096         delete_trivially_dead_insns too many times.
3097
3098         * passes.c (rest_of_handle_gcse): Remove dead assignments to
3099         tem and tem2.
3100
3101 2005-02-12  Ira Rosen  <irar@il.ibm.com>
3102
3103         * tree-vectorizer.c (vect_get_base_and_offset): Remove.
3104         (vect_is_simple_iv_evolution): Remove redundant parameter
3105         and step check.
3106         (vect_analyze_scalar_cycles): Call vect_is_simple_iv_evolution
3107         without last parameter.
3108         (vect_analyze_pointer_ref_access): Get access_fn as parameter.
3109         Return pointer step. Call vect_is_simple_iv_evolution without
3110         last parameter. Check only that the step is multiple of size
3111         type. Remove stmt_vinfo updates.
3112         (vect_get_memtag_and_dr): Remove.
3113         (vect_get_memtag): New function.
3114         (vect_address_analysis): New function.
3115         (vect_object_analysis): New function.
3116         (vect_analyze_data_refs): Call vect_object_analysis and
3117         vect_get_memtag. Update stmt_vinfo fields.
3118
3119 2005-02-12  Ira Rosen  <irar@il.ibm.com>
3120
3121         * tree-data-ref.c (array_base_name_differ_p): Check that the bases
3122         exist and are objects. Remove checks for pointer.
3123         * tree-vectorizer.c (vect_create_addr_base_for_vector_ref): Use
3124         STMT_VINFO_VECT_DR_BASE_ADDRESS instead of DR_BASE_NAME.
3125         (vect_create_data_ref_ptr): Likewise.
3126         (vect_base_addr_differ_p): New function.
3127         (vect_analyze_data_ref_dependence): Call vect_base_addr_differ_p.
3128         (vect_analyze_pointer_ref_access): Add output parameter - ptr_init.
3129         Don't set the DR_BASE_NAME field of data-ref.
3130         (vect_get_memtag_and_dr): Use ptr_init instead of DR_BASE_NAME.
3131
3132 2005-02-12  Uros Bizjak  <uros@kss-loka.si>
3133
3134         * optabs.h (enum optab_index): Add new OTI_ldexp.
3135         (ldexp_optab): Define corresponding macro.
3136         * optabs.c (init_optabs): Initialize ldexp_optab.
3137         * genopinit.c (optabs): Implement ldexp_optab using ldexp?f3
3138         patterns.
3139         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_LDEXP{,F,L}
3140         using ldexp_optab.
3141         (expand_builtin): Expand BUILT_IN_LDEXP{,F,L} using
3142         expand_builtin_mathfn_2 if flag_unsafe_math_optimizations is set.
3143
3144         * config/i386/i386.md (ldexpsf3, ldexpdf3, ldexpxf3): New expanders
3145         to implement ldexpf, ldexp and ldexpl built-ins as inline x87
3146         intrinsics.
3147
3148 2005-02-12  Ira Rosen  <irar@il.ibm.com>
3149
3150         * tree-vectorizer.h (struct _stmt_vec_info): Rename a field: base
3151         to base_address.
3152         * tree-vectorizer.c (new_stmt_vec_info): Rename the above field of
3153         stmt_vec_info.
3154         (vect_get_base_and_offset): Always return an address.
3155         (vect_create_addr_base_for_vector_ref): Remove treatment for
3156         different data reference types.
3157         (vect_compute_data_ref_alignment): Rename base to base_address in
3158         stmt_vec_info. Get the object in order to force its alignment.
3159         (vect_get_memtag_and_dr): Rename base to base_address in
3160         stmt_vec_info. Extract the object for memtag analysis.
3161
3162 2005-02-12  Hans-Peter Nilsson  <hp@axis.com>
3163
3164         PR regression/19898.
3165         * config/cris/cris.c (cris_notice_update_cc): When testing if insn
3166         changes cc_status, use apply modified_in_p to part of cc_status
3167         and insn, not cris_reg_overlap_mentioned_p on SET_DEST of insn
3168         body.
3169
3170 2005-02-11  Richard Henderson  <rth@redhat.com>
3171
3172         * tree-complex.c (expand_complex_libcall): New.
3173         (expand_complex_multiplication): Use it for c99 compliance.
3174         (expand_complex_division): Likewise.
3175         * fold-const.c (fold_complex_add, fold_complex_mult): New.
3176         (fold): Call them.
3177         * builtins.c (built_in_names): Remove const.
3178         * tree.c (build_common_builtin_nodes): Build complex arithmetic
3179         builtins.
3180         * tree.h (BUILT_IN_COMPLEX_MUL_MIN, BUILT_IN_COMPLEX_MUL_MAX): New.
3181         (BUILT_IN_COMPLEX_DIV_MIN, BUILT_IN_COMPLEX_DIV_MAX): New.
3182         (built_in_names): Remove const.
3183         * c-common.c (c_common_type_for_mode): Handle complex modes.
3184         * flags.h, toplev.c (flag_complex_method): Rename from
3185         flag_complex_divide_method.
3186         * libgcc2.c (__divsc3, __divdc3, __divxc3, __divtc3,
3187         __mulsc3, __muldc3, __mulxc3, __multc3): New.
3188         * libgcc2.h: Declare them.
3189         * libgcc-std.ver: Export them.
3190         * mklibgcc.in (lib2funcs): Build them.
3191
3192 2005-02-11  Steven Bosscher  <stevenb@suse.de>
3193
3194         PR tree-optimization/19876
3195         Partially revert my change from 2005-01-14
3196         * tree-ssa-pre.c (compute_antic_aux): Make recursive once again...
3197         (compute_antic): ...and remove the loop here.
3198
3199 2005-02-11  Jakub Jelinek  <jakub@redhat.com>
3200
3201         PR middle-end/19858
3202         * fold-const.c (make_bit_field_ref): If bitpos == 0 and bitsize
3203         is number of inner's bits, avoid creating a BIT_FIELD_REF.
3204
3205         * config/rs6000/sysv4.h (ENDFILE_LINUX_SPEC): Use crtendS.o instead of
3206         crtend.o if -pie.  Use %{x:a;:b} spec syntax.
3207
3208 2005-02-11  Daniel Jacobowitz  <dan@codesourcery.com>
3209
3210         * config/mips/linux-unwind.h (mips_fallback_frame_state): Adjust
3211         offsets for the big-endian 32-bit case.
3212
3213 2005-02-11  Joseph S. Myers  <joseph@codesourcery.com>
3214
3215         * config/ia64/hpux.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
3216
3217 2005-02-11  Dale Johannesen  <dalej@apple.com>
3218
3219         * cselib.c (cselib_process_insn):  Clear out regs where
3220         HARD_REGNO_CALL_PART_CLOBBERED is true at a call.
3221         * reload.c (find_equiv_reg): Ditto.
3222
3223 2005-02-11  Ian Lance Taylor  <ian@airs.com>
3224
3225         * read-rtl.c (read_rtx_1): Give fatal error if we see a vector
3226         with no elements.
3227
3228         * tree.c (build_function_type_list): Work correctly if there are
3229         no arguments.
3230
3231 2005-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
3232
3233         * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccs",
3234         "*cmpsi_ccs"): Use %h instead of %c to print immediate operand.
3235         ("*zero_extendhisi2_64", "*zero_extendhisi2_31"): Choose based on
3236         TARGET_ZARCH instead of TARGET_64BIT.
3237
3238 2005-02-11  Ralf Corsepius  <ralf.corsepius@rtems.org>
3239
3240         * config/rs6000/t-rtems:
3241         (MULTILIB_OPTIONS): Remove mcpu=602.
3242         (MUTLILIB_DIRNAMES): Remove m602.
3243         (MULTILIB_MATCHES): Add ${MULTILIB_MATCHES_FLOAT}.
3244         Let mcpu=602 match mcpu=603.
3245         (MULTILIB_NEW_EXCEPTIONS_ONLY): Add mcpu=601, mcpu=602, mcpu=m603.
3246
3247 2005-02-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3248
3249         * pa/linux-unwind.h (pa32_fallback_frame_state): Handle misaligned
3250         signal trampolines.
3251
3252 2005-02-10  David Daney  <ddaney@avtrex.com>
3253
3254         * config/alpha/linux-unwind.h: Add exception clause to copyright.
3255         * config/i386/linux-unwind.h: Likewise.
3256         * config/ia64/linux-unwind.h: Likewise.
3257         * config/mips/linux-unwind.h: Likewise.
3258         * config/pa/linux-unwind.h: Likewise.
3259         * config/rs6000/linux-unwind.h: Likewise.
3260         * config/s390/linux-unwind.h: Likewise.
3261         * config/sh/linux-unwind.h: Likewise.
3262         * config/sparc/linux-unwind.h: Likewise.
3263
3264 2005-02-10  Steven Bosscher  <stevenb@suse.de>
3265
3266         PR tree-optimization/17549
3267         * tree-outof-ssa.c (find_replaceable_in_bb): Do not allow
3268         TER to replace a DEF with its expression if the DEF and the
3269         rhs of the expression we replace into have the same root
3270         variable.
3271
3272 2005-02-10  Richard Sandiford  <rsandifo@redhat.com>
3273
3274         * config/mips/mips.md: Fix the placement of the match_scratch in the
3275         lea64 peephole2.
3276
3277 2005-02-10  Kazu Hirata  <kazu@cs.umass.edu>
3278
3279         * cse.c, tree-ssa-loop-ivopts.c, config/rs6000/linux-unwind.h:
3280         Fix comment typos.
3281
3282 2005-02-10  Zdenek Dvorak  <dvorakz@suse.cz>
3283
3284         * tree-ssa-loop-ivopts.c (determine_base_object): Ignore casts.
3285         (strip_offset): Handle addresses.
3286         (add_address_candidates): Use strip_offset.
3287         (difference_cost): Reflect strip_offset change.
3288         (force_var_cost, difference_cost): Strip nops.
3289
3290 2005-02-10  Kazu Hirata  <kazu@cs.umass.edu>
3291
3292         * df.h (DF_REF_MODE_CHANGE, DF_REF_MEM_OK): Remove.
3293
3294         * builtins.def, haifa-sched.c, libgcc2.c, libgcc2.h,
3295         tree-ssa-loop-ivcanon.c, tree-ssa-loop-niter.c,
3296         config/cris/cris-protos.h, config/cris/cris.c: Update
3297         copyright.
3298
3299 2005-02-10  Jeff Law  <law@redhat.com>
3300
3301         * tree-ssa-dom.c (thread_across_edge): Use xmalloc, not xcalloc.
3302         (lookup_avail_expr): Similarly.
3303
3304 2005-02-10  Richard Guenther  <rguenth@gcc.gnu.org>
3305
3306         * builtins.c (fold_builtin_powi): New function.
3307         (fold_builtin_1): Call it.
3308
3309 2005-02-10  Steven Bosscher  <stevenb@suse.de>
3310
3311         PR documentation/19309
3312         * doc/cpp.texi: The __GNUC__ and related predefined macros
3313         are also defined for the "standalone" cpp.
3314         Some non-GCC compilers may also define __GNUC__.
3315
3316 2005-02-10  Jakub Jelinek  <jakub@redhat.com>
3317
3318         PR c/19342
3319         * c-typeck.c (common_type): New routine.  Old common_type renamed
3320         to...
3321         (c_common_type): ...this.
3322         (build_conditional_expr, build_binary_op): Use c_common_type instead
3323         of common_type.
3324
3325 2005-02-10  Steven Bosscher  <stevenb@suse.de>
3326
3327         * doc/md.texi: Replace @samp{length} with @code{length}.
3328
3329 2005-02-09  Zdenek Dvorak  <dvorakz@suse.cz>
3330
3331         PR tree-optimization/18687
3332         * tree-flow.h (find_loop_niter): Declare.
3333         * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables):
3334         Try using scev even for loops with more than one exit.
3335         * tree-ssa-loop-ivopts.c (struct loop_data): Removed niter field.
3336         (struct ivopts_data): Added niters field.
3337         (struct nfe_cache_elt): New.
3338         (nfe_hash, nfe_eq, niter_for_exit, niter_for_single_dom_exit): New
3339         functions.
3340         (tree_ssa_iv_optimize_init): Initialize niters cache.
3341         (determine_number_of_iterations): Removed.
3342         (find_induction_variables): Do not call determine_number_of_iterations.
3343         Access niters for single exit through niter_for_single_dom_exit.
3344         (add_iv_outer_candidates): Access niters for single exit through
3345         niter_for_single_dom_exit.
3346         (may_eliminate_iv): Take data argument.  Use niter_for_exit.  Do not use
3347         number_of_iterations_cond.
3348         (iv_period): New function.
3349         (determine_use_iv_cost_condition): Pass data to may_eliminate_iv.
3350         (may_replace_final_value): Take data argument.  Use
3351         niter_for_single_dom_exit.
3352         (determine_use_iv_cost_outer): Pass data to may_replace_final_value.
3353         (rewrite_use_compare): Pass data to may_eliminate_iv.
3354         (rewrite_use_outer): Pass data to may_replace_final_value.
3355         (free_loop_data): Clean up the niters cache.
3356         (tree_ssa_iv_optimize_finalize): Free the niters cache.
3357         (tree_ssa_iv_optimize_loop): Do not call loop_commit_inserts.
3358         * tree-ssa-loop-niter.c (find_loop_niter): New function.
3359         (find_loop_niter_by_eval): Use tree_int_cst_lt.
3360         (num_ending_zeros): Moved to tree.c.
3361         * tree.h (num_ending_zeros): Declare.
3362         * tree.c (num_ending_zeros): Moved from tree.c.
3363
3364 2005-02-09  Richard Henderson  <rth@redhat.com>
3365
3366         * builtins.c (DEF_BUILTIN): Add COND argument.
3367         * tree.h (DEF_BUILTIN): Likewise.
3368         * builtins.def (DEF_GCC_BUILTIN, DEF_LIB_BUILTIN, DEF_EXT_LIB_BUILTIN,
3369         DEF_C94_BUILTIN, DEF_C99_BUILTIN, DEF_C99_C90RES_BUILTIN): Update to
3370         match.
3371         (DEF_BUILTIN_STUB): New.
3372         (BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE, BUILT_IN_INIT_TRAMPOLINE,
3373         BUILT_IN_ADJUST_TRAMPOLINE, BUILT_IN_NONLOCAL_GOTO,
3374         BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT): Use it.
3375         * c-common.c (DEF_BUILTIN): Add COND argument.
3376         * tree.c (local_define_builtin): New.
3377         (build_common_builtin_nodes): New.
3378
3379 2005-02-09  Roger Sayle  <roger@eyesopen.com>
3380
3381         * fold-const.c (fold_strip_sign_ops): New function to simplify a
3382         floating point expression ignoring the sign of the result.
3383         (fold) <ABS_EXPR>: Use it to simplify fabs(x).
3384         (fold) <MULT_EXPR>: Use it to simplify x*x.
3385         * tree.h (fold_strip_sign_ops): Prototype here.
3386         * builtins.c (fold_builtin_copysign): Take an additional FNDECL
3387         argument.  Use fold_strip_sign_ops to simplify the first argument.
3388         (fold_builtin_pow):  Use fold_strip_sign_ops to simplify the
3389         first argument when the second argument is an even integer
3390         constant, but only with -funsafe_math_optimizations.
3391         (fold_builtin_1): Update call to fold_builtin_copysign.
3392
3393 2005-02-09  Ian Lance Taylor  <ian@airs.com>
3394
3395         PR middle-end/19583
3396         * gimple-low.c (try_catch_may_fallthru): In EH_FILTER_EXPR case,
3397         just check whether EH_FILTER_FAILURE falls through.
3398
3399 2005-02-09  Andreas Krebbel  <krebbel1@de.ibm.com>
3400
3401         * gcc/haifa-sched.c (schedule_block): Make queued sched group
3402         insns return to ready list in the next turn.
3403
3404 2005-02-09  Richard Guenther  <rguenth@gcc.gnu.org>
3405
3406         PR middle-end/19402
3407         * builtins.def: New __builtin_powi[lf].
3408         * builtins.c (mathfn_built_in): Handle BUILT_IN_POWI.
3409         (expand_builtin_powi): New function.
3410         (expand_builtin): Dispatch to expand_builtin_powi.
3411         * libgcc2.h: Add prototypes for __builtin_powi[lf].
3412         * libgcc2.c: Add __builtin_powi[lf] implementation.
3413         * mklibgcc.in: Add __builtin_powi[lf] to lib2funcs.
3414         * optabs.h: Add powi_optab.
3415         * optabs.c (init_optabs): Initialize powi_optab.
3416         * doc/extend.texi: Document __builtin_powi[lf].
3417
3418 2005-02-09  Dorit Naishlos  <dorit@il.ibm.com>
3419
3420         * tree-vectorizer.c (vect_set_dump_settings): Check that dump_file
3421         exists.
3422
3423 2005-02-09  Richard Guenther  <rguenth@gcc.gnu.org>
3424
3425         PR middle-end/19854
3426         * fold-const.c (try_move_mult_to_index): Remove redundant
3427         type argument.  Create ADDR_EXPR with correct type.
3428         (fold): Update callers of try_move_mult_to_index.  Convert
3429         result to the appropriate type.
3430
3431 2005-02-09  Roger Sayle  <roger@eyesopen.com>
3432
3433         PR target/19597
3434         * config/avr/avr.c (default_rtx_costs): Delete.
3435         (avr_operand_rtx_cost): New function.
3436         (avr_rtx_costs): Completely rewrite.
3437
3438 2005-02-08  Hans-Peter Nilsson  <hp@axis.com>
3439
3440         PR target/19806
3441         * config/cris/cris.c (in_code): New variable.
3442         (cris_output_addr_const): Now a static function, a wrapper for
3443         output_addr_const.
3444         (cris_asm_output_symbol_ref): New function, broken out SYMBOL_REF
3445         case from old cris_output_addr_const.
3446         (cris_asm_output_label_ref): Similar for LABEL_REF.
3447         (cris_output_addr_const_extra): Similar for UNSPEC.
3448         * config/cris/cris.h (OUTPUT_ADDR_CONST_EXTRA)
3449         (ASM_OUTPUT_SYMBOL_REF, ASM_OUTPUT_LABEL_REF): Define.
3450         * config/cris/cris-protos.h (cris_output_addr_const): Remove