OSDN Git Service

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