OSDN Git Service

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