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