OSDN Git Service

c0b07e314b0225c7f24ca49fef445acbb2e72ef0
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2005-03-21  Roger Sayle  <roger@eyesopen.com>
2
3         PR middle-end/20557
4         * bb-reorder.c (duplicate_computed_gotos): Use can_duplicate_block_p
5         to determine whether a block can be duplicated, rather than test
6         whether the block contains noncopyable insns ourselves.
7
8 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
9
10         * config/i860/i860.h (PREDICATE_CODES): Remove nonexistent
11         predicates.
12
13 2005-03-21  Richard Sandiford  <rsandifo@redhat.com>
14
15         * config/ip2k/ip2k.h (target_flags, TARGET_SWITCHES): Delete.
16
17 2005-03-21  Richard Sandiford  <rsandifo@redhat.com>
18
19         * config/fr30/fr30.h (TARGET_SMALL_MODEL_MASK, TARGET_SMALL_MODEL)
20         (TARGET_DEFAULT, target_flags, TARGET_SWITCHES): Delete.
21         * config/fr30/fr30.opt: New file.
22
23 2005-03-18  Daniel Berlin  <dberlin@dberlin.org>
24         
25         Fix PR tree-optimization/20542
26
27         * tree-flow-inline.h (overlap_subvar): Move to here.
28         * tree-ssa-operands.c: From here.
29         * tree-flow.h (overlap_subvar): Declare.
30         * tree-ssa-alias.c (add_pointed_to_var): Use overlap_subvar here.
31         * tree-ssa-loop-im.c (is_call_clobbered_ref): Return proper answer
32         for variables with subvars.
33         
34 2005-03-21 Mostafa Hagog <mustafa@il.ibm.com>
35
36         PR middle-end/20177
37         * ddg.c (create_ddg_dependence): Ignore reg-anti dependency.
38         * modulo-sched.c (const_iteration_count): Return on NULL
39         pre-header.
40         (print_node_sched_params): Return on NULL dump_file.
41         (generate_reg_moves): Handle reg-anti dependencies and disregard
42         closing branch when generating register moves.
43         (sms_schedule): Mark the SMSed block dirty.
44         * passes.c (rest_of_handle_sms): Call update_life_info for all
45         basic-blocks.
46         * testsuite/gcc.dg/20050321-1.c: New test.
47
48 2005-03-21  Bob Wilson  <bob.wilson@acm.org>
49
50         * config/xtensa/lib1funcs.asm (__mulsi3): Use symbolic name for ACCLO.
51         * config/xtensa/xtensa.md (movsi_internal, movhi_internal,
52         movqi_internal): Likewise.
53
54 2005-03-21  Bob Wilson  <bob.wilson@acm.org>
55
56         * config/xtensa/xtensa-protos.h: (xtensa_simm7, xtensa_uimm8,
57         xtensa_uimm8x2, xtensa_uimm8x4, xtensa_ai4const, xtensa_lsi4x4,
58         xtensa_b4const): Delete prototypes.
59         (xtensa_simm8, xtensa_simm8x256, xtensa_simm12b, xtensa_b4constu,
60         xtensa_mask_immediate, xtensa_mem_offset): Update prototypes.
61         (xtensa_b4const_or_zero, xtensa_const_ok_for_letter_p,
62         xtensa_extra_constraint): New prototypes.
63         (add_operand, arith_operand, nonimmed_operand, mem_operand,
64         mask_operand, extui_fldsz_operand, sext_operand, sext_fldsz_operand,
65         lsbitnum_operand, branch_operand, ubranch_operand, call_insn_operand,
66         move_operand, const_float_1_operand, fpmem_offset_operand,
67         branch_operator, ubranch_operator, boolean_operator): Delete prototypes.
68         * config/xtensa/xtensa.c (b4const_or_zero): Rename to ...
69         (xtensa_b4const_or_zero): ...this.  Change return type to bool and
70         argument type to HOST_WIDE_INT.
71         (xtensa_simm8, xtensa_simm8x256, xtensa_simm12b,
72         xtensa_mask_immediate): Likewise.
73         (xtensa_uimm8, xtensa_uimm8x2, xtensa_uimm8x4, xtensa_b4const):
74         Likewise.  Also make these functions static.
75         (xtensa_simm7, xtensa_ai4const, xtensa_lsi4x4): Delete.
76         (xtensa_const_ok_for_letter_p): New.
77         (add_operand, arith_operand, nonimmed_operand, mem_operand,
78         mask_operand, extui_fldsz_operand, sext_operand, sext_fldsz_operand,
79         lsbitnum_operand, branch_operand, ubranch_operand, call_insn_operand,
80         move_operand, const_float_1_operand, fpmem_offset_operand,
81         branch_operator, ubranch_operator, boolean_operator): Move to
82         predicates.md.
83         (smalloffset_mem_p): Inline code from xtensa_lsi4x4.
84         (xtensa_mem_offset): Change return type to bool.
85         (xtensa_extra_constraint): New.
86         (gen_int_relational): Update type of const_range_p function pointer.
87         Use xtensa_b4const_or_zero.
88         * config/xtensa/xtensa.h (CONST_OK_FOR_LETTER_P): Define to
89         xtensa_const_ok_for_letter_p.  Update comments.
90         (EXTRA_CONSTRAINT): Define to xtensa_extra_constraint.
91         (PREDICATE_CODES): Delete.
92         * config/xtensa/xtensa.md: Include predicates.md.
93         * config/xtensa/predicates.md: New file.
94
95 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
96
97         * config/v850/v850-protos.h: Remove the prototypes for
98         reg_or_int9_operand, reg_or_const_operand,
99         pattern_is_ok_for_prepare, pattern_is_ok_for_dispose,
100         reg_or_0_operand, reg_or_int5_operand, call_address_operand,
101         movsi_source_operand, power_of_two_operand,
102         not_power_of_two_operand, special_symbolref_operand,
103         pattern_is_ok_for_prologue, pattern_is_ok_for_epilogue, and
104         register_is_ok_for_epilogue.
105         * config/v850/v850.c (reg_or_0_operand, reg_or_int5_operand,
106         reg_or_int9_operand, reg_or_const_operand,
107         call_address_operand, special_symbolref_operand,
108         movsi_source_operand, power_of_two_operand,
109         not_power_of_two_operand, register_is_ok_for_epilogue,
110         pattern_is_ok_for_epilogue, pattern_is_ok_for_prologue,
111         pattern_is_ok_for_dispose, pattern_is_ok_for_prepare): Move to
112         predicates.md.
113         * config/v850/v850.h (PREDICATE_CODES): Remove.
114         * config/v850/v850.md: Include predicates.md.
115         * config/v850/predicates.md: New.
116
117 2005-03-21  Zack Weinberg  <zack@codesourcery.com>
118
119         * Makefile.in (BASEVER, DEVPHASE, DATESTAMP)
120         (BASEVER_c, DEVPHASE_c, DATESTAMP_c)
121         (BASEVER_s, DEVPHASE_s, DATESTAMP_s, version): Set with :=.
122         (itoolsdir, itoolsdatadir): Move definition above new first use.
123         (install-itoolsdirs): New rule.
124         (install-mkheaders): Depend on install-itoolsdirs, not
125         install-include-dir.
126
127 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
128
129         * tree-into-ssa.c: Remove obsolete comments.
130
131 2005-03-21  Richard Guenther  <rguenth@gcc.gnu.org>
132
133         * tree-ssa-loop.c (gate_tree_complete_unroll): Run complete
134         unrolling if -fpeel-loops is specified, too.
135         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
136         Remove superfluous check for flag_unroll_loops.
137
138 2005-03-21  Uros Bizjak  <uros@kss-loka.si>
139
140         * optabs.h (enum optab_index): Add new OTI_lrint and OTI_llrint.
141         (lrint_optab, llrint_optab): Define corresponding macros.
142         * optabs.c (init_optabs): Initialize lrint_optab and llrint_optab.
143         * genopinit.c (optabs): Implement lrint_optab using lrintsi2
144         pattern and llrint_optab using llrintdi2 patterns.
145         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LRINT{,F,L}
146         using lrint_optab and BUILT_IN_LLRINT{,F,L} using llrint_optab.
147         (expand_builtin): Expand BUILT_IN_LRINT{,F,L} and
148         BUILT_IN_LLRINT{,F,L} using expand_builtin_mathfn if
149         flag_unsafe_math_optimizations is set.
150
151 2005-03-21  Paolo Bonzini  <bonzini@gnu.org>
152
153         * combine.c (combine_simplify_rtx, simplify_if_then_else,
154         simplify_logical, if_then_else_cond, known_cond,
155         simplify_comparison): Adjust calls to reverse_comparison.
156         Don't use combine_reversed_comparison_code).
157         (combine_reversed_comparison_code): Remove.
158         (reversed_comparison): Using reversed_comparison_code, move it...
159         * jump.c (reversed_comparison): ... here.
160         * rtl.h (reversed_comparison): Add prototype.
161
162 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
163
164         * builtins.c (fold_builtin): Take decomposed arguments of
165         CALL_EXPR.
166         * fold-const.c (fold_ternary): Update a call to fold_builtin.
167         * gimplify.c (gimplify_call_expr): Likewise.
168         * tree-ssa-ccp.c (ccp_fold, ccp_fold_builtin): Likewise.
169         * tree.h: Update the prototype of fold_builtin.
170
171 2005-03-21  Paolo Bonzini  <bonzini@gnu.org>
172
173         * rtl.h (struct rtx_hooks): Add gen_lowpart_no_emit.
174         * rtlhooks.c (gen_lowpart_no_emit_general): New.
175         * rtlhooks-def.h (gen_lowpart_no_emit_general): Declare.
176         (RTL_HOOKS_GEN_LOWPART_NO_EMIT): New.
177         * simplify-rtx.c (simplify_binary_operation_1): Use it.
178
179 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
180
181         * builtins.c (fold_builtin_1): Take decomposed arguments of
182         CALL_EXPR.
183         (fold_builtin): Update a call to fold_builtin_1.
184
185 2005-03-21  Nathan Sidwell  <nathan@codesourcery.com>
186
187         PR other/20564
188         * gcov.c (output_lines): Only output function block summary when
189         outputting branch information.
190         * doc/gcov.texi: Document format of preamble and additional block
191         information lines.
192
193 2005-03-21  Richard Sandiford  <rsandifo@redhat.com>
194
195         * libgcc2.h (LIBGCC2_HAS_SF_MODE): New macro.
196         (LIBGCC2_HAS_DF_MODE, LIBGCC2_HAS_TF_MODE, LIBGCC2_HAS_XF_MODE): Make
197         the defaults false if BITS_PER_UNIT != 8.
198         (SFtype, SCtype, __fixsfdi, __floatdisf, __fixunssfSI, __fixunssfDI)
199         (__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE rather
200         than BITS_PER_UNIT != 8.
201         (L_fixdfdi, L_fixsfdi, L_fixtfdi, L_fixunsdfdi, L_fixunsdfsi)
202         (L_fixunssfdi, L_fixunssfsi, L_fixunstfdi, L_fixunsxfdi, L_fixunsxfsi)
203         (L_fixxfdi, L_floatdidf, L_floatdisf, L_floatditf, L_floatdixf): Remove
204         #undefs.
205         * libgcc2.c (__fixunssfDI, __fixsfdi, __floatdisf, __fixunssfSI)
206         (__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE.
207
208 2005-03-20  Roger Sayle  <roger@eyesopen.com>
209
210         PR middle-end/20539
211         * fold-const.c (fold_binary): Fix type mismatch between
212         TRUTH_{AND,OR,XOR}_EXPR nodes an their operands' types.
213         (fold_binary) <TRUTH_XOR_EXPR>: Avoid calling invert_truthvalue
214         for non-truth-valued expressions.
215
216         * c-common.c (c_common_truthvalue_conversion): Handle ERROR_MARK
217         and FUNCTION_DECL in the main switch.
218         <TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
219         TRUTH_XOR_EXPR>: When changing the result type of these tree nodes,
220         we also need to convert their operands to match.
221         <TRUTH_NOT_EXPR>: Likewise.
222
223 2005-03-21  Joseph S. Myers  <joseph@codesourcery.com>
224
225         * c-common.c (lvalue_or_else): Replace by lvalue_error; only give
226         diagnostic without checking whether an lvalue.
227         * c-common.h (lvalue_p): Remove.
228         (enum lvalue_use): Update comment.
229         (lvalue_or_else): Replace by lvalue_error.
230         * c-typeck.c (lvalue_p): Make static.
231         (lvalue_or_else): New.  Call lvalue_error.
232
233 2005-03-21  Alan Modra  <amodra@bigpond.net.au>
234
235         * config/rs6000/rs6000.c (rs6000_parm_start): New function.
236         (function_arg_advance): Use rs6000_parm_start.
237         (function_arg, rs6000_arg_partial_bytes): Likewise.
238
239 2005-03-20  Joseph S. Myers  <joseph@codesourcery.com>
240
241         * c-common.c (check_case_value): Adjust comment about stripping
242         NOPs.
243         (handle_vector_size_attribute): Don't strip NON_LVALUE_EXPR.
244         * c-typeck.c (default_conversion, convert_arguments,
245         build_modify_expr, convert_for_assignment, store_init_value,
246         digest_init): Use STRIP_TYPE_NOPS instead of stripping nops
247         manually.  Remove inaccurate comments.
248
249 2005-03-20  Roger Sayle  <roger@eyesopen.com>
250             Joseph S. Myers  <joseph@codesourcery.com>
251
252         * varasm.c (do_assemble_alias): Restore comment describing function.
253         Annotate the target parameter as potentially unused.
254
255 2005-03-20  Marek Michalkiewicz  <marekm@amelek.gda.pl>
256
257         PR target/18551
258         * config/avr/avr.c (avr_output_function_prologue): Do not use
259         current_function_name() in a label, use a local label instead.
260
261 2005-03-20  David Edelsohn  <edelsohn@gnu.org>
262
263         * config/rs6000/rs6000.c (rs6000_generate_compare): Test
264         flag_finite_math_only, not flag_unsafe_math_optimizations.
265
266 2005-03-20  Kazu Hirata  <kazu@cs.umass.edu>
267
268         * builtins.c (fold_builtin_1): Update a call to
269         targetm.fold_builtin.
270         * hooks.c (hook_tree_tree_bool_null): Rename to
271         hook_tree_tree_tree_bool_null.  Take one more argument of type
272         tree.
273         * hooks.h: Update the prototype of hook_tree_tree_bool_null.
274         * target-def.h (TARGET_FOLD_BUILTIN): Define it as
275         hook_tree_tree_tree_bool_null.
276         * target.h (gcc_target): Update the prototype of fold_builtin.
277         * config/alpha/alpha.c (alpha_fold_builtin): Take decomposed
278         arguments of CALL_EXPR.
279         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update.  Mention the
280         new prototype.
281
282 2005-03-20  Jan Hubicka  <jh@suse.cz>
283
284         * cgraph.h (cgraph_node): Add prev_clone pointer.
285         * cgraph.c (cgraph_remove_node): Remove from doubly linked chain.
286         (cgraph_clone_node): Produce doubly linked chain.
287
288 2005-03-20  Joseph S. Myers  <joseph@codesourcery.com>
289
290         * c-common.c (handle_aligned_attribute, check_function_sentinel,
291         get_nonnull_operand, handle_sentinel_attribute,
292         check_function_arguments_recurse): Do not strip NOPS from
293         INTEGER_CSTs.
294         * c-decl.c (check_bitfield_type_and_width, build_enumerator):
295         Likewise.
296         * c-format.c (get_constant): Likewise.
297         * c-parser.c (c_parser_postfix_expression): Likewise.
298         * c-typeck.c (set_init_index): Likewise.
299         (convert_arguments): Don't check for NOP_EXPR containing integer
300         constant.
301
302 2005-03-20  Kazu Hirata  <kazu@cs.umass.edu>
303
304         * builtins.c (fold_fixed_mathfn, fold_builtin_trunc,
305         fold_builtin_floor, fold_builtin_ceil, fold_builtin_lround):
306         Take decomposed arguments of CALL_EXPR.
307         (fold_builtin_1): Update calls to the functions mentioned
308         above.
309
310 2005-03-20  Joseph S. Myers  <joseph@codesourcery.com>
311
312         * c-decl.c (check_bitfield_type_and_width): Require bit-field
313         width to have integer type.
314         (build_enumerator): Require enumerator value to have integer type.
315
316 2005-03-19  Joseph S. Myers  <joseph@codesourcery.com>
317
318         * doc/extend.texi (__builtin_inf): Move statement about INFINITY
319         to __builtin_inff.
320
321 2005-03-19  Joseph S. Myers  <joseph@codesourcery.com>
322
323         * c.opt (ansi, std=iso9899:1990, std=iso9899:1999,
324         std=iso9899:199x): Correct descriptions.
325
326 2005-03-19  Joseph S. Myers  <joseph@codesourcery.com>
327
328         * config.gcc: Consistently use solaris2.1[0-9]* instead of
329         solaris2.1[0-9].
330
331 2005-03-19  Kazu Hirata  <kazu@cs.umass.edu>
332
333         * builtins.c (fold_builtin_memcpy): Take decomposed arguments
334         of CALL_EXPR.
335         (expand_builtin_memcpy, fold_builtin_1): Update calls to
336         fold_builtin_memcpy.
337
338         * builtins.c (fold_trunc_transparent_mathfn): Take decomposed
339         arguments of CALL_EXPR.
340         (fold_builtin_trunc, fold_builtin_floor, fold_builtin_ceil,
341         fold_builtin_found, fold_builtin_1): Update calls to
342         fold_trunc_transparent_mathfn.
343
344 2005-03-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
345
346         PR middle-end/20493
347         * fold-const.c (fold_widened_comparison): Don't optimize casts of
348         function pointers on targets that require function pointer
349         canonicalization.
350         (fold_sign_changed_comparison): Likewise.
351
352 2005-03-19  Bernd Schmidt  <bernd.schmidt@analog.com>
353
354         * combine.c (try_combine): When changing the mode of a hard reg, make
355         sure that doing so is valid.
356
357 2005-03-19  Richard Sandiford  <rsandifo@redhat.com>
358
359         * config/avr/avr.c (avr_init_stack, avr_mcu_name): Make static.
360         (TARGET_HANDLE_OPTION): Override default.
361         (avr_handle_option): New function.
362         * config/avr/avr.h (MASK_ALL_DEBUG, MASK_ORDER_1, MASK_INSN_SIZE_DUMP)
363         (MASK_ORDER_2, MASK_NO_TABLEJUMP, MASK_INT8, MASK_NO_INTERRUPTS)
364         (MASK_CALL_PROLOGUES, MASK_TINY_STACK, MASK_SHORT_CALLS)
365         (TARGET_ORDER_1, TARGET_ORDER_2, TARGET_INT8, TARGET_NO_INTERRUPTS)
366         (TARGET_INSN_SIZE_DUMP, TARGET_CALL_PROLOGUES, TARGET_TINY_STACK)
367         (TARGET_NO_TABLEJUMP, TARGET_SHORT_CALLS, TARGET_ALL_DEBUG)
368         (TARGET_SWITCHES, avr_init_stack, avr_mcu_name)
369         (TARGET_OPTIONS): Delete.
370         * config/avr/avr.opt: New file.
371
372 2005-03-18  2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
373
374         * config/m32r/m32r-protos.h: Remove the prototypes for
375         call_address_operand, symbolic_operand, seth_add3_operand,
376         cmp_int16_operand, uint16_operand, reg_or_int16_operand,
377         reg_or_uint16_operand, reg_or_cmp_int16_operand,
378         two_insn_const_operand, move_src_operand,
379         move_double_src_operand, move_dest_operand,
380         eqne_comparison_operator, signed_comparison_operator,
381         large_insn_p, conditional_move_operand, carry_compare_operand,
382         m32r_block_immediate_operand, extend_operand,
383         reg_or_eq_int16_operand, int8_operand, and
384         reg_or_zero_operand.
385         * config/m32r/m32r.c (call_address_operand, symbolic_operand,
386         seth_add3_operand, int8_operand, cmp_int16_operand,
387         uint16_operand, reg_or_int16_operand, reg_or_uint16_operand,
388         reg_or_eq_int16_operand, reg_or_cmp_int16_operand,
389         reg_or_zero_operand, two_insn_const_operand, move_src_operand,
390         move_double_src_operand, move_dest_operand,
391         eqne_comparison_operator, signed_comparison_operator,
392         extend_operand, small_insn_p, large_insn_p,
393         conditional_move_operand, carry_compare_operand,
394         m32r_block_immediate_operand): Move to predicates.md.
395         (MAX_MOVE_BYTES): Move to m32r.h.
396         * config/m32r/m32r.h (PREDICATE_CODES): Remove.
397         * config/m32r/m32r.md: Include predicates.md.
398         * config/m32r/predicates.md: New.
399
400 2005-03-18  James E Wilson  <wilson@specifixinc.com>
401
402         PR c++/19769
403         * dwarf2out.c (declare_in_namespace): Ignore decls with an abstract
404         origin.
405
406 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
407
408         * config/mn10300/mn10300-protos.h: Remove the prototypes for
409         call_address_operand, const_8bit_operand.
410         * config/mn10300/mn10300.c (call_address_operand,
411         const_8bit_operand, const_1f_operand): Move to predicates.md.
412         * config/mn10300/mn10300.h (PREDICATE_CODES): Remove.
413         * config/mn10300/mn10300.md: Include predicates.md.
414         * config/mn10300/predicates.md: New.
415
416 2005-03-18  Joseph S. Myers  <joseph@codesourcery.com>
417
418         * c-common.c, c-decl.c, c-format.c, c-typeck.c: Use %D for
419         declarations in diagnostics and %E for identifiers, not %s.
420
421 2005-03-18  Jan Hubicka  <jh@suse.cz>
422             Dale Johannesen  <dalej@apple.com>
423
424         * basic-block.h (scale_bbs_frequencies_int,
425         scale_bbs_frequencies_gcov_type): Declare.
426         * cfg.c (RDIV): New macro.
427         (update_bb_frequency_for_threading): Fix.
428         * basic-block.h (scale_bbs_frequencies_int,
429         scale_bbs_frequencies_gcov_type): New.
430         * cfgloopmanip.c (scale_bbs_frequencies): Kill.
431         (scale_loop_frequencies, duplicate_loop_to_header_edge): Use
432         scale_bbs_frequencies_int.
433         * tree-ssa-loop-ch.c (copy_loop_headers): Fix profiling info.
434
435 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
436
437         * config/m32r/m32r-protos.h: Remove the prototypes for
438         call_address_operand, symbolic_operand, seth_add3_operand,
439         cmp_int16_operand, uint16_operand, reg_or_int16_operand,
440         reg_or_uint16_operand, reg_or_cmp_int16_operand,
441         two_insn_const_operand, move_src_operand,
442         move_double_src_operand, move_dest_operand,
443         eqne_comparison_operator, signed_comparison_operator,
444         large_insn_p, conditional_move_operand, carry_compare_operand,
445         m32r_block_immediate_operand, extend_operand,
446         reg_or_eq_int16_operand, int8_operand, and
447         reg_or_zero_operand.
448         * config/m32r/m32r.c (call_address_operand, symbolic_operand,
449         seth_add3_operand, int8_operand, cmp_int16_operand,
450         uint16_operand, reg_or_int16_operand, reg_or_uint16_operand,
451         reg_or_eq_int16_operand, reg_or_cmp_int16_operand,
452         reg_or_zero_operand, two_insn_const_operand, move_src_operand,
453         move_double_src_operand, move_dest_operand,
454         eqne_comparison_operator, signed_comparison_operator,
455         extend_operand, small_insn_p, large_insn_p,
456         conditional_move_operand, carry_compare_operand,
457         m32r_block_immediate_operand): Move to predicates.md.
458         (MAX_MOVE_BYTES): Move to m32r.h.
459         * config/m32r/m32r.h (PREDICATE_CODES): Remove.
460         * config/m32r/m32r.md: Include predicates.md.
461         * config/m32r/predicates.md: New.
462
463         * config/pa/pa-protos.h: Add prototypes for magic_milli and
464         shadd_constant_p.
465         * config/pa/pa.c (reg_or_0_operand, call_operand_address,
466         symbolic_operand, symbolic_memory_operand,
467         reg_or_0_or_nonsymb_mem_operand, reg_before_reload_operand,
468         indexed_memory_operand, move_dest_operand, move_src_operand,
469         prefetch_cc_operand, prefetch_nocc_operand,
470         reg_or_cint_move_operand, pic_label_operand, fp_reg_operand,
471         arith_operand, arith11_operand, pre_cint_operand,
472         post_cint_operan, arith_double_operand, ireg_or_int5_operand,
473         ireg_operand, int5_operand, uint5_operand, int11_operand,
474         uint32_operand, arith5_operand, and_operand, ior_operand,
475         lhs_lshift_operand, lhs_lshift_cint_operand, arith32_operand,
476         pc_or_label_operand, div_operand, plus_xor_ior_operator,
477         shadd_operand, movb_comparison_operator,
478         cmpib_comparison_operator): Move to predicates.md.
479         (magic_milli, shadd_constant_p): Make it extern.
480         * config/pa/pa.h (PREDICATE_CODES): Remove.
481         * config/pa/pa.md: Include predicates.md.
482         * config/pa/predicates.md: New.
483
484         * config/v850/v850.h (PREDICATE_CODES): Remove a nonexistent
485         predicate.
486
487 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
488
489         * hooks.c, hooks.h, intl.c, opts.h, prefix.c, tree-gimple.c,
490         config/alpha/ev4.md, config/alpha/ev5.md, config/alpha/ev6.md,
491         config/alpha/freebsd.h, config/alpha/linux.h,
492         config/alpha/netbsd.h, config/alpha/osf5.h,
493         config/alpha/vms.h, config/arc/arc.c, config/arc/arc.h,
494         config/h8300/h8300-protos.h, config/h8300/h8300.c,
495         config/h8300/h8300.h, config/ia64/unwind-ia64.c,
496         doc/cppopts.texi: Update copyright.
497
498 2005-03-18  Jan Hubicka  <jh@suse.cz>
499
500         PR middle-end/20225
501         * cgraph.c (cgraph_mark_reachable_node): Assert that it is not called
502         too late.
503         * varasm.c (find_decl_and_mark_needed): Mark needed only when not
504         called too late.
505
506 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
507
508         * tree-into-ssa.c (find_idf): Use VEC_quick_push instead of
509         VEC_safe_push.
510
511 2005-03-18  Paolo Bonzini  <bonzini@gnu.org>
512
513         * combine.c (gen_binary): Remove.
514         (known_cond, simplify_shift_const, find_split_point,
515         combine_simplify_rtx, simplify_if_then_else, simplify_set,
516         simplify_logical, expand_field_assignment, extract_left_shift,
517         force_to_mode, if_then_else_cond, apply_distributive_law,
518         simplify_and_const_int, simplify_shift_const, gen_lowpart_for_combine,
519         simplify_comparison, reversed_comparison): Replace with
520         simplify_gen_binary, simplify_gen_relational or
521         distribute_and_simplify_rtx.
522         (distribute_and_simplify_rtx): New function.
523
524 2005-03-18  Alexey Neyman  <alex.neyman@auriga.ru>
525             Paolo Bonzini  <gcc.gnu.org>
526
527         * calls.c (setjmp_call_p, special_function_p): Update comments
528         at the head of the functions.
529
530 2005-03-18  Jan Hubicka  <jh@suse.cz>
531
532         * tree-cfg.c (fold_cond_expr_cond): Use boolean types for condition.
533
534         * cgraph.c (cgraph_remove_node): Avoid loop in code deciding whether
535         function body should be released; do not proactively release function
536         bodies in non-unit-at-a-time mode.
537
538 2005-03-18  Ralf Corsepius  <ralf.corsepius@rtems.org>
539
540         * config/i386/t-rtems-i386 (MULTILIBS): Remove k6, athlon,
541         mno-fp-ret-in-387 multilib variants.
542
543 2005-03-18  Richard Sandiford  <rsandifo@redhat.com>
544
545         * common.opt (m): Remove.
546         * opts.c (handle_option): Pass 'm' options to set_target_switch if
547         table lookup fails.
548         (common_handle_option): Remove OPT_m case.
549
550 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
551
552         * builtins.c (fold_builtin_bitop): Take decomposed arguments
553         of CALL_EXPR.
554         (fold_builtin_1): Update a call to fold_builtin_bitop.
555
556         * builtins.c (fold_builtin_signbit): Take decomposed arguments
557         of CALL_EXPR.
558         (fold_builtin_1): Update a call to fold_builtin_signbit.
559
560 2005-03-17  Dorit Naishlos  <dorit@il.ibm.com>
561
562         PR tree-optimization/20474
563         * tree-vect-analyze.c (vect_analyze_pointer_ref_access): Check the
564         size_type of the relevant pointer. Check for COMPLETE_TYPE_P.
565
566 2005-03-17  Kazu Hirata  <kazu@cs.umass.edu>
567
568         * config/h8300/h8300-protos.h: Remove prototypes for
569         general_operand_src, general_operand_dst, single_one_operand,
570         single_zero_operand, call_insn_operand,
571         two_insn_adds_subs_operand, small_call_insn_operand,
572         jump_address_operand, bit_operand, bit_memory_operand,
573         stack_pointer_operand, const_int_gt_2_operand,
574         const_int_ge_8_operand, const_int_qi_operand,
575         const_int_hi_operand, incdec_operand, bit_operator,
576         nshift_operator, eqne_operator, gtle_operator,
577         gtuleu_operator, iorxor_operator.
578         Add prototypes for h8sx_shift_type h8sx_classify_shift and
579         h8300_ldm_stm_parallel.
580         * config/h8300/h8300.c (h8sx_shift_type,): Move to
581         h8300-protos.h.
582         (SYMBOL_FLAG_FUNCVEC_FUNCTION, SYMBOL_FLAG_EIGHTBIT_DATA,
583         SYMBOL_FLAG_TINY_DATA): Move to h8300.h.
584         (h8300_ldm_stm_parallel): Make it extern.
585         (h8300_ldm_parallel, h8300_stm_parallel,
586         h8300_return_parallel, general_operand_src,
587         general_operand_dst, h8300_dst_operand, h8300_src_operand,
588         nibble_operand, reg_or_nibble_operand, single_one_operand,
589         single_zero_operand, call_insn_operand,
590         two_insn_adds_subs_operand, small_call_insn_operand,
591         jump_address_operand, bit_operand, bit_memory_operand,
592         stack_pointer_operand, const_int_gt_2_operand,
593         const_int_ge_8_operand, const_int_qi_operand,
594         const_int_hi_operand, incdec_operand, eqne_operator,
595         gtle_operator, gtuleu_operator, iorxor_operator, bit_operator,
596         h8sx_binary_memory_operator, h8sx_unary_memory_operator,
597         h8sx_unary_shift_operator, h8sx_binary_shift_operator,
598         nshift_operator): Move to predicates.md.
599         * config/h8300/h8300.h (PREDICATE_CODES): Remove.
600         * config/h8300/h8300.md: Include predicates.md.
601         * config/h8300/predicates.md: New.
602
603 2005-03-17  Richard Henderson  <rth@redhat.com>
604
605         * config.gcc (ia64*-*-hpux*): Add extra_options.
606         * config/ia64/hpux.h (SUBTARGET_SWITCHES): Remove.
607         (TARGET_DEFAULT): Remove MASK_INLINE_FLOAT_DIV_THR.
608         * config/ia64/ia64.c (ia64_fixed_range_string): Remove.
609         (ia64_tls_size_string, ia64_tune_string): Remove.
610         (ia64_tune): Init to PROCESSOR_ITANIUM2.
611         (TARGET_DEFAULT_TARGET_FLAGS): New.
612         (TARGET_HANDLE_OPTION): New.
613         (ia64_override_options): Move options parsing ...
614         (ia64_handle_option): ... here.  New.
615         * config/ia64/ia64.h (target_flags, MASK_BIG_ENDIAN, MASK_GNU_AS,
616         MASK_GNU_LD, MASK_NO_PIC, MASK_VOL_ASM_STOP, MASK_ILP32,
617         MASK_REG_NAMES, MASK_NO_SDATA, MASK_CONST_GP, MASK_AUTO_PIC,
618         MASK_INLINE_FLOAT_DIV_LAT, MASK_INLINE_FLOAT_DIV_THR,
619         MASK_INLINE_INT_DIV_LAT, MASK_INLINE_INT_DIV_THR,
620         MASK_INLINE_SQRT_LAT, MASK_INLINE_SQRT_THR, MASK_DWARF2_ASM,
621         MASK_EARLY_STOP_BITS, TARGET_BIG_ENDIAN, TARGET_GNU_AS, TARGET_GNU_LD,
622         TARGET_NO_PIC, TARGET_VOL_ASM_STOP, TARGET_ILP32, TARGET_REG_NAMES,
623         TARGET_NO_SDATA, TARGET_CONST_GP, TARGET_AUTO_PIC,
624         TARGET_INLINE_FLOAT_DIV_LAT, TARGET_INLINE_FLOAT_DIV_THR,
625         TARGET_INLINE_INT_DIV_LAT, TARGET_INLINE_INT_DIV_THR,
626         TARGET_INLINE_FLOAT_DIV, TARGET_INLINE_INT_DIV, TARGET_INLINE_SQRT_LAT,
627         TARGET_INLINE_SQRT_THR, TARGET_INLINE_SQRT, TARGET_DWARF2_ASM,
628         TARGET_EARLY_STOP_BITS): Remove.
629         (TARGET_ILP32): Default false.
630         (TARGET_SWITCHES, SUBTARGET_SWITCHES, TARGET_OPTIONS): Remove.
631         (enum ia64_inline_type): New.
632         (TARGET_DEFAULT): Remove MASK_INLINE_FLOAT_DIV_THR.
633         * config/ia64/ia64.md: Update for new definitions of
634         TARGET_INLINE_INT_DIV, TARGET_INLINE_FLOAT_DIV, TARGET_INLINE_SQRT.
635         * config/ia64/ia64.opt: New file.
636         * config/ia64/ilp32.opt: New file.
637
638 2005-03-17  H.J. Lu  <hongjiu.lu@intel.com>
639
640         PR target/18380
641         * config/ia64/unwind-ia64.c (_Unwind_FindTableEntry): Removed.
642
643 2005-03-17  Kazu Hirata  <kazu@cs.umass.edu>
644
645         * config/h8300/h8300.c (h8300_init_once): Use MASK_H8300S_1
646         instead of MASK_H8300S.
647         * config/h8300/h8300.h (target_flags, MASK_H8300S, MASK_MAC,
648         MASK_INT32, MASK_ADDRESSES, MASK_QUICKCALL, MASK_SLOWBYTE,
649         MASK_NORMAL_MODE, MASK_RELAX, MASK_H8300H, MASK_ALIGN_300,
650         MASK_H8300SX, TARGET_INT32, TARGET_ADDRESSES,
651         TARGET_QUICKCALL, TARGET_SLOWBYTE, TARGET_H8300H,
652         TARGET_H8300XS, TARGET_NORMAL_MODE, TARGET_ALIGN_300,
653         TARGET_SWITCHES): Remove.
654         (TARGET_H8300S): Redefine interms of TARGET_H8300S_1 and
655         TARGET_H8300SX.
656         * config/h8300/h8300.opt: New.
657
658         * config/alpha/alpha.opt, config/arc/arc.opt,
659         config/h8300/h8300.opt, config/mips/mips.opt: Add copyright
660         notices.
661
662 2005-03-17  Ian Lance Taylor  <ian@airs.com>
663
664         * gmon.c: Remove.
665
666 2005-03-17  Richard Sandiford  <rsandifo@redhat.com>
667
668         * config/arc/arc.c (arc_cpu_string): Make static.  Default to "base"
669         (arc_text_string, arc_data_string, arc_rodata_string): Make static.
670         (TARGET_HANDLE_OPTION): Override default.
671         (arc_handle_option): New function.
672         (arc_init): Remove code to set arch_cpu_string.
673         * config/arc/arc.h (target_flags, TARGET_MASK_MANGLE_CPU)
674         (TARGET_MANGLE_CPU, TARGET_MASK_MANGLE_CPU_LIBGCC)
675         (TARGET_MANGLE_CPU_LIBGCC, TARGET_MASK_ALIGN_LOOPS, TARGET_ALIGN_LOOPS)
676         (TARGET_MASK_BIG_ENDIAN, TARGET_BIG_ENDIAN, TARGET_MASK_NO_COND_EXEC)
677         (TARGET_NO_COND_EXEC, TARGET_SWITCHES, TARGET_DEFAULT)
678         (SUBTARGET_SWITCHES, arc_cpu_string, arc_text_string, arc_data_string)
679         (arc_rodata_string, TARGET_OPTIONS): Delete.
680         * config/arc/arc.opt: New file.
681
682 2005-03-17  Richard Henderson  <rth@redhat.com>
683
684         * doc/extend.texi (Weak Pragmas): New section.
685         (attribute alias): Clarify that target must be in the same
686         translation unit.
687
688 2005-03-17  Richard Henderson  <rth@redhat.com>
689
690         * config/alpha/alpha.opt: New file.
691         * config/alpha/alpha.c (alpha_tune): New.  Rename all existing uses
692         of alpha_cpu.
693         (alpha_cpu_string, alpha_tune_string, alpha_tp_string,
694         alpha_fprm_string, alpha_fptm_string): Make static.
695         (alpha_tls_size_string): Remove.
696         (alpha_handle_option): New.
697         (override_options): Update for alpha_cpu/alpha_tune split.
698         (alpha_file_start): Likewise.
699         (TARGET_DEFAULT_TARGET_FLAGS): New.
700         (TARGET_HANDLE_OPTION): New.
701         * config/alpha/alpha.h (alpha_tune): Declare.
702         (MASK_FP, MASK_FPREGS, TARGET_FPREGS, MASK_GAS, TARGET_GAS,
703         MASK_IEEE_CONFORMANT, TARGET_IEEE_CONFORMANT, MASK_IEEE, TARGET_IEEE,
704         MASK_IEEE_WITH_INEXACT, TARGET_IEEE_WITH_INEXACT, MASK_BUILD_CONSTANTS,
705         TARGET_BUILD_CONSTANTS, MASK_FLOAT_VAX, TARGET_FLOAT_VAX, MASK_BWX,
706         TARGET_BWX, MASK_MAX, TARGET_MAX, MASK_FIX, TARGET_FIX, MASK_CIX,
707         TARGET_CIX, MASK_EXPLICIT_RELOCS, TARGET_EXPLICIT_RELOCS,
708         MASK_SMALL_DATA, TARGET_SMALL_DATA, MASK_TLS_KERNEL, TARGET_TLS_KERNEL,
709         MASK_SMALL_TEXT, TARGET_SMALL_TEXT, MASK_LONG_DOUBLE_128,
710         TARGET_LONG_DOUBLE_128, MASK_CPU_EV5, TARGET_CPU_EV5, MASK_CPU_EV6,
711         TARGET_CPU_EV6, MASK_SUPPORT_ARCH): Remove.
712         (TARGET_SWITCHES, TARGET_OPTIONS): Remove.
713         (TARGET_DEFAULT): Remove MASK_FP.
714         (TARGET_FP): Redefined based on TARGET_SOFT_FP.
715         (TARGET_SUPPORT_ARCH): Default on if HAVE_AS_EXPLICIT_RELOCS.
716         (alpha_cpu_string, alpha_tune_string, alpha_fprm_string,
717         alpha_fptm_string, alpha_tp_string, alpha_mlat_string,
718         alpha_tls_size_string): Remove.
719         * config/alpha/alpha.md (prefetch): Use alpha_cpu.
720         (attribute tune): Rename from attribute cpu.
721         * config/alpha/ev4.md: Update to match.
722         * config/alpha/ev5.md, config/alpha/ev6.md: Likewise.
723         * config/alpha/freebsd.h (TARGET_DEFAULT): Remove MASK_FP.
724         * config/alpha/linux.h (TARGET_DEFAULT): Likewise.
725         * config/alpha/netbsd.h (TARGET_DEFAULT): Likewise.
726         * config/alpha/osf5.h (TARGET_DEFAULT): Likewise.
727         * config/alpha/vms.h (TARGET_DEFAULT): Likewise.
728
729 2005-03-16  James E. Wilson  <wilson@specifixinc.com>
730
731         * config/ia64/ia64.c (issue_nops_and_insn): Check first_insn attribute,
732         and return without creating new state if before_nops_num is nonzero.
733         * config/ia64/ia64.md (first_insn): New attribute.
734         (alloc): Set it to yes.
735
736 2005-03-16  Daniel Berlin  <dberlin@dberlin.org>
737
738         * tree-vectorizer.c (new_vec_stmt_info): Initialize
739         STMT_VINFO_SUBVARS to NULL.
740         * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
741
742 2005-03-16 Dale Johannesen  <dalej@apple.com>
743
744         * rtlanal.c (find_first_parameter_load):  Rewrite to
745         return actual first param load or the call if none,
746         instead of first in block, when not all loads exist.
747
748 2005-03-16  Roger Sayle  <roger@eyesopen.com>
749
750         * optabs.c (expand_copysign_absneg): Make static.
751         * optabs.h (expand_copysign_absneg): Delete prototype.
752         * config/rs6000/rs6000.md (copysigntf3): Delete pattern.
753
754 2005-03-16  Richard Henderson  <rth@redhat.com>
755
756         PR middle-end/15700
757         * varasm.c (struct alias_pair): Rename from struct output_def_pair.
758         (alias_pairs): Rename from output_defs.
759         (find_decl_and_mark_needed): Split out from assemble_alias.
760         (do_assemble_alias): New.
761         (assemble_output_def): Remove.
762         (finish_aliases_1, finish_aliases_2): New.
763         (process_pending_assemble_output_defs): Remove.
764         (assemble_alias): Defer aliases for which we don't yet have a
765         non-external decl for the target symbol.
766         * passes.c (rest_of_decl_compilation): Register variables with cgraph.
767         * cgraphunit.c (cgraph_finalize_compilation_unit): Use finish_aliases_1.
768         * toplev.c (compile_file): Use finish_aliases_2 instead of
769         process_pending_assemble_output_defs.
770         * tree.h (finish_aliases_1, finish_aliases_2): Declare.
771         (process_pending_assemble_output_defs): Remove.
772
773 2005-03-16  Daniel Berlin  <dberlin@dberlin.org>
774
775         Fix PR tree-optimization/20489
776
777         * tree-ssa-alias.c (push_fields_onto_fieldstack): DTRT
778         for empty structures.
779
780 2005-03-16  Daniel Berlin  <dberlin@dberlin.org>
781
782         Fix PR tree-optimization/20490
783
784         * tree-ssa-pre.c (create_expression_by_pieces): Use
785         force_gimple_operand on result of fold.
786
787 2005-03-16  Andrew Pinski  <pinskia@physics.uc.edu>
788
789         * config/i386/emmintrin.h (_mm_extract_epi16): Correct the number
790         of closing parenthesis.
791
792 2005-03-16  Kazu Hirata  <kazu@cs.umass.edu>
793
794         * builtins.c (expand_movstr): Update a call to
795         fold_builtin_strcpy.
796         (expand_builtin_strncpy): Update a call to
797         fold_builtin_strncpy.
798         (fold_builtin_strcpy, fold_builtin_strncpy): Take decomosed
799         arguments of CALL_EXPR.
800         (fold_builtin_1): Update calls to fold_builtin_strcpy and
801         fold_builtin_strncpy.
802         * tree-ssa-ccp.c (ccp_fold_builtin): Likewise.
803         * tree.h: Update the prototypes of fold_builtin_strcpy and
804         fold_builtin_strncpy.
805
806 2005-03-16  Steven Bosscher  <stevenb@suse.de>
807             Dorit Naishlos  <dorit@il.ibm.com>
808
809         * tree-vect-analyze.c (vect_enhance_data_refs_alignment): Copy
810         UNITS_PER_SIMD_WORD to a local variable to avoid a "division by zero"
811         error.
812
813 2005-03-16  Steven Bosscher  <stevenb@suse.de>
814
815         * tree-inline.c (walk_type_fields, walk_tree,
816         walk_tree_without_duplicates): Move from here...
817         * tree.c: ...to here.
818
819 2005-03-15  Zack Weinberg  <zack@codesourcery.com>
820
821         * BASE-VER, DATESTAMP, DEV-PHASE: New files.
822         * Makefile.in (gcc_version, gcc_version_trigger, ): Delete.
823         (BASEVER, DEVPHASE, DATESTAMP, BASEVER_c, DEVPHASE_c, DATESTAMP_c)
824         (BASEVER_s, DEVPHASE_s, DATESTAMP_s): New variables.
825         (version): Define using $(BASEVER_c).
826         (Makefile, config.status, build/gcov-iov.o): No longer depends on
827         version.c.
828         (version.o): Depend on version files; add custom generation command.
829         (prefix.o): Define BASEVER on command line.
830         (s-iov): Depend on version files; adjust command.
831         (TEXI_CPP_FILES, TEX_IGCC_FILES, TEXI_GCCINT_FILES, TEXI_CPPINT_FILES):
832         Add gcc-vers.texi.
833         (gcc-vers.texi): New rule.
834         (doc/%.info, doc/%.dvi): Add -I . to command line.
835         (doc/gccinstall.dvi): Likewise.
836         (PACKAGE): Delete.  All uses replaced with "gcc".
837         * aclocal.m4: Do not include gcc-version.m4.
838         * configure.ac: Do not invoke TL_AC_GCC_VERSION.
839         Do not AC_SUBST nor AC_DEFINE PACKAGE or VERSION.
840         Set is_release based on contents of DEV-PHASE.
841         Set gcc_version based on contents of BASE-VER.
842         Define WIN32_REGISTRY_KEY only if the user overrode the default.
843         * config.in, configure: Regenerate.
844         * gccbug.in: Determine version of GCC in use at runtime.
845         * gcov-iov.c: Get version number and development phase from
846         command line, not by including version.c.
847         * intl.c: Replace all uses of PACKAGE with "gcc".
848         * libada-mk.in: Delete unused "gcc_version" variable.
849         * prefix.c: Default WIN32_REGISTRY_KEY to BASEVER.
850         * version.c: (VERSUFFIX): New hook for redistributors; adjust
851         commentary to match.
852         (version_string): Put together from pieces.
853         * config/alpha/x-vms: Do not use $(gcc_version).
854         * config/i386/t-nwld: Likewise.
855         * doc/include/gcc-common.texi: Include gcc-vers.texi for
856         version-GCC and DEVELOPMENT.
857
858 2005-03-15  Roger Sayle  <roger@eyesopen.com>
859
860         PR tree-optimization/17454
861         * tree.c (tree_size): Add case for TREE_BINFO.
862         * fold-const.c (fold_checksum_tree): Only clear the overloaded
863         field TYPE_CACHED_VALUES if TYPE_CACHED_VALUES_P is set.
864
865 2005-03-15  Roger Sayle  <roger@eyesopen.com>
866
867         * optabs.c (expand_doubleword_mult): Avoid clobbering op0 and
868         op1 whilst expanding the signed widenening multiply variant.
869
870 2005-03-15  Richard Sandiford  <rsandifo@redhat.com>
871
872         * toplev.c (display_target_options): Avoid unused variable warning if
873         TARGET_SWITCHES and TARGET_OPTIONS are both undefined.
874         * config/mips/mips.c (mips_arch_string, mips_tune_string): Make static.
875         (mips_isa_string, mips_abi_string, mips_fix_vr4130_string): Delete.
876         (mips_isa): Initialize to MIPS_ABI_DEFAULT.
877         (mips_isa_info): New variable.
878         (mips_parse_cpu): Remove the first argument and leave the caller
879         to report errors.
880         (TARGET_HANDLE_OPTION): Override default.
881         (mips_handle_option): New function.  Move option validation code from...
882         (override_options): ...here.  Update calls to mips_parse_cpu.
883         * config/mips/mips.h (mips_arch_string, mips_tune_string)
884         (mips_isa_string, mips_abi_string, TARGET_OPTIONS)
885         (SUBTARGET_TARGET_OPTIONS): Delete.
886         * config/mips/mips.opt (mabi=, march=, mflush-func=, mips)
887         (mno-flush-func, mtune=): New options.
888
889 2005-03-15  Roger Sayle  <roger@eyesopen.com>
890             Richard Henderson  <rth@redhat.com>
891
892         * real.c (c4x_single_format, c4x_extended_format): Provide values
893         for signbit_ro for c4x's single and extended floating point formats.
894         * optabs.c (expand_copysign): Use the floating point format's
895         signbit_ro for expanding via expand_copysign_absneg, and it's
896         signbit_rw field for expanding via expand_copysign_bit.
897
898 2005-03-15  Dorit Naishlos  <dorit@il.ibm.com>
899
900         * tree-vectorizer.h (unknown_alignment_for_access_p): Replaced by
901         known_alignment_for_access_p.
902         (known_alignment_for_access_p): New.
903         (do_peeling_for_alignment): Field made int instead of bool and renamed
904         to peeling_for_alignment.
905         (LOOP_DO_PEELING_FOR_ALIGNMENT): Renamed to LOOP_PEELING_FOR_ALIGNMENT.
906         * tree-vect-analyze.c (vect_determine_vectorization_factor): New. This
907         functionality used to be in vect_analyze_operations.
908         (vect_analyze_operations): Code to determine vectorization factor was
909         moved to vect_determine_vectorization_factor.
910         (vect_enhance_data_refs_alignment): Update to correct alignment when it
911         is known instead of -1.  Set LOOP_PEELING_FOR_ALIGNMENT to peeling
912         factor.
913         (vect_analyze_loop): Call vect_determine_vectorization_factor (used to
914         be part of vect_analyze_operations).
915         * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Use fold when
916         creating the guard condition, as the number of iterations may be
917         constant.
918         (slpeel_tree_peel_loop_to_edge): Use new name of
919         LOOP_DO_PEELING_FOR_ALIGNMENT. Set it to 0 instead of false.
920         * tree-vect-transform.c (vect_gen_niters_for_prolog_loop): Handle known
921         alignment case more efficiently. Use LOOP_PEELING_FOR_ALIGNMENT.
922         (vect_do_peeling_for_alignment): Use fold.
923         (vect_transform_loop): Use new name of LOOP_DO_PEELING_FOR_ALIGNMENT.
924
925         (vect_update_inits_of_dr): Renamed to
926         vect_update_init_of_dr.
927         (vect_update_inits_of_drs): Use new name of vect_update_inits_of_dr.
928         (vectorizable_store): Fix assertion to use == instead of =.
929
930 2005-03-15  Daniel Jacobowitz  <dan@codesourcery.com>
931
932         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't clear
933         call_used_regs for wCG registers.
934
935 2005-03-15  Ulrich Weigand  <uweigand@de.ibm.com>
936
937         * config/s390/s390.c (s390_secondary_output_reload_class): Adapt check
938         for non-offsettable memory references to cope with outstanding reload
939         replacements, take 2.
940
941 2005-03-15  Uros Bizjak  <uros@kss-loka.si>
942
943         PR target/18668
944         * config/i386/i386.h (x86_fisttp): New.
945         (TARGET_FISTTP): New macro.
946         * config/i386/i386.c (x86_fisttp): Set for NOCONA.
947         (output_fix_trunc): Add fisttp parameter.  Generate fisttp x87
948         instruction when fisttp flag is set.
949         * config/i386/i386-protos.h (output_fix_trunc): Change declaration.
950
951         * config/i386/i386.md (type attribute): Add fisttp.
952         (unit attribute): Set to i387 for fisttp type.
953         (X87MODEF, X87MODEI, SSEMODEF, SSEMODEI24): New mode macros.
954         (fix_truncxfdi2, fix_truncxfsi2): Generate fisttp patterns for
955         TARGET_FISTTP.
956         (fix_truncdfdi2, fix_truncsfdi2, fix_truncdfsi2, fix_truncsfsi2):
957         Generate fisttp patterns for TARGET_FISTTP. Implement using mode
958         macros.
959         (fix_truncxfhi2, fix_truncdfhi2, fix_truncsfhi2): Generate fisttp
960         patterns for TARGET_FISTTP.  Enable patterns for
961         (TARGET_FISTTP && !TARGET_SSE_MATH). Implement using mode macros.
962         (fix_trunc<mode>_i387_fisttp_1, fix_trunc<mode>_i387_fisttp,
963         fix_trunc<mode>_i387_fisttp_with_temp): New instruction patterns to
964         implement fisttp x87 insn.
965         (fix_trunc*_i387_fisttp splitters): New patterns.
966         (*fix_truncdi_i387, *fix_truncsi_i387, *fix_trunchi_i387):
967         Rename to *fix_trunc<mode>_i387_1.  Implement using mode macros.
968         Disable patterns for TARGET_FISTTP.  Add comment about FLAGS_REG
969         clobber.
970         (fix_truncdi_memory, fix_truncdi_nomemory, fix_trunchi_nomemory):
971         Rename to fix_trunc<mode>_i387 and fix_trunc<mode>_i387_with_temp.
972         Implement using mode macros. Disable patterns for TARGET_FISTTP.
973         (fix_truncsi_memory, fix_truncsi_nomemory, fix_trunchi_memory,
974         fix_trunchi_nomemory): Rename to fix_trunc<mode>_i387 and
975         fix_trunc<mode>_i387_with_temp. Implement using mode macros.
976         Disable patterns for TARGET_FISTTP.
977         (fix_trunc*_i387 splitters): Implement usign mode macros.
978         (fix_truncdfdi_sse, fix_truncsfdi_sse, fix_truncdfsi_sse,
979         fix_truncsfsi_sse): Disable for (TARGET_FISTTP && !TARGET_SSE_MATH).
980         (fix_trunx*_sse peephole2s): Implement using mode macros.
981
982 2005-03-15  J"orn Rennecke <joern.rennecke@st.com>
983
984         PR rtl-optimization/20291
985         * combine.c (try_combine): If splitting fails, re-try with
986         original combined pattern, i.e. before clobber stripping.
987
988 2005-03-14  Eric Christopher  <echristo@redhat.com>
989
990         * config/mips/mips.h (DWARF_CIE_DATA_ALIGNMENT): Change for
991         STACK_GROWS_DOWNWARD.
992
993 2005-03-14  Roger Sayle  <roger@eyesopen.com>
994
995         * real.h (struct real_format): Split the signbit field into two
996         two fields, signbit_ro and signbit_rw.
997         * real.c (ieee_single_format, mips_single_format, ieee_double_format,
998         mips_double_format, ieee_extended_motorola_format,
999         ieee_extended_intel_96_format, ieee_extended_intel_96_round_53_format,
1000         ieee_extended_intel_128_format, ibm_extended_format,
1001         mips_extended_format, ieee_quad_format, mips_quad_format,
1002         vax_f_format, vax_d_format, vax_g_format, i370_single_format,
1003         i370_double_format, c4x_single_format, c4x_extended_format,
1004         real_internal_format): Update initializers for new field.
1005         * builtins.c (expand_builtin_signbit): Use signbit_ro field of the
1006         real_format structure.
1007         * optabs.c (expand_absneg_bit, expand_copysign): Use signbit_rw
1008         field of the real_format structure.
1009
1010 2005-03-14  Daniel Berlin <dberlin@dberlin.org>
1011
1012         Fix PR tree-optimization/20458
1013
1014         * tree-flow-inline.h (mark_call_clobbered): Don't fiddle
1015         DECL_EXTERNAL on STRUCT_FIELD tags.
1016         (clear_call_clobbered): Ditto.
1017         * tree-ssa-operands.c (note_addressable): Make sure the original
1018         variable doesn't slip into the addressable list if we have
1019         subvars.
1020         * tree-tailcall.c (suitable_for_tail_opt_p): Look at STRUCT_FIELD
1021         tags too.
1022
1023 2005-03-14  Geoffrey Keating  <geoffk@apple.com>
1024
1025         * doc/cppopts.texi (-fexec-charset): Add concept index entry.
1026         (-fwide-exec-charset): Likewise.
1027         (-finput-charset): Likewise.
1028         * doc/invoke.texi (Warning Options): Document -Wnormalized=.
1029         * c-opts.c (c_common_handle_option): Handle -Wnormalized=.
1030         * c.opt (Wnormalized): New.
1031
1032 2005-03-14  Devang Patel  <dpatel@apple.com>
1033
1034         * doc/invoke.texi: Add reference to Visibility document.
1035
1036 2005-03-14  Richard Sandiford  <rsandifo@redhat.com>
1037
1038         * config.gcc (mips*-*-*): Rename MASK_SPLIT_ADDRS to
1039         MASK_SPLIT_ADDRESSES.
1040         * config/mips/mips.h (target_flags, mips_fix_vr4130_string): Delete.
1041         (MASK_INT64, MASK_LONG64, MASK_SPLIT_ADDR, MASK_NO_FUSED_MADD)
1042         (MASK_EXPLICIT_RELOCS, MASK_MEMCPY, MASK_SOFT_FLOAT)
1043         (MASK_FLOAT64, MASK_ABICALLS, MASK_XGOT, MASK_LONG_CALLS)
1044         (MASK_64BIT, MASK_EMBEDDED_DATA, MASK_BIG_ENDIAN)
1045         (MASK_SINGLE_FLOAT, MASK_MAD, MASK_4300_MUL_FIX, MASK_MIPS16)
1046         (MASK_NO_CHECK_ZERO_DIV, MASK_BRANCHLIKELY)
1047         (MASK_UNINIT_CONST_IN_RODATA, MASK_FIX_R4000, MASK_FIX_R4400)
1048         (MASK_FIX_SB1, MASK_FIX_VR4120, MASK_VR4130_ALIGN)
1049         (MASK_FP_EXCEPTIONS, MASK_DIVIDE_BREAKS, MASK_PAIRED_SINGLE)
1050         (MASK_MIPS3D, MASK_SYM32, MASK_DEBUG, MASK_DEBUG_D)
1051         (MASK_MIPS_TFILE, TARGET_INT64, TARGET_LONG64, TARGET_FLOAT64)
1052         (TARGET_64BIT, TARGET_SPLIT_ADDRESSES, TARGET_DEBUG_MODE)
1053         (TARGET_DEBUG_D_MODE, TARGET_MEMCPY, TARGET_ABICALLS)
1054         (TARGET_XGOT, TARGET_SOFT_FLOAT, TARGET_HARD_FLOAT)
1055         (TARGET_LONG_CALLS, TARGET_EMBEDDED_DATA)
1056         (TARGET_UNINIT_CONST_IN_RODATA, TARGET_BIG_ENDIAN)
1057         (TARGET_SINGLE_FLOAT, TARGET_DOUBLE_FLOAT, TARGET_MAD)
1058         (TARGET_FUSED_MADD, TARGET_4300_MUL_FIX, TARGET_CHECK_ZERO_DIV)
1059         (TARGET_DIVIDE_TRAPS, TARGET_BRANCHLIKELY, TARGET_FIX_SB1)
1060         (TARGET_FIX_R4000, TARGET_FIX_R4400, TARGET_FIX_VR4120)
1061         (TARGET_FIX_VR4130, TARGET_VR4130_ALIGN, TARGET_FP_EXCEPTIONS)
1062         (TARGET_PAIRED_SINGLE_FLOAT, TARGET_MIPS3D, TARGET_SYM32)
1063         (TARGET_EXPLICIT_RELOCS): Delete.
1064         (TARGET_SWITCHES, SUBTARGET_TARGET_SWITCHES): Delete.
1065         (TARGET_OPTIONS): Remove entry for -mfix-vr4130.
1066         * config/mips/mips.c (TARGET_DEFAULT_TARGET_FLAGS): Define.
1067         (override_options): Set MASK_LONG64 if -mint64 is given and no
1068         -mlongXX option is.  Complain about -mint64 -mlong32.
1069         (override_options, CMP_BUILTINS, mips_bdesc, sb1_desc): Rename
1070         MASK_PAIRED_SINGLE to MASK_PAIRED_SINGLE_FLOAT.
1071         * config/mips/mips.opt: New file.
1072
1073 2005-03-14  Richard Sandiford  <rsandifo@redhat.com>
1074
1075         * config.gcc (extra_options): New variable for listing option files.
1076         Add ${cpu_type}/${cpu_type}.opt to it if that file exists.
1077         * configure.ac (extra_opt_files): New AC_SUBST variable.
1078         (tm_file_list, tm_include_list): Include options.h first.
1079         * configure: Regenerate.
1080         * Makefile.in (extra_opt_files, ALL_OPT_FILES): New variables.
1081         (s-options): Use $(ALL_OPT_FILES) instead of $(lang_opt_files)
1082         (s-options-h): New rule.
1083         (options.h): Depend on it.
1084         (TEXI_GCCINT_FILES): Add options.texi.
1085         * hooks.h (hook_bool_size_t_constcharptr_int_true): Declare.
1086         * hooks.c (hook_bool_size_t_constcharptr_int_true): New function.
1087         * target.h (gcc_target): Add default_target_flags and handle_option.
1088         * target-def.h (TARGET_DEFAULT_TARGET_FLAGS)
1089         (TARGET_HANDLE_OPTION): New macros.
1090         (TARGET_INITIALIZER): Include them.
1091         * opt-functions.awk (opt_args, nth_arg): New functions.
1092         (switch_flags): Handle the "Target" flag.
1093         (var_args): Delete.
1094         (var_name): Use opt_args and nth_arg.
1095         (var_set, var_ref): Likewise.  Handle "Mask" and "InverseMask".
1096         * opth-gen.awk: Declare target_flags.  Declare MASK_* and TARGET_*
1097         macros for the "Mask" and "InverseMask" options.
1098         * opts.h (cl_var_cond): New enum.
1099         (cl_option): Replace the "has_set_value" and "set_value" fields with
1100         "var_cond" and "var_value".
1101         (CL_TARGET): New macro.
1102         (option_enabled, print_filtered_help): Declare.
1103         (decode_options): Move definition.
1104         * opts.c (handle_option): Search for the original option before
1105         removing any "no-" prefix.  Handle CL_TARGET.  Adjust for the new
1106         var_cond and var_value fields.  Use targetm.handle_option to handle
1107         target options.
1108         (decode_options): Set target_flags to targetm.default_target_flags.
1109         (print_filtered_help): Make global.  Handle CL_TARGET.
1110         (option_enabled): New function.
1111         * toplev.c (target_switches): Guard with #ifdef TARGET_SWITCHES.
1112         (display_target_options, set_target_switch, print_switch_values)
1113         (default_pch_valid_p): Guard uses of target_switches with
1114         #ifdef TARGET_SWITCHES.  Also...
1115         (display_target_options): Display the CL_TARGET entries in cl_options.
1116         (set_target_option): Don't complain about the "" option when
1117         TARGET_SWITCHES is undefined.
1118         (print_switch_values): Use option_enabled.
1119         (default_pch_valid_p): Check cl_options[] when looking for something
1120         that has changed the value of target_flags.
1121         * c.opt: Remove documentation from top of file.
1122         * doc/gccint.texi: Add an "Options" chapter.  Include options.texi.
1123         * doc/sourecebuild.texi: Refer to the new options documentation
1124         instead of c.opt.  Document machine-specific .opt files.
1125         * doc/tm.texi (target_flags): Say that this variable is declared
1126         by options.h.
1127         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Document.
1128         (TARGET_SWITCHES, TARGET_OPTIONS): Refer to the option files as
1129         an alternative.
1130         * doc/options.texi: New file.
1131
1132 2005-03-14  Alexandre Oliva  <aoliva@redhat.com>
1133
1134         PR middle-end/18628
1135         * cse.c (fold_rtx_mem): Don't fold a load from a jumptable into a
1136         register.
1137
1138 2005-03-14  Alexandre Oliva  <aoliva@redhat.com>
1139
1140         PR c++/20280
1141         * gimplify.c (gimplify_cond_expr): Add fallback argument.  Use a
1142         temporary variable of pointer type if an lvalues is required.
1143         (gimplify_modify_expr_rhs): Request an rvalue from it.
1144         (gimplify_expr): Pass fallback on.
1145
1146 2005-03-14  Kazu Hirata  <kazu@cs.umass.edu>
1147
1148         * cfgbuild.c: Update comments.
1149
1150 2005-03-14  Roger Sayle  <roger@eyesopen.com>
1151
1152         PR rtl-optimization/17236
1153         * optabs.c (expand_doubleword_mult): New helper function split out
1154         from expand_binop.  Permute the order in which instructions are
1155         emitted to minimize the number of simultaneously live registers.
1156         (expand_binop): Call expand_doubleword_mult to synthesize a double
1157         word multiplication.
1158
1159 2005-03-14  Kazu Hirata  <kazu@cs.umass.edu>
1160
1161         * basic-block.h: Update the prototypes of cached_make_edge and
1162         rtl_make_eh_edge.
1163         * cfg.c (cached_make_edge): Take edge_cache representing one
1164         row of the adjacency matrix of edges.
1165         * cfgbuild.c (make_label_edge, rtl_make_eh_edge): Likewise.
1166         (make_edges): Initialize edge_cache to represent one row of
1167         the adjacency matrix of edges.
1168
1169 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
1170
1171         * tree-ssa-phiopt.c (minmax_replacement, blocks_in_phiopt_order):
1172         New functions.
1173         (tree_ssa_phiopt): Use blocks_in_phiopt_order and minmax_replacement.
1174         Remove unused removed_phis variable.
1175         (conditional_replacement): Use build1/build2.
1176         (abs_replacement): Use last_and_only_stmt and build1/build2.
1177
1178 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
1179
1180         * builtin-attrs.def (ATTR_NOVOPS, ATTR_NOVOPS_LIST,
1181         ATTR_PURE_NOTHROW_NOVOPS_LIST): New.
1182         * builtins.def (ATTR_MATHFN_FPROUNDING): Use NOVOPS.
1183         (BUILT_IN_PREFETCH): Set the NOVOPS attribute.
1184         * c-common.c (handle_novops_attribute): New function.
1185         (c_common_attribute_table): Add "no vops" entry.
1186         * c-decl.c (merge_decls): Copy DECL_IS_NOVOPS.
1187         * calls.c (flags_from_decl_or_type): Set ECF_NOVOPS.
1188         * tree-ssa-operands.c (get_call_expr_operands): Do not
1189         create virtual operands for calls with ECF_NOVOPS flag.
1190         * tree.h (DECL_IS_NOVOPS): New macro.
1191         (struct tree_decl): Add novops_flag.
1192         (ECF_NOVOPS): New constant.
1193
1194 2005-03-14  Uros Bizjak  <uros@kss-loka.si>
1195
1196         PR target/17688
1197         * config/i386/i386.c (x86_use_himode_fiop): New.
1198         (x86_use_simode_fiop): Rename from x86_use_fiop.
1199         * config/i386/i386.h (x86_use_himode_fiop): Declare.
1200         (TARGET_USE_HIMODE_FIOP): New.
1201         (x86_use_simode_fiop): Rename from x86_use_fiop.
1202         (TARGET_USE_SIMODE_FIOP): Rename from TARGET_USE_FIOP.
1203
1204         * config/i386/i386.md (X87MODEI12): New mode macro define.
1205         (*cmpfp_<mode>): Rename from *cmpfp_si.  Use X87MODEI12 mode macro
1206         to implement x87 FP compare with HImode input operands.
1207         (*fp_jcc_8<mode>_387, splitter): Rename from *fp_jcc_8_387.
1208         Use X87MODEI12 mode macro to handle HImode input operands.
1209         (*fop_sf_2<mode>_i387, *fop_sf_3<mode>_i387, *fop_df_2<mode>_i387,
1210         *fop_df_3<mode>_i387, *fop_xf_2<mode>_i387, *fop_xf_3<mode>_i387):
1211         Renamed from *fop_sf_2_i387, *fop_sf_3_i387, *fop_df_2_i387,
1212         *fop_df_3_i387, *fop_xf_2_i387, *fop_xf_3_i387. Use X87MODEI12 mode
1213         macro to implement x87 operators with HImode input operands.
1214         (fop splitters): Use X87MODEI12 mode macro to handle HImode
1215         input operands.
1216
1217 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
1218
1219         * tree-cfg.c (find_taken_edge_cond_expr): Use zero_p instead of
1220         integer_zerop.
1221         * tree-gimple.c (is_gimple_min_invariant): Consider overflowed
1222         constants invariant.
1223
1224 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
1225
1226         * basic-block.h (BB_VISITED): Removed.
1227         * cfganal.c (dfs_enumerate_from): Do not use BB_VISITED flag.
1228
1229 2005-03-14  Falk Hueffner  <falk@debian.org>
1230
1231         PR bootstrap/20424
1232         * config/alpha/alpha.c (alpha_fold_builtin_cmpbge): Fix typo.
1233
1234 2005-03-14  Kazu Hirata  <kazu@cs.umass.edu>
1235
1236         * ggc-zone.c: Fix comment typos.
1237
1238         * alloc-pool.c, except.h, ggc-common.c, ggc-zone.c, ggc.h,
1239         stringpool.c, config/mips/mips-protos.h: Update copyright.
1240
1241 2005-03-14  Alan Modra  <amodra@bigpond.net.au>
1242
1243         * config/rs6000/rs6000-protos.h: Replace "struct rtx_def *"
1244         throughout with its typedef, "rtx".
1245         * config/rs6000/rs6000.c: Likewise.  Formatting fixes.
1246         (rs6000_tls_symbol_ref_1): Remove inline keyword.
1247         * config/rs6000/rs6000.h (REG_ALLOC_ORDER): Formatting.  Reorder
1248         regs in comment to match code.
1249
1250 2005-03-14  Kazu Hirata  <kazu@cs.umass.edu>
1251
1252         * except.c (check_handled): Make it static.
1253         * except.h: Remove the corresponding prototype.
1254
1255         * function.c (get_func_frame_size): Make it static.
1256         * function.h: Remove the corresponding type.
1257
1258         * regclass.c (reg_class_superclasses, reg_class_subclasses):
1259         Make them static.
1260         * hard-reg-set.h: Remove the corresponding declarations.
1261
1262         * tree-cfg.c (verify_stmts): Check that
1263         bb_for_stmt (stmt) == bb for every PHI node and statement.
1264
1265 2005-03-14  Alan Modra  <amodra@bigpond.net.au>
1266
1267         * config.gcc: Remove excess indentation.
1268         (powerpc*-*-*, rs6000-*-*): Accept --with-cpu/tune power5 and 8548.
1269
1270 2005-03-13  Roger Sayle  <roger@eyesopen.com>
1271
1272         PR middle-end/19331
1273         * tree.c (get_unwidened): Treat CONVERT_EXPR and NOP_EXPR identically.
1274         * fold-const.c (fold_sign_changed_comparison): Likewise.
1275         (fold_binary): Optimize comparisons against widened operands if
1276         the extension is represented by a CONVERT_EXPR, same as a NOP_EXPR.
1277
1278 2005-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
1279
1280         * config/sparc/sparc.c (struct_value_alias_set): New global variable.
1281         (sparc_override_options): Initialize it.
1282         (sparc_struct_value_rtx): Set it on the MEM to be returned.
1283
1284 2005-03-13  David Edelsohn  <edelsohn@gnu.org>
1285
1286         * config/rs6000/predicates.md (mem_or_easy_const_operand): Delete.
1287         (reg_or_none500mem_operand): New predicate.
1288         (zero_reg_mem_operand): New predicate.
1289         * config/rs6000/rs6000.md (extendsfdf2): Change operand1 predicate
1290         to reg_or_none500mem_operand.
1291         (extendsfdf2_fpr): Add MEM alternative.
1292         (extenddftf2_internal): Change operand2 predicate to
1293         zero_reg_mem_operand.
1294
1295 2005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>
1296
1297         * ggc-zone.c: Rewritten.
1298
1299         * alloc-pool.c (dump_alloc_pool_statistics): Don't print statistics
1300         if there are none.
1301         * configure.ac: Define GGC_ZONE for --with-gc=zone.
1302         * config.in: Regenerated.
1303         * configure: Regenerated.
1304         * gengtype.c (write_types_process_field, write_func_for_structure):
1305         Pass new argument to gt_pch_note_object.
1306         * ggc-common.c (struct ptr_data): Add TYPE.
1307         (gt_pch_note_object): Take TYPE argument and save it.
1308         (call_count): Update call to ggc_pch_count_object.
1309         (call_alloc): Update call to ggc_pch_alloc_object.
1310         (gt_pch_save): Call ggc_pch_prepare_write after paddng the PCH
1311         file.
1312         * ggc-none.c (rtl_zone, garbage_zone, ggc_alloc_zone_stat): Delete.
1313         * ggc-page.c (rtl_zone, tree_zone, garbage_zone)
1314         (ggc_alloc_zone_stat): Delete.
1315         (ggc_pch_count_object, ggc_pch_alloc_object): Add TYPE argument.
1316         * ggc.h (gt_pch_note_object, ggc_pch_count_object)
1317         (ggc_pch_alloc_object): Update prototypes.
1318         (garbage_zone): Delete.
1319         (tree_zone, rtl_zone, ggc_alloc_zone_stat, ggc_alloc_zone): Move to
1320         GGC_ZONE conditional.  Update.  Change tree_zone and rtl_zone into
1321         pointers.
1322         (tree_id_zone): New variable.
1323         (ggc_alloc_cleared_zone): Remove unused.
1324         (ggc_alloc_zone): Define.
1325         (ggc_alloc_rtvec, ggc_alloc_tree): Update to use ggc_alloc_zone.
1326         * rtl.c (rtx_alloc_stat, shallow_copy_rtx_stat): Use
1327         ggc_alloc_zone_stat.
1328         * stringpool.c (gt_pch_n_S): Update call to gt_pch_note_object.
1329         * tree.c (copy_node_stat, make_tree_binfo_stat, make_tree_vec_stat)
1330         (tree_cons_stat, build1_stat): Update call to ggc_alloc_zone_stat.
1331         (make_node_stat): Likewise.  Use tree_id_zone.
1332
1333 2005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>
1334             Joseph S. Myers  <joseph@codesourcery.com>
1335
1336         * configure.ac: Check for MIPS TLS.
1337         * configure: Regenerated.
1338         * config/mips/mips-protos.h (enum mips_symbol_type): Add
1339         SYMBOL_TLS, SYMBOL_TLSGD, SYMBOL_TLSLDM, SYMBOL_DTPREL,
1340         SYMBOL_GOTTPREL, and SYMBOL_TPREL.
1341         * config/mips/mips.c (mips_regno_to_class): Handle V1_REG.
1342         (TARGET_HAVE_TLS, TARGET_CANNOT_FORCE_CONST_MEM): Define.
1343         (mips_classify_symbol, mips_symbolic_constant_p)
1344         (mips_symbolic_address_p, mips_symbol_insns): Handle TLS symbols.
1345         (mips_tls_operand_p, mips_call_tls_get_addr)
1346         (mips_legitimize_tls_address, mips_cannot_force_const_mem)
1347         (mips_tls_symbol_ref_1): New functions.
1348         (mips_legitimize_address, mips_legitimize_const_move): Call
1349         mips_legitimize_tls_address.
1350         (override_options): Handle V1_REG and TLS symbols.  Disable TLS
1351         for MIPS16.
1352         * config/mips/mips.h (enum reg_class, REG_CLASS_NAMES)
1353         (REG_CLASS_CONTENTS, GR_REG_CLASS_P): Include V1_REG.
1354         (mips_char_to_class): Document V1_REG.
1355         (HAVE_AS_TLS): Provide default.
1356         * config/mips/mips.md (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): New
1357         constants.
1358         (load_got<mode>): Renamed from *load_got<mode>.  Allow when
1359         !TARGET_ABICALLS.
1360         (tls_get_tp_<mode>): New instruction.
1361
1362 2005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>
1363
1364         * configure.ac: Update checks for target tools.
1365         * configure: Regenerated.
1366
1367 2005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>
1368
1369         * varasm.c (decl_tls_model): Check flag_shlib instead of flag_pic.
1370
1371 2005-03-13  Roger Sayle  <roger@eyesopen.com>
1372
1373         * expmed.c (expand_mult): Use synthetic multiplication sequences for
1374         more classes of DImode multiplication by constant.  Allow both
1375         multiplication by small negative constants (by performing a
1376         multiplication by a positive constant and negating the result) and
1377         multiplications by large powers of two, by using a left shift.
1378
1379 2005-03-13  Kazu Hirata  <kazu@cs.umass.edu>
1380
1381         * tree-into-ssa.c (find_idf): Speed up by putting the indexes
1382         of basic blocks into work_stack.
1383
1384         * builtin-attrs.def, c-lex.c, c-pragma.h, reg-stack.c,
1385         config/mips/vr.h: Update copyright.
1386
1387         * c-decl.c (c_init_decl_processing): Remove useless calls to
1388         build_function_type.
1389
1390         * builtins.c (fold_trunc_transparent_mathfn,
1391         fold_fixed_mathfn, fold_builtin_atan, fold_builtin_trunc,
1392         fold_builtin_floor, fold_builtin_ceil, fold_builtin_round,
1393         fold_builtin_lround, fold_builtin_bitop, fold_builtin_memcpy,
1394         fold_builtin_strcpy, fold_builtin_strncpy,
1395         fold_builtin_signbit): Use TYPE (TYPE (fndecl)) instead of
1396         TREE_TYPE (exp).
1397
1398         * builtins.c (expand_builtin_mathfn_3): Remove local variable
1399         before_call.
1400
1401         * lambda-code.c (lambda_compute_auxillary_space): Remove local
1402         variable determinant.
1403
1404         * tree-cfg.c (group_case_labels): Remove local variable type.
1405
1406         * tree-ssa-live.c (build_tree_conflict_graph): Remove local
1407         variable ann.
1408
1409         * tree-ssa-phiopt.c (value_replacement): Remove local variable
1410         result.
1411
1412 2005-03-13  Andy Hutchinson  <HutchinsonAndy@netscape.net>
1413
1414         PR target/18251
1415         * config/avr/avr.md (movmemhi): Rewrite as RTL loop.
1416         (*movmemqi_insn): Delete.
1417         (*movmemhi): Delete.
1418
1419 2005-03-13  Kazu Hirata  <kazu@cs.umass.edu>
1420
1421         * builtins.c (fold_builtin_classify): Take decomposed
1422         arguments of CALL_EXPR.
1423         (fold_builtin_1): Update a call to fold_builtin_classify.
1424
1425 2005-03-13  Joseph S. Myers  <joseph@codesourcery.com>
1426
1427         PR c/20402
1428         * c-parser.c (c_parser_struct_or_union_specifier): Don't fall
1429         through into call to parser_xref_tag after parse error.
1430         (c_parser_struct_declaration): Consistently return NULL_TREE on
1431         error.
1432
1433 2005-03-12  Daniel Berlin  <dberlin@dberlin.org>
1434
1435         * tree-flow-inline.h (ref_contains_array_ref): New function.
1436         (lookup_subvars_for_var): Ditto.
1437         (get_subvars_for_var): Ditto.
1438         (var_can_have_subvars): Ditto.
1439
1440         * tree-flow.h (mem_tag_kind): Add STRUCT_FIELD.
1441         (struct subvar): New type.
1442
1443         * tree-dfa.c (okay_component_ref_for_subvars): New function.
1444
1445         * tree-optimize.c (init_tree_optimization_passes): Call
1446         pass_create_structure_vars.
1447
1448         * tree-ssa-alias.c: Include vec.h.
1449         (init_alias_info): Don't auto-clear call clobbered on struct-field
1450         tags.
1451         (compute_flow_insensitive_aliasing): Handle subvars.
1452         (group_aliases): Handle STRUCT_FIELD aliases.
1453         (setup_pointers_and_addressables): Ditto.
1454         Don't mark variables non-addressable if they still have
1455         addressable subvars.
1456         Also mark subvars addressable when the real variable is marked
1457         addressable.
1458         (add_pointed_to_var): Try to prune the pointed-to set by only
1459         pointing to subvars when possible.
1460         Otherwise, make sure we set addresses_needed and pt_vars to
1461         properly include subvars.
1462         (bitpos_of_field): New function.
1463         (push_fields_onto_fieldstack): Ditto.
1464         (get_or_create_used_part_for): Ditto.
1465         (create_overlap_variables_for): Ditto.
1466         (find_used_portions): Ditto.
1467         (create_structure_vars): Ditto.
1468         (pass_create_structure_vars): New structure.
1469
1470         * tree-ssa-operands.c (finalize_ssa_v_must_defs): Remove assert.
1471         (get_expr_operands): Handle subvars.  Also try to turn
1472         COMPONENT_REF accesses into must-defs now that we can accurately
1473         portray it.
1474         (note_addressable): Try to only mark as addressable those subvars
1475         we know a COMPONENT_REF touches.
1476         (overlap_subvar): New function.
1477
1478         * tree-vect-analyze.c (vect_object_analysis): Add new parameter.
1479         Handle subvar storing.
1480         (vect_address_analysis): Update caller of vect_object_analysis.
1481
1482         * tree-vect-transform.c (vect_create_data_ref_ptr): Copy subvars.
1483
1484         * tree-vectorizer.h (struct _stmt_vec_info): Add subvars member.
1485         (STMT_VINFO_SUBVARS): New macro.
1486
1487         * common.opts: add flag_tree_salias.
1488
1489         * opts.c (decode_options): flag_tree_salias defaults to on.
1490
1491         * doc/invoke.texi: Document fdump-tree-svars and -ftree-salias.
1492
1493         * doc/tree-ssa.texi: Document structural alias analysis.
1494
1495 2005-03-12  Steven Bosscher  <stevenb@suse.de>
1496
1497         * tree-cfg.c (make_goto_expr_edges): Don't use error_mark_node.
1498         * tree-ssa-dce.c (mark_stmt_necessary): Don't check for it.
1499         * tree-ssa-operands.c (get_expr_operands): Likewise.
1500         (get_expr_operands): Likewise for ERROR_MARK.
1501
1502 2005-03-12  Kazu Hirata  <kazu@cs.umass.edu>
1503
1504         * tree-ssa.c (kill_redundant_phi_nodes): Remove local variable
1505         var.
1506
1507         * tree-ssa-phiopt.c (tree_ssa_phiopt): Remove local variable
1508         removed_phis.
1509
1510         * tree-ssa-pre.c (compute_avail): Remove local variable val.
1511         (mark_operand_necessary): Remove local variable ver.
1512
1513         * tree-vect-transform.c (vect_get_new_vect_var): Remove local
1514         variable prefix_len.
1515
1516         * value-prof.c (mod_subtract_transform): Remove local variable
1517         value.
1518
1519         * builtins.c (fold_builtin_exponent): Take decomposed
1520         arguments of CALL_EXPR.
1521         (fold_builtin_1): Update a call to fold_builtin_exponent.
1522
1523         * builtins.c (fold_builtin_logarithm): Take decomposed
1524         arguments of CALL_EXPR.
1525         (fold_builtin_1): Update a call to fold_builtin_logarithm.
1526
1527         * c-decl.c (c_init_decl_processing): Remove local variables
1528         ptr_ftype_void and ptr_ftype_ptr.
1529
1530         * gimplify.c (gimplify_expr): Remove local variables r0 and
1531         r1.
1532
1533         * reg-stack.c (move_for_stack_reg): Remove local variable
1534         push_insn.
1535         (compare_for_stack_reg): Remove local variable flags_user.
1536         (convert_regs_1): Remove local variable deleted.
1537
1538         * tree-if-conv.c (tree_if_convert_cond_expr): Remove local
1539         variable new_cond.
1540         (combine_blocks): Remove local variables exits and new_e.
1541
1542         * tree-inline.c (expand_call_inline): Remove local variable
1543         decl.
1544
1545         * tree-ssa-live.c (create_ssa_var_map,
1546         calculate_live_on_entry): Remove local variable snn.
1547
1548 2005-03-12  Geoffrey Keating  <geoffk@apple.com>
1549
1550         * c-lex.c (c_lex_with_flags): Add parameter to call to
1551         cpp_spell_token.
1552
1553 2005-03-11  Per Bothner  <per@bothner.com>
1554
1555         * c-tree.h (struct c_declarator): New id_loc field.
1556         * c-pragma.h (c_lex_with_flags): Take position reference.
1557         * c-lex.c (c_lex_with_flags): Set passed-in location from cpp token,
1558         iff USE_MAPPED_LOCATION. (Type doesn't match otherwise.)
1559         (c_lex): Pass dummy location to c_lex_with_flags.
1560         * c-parser.c (c_lex_one_token): Set c_token's location using
1561         c_lex_with_flags, instead of input_location, which might be "ahead".
1562         (c_parser_direct_declarator): Set declarator's id_loc from
1563         c_token's id_loc.
1564         * c-decl.c (grokdeclarator): Set DECL_SOURCE_LOCATION from
1565         declarator's id_loc, rather than probably-imprecise input_location.
1566         (build_id_declarator): Initialize c_declarator's id_loc field.
1567
1568 2005-03-11  Roger Sayle  <roger@eyesopen.com>
1569
1570         PR middle-end/20419
1571         * builtins.c (expand_builtin_signbit): Force the signbit's word
1572         into an integer register to avoid SUBREGs of floating point modes.
1573
1574 2005-03-12  Kazu Hirata  <kazu@cs.umass.edu>
1575
1576         * cfglayout.c, loop-doloop.c, profile.c, target-def.h,
1577         target.h, targhooks.c, tracer.c, tree-ssa-loop-ch.c,
1578         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, vec.c, vmsdbgout.c,
1579         config/m32r/m32r.md, config/xtensa/xtensa.h: Update copyright.
1580
1581 2005-03-11  David Edelsohn  <edelsohn@gnu.org>
1582
1583         PR rtl-optimization/20306
1584         * expr.c (emit_move_complex): Set try_int false if mode is
1585         MODE_COMPLEX_FLOAT and mov_optab exists for inner mode.  Only try
1586         emit_block_move if try_int is true.
1587
1588 2005-03-11  Richard Henderson  <rth@redhat.com>
1589
1590         PR target/20415
1591         * config/i386/mmx.md (vec_dupv4hi): Fix predicate.
1592         * config/i386/i386.c (ix86_expand_vector_init_duplicate): Update
1593         to match.
1594
1595 2005-03-11  Richard Sandiford  <rsandifo@redhat.com>
1596
1597         * config/mips/mips.h (mips_fix_vr4130_string): Declare.
1598         (TARGET_FIX_VR4130): New macro.
1599         (TARGET_OPTIONS): Add -mfix-vr4130.
1600         (ISA_HAS_MACCHI): New macro.
1601         (ASM_SPEC): Add -mfix-vr4130.
1602         * config/mips/mips.c (mips_fix_vr4130_string): New variable.
1603         (override_options): Handle mips_fix_vr4130_string.
1604         (mips_avoid_hazards): Clear all_noreorder_p
1605         if we're working around VR4130 errata and the macc alternatives
1606         are not available.
1607         * config/mips/mips.md (mfhilo_<mode>): Turn into a define_expand.
1608         (*mfhilo_<mode>, *mfhilo_<mode>_macc): New insns.
1609         * config/mips/vr.h (DEFAULT_VR_ARCH): Set to mfix-vr4130.
1610         (MULTILIB_DEFAULTS): Remove leading "march=".
1611         (DRIVER_SELF_SPECS): Likewise.  Make -mfix-vr4130 imply -march=vr4130
1612         if no architecture option is given.
1613         * config/mips/t-vr (MULTILIB_OPTIONS): Use -mfix-vr4130 for the
1614         VR4130 multilibs.
1615         (MULTILIB_MATCHES): Map -march=vr4130 to the -mfix-vr4130 multilibs.
1616         * doc/invoke.texi: Document -mfix-vr4130.
1617
1618 2005-03-11  Richard Sandiford  <rsandifo@redhat.com>
1619
1620         * config/mips/mips.c (override_options): Only warn about -mint64
1621         deprecation if TARGET_INT64.
1622
1623 2005-03-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1624
1625         * builtin-attrs.def (ATTR_NONNULL_LIST, ATTR_NOTHROW_NONNULL,
1626         ATTR_CONST_NOTHROW_NONNULL, ATTR_PURE_NOTHROW_NONNULL,
1627         ATTR_MALLOC_NOTHROW_NONNULL): New "nonnull" attribute lists which
1628         are non-specific regarding the nonnull parameter positions.
1629         (ATTR_NONNULL_1_2, ATTR_NONNULL_1_4, ATTR_NOTHROW_NONNULL_1_2,
1630         ATTR_NOTHROW_NONNULL_1_4, ATTR_CONST_NOTHROW_NONNULL_1,
1631         ATTR_PURE_NOTHROW_NONNULL_1, ATTR_PURE_NOTHROW_NONNULL_1_2,
1632         ATTR_MALLOC_NOTHROW_NONNULL_1): Delete.
1633
1634         * builtins.def: Use the non-specific "nonnull" attibute lists.
1635
1636 2005-03-11  Zdenek Dvorak  <dvorakz@suse.cz>
1637
1638         * basic-block.h (single_succ_p, single_pred_p, single_succ_edge,
1639         single_pred_edge, single_succ, single_pred): Improve comments.
1640
1641 2005-03-11  Zdenek Dvorak  <dvorakz@suse.cz>
1642
1643         * basic-block.h (single_succ_p, single_pred_p, single_succ_edge,
1644         single_pred_edge, single_succ, single_pred): New inline functions.
1645         * bb-reorder.c (rotate_loop, find_traces_1_round,
1646         add_labels_and_missing_jumps, fix_up_fall_thru_edges,
1647         duplicate_computed_gotos): Use the single_succ/pred functions.
1648         * cfganal.c (forwarder_block_p): Ditto.
1649         * cfgbuild.c (compute_outgoing_frequencies): Ditto.
1650         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
1651         outgoing_edges_match, try_crossjump_to_edge, try_optimize_cfg,
1652         merge_seq_blocks): Ditto.
1653         * cfghooks.c (split_edge, tidy_fallthru_edges): Ditto.
1654         * cfglayout.c (fixup_reorder_chain): Ditto.
1655         * cfgloop.c (mark_single_exit_loops, update_latch_info,
1656         canonicalize_loop_headers, verify_loop_structure): Ditto.
1657         * cfgloopmanip.c (remove_path, unloop, loop_delete_branch_edge,
1658         mfb_update_loops, create_preheader, force_single_succ_latches,
1659         create_loop_notes): Ditto.
1660         * cfgrtl.c (rtl_can_merge_blocks, try_redirect_by_replacing_jump,
1661         force_nonfallthru_and_redirect, rtl_tidy_fallthru_edge,
1662         commit_one_edge_insertion, purge_dead_edges,
1663         cfg_layout_can_merge_blocks_p): Ditto.
1664         * except.c (sjlj_emit_function_enter): Ditto.
1665         * flow.c (init_propagate_block_info): Ditto.
1666         * function.c (thread_prologue_and_epilogue_insns): Ditto.
1667         * gcse.c (find_implicit_sets, bypass_conditional_jumps,
1668         insert_insn_end_bb): Ditto.
1669         * ifcvt.c (merge_if_block, find_if_block, find_if_case_1,
1670         find_if_case_2): Ditto.
1671         * lambda-code.c (perfect_nestify): Ditto.
1672         * lcm.c (optimize_mode_switching): Ditto.
1673         * loop-doloop.c (doloop_modify): Ditto.
1674         * loop-init.c (loop_optimizer_init): Ditto.
1675         * loop-iv.c (simplify_using_initial_values): Ditto.
1676         * loop-unroll.c (unroll_loop_runtime_iterations): Ditto.
1677         * loop-unswitch.c (unswitch_loop): Ditto.
1678         * modulo-sched.c (generate_prolog_epilog): Ditto.
1679         * predict.c (combine_predictions_for_insn, estimate_probability,
1680         tree_estimate_probability, last_basic_block_p,
1681         estimate_bb_frequencies): Ditto.
1682         * profile.c (branch_prob): Ditto.
1683         * regrename.c (copyprop_hardreg_forward): Ditto.
1684         * sched-rgn.c (is_cfg_nonregular, find_rgns, update_live): Ditto.
1685         * tracer.c (layout_superblocks): Ditto.
1686         * tree-cfg.c (tree_can_merge_blocks_p, tree_merge_blocks,
1687         cfg_remove_useless_stmts_bb, cleanup_control_flow,
1688         cleanup_control_expr_graph, disband_implicit_edges,
1689         tree_find_edge_insert_loc, bsi_commit_edge_inserts,
1690         tree_verify_flow_info, tree_make_forwarder_block,
1691         tree_forwarder_block_p, remove_forwarder_block,
1692         remove_forwarder_block_with_phi, merge_phi_nodes): Ditto.
1693         * tree-if-conv.c (tree_if_conversion): Ditto.
1694         * tree-mudflap.c (mf_build_check_statement_for): Ditto.
1695         * tree-ssa-dce.c (remove_dead_stmt): Ditto.
1696         * tree-ssa-dom.c (dom_opt_finalize_block): Ditto.
1697         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p,
1698         copy_loop_headers): Ditto.
1699         * tree-ssa-loop-im.c (loop_commit_inserts): Ditto.
1700         * tree-ssa-loop-ivopts.c (compute_phi_arg_on_exit): Ditto.
1701         * tree-ssa-loop-manip.c (split_loop_exit_edge, ip_normal_pos,
1702         lv_adjust_loop_entry_edge, tree_ssa_loop_version): Ditto.
1703         * tree-ssa-loop-niter.c (simplify_using_initial_conditions): Ditto.
1704         * tree-ssa-loop-unswitch.c (simplify_using_entry_checks): Ditto.
1705         * tree-ssa-phiopt.c (tree_ssa_phiopt, value_replacement): Ditto.
1706         * tree-ssa-pre.c (compute_antic_aux, insert_aux, init_pre): Ditto.
1707         * tree-ssa-threadupdate.c (redirect_edges): Ditto.
1708         * tree-tailcall.c (independent_of_stmt_p, find_tail_calls,
1709         eliminate_tail_call, tree_optimize_tail_calls_1): Ditto.
1710         * tree-vect-analyze.c (vect_analyze_loop_form): Ditto.
1711         * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Ditto.
1712         * tree-vectorizer.c (slpeel_update_phi_nodes_for_guard,
1713         slpeel_add_loop_guard): Ditto.
1714
1715 2005-03-11  James A. Morrison  <phython@gcc.gnu.org>
1716
1717         PR tree-optimization/15784
1718         * fold-const.c (fold): Fold ~A + 1 to -A.  Fold -A - 1
1719         and -1 - A to ~A.
1720
1721         * stmt.c (expand_case): Don't change index_type.  Convert minval
1722         to the proper type.
1723
1724         PR tree-optimization/20130
1725         * fold-const.c (fold): Fold x * -1 into -x.
1726
1727 2005-03-11  Kaz Kojima  <kkojima@gcc.gnu.org>
1728
1729         PR rtl-optimization/20331
1730         * rtlanal.c (modified_between_p): Check its address first for MEM.
1731         (modified_in_p): Likewise.
1732
1733 2005-03-11  Joseph S. Myers  <joseph@codesourcery.com>
1734
1735         * config.gcc (hppa*64*-*-hpux11*): Use pa/t-hpux-shlib.
1736
1737 2005-03-10  Steven Bosscher  <stevenb@suse.de>
1738
1739         * expr.c (expand_expr_real_1): If possible, use a conditional
1740         move for expanding MIN_EXPR and MAX_EXPR.
1741         Use temp for moving around rtx-en.
1742
1743 2005-03-10  Andrew Pinski  <pinskia@physics.uc.edu>
1744
1745         PR rtl-opt/20412
1746         * simplify-rtx.c (simplify_relational_operation_1): Fix typo - check the
1747         correct mode.
1748
1749 2005-03-10  Roger Sayle  <roger@eyesopen.com>
1750
1751         * builtins.c (expand_builtin_signbit): Extend to handle floating
1752         point modes wider than the largest integer type, using the
1753         operand_subword_force function to obtain the signbit's word.
1754
1755 2005-03-10  Jakub Jelinek  <jakub@redhat.com>
1756
1757         PR target/20322
1758         * combine.c (try_combine): If recog_for_combine added CLOBBERs
1759         to NEWI2PAT, fail to combine if they are used by NEWPAT.
1760
1761 2005-03-10  Aldy Hernandez  <aldyh@redhat.com>
1762
1763         * doc/invoke.texi: Add 8540 to list of cpus in rs6000 cpu section.
1764
1765 2005-03-10  Kazu Hirata  <kazu@cs.umass.edu>
1766
1767         * tree-outof-ssa.c (analyze_edges_for_bb): Make the return
1768         type void.
1769         (perform_edge_inserts): Unconditionally call
1770         free_dominator_info.
1771
1772         * tree-outof-ssa.c (analyze_edges_for_bb): Update a comment.
1773
1774 2005-03-10  Bob Wilson  <bob.wilson@acm.org>
1775
1776         * config/xtensa/xtensa.h (MEMBER_TYPE_FORCES_BLK): Define.
1777
1778 2005-03-10  Nathan Sidwell  <nathan@codesourcery.com>
1779
1780         * bitmap.c (bitmap_copy): Remove manual loop unrolling.
1781
1782         * value-prof.c (rtl_find_values_to_profile): Use gcc_assert and
1783         gcc_unreachable.
1784         (rtl_register_value_prof_hooks,
1785         tree_value_profile_transformations,
1786         tree_register_value_prof_hooks): Likewise.
1787         * var-tracking.c (stack_adjust_offset_pre_post,
1788         variable_htab_free, variable_union, dataflow_set_different_2,
1789         count_uses, variable_was_changed, set_frame_base_location,
1790         set_variable_part, emit_note_insn_var_location, vt_emit_notes,
1791         vt_add_function_parameters): Likewise.
1792         * varasm.c (named_section_real, named_section, make_decl_rtl,
1793         asm_emit_uninitialised, assemble_integer, decode_addr_const,
1794         const_hash_1, compare_constant, copy_constant, force_const_mem,
1795         output_constant_pool_2, output_constant_pool_1, output_constant,
1796         output_constructor, make_decl_one_only, decl_tls_model,
1797         default_no_named_section, default_elf_select_section_1,
1798         default_unique_section_1): Likewise.
1799         * vec.c (vec_gc_o_reserve, vec_heap_o_reserve): Likewise.
1800         * vmsdbgout.c (addr_const_to_string): Likewise.
1801
1802         PR c++/20375
1803         * function.c (struct assign_parm_data_one): Remove last_named
1804         field.
1805         (assign_parm_find_data_types): Don't determine last_named.
1806         Reorder named_parm determination.
1807         (assign_parms): Only setup varargs on the last non-varadic
1808         parameter.
1809
1810 2005-03-10  Kazuhiro Inaoka  <inaoka.lazuhiro@renesas.com>
1811
1812         * config/m32r/m32r.md (load_sda_base_32): New pattern.  Loads
1813         sda base address on medium model.
1814
1815 2005-03-10  Zdenek Dvorak  <dvorakz@suse.cz>
1816
1817         * Makefile.in (tree-optimize.o): Add CFGLOOP_H dependence.
1818         * cfgloop.c (flow_loop_nodes_find): Export.
1819         * cfgloop.h (flow_loop_nodes_find, fix_loop_structure):
1820         Declare.
1821         * cfgloopmanip.c (fix_loop_structure): New function.
1822         * predict.c (predict_loops): Clean up the loops information.
1823         * tree-cfg.c (cleanup_tree_cfg_loop): New function.
1824         (tree_can_merge_blocks_p, remove_bb, tree_forwarder_block_p): Respect
1825         loop structure.
1826         * tree-flow.h (cleanup_tree_cfg_loop): Declare.
1827         (rewrite_into_loop_closed_ssa): Declaration changed.
1828         * tree-loop-linear.c (linear_transform_loops): Add argument to
1829         rewrite_into_loop_closed_ssa call.
1830         * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
1831         * tree-ssa-loop-im.c (move_computations): Ditto.
1832         * tree-ssa-loop.c (tree_loop_optimizer_init): Ditto.
1833         * tree-vectorizer.c (vectorize_loops): Ditto.
1834         * tree-optimize.c: Include cfgloop.h.
1835         (execute_todo): Choose whether to call cleanup_tree_cfg or
1836         cleanup_tree_cfg_loop.
1837         * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables,
1838         (tree_unroll_loops_completely): Enable cleanup_tree_cfg_loop call.
1839         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Enable
1840         cleanup_tree_cfg_loop call.
1841         * tree-ssa-loop-manip.c (find_uses_to_rename_bb): New function.
1842         (find_uses_to_rename, rewrite_into_loop_closed_ssa): Support
1843         work on part of cfg.
1844
1845 2005-03-10  Jakub Jelinek  <jakub@redhat.com>
1846
1847         PR inline-asm/20314
1848         * gimplify.c (gimplify_asm_expr): Handle input/output constraints
1849         with multiple alternatives.
1850
1851         * stmt.c (parse_output_constraint): Fix a typo.
1852
1853 2005-03-09  Bob Wilson  <bob.wilson@acm.org>
1854
1855         * config/xtensa/xtensa.h (TRAMPOLINE_TEMPLATE): Use "no-transform"
1856         assembly directive instead of deprecated "no-generics".
1857
1858 2005-03-09  Ulrich Weigand  <uweigand@de.ibm.com>
1859
1860         * config/s390/s390.c (s390_secondary_output_reload_class): Adapt check
1861         for non-offsettable memory references to cope with outstanding reload
1862         replacements.
1863         * config/s390/s390.md ("reload_outti"): Call find_replacement to
1864         avoid losing outstanding address reloads.
1865         ("reload_outdi", "reload_outdf"): Likewise.
1866
1867 2005-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1868
1869         * builtins.c (fold_builtin_cbrt, fold_builtin_pow): Rearrange
1870         code.  Add more cbrt transformations.
1871
1872 2005-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1873
1874         * fold-const.c (fold_unary_to_constant): Add FIX_ROUND_EXPR case.
1875
1876 2005-03-09  Kazu Hirata  <kazu@cs.umass.edu>
1877
1878         * fold-const.c (fold_unary, fold_binary, fold_ternary): Return
1879         NULL_TREE when a given tree is not simplified.
1880         (fold): Return the original tree when any of the functions
1881         mentioned above NULL_TREE.
1882
1883         * fold-const.c (fold_unary, fold_binary): Take decomposed
1884         arguments, code, type, op0, and op1 in case of fold_binary.
1885         (fold): Update calls to fold_unary and fold_binary.
1886
1887 2005-03-09  Roger Sayle  <roger@eyesopen.com>
1888
1889         * builtins.c (fold_builtin_unordered_cmp): Change prototype to take
1890         a fndecl and an arglist instead of a CALL_EXPR, exp.
1891
1892 2005-03-09  Kazu Hirata  <kazu@cs.umass.edu>
1893
1894         * cfglayout.c (fixup_reorder_chain): Remove old_bb.
1895
1896         * cfgrtl.c (cfg_layout_merge_blocks): Remove new_e.
1897
1898         * expr.c (expand_assignment): Remove orig_to_rtx.
1899
1900         * fold-const.c (int_const_binop): Remove no_overflow.
1901
1902         * ifcvt.c (noce_emit_move_insn): Remove inmode.
1903
1904         * loop-iv.c (get_biv_step_1): Remove lhs.
1905
1906         * loop-unroll.c (analyze_insns_in_loop): Remove preheader.
1907
1908         * real.c (real_nan): Remove neg.
1909
1910         * function.c (thread_prologue_and_epilogue_insns): Remove i
1911         and newinsn.
1912
1913         * tree-data-ref.c (array_base_name_differ_p): Remove ta and
1914         tb.
1915
1916         * tree-eh.c (tree_could_trap_p): Remove idx.
1917
1918         * tree-into-ssa.c (ann): Remove ann.
1919
1920         * tree-outof-ssa.c (num_nodes): Remove num_nodes.
1921
1922         * tree-sra.c (decide_block_copy): Remove inst_count.
1923
1924         * tree-ssa-alias.c (may_alias_p): Remove v_ann.
1925
1926         * tree-ssa-loop-im.c (lhs): Remove.
1927
1928         * cfgbuild.c (state, STATE, SET_STATE,
1929         BLOCK_USED_BY_TABLEJUMP, FULL_STATE): Move just before
1930         make_edges.
1931         (make_edges): Speed up by skipping blocks with BLOCK_ORIGINAL.
1932         (find_basic_blocks): Set the state of each basic block to
1933         BLOCK_NEW.
1934
1935 2005-03-08  Jeff Law  <law@redhat.com>
1936
1937         * tree-cfg.c (cleanup_control_flow): If removal of a computed
1938         goto results in the removal of edges in the CFG, then we need
1939         to recompute dominators.
1940
1941 2005-03-09  Ben Elliston  <bje@au.ibm.com>
1942
1943         * c-common.c (c_do_switch_warnings): Comment fix.
1944
1945 2005-03-08  Julian Brown  <julian@codesourcery.com>
1946
1947         * Patch from 2005-03-08 reverted for causing regressions and
1948         ppc-darwin bootstrap failure.
1949
1950 2005-03-08  Fariborz Jahanian <fjahanian@apple.com>
1951
1952         * config/rs6000/rs6000.c (invalid_arg_for_unprototyped_fn):
1953         Define the real function for ppc-darwin.
1954         * c-typeck.c (convert_arguments): Check for target-specific
1955         invalid argument call to unprototyped function.
1956         * target-def.h (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
1957         New Macro.
1958         * target.h (invalid_arg_for_unprototyped_fn): New field
1959         in struct calls.
1960         * targhooks.c (hook_invalid_arg_for_unprototyped_fn): New
1961         default target hook.
1962         * targhooks.h (hook_invalid_arg_for_unprototyped_fn):
1963         Declare.
1964
1965 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
1966
1967         * c-typeck.c (constructor_stack, constructor_range_stack,
1968         initializer_stack): Make them static.
1969
1970         * cfg.c (rbi_pool): Make it static.
1971
1972         * gimple-low.c (lower_stmt_body): Make it static.
1973         * tree-flow.h: Remove the corresponding prototype.  Don't
1974         declare lower_data.
1975
1976         * sched-deps.c (cache_size): Make it static.
1977
1978         * stor-layout.c (lang_adjust_rli): Make it static.
1979
1980 2005-03-08  Julian Brown  <julian@codesourcery.com>
1981
1982         * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK
1983         from being used for symbols with vague linkage when
1984         HAVE_GAS_COMDAT_GROUP is true.
1985
1986 2005-03-08  J"orn Rennecke <joern.rennecke@st.com>
1987
1988         * jump.c (invert_jump_1): Don't call redirect_jump_1 with
1989         nlabel == JUMP_LABEL (jump).
1990
1991 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
1992
1993         * c-common.c, c-opts.c, combine.c, cse.c, dojump.c,
1994         gimplify.c, tree-dfa.c, tree-ssa-loop-ivopts.c,
1995         tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-sink.c,
1996         tree-vect-analyze.c, tree.def, tree.h: Fix comment formatting.
1997
1998 2005-03-08  Alexey Neyman  <alex.neyman@auriga.ru>
1999
2000         PR c/14411
2001         * calls.c (flags_from_decl_or_type): Handle eturns_twice' attribute.
2002         * c-common.c (handle_returns_twice): New function.
2003         (c_common_attribute_table): Declare eturns_twice' attribute.
2004         * doc/extend.texi: Document eturns_twice' attribute.
2005         * tree.h (DECL_IS_RETURNS_TWICE): New macro.
2006         (struct tree_decl): Add returns_twice_flag.
2007
2008 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
2009
2010         * tree-ssa-phiopt.c: Fix a comment typo.
2011
2012         * c-semantics.c, cfghooks.c, diagnostic.h, loop-iv.c,
2013         loop-unswitch.c, modulo-sched.c, stor-layout.c, tree-gimple.h,
2014         config/i386/cygwin1.c, doc/cfg.texi, doc/objc.texi: Update
2015         copyright.
2016
2017 2005-03-08  Richard Henderson  <rth@redhat.com>
2018
2019         * config/alpha/alpha.c (code_for_builtin): Replace special-case
2020         builtin codes with ctzdi2, clzdi2, popcountdi2.
2021         (struct alpha_builtin_def): Add is_const.
2022         (zero_arg_builtins, one_arg_builtins, two_arg_builtins): Init it.
2023         (alpha_v8qi_u, alpha_v8qi_s, alpha_v4hi_u, alpha_v4hi_s): New.
2024         (alpha_init_builtins): Init them.  Set nothrow and const attributes
2025         on builtins.
2026         (alpha_fold_builtin_cmpbge, alpha_fold_builtin_zapnot,
2027         alpha_fold_builtin_extxx, alpha_fold_builtin_insxx,
2028         alpha_fold_builtin_mskxx, alpha_fold_builtin_umulh,
2029         alpha_fold_vector_minmax, alpha_fold_builtin_perr,
2030         alpha_fold_builtin_pklb, alpha_fold_builtin_pkwb,
2031         alpha_fold_builtin_unpkbl, alpha_fold_builtin_unpkbw,
2032         alpha_fold_builtin_cttz, alpha_fold_builtin_ctlz,
2033         alpha_fold_builtin_ctpop, alpha_fold_builtin): New.
2034         (TARGET_FOLD_BUILTIN): New.
2035         * config/alpha/alpha.md (UNSPEC_CTTZ): Remove.
2036         (UNSPEC_CTLZ, UNSPEC_CTPOP): Remove.
2037         (ffsdi2): Use ctz.
2038         (cttz, builtin_cttz, builtin_ctlz, builtin_ctpop): Remove.
2039
2040 2005-03-08  Ira Rosen  <irar@il.ibm.com>
2041
2042         PR tree-optimization/20122
2043         * tree-vect-analyze.c (vect_object_analysis): Analyze initial
2044         condition of access function instead of base.
2045
2046 2005-03-07  Jeff Law  <law@redhat.com>
2047             Steven Bosscher  <stevenb@suse.de>
2048
2049         * tree-cfg.c (find_taken_edge_computed_goto): New function.
2050         (find_taken_edge): Call find_taken_edge_computed_goto as
2051         appropriate.  Allow any gimple invariant rather than just
2052         INTEGER_CST for VAL.
2053         (cleanup_control_flow): Cleanup a computed goto which has turned
2054         into a simple goto.
2055         (tree_merge_blocks): If block B has any forced labels, move
2056         them to the start of block A.
2057         * tree-ssa-dom.c (thread_across_edge): Allow threading across
2058         computed gotos as well.
2059         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Handle
2060         removal of unnecessary computed gotos too.
2061         (lookup_redirection_data): Fix type of INSERT argument.  Callers
2062         updated.
2063
2064 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
2065
2066         * tree-ssa-phiopt.c: Update copyright.  Fix indentations.
2067         Remove trailing spaces.
2068
2069         * gimplify.c (gimple_push_bind_expr, gimple_pop_bind_expr,
2070         unshare_all_trees): Make them static.
2071         * tree-gimple.h: Remove the corresponding prototypes.
2072
2073         * diagnostic.h: Remove unused prototype
2074         debug_output_buffer.
2075         * modulo-sched.c: Remove unused prototype
2076         set_row_column_for_ps.
2077
2078         * tree-ssa-phiopt.c (tree_ssa_phiopt,
2079         replace_phi_edge_with_variable): Remove unused variable i.
2080
2081 2005-03-07  Per Bothner  <per@bothner.com>
2082
2083         * tree.h (DECL_IS_BUILTIN): Reverted my patch from earlier today.
2084
2085 2005-03-06  Andrew Pinski  <pinskia@physics.uc.edu>
2086
2087         PR tree-opt/17671
2088         * tree-ssa-phiopt.c (tree_ssa_phiopt): Rewrite so we base the
2089         bbs on the COND_EXPR instead of the PHI_NODEs.
2090         (candidate_bb_for_phi_optimization): Remove.
2091         (replace_phi_with_stmt): Rename to ...
2092         (replace_phi_edge_with_variable): this and change so that we
2093         replace the phi argument instead of removing the PHI.
2094         (conditional_replacement): Change so we deal with PHI with more
2095         than two arguments.
2096         (value_replacement): Likewise.
2097         (abs_replacement): Likewise.
2098
2099 2005-03-07  Aldy Hernandez  <aldyh@redhat.com>
2100
2101         * config/rs6000/rs6000-protos.h: Rename output_e500_flip_eq_bit to
2102         output_e500_flip_gt_bit.
2103
2104         * config/rs6000/rs6000.c (print_operand): case D: Print out bit 31
2105         as bit 31.
2106         (rs6000_generate_compare): Fix logic to look at the correct bits.
2107         (output_e500_flip_eq_bit): Rename to output_e500_flip_gt_bit.
2108         Look at GT bit.
2109         (rs6000_emit_sCOND): Rename gen_e500_flip_eq_bit to
2110         gen_e500_flip_gt_bit.  Rename gen_move_from_CR_eq_bit to
2111         gen_move_from_CR_gt_bit.
2112
2113         * config/rs6000/rs6000.md ("move_from_CR_eq_bit"): Change bit
2114         ("move_from_CR_eq_bit"): Rename to move_from_CR_gt_bit.
2115         (UNSPEC_MV_CR_EQ): Rename to UNSPEC_MV_CR_GT.
2116
2117         * config/rs6000/spe.md ("e500_cr_ior_compare"): New.
2118         (E500_CR_IOR_COMPARE): New constant.
2119
2120 2005-03-08  Earl Chew <earl_chew@agilent.com>
2121             David Billinghurst <David.Billinghurst@riotinto.com>
2122
2123         * config/i386/host-cygwin.c: New file to support precompiled
2124         headers on cygwin
2125         * config/i386/x-cygwin: Use host-cygwin.c on cygwin host
2126         * config.host: Use above files for cygwin host.
2127
2128 2005-03-07  David Edelsohn  <edelsohn@gnu.org>
2129
2130         * fold-const.c (fold_binary_op_with_conditional_arg): Fix typo
2131         ordering ops from earlier change.
2132
2133 2005-03-07  Per Bothner  <per@bothner.com>
2134
2135         Various fixes to allow us to again build if --enable-mapped-location:
2136         * c-decl.c (finish_function): Use SET_EXPR_LOCATION instead of
2137         unavailable annotate_with_file_line, if USE_MAPPED_LOCATION.
2138         * tree-cfg.c (remove_bb): If USE_MAPPED_LOCATION, change type of
2139         local variable loc. Change logic appropriately.
2140         * tree-vect-transform.c (vect_finish_stmt_generation): Use
2141         EXPR_LOCATION rather than EXPR_LOCUS if USE_MAPPED_LOCATION.
2142         * c-parser.c (c_parser_for_statement): Initialize loc variable.
2143         * tree.h (DECL_IS_BUILTIN): Temporarily revert definition of
2144         DECL_IS_BUILTIN in the USE_MAPPED_LOCATION because of jc1 issues.
2145
2146 2005-03-07  Richard Sandiford  <rsandifo@redhat.com>
2147
2148         PR rtl-optimization/19683
2149         * reload1.c (choose_reload_regs): Pass the number of bits, not the
2150         number of bytes, to smallest_int_for_mode.  Fix arguments to
2151         REG_CANNOT_CHANGE_MODE_P.
2152
2153 2005-03-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
2154
2155         * reorg.c (relax_delay_slots): Check that the jump is
2156         conditional before trying to invert it.
2157
2158 2005-03-07  Kazu Hirata  <kazu@cs.umass.edu>
2159
2160         * bb-reorder.c (max_entry_frequency, max_entry_frequency):
2161         Make them static.
2162
2163         * calls (stack_arg_under_construction): Make it static.
2164
2165         * flow.c (regs_live_at_setjmp): Make it static.
2166         * flow.h: Remove the corresponding prototype.
2167
2168         * reload1.c (reload_startobj, reload_firstobj,
2169         something_needs_operands_changed, reload_inherited,
2170         reload_inheritance_insn, reload_override_in,
2171         reload_spill_index): Make them static.
2172
2173         * recog.c (verify_changes): Make it static.
2174         * recog.h: Remove the corresponding prototype.
2175
2176         * cfgbuild.c (find_sub_basic_blocks): Remove.
2177         * basic-block.h: Remove the corresponding prototype.
2178         * cfgexpand.c, cfgrtl.c: Don't mention find_sub_basic_blocks
2179         in comments.
2180         * doc/cfg.texi: Don't mention find_sub_basic_blocks.
2181
2182         * tree-ssa-operands.c (check_build_stmt): Remove.
2183
2184         * stor-layout.c (set_alignment): Remove.
2185         * tree.h: Remove the corresponding prototype.
2186
2187         * tree-ssa-pre.c (has_abnormal_preds): Make it static.
2188
2189         * tree-ssa-dce.c (control_dependence_map,
2190         visited_control_parents): Make them static.
2191
2192         * cfghooks.c (verify_flow_info): Remove local variable
2193         num_bb_notes.
2194
2195         * cfgrtl.c (rtl_verify_flow_info_1): Remove local variable
2196         last_bb_seen.
2197
2198         * loop-unswitch.c (unswitch_loop): Remove local variable src.
2199
2200 2005-03-07  David Billinghurst <David.Billinghurst@riotinto.com>
2201
2202         * config/i386/cygwin1.c(mingw_scan): Use xstrdup in calls to putenv.
2203
2204 2005-03-07  Joseph S. Myers  <joseph@codesourcery.com>
2205
2206         * config/ia64/hpux.h (LINK_SPEC): Add -z.
2207         * config/ia64/ia64.c (ia64_function_value): Return a REG not a
2208         PARALLEL for an empty structure.
2209
2210 2005-03-07  Kazu Hirata  <kazu@cs.umass.edu>
2211
2212         * fold-const.c (fold_binary): Remove handling of RANGE_EXPR.
2213
2214         * fold-const.c (fold_binary): Unroll the very first "for"
2215         loop.
2216
2217 2005-03-06  David Edelsohn  <edelsohn@gnu.org>
2218
2219         * config/rs6000/predicates.md (branch_comparison_operator): Remove
2220         redundant match_code test.
2221         (scc_comparison_operator): Swap match_operand and match_code
2222         tests.
2223         (branch_positive_comparison_operator): Same.
2224         (trap_comparison_operator): Use comparison_operator and swap with
2225         match_code test.
2226
2227 2005-03-06  Marek Michalkiewicz  <marekm@amelek.gda.pl>
2228
2229         PR target/20288
2230         * config/avr/avr.c (print_operand): Add 'p' and 'r'.
2231         (out_movhi_r_mr): Read low byte of volatile MEM first.
2232         (out_movhi_mr_r): Write high byte of volatile MEM first.
2233
2234 2005-03-05  Kazu Hirata  <kazu@cs.umass.edu>
2235
2236         * cselib.c (reg_values, reg_values_size): Make them static.
2237
2238         * cse.c (cse_reg_info_table): Make it static.
2239
2240         * fold-const.c (fold_unary): Use build1 instead of copy_node.
2241
2242 2005-03-06  Zdenek Dvorak  <dvorakz@suse.cz>
2243
2244         * cse.c (find_best_addr): Use canon_for_address.
2245
2246 2005-03-06  Kazu Hirata  <kazu@cs.umass.edu>
2247
2248         * cse.c (fold_rtx_subreg, fold_rtx_mem): New.
2249         (fold_rtx): Call fold_rtx_subreg and fold_rtx_mem to handle
2250         SUBREG and MEM, respectively.
2251
2252         * fold-const.c (fold_binary): Use code instead of t.
2253
2254         * fold-const.c (optimize_minmax_comparison): Take decomposed
2255         arguments code, type, op0, and op1 instead of t.
2256         (fold_binary): Update a call to optimize_minmax_comparison.
2257
2258         * fold-const.c (fold_range_test): Take decomposed arguments
2259         code, type, op0, and op1 instead of t.
2260         (fold_binary): Update a call to fold_range_test.
2261
2262         * fold-const.c (fold_binary_op_with_conditional_arg): Take
2263         decomposed arguments code, type, op0, and op1 instead of t.
2264         (fold_binary): Update a call to fold_range_test.
2265
2266 2005-03-06  Kazu Hirata  <kazu@cs.umass.edu>
2267
2268         * fold-const.c (fold_binary): Avoid directly using the original
2269         expression t as much as possible.
2270
2271 2005-03-05  Kazu Hirata  <kazu@cs.umass.edu>
2272
2273         * c-semantics.c (build_stmt): Use TYPE_P instead of
2274         IS_NON_TYPE_CODE_CLASS.
2275         * tree.h (IS_NON_TYPE_CODE_CLASS): Remove.
2276         (NON_TYPE_CHECK): Use TYPE_P instead of
2277         IS_NON_TYPE_CODE_CLASS.
2278
2279         * fold-const.c (fold): Remove handling of binary expressions.
2280
2281 2005-03-05  James A. Morrison  <phython@gcc.gnu.org>
2282
2283         * doc/c-tree.texi: Wrap comments in @r{}.
2284         * doc/cpp.texi: Likewise.
2285         * doc/cppinternals.texi: Likewise.
2286         * doc/extend.texi: Likewise.
2287         * doc/md.texi: Likewise.
2288         * doc/objc.texi: Likewise.
2289         * doc/sourcebuild.texi: Likewise.
2290         * doc/tm.texi: Likewise.
2291         * doc/tree-ssa.texi
2292
2293 2005-03-05  Kazu Hirata  <kazu@cs.umass.edu>
2294
2295         * predict.c (apply_return_prediction): Standardize PHI chain
2296         walking.
2297         * tree-ssa.c (ssa_redirect_edge): Likewise.
2298
2299         * genattrtab.c, genemit.c, genoutput.c, genrecog.c,
2300         gensupport.c, jump.c, tree-phinodes.c, unwind-dw2-fde-glibc.c:
2301         Update copyright.
2302
2303         * tree-phinodes.c (remove_phi_node): Drop the last argument.
2304         * tree-flow.h: Adjust the prototype for remove_phi_node.
2305         * lambda-code.c (perfect_nestify): Adjust a call to
2306         remove_phi_node.
2307         * tree-cfg.c
2308         (remove_phi_nodes_and_edges_for_unreachable_block): Likewise.
2309         * tree-outof-ssa.c (eliminate_virtual_phis, remove_ssa_form):
2310         Likewise.
2311         * tree-ssa-dce.c (remove_dead_phis): Likewise.
2312         * tree-ssa-loop-ivopts.c (remove_statement): Likewise.
2313         * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
2314         * tree-ssa.c (kill_redundant_phi_nodes): Likewise.
2315
2316         * combine.c (simplify_and_const_int): Use gen_int_mode instead
2317         of GEN_INT (trunc_int_for_mode (...)).
2318         * loop-iv.c (iv_number_of_iterations): Likewise.
2319         * postreload.c (reload_cse_move2add): Likewise.
2320         * simplify-rtx.c (simplify_const_unary_operation,
2321         simplify_const_binary_operation): Likewise.
2322         * stor-layout.c (get_mode_bounds): Likewise.
2323
2324         * fold-const.c (fold_binary): New.
2325         (fold): Call fold_binary on binary expressions.
2326
2327 2005-03-05  Richard Sandiford  <rsandifo@redhat.com>
2328
2329         * doc/invoke.texi: Document new MIPS -msym32 and -mno-sym32 options.
2330         * config/mips/mips.h (MASK_SYM32, TARGET_SYM32): New macros.
2331         (TARGET_SWITCHES): Add -msym32 and -mno-sym32.
2332         (ABI_HAS_64BIT_SYMBOLS): Set to false if TARGET_SYM32.
2333         (ASM_SPEC): Pass down -msym32 and -mno-sym32.
2334
2335 2005-03-04  Devang Patel  <dpatel@apple.com>
2336
2337         PR tree-optimization/18815
2338         * tree-if-conv.c (combine_blocks): Adjust loop header edges for
2339         loops with zero exit edges.
2340
2341 2005-03-04  Devang Patel  <dpatel@apple.com>
2342
2343         * doc/invoke.texi: Remove reference to webpage that does not exist.
2344
2345 2005-03-04  John David Anglin  <dave.danglin@nrc-cnrc.gc.ca>
2346             Joseph S. Myers  <joseph@codesourcery.com>
2347
2348         PR c++/19797
2349         * pa/elf.h, pa64-hpux.h, som.h (ASM_OUTPUT_EXTERNAL_REAL): Define.
2350         (ASM_OUTPUT_EXTERNAL): Call pa_hpux_asm_output_external.
2351         * pa-protos.h (pa_hpux_asm_output_external): Add prototype.
2352         * pa.c (get_plabel): Change argument to symbol_ref.  Call
2353         maybe_get_identifier instead of get_identifier.
2354         (pa_hpux_asm_output_external, pa_hpux_file_end): New functions.
2355         (struct deferred_plabel): Replace name field with symbol field.
2356         (TARGET_ASM_FILE_END): Define as pa_hpux_file_end if
2357         ASM_OUTPUT_EXTERNAL_REAL is defined.
2358         (output_global_address): Use output_addr_const for output of all
2359         symbol_refs.
2360         (output_deferred_plabels): Use symbol_ref instead of name for address
2361         output.
2362         * pa.h (SYMBOL_FLAG_REFERENCED, SYMBOL_REF_REFERENCED_P,
2363         ASM_OUTPUT_SYMBOL_REF): New macros.
2364         * som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Use assemble_name_raw.  Update
2365         comment.
2366         (ASM_WEAKEN_LABEL): Use targetm.asm_out.globalize_label to globalize
2367         label.
2368
2369 2005-03-05  Joseph S. Myers  <joseph@codesourcery.com>
2370
2371         * config.gcc (hppa*64*-*-hpux11*): Use pa/pa-hpux1111.h for
2372         *-*-hpux11.[1-9]*, not just for *-*-hpux11.11.
2373
2374 2005-03-04  Jeff Law  <law@redhat.com>
2375
2376         * basic-block.h (rediscover_loops_after_threading): Declare.
2377         * tree-ssa-dom.c: Include cfgloop.h.
2378         (tree_ssa_dominator_optimize): Discover loops and some basic
2379         properties.  Remove forwarder blocks recreated by loop header
2380         canonicalization.  Also mark backedges in the CFG.
2381         * tree-ssa-threadupdate.c: Include cfgloop.h
2382         (rediscover_loops_after_threading): Define.
2383         (struct local_info): New field, JUMP_THREADED.
2384         (prune_undesirable_thread_requests): New function.
2385         (redirect_edges): Clear EDGE_ABNORMAL.  If edges were threaded
2386         then record that fact for the callers of redirct_edges.
2387         (thread_block): If BB has incoming backedges, then call
2388         prune_undesirable_thraed_requests.    Note when we are
2389         going to have to rediscover loop information.  Return a
2390         boolean indicating if any jumps were threaded.
2391         (thread_through_all_blocks): Bubble up boolean indicating
2392         if any jumps were threaded.
2393         * Makefile.in (tree-ssa-dom.o): Depend on cfgloop.h
2394         (tree-ssa-threadupdate.o): Similarly.
2395
2396 2005-03-04  Kazu Hirata  <kazu@cs.umass.edu>
2397
2398         * fold-const.c (fold_ternary): Unroll the "for" loop to
2399         extract operands.
2400
2401 2005-03-04  Andrew Haley  <aph@redhat.com>
2402
2403         * unwind-dw2-fde-glibc.c (struct
2404         unw_eh_callback_data.check_cache): New field.
2405         (frame_hdr_cache): New.
2406         (_Unwind_IteratePhdrCallback): Add ext_dl_phdr_info.
2407         Cache frame header info.
2408
2409 2005-03-04  Richard Sandiford  <rsandifo@redhat.com>
2410
2411         * rtl.h (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
2412         (print_c_condition): Declare.
2413         * read-rtl.c (ptr_loc): New structure.
2414         (ptr_locs, ptr_loc_obstack, joined_conditions)
2415         (joined_conditions_obstack): New variables.
2416         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc)
2417         (get_rtx_ptr_loc, copy_rtx_ptr_loc, print_rtx_ptr_loc)
2418         (join_c_conditions, print_c_condition): New functions.
2419         (apply_macro_to_string): Associate the new string with the same
2420         source location as the old one.
2421         (add_condition_to_string): Use join_c_conditions.
2422         (read_string): Use set_rtx_ptr_loc to record a filename and line
2423         number for the string.
2424         (read_rtx): Initialize the new variables above.
2425         * genattrtab.c (write_test_expr, write_attr_value): Use
2426         print_c_condition.
2427         * genconditions.c (write_header): Don't define MAYBE_EVAL.  Move its
2428         comment above the GCC_VERSION check.
2429         (write_one_condition): Use print_rtx_ptr_loc and print_c_condition.
2430         Inline the definition of MAYBE_EVAL.
2431         * genemit.c (gen_expand, gen_split): Use print_rtx_ptr_loc.
2432         * genoutput.c (process_template): Likewise.
2433         * genpreds.c (write_predicate_subfunction): Likewise.
2434         (write_predicate_expr): Use print_c_condition.
2435         * genrecog.c (write_cond): Likewise.
2436         * gensupport.c (process_rtx): Use join_c_conditions to join the
2437         conditions of a define_insn_and_split.  Record a source location
2438         for the string after the "&&".
2439         (alter_test_for_insn): Use join_c_conditions.
2440
2441 2005-03-04  Andrew Pinski  <pinskia@physics.uc.edu>
2442
2443         Revert for now:
2444         2005-03-03  James A. Morrison  <phython@gcc.gnu.org>
2445         PR tree-optimization/15784
2446         * fold-const.c (fold): Fold ~A + 1 to -A.  Fold -A - 1
2447         and -1 - A to ~A.
2448
2449 2005-03-04  Ben Elliston  <bje@au.ibm.com>
2450
2451         * gcc.c (option_map): Add --coverage.
2452         (LINK_COMMAND_SPEC): Pass -lgcov for `coverage'.
2453         (cc1_options): Pass -fprofile-arcs -ftest-coverage for `coverage'.
2454         * config/darwin.h: Pass -lgcov for `coverage'.
2455         * doc/invoke.texi (Debugging Options): Document --coverage.
2456
2457 2005-03-04  Kazu Hirata  <kazu@cs.umass.edu>
2458
2459         * gcse.c (bypass_block): Use find_edge wherever possible.
2460
2461 2005-03-03  Daniel Berlin <dberlin@dbrelin.org>
2462
2463         Fix PR debug/20253
2464
2465         * c-opts.c (c_common_parse_file): Call start_source_file
2466         and end_source_file at the approriate times.
2467
2468         * dwarf2out.c (dwarf2out_finish): Don't auto-end
2469         the main file, it will be done for us now.
2470
2471 2005-03-04  Kazu Hirata  <kazu@cs.umass.edu>
2472
2473         * fold-const.c (fold_ternary): New.
2474         (fold): Call fold_ternary on ternary expressions.  Remove
2475         handling of ternary expressions.
2476
2477 2005-03-03  James A. Morrison  <phython@gcc.gnu.org>
2478
2479         PR tree-optimization/15784
2480         * fold-const.c (fold): Fold ~A + 1 to -A.  Fold -A - 1
2481         and -1 - A to ~A.
2482
2483 2005-03-03  David Edelsohn  <edelsohn@gnu.org>
2484
2485         * config/rs6000/predicates.md (branch_comparison_operator):
2486         Convert from C block to conditional format.
2487
2488 2005-03-03  Jan Hubicka  <jh@suse.cz>
2489
2490         * tree-dfa.c (add_referenced_var): Don't walk initializer of external
2491         and non-constant public variables.
2492
2493 2005-03-03  Kazu Hirata  <kazu@cs.umass.edu>
2494
2495         * tree-cfg.c (stmt_starts_bb_p): Clean up by replacing code
2496         with LABEL_EXPR.
2497
2498         * cfgexpand.c (construct_exit_block): Use EDGE_PRED instead of
2499         EDGE_I.
2500
2501         * tree-phinodes.c (remove_phi_node): Clean up by factoring out
2502         calls to release_ssa_name and release_phi_node.
2503
2504         * fold-const.c (fold): Remove handling of unary expressions.
2505
2506         * fold-const.c (fold_unary): Avoid directly using the original
2507         expression t as much as possible.
2508
2509 2005-03-03  Roger Sayle  <roger@eyesopen.com>
2510             Andrew Pinski  <pinskia@physics.uc.edu>
2511
2512         * jump.c (redirect_exp_1): If nlabel is a NULL pointer create a
2513         RETURN rtx, and not a LABEL_REF containing a NULL pointer.
2514
2515 2005-03-03  Hans-Peter Nilsson  <hp@axis.com>
2516
2517         Describe special registers SRP and MOF as allocatable registers.
2518         * config/cris/cris.c (cris_md_asm_clobbers): New function.
2519         (TARGET_MD_ASM_CLOBBERS): Define to cris_md_asm_clobbers.
2520         (cris_conditional_register_usage): Enable CRIS_MOF_REGNUM if
2521         TARGET_HAS_MUL_INSNS.
2522         (cris_print_operand) <case 'd'>: New case.
2523         <case REG>: Allow CRIS_MOF_REGNUM and CRIS_SRP_REGNUM.
2524         * config/cris/cris.h (CRIS_PC_REGNUM, CRIS_SRP_REGNUM): Don't
2525         define.
2526         (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS)
2527         (REG_ALLOC_ORDER): Update for MOF.
2528         (enum reg_class): New members MOF_REGS, GENERAL_REGS and
2529         SPECIAL_REGS.
2530         (GENERAL_REGS): No longer a define of ALL_REGS.
2531         (REGNO_REG_CLASS, REG_CLASS_CONTENTS, REG_CLASS_NAMES)
2532         (PREFERRED_RELOAD_CLASS, REGISTER_NAMES, DBX_REGISTER_NUMBER):
2533         Adjust accordingly.
2534         (CRIS_SPECIAL_REGS_CONTENTS): New macro.
2535         (REG_CLASS_FROM_LETTER): Allocate 'h' and 'x'.
2536         (SECONDARY_RELOAD_CLASS): Define.
2537         (STACK_POINTER_REGNUM): Define as CRIS_SP_REGNUM.
2538         (FRAME_POINTER_REGNUM): Define as CRIS_FP_REGNUM.
2539         (ARG_POINTER_REGNUM): Define as CRIS_AP_REGNUM.
2540         (STATIC_CHAIN_REGNUM): Define as CRIS_STATIC_CHAIN_REGNUM.
2541         (REGISTER_MOVE_COST): Define.
2542         (PIC_OFFSET_TABLE_REGNUM): Define in terms of CRIS_GOT_REGNUM.
2543         * config/cris/cris.md (CRIS_GOT_REGNUM, CRIS_STATIC_CHAIN_REGNUM)
2544         (CRIS_FP_REGNUM, CRIS_SP_REGNUM, CRIS_SRP_REGNUM, CRIS_AP_REGNUM)
2545         (CRIS_MOF_REGNUM): New define_constants.
2546         ("*movsi_internal", "movhi", "movqi", "movsf"): Add alternatives for
2547         special registers.
2548         ("reload_inhi", "reload_outhi", "reload_inqi", "reload_outqi"):
2549         New patterns.
2550         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3")
2551         ("mulsidi3", "umulsidi3", "smulsi3_highpart", "umulsi3_highpart"):
2552         Adjust for MOF being properly described as a register.
2553         (indir_to_reg_split): Name this split.  Conditionalize on the
2554         destination register being a general register.
2555         (movei): Conditionalize on on operands 0 and 1 having the same
2556         register class.
2557
2558 2005-03-03  Alan Modra  <amodra@bigpond.net.au>
2559
2560         PR target/20277
2561         * config/rs6000/rs6000.c (rs6000_override_options): Don't allow
2562         -mcpu to override any other explicitly given flags.
2563
2564 2005-03-02  J"orn Rennecke <joern.rennecke@st.com>
2565
2566         * recog.c (verify_changes, confirm_change_group): New functions,
2567         broken out of apply_change_group.
2568         (apply_change_group): Use them.
2569         * recog.h (verify_change, confirm_change_group): Declare.
2570         * rtl.h (redirect_jump_2): Declare.
2571         * jump.c (redirect_exp, invert_exp): Delete.
2572         (invert_exp_1): Take second parameter.  Return value.  Changed caller.
2573         (redirect_jump_2): New function, broken out of redirect_jump.
2574         (redirect_jump): Use redirect_jump_1 and redirect_jump_2.
2575         (invert_jump): Use invert_jump_1 and redirect_jump_2.
2576         * ifcvt.c (dead_or_predicable): Use redirect_jump_2.
2577
2578 2005-03-02  Geoffrey Keating  <geoffk@apple.com>
2579
2580         * varasm.c (named_section): Use xstrdup rather than doing it by
2581         hand.
2582
2583         * config/darwin8.h (LIB_SPEC): Switch -lmx and -lSystem.
2584
2585 2005-03-02  Devang Patel  <dpatel@apple.com>
2586
2587         Undo PR tree-optimization/18815 fix.
2588
2589 2005-03-02  Devang Patel  <dpatel@apple.com>
2590
2591         PR tree-optimization/18815
2592         * tree-if-conv.c (combine_blocks): Adjust loop header edges for
2593         loops with zero exit edges.
2594
2595 2005-03-02  Kazu Hirata  <kazu@cs.umass.edu>
2596
2597         * cfg.c (connect_src, connect_dest, disconnect_src,
2598         disconnct_dest): New.
2599         (unchecked_make_edge, remove_edge, redirect_edge_succ,
2600         redirect_edge_pred): Use the new functions.
2601
2602         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
2603         free_dominance_info only when needed.
2604
2605 2005-03-02  David Edelsohn  <edelsohn@gnu.org>
2606
2607         PR target/20276
2608         * config/rs6000/predicates.md (reg_or_cint64_operand): Fix typo.
2609         (reg_or_sub_cint64_operand): Same.
2610
2611 2005-03-02  Jeff Law  <law@redhat.com>
2612
2613         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Fix setting of
2614         CFG_ALTERED in the main DOM iteration loop.
2615
2616 2005-03-02  Mark Mitchell  <mark@codesourcery.com>
2617
2618         PR c++/19916
2619         * varasm.c (initializer_constant_valid_p): Allow conversions
2620         between OFFSET_TYPEs.  Tidy.
2621
2622 2005-03-02  Hans-Peter Nilsson  <hp@axis.com>
2623
2624         * config/cris/cris.md ("return"): Remove epilogue delay list
2625         sanity check.
2626
2627 2005-03-02  Daniel Jacobowitz  <dan@codesourcery.com>
2628
2629         * config/arm/linux-elf.h (ARM_FUNCTION_PROFILER): Do not use (PLT)
2630         for Thumb.
2631         * config/arm/netbsd-elf.h (ARM_FUNCTION_PROFILER): Likewise.
2632
2633 2005-03-02  Kazu Hirata  <kazu@cs.umass.edu>
2634
2635         * cfgloop.h, cfgloopanal.c, cfgloopmanip.c, conflict.c,
2636         loop-init.c, loop-unroll.c, print-tree.c, reg-notes.def,
2637         config/m68k/m68k.c, config/mips/mips.h,
2638         config/rs6000/rs6000-protos.h, doc/contrib.texi,
2639         doc/include/gcc-common.texi: Update copyright.
2640
2641         PR middle-end/18029 and PR middle-end/18030
2642         * expr.c (optimize_bitfield_assignment_op): Add a special case
2643         to handle BIT_IOR_EXPR and BIT_XOR_EXPR.
2644
2645         * fold-const.c (fold_unary): New.
2646         (fold): Call fold_unary on unary expressions.
2647
2648 2005-03-02  Richard Guenther  <rguenth@gcc.gnu.org>
2649
2650         * cgraph.h (struct cgraph_edge): Add prev_caller and
2651         prev_callee fields.
2652         (cgraph_node_remove_callees): Export.
2653         * cgraph.c (cgraph_create_edge): Initialize prev_caller
2654         and prev_callee.
2655         (cgraph_edge_remove_callee): New function.
2656         (cgraph_edge_remove_caller): Likewise.
2657         (cgraph_remove_edge): Use.
2658         (cgraph_redirect_edge_callee): Likewise.
2659         (cgraph_node_remove_callees): New function.
2660         (cgraph_node_remove_callers): Likewise.
2661         (cgraph_remove_node): Use.
2662         * tree-optimize.c (tree_rest_of_compilation): Use
2663         cgraph_node_remove_callees instead of manual loop.
2664         * cgraphunit.c (cgraph_finalize_function): Likewise.
2665         (cgraph_expand_function): Likewise.
2666         (cgraph_remove_unreachable_nodes): Likewise.
2667
2668 2005-03-02  Joseph S. Myers  <joseph@codesourcery.com>
2669
2670         PR c/8927
2671         * c-tree.h (undeclared_variable, build_external_ref): Add extra
2672         argument.
2673         * c-decl.c (undeclared_variable): Take location as argument.
2674         * c-typeck.c (build_external_ref): Likewise.
2675         * c-parser.c (c_parser_postfix_expression): Pass location of
2676         identifier to build_external_ref.
2677
2678 2005-03-01  David Edelsohn  <edelsohn@gnu.org>
2679
2680         * config/rs6000/rs6000.md (cceq splitter): Use operand mode, not
2681         CCEQ mode for branch_positive_comparison_operator test.
2682         * config/rs6000/predicates (branch_comparison_operator): Revert to
2683         define_predicate.
2684         (scc_comparison_operator): Same.
2685         (branch_positive_comparison_operator): Same.
2686
2687 2005-03-01  Hans-Peter Nilsson  <hp@axis.com>
2688
2689         * config/cris/cris.c (cris_eligible_for_epilogue_delay)
2690         (cris_delay_slots_for_epilogue): Remove.
2691         (save_last): Move into cris_target_asm_function_epilogue.
2692         (cris_target_asm_function_epilogue): Remove tests for file being
2693         NULL.
2694         * config/cris/cris-protos.h (cris_eligible_for_epilogue_delay)
2695         (cris_delay_slots_for_epilogue): Remove prototypes.
2696         * config/cris/cris.h (DELAY_SLOTS_FOR_EPILOGUE)
2697         (ELIGIBLE_FOR_EPILOGUE_DELAY): Do not define.
2698
2699 2005-03-01  David Edelsohn  <edelsohn@gnu.org>
2700
2701         * config/rs6000/predicates.md (branch_comparison_operator): Change
2702         to define_special_predicate.
2703         (scc_comparison_operator): Same.
2704         (branch_positive_comparison_operator): Same.
2705
2706 2005-03-01  Daniel Berlin <dberlin@dberlin.org>
2707
2708         * Makefile.in (tree-ssa-sink.o): New.
2709         (OBJS-common): Add tree-ssa-sink.o.
2710         * common.opt: Add -ftree-sink
2711         * opts.c (decode_options): flag_tree_sink is set at O1 or higher.
2712         * timevar.def (TV_TREE_SINK): new timevar.
2713         * tree-flow.h (is_hidden_global_store): Prototype.
2714         * tree-optimize.c (init_tree_optimization_passes): Add
2715         pass_sink_code.
2716         * tree-pass.h (pass_sink_code): New.
2717         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Move checking
2718         for non-obvious global store store to is_hidden_global_store, and
2719         call that new function.
2720         * tree-ssa-sink.c: New file.
2721         * doc/invoke.texi: Document -fdump-tree-sink and -ftree-sink.
2722         * doc/passes.texi: Document forward store motion.
2723         * testsuite/gcc.dg/tree-ssa/ssa-sink-1.c: New test
2724         * testsuite/gcc.dg/tree-ssa/ssa-sink-2.c: New test
2725         * testsuite/gcc.dg/tree-ssa/ssa-sink-3.c: New test
2726         * testsuite/gcc.dg/tree-ssa/ssa-sink-4.c: New test
2727
2728 2005-03-01  Per Bothner  <per@bothner.com>
2729
2730         * diagnostic.c (diagnostic_build_prefix): If USE_MAPPED_LOCATION
2731         and we have a non-zero column-number, add it to the message.
2732         Also factor out the diagnostic_kind_text.
2733
2734 2005-03-01  Zdenek Dvorak  <dvorakz@suse.cz>
2735
2736         * cfgloop.c (flow_loop_entry_edges_find, flow_loop_exit_edges_find,
2737         flow_loop_pre_header_scan, flow_loop_pre_header_find,
2738         flow_loop_scan): Removed.
2739         (flow_loop_dump): Do not dump removed fields.
2740         (flow_loop_free): Do not free removed fields.
2741         (flow_loops_find): Flags argument removed.  Do not call flow_loop_scan.
2742         (loop_exit_edge_p): New function.
2743         * cfgloop.h (struct loop): Removed fields pre_header, pre_header_edges,
2744         num_pre_header_edges, entry_edges, num_entries, exit_edges,
2745         num_exits, exits_doms.
2746         (LOOP_TREE, LOOP_PRE_HEADER, LOOP_ENTRY_EDGES, LOOP_EXIT_EDGES,
2747         LOOP_EDGES, LOOP_ALL): Removed.
2748         (flow_loop_scan): Declaration removed.
2749         (loop_exit_edge_p, mark_loop_exit_edges): Declare.
2750         * cfgloopmanip.c (create_loop_notes): Do not pass flags to
2751         flow_loops_find.
2752         * ifcvt.c (mark_loop_exit_edges): Moved to cfgloopanal.c.
2753         (if_convert): Call flow_loops_find and flow_loops_free
2754         when calling mark_loop_exit_edges.
2755         * cfgloopanal.c (mark_loop_exit_edges): Moved from
2756         ifcvt.c.  Removed the flow_loops_find, flow_loops_free and
2757         free_dominance_info calls.
2758         * loop-init.c (flow_loops_find): Ditto.
2759         * passes.c (rest_of_handle_branch_prob): Ditto.
2760         * lambda-code.c (perfect_nestify): Do not call flow_loops_find.
2761         * loop-unroll.c (analyze_insns_in_loop): Do not use
2762         EDGE_LOOP_EXIT.
2763         * predict.c (predict_loops): Do not call flow_loop_scan.
2764         Use get_loop_exit_edges.
2765         (tree_estimate_probability): Do not pass flags to flow_loops_find.
2766         * tree-if-conv.c (bb_with_exit_edge_p): Take loop as argument.
2767         Do not use EDGE_LOOP_EXIT.
2768         (tree_if_convert_cond_expr, if_convertible_modify_expr_p): Pass loop
2769         to bb_with_exit_edge_p.
2770         (if_convertible_loop_p): Do not call flow_loop_scan.  Use
2771         loop->single_exit.  Do not use EDGE_LOOP_EXIT.  Pass loop
2772         to bb_with_exit_edge_p.
2773         (combine_blocks): Pass loop to bb_with_exit_edge_p.  Do not use
2774         EDGE_LOOP_EXIT.
2775         * tree-loop-linear.c (linear_transform_loops): Do not call
2776         flow_loop_scan.  Use loop->single_exit.
2777         * tree-vect-analyze.c (vect_analyze_operations): Use loop->single_exit.
2778         (vect_analyze_loop_form): Do not call flow_loop_scan.
2779         * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Use
2780         loop->single_exit.
2781         (vect_do_peeling_for_loop_bound): Use loop_preheader_edge and
2782         loop->single_exit.
2783         * tree-vectorizer.c (slpeel_update_phis_for_duplicate_loop,
2784         slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
2785         slpeel_tree_duplicate_loop_to_edge_cfg,
2786         slpeel_verify_cfg_after_peeling, slpeel_tree_peel_loop_to_edge):
2787         Use loop_preheader_edge and loop->single_exit.  Do not call
2788         flow_loop_scan.
2789
2790 2005-03-01  Nick Clifton  <nickc@redhat.com>
2791
2792         * config/arm/arm.c (thumb_find_work_register): Check all of the
2793         argument registers to see if they are free, and a couple of
2794         special cases where the last argument register but can be proved
2795         to be available during the function's prologue.
2796         (print_multi_reg, arm_compute_save_reg0_reg12_mask,
2797         output_return_instruction, emit_multi_reg_push, thumb_pushpop,
2798         thumb_unexpanded_epilogue): Use unsigned long as the type for the
2799         register bit-mask.
2800         (thumb_compute_save_reg_mask): Likewise.  Also use
2801         thumb_find_work_register() to ensure that there is agreement about
2802         which work register is going to be used in the prologue.
2803         (thumb_output_function_prologue): Use unsigned long as the type
2804         for the register bit-mask.  Also delay pushing the link register if
2805         other high registers are going to be pushed.
2806         (thumb_compute_save_reg_mask, emit_multi_reg_push,
2807         print_multi-reg, number_of_first_bit_set, thumb_pushpop): Remove
2808         redundant prototypes.
2809
2810 2005-02-28  John David Anglin  <dave.anglin#nrc-cnrc.gc.ca>
2811
2812         PR target/19819
2813         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow allow hard registers during
2814         and after reload in REG+REG indexed addresses without REG_POINTER
2815         set in the base and not set in the index.
2816
2817 2005-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
2818
2819         * config/sh/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
2820         Don't undefine here.
2821         (HANDLE_PRAGMA_PACK_PUSH_POP): Delete.
2822         (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC): Likewise.
2823         (TARGET_OS_CPP_BUILTINS): Use LINUX_TARGET_OS_CPP_BUILTINS.
2824         (LIB_SPEC, LINK_EH_SPEC, STARTFILE_SPEC, ENDFILE_SPEC,
2825         LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED, TARGET_C99_FUNCTIONS):
2826         Delete.
2827         * config.gcc (sh*-*-linux*): Use config/linux.h.
2828
2829 2005-02-28  Dale Johannesen  <dalej@apple.com>
2830             Stan Shebs  <shebs@apple.com>
2831
2832         Rewrite of 64-bit Darwin structure-by-value pass/return.
2833         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): New fields
2834         intoffset, use_stack, named.
2835         * config/rs6000/rs6000.c (rs6000_darwin64_function_arg):  Remove.
2836         (rs6000_darwin64_record_arg_advance_flush):  New.
2837         (rs6000_darwin64_record_arg_advance_recurse): New.
2838         (rs6000_darwin64_record_arg_flush):  New.
2839         (rs6000_darwin64_record_arg_recurse):  New.
2840         (rs6000_darwin64_record_arg):  New.
2841         (rs6000_return_in_memory):  Remove AGGREGATE_TYPE_P check.
2842         (function_arg_boundary):  Handle 128-bit aligned structs.
2843         (function_arg_advance):  Rewrite darwin64 struct handling.
2844         (function_arg):  Call rs6000_darwin64_record_arg.
2845         (function_arg_partial_nregs):  Handle darwin64 structs.
2846         (rs6000_darwin64_function_value):  Remove.
2847         (rs6000_function_value):  Call rs6000_darwin64_record_arg.
2848
2849 2005-02-28  Roger Sayle  <roger@eyesopen.com>
2850
2851         PR tree-optimization/20216
2852         * tree-chrec.c (tree_fold_factorial): Delete.
2853         (tree_fold_binomial): Change argument list to take a return type
2854         and change the type of K to unsigned int.  Rewrite to avoid explicit
2855         evaluation of factorials, and (recursively) calling fold to perform
2856         compile-time arithmetic.  Return NULL on (internal) overflow.
2857         (chrec_evaluate): Change type of K to an unsigned int.  Avoid
2858         calling tree_fold_binomial unnecessarily.  Return chrec_dont_know
2859         if any intermediate calculation overflows.
2860         (chrec_apply): Update call to chrec_evaluate.
2861
2862 2005-02-28  James E Wilson  <wilson@specifixinc.com>
2863
2864         * config/mips/mips.h (NO_PROFILE_COUNTERS): Define.
2865
2866 2005-02-28  Joseph S. Myers  <joseph@codesourcery.com>
2867
2868         PR c/20245
2869         * c-parser.c (c_parser_compound_statement): Return error_mark_node
2870         instead of NULL_TREE on error.
2871
2872 2005-02-28  David Edelsohn  <edelsohn@gnu.org>
2873
2874         * config/rs6000/rs6000.c (EASY_VECTOR_15): Remove.
2875         (EASY_VECTOR_15_ADD_SELF): Remove.
2876         (num_insns_constant_wide): Not static.
2877         (validate_condition_mode): Not static.
2878         (toc_relative_expr_p): Not static.
2879         (legitimate_indirect_address_p): Not static.
2880         (macho_lo_sum_memory_operand): Not static.
2881         (invalid_e500_subreg): Not static.
2882         (easy_vector_same): Not static.
2883         (easy_vector_splat_const): Not static.
2884         (RS6000_SYMBOL_REF_TLS_P): Remove.
2885         (any_operand): Delete.
2886         (any_parallel_operand): Delete.
2887         (count_register_operand): Delete.
2888         (altivec_register_operand): Delete.
2889         (xer_operand): Delete.
2890         (s8bit_cint_operand): Delete.
2891         (short_cint_operand): Delete.
2892         (u_short_cint_operand): Delete.
2893         (non_short_cint_operand): Delete.
2894         (exact_log2_cint_operand): Delete.
2895         (gpc_reg_operand): Delete.
2896         (cc_reg_operand): Delete.
2897         (cc_reg_not_cr0_operand): Delete.
2898         (reg_or_short_operand): Delete.
2899         (reg_or_neg_short_operand): Delete.
2900         (reg_or_aligned_short_operand): Delete.
2901         (reg_or_u_short_operand): Delete.
2902         (reg_or_cint_operand): Delete.
2903         (reg_or_arith_cint_operand): Delete.
2904         (reg_or_add_cint64_operand): Delete.
2905         (reg_or_sub_cint64_operand): Delete.
2906         (reg_or_logical_cint_operand): Delete.
2907         (got_operand): Delete.
2908         (got_no_const_operand): Delete.
2909         (easy_fp_constant): Delete.
2910         (easy_vector_constant): Delete.
2911         (easy_vector_constant_add_self): Delete.
2912         (zero_constant): Delete.
2913         (zero_fp_constant): Delete.
2914         (volatile_mem_operand): Delete.
2915         (offsettable_mem_operand): Delete.
2916         (mem_or_easy_const_operand): Delete.
2917         (add_operand): Delete.
2918         (non_add_cint_operand): Delete.
2919         (logical_operand): Delete.
2920         (non_logical_cint_operand): Delete.
2921         (mask_operand): Delete.
2922         (mask_operand_wrap): Delete.
2923         (mask64_operand): Delete.
2924         (mask64_2_operand): Delete.
2925         (and64_operand): Delete.
2926         (and64_2_operand): Delete.
2927         (and_operand): Delete.
2928         (reg_or_mem_operand): Delete.
2929         (lwa_operand): Delete.
2930         (symbol_ref_operand): Delete.
2931         (call_operand): Delete.
2932         (current_file_function_operand): Delete.
2933         (input_operand): Delete.
2934         (rs6000_nonimmediate_operand): Delete.
2935         (rs6000_tls_symbol_ref): Delete.
2936         (save_world_operation): Delete.
2937         (restore_world_operation): Delete.
2938         (load_multiple_operation): Delete.
2939         (store_multiple_operation): Delete.
2940         (vrsave_operation): Delete.
2941         (mfcr_operation): Delete.
2942         (mtcrf_operation): Delete.
2943         (lmw_operation): Delete.
2944         (stmw_operation): Delete.
2945         (branch_comparison_operator): Delete.
2946         (branch_positive_comparison_operator): Delete.
2947         (scc_comparison_operator): Delete.
2948         (trap_comparison_operator): Delete.
2949         (boolean_operator): Delete.
2950         (boolean_or_operator): Delete.
2951         (min_max_operator): Delete.
2952         * config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Move to here.
2953         (EASY_VECTOR_15): Moved to here.
2954         (EASY_VECTOR_15_ADD_SELF): Move to here.
2955         (PREDICATE_CODES): Delete.
2956         * config/rs6000/rs6000-protos.h: Delete predicate functions.
2957         Declare functions no longer static.
2958         * config/rs6000/predicates.md: New.
2959         * config/rs6000/rs6000.md: Include predicates.md
2960
2961 2005-02-28  Kazu Hirata  <kazu@cs.umass.edu>
2962
2963         * calls.c (emit_call_1): Don't use  REG_ALWAYS_RETURN.
2964         (emit_library_call_value_1): Don't use LCT_ALWAYS_RETURN and
2965         REG_ALWAYS_RETURN.
2966         * cfgrtl.c (need_fake_edge_p): Likewise.
2967         * combine.c (distribute_notes): Likewise.
2968         * emit-rtl.c (try_split): Likewise.
2969         * recog.c (peephole2_opimize): Likewise.
2970         * reg-notes.def (ALWAYS_RETURN): Remove.
2971         * rtl.h (LCT_ALWAYS_RETURN): Remove.
2972         * tree-cfg.c (need_fake_edge_p): Don't use ECF_ALWAYS_RETURN.
2973         * tree.h (ECF_ALWAYS_RETURN): Remove.
2974
2975 2005-02-28  Roger Sayle  <roger@eyesopen.com>
2976
2977         PR middle-end/19874
2978         * tree-ssa.c (tree_ssa_useless_type_conversion_1): A conversion
2979         between different machine modes is never a "useless" conversion.
2980
2981 2005-02-28  Geert Bosch  <bosch@gnat.com>
2982
2983         PR ada/15977
2984         * doc/contrib.texi: List contributors for Ada front end
2985
2986 2005-02-28 Paolo Bonzini <bonzini@gnu.org>
2987
2988         * simplify-rtx.c (simplify_unary_operation_1,
2989         simplify_const_unary_operation): New, extracted from...
2990         (simplify_unary_operation): ... this one.
2991         (simplify_binary_operation_1,
2992         simplify_const_binary_operation): New, extracted from...
2993         (simplify_binary_operation): ... this one.
2994         * rtl.h (simplify_const_unary_operation,
2995         simplify_const_binary_operation): Add prototypes.
2996
2997 2005-02-28  Julian Brown  <julian@codesourcery.com>
2998
2999         * config/elfos.h: Revert my patch from 2005-02-25 since it broke
3000         building libjava and caused PR regression/20228.
3001
3002 2005-02-28  Paolo Bonzini  <bonzini@gnu.org>
3003
3004         PR bootstrap/17383
3005         * Makefile.in (host_subdir): New.
3006         (build_objdir): New.  Replace ../$(build_subdir) with it throughout.
3007         * configure: Regenerate.
3008
3009 2005-02-27  Zack Weinberg  <zack@codesourcery.com>
3010
3011         * config/alpha/t-osf4, config/arm/t-netbsd, config/ia64/t-hpux
3012         * config/pa/t-hpux-shlib (SHLIB_INSTALL): Create the
3013         installation directory first.
3014
3015 2005-02-28  Hans-Peter Nilsson  <hp@axis.com>
3016
3017         PR target/19065.
3018         * config/cris/cris.h (EXTRA_CONSTRAINT_Q): Accept only (mem (reg)),
3019         not including (reg). Do not check for reg being CRIS_PC_REGNUM.
3020         (EXTRA_MEMORY_CONSTRAINT): Define as 'Q'.
3021         * config/cris/cris.md: Tweak comments referring to Q.
3022         ("cmpsi", "cmphi", "cmpqi", "*movsi_internal", "movhi")
3023         ("movstricthi", "movqi", "movstrictqi", "movsf", "addsi3")
3024         ("addhi3", "addqi3", "subsi3", "subhi3", "subqi3")
3025         ("*expanded_andsi", "*expanded_andhi", "*andhi_lowpart", "andqi3")
3026         ("*andqi_lowpart", "iorsi3", "iorhi3", "iorqi3", "uminsi3"):
3027         Insert spaces in constraints to align alternatives vertically for
3028         readability.
3029         ("cmphi"): Ditto.  Add separate alternative for operand 0 "r",
3030         operand 1: "M".
3031
3032 2005-02-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3033
3034         PR rtl-optimization/17728
3035         * pa.md (mulsi3, divsi3, udivsi3, modsi3): Change predicate for
3036         operand 0 from general_operand to move_dest_operand.
3037
3038 2005-02-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3039
3040         * pa/elf.h, pa/som.h (ASM_OUTPUT_EXTERNAL): Use assemble_name_raw
3041         instead of trying to save and restore TREE_SYMBOL_REFERENCED.
3042         * pa/pa64-hpux.h (ASM_OUTPUT_TYPE_DIRECTIVE): Define.
3043         (ASM_OUTPUT_EXTERNAL): Don't save and restore TREE_SYMBOL_REFERENCED.
3044
3045 2005-02-26  Nathanael Nerode  <neroden@gcc.gnu.org>
3046
3047         * configure.ac: Rename cc_for_cross_gnattools to host_cc_for_libada.
3048         * configure: Regenerate.
3049         * libada-mk.in: Remove CC; rename
3050         cc_for_cross_gnattools / cc_set_by_configure to host_cc_for_libada.
3051
3052 2005-02-26  Andrew Pinski  <pinskia@physics.uc.edu>
3053
3054         PR tree-opt/20188
3055         * tree-ssa-alias.c (count_uses_and_derefs): If we have TREE_LIST
3056         for the lhs, also walk over the tree.  Likewise for rhs.
3057
3058 2005-02-26  Zdenek Dvorak  <dvorakz@suse.cz>
3059
3060         * tree-ssa-dom.c (simple_iv_increment_p): New function.
3061         (simplify_rhs_and_lookup_avail_expr, eliminate_redundant_computations):
3062         Do not propagate value of iv before increment over the increment.
3063
3064 2005-02-25  Joseph S. Myers  <joseph@codesourcery.com>
3065
3066         * c-parser.c: New file.
3067         * c-parse.in: Remove.
3068         * Makefile.in (c-parse.o-warn, c-parse.o, c-parse.c, c-parse.y):
3069         Remove.
3070         (c-parser.o): Add dependencies.
3071         (C_AND_OBJC_OBJC, C_OBJS, gcc.srcextra, GTFILES, distclean,
3072         maintainer-clean, TAGS): Update.
3073         * c-config-lang.in (gtfiles): Update.
3074         * gengtype-lex.l: Don't handle "@@".
3075         * stub-objc.c (objc_get_class_ivars, objc_build_throw_stmt,
3076         objc_build_synchronized, objc_begin_try_stmt,
3077         objc_begin_catch_clause, objc_finish_catch_clause,
3078         objc_build_finally_clause, objc_finish_try_stmt): New.
3079         * c-tree.h (struct c_declspecs): Add declspecs_seen_p and
3080         type_seen_p.
3081         (c_parse_init): Update comment.
3082         * c-decl.c (c_init_decl_processing): Update comment.
3083         (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
3084         declspecs_add_scspec, declspecs_add_attrs): Initialize and update
3085         new c_declspecs members.
3086
3087 2005-02-25  Julian Brown  <julian@codesourcery.com>
3088
3089         * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK
3090         from being used for symbols with vague linkage when
3091         HAVE_GAS_COMDAT_GROUP is true.
3092
3093 2005-02-25  Mark Mitchell  <mark@codesourcery.com>
3094
3095         * doc/include/gcc-common.texi (version-GCC): Update to 4.1.
3096
3097 2005-02-25  Steve Ellcey  <sje@cup.hp.com>
3098
3099         PR target/19930
3100         * doc/tm.texi (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Document.
3101         (LIBGCC2_HAS_DF_MODE): New.
3102         (LIBGCC2_HAS_XF_MODE): New.
3103         (LIBGCC2_HAS_TF_MODE): New.
3104         * libgcc2.h (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
3105         (LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
3106         * libgcc2.c (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
3107         (LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
3108         (LIBGCC2_HAS_DF_MODE): New name for HAVE_DFMODE.
3109         * config/ia64/t-ia64 (LIB1ASMFUNCS): Remove __compat
3110         and add _fixtfdi, _fixunstfdi, _floatditf
3111         * lib1funcs.asm: Remove L__compat. Add L_fixtfdi,
3112         L_fixunstfdi, L_floatditf.
3113         * config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE): Define.
3114         (LIBGCC2_HAS_TF_MODE): Define.
3115
3116 2005-02-25  Diego Novillo  <dnovillo@redhat.com>
3117
3118         PR tree-optimization/20204
3119         * tree-into-ssa.c (insert_phi_nodes_for): Do not use
3120         REWRITE_THIS_STMT markers on PHI nodes.
3121         (rewrite_initialize_block): Likewise.
3122
3123 2005-02-25  Mark Mitchell  <mark@codesourcery.com>
3124
3125         * version.c (version_string): Update to 4.1.
3126
3127 2005-02-25  Paolo Carlini  <pcarlini@suse.de>
3128
3129         * doc/extend.texi (5.24 Declaring Attributes of Functions)<noreturn>:
3130         Clarify that the alternative way doesn't work in GNU C++.
3131
3132 2005-02-25  Zdenek Dvorak  <dvorakz@suse.cz>
3133
3134         PR tree-optimization/19937
3135         * tree-ssa-loop-ivopts.c (rewrite_use_compare): Cast the final value
3136         to the type of the induction variable.
3137
3138 2005-02-25  Kaz Kojima  <kkojima@gcc.gnu.org>
3139
3140         PR rtl-optimization/20117
3141         * bb-reorder.c (duplicate_computed_gotos): Don't duplicate
3142         the block including noncopyable insn.
3143
3144 2005-02-24  Kazu Hirata  <kazu@cs.umass.edu>
3145
3146         * cse.c (delete_trivially_dead_insns): Speed up by minimizing
3147         calls to find_reg_note.
3148
3149 2005-02-24  Richard Henderson  <rth@redhat.com>
3150
3151         PR tree-opt/20127
3152         * tree-sra.c (instantiate_element): Copy TREE_THIS_VOLATILE from
3153         the type.
3154
3155 2005-02-24  Fariborz Jahanian <fjahanian@apple.com>
3156
3157         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Check for
3158         vector types if to use base reg for misaligned non-word ld/std.
3159
3160 2005-02-24  Hans-Peter Nilsson  <hp@axis.com>
3161
3162         PR target/14619
3163         * config/cris/cris.c (cris_target_asm_function_prologue): Create
3164         dwarf2 label manually and put it after, not before the prologue.
3165
3166 2005-02-24  David Edelsohn  <edelsohn@gnu.org>
3167
3168         PR target/19019
3169         * reload.c (operands_match_p): Only increment register number for
3170         SCALAR_INT_MODE_P modes in multiple hard registers.
3171
3172         * config/rs6000/rs6000.md (trunctfdf2): Remove register constraints.
3173         Fix formatting.
3174
3175 2005-02-24  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3176
3177         * ChangeLog.5: Fix log message typo(s).
3178         * ChangeLog.7: Likewise.
3179         * ChangeLog.tree-ssa: Likewise.
3180         * cfgexpand.c: Fix comment typo(s).
3181         * conflict.c: Likewise.
3182         * defaults.h: Likewise.
3183         * dwarf2out.c: Likewise.
3184         * gcse.c: Likewise.
3185         * ggc-page.c: Likewise.
3186         * tree-eh.c: Likewise.
3187         * tree-ssa-dom.c: Likewise.
3188
3189 2005-02-24  Jakub Jelinek  <jakub@redhat.com>
3190
3191         PR target/19019
3192         * mklibgcc.in: Pass -DSHARED when compiling all *_s${objext} objects.
3193         * config/rs6000/darwin-ldouble.c: Only use the .symver directives
3194         if SHARED is defined.
3195
3196         PR target/20196
3197         * config/rs6000/rs6000.md (LTU, GTU sCC splitters): Add earlyclobber,
3198         allow splitting only if operands 0 and 3 don't overlap.
3199
3200 2005-02-24  Richard Henderson  <rth@redhat.com>
3201
3202         PR middle-end/19953
3203         * builtins.c (fold_builtin_complex_mul, fold_builtin_complex_div): New.
3204         (fold_builtin_1): Call them.
3205         * fold-const.c (fold_complex_mult_parts): Split out from ...
3206         (fold_complex_mult): ... here.  Fix typo in both imaginary case.
3207         (fold_complex_div_parts, fold_complex_div): New.
3208         (fold): Use them.
3209         * tree.h (fold_complex_mult_parts, fold_complex_div_parts): Declare.
3210
3211 2005-02-24  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3212
3213         * tree-ssa-ccp.c (visit_assignment): Verify that result of
3214         VIEW_CONVERT_EXPR is_gimple_min_invariant.
3215
3216         * print-tree.c (print_node_brief): Print LABEL_DECL_UID.
3217         (print_node): Likewise.
3218         Print TYPE_SIZES_GIMPLIFIED.
3219
3220 2005-02-24  Hans-Peter Nilsson  <hp@axis.com>
3221
3222         * config/cris/cris.md ("umulhisi3", "umulqihi3", "mulsi3")
3223         ("mulqihi3", "mulhisi3", "mulsidi3", "umulsidi3"): Mark input
3224         operands as commutative in constraints.
3225
3226 2005-02-24  Diego Novillo  <dnovillo@redhat.com>
3227
3228         * tree-into-ssa.c: Re-organize internal functions.
3229
3230 2005-02-24  Richard Henderson  <rth@redhat.com>
3231
3232         PR middle-end/18902
3233         * c-opts.c (c_common_post_options): Set flag_complex_method to 2
3234         for c99.
3235         * common.opt (fcx-limited-range): New.
3236         * opts.c (set_fast_math_flags): Set flag_cx_limited_range.
3237         * toplev.c (flag_complex_method): Initialize to 1.
3238         (process_options): Set flag_complex_method to 0 if
3239         flag_cx_limited_range.
3240         * doc/invoke.texi (-fcx-limited-range): New.
3241
3242 2005-02-24  Kazu Hirata  <kazu@cs.umass.edu>
3243
3244         * cse.c (delete_trivially_dead_insns): Speed up by using
3245         NEXT_INSN and PREV_INSN directly instead of next_real_insn and
3246         prev_real_insn.
3247
3248 2005-02-24  Andrea Tarani  <andrea.tarani@gilbarco.com>
3249
3250         * config/m68k/m68k.c (m68k_save_reg): Also save A5 for non-leaf
3251         functions when -mid-shared-library is being used.
3252
3253 2005-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
3254
3255         * doc/tm.texi (LINK_LIBGCC_SPECIAL): Remove.
3256         (LINK_LIBGCC_SPECIAL_1): Don't mention it.
3257         * gcc.c: Don't check for LINK_LIBGCC_SPECIAL.
3258         * system.h: Poison LINK_LIBGCC_SPECIAL.
3259
3260 2005-02-23  James E Wilson  <wilson@specifixinc.com>
3261
3262         * gengtype.c (note_insn_name): Make 1 element larger.
3263
3264 2005-02-23  Roger Sayle  <roger@eyesopen.com>
3265
3266         PR target/20018
3267         PR rtl-optimization/20097
3268         * simplify-rtx.c (simplify_relational_operation_1): Avoid creating
3269         BImode SUBREGs of SImode registers which confuse the ia64 backend.
3270
3271 2005-02-23  David Edelsohn  <edelsohn@gnu.org>
3272
3273         * t-aix43 (SHLIB_INSTALL): Create directory for shared library.
3274         * t-aix52 (SHLIB_INSTALL): Same.
3275
3276 2005-02-23  Kazu Hirata  <kazu@cs.umass.edu>
3277
3278         * genpreds.c: Update copyright.
3279
3280 2005-02-23  Michael Beach  <michaelb@ieee.org>
3281
3282         PR target/20159
3283         * config/sparc/t-elf (startup files): Assemble with CPP.
3284
3285 2005-02-23  Paolo Bonzini  <bonzini@gnu.org>
3286
3287         * genpreds.c (mark_mode_tests): Handle non-VOIDmode match_operands.
3288         (write_predicate_expr): Likewise.
3289
3290 2005-02-22  Diego Novillo  <dnovillo@redhat.com>
3291
3292         PR tree-optimization/20100
3293         PR tree-optimization/20115
3294         * tree-optimize.c (init_tree_optimization_passes): Remove
3295         pass_maybe_create_global_var.
3296         * tree-pass.h (pass_maybe_create_global_var): Remove.
3297         * tree-ssa-alias.c (aliases_computed_p): Declare.
3298         (struct alias_info): Add field NUM_PURE_CONST_CALLS_FOUND.
3299         (count_calls_and_maybe_create_global_var): Remove.
3300         (pass_maybe_create_global_var): Remove.
3301         (init_alias_info): Do not declare aliases_computed_p.
3302         (maybe_create_global_var): If the function contains no
3303         call-clobbered variables and a mix of pure/const and regular
3304         function calls, create .GLOBAL_VAR.
3305         Mark all call-clobbered variables for renaming.
3306         (merge_pointed_to_info): Update comment.
3307         (add_pointed_to_var): Likewise.
3308         (is_escape_site): Likewise.
3309         Accept struct alias_info * instead of size_t *.
3310         Update all users.
3311         Update AI->NUM_CALLS_FOUND and AI->NUM_PURE_CONST_CALLS_FOUND
3312         as necessary.
3313         * tree-ssa-operands.c (get_call_expr_operands): If
3314         ALIASES_COMPUTED_P is false, do not add call-clobbering
3315         operands.
3316         * tree-ssa.c (init_tree_ssa): Set ALIASES_COMPUTED_P to false.
3317         (delete_tree_ssa): Likewise.
3318
3319 2005-02-22  James E Wilson  <wilson@specifixinc.com>
3320
3321         * toplev.c (backend_init): Don't call init_adjust_machine_modes here.
3322         (do_compile): Do call it here.
3323
3324 2005-02-22  Kazu Hirata  <kazu@cs.umass.edu>
3325
3326         PR rtl-optimization/20017.
3327         * passes.c (rest_of_handle_combine, rest_of_handle_cse,
3328         rest_of_handle_cse2, rest_of_handle_gcse): Call
3329         delete_dead_jumptables immediately before calling cleanup_cfg.
3330
3331 2005-02-22  Devang Patel  <dpatel@apple.com>
3332
3333         PR 19952
3334         * tree-if-conv.c (process_phi_nodes): Use bsi_after_labels and skip
3335         all labels
3336
3337 2005-02-22  David Edelsohn  <edelsohn@gnu.org>
3338
3339         * config/rs6000/aix.h (WINT_TYPE): Define.
3340
3341 2005-02-22  Stan Shebs  <shebs@apple.com>
3342
3343         * config/rs6000/rs6000.c (rs6000_override_options): Default to
3344         natural alignment for 64-bit Darwin.
3345         (rs6000_parse_alignment_option): Warn about uses of -malign-power
3346         on 64-bit Darwin.
3347         * doc/invoke.texi: Document this.
3348
3349 2005-02-22  DJ Delorie  <dj@redhat.com>
3350
3351         * c-common.c (c_common_type_for_mode): Pass the mode's precision
3352         to make_[un]signed_type, not the mode itself.
3353
3354 2005-02-22  Kazu Hirata  <kazu@cs.umass.edu>
3355
3356         * cfg.c (cached_make_edge): Call make_edge if edge cache is
3357         not available.  Use tail calls wherever possible.
3358         (make_edge): Call unchecked_make_edge to create an edge.
3359
3360         * tree-outof-ssa.c (SSANORM_USE_COALESCE_LIST): Remove.
3361         (coalesce_ssa_name): Don't check for
3362         SSANORM_USE_COALESCE_LIST.
3363         (rewrite_out_of_ssa): Don't use SSANORM_USE_COALESCE_LIST.
3364
3365 2005-02-22  Diego Novillo  <dnovillo@redhat.com>
3366
3367         * tree-into-ssa.c (rewrite_blocks): Move debug dumps from ...
3368         (rewrite_into_ssa): ... here.
3369
3370 2005-02-21  Alexandre Oliva  <aoliva@redhat.com>
3371
3372         PR tree-optimization/19786
3373         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add one
3374         tag to another's may-alias bitmap when adding to the other's list.
3375
3376 2005-02-21  DJ Delorie  <dj@redhat.com>
3377
3378         * tree-ssa-loop-ivopts.c (computation_cost): Start register
3379         numbering at LAST_VIRTUAL_REGISTER+1 to avoid possibly using hard
3380         registers in unsupported ways.
3381         * expmed.c (init_expmed): Likewise.
3382
3383 2005-02-21  Stan Cox  <scox@redhat.com>
3384
3385         * config/iq2000/iq2000.h (DWARF_FRAME_RETURN_COLUMN): Change to 31.
3386
3387 2005-02-21  Kazu Hirata  <kazu@cs.umass.edu>
3388
3389         * tree-cfg.c (fold_cond_expr_cond): New.
3390         (make_edges): Call fold_cond_expr_cond.
3391         (find_taken_edge): Accept nothing but INTEGER_CST.
3392         (find_taken_edge_cond_expr): Reject INTEGER_CST other than 0
3393         and 1.
3394         (find_taken_edge_switch_expr): Remove a check for INTEGER_CST.
3395
3396         * flow.c (delete_dead_jumptables): Speed up by scanning insns
3397         that do not belong to any basic block.
3398
3399 2005-02-21  Jeff Law  <law@redhat.com>
3400
3401         * cfganal.c (find_unreachable_blocks): Manually CSE load of
3402         e->dest.
3403
3404 2005-02-21  Kazu Hirata  <kazu@cs.umass.edu>
3405
3406         * tree-outof-ssa.c (SSANORM_REMOVE_ALL_PHIS): Remove.
3407         (SSANORM_COALESCE_PARTITIONS, SSANORM_USE_COALESCE_LIST):
3408         Adjust their definitions.
3409         (remove_ssa_form): Don't check for SSANORM_REMOVE_ALL_PHIS.
3410         (rewrite_out_of_ssa): Don't use SSANORM_REMOVE_ALL_PHIS.
3411
3412         * c-objc-common.h, c-pretty-print.c, cgraphunit.c, except.c,
3413         genautomata.c, langhooks.c, langhooks.h, system.h,
3414         config/arm/lib1funcs.asm: Update copyright.
3415
3416 2005-02-21  Ulrich Weigand  <uweigand@de.ibm.com>
3417
3418         * dbxout.c (dbxout_function_end): Emit Lscope label always.
3419
3420 2005-02-21  Richard Guenther  <rguenth@gcc.gnu.org>
3421
3422         PR bootstrap/13770
3423         * doc/install.texi: Document --with-gc.
3424
3425 2005-02-21  Paolo Bonzini  <bonzini@gnu.org>
3426
3427         * simplify-rtx.c (simplify_unary_operation): Add a missing
3428         "break" statement.
3429
3430 2005-02-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
3431
3432         PR tree-optimization/18663
3433         * tree-ssa-dom.c (extract_range_from_cond): Return 0
3434         if the type has variable bounds.
3435
3436 2005-02-20  Kazu Hirata  <kazu@cs.umass.edu>