OSDN Git Service

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