1 2005-03-21 Mike Stump <mrs@apple.com>
3 * varasm.c (default_assemble_visibility): Remove extra ().
5 2005-03-21 Roger Sayle <roger@eyesopen.com>
8 * bb-reorder.c (duplicate_computed_gotos): Use can_duplicate_block_p
9 to determine whether a block can be duplicated, rather than test
10 whether the block contains noncopyable insns ourselves.
12 2005-03-21 Kazu Hirata <kazu@cs.umass.edu>
14 * config/i860/i860.h (PREDICATE_CODES): Remove nonexistent
17 2005-03-21 Richard Sandiford <rsandifo@redhat.com>
19 * config/ip2k/ip2k.h (target_flags, TARGET_SWITCHES): Delete.
21 2005-03-21 Richard Sandiford <rsandifo@redhat.com>
23 * config/fr30/fr30.h (TARGET_SMALL_MODEL_MASK, TARGET_SMALL_MODEL)
24 (TARGET_DEFAULT, target_flags, TARGET_SWITCHES): Delete.
25 * config/fr30/fr30.opt: New file.
27 2005-03-18 Daniel Berlin <dberlin@dberlin.org>
29 Fix PR tree-optimization/20542
31 * tree-flow-inline.h (overlap_subvar): Move to here.
32 * tree-ssa-operands.c: From here.
33 * tree-flow.h (overlap_subvar): Declare.
34 * tree-ssa-alias.c (add_pointed_to_var): Use overlap_subvar here.
35 * tree-ssa-loop-im.c (is_call_clobbered_ref): Return proper answer
36 for variables with subvars.
38 2005-03-21 Mostafa Hagog <mustafa@il.ibm.com>
41 * ddg.c (create_ddg_dependence): Ignore reg-anti dependency.
42 * modulo-sched.c (const_iteration_count): Return on NULL
44 (print_node_sched_params): Return on NULL dump_file.
45 (generate_reg_moves): Handle reg-anti dependencies and disregard
46 closing branch when generating register moves.
47 (sms_schedule): Mark the SMSed block dirty.
48 * passes.c (rest_of_handle_sms): Call update_life_info for all
50 * testsuite/gcc.dg/20050321-1.c: New test.
52 2005-03-21 Bob Wilson <bob.wilson@acm.org>
54 * config/xtensa/lib1funcs.asm (__mulsi3): Use symbolic name for ACCLO.
55 * config/xtensa/xtensa.md (movsi_internal, movhi_internal,
56 movqi_internal): Likewise.
58 2005-03-21 Bob Wilson <bob.wilson@acm.org>
60 * config/xtensa/xtensa-protos.h: (xtensa_simm7, xtensa_uimm8,
61 xtensa_uimm8x2, xtensa_uimm8x4, xtensa_ai4const, xtensa_lsi4x4,
62 xtensa_b4const): Delete prototypes.
63 (xtensa_simm8, xtensa_simm8x256, xtensa_simm12b, xtensa_b4constu,
64 xtensa_mask_immediate, xtensa_mem_offset): Update prototypes.
65 (xtensa_b4const_or_zero, xtensa_const_ok_for_letter_p,
66 xtensa_extra_constraint): New prototypes.
67 (add_operand, arith_operand, nonimmed_operand, mem_operand,
68 mask_operand, extui_fldsz_operand, sext_operand, sext_fldsz_operand,
69 lsbitnum_operand, branch_operand, ubranch_operand, call_insn_operand,
70 move_operand, const_float_1_operand, fpmem_offset_operand,
71 branch_operator, ubranch_operator, boolean_operator): Delete prototypes.
72 * config/xtensa/xtensa.c (b4const_or_zero): Rename to ...
73 (xtensa_b4const_or_zero): ...this. Change return type to bool and
74 argument type to HOST_WIDE_INT.
75 (xtensa_simm8, xtensa_simm8x256, xtensa_simm12b,
76 xtensa_mask_immediate): Likewise.
77 (xtensa_uimm8, xtensa_uimm8x2, xtensa_uimm8x4, xtensa_b4const):
78 Likewise. Also make these functions static.
79 (xtensa_simm7, xtensa_ai4const, xtensa_lsi4x4): Delete.
80 (xtensa_const_ok_for_letter_p): New.
81 (add_operand, arith_operand, nonimmed_operand, mem_operand,
82 mask_operand, extui_fldsz_operand, sext_operand, sext_fldsz_operand,
83 lsbitnum_operand, branch_operand, ubranch_operand, call_insn_operand,
84 move_operand, const_float_1_operand, fpmem_offset_operand,
85 branch_operator, ubranch_operator, boolean_operator): Move to
87 (smalloffset_mem_p): Inline code from xtensa_lsi4x4.
88 (xtensa_mem_offset): Change return type to bool.
89 (xtensa_extra_constraint): New.
90 (gen_int_relational): Update type of const_range_p function pointer.
91 Use xtensa_b4const_or_zero.
92 * config/xtensa/xtensa.h (CONST_OK_FOR_LETTER_P): Define to
93 xtensa_const_ok_for_letter_p. Update comments.
94 (EXTRA_CONSTRAINT): Define to xtensa_extra_constraint.
95 (PREDICATE_CODES): Delete.
96 * config/xtensa/xtensa.md: Include predicates.md.
97 * config/xtensa/predicates.md: New file.
99 2005-03-21 Kazu Hirata <kazu@cs.umass.edu>
101 * config/v850/v850-protos.h: Remove the prototypes for
102 reg_or_int9_operand, reg_or_const_operand,
103 pattern_is_ok_for_prepare, pattern_is_ok_for_dispose,
104 reg_or_0_operand, reg_or_int5_operand, call_address_operand,
105 movsi_source_operand, power_of_two_operand,
106 not_power_of_two_operand, special_symbolref_operand,
107 pattern_is_ok_for_prologue, pattern_is_ok_for_epilogue, and
108 register_is_ok_for_epilogue.
109 * config/v850/v850.c (reg_or_0_operand, reg_or_int5_operand,
110 reg_or_int9_operand, reg_or_const_operand,
111 call_address_operand, special_symbolref_operand,
112 movsi_source_operand, power_of_two_operand,
113 not_power_of_two_operand, register_is_ok_for_epilogue,
114 pattern_is_ok_for_epilogue, pattern_is_ok_for_prologue,
115 pattern_is_ok_for_dispose, pattern_is_ok_for_prepare): Move to
117 * config/v850/v850.h (PREDICATE_CODES): Remove.
118 * config/v850/v850.md: Include predicates.md.
119 * config/v850/predicates.md: New.
121 2005-03-21 Zack Weinberg <zack@codesourcery.com>
123 * Makefile.in (BASEVER, DEVPHASE, DATESTAMP)
124 (BASEVER_c, DEVPHASE_c, DATESTAMP_c)
125 (BASEVER_s, DEVPHASE_s, DATESTAMP_s, version): Set with :=.
126 (itoolsdir, itoolsdatadir): Move definition above new first use.
127 (install-itoolsdirs): New rule.
128 (install-mkheaders): Depend on install-itoolsdirs, not
131 2005-03-21 Kazu Hirata <kazu@cs.umass.edu>
133 * tree-into-ssa.c: Remove obsolete comments.
135 2005-03-21 Richard Guenther <rguenth@gcc.gnu.org>
137 * tree-ssa-loop.c (gate_tree_complete_unroll): Run complete
138 unrolling if -fpeel-loops is specified, too.
139 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
140 Remove superfluous check for flag_unroll_loops.
142 2005-03-21 Uros Bizjak <uros@kss-loka.si>
144 * optabs.h (enum optab_index): Add new OTI_lrint and OTI_llrint.
145 (lrint_optab, llrint_optab): Define corresponding macros.
146 * optabs.c (init_optabs): Initialize lrint_optab and llrint_optab.
147 * genopinit.c (optabs): Implement lrint_optab using lrintsi2
148 pattern and llrint_optab using llrintdi2 patterns.
149 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LRINT{,F,L}
150 using lrint_optab and BUILT_IN_LLRINT{,F,L} using llrint_optab.
151 (expand_builtin): Expand BUILT_IN_LRINT{,F,L} and
152 BUILT_IN_LLRINT{,F,L} using expand_builtin_mathfn if
153 flag_unsafe_math_optimizations is set.
155 2005-03-21 Paolo Bonzini <bonzini@gnu.org>
157 * combine.c (combine_simplify_rtx, simplify_if_then_else,
158 simplify_logical, if_then_else_cond, known_cond,
159 simplify_comparison): Adjust calls to reverse_comparison.
160 Don't use combine_reversed_comparison_code).
161 (combine_reversed_comparison_code): Remove.
162 (reversed_comparison): Using reversed_comparison_code, move it...
163 * jump.c (reversed_comparison): ... here.
164 * rtl.h (reversed_comparison): Add prototype.
166 2005-03-21 Kazu Hirata <kazu@cs.umass.edu>
168 * builtins.c (fold_builtin): Take decomposed arguments of
170 * fold-const.c (fold_ternary): Update a call to fold_builtin.
171 * gimplify.c (gimplify_call_expr): Likewise.
172 * tree-ssa-ccp.c (ccp_fold, ccp_fold_builtin): Likewise.
173 * tree.h: Update the prototype of fold_builtin.
175 2005-03-21 Paolo Bonzini <bonzini@gnu.org>
177 * rtl.h (struct rtx_hooks): Add gen_lowpart_no_emit.
178 * rtlhooks.c (gen_lowpart_no_emit_general): New.
179 * rtlhooks-def.h (gen_lowpart_no_emit_general): Declare.
180 (RTL_HOOKS_GEN_LOWPART_NO_EMIT): New.
181 * simplify-rtx.c (simplify_binary_operation_1): Use it.
183 2005-03-21 Kazu Hirata <kazu@cs.umass.edu>
185 * builtins.c (fold_builtin_1): Take decomposed arguments of
187 (fold_builtin): Update a call to fold_builtin_1.
189 2005-03-21 Nathan Sidwell <nathan@codesourcery.com>
192 * gcov.c (output_lines): Only output function block summary when
193 outputting branch information.
194 * doc/gcov.texi: Document format of preamble and additional block
197 2005-03-21 Richard Sandiford <rsandifo@redhat.com>
199 * libgcc2.h (LIBGCC2_HAS_SF_MODE): New macro.
200 (LIBGCC2_HAS_DF_MODE, LIBGCC2_HAS_TF_MODE, LIBGCC2_HAS_XF_MODE): Make
201 the defaults false if BITS_PER_UNIT != 8.
202 (SFtype, SCtype, __fixsfdi, __floatdisf, __fixunssfSI, __fixunssfDI)
203 (__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE rather
204 than BITS_PER_UNIT != 8.
205 (L_fixdfdi, L_fixsfdi, L_fixtfdi, L_fixunsdfdi, L_fixunsdfsi)
206 (L_fixunssfdi, L_fixunssfsi, L_fixunstfdi, L_fixunsxfdi, L_fixunsxfsi)
207 (L_fixxfdi, L_floatdidf, L_floatdisf, L_floatditf, L_floatdixf): Remove
209 * libgcc2.c (__fixunssfDI, __fixsfdi, __floatdisf, __fixunssfSI)
210 (__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE.
212 2005-03-20 Roger Sayle <roger@eyesopen.com>
215 * fold-const.c (fold_binary): Fix type mismatch between
216 TRUTH_{AND,OR,XOR}_EXPR nodes an their operands' types.
217 (fold_binary) <TRUTH_XOR_EXPR>: Avoid calling invert_truthvalue
218 for non-truth-valued expressions.
220 * c-common.c (c_common_truthvalue_conversion): Handle ERROR_MARK
221 and FUNCTION_DECL in the main switch.
222 <TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
223 TRUTH_XOR_EXPR>: When changing the result type of these tree nodes,
224 we also need to convert their operands to match.
225 <TRUTH_NOT_EXPR>: Likewise.
227 2005-03-21 Joseph S. Myers <joseph@codesourcery.com>
229 * c-common.c (lvalue_or_else): Replace by lvalue_error; only give
230 diagnostic without checking whether an lvalue.
231 * c-common.h (lvalue_p): Remove.
232 (enum lvalue_use): Update comment.
233 (lvalue_or_else): Replace by lvalue_error.
234 * c-typeck.c (lvalue_p): Make static.
235 (lvalue_or_else): New. Call lvalue_error.
237 2005-03-21 Alan Modra <amodra@bigpond.net.au>
239 * config/rs6000/rs6000.c (rs6000_parm_start): New function.
240 (function_arg_advance): Use rs6000_parm_start.
241 (function_arg, rs6000_arg_partial_bytes): Likewise.
243 2005-03-20 Joseph S. Myers <joseph@codesourcery.com>
245 * c-common.c (check_case_value): Adjust comment about stripping
247 (handle_vector_size_attribute): Don't strip NON_LVALUE_EXPR.
248 * c-typeck.c (default_conversion, convert_arguments,
249 build_modify_expr, convert_for_assignment, store_init_value,
250 digest_init): Use STRIP_TYPE_NOPS instead of stripping nops
251 manually. Remove inaccurate comments.
253 2005-03-20 Roger Sayle <roger@eyesopen.com>
254 Joseph S. Myers <joseph@codesourcery.com>
256 * varasm.c (do_assemble_alias): Restore comment describing function.
257 Annotate the target parameter as potentially unused.
259 2005-03-20 Marek Michalkiewicz <marekm@amelek.gda.pl>
262 * config/avr/avr.c (avr_output_function_prologue): Do not use
263 current_function_name() in a label, use a local label instead.
265 2005-03-20 David Edelsohn <edelsohn@gnu.org>
267 * config/rs6000/rs6000.c (rs6000_generate_compare): Test
268 flag_finite_math_only, not flag_unsafe_math_optimizations.
270 2005-03-20 Kazu Hirata <kazu@cs.umass.edu>
272 * builtins.c (fold_builtin_1): Update a call to
273 targetm.fold_builtin.
274 * hooks.c (hook_tree_tree_bool_null): Rename to
275 hook_tree_tree_tree_bool_null. Take one more argument of type
277 * hooks.h: Update the prototype of hook_tree_tree_bool_null.
278 * target-def.h (TARGET_FOLD_BUILTIN): Define it as
279 hook_tree_tree_tree_bool_null.
280 * target.h (gcc_target): Update the prototype of fold_builtin.
281 * config/alpha/alpha.c (alpha_fold_builtin): Take decomposed
282 arguments of CALL_EXPR.
283 * doc/tm.texi (TARGET_FOLD_BUILTIN): Update. Mention the
286 2005-03-20 Jan Hubicka <jh@suse.cz>
288 * cgraph.h (cgraph_node): Add prev_clone pointer.
289 * cgraph.c (cgraph_remove_node): Remove from doubly linked chain.
290 (cgraph_clone_node): Produce doubly linked chain.
292 2005-03-20 Joseph S. Myers <joseph@codesourcery.com>
294 * c-common.c (handle_aligned_attribute, check_function_sentinel,
295 get_nonnull_operand, handle_sentinel_attribute,
296 check_function_arguments_recurse): Do not strip NOPS from
298 * c-decl.c (check_bitfield_type_and_width, build_enumerator):
300 * c-format.c (get_constant): Likewise.
301 * c-parser.c (c_parser_postfix_expression): Likewise.
302 * c-typeck.c (set_init_index): Likewise.
303 (convert_arguments): Don't check for NOP_EXPR containing integer
306 2005-03-20 Kazu Hirata <kazu@cs.umass.edu>
308 * builtins.c (fold_fixed_mathfn, fold_builtin_trunc,
309 fold_builtin_floor, fold_builtin_ceil, fold_builtin_lround):
310 Take decomposed arguments of CALL_EXPR.
311 (fold_builtin_1): Update calls to the functions mentioned
314 2005-03-20 Joseph S. Myers <joseph@codesourcery.com>
316 * c-decl.c (check_bitfield_type_and_width): Require bit-field
317 width to have integer type.
318 (build_enumerator): Require enumerator value to have integer type.
320 2005-03-19 Joseph S. Myers <joseph@codesourcery.com>
322 * doc/extend.texi (__builtin_inf): Move statement about INFINITY
325 2005-03-19 Joseph S. Myers <joseph@codesourcery.com>
327 * c.opt (ansi, std=iso9899:1990, std=iso9899:1999,
328 std=iso9899:199x): Correct descriptions.
330 2005-03-19 Joseph S. Myers <joseph@codesourcery.com>
332 * config.gcc: Consistently use solaris2.1[0-9]* instead of
335 2005-03-19 Kazu Hirata <kazu@cs.umass.edu>
337 * builtins.c (fold_builtin_memcpy): Take decomposed arguments
339 (expand_builtin_memcpy, fold_builtin_1): Update calls to
342 * builtins.c (fold_trunc_transparent_mathfn): Take decomposed
343 arguments of CALL_EXPR.
344 (fold_builtin_trunc, fold_builtin_floor, fold_builtin_ceil,
345 fold_builtin_found, fold_builtin_1): Update calls to
346 fold_trunc_transparent_mathfn.
348 2005-03-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
351 * fold-const.c (fold_widened_comparison): Don't optimize casts of
352 function pointers on targets that require function pointer
354 (fold_sign_changed_comparison): Likewise.
356 2005-03-19 Bernd Schmidt <bernd.schmidt@analog.com>
358 * combine.c (try_combine): When changing the mode of a hard reg, make
359 sure that doing so is valid.
361 2005-03-19 Richard Sandiford <rsandifo@redhat.com>
363 * config/avr/avr.c (avr_init_stack, avr_mcu_name): Make static.
364 (TARGET_HANDLE_OPTION): Override default.
365 (avr_handle_option): New function.
366 * config/avr/avr.h (MASK_ALL_DEBUG, MASK_ORDER_1, MASK_INSN_SIZE_DUMP)
367 (MASK_ORDER_2, MASK_NO_TABLEJUMP, MASK_INT8, MASK_NO_INTERRUPTS)
368 (MASK_CALL_PROLOGUES, MASK_TINY_STACK, MASK_SHORT_CALLS)
369 (TARGET_ORDER_1, TARGET_ORDER_2, TARGET_INT8, TARGET_NO_INTERRUPTS)
370 (TARGET_INSN_SIZE_DUMP, TARGET_CALL_PROLOGUES, TARGET_TINY_STACK)
371 (TARGET_NO_TABLEJUMP, TARGET_SHORT_CALLS, TARGET_ALL_DEBUG)
372 (TARGET_SWITCHES, avr_init_stack, avr_mcu_name)
373 (TARGET_OPTIONS): Delete.
374 * config/avr/avr.opt: New file.
376 2005-03-18 2005-03-18 Kazu Hirata <kazu@cs.umass.edu>
378 * config/m32r/m32r-protos.h: Remove the prototypes for
379 call_address_operand, symbolic_operand, seth_add3_operand,
380 cmp_int16_operand, uint16_operand, reg_or_int16_operand,
381 reg_or_uint16_operand, reg_or_cmp_int16_operand,
382 two_insn_const_operand, move_src_operand,
383 move_double_src_operand, move_dest_operand,
384 eqne_comparison_operator, signed_comparison_operator,
385 large_insn_p, conditional_move_operand, carry_compare_operand,
386 m32r_block_immediate_operand, extend_operand,
387 reg_or_eq_int16_operand, int8_operand, and
389 * config/m32r/m32r.c (call_address_operand, symbolic_operand,
390 seth_add3_operand, int8_operand, cmp_int16_operand,
391 uint16_operand, reg_or_int16_operand, reg_or_uint16_operand,
392 reg_or_eq_int16_operand, reg_or_cmp_int16_operand,
393 reg_or_zero_operand, two_insn_const_operand, move_src_operand,
394 move_double_src_operand, move_dest_operand,
395 eqne_comparison_operator, signed_comparison_operator,
396 extend_operand, small_insn_p, large_insn_p,
397 conditional_move_operand, carry_compare_operand,
398 m32r_block_immediate_operand): Move to predicates.md.
399 (MAX_MOVE_BYTES): Move to m32r.h.
400 * config/m32r/m32r.h (PREDICATE_CODES): Remove.
401 * config/m32r/m32r.md: Include predicates.md.
402 * config/m32r/predicates.md: New.
404 2005-03-18 James E Wilson <wilson@specifixinc.com>
407 * dwarf2out.c (declare_in_namespace): Ignore decls with an abstract
410 2005-03-18 Kazu Hirata <kazu@cs.umass.edu>
412 * config/mn10300/mn10300-protos.h: Remove the prototypes for
413 call_address_operand, const_8bit_operand.
414 * config/mn10300/mn10300.c (call_address_operand,
415 const_8bit_operand, const_1f_operand): Move to predicates.md.
416 * config/mn10300/mn10300.h (PREDICATE_CODES): Remove.
417 * config/mn10300/mn10300.md: Include predicates.md.
418 * config/mn10300/predicates.md: New.
420 2005-03-18 Joseph S. Myers <joseph@codesourcery.com>
422 * c-common.c, c-decl.c, c-format.c, c-typeck.c: Use %D for
423 declarations in diagnostics and %E for identifiers, not %s.
425 2005-03-18 Jan Hubicka <jh@suse.cz>
426 Dale Johannesen <dalej@apple.com>
428 * basic-block.h (scale_bbs_frequencies_int,
429 scale_bbs_frequencies_gcov_type): Declare.
430 * cfg.c (RDIV): New macro.
431 (update_bb_frequency_for_threading): Fix.
432 * basic-block.h (scale_bbs_frequencies_int,
433 scale_bbs_frequencies_gcov_type): New.
434 * cfgloopmanip.c (scale_bbs_frequencies): Kill.
435 (scale_loop_frequencies, duplicate_loop_to_header_edge): Use
436 scale_bbs_frequencies_int.
437 * tree-ssa-loop-ch.c (copy_loop_headers): Fix profiling info.
439 2005-03-18 Kazu Hirata <kazu@cs.umass.edu>
441 * config/m32r/m32r-protos.h: Remove the prototypes for
442 call_address_operand, symbolic_operand, seth_add3_operand,
443 cmp_int16_operand, uint16_operand, reg_or_int16_operand,
444 reg_or_uint16_operand, reg_or_cmp_int16_operand,
445 two_insn_const_operand, move_src_operand,
446 move_double_src_operand, move_dest_operand,
447 eqne_comparison_operator, signed_comparison_operator,
448 large_insn_p, conditional_move_operand, carry_compare_operand,
449 m32r_block_immediate_operand, extend_operand,
450 reg_or_eq_int16_operand, int8_operand, and
452 * config/m32r/m32r.c (call_address_operand, symbolic_operand,
453 seth_add3_operand, int8_operand, cmp_int16_operand,
454 uint16_operand, reg_or_int16_operand, reg_or_uint16_operand,
455 reg_or_eq_int16_operand, reg_or_cmp_int16_operand,
456 reg_or_zero_operand, two_insn_const_operand, move_src_operand,
457 move_double_src_operand, move_dest_operand,
458 eqne_comparison_operator, signed_comparison_operator,
459 extend_operand, small_insn_p, large_insn_p,
460 conditional_move_operand, carry_compare_operand,
461 m32r_block_immediate_operand): Move to predicates.md.
462 (MAX_MOVE_BYTES): Move to m32r.h.
463 * config/m32r/m32r.h (PREDICATE_CODES): Remove.
464 * config/m32r/m32r.md: Include predicates.md.
465 * config/m32r/predicates.md: New.
467 * config/pa/pa-protos.h: Add prototypes for magic_milli and
469 * config/pa/pa.c (reg_or_0_operand, call_operand_address,
470 symbolic_operand, symbolic_memory_operand,
471 reg_or_0_or_nonsymb_mem_operand, reg_before_reload_operand,
472 indexed_memory_operand, move_dest_operand, move_src_operand,
473 prefetch_cc_operand, prefetch_nocc_operand,
474 reg_or_cint_move_operand, pic_label_operand, fp_reg_operand,
475 arith_operand, arith11_operand, pre_cint_operand,
476 post_cint_operan, arith_double_operand, ireg_or_int5_operand,
477 ireg_operand, int5_operand, uint5_operand, int11_operand,
478 uint32_operand, arith5_operand, and_operand, ior_operand,
479 lhs_lshift_operand, lhs_lshift_cint_operand, arith32_operand,
480 pc_or_label_operand, div_operand, plus_xor_ior_operator,
481 shadd_operand, movb_comparison_operator,
482 cmpib_comparison_operator): Move to predicates.md.
483 (magic_milli, shadd_constant_p): Make it extern.
484 * config/pa/pa.h (PREDICATE_CODES): Remove.
485 * config/pa/pa.md: Include predicates.md.
486 * config/pa/predicates.md: New.
488 * config/v850/v850.h (PREDICATE_CODES): Remove a nonexistent
491 2005-03-18 Kazu Hirata <kazu@cs.umass.edu>
493 * hooks.c, hooks.h, intl.c, opts.h, prefix.c, tree-gimple.c,
494 config/alpha/ev4.md, config/alpha/ev5.md, config/alpha/ev6.md,
495 config/alpha/freebsd.h, config/alpha/linux.h,
496 config/alpha/netbsd.h, config/alpha/osf5.h,
497 config/alpha/vms.h, config/arc/arc.c, config/arc/arc.h,
498 config/h8300/h8300-protos.h, config/h8300/h8300.c,
499 config/h8300/h8300.h, config/ia64/unwind-ia64.c,
500 doc/cppopts.texi: Update copyright.
502 2005-03-18 Jan Hubicka <jh@suse.cz>
505 * cgraph.c (cgraph_mark_reachable_node): Assert that it is not called
507 * varasm.c (find_decl_and_mark_needed): Mark needed only when not
510 2005-03-18 Kazu Hirata <kazu@cs.umass.edu>
512 * tree-into-ssa.c (find_idf): Use VEC_quick_push instead of
515 2005-03-18 Paolo Bonzini <bonzini@gnu.org>
517 * combine.c (gen_binary): Remove.
518 (known_cond, simplify_shift_const, find_split_point,
519 combine_simplify_rtx, simplify_if_then_else, simplify_set,
520 simplify_logical, expand_field_assignment, extract_left_shift,
521 force_to_mode, if_then_else_cond, apply_distributive_law,
522 simplify_and_const_int, simplify_shift_const, gen_lowpart_for_combine,
523 simplify_comparison, reversed_comparison): Replace with
524 simplify_gen_binary, simplify_gen_relational or
525 distribute_and_simplify_rtx.
526 (distribute_and_simplify_rtx): New function.
528 2005-03-18 Alexey Neyman <alex.neyman@auriga.ru>
529 Paolo Bonzini <gcc.gnu.org>
531 * calls.c (setjmp_call_p, special_function_p): Update comments
532 at the head of the functions.
534 2005-03-18 Jan Hubicka <jh@suse.cz>
536 * tree-cfg.c (fold_cond_expr_cond): Use boolean types for condition.
538 * cgraph.c (cgraph_remove_node): Avoid loop in code deciding whether
539 function body should be released; do not proactively release function
540 bodies in non-unit-at-a-time mode.
542 2005-03-18 Ralf Corsepius <ralf.corsepius@rtems.org>
544 * config/i386/t-rtems-i386 (MULTILIBS): Remove k6, athlon,
545 mno-fp-ret-in-387 multilib variants.
547 2005-03-18 Richard Sandiford <rsandifo@redhat.com>
549 * common.opt (m): Remove.
550 * opts.c (handle_option): Pass 'm' options to set_target_switch if
552 (common_handle_option): Remove OPT_m case.
554 2005-03-18 Kazu Hirata <kazu@cs.umass.edu>
556 * builtins.c (fold_builtin_bitop): Take decomposed arguments
558 (fold_builtin_1): Update a call to fold_builtin_bitop.
560 * builtins.c (fold_builtin_signbit): Take decomposed arguments
562 (fold_builtin_1): Update a call to fold_builtin_signbit.
564 2005-03-17 Dorit Naishlos <dorit@il.ibm.com>
566 PR tree-optimization/20474
567 * tree-vect-analyze.c (vect_analyze_pointer_ref_access): Check the
568 size_type of the relevant pointer. Check for COMPLETE_TYPE_P.
570 2005-03-17 Kazu Hirata <kazu@cs.umass.edu>
572 * config/h8300/h8300-protos.h: Remove prototypes for
573 general_operand_src, general_operand_dst, single_one_operand,
574 single_zero_operand, call_insn_operand,
575 two_insn_adds_subs_operand, small_call_insn_operand,
576 jump_address_operand, bit_operand, bit_memory_operand,
577 stack_pointer_operand, const_int_gt_2_operand,
578 const_int_ge_8_operand, const_int_qi_operand,
579 const_int_hi_operand, incdec_operand, bit_operator,
580 nshift_operator, eqne_operator, gtle_operator,
581 gtuleu_operator, iorxor_operator.
582 Add prototypes for h8sx_shift_type h8sx_classify_shift and
583 h8300_ldm_stm_parallel.
584 * config/h8300/h8300.c (h8sx_shift_type,): Move to
586 (SYMBOL_FLAG_FUNCVEC_FUNCTION, SYMBOL_FLAG_EIGHTBIT_DATA,
587 SYMBOL_FLAG_TINY_DATA): Move to h8300.h.
588 (h8300_ldm_stm_parallel): Make it extern.
589 (h8300_ldm_parallel, h8300_stm_parallel,
590 h8300_return_parallel, general_operand_src,
591 general_operand_dst, h8300_dst_operand, h8300_src_operand,
592 nibble_operand, reg_or_nibble_operand, single_one_operand,
593 single_zero_operand, call_insn_operand,
594 two_insn_adds_subs_operand, small_call_insn_operand,
595 jump_address_operand, bit_operand, bit_memory_operand,
596 stack_pointer_operand, const_int_gt_2_operand,
597 const_int_ge_8_operand, const_int_qi_operand,
598 const_int_hi_operand, incdec_operand, eqne_operator,
599 gtle_operator, gtuleu_operator, iorxor_operator, bit_operator,
600 h8sx_binary_memory_operator, h8sx_unary_memory_operator,
601 h8sx_unary_shift_operator, h8sx_binary_shift_operator,
602 nshift_operator): Move to predicates.md.
603 * config/h8300/h8300.h (PREDICATE_CODES): Remove.
604 * config/h8300/h8300.md: Include predicates.md.
605 * config/h8300/predicates.md: New.
607 2005-03-17 Richard Henderson <rth@redhat.com>
609 * config.gcc (ia64*-*-hpux*): Add extra_options.
610 * config/ia64/hpux.h (SUBTARGET_SWITCHES): Remove.
611 (TARGET_DEFAULT): Remove MASK_INLINE_FLOAT_DIV_THR.
612 * config/ia64/ia64.c (ia64_fixed_range_string): Remove.
613 (ia64_tls_size_string, ia64_tune_string): Remove.
614 (ia64_tune): Init to PROCESSOR_ITANIUM2.
615 (TARGET_DEFAULT_TARGET_FLAGS): New.
616 (TARGET_HANDLE_OPTION): New.
617 (ia64_override_options): Move options parsing ...
618 (ia64_handle_option): ... here. New.
619 * config/ia64/ia64.h (target_flags, MASK_BIG_ENDIAN, MASK_GNU_AS,
620 MASK_GNU_LD, MASK_NO_PIC, MASK_VOL_ASM_STOP, MASK_ILP32,
621 MASK_REG_NAMES, MASK_NO_SDATA, MASK_CONST_GP, MASK_AUTO_PIC,
622 MASK_INLINE_FLOAT_DIV_LAT, MASK_INLINE_FLOAT_DIV_THR,
623 MASK_INLINE_INT_DIV_LAT, MASK_INLINE_INT_DIV_THR,
624 MASK_INLINE_SQRT_LAT, MASK_INLINE_SQRT_THR, MASK_DWARF2_ASM,
625 MASK_EARLY_STOP_BITS, TARGET_BIG_ENDIAN, TARGET_GNU_AS, TARGET_GNU_LD,
626 TARGET_NO_PIC, TARGET_VOL_ASM_STOP, TARGET_ILP32, TARGET_REG_NAMES,
627 TARGET_NO_SDATA, TARGET_CONST_GP, TARGET_AUTO_PIC,
628 TARGET_INLINE_FLOAT_DIV_LAT, TARGET_INLINE_FLOAT_DIV_THR,
629 TARGET_INLINE_INT_DIV_LAT, TARGET_INLINE_INT_DIV_THR,
630 TARGET_INLINE_FLOAT_DIV, TARGET_INLINE_INT_DIV, TARGET_INLINE_SQRT_LAT,
631 TARGET_INLINE_SQRT_THR, TARGET_INLINE_SQRT, TARGET_DWARF2_ASM,
632 TARGET_EARLY_STOP_BITS): Remove.
633 (TARGET_ILP32): Default false.
634 (TARGET_SWITCHES, SUBTARGET_SWITCHES, TARGET_OPTIONS): Remove.
635 (enum ia64_inline_type): New.
636 (TARGET_DEFAULT): Remove MASK_INLINE_FLOAT_DIV_THR.
637 * config/ia64/ia64.md: Update for new definitions of
638 TARGET_INLINE_INT_DIV, TARGET_INLINE_FLOAT_DIV, TARGET_INLINE_SQRT.
639 * config/ia64/ia64.opt: New file.
640 * config/ia64/ilp32.opt: New file.
642 2005-03-17 H.J. Lu <hongjiu.lu@intel.com>
645 * config/ia64/unwind-ia64.c (_Unwind_FindTableEntry): Removed.
647 2005-03-17 Kazu Hirata <kazu@cs.umass.edu>
649 * config/h8300/h8300.c (h8300_init_once): Use MASK_H8300S_1
650 instead of MASK_H8300S.
651 * config/h8300/h8300.h (target_flags, MASK_H8300S, MASK_MAC,
652 MASK_INT32, MASK_ADDRESSES, MASK_QUICKCALL, MASK_SLOWBYTE,
653 MASK_NORMAL_MODE, MASK_RELAX, MASK_H8300H, MASK_ALIGN_300,
654 MASK_H8300SX, TARGET_INT32, TARGET_ADDRESSES,
655 TARGET_QUICKCALL, TARGET_SLOWBYTE, TARGET_H8300H,
656 TARGET_H8300XS, TARGET_NORMAL_MODE, TARGET_ALIGN_300,
657 TARGET_SWITCHES): Remove.
658 (TARGET_H8300S): Redefine interms of TARGET_H8300S_1 and
660 * config/h8300/h8300.opt: New.
662 * config/alpha/alpha.opt, config/arc/arc.opt,
663 config/h8300/h8300.opt, config/mips/mips.opt: Add copyright
666 2005-03-17 Ian Lance Taylor <ian@airs.com>
670 2005-03-17 Richard Sandiford <rsandifo@redhat.com>
672 * config/arc/arc.c (arc_cpu_string): Make static. Default to "base"
673 (arc_text_string, arc_data_string, arc_rodata_string): Make static.
674 (TARGET_HANDLE_OPTION): Override default.
675 (arc_handle_option): New function.
676 (arc_init): Remove code to set arch_cpu_string.
677 * config/arc/arc.h (target_flags, TARGET_MASK_MANGLE_CPU)
678 (TARGET_MANGLE_CPU, TARGET_MASK_MANGLE_CPU_LIBGCC)
679 (TARGET_MANGLE_CPU_LIBGCC, TARGET_MASK_ALIGN_LOOPS, TARGET_ALIGN_LOOPS)
680 (TARGET_MASK_BIG_ENDIAN, TARGET_BIG_ENDIAN, TARGET_MASK_NO_COND_EXEC)
681 (TARGET_NO_COND_EXEC, TARGET_SWITCHES, TARGET_DEFAULT)
682 (SUBTARGET_SWITCHES, arc_cpu_string, arc_text_string, arc_data_string)
683 (arc_rodata_string, TARGET_OPTIONS): Delete.
684 * config/arc/arc.opt: New file.
686 2005-03-17 Richard Henderson <rth@redhat.com>
688 * doc/extend.texi (Weak Pragmas): New section.
689 (attribute alias): Clarify that target must be in the same
692 2005-03-17 Richard Henderson <rth@redhat.com>
694 * config/alpha/alpha.opt: New file.
695 * config/alpha/alpha.c (alpha_tune): New. Rename all existing uses
697 (alpha_cpu_string, alpha_tune_string, alpha_tp_string,
698 alpha_fprm_string, alpha_fptm_string): Make static.
699 (alpha_tls_size_string): Remove.
700 (alpha_handle_option): New.
701 (override_options): Update for alpha_cpu/alpha_tune split.
702 (alpha_file_start): Likewise.
703 (TARGET_DEFAULT_TARGET_FLAGS): New.
704 (TARGET_HANDLE_OPTION): New.
705 * config/alpha/alpha.h (alpha_tune): Declare.
706 (MASK_FP, MASK_FPREGS, TARGET_FPREGS, MASK_GAS, TARGET_GAS,
707 MASK_IEEE_CONFORMANT, TARGET_IEEE_CONFORMANT, MASK_IEEE, TARGET_IEEE,
708 MASK_IEEE_WITH_INEXACT, TARGET_IEEE_WITH_INEXACT, MASK_BUILD_CONSTANTS,
709 TARGET_BUILD_CONSTANTS, MASK_FLOAT_VAX, TARGET_FLOAT_VAX, MASK_BWX,
710 TARGET_BWX, MASK_MAX, TARGET_MAX, MASK_FIX, TARGET_FIX, MASK_CIX,
711 TARGET_CIX, MASK_EXPLICIT_RELOCS, TARGET_EXPLICIT_RELOCS,
712 MASK_SMALL_DATA, TARGET_SMALL_DATA, MASK_TLS_KERNEL, TARGET_TLS_KERNEL,
713 MASK_SMALL_TEXT, TARGET_SMALL_TEXT, MASK_LONG_DOUBLE_128,
714 TARGET_LONG_DOUBLE_128, MASK_CPU_EV5, TARGET_CPU_EV5, MASK_CPU_EV6,
715 TARGET_CPU_EV6, MASK_SUPPORT_ARCH): Remove.
716 (TARGET_SWITCHES, TARGET_OPTIONS): Remove.
717 (TARGET_DEFAULT): Remove MASK_FP.
718 (TARGET_FP): Redefined based on TARGET_SOFT_FP.
719 (TARGET_SUPPORT_ARCH): Default on if HAVE_AS_EXPLICIT_RELOCS.
720 (alpha_cpu_string, alpha_tune_string, alpha_fprm_string,
721 alpha_fptm_string, alpha_tp_string, alpha_mlat_string,
722 alpha_tls_size_string): Remove.
723 * config/alpha/alpha.md (prefetch): Use alpha_cpu.
724 (attribute tune): Rename from attribute cpu.
725 * config/alpha/ev4.md: Update to match.
726 * config/alpha/ev5.md, config/alpha/ev6.md: Likewise.
727 * config/alpha/freebsd.h (TARGET_DEFAULT): Remove MASK_FP.
728 * config/alpha/linux.h (TARGET_DEFAULT): Likewise.
729 * config/alpha/netbsd.h (TARGET_DEFAULT): Likewise.
730 * config/alpha/osf5.h (TARGET_DEFAULT): Likewise.
731 * config/alpha/vms.h (TARGET_DEFAULT): Likewise.
733 2005-03-16 James E. Wilson <wilson@specifixinc.com>
735 * config/ia64/ia64.c (issue_nops_and_insn): Check first_insn attribute,
736 and return without creating new state if before_nops_num is nonzero.
737 * config/ia64/ia64.md (first_insn): New attribute.
738 (alloc): Set it to yes.
740 2005-03-16 Daniel Berlin <dberlin@dberlin.org>
742 * tree-vectorizer.c (new_vec_stmt_info): Initialize
743 STMT_VINFO_SUBVARS to NULL.
744 * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
746 2005-03-16 Dale Johannesen <dalej@apple.com>
748 * rtlanal.c (find_first_parameter_load): Rewrite to
749 return actual first param load or the call if none,
750 instead of first in block, when not all loads exist.
752 2005-03-16 Roger Sayle <roger@eyesopen.com>
754 * optabs.c (expand_copysign_absneg): Make static.
755 * optabs.h (expand_copysign_absneg): Delete prototype.
756 * config/rs6000/rs6000.md (copysigntf3): Delete pattern.
758 2005-03-16 Richard Henderson <rth@redhat.com>
761 * varasm.c (struct alias_pair): Rename from struct output_def_pair.
762 (alias_pairs): Rename from output_defs.
763 (find_decl_and_mark_needed): Split out from assemble_alias.
764 (do_assemble_alias): New.
765 (assemble_output_def): Remove.
766 (finish_aliases_1, finish_aliases_2): New.
767 (process_pending_assemble_output_defs): Remove.
768 (assemble_alias): Defer aliases for which we don't yet have a
769 non-external decl for the target symbol.
770 * passes.c (rest_of_decl_compilation): Register variables with cgraph.
771 * cgraphunit.c (cgraph_finalize_compilation_unit): Use finish_aliases_1.
772 * toplev.c (compile_file): Use finish_aliases_2 instead of
773 process_pending_assemble_output_defs.
774 * tree.h (finish_aliases_1, finish_aliases_2): Declare.
775 (process_pending_assemble_output_defs): Remove.
777 2005-03-16 Daniel Berlin <dberlin@dberlin.org>
779 Fix PR tree-optimization/20489
781 * tree-ssa-alias.c (push_fields_onto_fieldstack): DTRT
782 for empty structures.
784 2005-03-16 Daniel Berlin <dberlin@dberlin.org>
786 Fix PR tree-optimization/20490
788 * tree-ssa-pre.c (create_expression_by_pieces): Use
789 force_gimple_operand on result of fold.
791 2005-03-16 Andrew Pinski <pinskia@physics.uc.edu>
793 * config/i386/emmintrin.h (_mm_extract_epi16): Correct the number
794 of closing parenthesis.
796 2005-03-16 Kazu Hirata <kazu@cs.umass.edu>
798 * builtins.c (expand_movstr): Update a call to
800 (expand_builtin_strncpy): Update a call to
801 fold_builtin_strncpy.
802 (fold_builtin_strcpy, fold_builtin_strncpy): Take decomosed
803 arguments of CALL_EXPR.
804 (fold_builtin_1): Update calls to fold_builtin_strcpy and
805 fold_builtin_strncpy.
806 * tree-ssa-ccp.c (ccp_fold_builtin): Likewise.
807 * tree.h: Update the prototypes of fold_builtin_strcpy and
808 fold_builtin_strncpy.
810 2005-03-16 Steven Bosscher <stevenb@suse.de>
811 Dorit Naishlos <dorit@il.ibm.com>
813 * tree-vect-analyze.c (vect_enhance_data_refs_alignment): Copy
814 UNITS_PER_SIMD_WORD to a local variable to avoid a "division by zero"
817 2005-03-16 Steven Bosscher <stevenb@suse.de>
819 * tree-inline.c (walk_type_fields, walk_tree,
820 walk_tree_without_duplicates): Move from here...
821 * tree.c: ...to here.
823 2005-03-15 Zack Weinberg <zack@codesourcery.com>
825 * BASE-VER, DATESTAMP, DEV-PHASE: New files.
826 * Makefile.in (gcc_version, gcc_version_trigger, ): Delete.
827 (BASEVER, DEVPHASE, DATESTAMP, BASEVER_c, DEVPHASE_c, DATESTAMP_c)
828 (BASEVER_s, DEVPHASE_s, DATESTAMP_s): New variables.
829 (version): Define using $(BASEVER_c).
830 (Makefile, config.status, build/gcov-iov.o): No longer depends on
832 (version.o): Depend on version files; add custom generation command.
833 (prefix.o): Define BASEVER on command line.
834 (s-iov): Depend on version files; adjust command.
835 (TEXI_CPP_FILES, TEX_IGCC_FILES, TEXI_GCCINT_FILES, TEXI_CPPINT_FILES):
837 (gcc-vers.texi): New rule.
838 (doc/%.info, doc/%.dvi): Add -I . to command line.
839 (doc/gccinstall.dvi): Likewise.
840 (PACKAGE): Delete. All uses replaced with "gcc".
841 * aclocal.m4: Do not include gcc-version.m4.
842 * configure.ac: Do not invoke TL_AC_GCC_VERSION.
843 Do not AC_SUBST nor AC_DEFINE PACKAGE or VERSION.
844 Set is_release based on contents of DEV-PHASE.
845 Set gcc_version based on contents of BASE-VER.
846 Define WIN32_REGISTRY_KEY only if the user overrode the default.
847 * config.in, configure: Regenerate.
848 * gccbug.in: Determine version of GCC in use at runtime.
849 * gcov-iov.c: Get version number and development phase from
850 command line, not by including version.c.
851 * intl.c: Replace all uses of PACKAGE with "gcc".
852 * libada-mk.in: Delete unused "gcc_version" variable.
853 * prefix.c: Default WIN32_REGISTRY_KEY to BASEVER.
854 * version.c: (VERSUFFIX): New hook for redistributors; adjust
856 (version_string): Put together from pieces.
857 * config/alpha/x-vms: Do not use $(gcc_version).
858 * config/i386/t-nwld: Likewise.
859 * doc/include/gcc-common.texi: Include gcc-vers.texi for
860 version-GCC and DEVELOPMENT.
862 2005-03-15 Roger Sayle <roger@eyesopen.com>
864 PR tree-optimization/17454
865 * tree.c (tree_size): Add case for TREE_BINFO.
866 * fold-const.c (fold_checksum_tree): Only clear the overloaded
867 field TYPE_CACHED_VALUES if TYPE_CACHED_VALUES_P is set.
869 2005-03-15 Roger Sayle <roger@eyesopen.com>
871 * optabs.c (expand_doubleword_mult): Avoid clobbering op0 and
872 op1 whilst expanding the signed widenening multiply variant.
874 2005-03-15 Richard Sandiford <rsandifo@redhat.com>
876 * toplev.c (display_target_options): Avoid unused variable warning if
877 TARGET_SWITCHES and TARGET_OPTIONS are both undefined.
878 * config/mips/mips.c (mips_arch_string, mips_tune_string): Make static.
879 (mips_isa_string, mips_abi_string, mips_fix_vr4130_string): Delete.
880 (mips_isa): Initialize to MIPS_ABI_DEFAULT.
881 (mips_isa_info): New variable.
882 (mips_parse_cpu): Remove the first argument and leave the caller
884 (TARGET_HANDLE_OPTION): Override default.
885 (mips_handle_option): New function. Move option validation code from...
886 (override_options): ...here. Update calls to mips_parse_cpu.
887 * config/mips/mips.h (mips_arch_string, mips_tune_string)
888 (mips_isa_string, mips_abi_string, TARGET_OPTIONS)
889 (SUBTARGET_TARGET_OPTIONS): Delete.
890 * config/mips/mips.opt (mabi=, march=, mflush-func=, mips)
891 (mno-flush-func, mtune=): New options.
893 2005-03-15 Roger Sayle <roger@eyesopen.com>
894 Richard Henderson <rth@redhat.com>
896 * real.c (c4x_single_format, c4x_extended_format): Provide values
897 for signbit_ro for c4x's single and extended floating point formats.
898 * optabs.c (expand_copysign): Use the floating point format's
899 signbit_ro for expanding via expand_copysign_absneg, and it's
900 signbit_rw field for expanding via expand_copysign_bit.
902 2005-03-15 Dorit Naishlos <dorit@il.ibm.com>
904 * tree-vectorizer.h (unknown_alignment_for_access_p): Replaced by
905 known_alignment_for_access_p.
906 (known_alignment_for_access_p): New.
907 (do_peeling_for_alignment): Field made int instead of bool and renamed
908 to peeling_for_alignment.
909 (LOOP_DO_PEELING_FOR_ALIGNMENT): Renamed to LOOP_PEELING_FOR_ALIGNMENT.
910 * tree-vect-analyze.c (vect_determine_vectorization_factor): New. This
911 functionality used to be in vect_analyze_operations.
912 (vect_analyze_operations): Code to determine vectorization factor was
913 moved to vect_determine_vectorization_factor.
914 (vect_enhance_data_refs_alignment): Update to correct alignment when it
915 is known instead of -1. Set LOOP_PEELING_FOR_ALIGNMENT to peeling
917 (vect_analyze_loop): Call vect_determine_vectorization_factor (used to
918 be part of vect_analyze_operations).
919 * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Use fold when
920 creating the guard condition, as the number of iterations may be
922 (slpeel_tree_peel_loop_to_edge): Use new name of
923 LOOP_DO_PEELING_FOR_ALIGNMENT. Set it to 0 instead of false.
924 * tree-vect-transform.c (vect_gen_niters_for_prolog_loop): Handle known
925 alignment case more efficiently. Use LOOP_PEELING_FOR_ALIGNMENT.
926 (vect_do_peeling_for_alignment): Use fold.
927 (vect_transform_loop): Use new name of LOOP_DO_PEELING_FOR_ALIGNMENT.
929 (vect_update_inits_of_dr): Renamed to
930 vect_update_init_of_dr.
931 (vect_update_inits_of_drs): Use new name of vect_update_inits_of_dr.
932 (vectorizable_store): Fix assertion to use == instead of =.
934 2005-03-15 Daniel Jacobowitz <dan@codesourcery.com>
936 * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't clear
937 call_used_regs for wCG registers.
939 2005-03-15 Ulrich Weigand <uweigand@de.ibm.com>
941 * config/s390/s390.c (s390_secondary_output_reload_class): Adapt check
942 for non-offsettable memory references to cope with outstanding reload
943 replacements, take 2.
945 2005-03-15 Uros Bizjak <uros@kss-loka.si>
948 * config/i386/i386.h (x86_fisttp): New.
949 (TARGET_FISTTP): New macro.
950 * config/i386/i386.c (x86_fisttp): Set for NOCONA.
951 (output_fix_trunc): Add fisttp parameter. Generate fisttp x87
952 instruction when fisttp flag is set.
953 * config/i386/i386-protos.h (output_fix_trunc): Change declaration.
955 * config/i386/i386.md (type attribute): Add fisttp.
956 (unit attribute): Set to i387 for fisttp type.
957 (X87MODEF, X87MODEI, SSEMODEF, SSEMODEI24): New mode macros.
958 (fix_truncxfdi2, fix_truncxfsi2): Generate fisttp patterns for
960 (fix_truncdfdi2, fix_truncsfdi2, fix_truncdfsi2, fix_truncsfsi2):
961 Generate fisttp patterns for TARGET_FISTTP. Implement using mode
963 (fix_truncxfhi2, fix_truncdfhi2, fix_truncsfhi2): Generate fisttp
964 patterns for TARGET_FISTTP. Enable patterns for
965 (TARGET_FISTTP && !TARGET_SSE_MATH). Implement using mode macros.
966 (fix_trunc<mode>_i387_fisttp_1, fix_trunc<mode>_i387_fisttp,
967 fix_trunc<mode>_i387_fisttp_with_temp): New instruction patterns to
968 implement fisttp x87 insn.
969 (fix_trunc*_i387_fisttp splitters): New patterns.
970 (*fix_truncdi_i387, *fix_truncsi_i387, *fix_trunchi_i387):
971 Rename to *fix_trunc<mode>_i387_1. Implement using mode macros.
972 Disable patterns for TARGET_FISTTP. Add comment about FLAGS_REG
974 (fix_truncdi_memory, fix_truncdi_nomemory, fix_trunchi_nomemory):
975 Rename to fix_trunc<mode>_i387 and fix_trunc<mode>_i387_with_temp.
976 Implement using mode macros. Disable patterns for TARGET_FISTTP.
977 (fix_truncsi_memory, fix_truncsi_nomemory, fix_trunchi_memory,
978 fix_trunchi_nomemory): Rename to fix_trunc<mode>_i387 and
979 fix_trunc<mode>_i387_with_temp. Implement using mode macros.
980 Disable patterns for TARGET_FISTTP.
981 (fix_trunc*_i387 splitters): Implement usign mode macros.
982 (fix_truncdfdi_sse, fix_truncsfdi_sse, fix_truncdfsi_sse,
983 fix_truncsfsi_sse): Disable for (TARGET_FISTTP && !TARGET_SSE_MATH).
984 (fix_trunx*_sse peephole2s): Implement using mode macros.
986 2005-03-15 J"orn Rennecke <joern.rennecke@st.com>
988 PR rtl-optimization/20291
989 * combine.c (try_combine): If splitting fails, re-try with
990 original combined pattern, i.e. before clobber stripping.
992 2005-03-14 Eric Christopher <echristo@redhat.com>
994 * config/mips/mips.h (DWARF_CIE_DATA_ALIGNMENT): Change for
995 STACK_GROWS_DOWNWARD.
997 2005-03-14 Roger Sayle <roger@eyesopen.com>
999 * real.h (struct real_format): Split the signbit field into two
1000 two fields, signbit_ro and signbit_rw.
1001 * real.c (ieee_single_format, mips_single_format, ieee_double_format,
1002 mips_double_format, ieee_extended_motorola_format,
1003 ieee_extended_intel_96_format, ieee_extended_intel_96_round_53_format,
1004 ieee_extended_intel_128_format, ibm_extended_format,
1005 mips_extended_format, ieee_quad_format, mips_quad_format,
1006 vax_f_format, vax_d_format, vax_g_format, i370_single_format,
1007 i370_double_format, c4x_single_format, c4x_extended_format,
1008 real_internal_format): Update initializers for new field.
1009 * builtins.c (expand_builtin_signbit): Use signbit_ro field of the
1010 real_format structure.
1011 * optabs.c (expand_absneg_bit, expand_copysign): Use signbit_rw
1012 field of the real_format structure.
1014 2005-03-14 Daniel Berlin <dberlin@dberlin.org>
1016 Fix PR tree-optimization/20458
1018 * tree-flow-inline.h (mark_call_clobbered): Don't fiddle
1019 DECL_EXTERNAL on STRUCT_FIELD tags.
1020 (clear_call_clobbered): Ditto.
1021 * tree-ssa-operands.c (note_addressable): Make sure the original
1022 variable doesn't slip into the addressable list if we have
1024 * tree-tailcall.c (suitable_for_tail_opt_p): Look at STRUCT_FIELD
1027 2005-03-14 Geoffrey Keating <geoffk@apple.com>
1029 * doc/cppopts.texi (-fexec-charset): Add concept index entry.
1030 (-fwide-exec-charset): Likewise.
1031 (-finput-charset): Likewise.
1032 * doc/invoke.texi (Warning Options): Document -Wnormalized=.
1033 * c-opts.c (c_common_handle_option): Handle -Wnormalized=.
1034 * c.opt (Wnormalized): New.
1036 2005-03-14 Devang Patel <dpatel@apple.com>
1038 * doc/invoke.texi: Add reference to Visibility document.
1040 2005-03-14 Richard Sandiford <rsandifo@redhat.com>
1042 * config.gcc (mips*-*-*): Rename MASK_SPLIT_ADDRS to
1043 MASK_SPLIT_ADDRESSES.
1044 * config/mips/mips.h (target_flags, mips_fix_vr4130_string): Delete.
1045 (MASK_INT64, MASK_LONG64, MASK_SPLIT_ADDR, MASK_NO_FUSED_MADD)
1046 (MASK_EXPLICIT_RELOCS, MASK_MEMCPY, MASK_SOFT_FLOAT)
1047 (MASK_FLOAT64, MASK_ABICALLS, MASK_XGOT, MASK_LONG_CALLS)
1048 (MASK_64BIT, MASK_EMBEDDED_DATA, MASK_BIG_ENDIAN)
1049 (MASK_SINGLE_FLOAT, MASK_MAD, MASK_4300_MUL_FIX, MASK_MIPS16)
1050 (MASK_NO_CHECK_ZERO_DIV, MASK_BRANCHLIKELY)
1051 (MASK_UNINIT_CONST_IN_RODATA, MASK_FIX_R4000, MASK_FIX_R4400)
1052 (MASK_FIX_SB1, MASK_FIX_VR4120, MASK_VR4130_ALIGN)
1053 (MASK_FP_EXCEPTIONS, MASK_DIVIDE_BREAKS, MASK_PAIRED_SINGLE)
1054 (MASK_MIPS3D, MASK_SYM32, MASK_DEBUG, MASK_DEBUG_D)
1055 (MASK_MIPS_TFILE, TARGET_INT64, TARGET_LONG64, TARGET_FLOAT64)
1056 (TARGET_64BIT, TARGET_SPLIT_ADDRESSES, TARGET_DEBUG_MODE)
1057 (TARGET_DEBUG_D_MODE, TARGET_MEMCPY, TARGET_ABICALLS)
1058 (TARGET_XGOT, TARGET_SOFT_FLOAT, TARGET_HARD_FLOAT)
1059 (TARGET_LONG_CALLS, TARGET_EMBEDDED_DATA)
1060 (TARGET_UNINIT_CONST_IN_RODATA, TARGET_BIG_ENDIAN)
1061 (TARGET_SINGLE_FLOAT, TARGET_DOUBLE_FLOAT, TARGET_MAD)
1062 (TARGET_FUSED_MADD, TARGET_4300_MUL_FIX, TARGET_CHECK_ZERO_DIV)
1063 (TARGET_DIVIDE_TRAPS, TARGET_BRANCHLIKELY, TARGET_FIX_SB1)
1064 (TARGET_FIX_R4000, TARGET_FIX_R4400, TARGET_FIX_VR4120)
1065 (TARGET_FIX_VR4130, TARGET_VR4130_ALIGN, TARGET_FP_EXCEPTIONS)
1066 (TARGET_PAIRED_SINGLE_FLOAT, TARGET_MIPS3D, TARGET_SYM32)
1067 (TARGET_EXPLICIT_RELOCS): Delete.
1068 (TARGET_SWITCHES, SUBTARGET_TARGET_SWITCHES): Delete.
1069 (TARGET_OPTIONS): Remove entry for -mfix-vr4130.
1070 * config/mips/mips.c (TARGET_DEFAULT_TARGET_FLAGS): Define.
1071 (override_options): Set MASK_LONG64 if -mint64 is given and no
1072 -mlongXX option is. Complain about -mint64 -mlong32.
1073 (override_options, CMP_BUILTINS, mips_bdesc, sb1_desc): Rename
1074 MASK_PAIRED_SINGLE to MASK_PAIRED_SINGLE_FLOAT.
1075 * config/mips/mips.opt: New file.
1077 2005-03-14 Richard Sandiford <rsandifo@redhat.com>
1079 * config.gcc (extra_options): New variable for listing option files.
1080 Add ${cpu_type}/${cpu_type}.opt to it if that file exists.
1081 * configure.ac (extra_opt_files): New AC_SUBST variable.
1082 (tm_file_list, tm_include_list): Include options.h first.
1083 * configure: Regenerate.
1084 * Makefile.in (extra_opt_files, ALL_OPT_FILES): New variables.
1085 (s-options): Use $(ALL_OPT_FILES) instead of $(lang_opt_files)
1086 (s-options-h): New rule.
1087 (options.h): Depend on it.
1088 (TEXI_GCCINT_FILES): Add options.texi.
1089 * hooks.h (hook_bool_size_t_constcharptr_int_true): Declare.
1090 * hooks.c (hook_bool_size_t_constcharptr_int_true): New function.
1091 * target.h (gcc_target): Add default_target_flags and handle_option.
1092 * target-def.h (TARGET_DEFAULT_TARGET_FLAGS)
1093 (TARGET_HANDLE_OPTION): New macros.
1094 (TARGET_INITIALIZER): Include them.
1095 * opt-functions.awk (opt_args, nth_arg): New functions.
1096 (switch_flags): Handle the "Target" flag.
1098 (var_name): Use opt_args and nth_arg.
1099 (var_set, var_ref): Likewise. Handle "Mask" and "InverseMask".
1100 * opth-gen.awk: Declare target_flags. Declare MASK_* and TARGET_*
1101 macros for the "Mask" and "InverseMask" options.
1102 * opts.h (cl_var_cond): New enum.
1103 (cl_option): Replace the "has_set_value" and "set_value" fields with
1104 "var_cond" and "var_value".
1105 (CL_TARGET): New macro.
1106 (option_enabled, print_filtered_help): Declare.
1107 (decode_options): Move definition.
1108 * opts.c (handle_option): Search for the original option before
1109 removing any "no-" prefix. Handle CL_TARGET. Adjust for the new
1110 var_cond and var_value fields. Use targetm.handle_option to handle
1112 (decode_options): Set target_flags to targetm.default_target_flags.
1113 (print_filtered_help): Make global. Handle CL_TARGET.
1114 (option_enabled): New function.
1115 * toplev.c (target_switches): Guard with #ifdef TARGET_SWITCHES.
1116 (display_target_options, set_target_switch, print_switch_values)
1117 (default_pch_valid_p): Guard uses of target_switches with
1118 #ifdef TARGET_SWITCHES. Also...
1119 (display_target_options): Display the CL_TARGET entries in cl_options.
1120 (set_target_option): Don't complain about the "" option when
1121 TARGET_SWITCHES is undefined.
1122 (print_switch_values): Use option_enabled.
1123 (default_pch_valid_p): Check cl_options[] when looking for something
1124 that has changed the value of target_flags.
1125 * c.opt: Remove documentation from top of file.
1126 * doc/gccint.texi: Add an "Options" chapter. Include options.texi.
1127 * doc/sourecebuild.texi: Refer to the new options documentation
1128 instead of c.opt. Document machine-specific .opt files.
1129 * doc/tm.texi (target_flags): Say that this variable is declared
1131 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Document.
1132 (TARGET_SWITCHES, TARGET_OPTIONS): Refer to the option files as
1134 * doc/options.texi: New file.
1136 2005-03-14 Alexandre Oliva <aoliva@redhat.com>
1139 * cse.c (fold_rtx_mem): Don't fold a load from a jumptable into a
1142 2005-03-14 Alexandre Oliva <aoliva@redhat.com>
1145 * gimplify.c (gimplify_cond_expr): Add fallback argument. Use a
1146 temporary variable of pointer type if an lvalues is required.
1147 (gimplify_modify_expr_rhs): Request an rvalue from it.
1148 (gimplify_expr): Pass fallback on.
1150 2005-03-14 Kazu Hirata <kazu@cs.umass.edu>
1152 * cfgbuild.c: Update comments.
1154 2005-03-14 Roger Sayle <roger@eyesopen.com>
1156 PR rtl-optimization/17236
1157 * optabs.c (expand_doubleword_mult): New helper function split out
1158 from expand_binop. Permute the order in which instructions are
1159 emitted to minimize the number of simultaneously live registers.
1160 (expand_binop): Call expand_doubleword_mult to synthesize a double
1161 word multiplication.
1163 2005-03-14 Kazu Hirata <kazu@cs.umass.edu>
1165 * basic-block.h: Update the prototypes of cached_make_edge and
1167 * cfg.c (cached_make_edge): Take edge_cache representing one
1168 row of the adjacency matrix of edges.
1169 * cfgbuild.c (make_label_edge, rtl_make_eh_edge): Likewise.
1170 (make_edges): Initialize edge_cache to represent one row of
1171 the adjacency matrix of edges.
1173 2005-03-14 Zdenek Dvorak <dvorakz@suse.cz>
1175 * tree-ssa-phiopt.c (minmax_replacement, blocks_in_phiopt_order):
1177 (tree_ssa_phiopt): Use blocks_in_phiopt_order and minmax_replacement.
1178 Remove unused removed_phis variable.
1179 (conditional_replacement): Use build1/build2.
1180 (abs_replacement): Use last_and_only_stmt and build1/build2.
1182 2005-03-14 Zdenek Dvorak <dvorakz@suse.cz>
1184 * builtin-attrs.def (ATTR_NOVOPS, ATTR_NOVOPS_LIST,
1185 ATTR_PURE_NOTHROW_NOVOPS_LIST): New.
1186 * builtins.def (ATTR_MATHFN_FPROUNDING): Use NOVOPS.
1187 (BUILT_IN_PREFETCH): Set the NOVOPS attribute.
1188 * c-common.c (handle_novops_attribute): New function.
1189 (c_common_attribute_table): Add "no vops" entry.
1190 * c-decl.c (merge_decls): Copy DECL_IS_NOVOPS.
1191 * calls.c (flags_from_decl_or_type): Set ECF_NOVOPS.
1192 * tree-ssa-operands.c (get_call_expr_operands): Do not
1193 create virtual operands for calls with ECF_NOVOPS flag.
1194 * tree.h (DECL_IS_NOVOPS): New macro.
1195 (struct tree_decl): Add novops_flag.
1196 (ECF_NOVOPS): New constant.
1198 2005-03-14 Uros Bizjak <uros@kss-loka.si>
1201 * config/i386/i386.c (x86_use_himode_fiop): New.
1202 (x86_use_simode_fiop): Rename from x86_use_fiop.
1203 * config/i386/i386.h (x86_use_himode_fiop): Declare.
1204 (TARGET_USE_HIMODE_FIOP): New.
1205 (x86_use_simode_fiop): Rename from x86_use_fiop.
1206 (TARGET_USE_SIMODE_FIOP): Rename from TARGET_USE_FIOP.
1208 * config/i386/i386.md (X87MODEI12): New mode macro define.
1209 (*cmpfp_<mode>): Rename from *cmpfp_si. Use X87MODEI12 mode macro
1210 to implement x87 FP compare with HImode input operands.
1211 (*fp_jcc_8<mode>_387, splitter): Rename from *fp_jcc_8_387.
1212 Use X87MODEI12 mode macro to handle HImode input operands.
1213 (*fop_sf_2<mode>_i387, *fop_sf_3<mode>_i387, *fop_df_2<mode>_i387,
1214 *fop_df_3<mode>_i387, *fop_xf_2<mode>_i387, *fop_xf_3<mode>_i387):
1215 Renamed from *fop_sf_2_i387, *fop_sf_3_i387, *fop_df_2_i387,
1216 *fop_df_3_i387, *fop_xf_2_i387, *fop_xf_3_i387. Use X87MODEI12 mode
1217 macro to implement x87 operators with HImode input operands.
1218 (fop splitters): Use X87MODEI12 mode macro to handle HImode
1221 2005-03-14 Zdenek Dvorak <dvorakz@suse.cz>
1223 * tree-cfg.c (find_taken_edge_cond_expr): Use zero_p instead of
1225 * tree-gimple.c (is_gimple_min_invariant): Consider overflowed
1226 constants invariant.
1228 2005-03-14 Zdenek Dvorak <dvorakz@suse.cz>
1230 * basic-block.h (BB_VISITED): Removed.
1231 * cfganal.c (dfs_enumerate_from): Do not use BB_VISITED flag.
1233 2005-03-14 Falk Hueffner <falk@debian.org>
1236 * config/alpha/alpha.c (alpha_fold_builtin_cmpbge): Fix typo.
1238 2005-03-14 Kazu Hirata <kazu@cs.umass.edu>
1240 * ggc-zone.c: Fix comment typos.
1242 * alloc-pool.c, except.h, ggc-common.c, ggc-zone.c, ggc.h,
1243 stringpool.c, config/mips/mips-protos.h: Update copyright.
1245 2005-03-14 Alan Modra <amodra@bigpond.net.au>
1247 * config/rs6000/rs6000-protos.h: Replace "struct rtx_def *"
1248 throughout with its typedef, "rtx".
1249 * config/rs6000/rs6000.c: Likewise. Formatting fixes.
1250 (rs6000_tls_symbol_ref_1): Remove inline keyword.
1251 * config/rs6000/rs6000.h (REG_ALLOC_ORDER): Formatting. Reorder
1252 regs in comment to match code.
1254 2005-03-14 Kazu Hirata <kazu@cs.umass.edu>
1256 * except.c (check_handled): Make it static.
1257 * except.h: Remove the corresponding prototype.
1259 * function.c (get_func_frame_size): Make it static.
1260 * function.h: Remove the corresponding type.
1262 * regclass.c (reg_class_superclasses, reg_class_subclasses):
1264 * hard-reg-set.h: Remove the corresponding declarations.
1266 * tree-cfg.c (verify_stmts): Check that
1267 bb_for_stmt (stmt) == bb for every PHI node and statement.
1269 2005-03-14 Alan Modra <amodra@bigpond.net.au>
1271 * config.gcc: Remove excess indentation.
1272 (powerpc*-*-*, rs6000-*-*): Accept --with-cpu/tune power5 and 8548.
1274 2005-03-13 Roger Sayle <roger@eyesopen.com>
1277 * tree.c (get_unwidened): Treat CONVERT_EXPR and NOP_EXPR identically.
1278 * fold-const.c (fold_sign_changed_comparison): Likewise.
1279 (fold_binary): Optimize comparisons against widened operands if
1280 the extension is represented by a CONVERT_EXPR, same as a NOP_EXPR.
1282 2005-03-13 Eric Botcazou <ebotcazou@libertysurf.fr>
1284 * config/sparc/sparc.c (struct_value_alias_set): New global variable.
1285 (sparc_override_options): Initialize it.
1286 (sparc_struct_value_rtx): Set it on the MEM to be returned.
1288 2005-03-13 David Edelsohn <edelsohn@gnu.org>
1290 * config/rs6000/predicates.md (mem_or_easy_const_operand): Delete.
1291 (reg_or_none500mem_operand): New predicate.
1292 (zero_reg_mem_operand): New predicate.
1293 * config/rs6000/rs6000.md (extendsfdf2): Change operand1 predicate
1294 to reg_or_none500mem_operand.
1295 (extendsfdf2_fpr): Add MEM alternative.
1296 (extenddftf2_internal): Change operand2 predicate to
1297 zero_reg_mem_operand.
1299 2005-03-13 Daniel Jacobowitz <dan@codesourcery.com>
1301 * ggc-zone.c: Rewritten.
1303 * alloc-pool.c (dump_alloc_pool_statistics): Don't print statistics
1305 * configure.ac: Define GGC_ZONE for --with-gc=zone.
1306 * config.in: Regenerated.
1307 * configure: Regenerated.
1308 * gengtype.c (write_types_process_field, write_func_for_structure):
1309 Pass new argument to gt_pch_note_object.
1310 * ggc-common.c (struct ptr_data): Add TYPE.
1311 (gt_pch_note_object): Take TYPE argument and save it.
1312 (call_count): Update call to ggc_pch_count_object.
1313 (call_alloc): Update call to ggc_pch_alloc_object.
1314 (gt_pch_save): Call ggc_pch_prepare_write after paddng the PCH
1316 * ggc-none.c (rtl_zone, garbage_zone, ggc_alloc_zone_stat): Delete.
1317 * ggc-page.c (rtl_zone, tree_zone, garbage_zone)
1318 (ggc_alloc_zone_stat): Delete.
1319 (ggc_pch_count_object, ggc_pch_alloc_object): Add TYPE argument.
1320 * ggc.h (gt_pch_note_object, ggc_pch_count_object)
1321 (ggc_pch_alloc_object): Update prototypes.
1322 (garbage_zone): Delete.
1323 (tree_zone, rtl_zone, ggc_alloc_zone_stat, ggc_alloc_zone): Move to
1324 GGC_ZONE conditional. Update. Change tree_zone and rtl_zone into
1326 (tree_id_zone): New variable.
1327 (ggc_alloc_cleared_zone): Remove unused.
1328 (ggc_alloc_zone): Define.
1329 (ggc_alloc_rtvec, ggc_alloc_tree): Update to use ggc_alloc_zone.
1330 * rtl.c (rtx_alloc_stat, shallow_copy_rtx_stat): Use
1331 ggc_alloc_zone_stat.
1332 * stringpool.c (gt_pch_n_S): Update call to gt_pch_note_object.
1333 * tree.c (copy_node_stat, make_tree_binfo_stat, make_tree_vec_stat)
1334 (tree_cons_stat, build1_stat): Update call to ggc_alloc_zone_stat.
1335 (make_node_stat): Likewise. Use tree_id_zone.
1337 2005-03-13 Daniel Jacobowitz <dan@codesourcery.com>
1338 Joseph S. Myers <joseph@codesourcery.com>
1340 * configure.ac: Check for MIPS TLS.
1341 * configure: Regenerated.
1342 * config/mips/mips-protos.h (enum mips_symbol_type): Add
1343 SYMBOL_TLS, SYMBOL_TLSGD, SYMBOL_TLSLDM, SYMBOL_DTPREL,
1344 SYMBOL_GOTTPREL, and SYMBOL_TPREL.
1345 * config/mips/mips.c (mips_regno_to_class): Handle V1_REG.
1346 (TARGET_HAVE_TLS, TARGET_CANNOT_FORCE_CONST_MEM): Define.
1347 (mips_classify_symbol, mips_symbolic_constant_p)
1348 (mips_symbolic_address_p, mips_symbol_insns): Handle TLS symbols.
1349 (mips_tls_operand_p, mips_call_tls_get_addr)
1350 (mips_legitimize_tls_address, mips_cannot_force_const_mem)
1351 (mips_tls_symbol_ref_1): New functions.
1352 (mips_legitimize_address, mips_legitimize_const_move): Call
1353 mips_legitimize_tls_address.
1354 (override_options): Handle V1_REG and TLS symbols. Disable TLS
1356 * config/mips/mips.h (enum reg_class, REG_CLASS_NAMES)
1357 (REG_CLASS_CONTENTS, GR_REG_CLASS_P): Include V1_REG.
1358 (mips_char_to_class): Document V1_REG.
1359 (HAVE_AS_TLS): Provide default.
1360 * config/mips/mips.md (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): New
1362 (load_got<mode>): Renamed from *load_got<mode>. Allow when
1364 (tls_get_tp_<mode>): New instruction.
1366 2005-03-13 Daniel Jacobowitz <dan@codesourcery.com>
1368 * configure.ac: Update checks for target tools.
1369 * configure: Regenerated.
1371 2005-03-13 Daniel Jacobowitz <dan@codesourcery.com>
1373 * varasm.c (decl_tls_model): Check flag_shlib instead of flag_pic.
1375 2005-03-13 Roger Sayle <roger@eyesopen.com>
1377 * expmed.c (expand_mult): Use synthetic multiplication sequences for
1378 more classes of DImode multiplication by constant. Allow both
1379 multiplication by small negative constants (by performing a
1380 multiplication by a positive constant and negating the result) and
1381 multiplications by large powers of two, by using a left shift.
1383 2005-03-13 Kazu Hirata <kazu@cs.umass.edu>
1385 * tree-into-ssa.c (find_idf): Speed up by putting the indexes
1386 of basic blocks into work_stack.
1388 * builtin-attrs.def, c-lex.c, c-pragma.h, reg-stack.c,
1389 config/mips/vr.h: Update copyright.
1391 * c-decl.c (c_init_decl_processing): Remove useless calls to
1392 build_function_type.
1394 * builtins.c (fold_trunc_transparent_mathfn,
1395 fold_fixed_mathfn, fold_builtin_atan, fold_builtin_trunc,
1396 fold_builtin_floor, fold_builtin_ceil, fold_builtin_round,
1397 fold_builtin_lround, fold_builtin_bitop, fold_builtin_memcpy,
1398 fold_builtin_strcpy, fold_builtin_strncpy,
1399 fold_builtin_signbit): Use TYPE (TYPE (fndecl)) instead of
1402 * builtins.c (expand_builtin_mathfn_3): Remove local variable
1405 * lambda-code.c (lambda_compute_auxillary_space): Remove local
1406 variable determinant.
1408 * tree-cfg.c (group_case_labels): Remove local variable type.
1410 * tree-ssa-live.c (build_tree_conflict_graph): Remove local
1413 * tree-ssa-phiopt.c (value_replacement): Remove local variable
1416 2005-03-13 Andy Hutchinson <HutchinsonAndy@netscape.net>
1419 * config/avr/avr.md (movmemhi): Rewrite as RTL loop.
1420 (*movmemqi_insn): Delete.
1421 (*movmemhi): Delete.
1423 2005-03-13 Kazu Hirata <kazu@cs.umass.edu>
1425 * builtins.c (fold_builtin_classify): Take decomposed
1426 arguments of CALL_EXPR.
1427 (fold_builtin_1): Update a call to fold_builtin_classify.
1429 2005-03-13 Joseph S. Myers <joseph@codesourcery.com>
1432 * c-parser.c (c_parser_struct_or_union_specifier): Don't fall
1433 through into call to parser_xref_tag after parse error.
1434 (c_parser_struct_declaration): Consistently return NULL_TREE on
1437 2005-03-12 Daniel Berlin <dberlin@dberlin.org>
1439 * tree-flow-inline.h (ref_contains_array_ref): New function.
1440 (lookup_subvars_for_var): Ditto.
1441 (get_subvars_for_var): Ditto.
1442 (var_can_have_subvars): Ditto.
1444 * tree-flow.h (mem_tag_kind): Add STRUCT_FIELD.
1445 (struct subvar): New type.
1447 * tree-dfa.c (okay_component_ref_for_subvars): New function.
1449 * tree-optimize.c (init_tree_optimization_passes): Call
1450 pass_create_structure_vars.
1452 * tree-ssa-alias.c: Include vec.h.
1453 (init_alias_info): Don't auto-clear call clobbered on struct-field
1455 (compute_flow_insensitive_aliasing): Handle subvars.
1456 (group_aliases): Handle STRUCT_FIELD aliases.
1457 (setup_pointers_and_addressables): Ditto.
1458 Don't mark variables non-addressable if they still have
1459 addressable subvars.
1460 Also mark subvars addressable when the real variable is marked
1462 (add_pointed_to_var): Try to prune the pointed-to set by only
1463 pointing to subvars when possible.
1464 Otherwise, make sure we set addresses_needed and pt_vars to
1465 properly include subvars.
1466 (bitpos_of_field): New function.
1467 (push_fields_onto_fieldstack): Ditto.
1468 (get_or_create_used_part_for): Ditto.
1469 (create_overlap_variables_for): Ditto.
1470 (find_used_portions): Ditto.
1471 (create_structure_vars): Ditto.
1472 (pass_create_structure_vars): New structure.
1474 * tree-ssa-operands.c (finalize_ssa_v_must_defs): Remove assert.
1475 (get_expr_operands): Handle subvars. Also try to turn
1476 COMPONENT_REF accesses into must-defs now that we can accurately
1478 (note_addressable): Try to only mark as addressable those subvars
1479 we know a COMPONENT_REF touches.
1480 (overlap_subvar): New function.
1482 * tree-vect-analyze.c (vect_object_analysis): Add new parameter.
1483 Handle subvar storing.
1484 (vect_address_analysis): Update caller of vect_object_analysis.
1486 * tree-vect-transform.c (vect_create_data_ref_ptr): Copy subvars.
1488 * tree-vectorizer.h (struct _stmt_vec_info): Add subvars member.
1489 (STMT_VINFO_SUBVARS): New macro.
1491 * common.opts: add flag_tree_salias.
1493 * opts.c (decode_options): flag_tree_salias defaults to on.
1495 * doc/invoke.texi: Document fdump-tree-svars and -ftree-salias.
1497 * doc/tree-ssa.texi: Document structural alias analysis.
1499 2005-03-12 Steven Bosscher <stevenb@suse.de>
1501 * tree-cfg.c (make_goto_expr_edges): Don't use error_mark_node.
1502 * tree-ssa-dce.c (mark_stmt_necessary): Don't check for it.
1503 * tree-ssa-operands.c (get_expr_operands): Likewise.
1504 (get_expr_operands): Likewise for ERROR_MARK.
1506 2005-03-12 Kazu Hirata <kazu@cs.umass.edu>
1508 * tree-ssa.c (kill_redundant_phi_nodes): Remove local variable
1511 * tree-ssa-phiopt.c (tree_ssa_phiopt): Remove local variable
1514 * tree-ssa-pre.c (compute_avail): Remove local variable val.
1515 (mark_operand_necessary): Remove local variable ver.
1517 * tree-vect-transform.c (vect_get_new_vect_var): Remove local
1518 variable prefix_len.
1520 * value-prof.c (mod_subtract_transform): Remove local variable
1523 * builtins.c (fold_builtin_exponent): Take decomposed
1524 arguments of CALL_EXPR.
1525 (fold_builtin_1): Update a call to fold_builtin_exponent.
1527 * builtins.c (fold_builtin_logarithm): Take decomposed
1528 arguments of CALL_EXPR.
1529 (fold_builtin_1): Update a call to fold_builtin_logarithm.
1531 * c-decl.c (c_init_decl_processing): Remove local variables
1532 ptr_ftype_void and ptr_ftype_ptr.
1534 * gimplify.c (gimplify_expr): Remove local variables r0 and
1537 * reg-stack.c (move_for_stack_reg): Remove local variable
1539 (compare_for_stack_reg): Remove local variable flags_user.
1540 (convert_regs_1): Remove local variable deleted.
1542 * tree-if-conv.c (tree_if_convert_cond_expr): Remove local
1544 (combine_blocks): Remove local variables exits and new_e.
1546 * tree-inline.c (expand_call_inline): Remove local variable
1549 * tree-ssa-live.c (create_ssa_var_map,
1550 calculate_live_on_entry): Remove local variable snn.
1552 2005-03-12 Geoffrey Keating <geoffk@apple.com>
1554 * c-lex.c (c_lex_with_flags): Add parameter to call to
1557 2005-03-11 Per Bothner <per@bothner.com>
1559 * c-tree.h (struct c_declarator): New id_loc field.
1560 * c-pragma.h (c_lex_with_flags): Take position reference.
1561 * c-lex.c (c_lex_with_flags): Set passed-in location from cpp token,
1562 iff USE_MAPPED_LOCATION. (Type doesn't match otherwise.)
1563 (c_lex): Pass dummy location to c_lex_with_flags.
1564 * c-parser.c (c_lex_one_token): Set c_token's location using
1565 c_lex_with_flags, instead of input_location, which might be "ahead".
1566 (c_parser_direct_declarator): Set declarator's id_loc from
1568 * c-decl.c (grokdeclarator): Set DECL_SOURCE_LOCATION from
1569 declarator's id_loc, rather than probably-imprecise input_location.
1570 (build_id_declarator): Initialize c_declarator's id_loc field.
1572 2005-03-11 Roger Sayle <roger@eyesopen.com>
1575 * builtins.c (expand_builtin_signbit): Force the signbit's word
1576 into an integer register to avoid SUBREGs of floating point modes.
1578 2005-03-12 Kazu Hirata <kazu@cs.umass.edu>
1580 * cfglayout.c, loop-doloop.c, profile.c, target-def.h,
1581 target.h, targhooks.c, tracer.c, tree-ssa-loop-ch.c,
1582 tree-ssa-loop-unswitch.c, tree-ssa-loop.c, vec.c, vmsdbgout.c,
1583 config/m32r/m32r.md, config/xtensa/xtensa.h: Update copyright.
1585 2005-03-11 David Edelsohn <edelsohn@gnu.org>
1587 PR rtl-optimization/20306
1588 * expr.c (emit_move_complex): Set try_int false if mode is
1589 MODE_COMPLEX_FLOAT and mov_optab exists for inner mode. Only try
1590 emit_block_move if try_int is true.
1592 2005-03-11 Richard Henderson <rth@redhat.com>
1595 * config/i386/mmx.md (vec_dupv4hi): Fix predicate.
1596 * config/i386/i386.c (ix86_expand_vector_init_duplicate): Update
1599 2005-03-11 Richard Sandiford <rsandifo@redhat.com>
1601 * config/mips/mips.h (mips_fix_vr4130_string): Declare.
1602 (TARGET_FIX_VR4130): New macro.
1603 (TARGET_OPTIONS): Add -mfix-vr4130.
1604 (ISA_HAS_MACCHI): New macro.
1605 (ASM_SPEC): Add -mfix-vr4130.
1606 * config/mips/mips.c (mips_fix_vr4130_string): New variable.
1607 (override_options): Handle mips_fix_vr4130_string.
1608 (mips_avoid_hazards): Clear all_noreorder_p
1609 if we're working around VR4130 errata and the macc alternatives
1611 * config/mips/mips.md (mfhilo_<mode>): Turn into a define_expand.
1612 (*mfhilo_<mode>, *mfhilo_<mode>_macc): New insns.
1613 * config/mips/vr.h (DEFAULT_VR_ARCH): Set to mfix-vr4130.
1614 (MULTILIB_DEFAULTS): Remove leading "march=".
1615 (DRIVER_SELF_SPECS): Likewise. Make -mfix-vr4130 imply -march=vr4130
1616 if no architecture option is given.
1617 * config/mips/t-vr (MULTILIB_OPTIONS): Use -mfix-vr4130 for the
1619 (MULTILIB_MATCHES): Map -march=vr4130 to the -mfix-vr4130 multilibs.
1620 * doc/invoke.texi: Document -mfix-vr4130.
1622 2005-03-11 Richard Sandiford <rsandifo@redhat.com>
1624 * config/mips/mips.c (override_options): Only warn about -mint64
1625 deprecation if TARGET_INT64.
1627 2005-03-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1629 * builtin-attrs.def (ATTR_NONNULL_LIST, ATTR_NOTHROW_NONNULL,
1630 ATTR_CONST_NOTHROW_NONNULL, ATTR_PURE_NOTHROW_NONNULL,
1631 ATTR_MALLOC_NOTHROW_NONNULL): New "nonnull" attribute lists which
1632 are non-specific regarding the nonnull parameter positions.
1633 (ATTR_NONNULL_1_2, ATTR_NONNULL_1_4, ATTR_NOTHROW_NONNULL_1_2,
1634 ATTR_NOTHROW_NONNULL_1_4, ATTR_CONST_NOTHROW_NONNULL_1,
1635 ATTR_PURE_NOTHROW_NONNULL_1, ATTR_PURE_NOTHROW_NONNULL_1_2,
1636 ATTR_MALLOC_NOTHROW_NONNULL_1): Delete.
1638 * builtins.def: Use the non-specific "nonnull" attibute lists.
1640 2005-03-11 Zdenek Dvorak <dvorakz@suse.cz>
1642 * basic-block.h (single_succ_p, single_pred_p, single_succ_edge,
1643 single_pred_edge, single_succ, single_pred): Improve comments.
1645 2005-03-11 Zdenek Dvorak <dvorakz@suse.cz>
1647 * basic-block.h (single_succ_p, single_pred_p, single_succ_edge,
1648 single_pred_edge, single_succ, single_pred): New inline functions.
1649 * bb-reorder.c (rotate_loop, find_traces_1_round,
1650 add_labels_and_missing_jumps, fix_up_fall_thru_edges,
1651 duplicate_computed_gotos): Use the single_succ/pred functions.
1652 * cfganal.c (forwarder_block_p): Ditto.
1653 * cfgbuild.c (compute_outgoing_frequencies): Ditto.
1654 * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
1655 outgoing_edges_match, try_crossjump_to_edge, try_optimize_cfg,
1656 merge_seq_blocks): Ditto.
1657 * cfghooks.c (split_edge, tidy_fallthru_edges): Ditto.
1658 * cfglayout.c (fixup_reorder_chain): Ditto.
1659 * cfgloop.c (mark_single_exit_loops, update_latch_info,
1660 canonicalize_loop_headers, verify_loop_structure): Ditto.
1661 * cfgloopmanip.c (remove_path, unloop, loop_delete_branch_edge,
1662 mfb_update_loops, create_preheader, force_single_succ_latches,
1663 create_loop_notes): Ditto.
1664 * cfgrtl.c (rtl_can_merge_blocks, try_redirect_by_replacing_jump,
1665 force_nonfallthru_and_redirect, rtl_tidy_fallthru_edge,
1666 commit_one_edge_insertion, purge_dead_edges,
1667 cfg_layout_can_merge_blocks_p): Ditto.
1668 * except.c (sjlj_emit_function_enter): Ditto.
1669 * flow.c (init_propagate_block_info): Ditto.
1670 * function.c (thread_prologue_and_epilogue_insns): Ditto.
1671 * gcse.c (find_implicit_sets, bypass_conditional_jumps,
1672 insert_insn_end_bb): Ditto.
1673 * ifcvt.c (merge_if_block, find_if_block, find_if_case_1,
1674 find_if_case_2): Ditto.
1675 * lambda-code.c (perfect_nestify): Ditto.
1676 * lcm.c (optimize_mode_switching): Ditto.
1677 * loop-doloop.c (doloop_modify): Ditto.
1678 * loop-init.c (loop_optimizer_init): Ditto.
1679 * loop-iv.c (simplify_using_initial_values): Ditto.
1680 * loop-unroll.c (unroll_loop_runtime_iterations): Ditto.
1681 * loop-unswitch.c (unswitch_loop): Ditto.
1682 * modulo-sched.c (generate_prolog_epilog): Ditto.
1683 * predict.c (combine_predictions_for_insn, estimate_probability,
1684 tree_estimate_probability, last_basic_block_p,
1685 estimate_bb_frequencies): Ditto.
1686 * profile.c (branch_prob): Ditto.
1687 * regrename.c (copyprop_hardreg_forward): Ditto.
1688 * sched-rgn.c (is_cfg_nonregular, find_rgns, update_live): Ditto.
1689 * tracer.c (layout_superblocks): Ditto.
1690 * tree-cfg.c (tree_can_merge_blocks_p, tree_merge_blocks,
1691 cfg_remove_useless_stmts_bb, cleanup_control_flow,
1692 cleanup_control_expr_graph, disband_implicit_edges,
1693 tree_find_edge_insert_loc, bsi_commit_edge_inserts,
1694 tree_verify_flow_info, tree_make_forwarder_block,
1695 tree_forwarder_block_p, remove_forwarder_block,
1696 remove_forwarder_block_with_phi, merge_phi_nodes): Ditto.
1697 * tree-if-conv.c (tree_if_conversion): Ditto.
1698 * tree-mudflap.c (mf_build_check_statement_for): Ditto.
1699 * tree-ssa-dce.c (remove_dead_stmt): Ditto.
1700 * tree-ssa-dom.c (dom_opt_finalize_block): Ditto.
1701 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p,
1702 copy_loop_headers): Ditto.
1703 * tree-ssa-loop-im.c (loop_commit_inserts): Ditto.
1704 * tree-ssa-loop-ivopts.c (compute_phi_arg_on_exit): Ditto.
1705 * tree-ssa-loop-manip.c (split_loop_exit_edge, ip_normal_pos,
1706 lv_adjust_loop_entry_edge, tree_ssa_loop_version): Ditto.
1707 * tree-ssa-loop-niter.c (simplify_using_initial_conditions): Ditto.
1708 * tree-ssa-loop-unswitch.c (simplify_using_entry_checks): Ditto.
1709 * tree-ssa-phiopt.c (tree_ssa_phiopt, value_replacement): Ditto.
1710 * tree-ssa-pre.c (compute_antic_aux, insert_aux, init_pre): Ditto.
1711 * tree-ssa-threadupdate.c (redirect_edges): Ditto.
1712 * tree-tailcall.c (independent_of_stmt_p, find_tail_calls,
1713 eliminate_tail_call, tree_optimize_tail_calls_1): Ditto.
1714 * tree-vect-analyze.c (vect_analyze_loop_form): Ditto.
1715 * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Ditto.
1716 * tree-vectorizer.c (slpeel_update_phi_nodes_for_guard,
1717 slpeel_add_loop_guard): Ditto.
1719 2005-03-11 James A. Morrison <phython@gcc.gnu.org>
1721 PR tree-optimization/15784
1722 * fold-const.c (fold): Fold ~A + 1 to -A. Fold -A - 1
1725 * stmt.c (expand_case): Don't change index_type. Convert minval
1728 PR tree-optimization/20130
1729 * fold-const.c (fold): Fold x * -1 into -x.
1731 2005-03-11 Kaz Kojima <kkojima@gcc.gnu.org>
1733 PR rtl-optimization/20331
1734 * rtlanal.c (modified_between_p): Check its address first for MEM.
1735 (modified_in_p): Likewise.
1737 2005-03-11 Joseph S. Myers <joseph@codesourcery.com>
1739 * config.gcc (hppa*64*-*-hpux11*): Use pa/t-hpux-shlib.
1741 2005-03-10 Steven Bosscher <stevenb@suse.de>
1743 * expr.c (expand_expr_real_1): If possible, use a conditional
1744 move for expanding MIN_EXPR and MAX_EXPR.
1745 Use temp for moving around rtx-en.
1747 2005-03-10 Andrew Pinski <pinskia@physics.uc.edu>
1750 * simplify-rtx.c (simplify_relational_operation_1): Fix typo - check the
1753 2005-03-10 Roger Sayle <roger@eyesopen.com>
1755 * builtins.c (expand_builtin_signbit): Extend to handle floating
1756 point modes wider than the largest integer type, using the
1757 operand_subword_force function to obtain the signbit's word.
1759 2005-03-10 Jakub Jelinek <jakub@redhat.com>
1762 * combine.c (try_combine): If recog_for_combine added CLOBBERs
1763 to NEWI2PAT, fail to combine if they are used by NEWPAT.
1765 2005-03-10 Aldy Hernandez <aldyh@redhat.com>
1767 * doc/invoke.texi: Add 8540 to list of cpus in rs6000 cpu section.
1769 2005-03-10 Kazu Hirata <kazu@cs.umass.edu>
1771 * tree-outof-ssa.c (analyze_edges_for_bb): Make the return
1773 (perform_edge_inserts): Unconditionally call
1774 free_dominator_info.
1776 * tree-outof-ssa.c (analyze_edges_for_bb): Update a comment.
1778 2005-03-10 Bob Wilson <bob.wilson@acm.org>
1780 * config/xtensa/xtensa.h (MEMBER_TYPE_FORCES_BLK): Define.
1782 2005-03-10 Nathan Sidwell <nathan@codesourcery.com>
1784 * bitmap.c (bitmap_copy): Remove manual loop unrolling.
1786 * value-prof.c (rtl_find_values_to_profile): Use gcc_assert and
1788 (rtl_register_value_prof_hooks,
1789 tree_value_profile_transformations,
1790 tree_register_value_prof_hooks): Likewise.
1791 * var-tracking.c (stack_adjust_offset_pre_post,
1792 variable_htab_free, variable_union, dataflow_set_different_2,
1793 count_uses, variable_was_changed, set_frame_base_location,
1794 set_variable_part, emit_note_insn_var_location, vt_emit_notes,
1795 vt_add_function_parameters): Likewise.
1796 * varasm.c (named_section_real, named_section, make_decl_rtl,
1797 asm_emit_uninitialised, assemble_integer, decode_addr_const,
1798 const_hash_1, compare_constant, copy_constant, force_const_mem,
1799 output_constant_pool_2, output_constant_pool_1, output_constant,
1800 output_constructor, make_decl_one_only, decl_tls_model,
1801 default_no_named_section, default_elf_select_section_1,
1802 default_unique_section_1): Likewise.
1803 * vec.c (vec_gc_o_reserve, vec_heap_o_reserve): Likewise.
1804 * vmsdbgout.c (addr_const_to_string): Likewise.
1807 * function.c (struct assign_parm_data_one): Remove last_named
1809 (assign_parm_find_data_types): Don't determine last_named.
1810 Reorder named_parm determination.
1811 (assign_parms): Only setup varargs on the last non-varadic
1814 2005-03-10 Kazuhiro Inaoka <inaoka.lazuhiro@renesas.com>
1816 * config/m32r/m32r.md (load_sda_base_32): New pattern. Loads
1817 sda base address on medium model.
1819 2005-03-10 Zdenek Dvorak <dvorakz@suse.cz>
1821 * Makefile.in (tree-optimize.o): Add CFGLOOP_H dependence.
1822 * cfgloop.c (flow_loop_nodes_find): Export.
1823 * cfgloop.h (flow_loop_nodes_find, fix_loop_structure):
1825 * cfgloopmanip.c (fix_loop_structure): New function.
1826 * predict.c (predict_loops): Clean up the loops information.
1827 * tree-cfg.c (cleanup_tree_cfg_loop): New function.
1828 (tree_can_merge_blocks_p, remove_bb, tree_forwarder_block_p): Respect
1830 * tree-flow.h (cleanup_tree_cfg_loop): Declare.
1831 (rewrite_into_loop_closed_ssa): Declaration changed.
1832 * tree-loop-linear.c (linear_transform_loops): Add argument to
1833 rewrite_into_loop_closed_ssa call.
1834 * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
1835 * tree-ssa-loop-im.c (move_computations): Ditto.
1836 * tree-ssa-loop.c (tree_loop_optimizer_init): Ditto.
1837 * tree-vectorizer.c (vectorize_loops): Ditto.
1838 * tree-optimize.c: Include cfgloop.h.
1839 (execute_todo): Choose whether to call cleanup_tree_cfg or
1840 cleanup_tree_cfg_loop.
1841 * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables,
1842 (tree_unroll_loops_completely): Enable cleanup_tree_cfg_loop call.
1843 * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Enable
1844 cleanup_tree_cfg_loop call.
1845 * tree-ssa-loop-manip.c (find_uses_to_rename_bb): New function.
1846 (find_uses_to_rename, rewrite_into_loop_closed_ssa): Support
1847 work on part of cfg.
1849 2005-03-10 Jakub Jelinek <jakub@redhat.com>
1852 * gimplify.c (gimplify_asm_expr): Handle input/output constraints
1853 with multiple alternatives.
1855 * stmt.c (parse_output_constraint): Fix a typo.
1857 2005-03-09 Bob Wilson <bob.wilson@acm.org>
1859 * config/xtensa/xtensa.h (TRAMPOLINE_TEMPLATE): Use "no-transform"
1860 assembly directive instead of deprecated "no-generics".
1862 2005-03-09 Ulrich Weigand <uweigand@de.ibm.com>
1864 * config/s390/s390.c (s390_secondary_output_reload_class): Adapt check
1865 for non-offsettable memory references to cope with outstanding reload
1867 * config/s390/s390.md ("reload_outti"): Call find_replacement to
1868 avoid losing outstanding address reloads.
1869 ("reload_outdi", "reload_outdf"): Likewise.
1871 2005-03-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1873 * builtins.c (fold_builtin_cbrt, fold_builtin_pow): Rearrange
1874 code. Add more cbrt transformations.
1876 2005-03-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1878 * fold-const.c (fold_unary_to_constant): Add FIX_ROUND_EXPR case.
1880 2005-03-09 Kazu Hirata <kazu@cs.umass.edu>
1882 * fold-const.c (fold_unary, fold_binary, fold_ternary): Return
1883 NULL_TREE when a given tree is not simplified.
1884 (fold): Return the original tree when any of the functions
1885 mentioned above NULL_TREE.
1887 * fold-const.c (fold_unary, fold_binary): Take decomposed
1888 arguments, code, type, op0, and op1 in case of fold_binary.
1889 (fold): Update calls to fold_unary and fold_binary.
1891 2005-03-09 Roger Sayle <roger@eyesopen.com>
1893 * builtins.c (fold_builtin_unordered_cmp): Change prototype to take
1894 a fndecl and an arglist instead of a CALL_EXPR, exp.
1896 2005-03-09 Kazu Hirata <kazu@cs.umass.edu>
1898 * cfglayout.c (fixup_reorder_chain): Remove old_bb.
1900 * cfgrtl.c (cfg_layout_merge_blocks): Remove new_e.
1902 * expr.c (expand_assignment): Remove orig_to_rtx.
1904 * fold-const.c (int_const_binop): Remove no_overflow.
1906 * ifcvt.c (noce_emit_move_insn): Remove inmode.
1908 * loop-iv.c (get_biv_step_1): Remove lhs.
1910 * loop-unroll.c (analyze_insns_in_loop): Remove preheader.
1912 * real.c (real_nan): Remove neg.
1914 * function.c (thread_prologue_and_epilogue_insns): Remove i
1917 * tree-data-ref.c (array_base_name_differ_p): Remove ta and
1920 * tree-eh.c (tree_could_trap_p): Remove idx.
1922 * tree-into-ssa.c (ann): Remove ann.
1924 * tree-outof-ssa.c (num_nodes): Remove num_nodes.
1926 * tree-sra.c (decide_block_copy): Remove inst_count.
1928 * tree-ssa-alias.c (may_alias_p): Remove v_ann.
1930 * tree-ssa-loop-im.c (lhs): Remove.
1932 * cfgbuild.c (state, STATE, SET_STATE,
1933 BLOCK_USED_BY_TABLEJUMP, FULL_STATE): Move just before
1935 (make_edges): Speed up by skipping blocks with BLOCK_ORIGINAL.
1936 (find_basic_blocks): Set the state of each basic block to
1939 2005-03-08 Jeff Law <law@redhat.com>
1941 * tree-cfg.c (cleanup_control_flow): If removal of a computed
1942 goto results in the removal of edges in the CFG, then we need
1943 to recompute dominators.
1945 2005-03-09 Ben Elliston <bje@au.ibm.com>
1947 * c-common.c (c_do_switch_warnings): Comment fix.
1949 2005-03-08 Julian Brown <julian@codesourcery.com>
1951 * Patch from 2005-03-08 reverted for causing regressions and
1952 ppc-darwin bootstrap failure.
1954 2005-03-08 Fariborz Jahanian <fjahanian@apple.com>
1956 * config/rs6000/rs6000.c (invalid_arg_for_unprototyped_fn):
1957 Define the real function for ppc-darwin.
1958 * c-typeck.c (convert_arguments): Check for target-specific
1959 invalid argument call to unprototyped function.
1960 * target-def.h (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
1962 * target.h (invalid_arg_for_unprototyped_fn): New field
1964 * targhooks.c (hook_invalid_arg_for_unprototyped_fn): New
1965 default target hook.
1966 * targhooks.h (hook_invalid_arg_for_unprototyped_fn):
1969 2005-03-08 Kazu Hirata <kazu@cs.umass.edu>
1971 * c-typeck.c (constructor_stack, constructor_range_stack,
1972 initializer_stack): Make them static.
1974 * cfg.c (rbi_pool): Make it static.
1976 * gimple-low.c (lower_stmt_body): Make it static.
1977 * tree-flow.h: Remove the corresponding prototype. Don't
1980 * sched-deps.c (cache_size): Make it static.
1982 * stor-layout.c (lang_adjust_rli): Make it static.
1984 2005-03-08 Julian Brown <julian@codesourcery.com>
1986 * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK
1987 from being used for symbols with vague linkage when
1988 HAVE_GAS_COMDAT_GROUP is true.
1990 2005-03-08 J"orn Rennecke <joern.rennecke@st.com>
1992 * jump.c (invert_jump_1): Don't call redirect_jump_1 with
1993 nlabel == JUMP_LABEL (jump).
1995 2005-03-08 Kazu Hirata <kazu@cs.umass.edu>
1997 * c-common.c, c-opts.c, combine.c, cse.c, dojump.c,
1998 gimplify.c, tree-dfa.c, tree-ssa-loop-ivopts.c,
1999 tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-sink.c,
2000 tree-vect-analyze.c, tree.def, tree.h: Fix comment formatting.
2002 2005-03-08 Alexey Neyman <alex.neyman@auriga.ru>
2005 * calls.c (flags_from_decl_or_type): Handle eturns_twice' attribute.
2006 * c-common.c (handle_returns_twice): New function.
2007 (c_common_attribute_table): Declare eturns_twice' attribute.
2008 * doc/extend.texi: Document eturns_twice' attribute.
2009 * tree.h (DECL_IS_RETURNS_TWICE): New macro.
2010 (struct tree_decl): Add returns_twice_flag.
2012 2005-03-08 Kazu Hirata <kazu@cs.umass.edu>
2014 * tree-ssa-phiopt.c: Fix a comment typo.
2016 * c-semantics.c, cfghooks.c, diagnostic.h, loop-iv.c,
2017 loop-unswitch.c, modulo-sched.c, stor-layout.c, tree-gimple.h,
2018 config/i386/cygwin1.c, doc/cfg.texi, doc/objc.texi: Update
2021 2005-03-08 Richard Henderson <rth@redhat.com>
2023 * config/alpha/alpha.c (code_for_builtin): Replace special-case
2024 builtin codes with ctzdi2, clzdi2, popcountdi2.
2025 (struct alpha_builtin_def): Add is_const.
2026 (zero_arg_builtins, one_arg_builtins, two_arg_builtins): Init it.
2027 (alpha_v8qi_u, alpha_v8qi_s, alpha_v4hi_u, alpha_v4hi_s): New.
2028 (alpha_init_builtins): Init them. Set nothrow and const attributes
2030 (alpha_fold_builtin_cmpbge, alpha_fold_builtin_zapnot,
2031 alpha_fold_builtin_extxx, alpha_fold_builtin_insxx,
2032 alpha_fold_builtin_mskxx, alpha_fold_builtin_umulh,
2033 alpha_fold_vector_minmax, alpha_fold_builtin_perr,
2034 alpha_fold_builtin_pklb, alpha_fold_builtin_pkwb,
2035 alpha_fold_builtin_unpkbl, alpha_fold_builtin_unpkbw,
2036 alpha_fold_builtin_cttz, alpha_fold_builtin_ctlz,
2037 alpha_fold_builtin_ctpop, alpha_fold_builtin): New.
2038 (TARGET_FOLD_BUILTIN): New.
2039 * config/alpha/alpha.md (UNSPEC_CTTZ): Remove.
2040 (UNSPEC_CTLZ, UNSPEC_CTPOP): Remove.
2042 (cttz, builtin_cttz, builtin_ctlz, builtin_ctpop): Remove.
2044 2005-03-08 Ira Rosen <irar@il.ibm.com>
2046 PR tree-optimization/20122
2047 * tree-vect-analyze.c (vect_object_analysis): Analyze initial
2048 condition of access function instead of base.
2050 2005-03-07 Jeff Law <law@redhat.com>
2051 Steven Bosscher <stevenb@suse.de>
2053 * tree-cfg.c (find_taken_edge_computed_goto): New function.
2054 (find_taken_edge): Call find_taken_edge_computed_goto as
2055 appropriate. Allow any gimple invariant rather than just
2056 INTEGER_CST for VAL.
2057 (cleanup_control_flow): Cleanup a computed goto which has turned
2059 (tree_merge_blocks): If block B has any forced labels, move
2060 them to the start of block A.
2061 * tree-ssa-dom.c (thread_across_edge): Allow threading across
2062 computed gotos as well.
2063 * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Handle
2064 removal of unnecessary computed gotos too.
2065 (lookup_redirection_data): Fix type of INSERT argument. Callers
2068 2005-03-08 Kazu Hirata <kazu@cs.umass.edu>
2070 * tree-ssa-phiopt.c: Update copyright. Fix indentations.
2071 Remove trailing spaces.
2073 * gimplify.c (gimple_push_bind_expr, gimple_pop_bind_expr,
2074 unshare_all_trees): Make them static.
2075 * tree-gimple.h: Remove the corresponding prototypes.
2077 * diagnostic.h: Remove unused prototype
2078 debug_output_buffer.
2079 * modulo-sched.c: Remove unused prototype
2080 set_row_column_for_ps.
2082 * tree-ssa-phiopt.c (tree_ssa_phiopt,
2083 replace_phi_edge_with_variable): Remove unused variable i.
2085 2005-03-07 Per Bothner <per@bothner.com>
2087 * tree.h (DECL_IS_BUILTIN): Reverted my patch from earlier today.
2089 2005-03-06 Andrew Pinski <pinskia@physics.uc.edu>
2092 * tree-ssa-phiopt.c (tree_ssa_phiopt): Rewrite so we base the
2093 bbs on the COND_EXPR instead of the PHI_NODEs.
2094 (candidate_bb_for_phi_optimization): Remove.
2095 (replace_phi_with_stmt): Rename to ...
2096 (replace_phi_edge_with_variable): this and change so that we
2097 replace the phi argument instead of removing the PHI.
2098 (conditional_replacement): Change so we deal with PHI with more
2100 (value_replacement): Likewise.
2101 (abs_replacement): Likewise.
2103 2005-03-07 Aldy Hernandez <aldyh@redhat.com>
2105 * config/rs6000/rs6000-protos.h: Rename output_e500_flip_eq_bit to
2106 output_e500_flip_gt_bit.
2108 * config/rs6000/rs6000.c (print_operand): case D: Print out bit 31
2110 (rs6000_generate_compare): Fix logic to look at the correct bits.
2111 (output_e500_flip_eq_bit): Rename to output_e500_flip_gt_bit.
2113 (rs6000_emit_sCOND): Rename gen_e500_flip_eq_bit to
2114 gen_e500_flip_gt_bit. Rename gen_move_from_CR_eq_bit to
2115 gen_move_from_CR_gt_bit.
2117 * config/rs6000/rs6000.md ("move_from_CR_eq_bit"): Change bit
2118 ("move_from_CR_eq_bit"): Rename to move_from_CR_gt_bit.
2119 (UNSPEC_MV_CR_EQ): Rename to UNSPEC_MV_CR_GT.
2121 * config/rs6000/spe.md ("e500_cr_ior_compare"): New.
2122 (E500_CR_IOR_COMPARE): New constant.
2124 2005-03-08 Earl Chew <earl_chew@agilent.com>
2125 David Billinghurst <David.Billinghurst@riotinto.com>
2127 * config/i386/host-cygwin.c: New file to support precompiled
2129 * config/i386/x-cygwin: Use host-cygwin.c on cygwin host
2130 * config.host: Use above files for cygwin host.
2132 2005-03-07 David Edelsohn <edelsohn@gnu.org>
2134 * fold-const.c (fold_binary_op_with_conditional_arg): Fix typo
2135 ordering ops from earlier change.
2137 2005-03-07 Per Bothner <per@bothner.com>
2139 Various fixes to allow us to again build if --enable-mapped-location:
2140 * c-decl.c (finish_function): Use SET_EXPR_LOCATION instead of
2141 unavailable annotate_with_file_line, if USE_MAPPED_LOCATION.
2142 * tree-cfg.c (remove_bb): If USE_MAPPED_LOCATION, change type of
2143 local variable loc. Change logic appropriately.
2144 * tree-vect-transform.c (vect_finish_stmt_generation): Use
2145 EXPR_LOCATION rather than EXPR_LOCUS if USE_MAPPED_LOCATION.
2146 * c-parser.c (c_parser_for_statement): Initialize loc variable.
2147 * tree.h (DECL_IS_BUILTIN): Temporarily revert definition of
2148 DECL_IS_BUILTIN in the USE_MAPPED_LOCATION because of jc1 issues.
2150 2005-03-07 Richard Sandiford <rsandifo@redhat.com>
2152 PR rtl-optimization/19683
2153 * reload1.c (choose_reload_regs): Pass the number of bits, not the
2154 number of bytes, to smallest_int_for_mode. Fix arguments to
2155 REG_CANNOT_CHANGE_MODE_P.
2157 2005-03-07 Eric Botcazou <ebotcazou@libertysurf.fr>
2159 * reorg.c (relax_delay_slots): Check that the jump is
2160 conditional before trying to invert it.
2162 2005-03-07 Kazu Hirata <kazu@cs.umass.edu>
2164 * bb-reorder.c (max_entry_frequency, max_entry_frequency):
2167 * calls (stack_arg_under_construction): Make it static.
2169 * flow.c (regs_live_at_setjmp): Make it static.
2170 * flow.h: Remove the corresponding prototype.
2172 * reload1.c (reload_startobj, reload_firstobj,
2173 something_needs_operands_changed, reload_inherited,
2174 reload_inheritance_insn, reload_override_in,
2175 reload_spill_index): Make them static.
2177 * recog.c (verify_changes): Make it static.
2178 * recog.h: Remove the corresponding prototype.
2180 * cfgbuild.c (find_sub_basic_blocks): Remove.
2181 * basic-block.h: Remove the corresponding prototype.
2182 * cfgexpand.c, cfgrtl.c: Don't mention find_sub_basic_blocks
2184 * doc/cfg.texi: Don't mention find_sub_basic_blocks.
2186 * tree-ssa-operands.c (check_build_stmt): Remove.
2188 * stor-layout.c (set_alignment): Remove.
2189 * tree.h: Remove the corresponding prototype.
2191 * tree-ssa-pre.c (has_abnormal_preds): Make it static.
2193 * tree-ssa-dce.c (control_dependence_map,
2194 visited_control_parents): Make them static.
2196 * cfghooks.c (verify_flow_info): Remove local variable
2199 * cfgrtl.c (rtl_verify_flow_info_1): Remove local variable
2202 * loop-unswitch.c (unswitch_loop): Remove local variable src.
2204 2005-03-07 David Billinghurst <David.Billinghurst@riotinto.com>
2206 * config/i386/cygwin1.c(mingw_scan): Use xstrdup in calls to putenv.
2208 2005-03-07 Joseph S. Myers <joseph@codesourcery.com>
2210 * config/ia64/hpux.h (LINK_SPEC): Add -z.
2211 * config/ia64/ia64.c (ia64_function_value): Return a REG not a
2212 PARALLEL for an empty structure.
2214 2005-03-07 Kazu Hirata <kazu@cs.umass.edu>
2216 * fold-const.c (fold_binary): Remove handling of RANGE_EXPR.
2218 * fold-const.c (fold_binary): Unroll the very first "for"
2221 2005-03-06 David Edelsohn <edelsohn@gnu.org>
2223 * config/rs6000/predicates.md (branch_comparison_operator): Remove
2224 redundant match_code test.
2225 (scc_comparison_operator): Swap match_operand and match_code
2227 (branch_positive_comparison_operator): Same.
2228 (trap_comparison_operator): Use comparison_operator and swap with
2231 2005-03-06 Marek Michalkiewicz <marekm@amelek.gda.pl>
2234 * config/avr/avr.c (print_operand): Add 'p' and 'r'.
2235 (out_movhi_r_mr): Read low byte of volatile MEM first.
2236 (out_movhi_mr_r): Write high byte of volatile MEM first.
2238 2005-03-05 Kazu Hirata <kazu@cs.umass.edu>
2240 * cselib.c (reg_values, reg_values_size): Make them static.
2242 * cse.c (cse_reg_info_table): Make it static.
2244 * fold-const.c (fold_unary): Use build1 instead of copy_node.
2246 2005-03-06 Zdenek Dvorak <dvorakz@suse.cz>
2248 * cse.c (find_best_addr): Use canon_for_address.
2250 2005-03-06 Kazu Hirata <kazu@cs.umass.edu>
2252 * cse.c (fold_rtx_subreg, fold_rtx_mem): New.
2253 (fold_rtx): Call fold_rtx_subreg and fold_rtx_mem to handle
2254 SUBREG and MEM, respectively.
2256 * fold-const.c (fold_binary): Use code instead of t.
2258 * fold-const.c (optimize_minmax_comparison): Take decomposed
2259 arguments code, type, op0, and op1 instead of t.
2260 (fold_binary): Update a call to optimize_minmax_comparison.
2262 * fold-const.c (fold_range_test): Take decomposed arguments
2263 code, type, op0, and op1 instead of t.
2264 (fold_binary): Update a call to fold_range_test.
2266 * fold-const.c (fold_binary_op_with_conditional_arg): Take
2267 decomposed arguments code, type, op0, and op1 instead of t.
2268 (fold_binary): Update a call to fold_range_test.
2270 2005-03-06 Kazu Hirata <kazu@cs.umass.edu>
2272 * fold-const.c (fold_binary): Avoid directly using the original
2273 expression t as much as possible.
2275 2005-03-05 Kazu Hirata <kazu@cs.umass.edu>
2277 * c-semantics.c (build_stmt): Use TYPE_P instead of
2278 IS_NON_TYPE_CODE_CLASS.
2279 * tree.h (IS_NON_TYPE_CODE_CLASS): Remove.
2280 (NON_TYPE_CHECK): Use TYPE_P instead of
2281 IS_NON_TYPE_CODE_CLASS.
2283 * fold-const.c (fold): Remove handling of binary expressions.
2285 2005-03-05 James A. Morrison <phython@gcc.gnu.org>
2287 * doc/c-tree.texi: Wrap comments in @r{}.
2288 * doc/cpp.texi: Likewise.
2289 * doc/cppinternals.texi: Likewise.
2290 * doc/extend.texi: Likewise.
2291 * doc/md.texi: Likewise.
2292 * doc/objc.texi: Likewise.
2293 * doc/sourcebuild.texi: Likewise.
2294 * doc/tm.texi: Likewise.
2297 2005-03-05 Kazu Hirata <kazu@cs.umass.edu>
2299 * predict.c (apply_return_prediction): Standardize PHI chain
2301 * tree-ssa.c (ssa_redirect_edge): Likewise.
2303 * genattrtab.c, genemit.c, genoutput.c, genrecog.c,
2304 gensupport.c, jump.c, tree-phinodes.c, unwind-dw2-fde-glibc.c:
2307 * tree-phinodes.c (remove_phi_node): Drop the last argument.
2308 * tree-flow.h: Adjust the prototype for remove_phi_node.
2309 * lambda-code.c (perfect_nestify): Adjust a call to
2312 (remove_phi_nodes_and_edges_for_unreachable_block): Likewise.
2313 * tree-outof-ssa.c (eliminate_virtual_phis, remove_ssa_form):
2315 * tree-ssa-dce.c (remove_dead_phis): Likewise.
2316 * tree-ssa-loop-ivopts.c (remove_statement): Likewise.
2317 * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
2318 * tree-ssa.c (kill_redundant_phi_nodes): Likewise.
2320 * combine.c (simplify_and_const_int): Use gen_int_mode instead
2321 of GEN_INT (trunc_int_for_mode (...)).
2322 * loop-iv.c (iv_number_of_iterations): Likewise.
2323 * postreload.c (reload_cse_move2add): Likewise.
2324 * simplify-rtx.c (simplify_const_unary_operation,
2325 simplify_const_binary_operation): Likewise.
2326 * stor-layout.c (get_mode_bounds): Likewise.
2328 * fold-const.c (fold_binary): New.
2329 (fold): Call fold_binary on binary expressions.
2331 2005-03-05 Richard Sandiford <rsandifo@redhat.com>
2333 * doc/invoke.texi: Document new MIPS -msym32 and -mno-sym32 options.
2334 * config/mips/mips.h (MASK_SYM32, TARGET_SYM32): New macros.
2335 (TARGET_SWITCHES): Add -msym32 and -mno-sym32.
2336 (ABI_HAS_64BIT_SYMBOLS): Set to false if TARGET_SYM32.
2337 (ASM_SPEC): Pass down -msym32 and -mno-sym32.
2339 2005-03-04 Devang Patel <dpatel@apple.com>
2341 PR tree-optimization/18815
2342 * tree-if-conv.c (combine_blocks): Adjust loop header edges for
2343 loops with zero exit edges.
2345 2005-03-04 Devang Patel <dpatel@apple.com>
2347 * doc/invoke.texi: Remove reference to webpage that does not exist.
2349 2005-03-04 John David Anglin <dave.danglin@nrc-cnrc.gc.ca>
2350 Joseph S. Myers <joseph@codesourcery.com>
2353 * pa/elf.h, pa64-hpux.h, som.h (ASM_OUTPUT_EXTERNAL_REAL): Define.
2354 (ASM_OUTPUT_EXTERNAL): Call pa_hpux_asm_output_external.
2355 * pa-protos.h (pa_hpux_asm_output_external): Add prototype.
2356 * pa.c (get_plabel): Change argument to symbol_ref. Call
2357 maybe_get_identifier instead of get_identifier.
2358 (pa_hpux_asm_output_external, pa_hpux_file_end): New functions.
2359 (struct deferred_plabel): Replace name field with symbol field.
2360 (TARGET_ASM_FILE_END): Define as pa_hpux_file_end if
2361 ASM_OUTPUT_EXTERNAL_REAL is defined.
2362 (output_global_address): Use output_addr_const for output of all
2364 (output_deferred_plabels): Use symbol_ref instead of name for address
2366 * pa.h (SYMBOL_FLAG_REFERENCED, SYMBOL_REF_REFERENCED_P,
2367 ASM_OUTPUT_SYMBOL_REF): New macros.
2368 * som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Use assemble_name_raw. Update
2370 (ASM_WEAKEN_LABEL): Use targetm.asm_out.globalize_label to globalize
2373 2005-03-05 Joseph S. Myers <joseph@codesourcery.com>
2375 * config.gcc (hppa*64*-*-hpux11*): Use pa/pa-hpux1111.h for
2376 *-*-hpux11.[1-9]*, not just for *-*-hpux11.11.
2378 2005-03-04 Jeff Law <law@redhat.com>
2380 * basic-block.h (rediscover_loops_after_threading): Declare.
2381 * tree-ssa-dom.c: Include cfgloop.h.
2382 (tree_ssa_dominator_optimize): Discover loops and some basic
2383 properties. Remove forwarder blocks recreated by loop header
2384 canonicalization. Also mark backedges in the CFG.
2385 * tree-ssa-threadupdate.c: Include cfgloop.h
2386 (rediscover_loops_after_threading): Define.
2387 (struct local_info): New field, JUMP_THREADED.
2388 (prune_undesirable_thread_requests): New function.
2389 (redirect_edges): Clear EDGE_ABNORMAL. If edges were threaded
2390 then record that fact for the callers of redirct_edges.
2391 (thread_block): If BB has incoming backedges, then call
2392 prune_undesirable_thraed_requests. Note when we are
2393 going to have to rediscover loop information. Return a
2394 boolean indicating if any jumps were threaded.
2395 (thread_through_all_blocks): Bubble up boolean indicating
2396 if any jumps were threaded.
2397 * Makefile.in (tree-ssa-dom.o): Depend on cfgloop.h
2398 (tree-ssa-threadupdate.o): Similarly.
2400 2005-03-04 Kazu Hirata <kazu@cs.umass.edu>
2402 * fold-const.c (fold_ternary): Unroll the "for" loop to
2405 2005-03-04 Andrew Haley <aph@redhat.com>
2407 * unwind-dw2-fde-glibc.c (struct
2408 unw_eh_callback_data.check_cache): New field.
2409 (frame_hdr_cache): New.
2410 (_Unwind_IteratePhdrCallback): Add ext_dl_phdr_info.
2411 Cache frame header info.
2413 2005-03-04 Richard Sandiford <rsandifo@redhat.com>
2415 * rtl.h (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
2416 (print_c_condition): Declare.
2417 * read-rtl.c (ptr_loc): New structure.
2418 (ptr_locs, ptr_loc_obstack, joined_conditions)
2419 (joined_conditions_obstack): New variables.
2420 (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc)
2421 (get_rtx_ptr_loc, copy_rtx_ptr_loc, print_rtx_ptr_loc)
2422 (join_c_conditions, print_c_condition): New functions.
2423 (apply_macro_to_string): Associate the new string with the same
2424 source location as the old one.
2425 (add_condition_to_string): Use join_c_conditions.
2426 (read_string): Use set_rtx_ptr_loc to record a filename and line
2427 number for the string.
2428 (read_rtx): Initialize the new variables above.
2429 * genattrtab.c (write_test_expr, write_attr_value): Use
2431 * genconditions.c (write_header): Don't define MAYBE_EVAL. Move its
2432 comment above the GCC_VERSION check.
2433 (write_one_condition): Use print_rtx_ptr_loc and print_c_condition.
2434 Inline the definition of MAYBE_EVAL.
2435 * genemit.c (gen_expand, gen_split): Use print_rtx_ptr_loc.
2436 * genoutput.c (process_template): Likewise.
2437 * genpreds.c (write_predicate_subfunction): Likewise.
2438 (write_predicate_expr): Use print_c_condition.
2439 * genrecog.c (write_cond): Likewise.
2440 * gensupport.c (process_rtx): Use join_c_conditions to join the
2441 conditions of a define_insn_and_split. Record a source location
2442 for the string after the "&&".
2443 (alter_test_for_insn): Use join_c_conditions.
2445 2005-03-04 Andrew Pinski <pinskia@physics.uc.edu>
2448 2005-03-03 James A. Morrison <phython@gcc.gnu.org>
2449 PR tree-optimization/15784
2450 * fold-const.c (fold): Fold ~A + 1 to -A. Fold -A - 1
2453 2005-03-04 Ben Elliston <bje@au.ibm.com>
2455 * gcc.c (option_map): Add --coverage.
2456 (LINK_COMMAND_SPEC): Pass -lgcov for `coverage'.
2457 (cc1_options): Pass -fprofile-arcs -ftest-coverage for `coverage'.
2458 * config/darwin.h: Pass -lgcov for `coverage'.
2459 * doc/invoke.texi (Debugging Options): Document --coverage.
2461 2005-03-04 Kazu Hirata <kazu@cs.umass.edu>
2463 * gcse.c (bypass_block): Use find_edge wherever possible.
2465 2005-03-03 Daniel Berlin <dberlin@dbrelin.org>
2469 * c-opts.c (c_common_parse_file): Call start_source_file
2470 and end_source_file at the approriate times.
2472 * dwarf2out.c (dwarf2out_finish): Don't auto-end
2473 the main file, it will be done for us now.
2475 2005-03-04 Kazu Hirata <kazu@cs.umass.edu>
2477 * fold-const.c (fold_ternary): New.
2478 (fold): Call fold_ternary on ternary expressions. Remove
2479 handling of ternary expressions.
2481 2005-03-03 James A. Morrison <phython@gcc.gnu.org>
2483 PR tree-optimization/15784
2484 * fold-const.c (fold): Fold ~A + 1 to -A. Fold -A - 1
2487 2005-03-03 David Edelsohn <edelsohn@gnu.org>
2489 * config/rs6000/predicates.md (branch_comparison_operator):
2490 Convert from C block to conditional format.
2492 2005-03-03 Jan Hubicka <jh@suse.cz>
2494 * tree-dfa.c (add_referenced_var): Don't walk initializer of external
2495 and non-constant public variables.
2497 2005-03-03 Kazu Hirata <kazu@cs.umass.edu>
2499 * tree-cfg.c (stmt_starts_bb_p): Clean up by replacing code
2502 * cfgexpand.c (construct_exit_block): Use EDGE_PRED instead of
2505 * tree-phinodes.c (remove_phi_node): Clean up by factoring out
2506 calls to release_ssa_name and release_phi_node.
2508 * fold-const.c (fold): Remove handling of unary expressions.
2510 * fold-const.c (fold_unary): Avoid directly using the original
2511 expression t as much as possible.
2513 2005-03-03 Roger Sayle <roger@eyesopen.com>
2514 Andrew Pinski <pinskia@physics.uc.edu>
2516 * jump.c (redirect_exp_1): If nlabel is a NULL pointer create a
2517 RETURN rtx, and not a LABEL_REF containing a NULL pointer.
2519 2005-03-03 Hans-Peter Nilsson <hp@axis.com>
2521 Describe special registers SRP and MOF as allocatable registers.
2522 * config/cris/cris.c (cris_md_asm_clobbers): New function.
2523 (TARGET_MD_ASM_CLOBBERS): Define to cris_md_asm_clobbers.
2524 (cris_conditional_register_usage): Enable CRIS_MOF_REGNUM if
2525 TARGET_HAS_MUL_INSNS.
2526 (cris_print_operand) <case 'd'>: New case.
2527 <case REG>: Allow CRIS_MOF_REGNUM and CRIS_SRP_REGNUM.
2528 * config/cris/cris.h (CRIS_PC_REGNUM, CRIS_SRP_REGNUM): Don't
2530 (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS)
2531 (REG_ALLOC_ORDER): Update for MOF.
2532 (enum reg_class): New members MOF_REGS, GENERAL_REGS and
2534 (GENERAL_REGS): No longer a define of ALL_REGS.
2535 (REGNO_REG_CLASS, REG_CLASS_CONTENTS, REG_CLASS_NAMES)
2536 (PREFERRED_RELOAD_CLASS, REGISTER_NAMES, DBX_REGISTER_NUMBER):
2538 (CRIS_SPECIAL_REGS_CONTENTS): New macro.
2539 (REG_CLASS_FROM_LETTER): Allocate 'h' and 'x'.
2540 (SECONDARY_RELOAD_CLASS): Define.
2541 (STACK_POINTER_REGNUM): Define as CRIS_SP_REGNUM.
2542 (FRAME_POINTER_REGNUM): Define as CRIS_FP_REGNUM.
2543 (ARG_POINTER_REGNUM): Define as CRIS_AP_REGNUM.
2544 (STATIC_CHAIN_REGNUM): Define as CRIS_STATIC_CHAIN_REGNUM.
2545 (REGISTER_MOVE_COST): Define.
2546 (PIC_OFFSET_TABLE_REGNUM): Define in terms of CRIS_GOT_REGNUM.
2547 * config/cris/cris.md (CRIS_GOT_REGNUM, CRIS_STATIC_CHAIN_REGNUM)
2548 (CRIS_FP_REGNUM, CRIS_SP_REGNUM, CRIS_SRP_REGNUM, CRIS_AP_REGNUM)
2549 (CRIS_MOF_REGNUM): New define_constants.
2550 ("*movsi_internal", "movhi", "movqi", "movsf"): Add alternatives for
2552 ("reload_inhi", "reload_outhi", "reload_inqi", "reload_outqi"):
2554 ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3")
2555 ("mulsidi3", "umulsidi3", "smulsi3_highpart", "umulsi3_highpart"):
2556 Adjust for MOF being properly described as a register.
2557 (indir_to_reg_split): Name this split. Conditionalize on the
2558 destination register being a general register.
2559 (movei): Conditionalize on on operands 0 and 1 having the same
2562 2005-03-03 Alan Modra <amodra@bigpond.net.au>
2565 * config/rs6000/rs6000.c (rs6000_override_options): Don't allow
2566 -mcpu to override any other explicitly given flags.
2568 2005-03-02 J"orn Rennecke <joern.rennecke@st.com>
2570 * recog.c (verify_changes, confirm_change_group): New functions,
2571 broken out of apply_change_group.
2572 (apply_change_group): Use them.
2573 * recog.h (verify_change, confirm_change_group): Declare.
2574 * rtl.h (redirect_jump_2): Declare.
2575 * jump.c (redirect_exp, invert_exp): Delete.
2576 (invert_exp_1): Take second parameter. Return value. Changed caller.
2577 (redirect_jump_2): New function, broken out of redirect_jump.
2578 (redirect_jump): Use redirect_jump_1 and redirect_jump_2.
2579 (invert_jump): Use invert_jump_1 and redirect_jump_2.
2580 * ifcvt.c (dead_or_predicable): Use redirect_jump_2.
2582 2005-03-02 Geoffrey Keating <geoffk@apple.com>
2584 * varasm.c (named_section): Use xstrdup rather than doing it by
2587 * config/darwin8.h (LIB_SPEC): Switch -lmx and -lSystem.
2589 2005-03-02 Devang Patel <dpatel@apple.com>
2591 Undo PR tree-optimization/18815 fix.
2593 2005-03-02 Devang Patel <dpatel@apple.com>
2595 PR tree-optimization/18815
2596 * tree-if-conv.c (combine_blocks): Adjust loop header edges for
2597 loops with zero exit edges.
2599 2005-03-02 Kazu Hirata <kazu@cs.umass.edu>
2601 * cfg.c (connect_src, connect_dest, disconnect_src,
2602 disconnct_dest): New.
2603 (unchecked_make_edge, remove_edge, redirect_edge_succ,
2604 redirect_edge_pred): Use the new functions.
2606 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
2607 free_dominance_info only when needed.
2609 2005-03-02 David Edelsohn <edelsohn@gnu.org>
2612 * config/rs6000/predicates.md (reg_or_cint64_operand): Fix typo.
2613 (reg_or_sub_cint64_operand): Same.
2615 2005-03-02 Jeff Law <law@redhat.com>
2617 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Fix setting of
2618 CFG_ALTERED in the main DOM iteration loop.
2620 2005-03-02 Mark Mitchell <mark@codesourcery.com>
2623 * varasm.c (initializer_constant_valid_p): Allow conversions
2624 between OFFSET_TYPEs. Tidy.
2626 2005-03-02 Hans-Peter Nilsson <hp@axis.com>
2628 * config/cris/cris.md ("return"): Remove epilogue delay list
2631 2005-03-02 Daniel Jacobowitz <dan@codesourcery.com>
2633 * config/arm/linux-elf.h (ARM_FUNCTION_PROFILER): Do not use (PLT)
2635 * config/arm/netbsd-elf.h (ARM_FUNCTION_PROFILER): Likewise.
2637 2005-03-02 Kazu Hirata <kazu@cs.umass.edu>
2639 * cfgloop.h, cfgloopanal.c, cfgloopmanip.c, conflict.c,
2640 loop-init.c, loop-unroll.c, print-tree.c, reg-notes.def,
2641 config/m68k/m68k.c, config/mips/mips.h,
2642 config/rs6000/rs6000-protos.h, doc/contrib.texi,
2643 doc/include/gcc-common.texi: Update copyright.
2645 PR middle-end/18029 and PR middle-end/18030
2646 * expr.c (optimize_bitfield_assignment_op): Add a special case
2647 to handle BIT_IOR_EXPR and BIT_XOR_EXPR.
2649 * fold-const.c (fold_unary): New.
2650 (fold): Call fold_unary on unary expressions.
2652 2005-03-02 Richard Guenther <rguenth@gcc.gnu.org>
2654 * cgraph.h (struct cgraph_edge): Add prev_caller and
2656 (cgraph_node_remove_callees): Export.
2657 * cgraph.c (cgraph_create_edge): Initialize prev_caller
2659 (cgraph_edge_remove_callee): New function.
2660 (cgraph_edge_remove_caller): Likewise.
2661 (cgraph_remove_edge): Use.
2662 (cgraph_redirect_edge_callee): Likewise.
2663 (cgraph_node_remove_callees): New function.
2664 (cgraph_node_remove_callers): Likewise.
2665 (cgraph_remove_node): Use.
2666 * tree-optimize.c (tree_rest_of_compilation): Use
2667 cgraph_node_remove_callees instead of manual loop.
2668 * cgraphunit.c (cgraph_finalize_function): Likewise.
2669 (cgraph_expand_function): Likewise.
2670 (cgraph_remove_unreachable_nodes): Likewise.
2672 2005-03-02 Joseph S. Myers <joseph@codesourcery.com>
2675 * c-tree.h (undeclared_variable, build_external_ref): Add extra
2677 * c-decl.c (undeclared_variable): Take location as argument.
2678 * c-typeck.c (build_external_ref): Likewise.
2679 * c-parser.c (c_parser_postfix_expression): Pass location of
2680 identifier to build_external_ref.
2682 2005-03-01 David Edelsohn <edelsohn@gnu.org>
2684 * config/rs6000/rs6000.md (cceq splitter): Use operand mode, not
2685 CCEQ mode for branch_positive_comparison_operator test.
2686 * config/rs6000/predicates (branch_comparison_operator): Revert to
2688 (scc_comparison_operator): Same.
2689 (branch_positive_comparison_operator): Same.
2691 2005-03-01 Hans-Peter Nilsson <hp@axis.com>
2693 * config/cris/cris.c (cris_eligible_for_epilogue_delay)
2694 (cris_delay_slots_for_epilogue): Remove.
2695 (save_last): Move into cris_target_asm_function_epilogue.
2696 (cris_target_asm_function_epilogue): Remove tests for file being
2698 * config/cris/cris-protos.h (cris_eligible_for_epilogue_delay)
2699 (cris_delay_slots_for_epilogue): Remove prototypes.
2700 * config/cris/cris.h (DELAY_SLOTS_FOR_EPILOGUE)
2701 (ELIGIBLE_FOR_EPILOGUE_DELAY): Do not define.
2703 2005-03-01 David Edelsohn <edelsohn@gnu.org>
2705 * config/rs6000/predicates.md (branch_comparison_operator): Change
2706 to define_special_predicate.
2707 (scc_comparison_operator): Same.
2708 (branch_positive_comparison_operator): Same.
2710 2005-03-01 Daniel Berlin <dberlin@dberlin.org>
2712 * Makefile.in (tree-ssa-sink.o): New.
2713 (OBJS-common): Add tree-ssa-sink.o.
2714 * common.opt: Add -ftree-sink
2715 * opts.c (decode_options): flag_tree_sink is set at O1 or higher.
2716 * timevar.def (TV_TREE_SINK): new timevar.
2717 * tree-flow.h (is_hidden_global_store): Prototype.
2718 * tree-optimize.c (init_tree_optimization_passes): Add
2720 * tree-pass.h (pass_sink_code): New.
2721 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Move checking
2722 for non-obvious global store store to is_hidden_global_store, and
2723 call that new function.
2724 * tree-ssa-sink.c: New file.
2725 * doc/invoke.texi: Document -fdump-tree-sink and -ftree-sink.
2726 * doc/passes.texi: Document forward store motion.
2727 * testsuite/gcc.dg/tree-ssa/ssa-sink-1.c: New test
2728 * testsuite/gcc.dg/tree-ssa/ssa-sink-2.c: New test
2729 * testsuite/gcc.dg/tree-ssa/ssa-sink-3.c: New test
2730 * testsuite/gcc.dg/tree-ssa/ssa-sink-4.c: New test
2732 2005-03-01 Per Bothner <per@bothner.com>
2734 * diagnostic.c (diagnostic_build_prefix): If USE_MAPPED_LOCATION
2735 and we have a non-zero column-number, add it to the message.
2736 Also factor out the diagnostic_kind_text.
2738 2005-03-01 Zdenek Dvorak <dvorakz@suse.cz>
2740 * cfgloop.c (flow_loop_entry_edges_find, flow_loop_exit_edges_find,
2741 flow_loop_pre_header_scan, flow_loop_pre_header_find,
2742 flow_loop_scan): Removed.
2743 (flow_loop_dump): Do not dump removed fields.
2744 (flow_loop_free): Do not free removed fields.
2745 (flow_loops_find): Flags argument removed. Do not call flow_loop_scan.
2746 (loop_exit_edge_p): New function.
2747 * cfgloop.h (struct loop): Removed fields pre_header, pre_header_edges,
2748 num_pre_header_edges, entry_edges, num_entries, exit_edges,
2749 num_exits, exits_doms.
2750 (LOOP_TREE, LOOP_PRE_HEADER, LOOP_ENTRY_EDGES, LOOP_EXIT_EDGES,
2751 LOOP_EDGES, LOOP_ALL): Removed.
2752 (flow_loop_scan): Declaration removed.
2753 (loop_exit_edge_p, mark_loop_exit_edges): Declare.
2754 * cfgloopmanip.c (create_loop_notes): Do not pass flags to
2756 * ifcvt.c (mark_loop_exit_edges): Moved to cfgloopanal.c.
2757 (if_convert): Call flow_loops_find and flow_loops_free
2758 when calling mark_loop_exit_edges.
2759 * cfgloopanal.c (mark_loop_exit_edges): Moved from
2760 ifcvt.c. Removed the flow_loops_find, flow_loops_free and
2761 free_dominance_info calls.
2762 * loop-init.c (flow_loops_find): Ditto.
2763 * passes.c (rest_of_handle_branch_prob): Ditto.
2764 * lambda-code.c (perfect_nestify): Do not call flow_loops_find.
2765 * loop-unroll.c (analyze_insns_in_loop): Do not use
2767 * predict.c (predict_loops): Do not call flow_loop_scan.
2768 Use get_loop_exit_edges.
2769 (tree_estimate_probability): Do not pass flags to flow_loops_find.
2770 * tree-if-conv.c (bb_with_exit_edge_p): Take loop as argument.
2771 Do not use EDGE_LOOP_EXIT.
2772 (tree_if_convert_cond_expr, if_convertible_modify_expr_p): Pass loop
2773 to bb_with_exit_edge_p.
2774 (if_convertible_loop_p): Do not call flow_loop_scan. Use
2775 loop->single_exit. Do not use EDGE_LOOP_EXIT. Pass loop
2776 to bb_with_exit_edge_p.
2777 (combine_blocks): Pass loop to bb_with_exit_edge_p. Do not use
2779 * tree-loop-linear.c (linear_transform_loops): Do not call
2780 flow_loop_scan. Use loop->single_exit.
2781 * tree-vect-analyze.c (vect_analyze_operations): Use loop->single_exit.
2782 (vect_analyze_loop_form): Do not call flow_loop_scan.
2783 * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Use
2785 (vect_do_peeling_for_loop_bound): Use loop_preheader_edge and
2787 * tree-vectorizer.c (slpeel_update_phis_for_duplicate_loop,
2788 slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
2789 slpeel_tree_duplicate_loop_to_edge_cfg,
2790 slpeel_verify_cfg_after_peeling, slpeel_tree_peel_loop_to_edge):
2791 Use loop_preheader_edge and loop->single_exit. Do not call
2794 2005-03-01 Nick Clifton <nickc@redhat.com>
2796 * config/arm/arm.c (thumb_find_work_register): Check all of the
2797 argument registers to see if they are free, and a couple of
2798 special cases where the last argument register but can be proved
2799 to be available during the function's prologue.
2800 (print_multi_reg, arm_compute_save_reg0_reg12_mask,
2801 output_return_instruction, emit_multi_reg_push, thumb_pushpop,
2802 thumb_unexpanded_epilogue): Use unsigned long as the type for the
2804 (thumb_compute_save_reg_mask): Likewise. Also use
2805 thumb_find_work_register() to ensure that there is agreement about
2806 which work register is going to be used in the prologue.
2807 (thumb_output_function_prologue): Use unsigned long as the type
2808 for the register bit-mask. Also delay pushing the link register if
2809 other high registers are going to be pushed.
2810 (thumb_compute_save_reg_mask, emit_multi_reg_push,
2811 print_multi-reg, number_of_first_bit_set, thumb_pushpop): Remove
2812 redundant prototypes.
2814 2005-02-28 John David Anglin <dave.anglin#nrc-cnrc.gc.ca>
2817 * pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow allow hard registers during
2818 and after reload in REG+REG indexed addresses without REG_POINTER
2819 set in the base and not set in the index.
2821 2005-02-28 Kaz Kojima <kkojima@gcc.gnu.org>
2823 * config/sh/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
2824 Don't undefine here.
2825 (HANDLE_PRAGMA_PACK_PUSH_POP): Delete.
2826 (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC): Likewise.
2827 (TARGET_OS_CPP_BUILTINS): Use LINUX_TARGET_OS_CPP_BUILTINS.
2828 (LIB_SPEC, LINK_EH_SPEC, STARTFILE_SPEC, ENDFILE_SPEC,
2829 LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED, TARGET_C99_FUNCTIONS):
2831 * config.gcc (sh*-*-linux*): Use config/linux.h.
2833 2005-02-28 Dale Johannesen <dalej@apple.com>
2834 Stan Shebs <shebs@apple.com>
2836 Rewrite of 64-bit Darwin structure-by-value pass/return.
2837 * config/rs6000/rs6000.h (CUMULATIVE_ARGS): New fields
2838 intoffset, use_stack, named.
2839 * config/rs6000/rs6000.c (rs6000_darwin64_function_arg): Remove.
2840 (rs6000_darwin64_record_arg_advance_flush): New.
2841 (rs6000_darwin64_record_arg_advance_recurse): New.
2842 (rs6000_darwin64_record_arg_flush): New.
2843 (rs6000_darwin64_record_arg_recurse): New.
2844 (rs6000_darwin64_record_arg): New.
2845 (rs6000_return_in_memory): Remove AGGREGATE_TYPE_P check.
2846 (function_arg_boundary): Handle 128-bit aligned structs.
2847 (function_arg_advance): Rewrite darwin64 struct handling.
2848 (function_arg): Call rs6000_darwin64_record_arg.
2849 (function_arg_partial_nregs): Handle darwin64 structs.
2850 (rs6000_darwin64_function_value): Remove.
2851 (rs6000_function_value): Call rs6000_darwin64_record_arg.
2853 2005-02-28 Roger Sayle <roger@eyesopen.com>
2855 PR tree-optimization/20216
2856 * tree-chrec.c (tree_fold_factorial): Delete.
2857 (tree_fold_binomial): Change argument list to take a return type
2858 and change the type of K to unsigned int. Rewrite to avoid explicit
2859 evaluation of factorials, and (recursively) calling fold to perform
2860 compile-time arithmetic. Return NULL on (internal) overflow.
2861 (chrec_evaluate): Change type of K to an unsigned int. Avoid
2862 calling tree_fold_binomial unnecessarily. Return chrec_dont_know
2863 if any intermediate calculation overflows.
2864 (chrec_apply): Update call to chrec_evaluate.
2866 2005-02-28 James E Wilson <wilson@specifixinc.com>
2868 * config/mips/mips.h (NO_PROFILE_COUNTERS): Define.
2870 2005-02-28 Joseph S. Myers <joseph@codesourcery.com>
2873 * c-parser.c (c_parser_compound_statement): Return error_mark_node
2874 instead of NULL_TREE on error.
2876 2005-02-28 David Edelsohn <edelsohn@gnu.org>
2878 * config/rs6000/rs6000.c (EASY_VECTOR_15): Remove.
2879 (EASY_VECTOR_15_ADD_SELF): Remove.
2880 (num_insns_constant_wide): Not static.
2881 (validate_condition_mode): Not static.
2882 (toc_relative_expr_p): Not static.
2883 (legitimate_indirect_address_p): Not static.
2884 (macho_lo_sum_memory_operand): Not static.
2885 (invalid_e500_subreg): Not static.
2886 (easy_vector_same): Not static.
2887 (easy_vector_splat_const): Not static.
2888 (RS6000_SYMBOL_REF_TLS_P): Remove.
2889 (any_operand): Delete.
2890 (any_parallel_operand): Delete.
2891 (count_register_operand): Delete.
2892 (altivec_register_operand): Delete.
2893 (xer_operand): Delete.
2894 (s8bit_cint_operand): Delete.
2895 (short_cint_operand): Delete.
2896 (u_short_cint_operand): Delete.
2897 (non_short_cint_operand): Delete.
2898 (exact_log2_cint_operand): Delete.
2899 (gpc_reg_operand): Delete.
2900 (cc_reg_operand): Delete.
2901 (cc_reg_not_cr0_operand): Delete.
2902 (reg_or_short_operand): Delete.
2903 (reg_or_neg_short_operand): Delete.
2904 (reg_or_aligned_short_operand): Delete.
2905 (reg_or_u_short_operand): Delete.
2906 (reg_or_cint_operand): Delete.
2907 (reg_or_arith_cint_operand): Delete.
2908 (reg_or_add_cint64_operand): Delete.
2909 (reg_or_sub_cint64_operand): Delete.
2910 (reg_or_logical_cint_operand): Delete.
2911 (got_operand): Delete.
2912 (got_no_const_operand): Delete.
2913 (easy_fp_constant): Delete.
2914 (easy_vector_constant): Delete.
2915 (easy_vector_constant_add_self): Delete.
2916 (zero_constant): Delete.
2917 (zero_fp_constant): Delete.
2918 (volatile_mem_operand): Delete.
2919 (offsettable_mem_operand): Delete.
2920 (mem_or_easy_const_operand): Delete.
2921 (add_operand): Delete.
2922 (non_add_cint_operand): Delete.
2923 (logical_operand): Delete.
2924 (non_logical_cint_operand): Delete.
2925 (mask_operand): Delete.
2926 (mask_operand_wrap): Delete.
2927 (mask64_operand): Delete.
2928 (mask64_2_operand): Delete.
2929 (and64_operand): Delete.
2930 (and64_2_operand): Delete.
2931 (and_operand): Delete.
2932 (reg_or_mem_operand): Delete.
2933 (lwa_operand): Delete.
2934 (symbol_ref_operand): Delete.
2935 (call_operand): Delete.
2936 (current_file_function_operand): Delete.
2937 (input_operand): Delete.
2938 (rs6000_nonimmediate_operand): Delete.
2939 (rs6000_tls_symbol_ref): Delete.
2940 (save_world_operation): Delete.
2941 (restore_world_operation): Delete.
2942 (load_multiple_operation): Delete.
2943 (store_multiple_operation): Delete.
2944 (vrsave_operation): Delete.
2945 (mfcr_operation): Delete.
2946 (mtcrf_operation): Delete.
2947 (lmw_operation): Delete.
2948 (stmw_operation): Delete.
2949 (branch_comparison_operator): Delete.
2950 (branch_positive_comparison_operator): Delete.
2951 (scc_comparison_operator): Delete.
2952 (trap_comparison_operator): Delete.
2953 (boolean_operator): Delete.
2954 (boolean_or_operator): Delete.
2955 (min_max_operator): Delete.
2956 * config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Move to here.
2957 (EASY_VECTOR_15): Moved to here.
2958 (EASY_VECTOR_15_ADD_SELF): Move to here.
2959 (PREDICATE_CODES): Delete.
2960 * config/rs6000/rs6000-protos.h: Delete predicate functions.
2961 Declare functions no longer static.
2962 * config/rs6000/predicates.md: New.
2963 * config/rs6000/rs6000.md: Include predicates.md
2965 2005-02-28 Kazu Hirata <kazu@cs.umass.edu>
2967 * calls.c (emit_call_1): Don't use REG_ALWAYS_RETURN.
2968 (emit_library_call_value_1): Don't use LCT_ALWAYS_RETURN and
2970 * cfgrtl.c (need_fake_edge_p): Likewise.
2971 * combine.c (distribute_notes): Likewise.
2972 * emit-rtl.c (try_split): Likewise.
2973 * recog.c (peephole2_opimize): Likewise.
2974 * reg-notes.def (ALWAYS_RETURN): Remove.
2975 * rtl.h (LCT_ALWAYS_RETURN): Remove.
2976 * tree-cfg.c (need_fake_edge_p): Don't use ECF_ALWAYS_RETURN.
2977 * tree.h (ECF_ALWAYS_RETURN): Remove.
2979 2005-02-28 Roger Sayle <roger@eyesopen.com>
2982 * tree-ssa.c (tree_ssa_useless_type_conversion_1): A conversion
2983 between different machine modes is never a "useless" conversion.
2985 2005-02-28 Geert Bosch <bosch@gnat.com>
2988 * doc/contrib.texi: List contributors for Ada front end
2990 2005-02-28 Paolo Bonzini <bonzini@gnu.org>
2992 * simplify-rtx.c (simplify_unary_operation_1,
2993 simplify_const_unary_operation): New, extracted from...
2994 (simplify_unary_operation): ... this one.
2995 (simplify_binary_operation_1,
2996 simplify_const_binary_operation): New, extracted from...
2997 (simplify_binary_operation): ... this one.
2998 * rtl.h (simplify_const_unary_operation,
2999 simplify_const_binary_operation): Add prototypes.
3001 2005-02-28 Julian Brown <julian@codesourcery.com>
3003 * config/elfos.h: Revert my patch from 2005-02-25 since it broke
3004 building libjava and caused PR regression/20228.
3006 2005-02-28 Paolo Bonzini <bonzini@gnu.org>
3009 * Makefile.in (host_subdir): New.
3010 (build_objdir): New. Replace ../$(build_subdir) with it throughout.
3011 * configure: Regenerate.
3013 2005-02-27 Zack Weinberg <zack@codesourcery.com>
3015 * config/alpha/t-osf4, config/arm/t-netbsd, config/ia64/t-hpux
3016 * config/pa/t-hpux-shlib (SHLIB_INSTALL): Create the
3017 installation directory first.
3019 2005-02-28 Hans-Peter Nilsson <hp@axis.com>
3022 * config/cris/cris.h (EXTRA_CONSTRAINT_Q): Accept only (mem (reg)),
3023 not including (reg). Do not check for reg being CRIS_PC_REGNUM.
3024 (EXTRA_MEMORY_CONSTRAINT): Define as 'Q'.
3025 * config/cris/cris.md: Tweak comments referring to Q.
3026 ("cmpsi", "cmphi", "cmpqi", "*movsi_internal", "movhi")
3027 ("movstricthi", "movqi", "movstrictqi", "movsf", "addsi3")
3028 ("addhi3", "addqi3", "subsi3", "subhi3", "subqi3")
3029 ("*expanded_andsi", "*expanded_andhi", "*andhi_lowpart", "andqi3")
3030 ("*andqi_lowpart", "iorsi3", "iorhi3", "iorqi3", "uminsi3"):
3031 Insert spaces in constraints to align alternatives vertically for
3033 ("cmphi"): Ditto. Add separate alternative for operand 0 "r",
3036 2005-02-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3038 PR rtl-optimization/17728
3039 * pa.md (mulsi3, divsi3, udivsi3, modsi3): Change predicate for
3040 operand 0 from general_operand to move_dest_operand.
3042 2005-02-26 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3044 * pa/elf.h, pa/som.h (ASM_OUTPUT_EXTERNAL): Use assemble_name_raw
3045 instead of trying to save and restore TREE_SYMBOL_REFERENCED.
3046 * pa/pa64-hpux.h (ASM_OUTPUT_TYPE_DIRECTIVE): Define.
3047 (ASM_OUTPUT_EXTERNAL): Don't save and restore TREE_SYMBOL_REFERENCED.
3049 2005-02-26 Nathanael Nerode <neroden@gcc.gnu.org>
3051 * configure.ac: Rename cc_for_cross_gnattools to host_cc_for_libada.
3052 * configure: Regenerate.
3053 * libada-mk.in: Remove CC; rename
3054 cc_for_cross_gnattools / cc_set_by_configure to host_cc_for_libada.
3056 2005-02-26 Andrew Pinski <pinskia@physics.uc.edu>
3059 * tree-ssa-alias.c (count_uses_and_derefs): If we have TREE_LIST
3060 for the lhs, also walk over the tree. Likewise for rhs.
3062 2005-02-26 Zdenek Dvorak <dvorakz@suse.cz>
3064 * tree-ssa-dom.c (simple_iv_increment_p): New function.
3065 (simplify_rhs_and_lookup_avail_expr, eliminate_redundant_computations):
3066 Do not propagate value of iv before increment over the increment.
3068 2005-02-25 Joseph S. Myers <joseph@codesourcery.com>
3070 * c-parser.c: New file.
3071 * c-parse.in: Remove.
3072 * Makefile.in (c-parse.o-warn, c-parse.o, c-parse.c, c-parse.y):
3074 (c-parser.o): Add dependencies.
3075 (C_AND_OBJC_OBJC, C_OBJS, gcc.srcextra, GTFILES, distclean,
3076 maintainer-clean, TAGS): Update.
3077 * c-config-lang.in (gtfiles): Update.
3078 * gengtype-lex.l: Don't handle "@@".
3079 * stub-objc.c (objc_get_class_ivars, objc_build_throw_stmt,
3080 objc_build_synchronized, objc_begin_try_stmt,
3081 objc_begin_catch_clause, objc_finish_catch_clause,
3082 objc_build_finally_clause, objc_finish_try_stmt): New.
3083 * c-tree.h (struct c_declspecs): Add declspecs_seen_p and
3085 (c_parse_init): Update comment.
3086 * c-decl.c (c_init_decl_processing): Update comment.
3087 (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
3088 declspecs_add_scspec, declspecs_add_attrs): Initialize and update
3089 new c_declspecs members.
3091 2005-02-25 Julian Brown <julian@codesourcery.com>
3093 * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK
3094 from being used for symbols with vague linkage when
3095 HAVE_GAS_COMDAT_GROUP is true.
3097 2005-02-25 Mark Mitchell <mark@codesourcery.com>
3099 * doc/include/gcc-common.texi (version-GCC): Update to 4.1.
3101 2005-02-25 Steve Ellcey <sje@cup.hp.com>
3104 * doc/tm.texi (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Document.
3105 (LIBGCC2_HAS_DF_MODE): New.
3106 (LIBGCC2_HAS_XF_MODE): New.
3107 (LIBGCC2_HAS_TF_MODE): New.
3108 * libgcc2.h (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
3109 (LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
3110 * libgcc2.c (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
3111 (LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
3112 (LIBGCC2_HAS_DF_MODE): New name for HAVE_DFMODE.
3113 * config/ia64/t-ia64 (LIB1ASMFUNCS): Remove __compat
3114 and add _fixtfdi, _fixunstfdi, _floatditf
3115 * lib1funcs.asm: Remove L__compat. Add L_fixtfdi,
3116 L_fixunstfdi, L_floatditf.
3117 * config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE): Define.
3118 (LIBGCC2_HAS_TF_MODE): Define.
3120 2005-02-25 Diego Novillo <dnovillo@redhat.com>
3122 PR tree-optimization/20204
3123 * tree-into-ssa.c (insert_phi_nodes_for): Do not use
3124 REWRITE_THIS_STMT markers on PHI nodes.
3125 (rewrite_initialize_block): Likewise.
3127 2005-02-25 Mark Mitchell <mark@codesourcery.com>
3129 * version.c (version_string): Update to 4.1.
3131 2005-02-25 Paolo Carlini <pcarlini@suse.de>
3133 * doc/extend.texi (5.24 Declaring Attributes of Functions)<noreturn>:
3134 Clarify that the alternative way doesn't work in GNU C++.
3136 2005-02-25 Zdenek Dvorak <dvorakz@suse.cz>
3138 PR tree-optimization/19937
3139 * tree-ssa-loop-ivopts.c (rewrite_use_compare): Cast the final value
3140 to the type of the induction variable.
3142 2005-02-25 Kaz Kojima <kkojima@gcc.gnu.org>
3144 PR rtl-optimization/20117
3145 * bb-reorder.c (duplicate_computed_gotos): Don't duplicate
3146 the block including noncopyable insn.
3148 2005-02-24 Kazu Hirata <kazu@cs.umass.edu>
3150 * cse.c (delete_trivially_dead_insns): Speed up by minimizing
3151 calls to find_reg_note.
3153 2005-02-24 Richard Henderson <rth@redhat.com>
3156 * tree-sra.c (instantiate_element): Copy TREE_THIS_VOLATILE from
3159 2005-02-24 Fariborz Jahanian <fjahanian@apple.com>
3161 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Check for
3162 vector types if to use base reg for misaligned non-word ld/std.
3164 2005-02-24 Hans-Peter Nilsson <hp@axis.com>
3167 * config/cris/cris.c (cris_target_asm_function_prologue): Create
3168 dwarf2 label manually and put it after, not before the prologue.
3170 2005-02-24 David Edelsohn <edelsohn@gnu.org>
3173 * reload.c (operands_match_p): Only increment register number for
3174 SCALAR_INT_MODE_P modes in multiple hard registers.
3176 * config/rs6000/rs6000.md (trunctfdf2): Remove register constraints.
3179 2005-02-24 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3181 * ChangeLog.5: Fix log message typo(s).
3182 * ChangeLog.7: Likewise.
3183 * ChangeLog.tree-ssa: Likewise.
3184 * cfgexpand.c: Fix comment typo(s).
3185 * conflict.c: Likewise.
3186 * defaults.h: Likewise.
3187 * dwarf2out.c: Likewise.
3189 * ggc-page.c: Likewise.
3190 * tree-eh.c: Likewise.
3191 * tree-ssa-dom.c: Likewise.
3193 2005-02-24 Jakub Jelinek <jakub@redhat.com>
3196 * mklibgcc.in: Pass -DSHARED when compiling all *_s${objext} objects.
3197 * config/rs6000/darwin-ldouble.c: Only use the .symver directives
3198 if SHARED is defined.
3201 * config/rs6000/rs6000.md (LTU, GTU sCC splitters): Add earlyclobber,
3202 allow splitting only if operands 0 and 3 don't overlap.
3204 2005-02-24 Richard Henderson <rth@redhat.com>
3207 * builtins.c (fold_builtin_complex_mul, fold_builtin_complex_div): New.
3208 (fold_builtin_1): Call them.
3209 * fold-const.c (fold_complex_mult_parts): Split out from ...
3210 (fold_complex_mult): ... here. Fix typo in both imaginary case.
3211 (fold_complex_div_parts, fold_complex_div): New.
3213 * tree.h (fold_complex_mult_parts, fold_complex_div_parts): Declare.
3215 2005-02-24 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3217 * tree-ssa-ccp.c (visit_assignment): Verify that result of
3218 VIEW_CONVERT_EXPR is_gimple_min_invariant.
3220 * print-tree.c (print_node_brief): Print LABEL_DECL_UID.
3221 (print_node): Likewise.
3222 Print TYPE_SIZES_GIMPLIFIED.
3224 2005-02-24 Hans-Peter Nilsson <hp@axis.com>
3226 * config/cris/cris.md ("umulhisi3", "umulqihi3", "mulsi3")
3227 ("mulqihi3", "mulhisi3", "mulsidi3", "umulsidi3"): Mark input
3228 operands as commutative in constraints.
3230 2005-02-24 Diego Novillo <dnovillo@redhat.com>
3232 * tree-into-ssa.c: Re-organize internal functions.
3234 2005-02-24 Richard Henderson <rth@redhat.com>
3237 * c-opts.c (c_common_post_options): Set flag_complex_method to 2
3239 * common.opt (fcx-limited-range): New.
3240 * opts.c (set_fast_math_flags): Set flag_cx_limited_range.
3241 * toplev.c (flag_complex_method): Initialize to 1.
3242 (process_options): Set flag_complex_method to 0 if
3243 flag_cx_limited_range.
3244 * doc/invoke.texi (-fcx-limited-range): New.
3246 2005-02-24 Kazu Hirata <kazu@cs.umass.edu>
3248 * cse.c (delete_trivially_dead_insns): Speed up by using
3249 NEXT_INSN and PREV_INSN directly instead of next_real_insn and
3252 2005-02-24 Andrea Tarani <andrea.tarani@gilbarco.com>
3254 * config/m68k/m68k.c (m68k_save_reg): Also save A5 for non-leaf
3255 functions when -mid-shared-library is being used.
3257 2005-02-23 Daniel Jacobowitz <dan@codesourcery.com>
3259 * doc/tm.texi (LINK_LIBGCC_SPECIAL): Remove.
3260 (LINK_LIBGCC_SPECIAL_1): Don't mention it.
3261 * gcc.c: Don't check for LINK_LIBGCC_SPECIAL.
3262 * system.h: Poison LINK_LIBGCC_SPECIAL.
3264 2005-02-23 James E Wilson <wilson@specifixinc.com>
3266 * gengtype.c (note_insn_name): Make 1 element larger.
3268 2005-02-23 Roger Sayle <roger@eyesopen.com>
3271 PR rtl-optimization/20097
3272 * simplify-rtx.c (simplify_relational_operation_1): Avoid creating
3273 BImode SUBREGs of SImode registers which confuse the ia64 backend.
3275 2005-02-23 David Edelsohn <edelsohn@gnu.org>
3277 * t-aix43 (SHLIB_INSTALL): Create directory for shared library.
3278 * t-aix52 (SHLIB_INSTALL): Same.
3280 2005-02-23 Kazu Hirata <kazu@cs.umass.edu>
3282 * genpreds.c: Update copyright.
3284 2005-02-23 Michael Beach <michaelb@ieee.org>
3287 * config/sparc/t-elf (startup files): Assemble with CPP.
3289 2005-02-23 Paolo Bonzini <bonzini@gnu.org>
3291 * genpreds.c (mark_mode_tests): Handle non-VOIDmode match_operands.
3292 (write_predicate_expr): Likewise.
3294 2005-02-22 Diego Novillo <dnovillo@redhat.com>
3296 PR tree-optimization/20100
3297 PR tree-optimization/20115
3298 * tree-optimize.c (init_tree_optimization_passes): Remove
3299 pass_maybe_create_global_var.
3300 * tree-pass.h (pass_maybe_create_global_var): Remove.
3301 * tree-ssa-alias.c (aliases_computed_p): Declare.
3302 (struct alias_info): Add field NUM_PURE_CONST_CALLS_FOUND.
3303 (count_calls_and_maybe_create_global_var): Remove.
3304 (pass_maybe_create_global_var): Remove.
3305 (init_alias_info): Do not declare aliases_computed_p.
3306 (maybe_create_global_var): If the function contains no
3307 call-clobbered variables and a mix of pure/const and regular
3308 function calls, create .GLOBAL_VAR.
3309 Mark all call-clobbered variables for renaming.
3310 (merge_pointed_to_info): Update comment.
3311 (add_pointed_to_var): Likewise.
3312 (is_escape_site): Likewise.
3313 Accept struct alias_info * instead of size_t *.
3315 Update AI->NUM_CALLS_FOUND and AI->NUM_PURE_CONST_CALLS_FOUND
3317 * tree-ssa-operands.c (get_call_expr_operands): If
3318 ALIASES_COMPUTED_P is false, do not add call-clobbering
3320 * tree-ssa.c (init_tree_ssa): Set ALIASES_COMPUTED_P to false.
3321 (delete_tree_ssa): Likewise.
3323 2005-02-22 James E Wilson <wilson@specifixinc.com>
3325 * toplev.c (backend_init): Don't call init_adjust_machine_modes here.
3326 (do_compile): Do call it here.
3328 2005-02-22 Kazu Hirata <kazu@cs.umass.edu>
3330 PR rtl-optimization/20017.
3331 * passes.c (rest_of_handle_combine, rest_of_handle_cse,
3332 rest_of_handle_cse2, rest_of_handle_gcse): Call
3333 delete_dead_jumptables immediately before calling cleanup_cfg.
3335 2005-02-22 Devang Patel <dpatel@apple.com>
3338 * tree-if-conv.c (process_phi_nodes): Use bsi_after_labels and skip
3341 2005-02-22 David Edelsohn <edelsohn@gnu.org>
3343 * config/rs6000/aix.h (WINT_TYPE): Define.
3345 2005-02-22 Stan Shebs <shebs@apple.com>
3347 * config/rs6000/rs6000.c (rs6000_override_options): Default to
3348 natural alignment for 64-bit Darwin.
3349 (rs6000_parse_alignment_option): Warn about uses of -malign-power
3351 * doc/invoke.texi: Document this.
3353 2005-02-22 DJ Delorie <dj@redhat.com>
3355 * c-common.c (c_common_type_for_mode): Pass the mode's precision
3356 to make_[un]signed_type, not the mode itself.
3358 2005-02-22 Kazu Hirata <kazu@cs.umass.edu>
3360 * cfg.c (cached_make_edge): Call make_edge if edge cache is
3361 not available. Use tail calls wherever possible.
3362 (make_edge): Call unchecked_make_edge to create an edge.
3364 * tree-outof-ssa.c (SSANORM_USE_COALESCE_LIST): Remove.
3365 (coalesce_ssa_name): Don't check for
3366 SSANORM_USE_COALESCE_LIST.
3367 (rewrite_out_of_ssa): Don't use SSANORM_USE_COALESCE_LIST.
3369 2005-02-22 Diego Novillo <dnovillo@redhat.com>
3371 * tree-into-ssa.c (rewrite_blocks): Move debug dumps from ...
3372 (rewrite_into_ssa): ... here.
3374 2005-02-21 Alexandre Oliva <aoliva@redhat.com>
3376 PR tree-optimization/19786
3377 * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add one
3378 tag to another's may-alias bitmap when adding to the other's list.
3380 2005-02-21 DJ Delorie <dj@redhat.com>
3382 * tree-ssa-loop-ivopts.c (computation_cost): Start register
3383 numbering at LAST_VIRTUAL_REGISTER+1 to avoid possibly using hard
3384 registers in unsupported ways.
3385 * expmed.c (init_expmed): Likewise.
3387 2005-02-21 Stan Cox <scox@redhat.com>
3389 * config/iq2000/iq2000.h (DWARF_FRAME_RETURN_COLUMN): Change to 31.
3391 2005-02-21 Kazu Hirata <kazu@cs.umass.edu>
3393 * tree-cfg.c (fold_cond_expr_cond): New.
3394 (make_edges): Call fold_cond_expr_cond.
3395 (find_taken_edge): Accept nothing but INTEGER_CST.
3396 (find_taken_edge_cond_expr): Reject INTEGER_CST other than 0
3398 (find_taken_edge_switch_expr): Remove a check for INTEGER_CST.
3400 * flow.c (delete_dead_jumptables): Speed up by scanning insns
3401 that do not belong to any basic block.
3403 2005-02-21 Jeff Law <law@redhat.com>
3405 * cfganal.c (find_unreachable_blocks): Manually CSE load of
3408 2005-02-21 Kazu Hirata <kazu@cs.umass.edu>
3410 * tree-outof-ssa.c (SSANORM_REMOVE_ALL_PHIS): Remove.
3411 (SSANORM_COALESCE_PARTITIONS, SSANORM_USE_COALESCE_LIST):
3412 Adjust their definitions.
3413 (remove_ssa_form): Don't check for SSANORM_REMOVE_ALL_PHIS.
3414 (rewrite_out_of_ssa): Don't use SSANORM_REMOVE_ALL_PHIS.
3416 * c-objc-common.h, c-pretty-print.c, cgraphunit.c, except.c,
3417 genautomata.c, langhooks.c, langhooks.h, system.h,
3418 config/arm/lib1funcs.asm: Update copyright.
3420 2005-02-21 Ulrich Weigand <uweigand@de.ibm.com>
3422 * dbxout.c (dbxout_function_end): Emit Lscope label always.
3424 2005-02-21 Richard Guenther <rguenth@gcc.gnu.org>
3427 * doc/install.texi: Document --with-gc.
3429 2005-02-21 Paolo Bonzini <bonzini@gnu.org>
3431 * simplify-rtx.c (simplify_unary_operation): Add a missing