OSDN Git Service

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