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