OSDN Git Service

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