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