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