OSDN Git Service

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