1 2005-03-25 John David Anglin <dave.anglin@nrc-crnc.gc.ca>
4 * vax.c (vax_rtx_costs_1): Merge with vax_rtx_costs.
5 (vax_rtx_costs): Return false when passed unsupported rtx's. Handle
6 FLOAT_EXTEND, FLOAT_TRUNCATE and TRUNCATE. Fix costs for POST_INC,
9 2005-03-25 Kazu Hirata <kazu@cs.umass.edu>
11 * fold-const.c: Convert uses of fold (build (...)) to
14 2005-03-25 Zdenek Dvorak <dvorakz@suse.cz>
16 PR rtl-optimization/20249
17 * cse.c (insert_regs): Do not record equivalence of registers in
20 2005-03-24 Kazu Hirata <kazu@cs.umass.edu>
22 * emit-rtl.c (reverse_comparison): Remove.
23 * rtl.h: Remove the corresponding prototype.
25 2005-03-24 James E Wilson <wilson@specifixinc.com>
27 * doc/install.texi (--enable-altivec): Delete docs.
29 2005-03-24 David Edelsohn <edelsohn@gnu.org>
31 * config/rs6000/predicates.md (easy_fp_constant): Return 0 for
32 SFmode and DFmode before reload when
33 flag_unsafe_math_optimizations not enabled.
35 2005-03-24 Geoffrey Keating <geoffk@apple.com>
37 * c.opt (fvisibility-inlines-hidden): Allow for ObjC++.
39 * config/i386/darwin.h (TARGET_SUBTARGET_DEFAULT): Add
40 MASK_128BIT_LONG_DOUBLE, MASK_ALIGN_DOUBLE.
42 2005-03-24 Nathan Sidwell <nathan@codesourcery.com>
44 * configure.ac (enable-checking): Add 'runtime' option.
45 * doc/install.texi (enable-checking): Document 'runtime' checking.
46 * tsystem.h (gcc_assert, gcc_unreachable): Define.
47 * config.in: Regenerated.
48 * configure: Regenerated.
50 2005-03-23 Uros Bizjak <uros@kss-loka.si>
52 * optabs.h (enum optab_index): Remove OTI_llrint.
53 (llrint_optab): Remove macro.
54 * optabs.c (init_optabs): Remove llrint_optab initialization.
55 * genopinit.c (optabs): Remove llrint_optab implementation.
56 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LLRINT{,F,L}
59 2005-03-24 Alexandre Oliva <aoliva@redhat.com>
61 PR rtl-optimization/20532
62 * simplify-rtx.c (simplify_binary_operation_1): Protect from
63 overflow when adding coefficients for PLUS or MINUS.
64 (simplify_binary_operation_1): Handle CONST_DOUBLE exact power of
67 2005-03-23 Joseph S. Myers <joseph@codesourcery.com>
69 * langhooks.h (truthvalue_conversion): Remove.
70 * langhooks-def.h (LANG_HOOKS_INITIALIZER): Remove
71 LANG_HOOKS_TRUTHVALUE_CONVERSION.
72 * system.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Poison.
73 * gimplify.c (gimple_boolify): Don't use truthvalue_conversion.
74 * c-objc-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
76 2005-03-23 Kazu Hirata <kazu@cs.umass.edu>
78 * params.def: Fix a typo.
79 * config/mips/mips.c: Follow the spelling convensions.
80 * doc/invoke.texi: Fix typos.
82 2005-03-18 Dale Johannese <dalej@apple.com>
84 * cp/tree.c (cp_tree_equal): Handle SSA_NAME.
86 2005-03-23 Daniel Berlin <dberlin@dberlin.org>
88 Fix PR tree-optimization/20601
90 * tree-ssa-pre.c (insert_aux): Add missing condition to
93 2005-03-23 Ian Lance Taylor <ian@airs.com>
95 * final.c (final_scan_insn): Don't remove no-op instructions.
96 * reload1.c (reload): Remove simple no-op instructions even when
99 2005-03-23 Dorit Naishlos <dorit@il.ib.com>
101 PR tree-optimization/20501
102 * tree-vect-analyze.c (vect_enhance_data_refs_alignment): Debug print
103 reporting that peeling for alignment is applied moved to...
104 * (vect_analyze_data_refs_alignment): Here.
106 2005-03-23 Ian Lance Taylor <ian@airs.com>
108 * reorg.c (dbr_schedule): Remove #if 0 code to call final.
110 2005-03-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
112 * config.gcc (alpha*-dec-osf[45]*): Remove target_cpu_default.
113 Define TARGET_SUPPORT_ARCH except on Tru64 UNIX V4.0A.
115 2005-03-23 Hans-Peter Nilsson <hp@axis.com>
117 * doc/tm.texi (TARGET_MD_ASM_CLOBBERS): Adjust wording to not
118 imply that this is called once, independent of asms in code.
119 Adjust to now being pased output and input lists. Mention helper
120 function decl_overlaps_hard_reg_set_p.
121 * hooks.c (hook_tree_tree_tree_tree_3rd_identity): Rename from
122 hook_tree_tree_identity and to take three trees, returning third.
123 * hooks.h (hook_tree_tree_tree_tree_3rd_identity): Adjust the
125 * stmt.c: include hard-reg-set.h before tree.h.
126 (decl_overlaps_hard_reg_set_p): New function, broken out from...
127 (decl_conflicts_with_clobbers_p): Call
128 decl_overlaps_hard_reg_set_p.
129 (expand_asm_operands): Pass output and input lists in call to
130 targetm.md_asm_clobbers.
131 * target-def.h (TARGET_MD_ASM_CLOBBERS): Define as
132 hook_tree_tree_tree_tree_3rd_identity.
133 * target.h (struct gcc_target.md_asm_clobbers): Take three tree
135 * tree.h [HARD_CONST] (decl_overlaps_hard_reg_set_p): Prototype.
136 * config/i386/i386.c (ix86_md_asm_clobbers): Adjust to three
137 parameters, first two unused.
138 * config/cris/cris.c (cris_md_asm_clobbers): Adjust to added
139 parameters. Only add MOF to clobbers if there's no 'h' mentioned
140 in constraint letters and MOF is not mentioned as a asm-declared
141 register in neither of the input and output lists.
143 2005-03-23 DJ Delorie <dj@redhat.com>
145 * optabs.c (expand_binop): Make sure the first subword's result
148 2005-03-23 Joseph S. Myers <joseph@codesourcery.com>
150 * c-common.c (c_common_truthvalue_conversion): Adjust comment.
151 Call c_common_truthvalue_conversion rather than
152 lang_hooks.truthvalue_conversion.
153 * c-convert.c (convert): Call c_objc_common_truthvalue_conversion.
154 * c-objc-common.c (c_objc_common_truthvalue_conversion): Move to
156 * c-objc-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Change to
157 c_common_truthvalue_conversion.
158 * c-parser.c (c_parser_paren_condition, c_parser_for_statement,
159 c_parser_conditional_expression, c_parser_binary_expression): Call
160 c_objc_common_truthvalue_conversion.
161 * c-typeck.c (build_unary_op): Call
162 c_objc_common_truthvalue_conversion.
163 (build_conditional_expr): Do not call
164 lang_hooks.truthvalue_conversion.
165 (build_binary_op): Call c_common_truthvalue_conversion.
166 (c_objc_common_truthvalue_conversion): Moved from
167 c-objc-common.c. Call default_function_array_conversion instead
168 of default_conversion.
170 2005-03-23 Joseph S. Myers <joseph@codesourcery.com>
172 * c-common.h (default_conversion): Remove.
173 (perform_integral_promotions): Add.
174 * c-tree.h (default_conversion): Add.
175 * c-typeck.c (perform_integral_promotions): New, split out from
177 * c-common.c (check_case_value): Use perform_integral_promotions,
178 not default_conversion.
179 (c_add_case_label): Don't continue processing case label after
182 2005-03-23 Mark Mitchell <mark@codesourcery.com>
184 * gcc.c (do_spec_1): Do not add a -L path for a directory in
185 the prefix list if we have already added a multilib directory
187 (main): Do not add MD_EXEC_PREFIX to the list of directories to
190 2005-03-22 Kazu Hirata <kazu@cs.umass.edu>
192 * reload1.c (indirect_symref_ok, reload_obstack): Make them
194 * reload.h: Remove the prototype for indirect_symref_ok.
196 * reload1.c (indirect_symref_ok): Make it global.
197 * reload.h: Add a prototype for indirect_symref_ok.
199 2005-03-22 Kaz Kojima <kkojima@gcc.gnu.org>
201 * config/sh/sh.md (ashlhi3): Rename to *ashlhi3_n and add a new
204 2005-03-22 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
206 * tree.h (DECL_IGNORED_P, DECL_IN_SYSTEM_HEADER): Clarify comments.
208 2005-03-22 Daniel Berlin <dberlin@dberlin.org>
210 * c-opts.c (c_common_parse_file): Only start/end main source file
211 if debug hooks says the writer wants it.
212 * dbxout.c (dbx_debug_hooks): Add start_end_main_source_file
214 (xcoff_debug_hooks): Ditto.
215 * debug.c (do_nothing_hooks): Ditto.
216 * debug.h (gcc_debug_hooks): Ditto.
217 * dwarf2out.c (dwarf2_debug_hooks): Ditto.
218 * sdbout.c (sdb_debug_hooks): Ditto.
219 * vmsdbgout.c (vmsdbg_debug_hooks): Ditto.
221 2005-03-22 Mark Mitchell <mark@codesourcery.com>
223 * doc/extend.texi: Deprecate C++ min/max operators.
225 2005-03-22 Zdenek Dvorak <dvorakz@suse.cz>
227 * tree-ssa-loop-ivopts.c (determine_iv_cost): Do not try to preserve
228 artificial original candidates.
230 2005-03-22 Richard Guenther <rguenth@tat.physik.uni-tuebingen.de>
231 Jan Hubicka <jh@suse.cz>
232 Steven Bosscher <stevenb@suse.de
234 * cgraphunit.c (cgraph_estimate_size_after_inlining): Compute
235 call cost based on argument sizes.
236 (cgraph_mark_inline_edge): Avoid inline unit from shrinking by
238 * params.def: (max-inline-inssn-single): Set to 450.
239 (max-inline-insns-auto): Set to 90.
240 (max-inline-insns-recursive): Set to 450
241 (max-inline-insns-recursive-auto): Set to 450.
242 (large-function-insns): Set to 2700.
243 (inline-call-cost): New parameter.
244 * tree-inline.c (estimate_move_cost): New function.
245 (estimate_num_insns_1): Compute move sizes costs by estimate_move_cost
246 for non-gimple-regs, set cost to 0 for gimple-regs. Compute call size
248 * tree-inline.h (estimate_move_cost): Declare.
249 * invoke.texi: (max-inline-inssn-single): Change default to 450.
250 (max-inline-insns-auto): Change default to 90.
251 (max-inline-insns-recursive): Change default to 450
252 (max-inline-insns-recursive-auto): Change default to 450.
253 (large-function-insns): Change default to 2700.
254 (inline-call-cost): Document new parameter.
256 2005-03-22 Richard Sandiford <rsandifo@redhat.com>
258 * config/i860/i860.h (target_flags, TARGET_XP, TARGET_SWITCHES)
259 (TARGET_DEFAULT): Delete.
260 * config/i860/i860.opt: New file.
262 2005-03-22 Richard Sandiford <rsandifo@redhat.com>
264 * config/frv/frv-protos.h (frv_branch_cost_string, frv_branch_cost_int)
265 (frv_cpu_string, frv_condexec_insns_str, frv_condexec_insns)
266 (frv_condexec_temps_str, frv_condexec_temps, frv_sched_lookahead_str)
267 (frv_sched_lookahead): Delete.
268 * config/frv/frv.h (MASK_DEFAULT_ALLOC_CC): Move to frv.c.
269 (target_flags, MASK_GPR_32, MASK_FPR_32, MASK_SOFT_FLOAT)
270 (MASK_ALLOC_CC, MASK_DWORD, MASK_DOUBLE, MASK_MEDIA, MASK_MULADD)
271 (MASK_LIBPIC, MASK_ACC_4, MASK_PACK, MASK_LONG_CALLS)
272 (MASK_ALIGN_LABELS, MASK_LINKED_FP, MASK_BIG_TLS, MASK_DEBUG_ARG)
273 (MASK_DEBUG_ADDR, MASK_DEBUG_STACK, MASK_DEBUG, MASK_DEBUG_LOC)
274 (MASK_DEBUG_COND_EXEC, MASK_NO_COND_MOVE, MASK_NO_SCC)
275 (MASK_NO_COND_EXEC, MASK_NO_VLIW_BRANCH, MASK_NO_MULTI_CE)
276 (MASK_FDPIC, MASK_INLINE_PLT, MASK_GPREL_RO, MASK_DEFAULT)
277 (TARGET_GPR_32, TARGET_FPR_32, TARGET_SOFT_FLOAT, TARGET_ALLOC_CC)
278 (TARGET_DWORD, TARGET_DOUBLE, TARGET_MEDIA, TARGET_MULADD)
279 (TARGET_LIBPIC, TARGET_ACC_4, TARGET_DEBUG_ARG, TARGET_DEBUG_ADDR)
280 (TARGET_DEBUG_STACK, TARGET_DEBUG, TARGET_DEBUG_LOC)
281 (TARGET_DEBUG_COND_EXEC, TARGET_NO_COND_MOVE, TARGET_NO_SCC)
282 (TARGET_NO_COND_EXEC, TARGET_NO_VLIW_BRANCH, TARGET_NO_MULTI_CE)
283 (TARGET_NO_NESTED_CE, TARGET_FDPIC, TARGET_INLINE_PLT, TARGET_BIG_TLS)
284 (TARGET_GPREL_RO, TARGET_PACK, TARGET_LONG_CALLS, TARGET_ALIGN_LABELS)
285 (TARGET_LINKED_FP, TARGET_GPR_64, TARGET_FPR_64, TARGET_HARD_FLOAT)
286 (TARGET_FIXED_CC, TARGET_COND_MOVE, TARGET_SCC, TARGET_COND_EXEC)
287 (TARGET_VLIW_BRANCH, TARGET_MULTI_CE, TARGET_NESTED_CE, TARGET_ACC_8)
288 (TARGET_SWITCHES, TARGET_OPTIONS, DEFAULT_CONDEXEC_TEMPS)
289 (DEFAULT_BRANCH_COST, DEFAULT_CONDEXEC_INSNS): Delete.
290 * config/frv/frv.c (frv_branch_cost_string, frv_branch_cost_int)
291 (frv_cpu_string, frv_condexec_insns_str, frv_condexec_insns)
292 (frv_condexec_temps_str, frv_condexec_temps, frv_sched_lookahead_str)
293 (frv_sched_lookahead): Delete.
294 (MASK_DEFAULT_ALLOC_CC): Moved from frv.h.
295 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
296 (frv_handle_option): New function. Move -mcpu= handling from...
297 (frv_override_options): ...here. Remove handling of other
299 (frv_ifcvt_modify_tests): Check !TARGET_COND_EXEC instead of
300 TARGET_NO_COND_EXEC and !TARGET_NESTED_CE to TARGET_NO_NESTED_CE.
301 (frv_ifcvt_modify_multiple_tests): Likewise !TARGET_MULTI_CE
302 and TARGET_NO_MULTI_CE.
303 (frv_for_each_packet): Likewise TARGET_NO_VLIW_BRANCH and
305 * config/frv/frv.opt: New file.
307 2005-03-22 Kazu Hirata <kazu@cs.umass.edu>
309 * fold-const.c (fold_ternary): Take decomposed arguments of
311 (fold): Update a call to fold_ternary.
313 * fold-const.c (fold_build1, fold_build2, fold_build3): New.
314 * tree.h: Add corresponding prototypes.
316 2005-03-22 Jakub Jelinek <jakub@redhat.com>
319 * cfglayout.c (reemit_insn_block_notes): Don't put block notes in
320 between jump table and its label.
321 * final.c (shorten_branches): Handle notes in between ADDR_VEC
322 resp. ADDR_DIFF_VEC and the label preceeding it.
323 (final_scan_insn): Likewise. Ensure ADDR_VEC resp. ADDR_DIFF_VEC
324 is emitted in the right section.
326 2005-03-22 Kazu Hirata <kazu@cs.umass.edu>
328 * fold-const.c (fold_unary, fold_binary): Update comments
331 2005-03-22 Hans-Peter Nilsson <hp@axis.com>
333 PR rtl-optimization/20527
334 * combine.c (can_combine_p) [AUTO_INC_DEC]: When INSN has an
335 REG_INC note, test that the register also isn't mentioned in PRED
338 2005-03-22 Ben Elliston <bje@au.ibm.com>
340 * dwarf2out.c (dwarf_type_encoding_name): Remove unused prototype
343 2005-03-21 Mike Stump <mrs@apple.com>
345 * varasm.c (default_assemble_visibility): Remove extra ().
347 2005-03-21 Roger Sayle <roger@eyesopen.com>
350 * bb-reorder.c (duplicate_computed_gotos): Use can_duplicate_block_p
351 to determine whether a block can be duplicated, rather than test
352 whether the block contains noncopyable insns ourselves.
354 2005-03-21 Kazu Hirata <kazu@cs.umass.edu>
356 * config/i860/i860.h (PREDICATE_CODES): Remove nonexistent
359 2005-03-21 Richard Sandiford <rsandifo@redhat.com>
361 * config/ip2k/ip2k.h (target_flags, TARGET_SWITCHES): Delete.
363 2005-03-21 Richard Sandiford <rsandifo@redhat.com>
365 * config/fr30/fr30.h (TARGET_SMALL_MODEL_MASK, TARGET_SMALL_MODEL)
366 (TARGET_DEFAULT, target_flags, TARGET_SWITCHES): Delete.
367 * config/fr30/fr30.opt: New file.
369 2005-03-18 Daniel Berlin <dberlin@dberlin.org>
371 Fix PR tree-optimization/20542
373 * tree-flow-inline.h (overlap_subvar): Move to here.
374 * tree-ssa-operands.c: From here.
375 * tree-flow.h (overlap_subvar): Declare.
376 * tree-ssa-alias.c (add_pointed_to_var): Use overlap_subvar here.
377 * tree-ssa-loop-im.c (is_call_clobbered_ref): Return proper answer
378 for variables with subvars.
380 2005-03-21 Mostafa Hagog <mustafa@il.ibm.com>
383 * ddg.c (create_ddg_dependence): Ignore reg-anti dependency.
384 * modulo-sched.c (const_iteration_count): Return on NULL
386 (print_node_sched_params): Return on NULL dump_file.
387 (generate_reg_moves): Handle reg-anti dependencies and disregard
388 closing branch when generating register moves.
389 (sms_schedule): Mark the SMSed block dirty.
390 * passes.c (rest_of_handle_sms): Call update_life_info for all
392 * testsuite/gcc.dg/20050321-1.c: New test.
394 2005-03-21 Bob Wilson <bob.wilson@acm.org>
396 * config/xtensa/lib1funcs.asm (__mulsi3): Use symbolic name for ACCLO.
397 * config/xtensa/xtensa.md (movsi_internal, movhi_internal,
398 movqi_internal): Likewise.
400 2005-03-21 Bob Wilson <bob.wilson@acm.org>
402 * config/xtensa/xtensa-protos.h: (xtensa_simm7, xtensa_uimm8,
403 xtensa_uimm8x2, xtensa_uimm8x4, xtensa_ai4const, xtensa_lsi4x4,
404 xtensa_b4const): Delete prototypes.
405 (xtensa_simm8, xtensa_simm8x256, xtensa_simm12b, xtensa_b4constu,
406 xtensa_mask_immediate, xtensa_mem_offset): Update prototypes.
407 (xtensa_b4const_or_zero, xtensa_const_ok_for_letter_p,
408 xtensa_extra_constraint): New prototypes.
409 (add_operand, arith_operand, nonimmed_operand, mem_operand,
410 mask_operand, extui_fldsz_operand, sext_operand, sext_fldsz_operand,
411 lsbitnum_operand, branch_operand, ubranch_operand, call_insn_operand,
412 move_operand, const_float_1_operand, fpmem_offset_operand,
413 branch_operator, ubranch_operator, boolean_operator): Delete prototypes.
414 * config/xtensa/xtensa.c (b4const_or_zero): Rename to ...
415 (xtensa_b4const_or_zero): ...this. Change return type to bool and
416 argument type to HOST_WIDE_INT.
417 (xtensa_simm8, xtensa_simm8x256, xtensa_simm12b,
418 xtensa_mask_immediate): Likewise.
419 (xtensa_uimm8, xtensa_uimm8x2, xtensa_uimm8x4, xtensa_b4const):
420 Likewise. Also make these functions static.
421 (xtensa_simm7, xtensa_ai4const, xtensa_lsi4x4): Delete.
422 (xtensa_const_ok_for_letter_p): New.
423 (add_operand, arith_operand, nonimmed_operand, mem_operand,
424 mask_operand, extui_fldsz_operand, sext_operand, sext_fldsz_operand,
425 lsbitnum_operand, branch_operand, ubranch_operand, call_insn_operand,
426 move_operand, const_float_1_operand, fpmem_offset_operand,
427 branch_operator, ubranch_operator, boolean_operator): Move to
429 (smalloffset_mem_p): Inline code from xtensa_lsi4x4.
430 (xtensa_mem_offset): Change return type to bool.
431 (xtensa_extra_constraint): New.
432 (gen_int_relational): Update type of const_range_p function pointer.
433 Use xtensa_b4const_or_zero.
434 * config/xtensa/xtensa.h (CONST_OK_FOR_LETTER_P): Define to
435 xtensa_const_ok_for_letter_p. Update comments.
436 (EXTRA_CONSTRAINT): Define to xtensa_extra_constraint.
437 (PREDICATE_CODES): Delete.
438 * config/xtensa/xtensa.md: Include predicates.md.
439 * config/xtensa/predicates.md: New file.
441 2005-03-21 Kazu Hirata <kazu@cs.umass.edu>
443 * config/v850/v850-protos.h: Remove the prototypes for
444 reg_or_int9_operand, reg_or_const_operand,
445 pattern_is_ok_for_prepare, pattern_is_ok_for_dispose,
446 reg_or_0_operand, reg_or_int5_operand, call_address_operand,
447 movsi_source_operand, power_of_two_operand,
448 not_power_of_two_operand, special_symbolref_operand,
449 pattern_is_ok_for_prologue, pattern_is_ok_for_epilogue, and
450 register_is_ok_for_epilogue.
451 * config/v850/v850.c (reg_or_0_operand, reg_or_int5_operand,
452 reg_or_int9_operand, reg_or_const_operand,
453 call_address_operand, special_symbolref_operand,
454 movsi_source_operand, power_of_two_operand,
455 not_power_of_two_operand, register_is_ok_for_epilogue,
456 pattern_is_ok_for_epilogue, pattern_is_ok_for_prologue,
457 pattern_is_ok_for_dispose, pattern_is_ok_for_prepare): Move to
459 * config/v850/v850.h (PREDICATE_CODES): Remove.
460 * config/v850/v850.md: Include predicates.md.
461 * config/v850/predicates.md: New.
463 2005-03-21 Zack Weinberg <zack@codesourcery.com>
465 * Makefile.in (BASEVER, DEVPHASE, DATESTAMP)
466 (BASEVER_c, DEVPHASE_c, DATESTAMP_c)
467 (BASEVER_s, DEVPHASE_s, DATESTAMP_s, version): Set with :=.
468 (itoolsdir, itoolsdatadir): Move definition above new first use.
469 (install-itoolsdirs): New rule.
470 (install-mkheaders): Depend on install-itoolsdirs, not
473 2005-03-21 Kazu Hirata <kazu@cs.umass.edu>
475 * tree-into-ssa.c: Remove obsolete comments.
477 2005-03-21 Richard Guenther <rguenth@gcc.gnu.org>
479 * tree-ssa-loop.c (gate_tree_complete_unroll): Run complete
480 unrolling if -fpeel-loops is specified, too.
481 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
482 Remove superfluous check for flag_unroll_loops.
484 2005-03-21 Uros Bizjak <uros@kss-loka.si>
486 * optabs.h (enum optab_index): Add new OTI_lrint and OTI_llrint.
487 (lrint_optab, llrint_optab): Define corresponding macros.
488 * optabs.c (init_optabs): Initialize lrint_optab and llrint_optab.
489 * genopinit.c (optabs): Implement lrint_optab using lrintsi2
490 pattern and llrint_optab using llrintdi2 patterns.
491 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LRINT{,F,L}
492 using lrint_optab and BUILT_IN_LLRINT{,F,L} using llrint_optab.
493 (expand_builtin): Expand BUILT_IN_LRINT{,F,L} and
494 BUILT_IN_LLRINT{,F,L} using expand_builtin_mathfn if
495 flag_unsafe_math_optimizations is set.
497 2005-03-21 Paolo Bonzini <bonzini@gnu.org>
499 * combine.c (combine_simplify_rtx, simplify_if_then_else,
500 simplify_logical, if_then_else_cond, known_cond,
501 simplify_comparison): Adjust calls to reverse_comparison.
502 Don't use combine_reversed_comparison_code).
503 (combine_reversed_comparison_code): Remove.
504 (reversed_comparison): Using reversed_comparison_code, move it...
505 * jump.c (reversed_comparison): ... here.
506 * rtl.h (reversed_comparison): Add prototype.
508 2005-03-21 Kazu Hirata <kazu@cs.umass.edu>
510 * builtins.c (fold_builtin): Take decomposed arguments of
512 * fold-const.c (fold_ternary): Update a call to fold_builtin.
513 * gimplify.c (gimplify_call_expr): Likewise.
514 * tree-ssa-ccp.c (ccp_fold, ccp_fold_builtin): Likewise.
515 * tree.h: Update the prototype of fold_builtin.
517 2005-03-21 Paolo Bonzini <bonzini@gnu.org>
519 * rtl.h (struct rtx_hooks): Add gen_lowpart_no_emit.
520 * rtlhooks.c (gen_lowpart_no_emit_general): New.
521 * rtlhooks-def.h (gen_lowpart_no_emit_general): Declare.
522 (RTL_HOOKS_GEN_LOWPART_NO_EMIT): New.
523 * simplify-rtx.c (simplify_binary_operation_1): Use it.
525 2005-03-21 Kazu Hirata <kazu@cs.umass.edu>
527 * builtins.c (fold_builtin_1): Take decomposed arguments of
529 (fold_builtin): Update a call to fold_builtin_1.
531 2005-03-21 Nathan Sidwell <nathan@codesourcery.com>
534 * gcov.c (output_lines): Only output function block summary when
535 outputting branch information.
536 * doc/gcov.texi: Document format of preamble and additional block
539 2005-03-21 Richard Sandiford <rsandifo@redhat.com>
541 * libgcc2.h (LIBGCC2_HAS_SF_MODE): New macro.
542 (LIBGCC2_HAS_DF_MODE, LIBGCC2_HAS_TF_MODE, LIBGCC2_HAS_XF_MODE): Make
543 the defaults false if BITS_PER_UNIT != 8.
544 (SFtype, SCtype, __fixsfdi, __floatdisf, __fixunssfSI, __fixunssfDI)
545 (__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE rather
546 than BITS_PER_UNIT != 8.
547 (L_fixdfdi, L_fixsfdi, L_fixtfdi, L_fixunsdfdi, L_fixunsdfsi)
548 (L_fixunssfdi, L_fixunssfsi, L_fixunstfdi, L_fixunsxfdi, L_fixunsxfsi)
549 (L_fixxfdi, L_floatdidf, L_floatdisf, L_floatditf, L_floatdixf): Remove
551 * libgcc2.c (__fixunssfDI, __fixsfdi, __floatdisf, __fixunssfSI)
552 (__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE.
554 2005-03-20 Roger Sayle <roger@eyesopen.com>
557 * fold-const.c (fold_binary): Fix type mismatch between
558 TRUTH_{AND,OR,XOR}_EXPR nodes an their operands' types.
559 (fold_binary) <TRUTH_XOR_EXPR>: Avoid calling invert_truthvalue
560 for non-truth-valued expressions.
562 * c-common.c (c_common_truthvalue_conversion): Handle ERROR_MARK
563 and FUNCTION_DECL in the main switch.
564 <TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
565 TRUTH_XOR_EXPR>: When changing the result type of these tree nodes,
566 we also need to convert their operands to match.
567 <TRUTH_NOT_EXPR>: Likewise.
569 2005-03-21 Joseph S. Myers <joseph@codesourcery.com>
571 * c-common.c (lvalue_or_else): Replace by lvalue_error; only give
572 diagnostic without checking whether an lvalue.
573 * c-common.h (lvalue_p): Remove.
574 (enum lvalue_use): Update comment.
575 (lvalue_or_else): Replace by lvalue_error.
576 * c-typeck.c (lvalue_p): Make static.
577 (lvalue_or_else): New. Call lvalue_error.
579 2005-03-21 Alan Modra <amodra@bigpond.net.au>
581 * config/rs6000/rs6000.c (rs6000_parm_start): New function.
582 (function_arg_advance): Use rs6000_parm_start.
583 (function_arg, rs6000_arg_partial_bytes): Likewise.
585 2005-03-20 Joseph S. Myers <joseph@codesourcery.com>
587 * c-common.c (check_case_value): Adjust comment about stripping
589 (handle_vector_size_attribute): Don't strip NON_LVALUE_EXPR.
590 * c-typeck.c (default_conversion, convert_arguments,
591 build_modify_expr, convert_for_assignment, store_init_value,
592 digest_init): Use STRIP_TYPE_NOPS instead of stripping nops
593 manually. Remove inaccurate comments.
595 2005-03-20 Roger Sayle <roger@eyesopen.com>
596 Joseph S. Myers <joseph@codesourcery.com>
598 * varasm.c (do_assemble_alias): Restore comment describing function.
599 Annotate the target parameter as potentially unused.
601 2005-03-20 Marek Michalkiewicz <marekm@amelek.gda.pl>
604 * config/avr/avr.c (avr_output_function_prologue): Do not use
605 current_function_name() in a label, use a local label instead.
607 2005-03-20 David Edelsohn <edelsohn@gnu.org>
609 * config/rs6000/rs6000.c (rs6000_generate_compare): Test
610 flag_finite_math_only, not flag_unsafe_math_optimizations.
612 2005-03-20 Kazu Hirata <kazu@cs.umass.edu>
614 * builtins.c (fold_builtin_1): Update a call to
615 targetm.fold_builtin.
616 * hooks.c (hook_tree_tree_bool_null): Rename to
617 hook_tree_tree_tree_bool_null. Take one more argument of type
619 * hooks.h: Update the prototype of hook_tree_tree_bool_null.
620 * target-def.h (TARGET_FOLD_BUILTIN): Define it as
621 hook_tree_tree_tree_bool_null.
622 * target.h (gcc_target): Update the prototype of fold_builtin.
623 * config/alpha/alpha.c (alpha_fold_builtin): Take decomposed
624 arguments of CALL_EXPR.
625 * doc/tm.texi (TARGET_FOLD_BUILTIN): Update. Mention the
628 2005-03-20 Jan Hubicka <jh@suse.cz>
630 * cgraph.h (cgraph_node): Add prev_clone pointer.
631 * cgraph.c (cgraph_remove_node): Remove from doubly linked chain.
632 (cgraph_clone_node): Produce doubly linked chain.
634 2005-03-20 Joseph S. Myers <joseph@codesourcery.com>
636 * c-common.c (handle_aligned_attribute, check_function_sentinel,
637 get_nonnull_operand, handle_sentinel_attribute,
638 check_function_arguments_recurse): Do not strip NOPS from
640 * c-decl.c (check_bitfield_type_and_width, build_enumerator):
642 * c-format.c (get_constant): Likewise.
643 * c-parser.c (c_parser_postfix_expression): Likewise.
644 * c-typeck.c (set_init_index): Likewise.
645 (convert_arguments): Don't check for NOP_EXPR containing integer
648 2005-03-20 Kazu Hirata <kazu@cs.umass.edu>
650 * builtins.c (fold_fixed_mathfn, fold_builtin_trunc,
651 fold_builtin_floor, fold_builtin_ceil, fold_builtin_lround):
652 Take decomposed arguments of CALL_EXPR.
653 (fold_builtin_1): Update calls to the functions mentioned
656 2005-03-20 Joseph S. Myers <joseph@codesourcery.com>
658 * c-decl.c (check_bitfield_type_and_width): Require bit-field
659 width to have integer type.
660 (build_enumerator): Require enumerator value to have integer type.
662 2005-03-19 Joseph S. Myers <joseph@codesourcery.com>
664 * doc/extend.texi (__builtin_inf): Move statement about INFINITY
667 2005-03-19 Joseph S. Myers <joseph@codesourcery.com>
669 * c.opt (ansi, std=iso9899:1990, std=iso9899:1999,
670 std=iso9899:199x): Correct descriptions.
672 2005-03-19 Joseph S. Myers <joseph@codesourcery.com>
674 * config.gcc: Consistently use solaris2.1[0-9]* instead of
677 2005-03-19 Kazu Hirata <kazu@cs.umass.edu>
679 * builtins.c (fold_builtin_memcpy): Take decomposed arguments
681 (expand_builtin_memcpy, fold_builtin_1): Update calls to
684 * builtins.c (fold_trunc_transparent_mathfn): Take decomposed
685 arguments of CALL_EXPR.
686 (fold_builtin_trunc, fold_builtin_floor, fold_builtin_ceil,
687 fold_builtin_found, fold_builtin_1): Update calls to
688 fold_trunc_transparent_mathfn.
690 2005-03-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
693 * fold-const.c (fold_widened_comparison): Don't optimize casts of
694 function pointers on targets that require function pointer
696 (fold_sign_changed_comparison): Likewise.
698 2005-03-19 Bernd Schmidt <bernd.schmidt@analog.com>
700 * combine.c (try_combine): When changing the mode of a hard reg, make
701 sure that doing so is valid.
703 2005-03-19 Richard Sandiford <rsandifo@redhat.com>
705 * config/avr/avr.c (avr_init_stack, avr_mcu_name): Make static.
706 (TARGET_HANDLE_OPTION): Override default.
707 (avr_handle_option): New function.
708 * config/avr/avr.h (MASK_ALL_DEBUG, MASK_ORDER_1, MASK_INSN_SIZE_DUMP)
709 (MASK_ORDER_2, MASK_NO_TABLEJUMP, MASK_INT8, MASK_NO_INTERRUPTS)
710 (MASK_CALL_PROLOGUES, MASK_TINY_STACK, MASK_SHORT_CALLS)
711 (TARGET_ORDER_1, TARGET_ORDER_2, TARGET_INT8, TARGET_NO_INTERRUPTS)
712 (TARGET_INSN_SIZE_DUMP, TARGET_CALL_PROLOGUES, TARGET_TINY_STACK)
713 (TARGET_NO_TABLEJUMP, TARGET_SHORT_CALLS, TARGET_ALL_DEBUG)
714 (TARGET_SWITCHES, avr_init_stack, avr_mcu_name)
715 (TARGET_OPTIONS): Delete.
716 * config/avr/avr.opt: New file.
718 2005-03-18 2005-03-18 Kazu Hirata <kazu@cs.umass.edu>
720 * config/m32r/m32r-protos.h: Remove the prototypes for
721 call_address_operand, symbolic_operand, seth_add3_operand,
722 cmp_int16_operand, uint16_operand, reg_or_int16_operand,
723 reg_or_uint16_operand, reg_or_cmp_int16_operand,
724 two_insn_const_operand, move_src_operand,
725 move_double_src_operand, move_dest_operand,
726 eqne_comparison_operator, signed_comparison_operator,
727 large_insn_p, conditional_move_operand, carry_compare_operand,
728 m32r_block_immediate_operand, extend_operand,
729 reg_or_eq_int16_operand, int8_operand, and
731 * config/m32r/m32r.c (call_address_operand, symbolic_operand,
732 seth_add3_operand, int8_operand, cmp_int16_operand,
733 uint16_operand, reg_or_int16_operand, reg_or_uint16_operand,
734 reg_or_eq_int16_operand, reg_or_cmp_int16_operand,
735 reg_or_zero_operand, two_insn_const_operand, move_src_operand,
736 move_double_src_operand, move_dest_operand,
737 eqne_comparison_operator, signed_comparison_operator,
738 extend_operand, small_insn_p, large_insn_p,
739 conditional_move_operand, carry_compare_operand,
740 m32r_block_immediate_operand): Move to predicates.md.
741 (MAX_MOVE_BYTES): Move to m32r.h.
742 * config/m32r/m32r.h (PREDICATE_CODES): Remove.
743 * config/m32r/m32r.md: Include predicates.md.
744 * config/m32r/predicates.md: New.
746 2005-03-18 James E Wilson <wilson@specifixinc.com>
749 * dwarf2out.c (declare_in_namespace): Ignore decls with an abstract
752 2005-03-18 Kazu Hirata <kazu@cs.umass.edu>
754 * config/mn10300/mn10300-protos.h: Remove the prototypes for
755 call_address_operand, const_8bit_operand.
756 * config/mn10300/mn10300.c (call_address_operand,
757 const_8bit_operand, const_1f_operand): Move to predicates.md.
758 * config/mn10300/mn10300.h (PREDICATE_CODES): Remove.
759 * config/mn10300/mn10300.md: Include predicates.md.
760 * config/mn10300/predicates.md: New.
762 2005-03-18 Joseph S. Myers <joseph@codesourcery.com>
764 * c-common.c, c-decl.c, c-format.c, c-typeck.c: Use %D for
765 declarations in diagnostics and %E for identifiers, not %s.
767 2005-03-18 Jan Hubicka <jh@suse.cz>
768 Dale Johannesen <dalej@apple.com>
770 * basic-block.h (scale_bbs_frequencies_int,
771 scale_bbs_frequencies_gcov_type): Declare.
772 * cfg.c (RDIV): New macro.
773 (update_bb_frequency_for_threading): Fix.
774 * basic-block.h (scale_bbs_frequencies_int,
775 scale_bbs_frequencies_gcov_type): New.
776 * cfgloopmanip.c (scale_bbs_frequencies): Kill.
777 (scale_loop_frequencies, duplicate_loop_to_header_edge): Use
778 scale_bbs_frequencies_int.
779 * tree-ssa-loop-ch.c (copy_loop_headers): Fix profiling info.
781 2005-03-18 Kazu Hirata <kazu@cs.umass.edu>
783 * config/m32r/m32r-protos.h: Remove the prototypes for
784 call_address_operand, symbolic_operand, seth_add3_operand,
785 cmp_int16_operand, uint16_operand, reg_or_int16_operand,
786 reg_or_uint16_operand, reg_or_cmp_int16_operand,
787 two_insn_const_operand, move_src_operand,
788 move_double_src_operand, move_dest_operand,
789 eqne_comparison_operator, signed_comparison_operator,
790 large_insn_p, conditional_move_operand, carry_compare_operand,
791 m32r_block_immediate_operand, extend_operand,
792 reg_or_eq_int16_operand, int8_operand, and
794 * config/m32r/m32r.c (call_address_operand, symbolic_operand,
795 seth_add3_operand, int8_operand, cmp_int16_operand,
796 uint16_operand, reg_or_int16_operand, reg_or_uint16_operand,
797 reg_or_eq_int16_operand, reg_or_cmp_int16_operand,
798 reg_or_zero_operand, two_insn_const_operand, move_src_operand,
799 move_double_src_operand, move_dest_operand,
800 eqne_comparison_operator, signed_comparison_operator,
801 extend_operand, small_insn_p, large_insn_p,
802 conditional_move_operand, carry_compare_operand,
803 m32r_block_immediate_operand): Move to predicates.md.
804 (MAX_MOVE_BYTES): Move to m32r.h.
805 * config/m32r/m32r.h (PREDICATE_CODES): Remove.
806 * config/m32r/m32r.md: Include predicates.md.
807 * config/m32r/predicates.md: New.
809 * config/pa/pa-protos.h: Add prototypes for magic_milli and
811 * config/pa/pa.c (reg_or_0_operand, call_operand_address,
812 symbolic_operand, symbolic_memory_operand,
813 reg_or_0_or_nonsymb_mem_operand, reg_before_reload_operand,
814 indexed_memory_operand, move_dest_operand, move_src_operand,
815 prefetch_cc_operand, prefetch_nocc_operand,
816 reg_or_cint_move_operand, pic_label_operand, fp_reg_operand,
817 arith_operand, arith11_operand, pre_cint_operand,
818 post_cint_operan, arith_double_operand, ireg_or_int5_operand,
819 ireg_operand, int5_operand, uint5_operand, int11_operand,
820 uint32_operand, arith5_operand, and_operand, ior_operand,
821 lhs_lshift_operand, lhs_lshift_cint_operand, arith32_operand,
822 pc_or_label_operand, div_operand, plus_xor_ior_operator,
823 shadd_operand, movb_comparison_operator,
824 cmpib_comparison_operator): Move to predicates.md.
825 (magic_milli, shadd_constant_p): Make it extern.
826 * config/pa/pa.h (PREDICATE_CODES): Remove.
827 * config/pa/pa.md: Include predicates.md.
828 * config/pa/predicates.md: New.
830 * config/v850/v850.h (PREDICATE_CODES): Remove a nonexistent
833 2005-03-18 Kazu Hirata <kazu@cs.umass.edu>
835 * hooks.c, hooks.h, intl.c, opts.h, prefix.c, tree-gimple.c,
836 config/alpha/ev4.md, config/alpha/ev5.md, config/alpha/ev6.md,
837 config/alpha/freebsd.h, config/alpha/linux.h,
838 config/alpha/netbsd.h, config/alpha/osf5.h,
839 config/alpha/vms.h, config/arc/arc.c, config/arc/arc.h,
840 config/h8300/h8300-protos.h, config/h8300/h8300.c,
841 config/h8300/h8300.h, config/ia64/unwind-ia64.c,
842 doc/cppopts.texi: Update copyright.
844 2005-03-18 Jan Hubicka <jh@suse.cz>
847 * cgraph.c (cgraph_mark_reachable_node): Assert that it is not called
849 * varasm.c (find_decl_and_mark_needed): Mark needed only when not
852 2005-03-18 Kazu Hirata <kazu@cs.umass.edu>
854 * tree-into-ssa.c (find_idf): Use VEC_quick_push instead of
857 2005-03-18 Paolo Bonzini <bonzini@gnu.org>
859 * combine.c (gen_binary): Remove.
860 (known_cond, simplify_shift_const, find_split_point,
861 combine_simplify_rtx, simplify_if_then_else, simplify_set,
862 simplify_logical, expand_field_assignment, extract_left_shift,
863 force_to_mode, if_then_else_cond, apply_distributive_law,
864 simplify_and_const_int, simplify_shift_const, gen_lowpart_for_combine,
865 simplify_comparison, reversed_comparison): Replace with
866 simplify_gen_binary, simplify_gen_relational or
867 distribute_and_simplify_rtx.
868 (distribute_and_simplify_rtx): New function.
870 2005-03-18 Alexey Neyman <alex.neyman@auriga.ru>
871 Paolo Bonzini <gcc.gnu.org>
873 * calls.c (setjmp_call_p, special_function_p): Update comments
874 at the head of the functions.
876 2005-03-18 Jan Hubicka <jh@suse.cz>
878 * tree-cfg.c (fold_cond_expr_cond): Use boolean types for condition.
880 * cgraph.c (cgraph_remove_node): Avoid loop in code deciding whether
881 function body should be released; do not proactively release function
882 bodies in non-unit-at-a-time mode.
884 2005-03-18 Ralf Corsepius <ralf.corsepius@rtems.org>
886 * config/i386/t-rtems-i386 (MULTILIBS): Remove k6, athlon,
887 mno-fp-ret-in-387 multilib variants.
889 2005-03-18 Richard Sandiford <rsandifo@redhat.com>
891 * common.opt (m): Remove.
892 * opts.c (handle_option): Pass 'm' options to set_target_switch if
894 (common_handle_option): Remove OPT_m case.
896 2005-03-18 Kazu Hirata <kazu@cs.umass.edu>
898 * builtins.c (fold_builtin_bitop): Take decomposed arguments
900 (fold_builtin_1): Update a call to fold_builtin_bitop.
902 * builtins.c (fold_builtin_signbit): Take decomposed arguments
904 (fold_builtin_1): Update a call to fold_builtin_signbit.
906 2005-03-17 Dorit Naishlos <dorit@il.ibm.com>
908 PR tree-optimization/20474
909 * tree-vect-analyze.c (vect_analyze_pointer_ref_access): Check the
910 size_type of the relevant pointer. Check for COMPLETE_TYPE_P.
912 2005-03-17 Kazu Hirata <kazu@cs.umass.edu>
914 * config/h8300/h8300-protos.h: Remove prototypes for
915 general_operand_src, general_operand_dst, single_one_operand,
916 single_zero_operand, call_insn_operand,
917 two_insn_adds_subs_operand, small_call_insn_operand,
918 jump_address_operand, bit_operand, bit_memory_operand,
919 stack_pointer_operand, const_int_gt_2_operand,
920 const_int_ge_8_operand, const_int_qi_operand,
921 const_int_hi_operand, incdec_operand, bit_operator,
922 nshift_operator, eqne_operator, gtle_operator,
923 gtuleu_operator, iorxor_operator.
924 Add prototypes for h8sx_shift_type h8sx_classify_shift and
925 h8300_ldm_stm_parallel.
926 * config/h8300/h8300.c (h8sx_shift_type,): Move to
928 (SYMBOL_FLAG_FUNCVEC_FUNCTION, SYMBOL_FLAG_EIGHTBIT_DATA,
929 SYMBOL_FLAG_TINY_DATA): Move to h8300.h.
930 (h8300_ldm_stm_parallel): Make it extern.
931 (h8300_ldm_parallel, h8300_stm_parallel,
932 h8300_return_parallel, general_operand_src,
933 general_operand_dst, h8300_dst_operand, h8300_src_operand,
934 nibble_operand, reg_or_nibble_operand, single_one_operand,
935 single_zero_operand, call_insn_operand,
936 two_insn_adds_subs_operand, small_call_insn_operand,
937 jump_address_operand, bit_operand, bit_memory_operand,
938 stack_pointer_operand, const_int_gt_2_operand,
939 const_int_ge_8_operand, const_int_qi_operand,
940 const_int_hi_operand, incdec_operand, eqne_operator,
941 gtle_operator, gtuleu_operator, iorxor_operator, bit_operator,
942 h8sx_binary_memory_operator, h8sx_unary_memory_operator,
943 h8sx_unary_shift_operator, h8sx_binary_shift_operator,
944 nshift_operator): Move to predicates.md.
945 * config/h8300/h8300.h (PREDICATE_CODES): Remove.
946 * config/h8300/h8300.md: Include predicates.md.
947 * config/h8300/predicates.md: New.
949 2005-03-17 Richard Henderson <rth@redhat.com>
951 * config.gcc (ia64*-*-hpux*): Add extra_options.
952 * config/ia64/hpux.h (SUBTARGET_SWITCHES): Remove.
953 (TARGET_DEFAULT): Remove MASK_INLINE_FLOAT_DIV_THR.
954 * config/ia64/ia64.c (ia64_fixed_range_string): Remove.
955 (ia64_tls_size_string, ia64_tune_string): Remove.
956 (ia64_tune): Init to PROCESSOR_ITANIUM2.
957 (TARGET_DEFAULT_TARGET_FLAGS): New.
958 (TARGET_HANDLE_OPTION): New.
959 (ia64_override_options): Move options parsing ...
960 (ia64_handle_option): ... here. New.
961 * config/ia64/ia64.h (target_flags, MASK_BIG_ENDIAN, MASK_GNU_AS,
962 MASK_GNU_LD, MASK_NO_PIC, MASK_VOL_ASM_STOP, MASK_ILP32,
963 MASK_REG_NAMES, MASK_NO_SDATA, MASK_CONST_GP, MASK_AUTO_PIC,
964 MASK_INLINE_FLOAT_DIV_LAT, MASK_INLINE_FLOAT_DIV_THR,
965 MASK_INLINE_INT_DIV_LAT, MASK_INLINE_INT_DIV_THR,
966 MASK_INLINE_SQRT_LAT, MASK_INLINE_SQRT_THR, MASK_DWARF2_ASM,
967 MASK_EARLY_STOP_BITS, TARGET_BIG_ENDIAN, TARGET_GNU_AS, TARGET_GNU_LD,
968 TARGET_NO_PIC, TARGET_VOL_ASM_STOP, TARGET_ILP32, TARGET_REG_NAMES,
969 TARGET_NO_SDATA, TARGET_CONST_GP, TARGET_AUTO_PIC,
970 TARGET_INLINE_FLOAT_DIV_LAT, TARGET_INLINE_FLOAT_DIV_THR,
971 TARGET_INLINE_INT_DIV_LAT, TARGET_INLINE_INT_DIV_THR,
972 TARGET_INLINE_FLOAT_DIV, TARGET_INLINE_INT_DIV, TARGET_INLINE_SQRT_LAT,
973 TARGET_INLINE_SQRT_THR, TARGET_INLINE_SQRT, TARGET_DWARF2_ASM,
974 TARGET_EARLY_STOP_BITS): Remove.
975 (TARGET_ILP32): Default false.
976 (TARGET_SWITCHES, SUBTARGET_SWITCHES, TARGET_OPTIONS): Remove.
977 (enum ia64_inline_type): New.
978 (TARGET_DEFAULT): Remove MASK_INLINE_FLOAT_DIV_THR.
979 * config/ia64/ia64.md: Update for new definitions of
980 TARGET_INLINE_INT_DIV, TARGET_INLINE_FLOAT_DIV, TARGET_INLINE_SQRT.
981 * config/ia64/ia64.opt: New file.
982 * config/ia64/ilp32.opt: New file.
984 2005-03-17 H.J. Lu <hongjiu.lu@intel.com>
987 * config/ia64/unwind-ia64.c (_Unwind_FindTableEntry): Removed.
989 2005-03-17 Kazu Hirata <kazu@cs.umass.edu>
991 * config/h8300/h8300.c (h8300_init_once): Use MASK_H8300S_1
992 instead of MASK_H8300S.
993 * config/h8300/h8300.h (target_flags, MASK_H8300S, MASK_MAC,
994 MASK_INT32, MASK_ADDRESSES, MASK_QUICKCALL, MASK_SLOWBYTE,
995 MASK_NORMAL_MODE, MASK_RELAX, MASK_H8300H, MASK_ALIGN_300,
996 MASK_H8300SX, TARGET_INT32, TARGET_ADDRESSES,
997 TARGET_QUICKCALL, TARGET_SLOWBYTE, TARGET_H8300H,
998 TARGET_H8300XS, TARGET_NORMAL_MODE, TARGET_ALIGN_300,
999 TARGET_SWITCHES): Remove.
1000 (TARGET_H8300S): Redefine interms of TARGET_H8300S_1 and
1002 * config/h8300/h8300.opt: New.
1004 * config/alpha/alpha.opt, config/arc/arc.opt,
1005 config/h8300/h8300.opt, config/mips/mips.opt: Add copyright
1008 2005-03-17 Ian Lance Taylor <ian@airs.com>
1012 2005-03-17 Richard Sandiford <rsandifo@redhat.com>
1014 * config/arc/arc.c (arc_cpu_string): Make static. Default to "base"
1015 (arc_text_string, arc_data_string, arc_rodata_string): Make static.
1016 (TARGET_HANDLE_OPTION): Override default.
1017 (arc_handle_option): New function.
1018 (arc_init): Remove code to set arch_cpu_string.
1019 * config/arc/arc.h (target_flags, TARGET_MASK_MANGLE_CPU)
1020 (TARGET_MANGLE_CPU, TARGET_MASK_MANGLE_CPU_LIBGCC)
1021 (TARGET_MANGLE_CPU_LIBGCC, TARGET_MASK_ALIGN_LOOPS, TARGET_ALIGN_LOOPS)
1022 (TARGET_MASK_BIG_ENDIAN, TARGET_BIG_ENDIAN, TARGET_MASK_NO_COND_EXEC)
1023 (TARGET_NO_COND_EXEC, TARGET_SWITCHES, TARGET_DEFAULT)
1024 (SUBTARGET_SWITCHES, arc_cpu_string, arc_text_string, arc_data_string)
1025 (arc_rodata_string, TARGET_OPTIONS): Delete.
1026 * config/arc/arc.opt: New file.
1028 2005-03-17 Richard Henderson <rth@redhat.com>
1030 * doc/extend.texi (Weak Pragmas): New section.
1031 (attribute alias): Clarify that target must be in the same
1034 2005-03-17 Richard Henderson <rth@redhat.com>
1036 * config/alpha/alpha.opt: New file.
1037 * config/alpha/alpha.c (alpha_tune): New. Rename all existing uses
1039 (alpha_cpu_string, alpha_tune_string, alpha_tp_string,
1040 alpha_fprm_string, alpha_fptm_string): Make static.
1041 (alpha_tls_size_string): Remove.
1042 (alpha_handle_option): New.
1043 (override_options): Update for alpha_cpu/alpha_tune split.
1044 (alpha_file_start): Likewise.
1045 (TARGET_DEFAULT_TARGET_FLAGS): New.
1046 (TARGET_HANDLE_OPTION): New.
1047 * config/alpha/alpha.h (alpha_tune): Declare.
1048 (MASK_FP, MASK_FPREGS, TARGET_FPREGS, MASK_GAS, TARGET_GAS,
1049 MASK_IEEE_CONFORMANT, TARGET_IEEE_CONFORMANT, MASK_IEEE, TARGET_IEEE,
1050 MASK_IEEE_WITH_INEXACT, TARGET_IEEE_WITH_INEXACT, MASK_BUILD_CONSTANTS,
1051 TARGET_BUILD_CONSTANTS, MASK_FLOAT_VAX, TARGET_FLOAT_VAX, MASK_BWX,
1052 TARGET_BWX, MASK_MAX, TARGET_MAX, MASK_FIX, TARGET_FIX, MASK_CIX,
1053 TARGET_CIX, MASK_EXPLICIT_RELOCS, TARGET_EXPLICIT_RELOCS,
1054 MASK_SMALL_DATA, TARGET_SMALL_DATA, MASK_TLS_KERNEL, TARGET_TLS_KERNEL,
1055 MASK_SMALL_TEXT, TARGET_SMALL_TEXT, MASK_LONG_DOUBLE_128,
1056 TARGET_LONG_DOUBLE_128, MASK_CPU_EV5, TARGET_CPU_EV5, MASK_CPU_EV6,
1057 TARGET_CPU_EV6, MASK_SUPPORT_ARCH): Remove.
1058 (TARGET_SWITCHES, TARGET_OPTIONS): Remove.
1059 (TARGET_DEFAULT): Remove MASK_FP.
1060 (TARGET_FP): Redefined based on TARGET_SOFT_FP.
1061 (TARGET_SUPPORT_ARCH): Default on if HAVE_AS_EXPLICIT_RELOCS.
1062 (alpha_cpu_string, alpha_tune_string, alpha_fprm_string,
1063 alpha_fptm_string, alpha_tp_string, alpha_mlat_string,
1064 alpha_tls_size_string): Remove.
1065 * config/alpha/alpha.md (prefetch): Use alpha_cpu.
1066 (attribute tune): Rename from attribute cpu.
1067 * config/alpha/ev4.md: Update to match.
1068 * config/alpha/ev5.md, config/alpha/ev6.md: Likewise.
1069 * config/alpha/freebsd.h (TARGET_DEFAULT): Remove MASK_FP.
1070 * config/alpha/linux.h (TARGET_DEFAULT): Likewise.
1071 * config/alpha/netbsd.h (TARGET_DEFAULT): Likewise.
1072 * config/alpha/osf5.h (TARGET_DEFAULT): Likewise.
1073 * config/alpha/vms.h (TARGET_DEFAULT): Likewise.
1075 2005-03-16 James E. Wilson <wilson@specifixinc.com>
1077 * config/ia64/ia64.c (issue_nops_and_insn): Check first_insn attribute,
1078 and return without creating new state if before_nops_num is nonzero.
1079 * config/ia64/ia64.md (first_insn): New attribute.
1080 (alloc): Set it to yes.
1082 2005-03-16 Daniel Berlin <dberlin@dberlin.org>
1084 * tree-vectorizer.c (new_vec_stmt_info): Initialize
1085 STMT_VINFO_SUBVARS to NULL.
1086 * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
1088 2005-03-16 Dale Johannesen <dalej@apple.com>
1090 * rtlanal.c (find_first_parameter_load): Rewrite to
1091 return actual first param load or the call if none,
1092 instead of first in block, when not all loads exist.
1094 2005-03-16 Roger Sayle <roger@eyesopen.com>
1096 * optabs.c (expand_copysign_absneg): Make static.
1097 * optabs.h (expand_copysign_absneg): Delete prototype.
1098 * config/rs6000/rs6000.md (copysigntf3): Delete pattern.
1100 2005-03-16 Richard Henderson <rth@redhat.com>
1103 * varasm.c (struct alias_pair): Rename from struct output_def_pair.
1104 (alias_pairs): Rename from output_defs.
1105 (find_decl_and_mark_needed): Split out from assemble_alias.
1106 (do_assemble_alias): New.
1107 (assemble_output_def): Remove.
1108 (finish_aliases_1, finish_aliases_2): New.
1109 (process_pending_assemble_output_defs): Remove.
1110 (assemble_alias): Defer aliases for which we don't yet have a
1111 non-external decl for the target symbol.
1112 * passes.c (rest_of_decl_compilation): Register variables with cgraph.
1113 * cgraphunit.c (cgraph_finalize_compilation_unit): Use finish_aliases_1.
1114 * toplev.c (compile_file): Use finish_aliases_2 instead of
1115 process_pending_assemble_output_defs.
1116 * tree.h (finish_aliases_1, finish_aliases_2): Declare.
1117 (process_pending_assemble_output_defs): Remove.
1119 2005-03-16 Daniel Berlin <dberlin@dberlin.org>
1121 Fix PR tree-optimization/20489
1123 * tree-ssa-alias.c (push_fields_onto_fieldstack): DTRT
1124 for empty structures.
1126 2005-03-16 Daniel Berlin <dberlin@dberlin.org>
1128 Fix PR tree-optimization/20490
1130 * tree-ssa-pre.c (create_expression_by_pieces): Use
1131 force_gimple_operand on result of fold.
1133 2005-03-16 Andrew Pinski <pinskia@physics.uc.edu>
1135 * config/i386/emmintrin.h (_mm_extract_epi16): Correct the number
1136 of closing parenthesis.
1138 2005-03-16 Kazu Hirata <kazu@cs.umass.edu>
1140 * builtins.c (expand_movstr): Update a call to
1141 fold_builtin_strcpy.
1142 (expand_builtin_strncpy): Update a call to
1143 fold_builtin_strncpy.
1144 (fold_builtin_strcpy, fold_builtin_strncpy): Take decomosed
1145 arguments of CALL_EXPR.
1146 (fold_builtin_1): Update calls to fold_builtin_strcpy and
1147 fold_builtin_strncpy.
1148 * tree-ssa-ccp.c (ccp_fold_builtin): Likewise.
1149 * tree.h: Update the prototypes of fold_builtin_strcpy and
1150 fold_builtin_strncpy.
1152 2005-03-16 Steven Bosscher <stevenb@suse.de>
1153 Dorit Naishlos <dorit@il.ibm.com>
1155 * tree-vect-analyze.c (vect_enhance_data_refs_alignment): Copy
1156 UNITS_PER_SIMD_WORD to a local variable to avoid a "division by zero"
1159 2005-03-16 Steven Bosscher <stevenb@suse.de>
1161 * tree-inline.c (walk_type_fields, walk_tree,
1162 walk_tree_without_duplicates): Move from here...
1163 * tree.c: ...to here.
1165 2005-03-15 Zack Weinberg <zack@codesourcery.com>
1167 * BASE-VER, DATESTAMP, DEV-PHASE: New files.
1168 * Makefile.in (gcc_version, gcc_version_trigger, ): Delete.
1169 (BASEVER, DEVPHASE, DATESTAMP, BASEVER_c, DEVPHASE_c, DATESTAMP_c)
1170 (BASEVER_s, DEVPHASE_s, DATESTAMP_s): New variables.
1171 (version): Define using $(BASEVER_c).
1172 (Makefile, config.status, build/gcov-iov.o): No longer depends on
1174 (version.o): Depend on version files; add custom generation command.
1175 (prefix.o): Define BASEVER on command line.
1176 (s-iov): Depend on version files; adjust command.
1177 (TEXI_CPP_FILES, TEX_IGCC_FILES, TEXI_GCCINT_FILES, TEXI_CPPINT_FILES):
1179 (gcc-vers.texi): New rule.
1180 (doc/%.info, doc/%.dvi): Add -I . to command line.
1181 (doc/gccinstall.dvi): Likewise.
1182 (PACKAGE): Delete. All uses replaced with "gcc".
1183 * aclocal.m4: Do not include gcc-version.m4.
1184 * configure.ac: Do not invoke TL_AC_GCC_VERSION.
1185 Do not AC_SUBST nor AC_DEFINE PACKAGE or VERSION.
1186 Set is_release based on contents of DEV-PHASE.
1187 Set gcc_version based on contents of BASE-VER.
1188 Define WIN32_REGISTRY_KEY only if the user overrode the default.
1189 * config.in, configure: Regenerate.
1190 * gccbug.in: Determine version of GCC in use at runtime.
1191 * gcov-iov.c: Get version number and development phase from
1192 command line, not by including version.c.
1193 * intl.c: Replace all uses of PACKAGE with "gcc".
1194 * libada-mk.in: Delete unused "gcc_version" variable.
1195 * prefix.c: Default WIN32_REGISTRY_KEY to BASEVER.
1196 * version.c: (VERSUFFIX): New hook for redistributors; adjust
1197 commentary to match.
1198 (version_string): Put together from pieces.
1199 * config/alpha/x-vms: Do not use $(gcc_version).
1200 * config/i386/t-nwld: Likewise.
1201 * doc/include/gcc-common.texi: Include gcc-vers.texi for
1202 version-GCC and DEVELOPMENT.
1204 2005-03-15 Roger Sayle <roger@eyesopen.com>
1206 PR tree-optimization/17454
1207 * tree.c (tree_size): Add case for TREE_BINFO.
1208 * fold-const.c (fold_checksum_tree): Only clear the overloaded
1209 field TYPE_CACHED_VALUES if TYPE_CACHED_VALUES_P is set.
1211 2005-03-15 Roger Sayle <roger@eyesopen.com>
1213 * optabs.c (expand_doubleword_mult): Avoid clobbering op0 and
1214 op1 whilst expanding the signed widenening multiply variant.
1216 2005-03-15 Richard Sandiford <rsandifo@redhat.com>
1218 * toplev.c (display_target_options): Avoid unused variable warning if
1219 TARGET_SWITCHES and TARGET_OPTIONS are both undefined.
1220 * config/mips/mips.c (mips_arch_string, mips_tune_string): Make static.
1221 (mips_isa_string, mips_abi_string, mips_fix_vr4130_string): Delete.
1222 (mips_isa): Initialize to MIPS_ABI_DEFAULT.
1223 (mips_isa_info): New variable.
1224 (mips_parse_cpu): Remove the first argument and leave the caller
1226 (TARGET_HANDLE_OPTION): Override default.
1227 (mips_handle_option): New function. Move option validation code from...
1228 (override_options): ...here. Update calls to mips_parse_cpu.
1229 * config/mips/mips.h (mips_arch_string, mips_tune_string)
1230 (mips_isa_string, mips_abi_string, TARGET_OPTIONS)
1231 (SUBTARGET_TARGET_OPTIONS): Delete.
1232 * config/mips/mips.opt (mabi=, march=, mflush-func=, mips)
1233 (mno-flush-func, mtune=): New options.
1235 2005-03-15 Roger Sayle <roger@eyesopen.com>
1236 Richard Henderson <rth@redhat.com>
1238 * real.c (c4x_single_format, c4x_extended_format): Provide values
1239 for signbit_ro for c4x's single and extended floating point formats.
1240 * optabs.c (expand_copysign): Use the floating point format's
1241 signbit_ro for expanding via expand_copysign_absneg, and it's
1242 signbit_rw field for expanding via expand_copysign_bit.
1244 2005-03-15 Dorit Naishlos <dorit@il.ibm.com>
1246 * tree-vectorizer.h (unknown_alignment_for_access_p): Replaced by
1247 known_alignment_for_access_p.
1248 (known_alignment_for_access_p): New.
1249 (do_peeling_for_alignment): Field made int instead of bool and renamed
1250 to peeling_for_alignment.
1251 (LOOP_DO_PEELING_FOR_ALIGNMENT): Renamed to LOOP_PEELING_FOR_ALIGNMENT.
1252 * tree-vect-analyze.c (vect_determine_vectorization_factor): New. This
1253 functionality used to be in vect_analyze_operations.
1254 (vect_analyze_operations): Code to determine vectorization factor was
1255 moved to vect_determine_vectorization_factor.
1256 (vect_enhance_data_refs_alignment): Update to correct alignment when it
1257 is known instead of -1. Set LOOP_PEELING_FOR_ALIGNMENT to peeling
1259 (vect_analyze_loop): Call vect_determine_vectorization_factor (used to
1260 be part of vect_analyze_operations).
1261 * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Use fold when
1262 creating the guard condition, as the number of iterations may be
1264 (slpeel_tree_peel_loop_to_edge): Use new name of
1265 LOOP_DO_PEELING_FOR_ALIGNMENT. Set it to 0 instead of false.
1266 * tree-vect-transform.c (vect_gen_niters_for_prolog_loop): Handle known
1267 alignment case more efficiently. Use LOOP_PEELING_FOR_ALIGNMENT.
1268 (vect_do_peeling_for_alignment): Use fold.
1269 (vect_transform_loop): Use new name of LOOP_DO_PEELING_FOR_ALIGNMENT.
1271 (vect_update_inits_of_dr): Renamed to
1272 vect_update_init_of_dr.
1273 (vect_update_inits_of_drs): Use new name of vect_update_inits_of_dr.
1274 (vectorizable_store): Fix assertion to use == instead of =.
1276 2005-03-15 Daniel Jacobowitz <dan@codesourcery.com>
1278 * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't clear
1279 call_used_regs for wCG registers.
1281 2005-03-15 Ulrich Weigand <uweigand@de.ibm.com>
1283 * config/s390/s390.c (s390_secondary_output_reload_class): Adapt check
1284 for non-offsettable memory references to cope with outstanding reload
1285 replacements, take 2.
1287 2005-03-15 Uros Bizjak <uros@kss-loka.si>
1290 * config/i386/i386.h (x86_fisttp): New.
1291 (TARGET_FISTTP): New macro.
1292 * config/i386/i386.c (x86_fisttp): Set for NOCONA.
1293 (output_fix_trunc): Add fisttp parameter. Generate fisttp x87
1294 instruction when fisttp flag is set.
1295 * config/i386/i386-protos.h (output_fix_trunc): Change declaration.
1297 * config/i386/i386.md (type attribute): Add fisttp.
1298 (unit attribute): Set to i387 for fisttp type.
1299 (X87MODEF, X87MODEI, SSEMODEF, SSEMODEI24): New mode macros.
1300 (fix_truncxfdi2, fix_truncxfsi2): Generate fisttp patterns for
1302 (fix_truncdfdi2, fix_truncsfdi2, fix_truncdfsi2, fix_truncsfsi2):
1303 Generate fisttp patterns for TARGET_FISTTP. Implement using mode
1305 (fix_truncxfhi2, fix_truncdfhi2, fix_truncsfhi2): Generate fisttp
1306 patterns for TARGET_FISTTP. Enable patterns for
1307 (TARGET_FISTTP && !TARGET_SSE_MATH). Implement using mode macros.
1308 (fix_trunc<mode>_i387_fisttp_1, fix_trunc<mode>_i387_fisttp,
1309 fix_trunc<mode>_i387_fisttp_with_temp): New instruction patterns to
1310 implement fisttp x87 insn.
1311 (fix_trunc*_i387_fisttp splitters): New patterns.
1312 (*fix_truncdi_i387, *fix_truncsi_i387, *fix_trunchi_i387):
1313 Rename to *fix_trunc<mode>_i387_1. Implement using mode macros.
1314 Disable patterns for TARGET_FISTTP. Add comment about FLAGS_REG
1316 (fix_truncdi_memory, fix_truncdi_nomemory, fix_trunchi_nomemory):
1317 Rename to fix_trunc<mode>_i387 and fix_trunc<mode>_i387_with_temp.
1318 Implement using mode macros. Disable patterns for TARGET_FISTTP.
1319 (fix_truncsi_memory, fix_truncsi_nomemory, fix_trunchi_memory,
1320 fix_trunchi_nomemory): Rename to fix_trunc<mode>_i387 and
1321 fix_trunc<mode>_i387_with_temp. Implement using mode macros.
1322 Disable patterns for TARGET_FISTTP.
1323 (fix_trunc*_i387 splitters): Implement usign mode macros.
1324 (fix_truncdfdi_sse, fix_truncsfdi_sse, fix_truncdfsi_sse,
1325 fix_truncsfsi_sse): Disable for (TARGET_FISTTP && !TARGET_SSE_MATH).
1326 (fix_trunx*_sse peephole2s): Implement using mode macros.
1328 2005-03-15 J"orn Rennecke <joern.rennecke@st.com>
1330 PR rtl-optimization/20291
1331 * combine.c (try_combine): If splitting fails, re-try with
1332 original combined pattern, i.e. before clobber stripping.
1334 2005-03-14 Eric Christopher <echristo@redhat.com>
1336 * config/mips/mips.h (DWARF_CIE_DATA_ALIGNMENT): Change for
1337 STACK_GROWS_DOWNWARD.
1339 2005-03-14 Roger Sayle <roger@eyesopen.com>
1341 * real.h (struct real_format): Split the signbit field into two
1342 two fields, signbit_ro and signbit_rw.
1343 * real.c (ieee_single_format, mips_single_format, ieee_double_format,
1344 mips_double_format, ieee_extended_motorola_format,
1345 ieee_extended_intel_96_format, ieee_extended_intel_96_round_53_format,
1346 ieee_extended_intel_128_format, ibm_extended_format,
1347 mips_extended_format, ieee_quad_format, mips_quad_format,
1348 vax_f_format, vax_d_format, vax_g_format, i370_single_format,
1349 i370_double_format, c4x_single_format, c4x_extended_format,
1350 real_internal_format): Update initializers for new field.
1351 * builtins.c (expand_builtin_signbit): Use signbit_ro field of the
1352 real_format structure.
1353 * optabs.c (expand_absneg_bit, expand_copysign): Use signbit_rw
1354 field of the real_format structure.
1356 2005-03-14 Daniel Berlin <dberlin@dberlin.org>
1358 Fix PR tree-optimization/20458
1360 * tree-flow-inline.h (mark_call_clobbered): Don't fiddle
1361 DECL_EXTERNAL on STRUCT_FIELD tags.
1362 (clear_call_clobbered): Ditto.
1363 * tree-ssa-operands.c (note_addressable): Make sure the original
1364 variable doesn't slip into the addressable list if we have
1366 * tree-tailcall.c (suitable_for_tail_opt_p): Look at STRUCT_FIELD
1369 2005-03-14 Geoffrey Keating <geoffk@apple.com>
1371 * doc/cppopts.texi (-fexec-charset): Add concept index entry.
1372 (-fwide-exec-charset): Likewise.
1373 (-finput-charset): Likewise.
1374 * doc/invoke.texi (Warning Options): Document -Wnormalized=.
1375 * c-opts.c (c_common_handle_option): Handle -Wnormalized=.
1376 * c.opt (Wnormalized): New.
1378 2005-03-14 Devang Patel <dpatel@apple.com>
1380 * doc/invoke.texi: Add reference to Visibility document.
1382 2005-03-14 Richard Sandiford <rsandifo@redhat.com>
1384 * config.gcc (mips*-*-*): Rename MASK_SPLIT_ADDRS to
1385 MASK_SPLIT_ADDRESSES.
1386 * config/mips/mips.h (target_flags, mips_fix_vr4130_string): Delete.
1387 (MASK_INT64, MASK_LONG64, MASK_SPLIT_ADDR, MASK_NO_FUSED_MADD)
1388 (MASK_EXPLICIT_RELOCS, MASK_MEMCPY, MASK_SOFT_FLOAT)
1389 (MASK_FLOAT64, MASK_ABICALLS, MASK_XGOT, MASK_LONG_CALLS)
1390 (MASK_64BIT, MASK_EMBEDDED_DATA, MASK_BIG_ENDIAN)
1391 (MASK_SINGLE_FLOAT, MASK_MAD, MASK_4300_MUL_FIX, MASK_MIPS16)
1392 (MASK_NO_CHECK_ZERO_DIV, MASK_BRANCHLIKELY)
1393 (MASK_UNINIT_CONST_IN_RODATA, MASK_FIX_R4000, MASK_FIX_R4400)
1394 (MASK_FIX_SB1, MASK_FIX_VR4120, MASK_VR4130_ALIGN)
1395 (MASK_FP_EXCEPTIONS, MASK_DIVIDE_BREAKS, MASK_PAIRED_SINGLE)
1396 (MASK_MIPS3D, MASK_SYM32, MASK_DEBUG, MASK_DEBUG_D)
1397 (MASK_MIPS_TFILE, TARGET_INT64, TARGET_LONG64, TARGET_FLOAT64)
1398 (TARGET_64BIT, TARGET_SPLIT_ADDRESSES, TARGET_DEBUG_MODE)
1399 (TARGET_DEBUG_D_MODE, TARGET_MEMCPY, TARGET_ABICALLS)
1400 (TARGET_XGOT, TARGET_SOFT_FLOAT, TARGET_HARD_FLOAT)
1401 (TARGET_LONG_CALLS, TARGET_EMBEDDED_DATA)
1402 (TARGET_UNINIT_CONST_IN_RODATA, TARGET_BIG_ENDIAN)
1403 (TARGET_SINGLE_FLOAT, TARGET_DOUBLE_FLOAT, TARGET_MAD)
1404 (TARGET_FUSED_MADD, TARGET_4300_MUL_FIX, TARGET_CHECK_ZERO_DIV)
1405 (TARGET_DIVIDE_TRAPS, TARGET_BRANCHLIKELY, TARGET_FIX_SB1)
1406 (TARGET_FIX_R4000, TARGET_FIX_R4400, TARGET_FIX_VR4120)
1407 (TARGET_FIX_VR4130, TARGET_VR4130_ALIGN, TARGET_FP_EXCEPTIONS)
1408 (TARGET_PAIRED_SINGLE_FLOAT, TARGET_MIPS3D, TARGET_SYM32)
1409 (TARGET_EXPLICIT_RELOCS): Delete.
1410 (TARGET_SWITCHES, SUBTARGET_TARGET_SWITCHES): Delete.
1411 (TARGET_OPTIONS): Remove entry for -mfix-vr4130.
1412 * config/mips/mips.c (TARGET_DEFAULT_TARGET_FLAGS): Define.
1413 (override_options): Set MASK_LONG64 if -mint64 is given and no
1414 -mlongXX option is. Complain about -mint64 -mlong32.
1415 (override_options, CMP_BUILTINS, mips_bdesc, sb1_desc): Rename
1416 MASK_PAIRED_SINGLE to MASK_PAIRED_SINGLE_FLOAT.
1417 * config/mips/mips.opt: New file.
1419 2005-03-14 Richard Sandiford <rsandifo@redhat.com>
1421 * config.gcc (extra_options): New variable for listing option files.
1422 Add ${cpu_type}/${cpu_type}.opt to it if that file exists.
1423 * configure.ac (extra_opt_files): New AC_SUBST variable.
1424 (tm_file_list, tm_include_list): Include options.h first.
1425 * configure: Regenerate.
1426 * Makefile.in (extra_opt_files, ALL_OPT_FILES): New variables.
1427 (s-options): Use $(ALL_OPT_FILES) instead of $(lang_opt_files)
1428 (s-options-h): New rule.
1429 (options.h): Depend on it.
1430 (TEXI_GCCINT_FILES): Add options.texi.
1431 * hooks.h (hook_bool_size_t_constcharptr_int_true): Declare.
1432 * hooks.c (hook_bool_size_t_constcharptr_int_true): New function.
1433 * target.h (gcc_target): Add default_target_flags and handle_option.
1434 * target-def.h (TARGET_DEFAULT_TARGET_FLAGS)
1435 (TARGET_HANDLE_OPTION): New macros.
1436 (TARGET_INITIALIZER): Include them.
1437 * opt-functions.awk (opt_args, nth_arg): New functions.
1438 (switch_flags): Handle the "Target" flag.
1440 (var_name): Use opt_args and nth_arg.
1441 (var_set, var_ref): Likewise. Handle "Mask" and "InverseMask".
1442 * opth-gen.awk: Declare target_flags. Declare MASK_* and TARGET_*
1443 macros for the "Mask" and "InverseMask" options.
1444 * opts.h (cl_var_cond): New enum.
1445 (cl_option): Replace the "has_set_value" and "set_value" fields with
1446 "var_cond" and "var_value".
1447 (CL_TARGET): New macro.
1448 (option_enabled, print_filtered_help): Declare.
1449 (decode_options): Move definition.
1450 * opts.c (handle_option): Search for the original option before
1451 removing any "no-" prefix. Handle CL_TARGET. Adjust for the new
1452 var_cond and var_value fields. Use targetm.handle_option to handle
1454 (decode_options): Set target_flags to targetm.default_target_flags.
1455 (print_filtered_help): Make global. Handle CL_TARGET.
1456 (option_enabled): New function.
1457 * toplev.c (target_switches): Guard with #ifdef TARGET_SWITCHES.
1458 (display_target_options, set_target_switch, print_switch_values)
1459 (default_pch_valid_p): Guard uses of target_switches with
1460 #ifdef TARGET_SWITCHES. Also...
1461 (display_target_options): Display the CL_TARGET entries in cl_options.
1462 (set_target_option): Don't complain about the "" option when
1463 TARGET_SWITCHES is undefined.
1464 (print_switch_values): Use option_enabled.
1465 (default_pch_valid_p): Check cl_options[] when looking for something
1466 that has changed the value of target_flags.
1467 * c.opt: Remove documentation from top of file.
1468 * doc/gccint.texi: Add an "Options" chapter. Include options.texi.
1469 * doc/sourecebuild.texi: Refer to the new options documentation
1470 instead of c.opt. Document machine-specific .opt files.
1471 * doc/tm.texi (target_flags): Say that this variable is declared
1473 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Document.
1474 (TARGET_SWITCHES, TARGET_OPTIONS): Refer to the option files as
1476 * doc/options.texi: New file.
1478 2005-03-14 Alexandre Oliva <aoliva@redhat.com>
1481 * cse.c (fold_rtx_mem): Don't fold a load from a jumptable into a
1484 2005-03-14 Alexandre Oliva <aoliva@redhat.com>
1487 * gimplify.c (gimplify_cond_expr): Add fallback argument. Use a
1488 temporary variable of pointer type if an lvalues is required.
1489 (gimplify_modify_expr_rhs): Request an rvalue from it.
1490 (gimplify_expr): Pass fallback on.
1492 2005-03-14 Kazu Hirata <kazu@cs.umass.edu>
1494 * cfgbuild.c: Update comments.
1496 2005-03-14 Roger Sayle <roger@eyesopen.com>
1498 PR rtl-optimization/17236
1499 * optabs.c (expand_doubleword_mult): New helper function split out
1500 from expand_binop. Permute the order in which instructions are
1501 emitted to minimize the number of simultaneously live registers.
1502 (expand_binop): Call expand_doubleword_mult to synthesize a double
1503 word multiplication.
1505 2005-03-14 Kazu Hirata <kazu@cs.umass.edu>
1507 * basic-block.h: Update the prototypes of cached_make_edge and
1509 * cfg.c (cached_make_edge): Take edge_cache representing one
1510 row of the adjacency matrix of edges.
1511 * cfgbuild.c (make_label_edge, rtl_make_eh_edge): Likewise.
1512 (make_edges): Initialize edge_cache to represent one row of
1513 the adjacency matrix of edges.
1515 2005-03-14 Zdenek Dvorak <dvorakz@suse.cz>
1517 * tree-ssa-phiopt.c (minmax_replacement, blocks_in_phiopt_order):
1519 (tree_ssa_phiopt): Use blocks_in_phiopt_order and minmax_replacement.
1520 Remove unused removed_phis variable.
1521 (conditional_replacement): Use build1/build2.
1522 (abs_replacement): Use last_and_only_stmt and build1/build2.
1524 2005-03-14 Zdenek Dvorak <dvorakz@suse.cz>
1526 * builtin-attrs.def (ATTR_NOVOPS, ATTR_NOVOPS_LIST,
1527 ATTR_PURE_NOTHROW_NOVOPS_LIST): New.
1528 * builtins.def (ATTR_MATHFN_FPROUNDING): Use NOVOPS.
1529 (BUILT_IN_PREFETCH): Set the NOVOPS attribute.
1530 * c-common.c (handle_novops_attribute): New function.
1531 (c_common_attribute_table): Add "no vops" entry.
1532 * c-decl.c (merge_decls): Copy DECL_IS_NOVOPS.
1533 * calls.c (flags_from_decl_or_type): Set ECF_NOVOPS.
1534 * tree-ssa-operands.c (get_call_expr_operands): Do not
1535 create virtual operands for calls with ECF_NOVOPS flag.
1536 * tree.h (DECL_IS_NOVOPS): New macro.
1537 (struct tree_decl): Add novops_flag.
1538 (ECF_NOVOPS): New constant.
1540 2005-03-14 Uros Bizjak <uros@kss-loka.si>
1543 * config/i386/i386.c (x86_use_himode_fiop): New.
1544 (x86_use_simode_fiop): Rename from x86_use_fiop.
1545 * config/i386/i386.h (x86_use_himode_fiop): Declare.
1546 (TARGET_USE_HIMODE_FIOP): New.
1547 (x86_use_simode_fiop): Rename from x86_use_fiop.
1548 (TARGET_USE_SIMODE_FIOP): Rename from TARGET_USE_FIOP.
1550 * config/i386/i386.md (X87MODEI12): New mode macro define.
1551 (*cmpfp_<mode>): Rename from *cmpfp_si. Use X87MODEI12 mode macro
1552 to implement x87 FP compare with HImode input operands.
1553 (*fp_jcc_8<mode>_387, splitter): Rename from *fp_jcc_8_387.
1554 Use X87MODEI12 mode macro to handle HImode input operands.
1555 (*fop_sf_2<mode>_i387, *fop_sf_3<mode>_i387, *fop_df_2<mode>_i387,
1556 *fop_df_3<mode>_i387, *fop_xf_2<mode>_i387, *fop_xf_3<mode>_i387):
1557 Renamed from *fop_sf_2_i387, *fop_sf_3_i387, *fop_df_2_i387,
1558 *fop_df_3_i387, *fop_xf_2_i387, *fop_xf_3_i387. Use X87MODEI12 mode
1559 macro to implement x87 operators with HImode input operands.
1560 (fop splitters): Use X87MODEI12 mode macro to handle HImode
1563 2005-03-14 Zdenek Dvorak <dvorakz@suse.cz>
1565 * tree-cfg.c (find_taken_edge_cond_expr): Use zero_p instead of
1567 * tree-gimple.c (is_gimple_min_invariant): Consider overflowed
1568 constants invariant.
1570 2005-03-14 Zdenek Dvorak <dvorakz@suse.cz>
1572 * basic-block.h (BB_VISITED): Removed.
1573 * cfganal.c (dfs_enumerate_from): Do not use BB_VISITED flag.
1575 2005-03-14 Falk Hueffner <falk@debian.org>
1578 * config/alpha/alpha.c (alpha_fold_builtin_cmpbge): Fix typo.
1580 2005-03-14 Kazu Hirata <kazu@cs.umass.edu>
1582 * ggc-zone.c: Fix comment typos.
1584 * alloc-pool.c, except.h, ggc-common.c, ggc-zone.c, ggc.h,
1585 stringpool.c, config/mips/mips-protos.h: Update copyright.
1587 2005-03-14 Alan Modra <amodra@bigpond.net.au>
1589 * config/rs6000/rs6000-protos.h: Replace "struct rtx_def *"
1590 throughout with its typedef, "rtx".
1591 * config/rs6000/rs6000.c: Likewise. Formatting fixes.
1592 (rs6000_tls_symbol_ref_1): Remove inline keyword.
1593 * config/rs6000/rs6000.h (REG_ALLOC_ORDER): Formatting. Reorder
1594 regs in comment to match code.
1596 2005-03-14 Kazu Hirata <kazu@cs.umass.edu>
1598 * except.c (check_handled): Make it static.
1599 * except.h: Remove the corresponding prototype.
1601 * function.c (get_func_frame_size): Make it static.
1602 * function.h: Remove the corresponding type.
1604 * regclass.c (reg_class_superclasses, reg_class_subclasses):
1606 * hard-reg-set.h: Remove the corresponding declarations.
1608 * tree-cfg.c (verify_stmts): Check that
1609 bb_for_stmt (stmt) == bb for every PHI node and statement.
1611 2005-03-14 Alan Modra <amodra@bigpond.net.au>
1613 * config.gcc: Remove excess indentation.
1614 (powerpc*-*-*, rs6000-*-*): Accept --with-cpu/tune power5 and 8548.
1616 2005-03-13 Roger Sayle <roger@eyesopen.com>
1619 * tree.c (get_unwidened): Treat CONVERT_EXPR and NOP_EXPR identically.
1620 * fold-const.c (fold_sign_changed_comparison): Likewise.
1621 (fold_binary): Optimize comparisons against widened operands if
1622 the extension is represented by a CONVERT_EXPR, same as a NOP_EXPR.
1624 2005-03-13 Eric Botcazou <ebotcazou@libertysurf.fr>
1626 * config/sparc/sparc.c (struct_value_alias_set): New global variable.
1627 (sparc_override_options): Initialize it.
1628 (sparc_struct_value_rtx): Set it on the MEM to be returned.
1630 2005-03-13 David Edelsohn <edelsohn@gnu.org>
1632 * config/rs6000/predicates.md (mem_or_easy_const_operand): Delete.
1633 (reg_or_none500mem_operand): New predicate.
1634 (zero_reg_mem_operand): New predicate.
1635 * config/rs6000/rs6000.md (extendsfdf2): Change operand1 predicate
1636 to reg_or_none500mem_operand.
1637 (extendsfdf2_fpr): Add MEM alternative.
1638 (extenddftf2_internal): Change operand2 predicate to
1639 zero_reg_mem_operand.
1641 2005-03-13 Daniel Jacobowitz <dan@codesourcery.com>
1643 * ggc-zone.c: Rewritten.
1645 * alloc-pool.c (dump_alloc_pool_statistics): Don't print statistics
1647 * configure.ac: Define GGC_ZONE for --with-gc=zone.
1648 * config.in: Regenerated.
1649 * configure: Regenerated.
1650 * gengtype.c (write_types_process_field, write_func_for_structure):
1651 Pass new argument to gt_pch_note_object.
1652 * ggc-common.c (struct ptr_data): Add TYPE.
1653 (gt_pch_note_object): Take TYPE argument and save it.
1654 (call_count): Update call to ggc_pch_count_object.
1655 (call_alloc): Update call to ggc_pch_alloc_object.
1656 (gt_pch_save): Call ggc_pch_prepare_write after paddng the PCH
1658 * ggc-none.c (rtl_zone, garbage_zone, ggc_alloc_zone_stat): Delete.
1659 * ggc-page.c (rtl_zone, tree_zone, garbage_zone)
1660 (ggc_alloc_zone_stat): Delete.
1661 (ggc_pch_count_object, ggc_pch_alloc_object): Add TYPE argument.
1662 * ggc.h (gt_pch_note_object, ggc_pch_count_object)
1663 (ggc_pch_alloc_object): Update prototypes.
1664 (garbage_zone): Delete.
1665 (tree_zone, rtl_zone, ggc_alloc_zone_stat, ggc_alloc_zone): Move to
1666 GGC_ZONE conditional. Update. Change tree_zone and rtl_zone into
1668 (tree_id_zone): New variable.
1669 (ggc_alloc_cleared_zone): Remove unused.
1670 (ggc_alloc_zone): Define.
1671 (ggc_alloc_rtvec, ggc_alloc_tree): Update to use ggc_alloc_zone.
1672 * rtl.c (rtx_alloc_stat, shallow_copy_rtx_stat): Use
1673 ggc_alloc_zone_stat.
1674 * stringpool.c (gt_pch_n_S): Update call to gt_pch_note_object.
1675 * tree.c (copy_node_stat, make_tree_binfo_stat, make_tree_vec_stat)
1676 (tree_cons_stat, build1_stat): Update call to ggc_alloc_zone_stat.
1677 (make_node_stat): Likewise. Use tree_id_zone.
1679 2005-03-13 Daniel Jacobowitz <dan@codesourcery.com>
1680 Joseph S. Myers <joseph@codesourcery.com>
1682 * configure.ac: Check for MIPS TLS.
1683 * configure: Regenerated.
1684 * config/mips/mips-protos.h (enum mips_symbol_type): Add
1685 SYMBOL_TLS, SYMBOL_TLSGD, SYMBOL_TLSLDM, SYMBOL_DTPREL,
1686 SYMBOL_GOTTPREL, and SYMBOL_TPREL.
1687 * config/mips/mips.c (mips_regno_to_class): Handle V1_REG.
1688 (TARGET_HAVE_TLS, TARGET_CANNOT_FORCE_CONST_MEM): Define.
1689 (mips_classify_symbol, mips_symbolic_constant_p)
1690 (mips_symbolic_address_p, mips_symbol_insns): Handle TLS symbols.
1691 (mips_tls_operand_p, mips_call_tls_get_addr)
1692 (mips_legitimize_tls_address, mips_cannot_force_const_mem)
1693 (mips_tls_symbol_ref_1): New functions.
1694 (mips_legitimize_address, mips_legitimize_const_move): Call
1695 mips_legitimize_tls_address.
1696 (override_options): Handle V1_REG and TLS symbols. Disable TLS
1698 * config/mips/mips.h (enum reg_class, REG_CLASS_NAMES)
1699 (REG_CLASS_CONTENTS, GR_REG_CLASS_P): Include V1_REG.
1700 (mips_char_to_class): Document V1_REG.
1701 (HAVE_AS_TLS): Provide default.
1702 * config/mips/mips.md (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): New
1704 (load_got<mode>): Renamed from *load_got<mode>. Allow when
1706 (tls_get_tp_<mode>): New instruction.
1708 2005-03-13 Daniel Jacobowitz <dan@codesourcery.com>
1710 * configure.ac: Update checks for target tools.
1711 * configure: Regenerated.
1713 2005-03-13 Daniel Jacobowitz <dan@codesourcery.com>
1715 * varasm.c (decl_tls_model): Check flag_shlib instead of flag_pic.
1717 2005-03-13 Roger Sayle <roger@eyesopen.com>
1719 * expmed.c (expand_mult): Use synthetic multiplication sequences for
1720 more classes of DImode multiplication by constant. Allow both
1721 multiplication by small negative constants (by performing a
1722 multiplication by a positive constant and negating the result) and
1723 multiplications by large powers of two, by using a left shift.
1725 2005-03-13 Kazu Hirata <kazu@cs.umass.edu>
1727 * tree-into-ssa.c (find_idf): Speed up by putting the indexes
1728 of basic blocks into work_stack.
1730 * builtin-attrs.def, c-lex.c, c-pragma.h, reg-stack.c,
1731 config/mips/vr.h: Update copyright.
1733 * c-decl.c (c_init_decl_processing): Remove useless calls to
1734 build_function_type.
1736 * builtins.c (fold_trunc_transparent_mathfn,
1737 fold_fixed_mathfn, fold_builtin_atan, fold_builtin_trunc,
1738 fold_builtin_floor, fold_builtin_ceil, fold_builtin_round,
1739 fold_builtin_lround, fold_builtin_bitop, fold_builtin_memcpy,
1740 fold_builtin_strcpy, fold_builtin_strncpy,
1741 fold_builtin_signbit): Use TYPE (TYPE (fndecl)) instead of
1744 * builtins.c (expand_builtin_mathfn_3): Remove local variable
1747 * lambda-code.c (lambda_compute_auxillary_space): Remove local
1748 variable determinant.
1750 * tree-cfg.c (group_case_labels): Remove local variable type.
1752 * tree-ssa-live.c (build_tree_conflict_graph): Remove local
1755 * tree-ssa-phiopt.c (value_replacement): Remove local variable
1758 2005-03-13 Andy Hutchinson <HutchinsonAndy@netscape.net>
1761 * config/avr/avr.md (movmemhi): Rewrite as RTL loop.
1762 (*movmemqi_insn): Delete.
1763 (*movmemhi): Delete.
1765 2005-03-13 Kazu Hirata <kazu@cs.umass.edu>
1767 * builtins.c (fold_builtin_classify): Take decomposed
1768 arguments of CALL_EXPR.
1769 (fold_builtin_1): Update a call to fold_builtin_classify.
1771 2005-03-13 Joseph S. Myers <joseph@codesourcery.com>
1774 * c-parser.c (c_parser_struct_or_union_specifier): Don't fall
1775 through into call to parser_xref_tag after parse error.
1776 (c_parser_struct_declaration): Consistently return NULL_TREE on
1779 2005-03-12 Daniel Berlin <dberlin@dberlin.org>
1781 * tree-flow-inline.h (ref_contains_array_ref): New function.
1782 (lookup_subvars_for_var): Ditto.
1783 (get_subvars_for_var): Ditto.
1784 (var_can_have_subvars): Ditto.
1786 * tree-flow.h (mem_tag_kind): Add STRUCT_FIELD.
1787 (struct subvar): New type.
1789 * tree-dfa.c (okay_component_ref_for_subvars): New function.
1791 * tree-optimize.c (init_tree_optimization_passes): Call
1792 pass_create_structure_vars.
1794 * tree-ssa-alias.c: Include vec.h.
1795 (init_alias_info): Don't auto-clear call clobbered on struct-field
1797 (compute_flow_insensitive_aliasing): Handle subvars.
1798 (group_aliases): Handle STRUCT_FIELD aliases.
1799 (setup_pointers_and_addressables): Ditto.
1800 Don't mark variables non-addressable if they still have
1801 addressable subvars.
1802 Also mark subvars addressable when the real variable is marked
1804 (add_pointed_to_var): Try to prune the pointed-to set by only
1805 pointing to subvars when possible.
1806 Otherwise, make sure we set addresses_needed and pt_vars to
1807 properly include subvars.
1808 (bitpos_of_field): New function.
1809 (push_fields_onto_fieldstack): Ditto.
1810 (get_or_create_used_part_for): Ditto.
1811 (create_overlap_variables_for): Ditto.
1812 (find_used_portions): Ditto.
1813 (create_structure_vars): Ditto.
1814 (pass_create_structure_vars): New structure.
1816 * tree-ssa-operands.c (finalize_ssa_v_must_defs): Remove assert.
1817 (get_expr_operands): Handle subvars. Also try to turn
1818 COMPONENT_REF accesses into must-defs now that we can accurately
1820 (note_addressable): Try to only mark as addressable those subvars
1821 we know a COMPONENT_REF touches.
1822 (overlap_subvar): New function.
1824 * tree-vect-analyze.c (vect_object_analysis): Add new parameter.
1825 Handle subvar storing.
1826 (vect_address_analysis): Update caller of vect_object_analysis.
1828 * tree-vect-transform.c (vect_create_data_ref_ptr): Copy subvars.
1830 * tree-vectorizer.h (struct _stmt_vec_info): Add subvars member.
1831 (STMT_VINFO_SUBVARS): New macro.
1833 * common.opts: add flag_tree_salias.
1835 * opts.c (decode_options): flag_tree_salias defaults to on.
1837 * doc/invoke.texi: Document fdump-tree-svars and -ftree-salias.
1839 * doc/tree-ssa.texi: Document structural alias analysis.
1841 2005-03-12 Steven Bosscher <stevenb@suse.de>
1843 * tree-cfg.c (make_goto_expr_edges): Don't use error_mark_node.
1844 * tree-ssa-dce.c (mark_stmt_necessary): Don't check for it.
1845 * tree-ssa-operands.c (get_expr_operands): Likewise.
1846 (get_expr_operands): Likewise for ERROR_MARK.
1848 2005-03-12 Kazu Hirata <kazu@cs.umass.edu>
1850 * tree-ssa.c (kill_redundant_phi_nodes): Remove local variable
1853 * tree-ssa-phiopt.c (tree_ssa_phiopt): Remove local variable
1856 * tree-ssa-pre.c (compute_avail): Remove local variable val.
1857 (mark_operand_necessary): Remove local variable ver.
1859 * tree-vect-transform.c (vect_get_new_vect_var): Remove local
1860 variable prefix_len.
1862 * value-prof.c (mod_subtract_transform): Remove local variable
1865 * builtins.c (fold_builtin_exponent): Take decomposed
1866 arguments of CALL_EXPR.
1867 (fold_builtin_1): Update a call to fold_builtin_exponent.
1869 * builtins.c (fold_builtin_logarithm): Take decomposed
1870 arguments of CALL_EXPR.
1871 (fold_builtin_1): Update a call to fold_builtin_logarithm.
1873 * c-decl.c (c_init_decl_processing): Remove local variables
1874 ptr_ftype_void and ptr_ftype_ptr.
1876 * gimplify.c (gimplify_expr): Remove local variables r0 and
1879 * reg-stack.c (move_for_stack_reg): Remove local variable
1881 (compare_for_stack_reg): Remove local variable flags_user.
1882 (convert_regs_1): Remove local variable deleted.
1884 * tree-if-conv.c (tree_if_convert_cond_expr): Remove local
1886 (combine_blocks): Remove local variables exits and new_e.
1888 * tree-inline.c (expand_call_inline): Remove local variable
1891 * tree-ssa-live.c (create_ssa_var_map,
1892 calculate_live_on_entry): Remove local variable snn.
1894 2005-03-12 Geoffrey Keating <geoffk@apple.com>
1896 * c-lex.c (c_lex_with_flags): Add parameter to call to
1899 2005-03-11 Per Bothner <per@bothner.com>
1901 * c-tree.h (struct c_declarator): New id_loc field.
1902 * c-pragma.h (c_lex_with_flags): Take position reference.
1903 * c-lex.c (c_lex_with_flags): Set passed-in location from cpp token,
1904 iff USE_MAPPED_LOCATION. (Type doesn't match otherwise.)
1905 (c_lex): Pass dummy location to c_lex_with_flags.
1906 * c-parser.c (c_lex_one_token): Set c_token's location using
1907 c_lex_with_flags, instead of input_location, which might be "ahead".
1908 (c_parser_direct_declarator): Set declarator's id_loc from
1910 * c-decl.c (grokdeclarator): Set DECL_SOURCE_LOCATION from
1911 declarator's id_loc, rather than probably-imprecise input_location.
1912 (build_id_declarator): Initialize c_declarator's id_loc field.
1914 2005-03-11 Roger Sayle <roger@eyesopen.com>
1917 * builtins.c (expand_builtin_signbit): Force the signbit's word
1918 into an integer register to avoid SUBREGs of floating point modes.
1920 2005-03-12 Kazu Hirata <kazu@cs.umass.edu>
1922 * cfglayout.c, loop-doloop.c, profile.c, target-def.h,
1923 target.h, targhooks.c, tracer.c, tree-ssa-loop-ch.c,
1924 tree-ssa-loop-unswitch.c, tree-ssa-loop.c, vec.c, vmsdbgout.c,
1925 config/m32r/m32r.md, config/xtensa/xtensa.h: Update copyright.
1927 2005-03-11 David Edelsohn <edelsohn@gnu.org>
1929 PR rtl-optimization/20306
1930 * expr.c (emit_move_complex): Set try_int false if mode is
1931 MODE_COMPLEX_FLOAT and mov_optab exists for inner mode. Only try
1932 emit_block_move if try_int is true.
1934 2005-03-11 Richard Henderson <rth@redhat.com>
1937 * config/i386/mmx.md (vec_dupv4hi): Fix predicate.
1938 * config/i386/i386.c (ix86_expand_vector_init_duplicate): Update
1941 2005-03-11 Richard Sandiford <rsandifo@redhat.com>
1943 * config/mips/mips.h (mips_fix_vr4130_string): Declare.
1944 (TARGET_FIX_VR4130): New macro.
1945 (TARGET_OPTIONS): Add -mfix-vr4130.
1946 (ISA_HAS_MACCHI): New macro.
1947 (ASM_SPEC): Add -mfix-vr4130.
1948 * config/mips/mips.c (mips_fix_vr4130_string): New variable.
1949 (override_options): Handle mips_fix_vr4130_string.
1950 (mips_avoid_hazards): Clear all_noreorder_p
1951 if we're working around VR4130 errata and the macc alternatives
1953 * config/mips/mips.md (mfhilo_<mode>): Turn into a define_expand.
1954 (*mfhilo_<mode>, *mfhilo_<mode>_macc): New insns.
1955 * config/mips/vr.h (DEFAULT_VR_ARCH): Set to mfix-vr4130.
1956 (MULTILIB_DEFAULTS): Remove leading "march=".
1957 (DRIVER_SELF_SPECS): Likewise. Make -mfix-vr4130 imply -march=vr4130
1958 if no architecture option is given.
1959 * config/mips/t-vr (MULTILIB_OPTIONS): Use -mfix-vr4130 for the
1961 (MULTILIB_MATCHES): Map -march=vr4130 to the -mfix-vr4130 multilibs.
1962 * doc/invoke.texi: Document -mfix-vr4130.
1964 2005-03-11 Richard Sandiford <rsandifo@redhat.com>
1966 * config/mips/mips.c (override_options): Only warn about -mint64
1967 deprecation if TARGET_INT64.
1969 2005-03-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1971 * builtin-attrs.def (ATTR_NONNULL_LIST, ATTR_NOTHROW_NONNULL,
1972 ATTR_CONST_NOTHROW_NONNULL, ATTR_PURE_NOTHROW_NONNULL,
1973 ATTR_MALLOC_NOTHROW_NONNULL): New "nonnull" attribute lists which
1974 are non-specific regarding the nonnull parameter positions.
1975 (ATTR_NONNULL_1_2, ATTR_NONNULL_1_4, ATTR_NOTHROW_NONNULL_1_2,
1976 ATTR_NOTHROW_NONNULL_1_4, ATTR_CONST_NOTHROW_NONNULL_1,
1977 ATTR_PURE_NOTHROW_NONNULL_1, ATTR_PURE_NOTHROW_NONNULL_1_2,
1978 ATTR_MALLOC_NOTHROW_NONNULL_1): Delete.
1980 * builtins.def: Use the non-specific "nonnull" attibute lists.
1982 2005-03-11 Zdenek Dvorak <dvorakz@suse.cz>
1984 * basic-block.h (single_succ_p, single_pred_p, single_succ_edge,
1985 single_pred_edge, single_succ, single_pred): Improve comments.
1987 2005-03-11 Zdenek Dvorak <dvorakz@suse.cz>
1989 * basic-block.h (single_succ_p, single_pred_p, single_succ_edge,
1990 single_pred_edge, single_succ, single_pred): New inline functions.
1991 * bb-reorder.c (rotate_loop, find_traces_1_round,
1992 add_labels_and_missing_jumps, fix_up_fall_thru_edges,
1993 duplicate_computed_gotos): Use the single_succ/pred functions.
1994 * cfganal.c (forwarder_block_p): Ditto.
1995 * cfgbuild.c (compute_outgoing_frequencies): Ditto.
1996 * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
1997 outgoing_edges_match, try_crossjump_to_edge, try_optimize_cfg,
1998 merge_seq_blocks): Ditto.
1999 * cfghooks.c (split_edge, tidy_fallthru_edges): Ditto.
2000 * cfglayout.c (fixup_reorder_chain): Ditto.
2001 * cfgloop.c (mark_single_exit_loops, update_latch_info,
2002 canonicalize_loop_headers, verify_loop_structure): Ditto.
2003 * cfgloopmanip.c (remove_path, unloop, loop_delete_branch_edge,
2004 mfb_update_loops, create_preheader, force_single_succ_latches,
2005 create_loop_notes): Ditto.
2006 * cfgrtl.c (rtl_can_merge_blocks, try_redirect_by_replacing_jump,
2007 force_nonfallthru_and_redirect, rtl_tidy_fallthru_edge,
2008 commit_one_edge_insertion, purge_dead_edges,
2009 cfg_layout_can_merge_blocks_p): Ditto.
2010 * except.c (sjlj_emit_function_enter): Ditto.
2011 * flow.c (init_propagate_block_info): Ditto.
2012 * function.c (thread_prologue_and_epilogue_insns): Ditto.
2013 * gcse.c (find_implicit_sets, bypass_conditional_jumps,
2014 insert_insn_end_bb): Ditto.
2015 * ifcvt.c (merge_if_block, find_if_block, find_if_case_1,
2016 find_if_case_2): Ditto.
2017 * lambda-code.c (perfect_nestify): Ditto.
2018 * lcm.c (optimize_mode_switching): Ditto.
2019 * loop-doloop.c (doloop_modify): Ditto.
2020 * loop-init.c (loop_optimizer_init): Ditto.
2021 * loop-iv.c (simplify_using_initial_values): Ditto.
2022 * loop-unroll.c (unroll_loop_runtime_iterations): Ditto.
2023 * loop-unswitch.c (unswitch_loop): Ditto.
2024 * modulo-sched.c (generate_prolog_epilog): Ditto.
2025 * predict.c (combine_predictions_for_insn, estimate_probability,
2026 tree_estimate_probability, last_basic_block_p,
2027 estimate_bb_frequencies): Ditto.
2028 * profile.c (branch_prob): Ditto.
2029 * regrename.c (copyprop_hardreg_forward): Ditto.
2030 * sched-rgn.c (is_cfg_nonregular, find_rgns, update_live): Ditto.
2031 * tracer.c (layout_superblocks): Ditto.
2032 * tree-cfg.c (tree_can_merge_blocks_p, tree_merge_blocks,
2033 cfg_remove_useless_stmts_bb, cleanup_control_flow,
2034 cleanup_control_expr_graph, disband_implicit_edges,
2035 tree_find_edge_insert_loc, bsi_commit_edge_inserts,
2036 tree_verify_flow_info, tree_make_forwarder_block,
2037 tree_forwarder_block_p, remove_forwarder_block,
2038 remove_forwarder_block_with_phi, merge_phi_nodes): Ditto.
2039 * tree-if-conv.c (tree_if_conversion): Ditto.
2040 * tree-mudflap.c (mf_build_check_statement_for): Ditto.
2041 * tree-ssa-dce.c (remove_dead_stmt): Ditto.
2042 * tree-ssa-dom.c (dom_opt_finalize_block): Ditto.
2043 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p,
2044 copy_loop_headers): Ditto.
2045 * tree-ssa-loop-im.c (loop_commit_inserts): Ditto.
2046 * tree-ssa-loop-ivopts.c (compute_phi_arg_on_exit): Ditto.
2047 * tree-ssa-loop-manip.c (split_loop_exit_edge, ip_normal_pos,
2048 lv_adjust_loop_entry_edge, tree_ssa_loop_version): Ditto.
2049 * tree-ssa-loop-niter.c (simplify_using_initial_conditions): Ditto.
2050 * tree-ssa-loop-unswitch.c (simplify_using_entry_checks): Ditto.
2051 * tree-ssa-phiopt.c (tree_ssa_phiopt, value_replacement): Ditto.
2052 * tree-ssa-pre.c (compute_antic_aux, insert_aux, init_pre): Ditto.
2053 * tree-ssa-threadupdate.c (redirect_edges): Ditto.
2054 * tree-tailcall.c (independent_of_stmt_p, find_tail_calls,
2055 eliminate_tail_call, tree_optimize_tail_calls_1): Ditto.
2056 * tree-vect-analyze.c (vect_analyze_loop_form): Ditto.
2057 * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Ditto.
2058 * tree-vectorizer.c (slpeel_update_phi_nodes_for_guard,
2059 slpeel_add_loop_guard): Ditto.
2061 2005-03-11 James A. Morrison <phython@gcc.gnu.org>
2063 PR tree-optimization/15784
2064 * fold-const.c (fold): Fold ~A + 1 to -A. Fold -A - 1
2067 * stmt.c (expand_case): Don't change index_type. Convert minval
2070 PR tree-optimization/20130
2071 * fold-const.c (fold): Fold x * -1 into -x.
2073 2005-03-11 Kaz Kojima <kkojima@gcc.gnu.org>
2075 PR rtl-optimization/20331
2076 * rtlanal.c (modified_between_p): Check its address first for MEM.
2077 (modified_in_p): Likewise.
2079 2005-03-11 Joseph S. Myers <joseph@codesourcery.com>
2081 * config.gcc (hppa*64*-*-hpux11*): Use pa/t-hpux-shlib.
2083 2005-03-10 Steven Bosscher <stevenb@suse.de>
2085 * expr.c (expand_expr_real_1): If possible, use a conditional
2086 move for expanding MIN_EXPR and MAX_EXPR.
2087 Use temp for moving around rtx-en.
2089 2005-03-10 Andrew Pinski <pinskia@physics.uc.edu>
2092 * simplify-rtx.c (simplify_relational_operation_1): Fix typo - check the
2095 2005-03-10 Roger Sayle <roger@eyesopen.com>
2097 * builtins.c (expand_builtin_signbit): Extend to handle floating
2098 point modes wider than the largest integer type, using the
2099 operand_subword_force function to obtain the signbit's word.
2101 2005-03-10 Jakub Jelinek <jakub@redhat.com>
2104 * combine.c (try_combine): If recog_for_combine added CLOBBERs
2105 to NEWI2PAT, fail to combine if they are used by NEWPAT.
2107 2005-03-10 Aldy Hernandez <aldyh@redhat.com>
2109 * doc/invoke.texi: Add 8540 to list of cpus in rs6000 cpu section.
2111 2005-03-10 Kazu Hirata <kazu@cs.umass.edu>
2113 * tree-outof-ssa.c (analyze_edges_for_bb): Make the return
2115 (perform_edge_inserts): Unconditionally call
2116 free_dominator_info.
2118 * tree-outof-ssa.c (analyze_edges_for_bb): Update a comment.
2120 2005-03-10 Bob Wilson <bob.wilson@acm.org>
2122 * config/xtensa/xtensa.h (MEMBER_TYPE_FORCES_BLK): Define.
2124 2005-03-10 Nathan Sidwell <nathan@codesourcery.com>
2126 * bitmap.c (bitmap_copy): Remove manual loop unrolling.
2128 * value-prof.c (rtl_find_values_to_profile): Use gcc_assert and
2130 (rtl_register_value_prof_hooks,
2131 tree_value_profile_transformations,
2132 tree_register_value_prof_hooks): Likewise.
2133 * var-tracking.c (stack_adjust_offset_pre_post,
2134 variable_htab_free, variable_union, dataflow_set_different_2,
2135 count_uses, variable_was_changed, set_frame_base_location,
2136 set_variable_part, emit_note_insn_var_location, vt_emit_notes,
2137 vt_add_function_parameters): Likewise.
2138 * varasm.c (named_section_real, named_section, make_decl_rtl,
2139 asm_emit_uninitialised, assemble_integer, decode_addr_const,
2140 const_hash_1, compare_constant, copy_constant, force_const_mem,
2141 output_constant_pool_2, output_constant_pool_1, output_constant,
2142 output_constructor, make_decl_one_only, decl_tls_model,
2143 default_no_named_section, default_elf_select_section_1,
2144 default_unique_section_1): Likewise.
2145 * vec.c (vec_gc_o_reserve, vec_heap_o_reserve): Likewise.
2146 * vmsdbgout.c (addr_const_to_string): Likewise.
2149 * function.c (struct assign_parm_data_one): Remove last_named
2151 (assign_parm_find_data_types): Don't determine last_named.
2152 Reorder named_parm determination.
2153 (assign_parms): Only setup varargs on the last non-varadic
2156 2005-03-10 Kazuhiro Inaoka <inaoka.lazuhiro@renesas.com>
2158 * config/m32r/m32r.md (load_sda_base_32): New pattern. Loads
2159 sda base address on medium model.
2161 2005-03-10 Zdenek Dvorak <dvorakz@suse.cz>
2163 * Makefile.in (tree-optimize.o): Add CFGLOOP_H dependence.
2164 * cfgloop.c (flow_loop_nodes_find): Export.
2165 * cfgloop.h (flow_loop_nodes_find, fix_loop_structure):
2167 * cfgloopmanip.c (fix_loop_structure): New function.
2168 * predict.c (predict_loops): Clean up the loops information.
2169 * tree-cfg.c (cleanup_tree_cfg_loop): New function.
2170 (tree_can_merge_blocks_p, remove_bb, tree_forwarder_block_p): Respect
2172 * tree-flow.h (cleanup_tree_cfg_loop): Declare.
2173 (rewrite_into_loop_closed_ssa): Declaration changed.
2174 * tree-loop-linear.c (linear_transform_loops): Add argument to
2175 rewrite_into_loop_closed_ssa call.
2176 * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
2177 * tree-ssa-loop-im.c (move_computations): Ditto.
2178 * tree-ssa-loop.c (tree_loop_optimizer_init): Ditto.
2179 * tree-vectorizer.c (vectorize_loops): Ditto.
2180 * tree-optimize.c: Include cfgloop.h.
2181 (execute_todo): Choose whether to call cleanup_tree_cfg or
2182 cleanup_tree_cfg_loop.
2183 * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables,
2184 (tree_unroll_loops_completely): Enable cleanup_tree_cfg_loop call.
2185 * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Enable
2186 cleanup_tree_cfg_loop call.
2187 * tree-ssa-loop-manip.c (find_uses_to_rename_bb): New function.
2188 (find_uses_to_rename, rewrite_into_loop_closed_ssa): Support
2189 work on part of cfg.
2191 2005-03-10 Jakub Jelinek <jakub@redhat.com>
2194 * gimplify.c (gimplify_asm_expr): Handle input/output constraints
2195 with multiple alternatives.
2197 * stmt.c (parse_output_constraint): Fix a typo.
2199 2005-03-09 Bob Wilson <bob.wilson@acm.org>
2201 * config/xtensa/xtensa.h (TRAMPOLINE_TEMPLATE): Use "no-transform"
2202 assembly directive instead of deprecated "no-generics".
2204 2005-03-09 Ulrich Weigand <uweigand@de.ibm.com>
2206 * config/s390/s390.c (s390_secondary_output_reload_class): Adapt check
2207 for non-offsettable memory references to cope with outstanding reload
2209 * config/s390/s390.md ("reload_outti"): Call find_replacement to
2210 avoid losing outstanding address reloads.
2211 ("reload_outdi", "reload_outdf"): Likewise.
2213 2005-03-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2215 * builtins.c (fold_builtin_cbrt, fold_builtin_pow): Rearrange
2216 code. Add more cbrt transformations.
2218 2005-03-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2220 * fold-const.c (fold_unary_to_constant): Add FIX_ROUND_EXPR case.
2222 2005-03-09 Kazu Hirata <kazu@cs.umass.edu>
2224 * fold-const.c (fold_unary, fold_binary, fold_ternary): Return
2225 NULL_TREE when a given tree is not simplified.
2226 (fold): Return the original tree when any of the functions
2227 mentioned above NULL_TREE.
2229 * fold-const.c (fold_unary, fold_binary): Take decomposed
2230 arguments, code, type, op0, and op1 in case of fold_binary.
2231 (fold): Update calls to fold_unary and fold_binary.
2233 2005-03-09 Roger Sayle <roger@eyesopen.com>
2235 * builtins.c (fold_builtin_unordered_cmp): Change prototype to take
2236 a fndecl and an arglist instead of a CALL_EXPR, exp.
2238 2005-03-09 Kazu Hirata <kazu@cs.umass.edu>
2240 * cfglayout.c (fixup_reorder_chain): Remove old_bb.
2242 * cfgrtl.c (cfg_layout_merge_blocks): Remove new_e.
2244 * expr.c (expand_assignment): Remove orig_to_rtx.
2246 * fold-const.c (int_const_binop): Remove no_overflow.
2248 * ifcvt.c (noce_emit_move_insn): Remove inmode.
2250 * loop-iv.c (get_biv_step_1): Remove lhs.
2252 * loop-unroll.c (analyze_insns_in_loop): Remove preheader.
2254 * real.c (real_nan): Remove neg.
2256 * function.c (thread_prologue_and_epilogue_insns): Remove i
2259 * tree-data-ref.c (array_base_name_differ_p): Remove ta and
2262 * tree-eh.c (tree_could_trap_p): Remove idx.
2264 * tree-into-ssa.c (ann): Remove ann.
2266 * tree-outof-ssa.c (num_nodes): Remove num_nodes.
2268 * tree-sra.c (decide_block_copy): Remove inst_count.
2270 * tree-ssa-alias.c (may_alias_p): Remove v_ann.
2272 * tree-ssa-loop-im.c (lhs): Remove.
2274 * cfgbuild.c (state, STATE, SET_STATE,
2275 BLOCK_USED_BY_TABLEJUMP, FULL_STATE): Move just before
2277 (make_edges): Speed up by skipping blocks with BLOCK_ORIGINAL.
2278 (find_basic_blocks): Set the state of each basic block to
2281 2005-03-08 Jeff Law <law@redhat.com>
2283 * tree-cfg.c (cleanup_control_flow): If removal of a computed
2284 goto results in the removal of edges in the CFG, then we need
2285 to recompute dominators.
2287 2005-03-09 Ben Elliston <bje@au.ibm.com>
2289 * c-common.c (c_do_switch_warnings): Comment fix.
2291 2005-03-08 Julian Brown <julian@codesourcery.com>
2293 * Patch from 2005-03-08 reverted for causing regressions and
2294 ppc-darwin bootstrap failure.
2296 2005-03-08 Fariborz Jahanian <fjahanian@apple.com>
2298 * config/rs6000/rs6000.c (invalid_arg_for_unprototyped_fn):
2299 Define the real function for ppc-darwin.
2300 * c-typeck.c (convert_arguments): Check for target-specific
2301 invalid argument call to unprototyped function.
2302 * target-def.h (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
2304 * target.h (invalid_arg_for_unprototyped_fn): New field
2306 * targhooks.c (hook_invalid_arg_for_unprototyped_fn): New
2307 default target hook.
2308 * targhooks.h (hook_invalid_arg_for_unprototyped_fn):
2311 2005-03-08 Kazu Hirata <kazu@cs.umass.edu>
2313 * c-typeck.c (constructor_stack, constructor_range_stack,
2314 initializer_stack): Make them static.
2316 * cfg.c (rbi_pool): Make it static.
2318 * gimple-low.c (lower_stmt_body): Make it static.
2319 * tree-flow.h: Remove the corresponding prototype. Don't
2322 * sched-deps.c (cache_size): Make it static.
2324 * stor-layout.c (lang_adjust_rli): Make it static.
2326 2005-03-08 Julian Brown <julian@codesourcery.com>
2328 * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK
2329 from being used for symbols with vague linkage when
2330 HAVE_GAS_COMDAT_GROUP is true.
2332 2005-03-08 J"orn Rennecke <joern.rennecke@st.com>
2334 * jump.c (invert_jump_1): Don't call redirect_jump_1 with
2335 nlabel == JUMP_LABEL (jump).
2337 2005-03-08 Kazu Hirata <kazu@cs.umass.edu>
2339 * c-common.c, c-opts.c, combine.c, cse.c, dojump.c,
2340 gimplify.c, tree-dfa.c, tree-ssa-loop-ivopts.c,
2341 tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-sink.c,
2342 tree-vect-analyze.c, tree.def, tree.h: Fix comment formatting.
2344 2005-03-08 Alexey Neyman <alex.neyman@auriga.ru>
2347 * calls.c (flags_from_decl_or_type): Handle eturns_twice' attribute.
2348 * c-common.c (handle_returns_twice): New function.
2349 (c_common_attribute_table): Declare eturns_twice' attribute.
2350 * doc/extend.texi: Document eturns_twice' attribute.
2351 * tree.h (DECL_IS_RETURNS_TWICE): New macro.
2352 (struct tree_decl): Add returns_twice_flag.
2354 2005-03-08 Kazu Hirata <kazu@cs.umass.edu>
2356 * tree-ssa-phiopt.c: Fix a comment typo.
2358 * c-semantics.c, cfghooks.c, diagnostic.h, loop-iv.c,
2359 loop-unswitch.c, modulo-sched.c, stor-layout.c, tree-gimple.h,
2360 config/i386/cygwin1.c, doc/cfg.texi, doc/objc.texi: Update
2363 2005-03-08 Richard Henderson <rth@redhat.com>
2365 * config/alpha/alpha.c (code_for_builtin): Replace special-case
2366 builtin codes with ctzdi2, clzdi2, popcountdi2.
2367 (struct alpha_builtin_def): Add is_const.
2368 (zero_arg_builtins, one_arg_builtins, two_arg_builtins): Init it.
2369 (alpha_v8qi_u, alpha_v8qi_s, alpha_v4hi_u, alpha_v4hi_s): New.
2370 (alpha_init_builtins): Init them. Set nothrow and const attributes
2372 (alpha_fold_builtin_cmpbge, alpha_fold_builtin_zapnot,
2373 alpha_fold_builtin_extxx, alpha_fold_builtin_insxx,
2374 alpha_fold_builtin_mskxx, alpha_fold_builtin_umulh,
2375 alpha_fold_vector_minmax, alpha_fold_builtin_perr,
2376 alpha_fold_builtin_pklb, alpha_fold_builtin_pkwb,
2377 alpha_fold_builtin_unpkbl, alpha_fold_builtin_unpkbw,
2378 alpha_fold_builtin_cttz, alpha_fold_builtin_ctlz,
2379 alpha_fold_builtin_ctpop, alpha_fold_builtin): New.
2380 (TARGET_FOLD_BUILTIN): New.
2381 * config/alpha/alpha.md (UNSPEC_CTTZ): Remove.
2382 (UNSPEC_CTLZ, UNSPEC_CTPOP): Remove.
2384 (cttz, builtin_cttz, builtin_ctlz, builtin_ctpop): Remove.
2386 2005-03-08 Ira Rosen <irar@il.ibm.com>
2388 PR tree-optimization/20122
2389 * tree-vect-analyze.c (vect_object_analysis): Analyze initial
2390 condition of access function instead of base.
2392 2005-03-07 Jeff Law <law@redhat.com>
2393 Steven Bosscher <stevenb@suse.de>
2395 * tree-cfg.c (find_taken_edge_computed_goto): New function.
2396 (find_taken_edge): Call find_taken_edge_computed_goto as
2397 appropriate. Allow any gimple invariant rather than just
2398 INTEGER_CST for VAL.
2399 (cleanup_control_flow): Cleanup a computed goto which has turned
2401 (tree_merge_blocks): If block B has any forced labels, move
2402 them to the start of block A.
2403 * tree-ssa-dom.c (thread_across_edge): Allow threading across
2404 computed gotos as well.
2405 * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Handle
2406 removal of unnecessary computed gotos too.
2407 (lookup_redirection_data): Fix type of INSERT argument. Callers
2410 2005-03-08 Kazu Hirata <kazu@cs.umass.edu>
2412 * tree-ssa-phiopt.c: Update copyright. Fix indentations.
2413 Remove trailing spaces.
2415 * gimplify.c (gimple_push_bind_expr, gimple_pop_bind_expr,
2416 unshare_all_trees): Make them static.
2417 * tree-gimple.h: Remove the corresponding prototypes.
2419 * diagnostic.h: Remove unused prototype
2420 debug_output_buffer.
2421 * modulo-sched.c: Remove unused prototype
2422 set_row_column_for_ps.
2424 * tree-ssa-phiopt.c (tree_ssa_phiopt,
2425 replace_phi_edge_with_variable): Remove unused variable i.
2427 2005-03-07 Per Bothner <per@bothner.com>
2429 * tree.h (DECL_IS_BUILTIN): Reverted my patch from earlier today.
2431 2005-03-06 Andrew Pinski <pinskia@physics.uc.edu>
2434 * tree-ssa-phiopt.c (tree_ssa_phiopt): Rewrite so we base the
2435 bbs on the COND_EXPR instead of the PHI_NODEs.
2436 (candidate_bb_for_phi_optimization): Remove.
2437 (replace_phi_with_stmt): Rename to ...
2438 (replace_phi_edge_with_variable): this and change so that we
2439 replace the phi argument instead of removing the PHI.
2440 (conditional_replacement): Change so we deal with PHI with more
2442 (value_replacement): Likewise.
2443 (abs_replacement): Likewise.
2445 2005-03-07 Aldy Hernandez <aldyh@redhat.com>
2447 * config/rs6000/rs6000-protos.h: Rename output_e500_flip_eq_bit to
2448 output_e500_flip_gt_bit.
2450 * config/rs6000/rs6000.c (print_operand): case D: Print out bit 31
2452 (rs6000_generate_compare): Fix logic to look at the correct bits.
2453 (output_e500_flip_eq_bit): Rename to output_e500_flip_gt_bit.
2455 (rs6000_emit_sCOND): Rename gen_e500_flip_eq_bit to
2456 gen_e500_flip_gt_bit. Rename gen_move_from_CR_eq_bit to
2457 gen_move_from_CR_gt_bit.
2459 * config/rs6000/rs6000.md ("move_from_CR_eq_bit"): Change bit
2460 ("move_from_CR_eq_bit"): Rename to move_from_CR_gt_bit.
2461 (UNSPEC_MV_CR_EQ): Rename to UNSPEC_MV_CR_GT.
2463 * config/rs6000/spe.md ("e500_cr_ior_compare"): New.
2464 (E500_CR_IOR_COMPARE): New constant.
2466 2005-03-08 Earl Chew <earl_chew@agilent.com>
2467 David Billinghurst <David.Billinghurst@riotinto.com>
2469 * config/i386/host-cygwin.c: New file to support precompiled
2471 * config/i386/x-cygwin: Use host-cygwin.c on cygwin host
2472 * config.host: Use above files for cygwin host.
2474 2005-03-07 David Edelsohn <edelsohn@gnu.org>
2476 * fold-const.c (fold_binary_op_with_conditional_arg): Fix typo
2477 ordering ops from earlier change.
2479 2005-03-07 Per Bothner <per@bothner.com>
2481 Various fixes to allow us to again build if --enable-mapped-location:
2482 * c-decl.c (finish_function): Use SET_EXPR_LOCATION instead of
2483 unavailable annotate_with_file_line, if USE_MAPPED_LOCATION.
2484 * tree-cfg.c (remove_bb): If USE_MAPPED_LOCATION, change type of
2485 local variable loc. Change logic appropriately.
2486 * tree-vect-transform.c (vect_finish_stmt_generation): Use
2487 EXPR_LOCATION rather than EXPR_LOCUS if USE_MAPPED_LOCATION.
2488 * c-parser.c (c_parser_for_statement): Initialize loc variable.
2489 * tree.h (DECL_IS_BUILTIN): Temporarily revert definition of
2490 DECL_IS_BUILTIN in the USE_MAPPED_LOCATION because of jc1 issues.
2492 2005-03-07 Richard Sandiford <rsandifo@redhat.com>
2494 PR rtl-optimization/19683
2495 * reload1.c (choose_reload_regs): Pass the number of bits, not the
2496 number of bytes, to smallest_int_for_mode. Fix arguments to
2497 REG_CANNOT_CHANGE_MODE_P.
2499 2005-03-07 Eric Botcazou <ebotcazou@libertysurf.fr>
2501 * reorg.c (relax_delay_slots): Check that the jump is
2502 conditional before trying to invert it.
2504 2005-03-07 Kazu Hirata <kazu@cs.umass.edu>
2506 * bb-reorder.c (max_entry_frequency, max_entry_frequency):
2509 * calls (stack_arg_under_construction): Make it static.
2511 * flow.c (regs_live_at_setjmp): Make it static.
2512 * flow.h: Remove the corresponding prototype.
2514 * reload1.c (reload_startobj, reload_firstobj,
2515 something_needs_operands_changed, reload_inherited,
2516 reload_inheritance_insn, reload_override_in,
2517 reload_spill_index): Make them static.
2519 * recog.c (verify_changes): Make it static.
2520 * recog.h: Remove the corresponding prototype.
2522 * cfgbuild.c (find_sub_basic_blocks): Remove.
2523 * basic-block.h: Remove the corresponding prototype.
2524 * cfgexpand.c, cfgrtl.c: Don't mention find_sub_basic_blocks
2526 * doc/cfg.texi: Don't mention find_sub_basic_blocks.
2528 * tree-ssa-operands.c (check_build_stmt): Remove.
2530 * stor-layout.c (set_alignment): Remove.
2531 * tree.h: Remove the corresponding prototype.
2533 * tree-ssa-pre.c (has_abnormal_preds): Make it static.
2535 * tree-ssa-dce.c (control_dependence_map,
2536 visited_control_parents): Make them static.
2538 * cfghooks.c (verify_flow_info): Remove local variable
2541 * cfgrtl.c (rtl_verify_flow_info_1): Remove local variable
2544 * loop-unswitch.c (unswitch_loop): Remove local variable src.
2546 2005-03-07 David Billinghurst <David.Billinghurst@riotinto.com>
2548 * config/i386/cygwin1.c(mingw_scan): Use xstrdup in calls to putenv.
2550 2005-03-07 Joseph S. Myers <joseph@codesourcery.com>
2552 * config/ia64/hpux.h (LINK_SPEC): Add -z.
2553 * config/ia64/ia64.c (ia64_function_value): Return a REG not a
2554 PARALLEL for an empty structure.
2556 2005-03-07 Kazu Hirata <kazu@cs.umass.edu>
2558 * fold-const.c (fold_binary): Remove handling of RANGE_EXPR.
2560 * fold-const.c (fold_binary): Unroll the very first "for"
2563 2005-03-06 David Edelsohn <edelsohn@gnu.org>
2565 * config/rs6000/predicates.md (branch_comparison_operator): Remove
2566 redundant match_code test.
2567 (scc_comparison_operator): Swap match_operand and match_code
2569 (branch_positive_comparison_operator): Same.
2570 (trap_comparison_operator): Use comparison_operator and swap with
2573 2005-03-06 Marek Michalkiewicz <marekm@amelek.gda.pl>
2576 * config/avr/avr.c (print_operand): Add 'p' and 'r'.
2577 (out_movhi_r_mr): Read low byte of volatile MEM first.
2578 (out_movhi_mr_r): Write high byte of volatile MEM first.
2580 2005-03-05 Kazu Hirata <kazu@cs.umass.edu>
2582 * cselib.c (reg_values, reg_values_size): Make them static.
2584 * cse.c (cse_reg_info_table): Make it static.
2586 * fold-const.c (fold_unary): Use build1 instead of copy_node.
2588 2005-03-06 Zdenek Dvorak <dvorakz@suse.cz>
2590 * cse.c (find_best_addr): Use canon_for_address.
2592 2005-03-06 Kazu Hirata <kazu@cs.umass.edu>
2594 * cse.c (fold_rtx_subreg, fold_rtx_mem): New.
2595 (fold_rtx): Call fold_rtx_subreg and fold_rtx_mem to handle
2596 SUBREG and MEM, respectively.
2598 * fold-const.c (fold_binary): Use code instead of t.
2600 * fold-const.c (optimize_minmax_comparison): Take decomposed
2601 arguments code, type, op0, and op1 instead of t.
2602 (fold_binary): Update a call to optimize_minmax_comparison.
2604 * fold-const.c (fold_range_test): Take decomposed arguments
2605 code, type, op0, and op1 instead of t.
2606 (fold_binary): Update a call to fold_range_test.
2608 * fold-const.c (fold_binary_op_with_conditional_arg): Take
2609 decomposed arguments code, type, op0, and op1 instead of t.
2610 (fold_binary): Update a call to fold_range_test.
2612 2005-03-06 Kazu Hirata <kazu@cs.umass.edu>
2614 * fold-const.c (fold_binary): Avoid directly using the original
2615 expression t as much as possible.
2617 2005-03-05 Kazu Hirata <kazu@cs.umass.edu>
2619 * c-semantics.c (build_stmt): Use TYPE_P instead of
2620 IS_NON_TYPE_CODE_CLASS.
2621 * tree.h (IS_NON_TYPE_CODE_CLASS): Remove.
2622 (NON_TYPE_CHECK): Use TYPE_P instead of
2623 IS_NON_TYPE_CODE_CLASS.
2625 * fold-const.c (fold): Remove handling of binary expressions.
2627 2005-03-05 James A. Morrison <phython@gcc.gnu.org>
2629 * doc/c-tree.texi: Wrap comments in @r{}.
2630 * doc/cpp.texi: Likewise.
2631 * doc/cppinternals.texi: Likewise.
2632 * doc/extend.texi: Likewise.
2633 * doc/md.texi: Likewise.
2634 * doc/objc.texi: Likewise.
2635 * doc/sourcebuild.texi: Likewise.
2636 * doc/tm.texi: Likewise.
2639 2005-03-05 Kazu Hirata <kazu@cs.umass.edu>
2641 * predict.c (apply_return_prediction): Standardize PHI chain
2643 * tree-ssa.c (ssa_redirect_edge): Likewise.
2645 * genattrtab.c, genemit.c, genoutput.c, genrecog.c,
2646 gensupport.c, jump.c, tree-phinodes.c, unwind-dw2-fde-glibc.c:
2649 * tree-phinodes.c (remove_phi_node): Drop the last argument.
2650 * tree-flow.h: Adjust the prototype for remove_phi_node.
2651 * lambda-code.c (perfect_nestify): Adjust a call to
2654 (remove_phi_nodes_and_edges_for_unreachable_block): Likewise.
2655 * tree-outof-ssa.c (eliminate_virtual_phis, remove_ssa_form):
2657 * tree-ssa-dce.c (remove_dead_phis): Likewise.
2658 * tree-ssa-loop-ivopts.c (remove_statement): Likewise.
2659 * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
2660 * tree-ssa.c (kill_redundant_phi_nodes): Likewise.
2662 * combine.c (simplify_and_const_int): Use gen_int_mode instead
2663 of GEN_INT (trunc_int_for_mode (...)).
2664 * loop-iv.c (iv_number_of_iterations): Likewise.
2665 * postreload.c (reload_cse_move2add): Likewise.
2666 * simplify-rtx.c (simplify_const_unary_operation,
2667 simplify_const_binary_operation): Likewise.
2668 * stor-layout.c (get_mode_bounds): Likewise.
2670 * fold-const.c (fold_binary): New.
2671 (fold): Call fold_binary on binary expressions.
2673 2005-03-05 Richard Sandiford <rsandifo@redhat.com>
2675 * doc/invoke.texi: Document new MIPS -msym32 and -mno-sym32 options.
2676 * config/mips/mips.h (MASK_SYM32, TARGET_SYM32): New macros.
2677 (TARGET_SWITCHES): Add -msym32 and -mno-sym32.
2678 (ABI_HAS_64BIT_SYMBOLS): Set to false if TARGET_SYM32.
2679 (ASM_SPEC): Pass down -msym32 and -mno-sym32.
2681 2005-03-04 Devang Patel <dpatel@apple.com>
2683 PR tree-optimization/18815
2684 * tree-if-conv.c (combine_blocks): Adjust loop header edges for
2685 loops with zero exit edges.
2687 2005-03-04 Devang Patel <dpatel@apple.com>
2689 * doc/invoke.texi: Remove reference to webpage that does not exist.
2691 2005-03-04 John David Anglin <dave.danglin@nrc-cnrc.gc.ca>
2692 Joseph S. Myers <joseph@codesourcery.com>
2695 * pa/elf.h, pa64-hpux.h, som.h (ASM_OUTPUT_EXTERNAL_REAL): Define.
2696 (ASM_OUTPUT_EXTERNAL): Call pa_hpux_asm_output_external.
2697 * pa-protos.h (pa_hpux_asm_output_external): Add prototype.
2698 * pa.c (get_plabel): Change argument to symbol_ref. Call
2699 maybe_get_identifier instead of get_identifier.
2700 (pa_hpux_asm_output_external, pa_hpux_file_end): New functions.
2701 (struct deferred_plabel): Replace name field with symbol field.
2702 (TARGET_ASM_FILE_END): Define as pa_hpux_file_end if
2703 ASM_OUTPUT_EXTERNAL_REAL is defined.
2704 (output_global_address): Use output_addr_const for output of all
2706 (output_deferred_plabels): Use symbol_ref instead of name for address
2708 * pa.h (SYMBOL_FLAG_REFERENCED, SYMBOL_REF_REFERENCED_P,
2709 ASM_OUTPUT_SYMBOL_REF): New macros.
2710 * som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Use assemble_name_raw. Update
2712 (ASM_WEAKEN_LABEL): Use targetm.asm_out.globalize_label to globalize
2715 2005-03-05 Joseph S. Myers <joseph@codesourcery.com>
2717 * config.gcc (hppa*64*-*-hpux11*): Use pa/pa-hpux1111.h for
2718 *-*-hpux11.[1-9]*, not just for *-*-hpux11.11.
2720 2005-03-04 Jeff Law <law@redhat.com>
2722 * basic-block.h (rediscover_loops_after_threading): Declare.
2723 * tree-ssa-dom.c: Include cfgloop.h.
2724 (tree_ssa_dominator_optimize): Discover loops and some basic
2725 properties. Remove forwarder blocks recreated by loop header
2726 canonicalization. Also mark backedges in the CFG.
2727 * tree-ssa-threadupdate.c: Include cfgloop.h
2728 (rediscover_loops_after_threading): Define.
2729 (struct local_info): New field, JUMP_THREADED.
2730 (prune_undesirable_thread_requests): New function.
2731 (redirect_edges): Clear EDGE_ABNORMAL. If edges were threaded
2732 then record that fact for the callers of redirct_edges.
2733 (thread_block): If BB has incoming backedges, then call
2734 prune_undesirable_thraed_requests. Note when we are
2735 going to have to rediscover loop information. Return a
2736 boolean indicating if any jumps were threaded.
2737 (thread_through_all_blocks): Bubble up boolean indicating
2738 if any jumps were threaded.
2739 * Makefile.in (tree-ssa-dom.o): Depend on cfgloop.h
2740 (tree-ssa-threadupdate.o): Similarly.
2742 2005-03-04 Kazu Hirata <kazu@cs.umass.edu>
2744 * fold-const.c (fold_ternary): Unroll the "for" loop to
2747 2005-03-04 Andrew Haley <aph@redhat.com>
2749 * unwind-dw2-fde-glibc.c (struct
2750 unw_eh_callback_data.check_cache): New field.
2751 (frame_hdr_cache): New.
2752 (_Unwind_IteratePhdrCallback): Add ext_dl_phdr_info.
2753 Cache frame header info.
2755 2005-03-04 Richard Sandiford <rsandifo@redhat.com>
2757 * rtl.h (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
2758 (print_c_condition): Declare.
2759 * read-rtl.c (ptr_loc): New structure.
2760 (ptr_locs, ptr_loc_obstack, joined_conditions)
2761 (joined_conditions_obstack): New variables.
2762 (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc)
2763 (get_rtx_ptr_loc, copy_rtx_ptr_loc, print_rtx_ptr_loc)
2764 (join_c_conditions, print_c_condition): New functions.
2765 (apply_macro_to_string): Associate the new string with the same
2766 source location as the old one.
2767 (add_condition_to_string): Use join_c_conditions.
2768 (read_string): Use set_rtx_ptr_loc to record a filename and line
2769 number for the string.
2770 (read_rtx): Initialize the new variables above.
2771 * genattrtab.c (write_test_expr, write_attr_value): Use
2773 * genconditions.c (write_header): Don't define MAYBE_EVAL. Move its
2774 comment above the GCC_VERSION check.
2775 (write_one_condition): Use print_rtx_ptr_loc and print_c_condition.
2776 Inline the definition of MAYBE_EVAL.
2777 * genemit.c (gen_expand, gen_split): Use print_rtx_ptr_loc.
2778 * genoutput.c (process_template): Likewise.
2779 * genpreds.c (write_predicate_subfunction): Likewise.
2780 (write_predicate_expr): Use print_c_condition.
2781 * genrecog.c (write_cond): Likewise.
2782 * gensupport.c (process_rtx): Use join_c_conditions to join the
2783 conditions of a define_insn_and_split. Record a source location
2784 for the string after the "&&".
2785 (alter_test_for_insn): Use join_c_conditions.
2787 2005-03-04 Andrew Pinski <pinskia@physics.uc.edu>
2790 2005-03-03 James A. Morrison <phython@gcc.gnu.org>
2791 PR tree-optimization/15784
2792 * fold-const.c (fold): Fold ~A + 1 to -A. Fold -A - 1
2795 2005-03-04 Ben Elliston <bje@au.ibm.com>
2797 * gcc.c (option_map): Add --coverage.
2798 (LINK_COMMAND_SPEC): Pass -lgcov for `coverage'.
2799 (cc1_options): Pass -fprofile-arcs -ftest-coverage for `coverage'.
2800 * config/darwin.h: Pass -lgcov for `coverage'.
2801 * doc/invoke.texi (Debugging Options): Document --coverage.
2803 2005-03-04 Kazu Hirata <kazu@cs.umass.edu>
2805 * gcse.c (bypass_block): Use find_edge wherever possible.
2807 2005-03-03 Daniel Berlin <dberlin@dbrelin.org>
2811 * c-opts.c (c_common_parse_file): Call start_source_file
2812 and end_source_file at the approriate times.
2814 * dwarf2out.c (dwarf2out_finish): Don't auto-end
2815 the main file, it will be done for us now.
2817 2005-03-04 Kazu Hirata <kazu@cs.umass.edu>
2819 * fold-const.c (fold_ternary): New.
2820 (fold): Call fold_ternary on ternary expressions. Remove
2821 handling of ternary expressions.
2823 2005-03-03 James A. Morrison <phython@gcc.gnu.org>
2825 PR tree-optimization/15784
2826 * fold-const.c (fold): Fold ~A + 1 to -A. Fold -A - 1
2829 2005-03-03 David Edelsohn <edelsohn@gnu.org>
2831 * config/rs6000/predicates.md (branch_comparison_operator):
2832 Convert from C block to conditional format.
2834 2005-03-03 Jan Hubicka <jh@suse.cz>
2836 * tree-dfa.c (add_referenced_var): Don't walk initializer of external
2837 and non-constant public variables.
2839 2005-03-03 Kazu Hirata <kazu@cs.umass.edu>
2841 * tree-cfg.c (stmt_starts_bb_p): Clean up by replacing code
2844 * cfgexpand.c (construct_exit_block): Use EDGE_PRED instead of
2847 * tree-phinodes.c (remove_phi_node): Clean up by factoring out
2848 calls to release_ssa_name and release_phi_node.
2850 * fold-const.c (fold): Remove handling of unary expressions.
2852 * fold-const.c (fold_unary): Avoid directly using the original
2853 expression t as much as possible.
2855 2005-03-03 Roger Sayle <roger@eyesopen.com>
2856 Andrew Pinski <pinskia@physics.uc.edu>
2858 * jump.c (redirect_exp_1): If nlabel is a NULL pointer create a
2859 RETURN rtx, and not a LABEL_REF containing a NULL pointer.
2861 2005-03-03 Hans-Peter Nilsson <hp@axis.com>
2863 Describe special registers SRP and MOF as allocatable registers.
2864 * config/cris/cris.c (cris_md_asm_clobbers): New function.
2865 (TARGET_MD_ASM_CLOBBERS): Define to cris_md_asm_clobbers.
2866 (cris_conditional_register_usage): Enable CRIS_MOF_REGNUM if
2867 TARGET_HAS_MUL_INSNS.
2868 (cris_print_operand) <case 'd'>: New case.
2869 <case REG>: Allow CRIS_MOF_REGNUM and CRIS_SRP_REGNUM.
2870 * config/cris/cris.h (CRIS_PC_REGNUM, CRIS_SRP_REGNUM): Don't
2872 (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS)
2873 (REG_ALLOC_ORDER): Update for MOF.
2874 (enum reg_class): New members MOF_REGS, GENERAL_REGS and
2876 (GENERAL_REGS): No longer a define of ALL_REGS.
2877 (REGNO_REG_CLASS, REG_CLASS_CONTENTS, REG_CLASS_NAMES)
2878 (PREFERRED_RELOAD_CLASS, REGISTER_NAMES, DBX_REGISTER_NUMBER):
2880 (CRIS_SPECIAL_REGS_CONTENTS): New macro.
2881 (REG_CLASS_FROM_LETTER): Allocate 'h' and 'x'.
2882 (SECONDARY_RELOAD_CLASS): Define.
2883 (STACK_POINTER_REGNUM): Define as CRIS_SP_REGNUM.
2884 (FRAME_POINTER_REGNUM): Define as CRIS_FP_REGNUM.
2885 (ARG_POINTER_REGNUM): Define as CRIS_AP_REGNUM.
2886 (STATIC_CHAIN_REGNUM): Define as CRIS_STATIC_CHAIN_REGNUM.
2887 (REGISTER_MOVE_COST): Define.
2888 (PIC_OFFSET_TABLE_REGNUM): Define in terms of CRIS_GOT_REGNUM.
2889 * config/cris/cris.md (CRIS_GOT_REGNUM, CRIS_STATIC_CHAIN_REGNUM)
2890 (CRIS_FP_REGNUM, CRIS_SP_REGNUM, CRIS_SRP_REGNUM, CRIS_AP_REGNUM)
2891 (CRIS_MOF_REGNUM): New define_constants.
2892 ("*movsi_internal", "movhi", "movqi", "movsf"): Add alternatives for
2894 ("reload_inhi", "reload_outhi", "reload_inqi", "reload_outqi"):
2896 ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3")
2897 ("mulsidi3", "umulsidi3", "smulsi3_highpart", "umulsi3_highpart"):
2898 Adjust for MOF being properly described as a register.
2899 (indir_to_reg_split): Name this split. Conditionalize on the
2900 destination register being a general register.
2901 (movei): Conditionalize on on operands 0 and 1 having the same
2904 2005-03-03 Alan Modra <amodra@bigpond.net.au>
2907 * config/rs6000/rs6000.c (rs6000_override_options): Don't allow
2908 -mcpu to override any other explicitly given flags.
2910 2005-03-02 J"orn Rennecke <joern.rennecke@st.com>
2912 * recog.c (verify_changes, confirm_change_group): New functions,
2913 broken out of apply_change_group.
2914 (apply_change_group): Use them.
2915 * recog.h (verify_change, confirm_change_group): Declare.
2916 * rtl.h (redirect_jump_2): Declare.
2917 * jump.c (redirect_exp, invert_exp): Delete.
2918 (invert_exp_1): Take second parameter. Return value. Changed caller.
2919 (redirect_jump_2): New function, broken out of redirect_jump.
2920 (redirect_jump): Use redirect_jump_1 and redirect_jump_2.
2921 (invert_jump): Use invert_jump_1 and redirect_jump_2.
2922 * ifcvt.c (dead_or_predicable): Use redirect_jump_2.
2924 2005-03-02 Geoffrey Keating <geoffk@apple.com>
2926 * varasm.c (named_section): Use xstrdup rather than doing it by
2929 * config/darwin8.h (LIB_SPEC): Switch -lmx and -lSystem.
2931 2005-03-02 Devang Patel <dpatel@apple.com>
2933 Undo PR tree-optimization/18815 fix.
2935 2005-03-02 Devang Patel <dpatel@apple.com>
2937 PR tree-optimization/18815
2938 * tree-if-conv.c (combine_blocks): Adjust loop header edges for
2939 loops with zero exit edges.
2941 2005-03-02 Kazu Hirata <kazu@cs.umass.edu>
2943 * cfg.c (connect_src, connect_dest, disconnect_src,
2944 disconnct_dest): New.
2945 (unchecked_make_edge, remove_edge, redirect_edge_succ,
2946 redirect_edge_pred): Use the new functions.
2948 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
2949 free_dominance_info only when needed.
2951 2005-03-02 David Edelsohn <edelsohn@gnu.org>
2954 * config/rs6000/predicates.md (reg_or_cint64_operand): Fix typo.
2955 (reg_or_sub_cint64_operand): Same.
2957 2005-03-02 Jeff Law <law@redhat.com>
2959 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Fix setting of
2960 CFG_ALTERED in the main DOM iteration loop.
2962 2005-03-02 Mark Mitchell <mark@codesourcery.com>
2965 * varasm.c (initializer_constant_valid_p): Allow conversions
2966 between OFFSET_TYPEs. Tidy.
2968 2005-03-02 Hans-Peter Nilsson <hp@axis.com>
2970 * config/cris/cris.md ("return"): Remove epilogue delay list
2973 2005-03-02 Daniel Jacobowitz <dan@codesourcery.com>
2975 * config/arm/linux-elf.h (ARM_FUNCTION_PROFILER): Do not use (PLT)
2977 * config/arm/netbsd-elf.h (ARM_FUNCTION_PROFILER): Likewise.
2979 2005-03-02 Kazu Hirata <kazu@cs.umass.edu>
2981 * cfgloop.h, cfgloopanal.c, cfgloopmanip.c, conflict.c,
2982 loop-init.c, loop-unroll.c, print-tree.c, reg-notes.def,
2983 config/m68k/m68k.c, config/mips/mips.h,
2984 config/rs6000/rs6000-protos.h, doc/contrib.texi,
2985 doc/include/gcc-common.texi: Update copyright.
2987 PR middle-end/18029 and PR middle-end/18030
2988 * expr.c (optimize_bitfield_assignment_op): Add a special case
2989 to handle BIT_IOR_EXPR and BIT_XOR_EXPR.
2991 * fold-const.c (fold_unary): New.
2992 (fold): Call fold_unary on unary expressions.
2994 2005-03-02 Richard Guenther <rguenth@gcc.gnu.org>
2996 * cgraph.h (struct cgraph_edge): Add prev_caller and
2998 (cgraph_node_remove_callees): Export.
2999 * cgraph.c (cgraph_create_edge): Initialize prev_caller
3001 (cgraph_edge_remove_callee): New function.
3002 (cgraph_edge_remove_caller): Likewise.
3003 (cgraph_remove_edge): Use.
3004 (cgraph_redirect_edge_callee): Likewise.
3005 (cgraph_node_remove_callees): New function.
3006 (cgraph_node_remove_callers): Likewise.
3007 (cgraph_remove_node): Use.
3008 * tree-optimize.c (tree_rest_of_compilation): Use
3009 cgraph_node_remove_callees instead of manual loop.
3010 * cgraphunit.c (cgraph_finalize_function): Likewise.
3011 (cgraph_expand_function): Likewise.
3012 (cgraph_remove_unreachable_nodes): Likewise.
3014 2005-03-02 Joseph S. Myers <joseph@codesourcery.com>
3017 * c-tree.h (undeclared_variable, build_external_ref): Add extra
3019 * c-decl.c (undeclared_variable): Take location as argument.
3020 * c-typeck.c (build_external_ref): Likewise.
3021 * c-parser.c (c_parser_postfix_expression): Pass location of
3022 identifier to build_external_ref.
3024 2005-03-01 David Edelsohn <edelsohn@gnu.org>
3026 * config/rs6000/rs6000.md (cceq splitter): Use operand mode, not
3027 CCEQ mode for branch_positive_comparison_operator test.
3028 * config/rs6000/predicates (branch_comparison_operator): Revert to
3030 (scc_comparison_operator): Same.
3031 (branch_positive_comparison_operator): Same.
3033 2005-03-01 Hans-Peter Nilsson <hp@axis.com>
3035 * config/cris/cris.c (cris_eligible_for_epilogue_delay)
3036 (cris_delay_slots_for_epilogue): Remove.
3037 (save_last): Move into cris_target_asm_function_epilogue.
3038 (cris_target_asm_function_epilogue): Remove tests for file being
3040 * config/cris/cris-protos.h (cris_eligible_for_epilogue_delay)
3041 (cris_delay_slots_for_epilogue): Remove prototypes.
3042 * config/cris/cris.h (DELAY_SLOTS_FOR_EPILOGUE)
3043 (ELIGIBLE_FOR_EPILOGUE_DELAY): Do not define.
3045 2005-03-01 David Edelsohn <edelsohn@gnu.org>
3047 * config/rs6000/predicates.md (branch_comparison_operator): Change
3048 to define_special_predicate.
3049 (scc_comparison_operator): Same.
3050 (branch_positive_comparison_operator): Same.
3052 2005-03-01 Daniel Berlin <dberlin@dberlin.org>
3054 * Makefile.in (tree-ssa-sink.o): New.
3055 (OBJS-common): Add tree-ssa-sink.o.
3056 * common.opt: Add -ftree-sink
3057 * opts.c (decode_options): flag_tree_sink is set at O1 or higher.
3058 * timevar.def (TV_TREE_SINK): new timevar.
3059 * tree-flow.h (is_hidden_global_store): Prototype.
3060 * tree-optimize.c (init_tree_optimization_passes): Add
3062 * tree-pass.h (pass_sink_code): New.
3063 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Move checking
3064 for non-obvious global store store to is_hidden_global_store, and
3065 call that new function.
3066 * tree-ssa-sink.c: New file.
3067 * doc/invoke.texi: Document -fdump-tree-sink and -ftree-sink.
3068 * doc/passes.texi: Document forward store motion.
3069 * testsuite/gcc.dg/tree-ssa/ssa-sink-1.c: New test
3070 * testsuite/gcc.dg/tree-ssa/ssa-sink-2.c: New test
3071 * testsuite/gcc.dg/tree-ssa/ssa-sink-3.c: New test
3072 * testsuite/gcc.dg/tree-ssa/ssa-sink-4.c: New test
3074 2005-03-01 Per Bothner <per@bothner.com>
3076 * diagnostic.c (diagnostic_build_prefix): If USE_MAPPED_LOCATION
3077 and we have a non-zero column-number, add it to the message.
3078 Also factor out the diagnostic_kind_text.
3080 2005-03-01 Zdenek Dvorak <dvorakz@suse.cz>
3082 * cfgloop.c (flow_loop_entry_edges_find, flow_loop_exit_edges_find,
3083 flow_loop_pre_header_scan, flow_loop_pre_header_find,
3084 flow_loop_scan): Removed.
3085 (flow_loop_dump): Do not dump removed fields.
3086 (flow_loop_free): Do not free removed fields.
3087 (flow_loops_find): Flags argument removed. Do not call flow_loop_scan.
3088 (loop_exit_edge_p): New function.
3089 * cfgloop.h (struct loop): Removed fields pre_header, pre_header_edges,
3090 num_pre_header_edges, entry_edges, num_entries, exit_edges,
3091 num_exits, exits_doms.
3092 (LOOP_TREE, LOOP_PRE_HEADER, LOOP_ENTRY_EDGES, LOOP_EXIT_EDGES,
3093 LOOP_EDGES, LOOP_ALL): Removed.
3094 (flow_loop_scan): Declaration removed.
3095 (loop_exit_edge_p, mark_loop_exit_edges): Declare.
3096 * cfgloopmanip.c (create_loop_notes): Do not pass flags to
3098 * ifcvt.c (mark_loop_exit_edges): Moved to cfgloopanal.c.
3099 (if_convert): Call flow_loops_find and flow_loops_free
3100 when calling mark_loop_exit_edges.
3101 * cfgloopanal.c (mark_loop_exit_edges): Moved from
3102 ifcvt.c. Removed the flow_loops_find, flow_loops_free and
3103 free_dominance_info calls.
3104 * loop-init.c (flow_loops_find): Ditto.
3105 * passes.c (rest_of_handle_branch_prob): Ditto.
3106 * lambda-code.c (perfect_nestify): Do not call flow_loops_find.
3107 * loop-unroll.c (analyze_insns_in_loop): Do not use
3109 * predict.c (predict_loops): Do not call flow_loop_scan.
3110 Use get_loop_exit_edges.
3111 (tree_estimate_probability): Do not pass flags to flow_loops_find.
3112 * tree-if-conv.c (bb_with_exit_edge_p): Take loop as argument.
3113 Do not use EDGE_LOOP_EXIT.
3114 (tree_if_convert_cond_expr, if_convertible_modify_expr_p): Pass loop
3115 to bb_with_exit_edge_p.
3116 (if_convertible_loop_p): Do not call flow_loop_scan. Use
3117 loop->single_exit. Do not use EDGE_LOOP_EXIT. Pass loop
3118 to bb_with_exit_edge_p.
3119 (combine_blocks): Pass loop to bb_with_exit_edge_p. Do not use
3121 * tree-loop-linear.c (linear_transform_loops): Do not call
3122 flow_loop_scan. Use loop->single_exit.
3123 * tree-vect-analyze.c (vect_analyze_operations): Use loop->single_exit.
3124 (vect_analyze_loop_form): Do not call flow_loop_scan.
3125 * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Use
3127 (vect_do_peeling_for_loop_bound): Use loop_preheader_edge and
3129 * tree-vectorizer.c (slpeel_update_phis_for_duplicate_loop,
3130 slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
3131 slpeel_tree_duplicate_loop_to_edge_cfg,
3132 slpeel_verify_cfg_after_peeling, slpeel_tree_peel_loop_to_edge):
3133 Use loop_preheader_edge and loop->single_exit. Do not call
3136 2005-03-01 Nick Clifton <nickc@redhat.com>
3138 * config/arm/arm.c (thumb_find_work_register): Check all of the
3139 argument registers to see if they are free, and a couple of
3140 special cases where the last argument register but can be proved
3141 to be available during the function's prologue.
3142 (print_multi_reg, arm_compute_save_reg0_reg12_mask,
3143 output_return_instruction, emit_multi_reg_push, thumb_pushpop,
3144 thumb_unexpanded_epilogue): Use unsigned long as the type for the
3146 (thumb_compute_save_reg_mask): Likewise. Also use
3147 thumb_find_work_register() to ensure that there is agreement about
3148 which work register is going to be used in the prologue.
3149 (thumb_output_function_prologue): Use unsigned long as the type
3150 for the register bit-mask. Also delay pushing the link register if
3151 other high registers are going to be pushed.
3152 (thumb_compute_save_reg_mask, emit_multi_reg_push,
3153 print_multi-reg, number_of_first_bit_set, thumb_pushpop): Remove
3154 redundant prototypes.
3156 2005-02-28 John David Anglin <dave.anglin#nrc-cnrc.gc.ca>
3159 * pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow allow hard registers during
3160 and after reload in REG+REG indexed addresses without REG_POINTER
3161 set in the base and not set in the index.
3163 2005-02-28 Kaz Kojima <kkojima@gcc.gnu.org>
3165 * config/sh/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
3166 Don't undefine here.
3167 (HANDLE_PRAGMA_PACK_PUSH_POP): Delete.
3168 (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC): Likewise.
3169 (TARGET_OS_CPP_BUILTINS): Use LINUX_TARGET_OS_CPP_BUILTINS.
3170 (LIB_SPEC, LINK_EH_SPEC, STARTFILE_SPEC, ENDFILE_SPEC,
3171 LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED, TARGET_C99_FUNCTIONS):
3173 * config.gcc (sh*-*-linux*): Use config/linux.h.
3175 2005-02-28 Dale Johannesen <dalej@apple.com>
3176 Stan Shebs <shebs@apple.com>
3178 Rewrite of 64-bit Darwin structure-by-value pass/return.
3179 * config/rs6000/rs6000.h (CUMULATIVE_ARGS): New fields
3180 intoffset, use_stack, named.
3181 * config/rs6000/rs6000.c (rs6000_darwin64_function_arg): Remove.
3182 (rs6000_darwin64_record_arg_advance_flush): New.
3183 (rs6000_darwin64_record_arg_advance_recurse): New.
3184 (rs6000_darwin64_record_arg_flush): New.
3185 (rs6000_darwin64_record_arg_recurse): New.
3186 (rs6000_darwin64_record_arg): New.
3187 (rs6000_return_in_memory): Remove AGGREGATE_TYPE_P check.
3188 (function_arg_boundary): Handle 128-bit aligned structs.
3189 (function_arg_advance): Rewrite darwin64 struct handling.
3190 (function_arg): Call rs6000_darwin64_record_arg.
3191 (function_arg_partial_nregs): Handle darwin64 structs.
3192 (rs6000_darwin64_function_value): Remove.
3193 (rs6000_function_value): Call rs6000_darwin64_record_arg.
3195 2005-02-28 Roger Sayle <roger@eyesopen.com>
3197 PR tree-optimization/20216
3198 * tree-chrec.c (tree_fold_factorial): Delete.
3199 (tree_fold_binomial): Change argument list to take a return type
3200 and change the type of K to unsigned int. Rewrite to avoid explicit
3201 evaluation of factorials, and (recursively) calling fold to perform
3202 compile-time arithmetic. Return NULL on (internal) overflow.
3203 (chrec_evaluate): Change type of K to an unsigned int. Avoid
3204 calling tree_fold_binomial unnecessarily. Return chrec_dont_know
3205 if any intermediate calculation overflows.
3206 (chrec_apply): Update call to chrec_evaluate.
3208 2005-02-28 James E Wilson <wilson@specifixinc.com>
3210 * config/mips/mips.h (NO_PROFILE_COUNTERS): Define.
3212 2005-02-28 Joseph S. Myers <joseph@codesourcery.com>
3215 * c-parser.c (c_parser_compound_statement): Return error_mark_node
3216 instead of NULL_TREE on error.
3218 2005-02-28 David Edelsohn <edelsohn@gnu.org>
3220 * config/rs6000/rs6000.c (EASY_VECTOR_15): Remove.
3221 (EASY_VECTOR_15_ADD_SELF): Remove.
3222 (num_insns_constant_wide): Not static.
3223 (validate_condition_mode): Not static.
3224 (toc_relative_expr_p): Not static.
3225 (legitimate_indirect_address_p): Not static.
3226 (macho_lo_sum_memory_operand): Not static.
3227 (invalid_e500_subreg): Not static.
3228 (easy_vector_same): Not static.
3229 (easy_vector_splat_const): Not static.
3230 (RS6000_SYMBOL_REF_TLS_P): Remove.
3231 (any_operand): Delete.
3232 (any_parallel_operand): Delete.
3233 (count_register_operand): Delete.
3234 (altivec_register_operand): Delete.
3235 (xer_operand): Delete.
3236 (s8bit_cint_operand): Delete.
3237 (short_cint_operand): Delete.
3238 (u_short_cint_operand): Delete.
3239 (non_short_cint_operand): Delete.
3240 (exact_log2_cint_operand): Delete.
3241 (gpc_reg_operand): Delete.
3242 (cc_reg_operand): Delete.
3243 (cc_reg_not_cr0_operand): Delete.
3244 (reg_or_short_operand): Delete.
3245 (reg_or_neg_short_operand): Delete.
3246 (reg_or_aligned_short_operand): Delete.
3247 (reg_or_u_short_operand): Delete.
3248 (reg_or_cint_operand): Delete.
3249 (reg_or_arith_cint_operand): Delete.
3250 (reg_or_add_cint64_operand): Delete.
3251 (reg_or_sub_cint64_operand): Delete.
3252 (reg_or_logical_cint_operand): Delete.
3253 (got_operand): Delete.
3254 (got_no_const_operand): Delete.
3255 (easy_fp_constant): Delete.
3256 (easy_vector_constant): Delete.
3257 (easy_vector_constant_add_self): Delete.
3258 (zero_constant): Delete.
3259 (zero_fp_constant): Delete.
3260 (volatile_mem_operand): Delete.
3261 (offsettable_mem_operand): Delete.
3262 (mem_or_easy_const_operand): Delete.
3263 (add_operand): Delete.
3264 (non_add_cint_operand): Delete.
3265 (logical_operand): Delete.
3266 (non_logical_cint_operand): Delete.
3267 (mask_operand): Delete.
3268 (mask_operand_wrap): Delete.
3269 (mask64_operand): Delete.
3270 (mask64_2_operand): Delete.
3271 (and64_operand): Delete.
3272 (and64_2_operand): Delete.
3273 (and_operand): Delete.
3274 (reg_or_mem_operand): Delete.
3275 (lwa_operand): Delete.
3276 (symbol_ref_operand): Delete.
3277 (call_operand): Delete.
3278 (current_file_function_operand): Delete.
3279 (input_operand): Delete.
3280 (rs6000_nonimmediate_operand): Delete.
3281 (rs6000_tls_symbol_ref): Delete.
3282 (save_world_operation): Delete.
3283 (restore_world_operation): Delete.
3284 (load_multiple_operation): Delete.
3285 (store_multiple_operation): Delete.
3286 (vrsave_operation): Delete.
3287 (mfcr_operation): Delete.
3288 (mtcrf_operation): Delete.
3289 (lmw_operation): Delete.
3290 (stmw_operation): Delete.
3291 (branch_comparison_operator): Delete.
3292 (branch_positive_comparison_operator): Delete.
3293 (scc_comparison_operator): Delete.
3294 (trap_comparison_operator): Delete.
3295 (boolean_operator): Delete.
3296 (boolean_or_operator): Delete.
3297 (min_max_operator): Delete.
3298 * config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Move to here.
3299 (EASY_VECTOR_15): Moved to here.
3300 (EASY_VECTOR_15_ADD_SELF): Move to here.
3301 (PREDICATE_CODES): Delete.
3302 * config/rs6000/rs6000-protos.h: Delete predicate functions.
3303 Declare functions no longer static.
3304 * config/rs6000/predicates.md: New.
3305 * config/rs6000/rs6000.md: Include predicates.md
3307 2005-02-28 Kazu Hirata <kazu@cs.umass.edu>
3309 * calls.c (emit_call_1): Don't use REG_ALWAYS_RETURN.
3310 (emit_library_call_value_1): Don't use LCT_ALWAYS_RETURN and
3312 * cfgrtl.c (need_fake_edge_p): Likewise.
3313 * combine.c (distribute_notes): Likewise.
3314 * emit-rtl.c (try_split): Likewise.
3315 * recog.c (peephole2_opimize): Likewise.
3316 * reg-notes.def (ALWAYS_RETURN): Remove.
3317 * rtl.h (LCT_ALWAYS_RETURN): Remove.
3318 * tree-cfg.c (need_fake_edge_p): Don't use ECF_ALWAYS_RETURN.
3319 * tree.h (ECF_ALWAYS_RETURN): Remove.
3321 2005-02-28 Roger Sayle <roger@eyesopen.com>
3324 * tree-ssa.c (tree_ssa_useless_type_conversion_1): A conversion
3325 between different machine modes is never a "useless" conversion.
3327 2005-02-28 Geert Bosch <bosch@gnat.com>
3330 * doc/contrib.texi: List contributors for Ada front end
3332 2005-02-28 Paolo Bonzini <bonzini@gnu.org>
3334 * simplify-rtx.c (simplify_unary_operation_1,
3335 simplify_const_unary_operation): New, extracted from...
3336 (simplify_unary_operation): ... this one.
3337 (simplify_binary_operation_1,
3338 simplify_const_binary_operation): New, extracted from...
3339 (simplify_binary_operation): ... this one.
3340 * rtl.h (simplify_const_unary_operation,
3341 simplify_const_binary_operation): Add prototypes.
3343 2005-02-28 Julian Brown <julian@codesourcery.com>
3345 * config/elfos.h: Revert my patch from 2005-02-25 since it broke
3346 building libjava and caused PR regression/20228.
3348 2005-02-28 Paolo Bonzini <bonzini@gnu.org>
3351 * Makefile.in (host_subdir): New.
3352 (build_objdir): New. Replace ../$(build_subdir) with it throughout.
3353 * configure: Regenerate.
3355 2005-02-27 Zack Weinberg <zack@codesourcery.com>
3357 * config/alpha/t-osf4, config/arm/t-netbsd, config/ia64/t-hpux
3358 * config/pa/t-hpux-shlib (SHLIB_INSTALL): Create the
3359 installation directory first.
3361 2005-02-28 Hans-Peter Nilsson <hp@axis.com>
3364 * config/cris/cris.h (EXTRA_CONSTRAINT_Q): Accept only (mem (reg)),
3365 not including (reg). Do not check for reg being CRIS_PC_REGNUM.
3366 (EXTRA_MEMORY_CONSTRAINT): Define as 'Q'.
3367 * config/cris/cris.md: Tweak comments referring to Q.
3368 ("cmpsi", "cmphi", "cmpqi", "*movsi_internal", "movhi")
3369 ("movstricthi", "movqi", "movstrictqi", "movsf", "addsi3")
3370 ("addhi3", "addqi3", "subsi3", "subhi3", "subqi3")
3371 ("*expanded_andsi", "*expanded_andhi", "*andhi_lowpart", "andqi3")
3372 ("*andqi_lowpart", "iorsi3", "iorhi3", "iorqi3", "uminsi3"):
3373 Insert spaces in constraints to align alternatives vertically for
3375 ("cmphi"): Ditto. Add separate alternative for operand 0 "r",
3378 2005-02-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3380 PR rtl-optimization/17728
3381 * pa.md (mulsi3, divsi3, udivsi3, modsi3): Change predicate for
3382 operand 0 from general_operand to move_dest_operand.
3384 2005-02-26 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3386 * pa/elf.h, pa/som.h (ASM_OUTPUT_EXTERNAL): Use assemble_name_raw
3387 instead of trying to save and restore TREE_SYMBOL_REFERENCED.
3388 * pa/pa64-hpux.h (ASM_OUTPUT_TYPE_DIRECTIVE): Define.
3389 (ASM_OUTPUT_EXTERNAL): Don't save and restore TREE_SYMBOL_REFERENCED.
3391 2005-02-26 Nathanael Nerode <neroden@gcc.gnu.org>
3393 * configure.ac: Rename cc_for_cross_gnattools to host_cc_for_libada.
3394 * configure: Regenerate.
3395 * libada-mk.in: Remove CC; rename
3396 cc_for_cross_gnattools / cc_set_by_configure to host_cc_for_libada.
3398 2005-02-26 Andrew Pinski <pinskia@physics.uc.edu>
3401 * tree-ssa-alias.c (count_uses_and_derefs): If we have TREE_LIST
3402 for the lhs, also walk over the tree. Likewise for rhs.
3404 2005-02-26 Zdenek Dvorak <dvorakz@suse.cz>
3406 * tree-ssa-dom.c (simple_iv_increment_p): New function.
3407 (simplify_rhs_and_lookup_avail_expr, eliminate_redundant_computations):
3408 Do not propagate value of iv before increment over the increment.
3410 2005-02-25 Joseph S. Myers <joseph@codesourcery.com>
3412 * c-parser.c: New file.
3413 * c-parse.in: Remove.
3414 * Makefile.in (c-parse.o-warn, c-parse.o, c-parse.c, c-parse.y):
3416 (c-parser.o): Add dependencies.
3417 (C_AND_OBJC_OBJC, C_OBJS, gcc.srcextra, GTFILES, distclean,
3418 maintainer-clean, TAGS): Update.
3419 * c-config-lang.in (gtfiles): Update.
3420 * gengtype-lex.l: Don't handle "@@".