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