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