1 2005-03-27 Steven Bosscher <stevenb@suse.de>
3 * vax-protos.h (vax_output_int_move, vax_output_int_add,
4 vax_output_conditional_branch): New prototypes.
5 * vax.c (vax_output_int_move, vax_output_int_add): New functions,
6 extracted from vax.md mov and add patterns.
7 (vax_output_conditional_branch): New function to output conditional
9 * vax.md: Use mode macros for arithmetic and mov patterns.
10 Use code macros for the jump patterns.
12 2005-03-26 Andrew Pinski <pinskia@physics.uc.edu>
14 * Makefile.in (libbackend.o): Depend on version files;
15 add custom generation command.
17 2005-03-26 Andrew Pinski <pinskia@physics.uc.edu>
20 * config/rs6000/rs6000.md (extendsfdf2_fpr): Check to make
21 sure that we have a REG before getting its REGNO.
23 2005-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
25 * builtin-types.def (BT_FN_STRING_CONST_STRING_SIZE): New.
26 * builtins.def (BUILT_IN_STRNDUP): New.
28 2005-03-25 Pat Haugen <pthaugen@us.ibm.com>
30 PR tree-optimization/20470
31 * fold-const.c (fold_cond_expr_with_comparison): Recognize/fold
34 2005-03-25 Mike Stump <mrs@apple.com>
36 * config/darwin.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Don't allow 0
39 2005-03-25 Geoffrey Keating <geoffk@apple.com>
41 * config/rs6000/darwin-fallback.c: Don't include <ucontext.h>.
42 Use our own structure definitions.
44 * config/rs6000/rs6000.md (UNSPEC constants): Add UNSPEC_STFIWX.
45 (fix_truncdfsi2): Allow registers or memory as destination.
46 When TARGET_PPC_GFXOPT, generate simplified pattern.
47 (fix_truncdfsi2_internal): Use define_insn_and_split.
48 (fix_truncdfsi2_internal_gfxopt): New.
49 (fctiwz): Don't confuse register allocation by giving it no choices.
51 * config/rs6000/rs6000.h (EXTRA_CONSTRAINT): Add 'Z'.
52 (EXTRA_MEMORY_CONSTRAINT): Likewise.
53 * config/rs6000/rs6000.c (indexed_or_indirect_operand): New.
54 * config/rs6000/rs6000-protos.h (indexed_or_indirect_operand): New.
56 2005-03-25 Kazu Hirata <kazu@cs.umass.edu>
58 * dominance.c (free_dominance_info): Speed up by freeing et
59 data structures without maintaining other nodes.
60 * et-forest.c (et_free_tree_force): New.
61 * et-forest.h: Add a prototype for et_free_tree_force.
63 * tree.c (get_set_constructor_bits,
64 get_set_constructor_bytes): Remove.
65 * tree.h: Remove the corresponding prototypes.
67 2005-03-25 John David Anglin <dave.anglin@nrc-crnc.gc.ca>
70 * vax.c (vax_rtx_costs_1): Merge with vax_rtx_costs.
71 (vax_rtx_costs): Return false when passed unsupported rtx's. Handle
72 FLOAT_EXTEND, FLOAT_TRUNCATE and TRUNCATE. Fix costs for POST_INC,
75 2005-03-25 Kazu Hirata <kazu@cs.umass.edu>
77 * fold-const.c: Convert uses of fold (build (...)) to
80 2005-03-25 Zdenek Dvorak <dvorakz@suse.cz>
82 PR rtl-optimization/20249
83 * cse.c (insert_regs): Do not record equivalence of registers in
86 2005-03-24 Kazu Hirata <kazu@cs.umass.edu>
88 * emit-rtl.c (reverse_comparison): Remove.
89 * rtl.h: Remove the corresponding prototype.
91 2005-03-24 James E Wilson <wilson@specifixinc.com>
93 * doc/install.texi (--enable-altivec): Delete docs.
95 2005-03-24 David Edelsohn <edelsohn@gnu.org>
97 * config/rs6000/predicates.md (easy_fp_constant): Return 0 for
98 SFmode and DFmode before reload when
99 flag_unsafe_math_optimizations not enabled.
101 2005-03-24 Geoffrey Keating <geoffk@apple.com>
103 * c.opt (fvisibility-inlines-hidden): Allow for ObjC++.
105 * config/i386/darwin.h (TARGET_SUBTARGET_DEFAULT): Add
106 MASK_128BIT_LONG_DOUBLE, MASK_ALIGN_DOUBLE.
108 2005-03-24 Nathan Sidwell <nathan@codesourcery.com>
110 * configure.ac (enable-checking): Add 'runtime' option.
111 * doc/install.texi (enable-checking): Document 'runtime' checking.
112 * tsystem.h (gcc_assert, gcc_unreachable): Define.
113 * config.in: Regenerated.
114 * configure: Regenerated.
116 2005-03-23 Uros Bizjak <uros@kss-loka.si>
118 * optabs.h (enum optab_index): Remove OTI_llrint.
119 (llrint_optab): Remove macro.
120 * optabs.c (init_optabs): Remove llrint_optab initialization.
121 * genopinit.c (optabs): Remove llrint_optab implementation.
122 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LLRINT{,F,L}
125 2005-03-24 Alexandre Oliva <aoliva@redhat.com>
127 PR rtl-optimization/20532
128 * simplify-rtx.c (simplify_binary_operation_1): Protect from
129 overflow when adding coefficients for PLUS or MINUS.
130 (simplify_binary_operation_1): Handle CONST_DOUBLE exact power of
133 2005-03-23 Joseph S. Myers <joseph@codesourcery.com>
135 * langhooks.h (truthvalue_conversion): Remove.
136 * langhooks-def.h (LANG_HOOKS_INITIALIZER): Remove
137 LANG_HOOKS_TRUTHVALUE_CONVERSION.
138 * system.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Poison.
139 * gimplify.c (gimple_boolify): Don't use truthvalue_conversion.
140 * c-objc-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
142 2005-03-23 Kazu Hirata <kazu@cs.umass.edu>
144 * params.def: Fix a typo.
145 * config/mips/mips.c: Follow the spelling convensions.
146 * doc/invoke.texi: Fix typos.
148 2005-03-18 Dale Johannese <dalej@apple.com>
150 * cp/tree.c (cp_tree_equal): Handle SSA_NAME.
152 2005-03-23 Daniel Berlin <dberlin@dberlin.org>
154 Fix PR tree-optimization/20601
156 * tree-ssa-pre.c (insert_aux): Add missing condition to
159 2005-03-23 Ian Lance Taylor <ian@airs.com>
161 * final.c (final_scan_insn): Don't remove no-op instructions.
162 * reload1.c (reload): Remove simple no-op instructions even when
165 2005-03-23 Dorit Naishlos <dorit@il.ib.com>
167 PR tree-optimization/20501
168 * tree-vect-analyze.c (vect_enhance_data_refs_alignment): Debug print
169 reporting that peeling for alignment is applied moved to...
170 * (vect_analyze_data_refs_alignment): Here.
172 2005-03-23 Ian Lance Taylor <ian@airs.com>
174 * reorg.c (dbr_schedule): Remove #if 0 code to call final.
176 2005-03-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
178 * config.gcc (alpha*-dec-osf[45]*): Remove target_cpu_default.
179 Define TARGET_SUPPORT_ARCH except on Tru64 UNIX V4.0A.
181 2005-03-23 Hans-Peter Nilsson <hp@axis.com>
183 * doc/tm.texi (TARGET_MD_ASM_CLOBBERS): Adjust wording to not
184 imply that this is called once, independent of asms in code.
185 Adjust to now being pased output and input lists. Mention helper
186 function decl_overlaps_hard_reg_set_p.
187 * hooks.c (hook_tree_tree_tree_tree_3rd_identity): Rename from
188 hook_tree_tree_identity and to take three trees, returning third.
189 * hooks.h (hook_tree_tree_tree_tree_3rd_identity): Adjust the
191 * stmt.c: include hard-reg-set.h before tree.h.
192 (decl_overlaps_hard_reg_set_p): New function, broken out from...
193 (decl_conflicts_with_clobbers_p): Call
194 decl_overlaps_hard_reg_set_p.
195 (expand_asm_operands): Pass output and input lists in call to
196 targetm.md_asm_clobbers.
197 * target-def.h (TARGET_MD_ASM_CLOBBERS): Define as
198 hook_tree_tree_tree_tree_3rd_identity.
199 * target.h (struct gcc_target.md_asm_clobbers): Take three tree
201 * tree.h [HARD_CONST] (decl_overlaps_hard_reg_set_p): Prototype.
202 * config/i386/i386.c (ix86_md_asm_clobbers): Adjust to three
203 parameters, first two unused.
204 * config/cris/cris.c (cris_md_asm_clobbers): Adjust to added
205 parameters. Only add MOF to clobbers if there's no 'h' mentioned
206 in constraint letters and MOF is not mentioned as a asm-declared
207 register in neither of the input and output lists.
209 2005-03-23 DJ Delorie <dj@redhat.com>
211 * optabs.c (expand_binop): Make sure the first subword's result
214 2005-03-23 Joseph S. Myers <joseph@codesourcery.com>
216 * c-common.c (c_common_truthvalue_conversion): Adjust comment.
217 Call c_common_truthvalue_conversion rather than
218 lang_hooks.truthvalue_conversion.
219 * c-convert.c (convert): Call c_objc_common_truthvalue_conversion.
220 * c-objc-common.c (c_objc_common_truthvalue_conversion): Move to
222 * c-objc-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Change to
223 c_common_truthvalue_conversion.
224 * c-parser.c (c_parser_paren_condition, c_parser_for_statement,
225 c_parser_conditional_expression, c_parser_binary_expression): Call
226 c_objc_common_truthvalue_conversion.
227 * c-typeck.c (build_unary_op): Call
228 c_objc_common_truthvalue_conversion.
229 (build_conditional_expr): Do not call
230 lang_hooks.truthvalue_conversion.
231 (build_binary_op): Call c_common_truthvalue_conversion.
232 (c_objc_common_truthvalue_conversion): Moved from
233 c-objc-common.c. Call default_function_array_conversion instead
234 of default_conversion.
236 2005-03-23 Joseph S. Myers <joseph@codesourcery.com>
238 * c-common.h (default_conversion): Remove.
239 (perform_integral_promotions): Add.
240 * c-tree.h (default_conversion): Add.
241 * c-typeck.c (perform_integral_promotions): New, split out from
243 * c-common.c (check_case_value): Use perform_integral_promotions,
244 not default_conversion.
245 (c_add_case_label): Don't continue processing case label after
248 2005-03-23 Mark Mitchell <mark@codesourcery.com>
250 * gcc.c (do_spec_1): Do not add a -L path for a directory in
251 the prefix list if we have already added a multilib directory
253 (main): Do not add MD_EXEC_PREFIX to the list of directories to
256 2005-03-22 Kazu Hirata <kazu@cs.umass.edu>
258 * reload1.c (indirect_symref_ok, reload_obstack): Make them
260 * reload.h: Remove the prototype for indirect_symref_ok.
262 * reload1.c (indirect_symref_ok): Make it global.
263 * reload.h: Add a prototype for indirect_symref_ok.
265 2005-03-22 Kaz Kojima <kkojima@gcc.gnu.org>
267 * config/sh/sh.md (ashlhi3): Rename to *ashlhi3_n and add a new
270 2005-03-22 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
272 * tree.h (DECL_IGNORED_P, DECL_IN_SYSTEM_HEADER): Clarify comments.
274 2005-03-22 Daniel Berlin <dberlin@dberlin.org>
276 * c-opts.c (c_common_parse_file): Only start/end main source file
277 if debug hooks says the writer wants it.
278 * dbxout.c (dbx_debug_hooks): Add start_end_main_source_file
280 (xcoff_debug_hooks): Ditto.
281 * debug.c (do_nothing_hooks): Ditto.
282 * debug.h (gcc_debug_hooks): Ditto.
283 * dwarf2out.c (dwarf2_debug_hooks): Ditto.
284 * sdbout.c (sdb_debug_hooks): Ditto.
285 * vmsdbgout.c (vmsdbg_debug_hooks): Ditto.
287 2005-03-22 Mark Mitchell <mark@codesourcery.com>
289 * doc/extend.texi: Deprecate C++ min/max operators.
291 2005-03-22 Zdenek Dvorak <dvorakz@suse.cz>
293 * tree-ssa-loop-ivopts.c (determine_iv_cost): Do not try to preserve
294 artificial original candidates.
296 2005-03-22 Richard Guenther <rguenth@tat.physik.uni-tuebingen.de>
297 Jan Hubicka <jh@suse.cz>
298 Steven Bosscher <stevenb@suse.de>
300 * cgraphunit.c (cgraph_estimate_size_after_inlining): Compute
301 call cost based on argument sizes.
302 (cgraph_mark_inline_edge): Avoid inline unit from shrinking by
304 * params.def: (max-inline-inssn-single): Set to 450.
305 (max-inline-insns-auto): Set to 90.
306 (max-inline-insns-recursive): Set to 450
307 (max-inline-insns-recursive-auto): Set to 450.
308 (large-function-insns): Set to 2700.
309 (inline-call-cost): New parameter.
310 * tree-inline.c (estimate_move_cost): New function.
311 (estimate_num_insns_1): Compute move sizes costs by estimate_move_cost
312 for non-gimple-regs, set cost to 0 for gimple-regs. Compute call size
314 * tree-inline.h (estimate_move_cost): Declare.
315 * invoke.texi: (max-inline-inssn-single): Change default to 450.
316 (max-inline-insns-auto): Change default to 90.
317 (max-inline-insns-recursive): Change default to 450
318 (max-inline-insns-recursive-auto): Change default to 450.
319 (large-function-insns): Change default to 2700.
320 (inline-call-cost): Document new parameter.
322 2005-03-22 Richard Sandiford <rsandifo@redhat.com>
324 * config/i860/i860.h (target_flags, TARGET_XP, TARGET_SWITCHES)
325 (TARGET_DEFAULT): Delete.
326 * config/i860/i860.opt: New file.
328 2005-03-22 Richard Sandiford <rsandifo@redhat.com>
330 * config/frv/frv-protos.h (frv_branch_cost_string, frv_branch_cost_int)
331 (frv_cpu_string, frv_condexec_insns_str, frv_condexec_insns)
332 (frv_condexec_temps_str, frv_condexec_temps, frv_sched_lookahead_str)
333 (frv_sched_lookahead): Delete.
334 * config/frv/frv.h (MASK_DEFAULT_ALLOC_CC): Move to frv.c.
335 (target_flags, MASK_GPR_32, MASK_FPR_32, MASK_SOFT_FLOAT)
336 (MASK_ALLOC_CC, MASK_DWORD, MASK_DOUBLE, MASK_MEDIA, MASK_MULADD)
337 (MASK_LIBPIC, MASK_ACC_4, MASK_PACK, MASK_LONG_CALLS)
338 (MASK_ALIGN_LABELS, MASK_LINKED_FP, MASK_BIG_TLS, MASK_DEBUG_ARG)
339 (MASK_DEBUG_ADDR, MASK_DEBUG_STACK, MASK_DEBUG, MASK_DEBUG_LOC)
340 (MASK_DEBUG_COND_EXEC, MASK_NO_COND_MOVE, MASK_NO_SCC)
341 (MASK_NO_COND_EXEC, MASK_NO_VLIW_BRANCH, MASK_NO_MULTI_CE)
342 (MASK_FDPIC, MASK_INLINE_PLT, MASK_GPREL_RO, MASK_DEFAULT)
343 (TARGET_GPR_32, TARGET_FPR_32, TARGET_SOFT_FLOAT, TARGET_ALLOC_CC)
344 (TARGET_DWORD, TARGET_DOUBLE, TARGET_MEDIA, TARGET_MULADD)
345 (TARGET_LIBPIC, TARGET_ACC_4, TARGET_DEBUG_ARG, TARGET_DEBUG_ADDR)
346 (TARGET_DEBUG_STACK, TARGET_DEBUG, TARGET_DEBUG_LOC)
347 (TARGET_DEBUG_COND_EXEC, TARGET_NO_COND_MOVE, TARGET_NO_SCC)
348 (TARGET_NO_COND_EXEC, TARGET_NO_VLIW_BRANCH, TARGET_NO_MULTI_CE)
349 (TARGET_NO_NESTED_CE, TARGET_FDPIC, TARGET_INLINE_PLT, TARGET_BIG_TLS)
350 (TARGET_GPREL_RO, TARGET_PACK, TARGET_LONG_CALLS, TARGET_ALIGN_LABELS)
351 (TARGET_LINKED_FP, TARGET_GPR_64, TARGET_FPR_64, TARGET_HARD_FLOAT)
352 (TARGET_FIXED_CC, TARGET_COND_MOVE, TARGET_SCC, TARGET_COND_EXEC)
353 (TARGET_VLIW_BRANCH, TARGET_MULTI_CE, TARGET_NESTED_CE, TARGET_ACC_8)
354 (TARGET_SWITCHES, TARGET_OPTIONS, DEFAULT_CONDEXEC_TEMPS)
355 (DEFAULT_BRANCH_COST, DEFAULT_CONDEXEC_INSNS): Delete.
356 * config/frv/frv.c (frv_branch_cost_string, frv_branch_cost_int)
357 (frv_cpu_string, frv_condexec_insns_str, frv_condexec_insns)
358 (frv_condexec_temps_str, frv_condexec_temps, frv_sched_lookahead_str)
359 (frv_sched_lookahead): Delete.
360 (MASK_DEFAULT_ALLOC_CC): Moved from frv.h.
361 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
362 (frv_handle_option): New function. Move -mcpu= handling from...
363 (frv_override_options): ...here. Remove handling of other
365 (frv_ifcvt_modify_tests): Check !TARGET_COND_EXEC instead of
366 TARGET_NO_COND_EXEC and !TARGET_NESTED_CE to TARGET_NO_NESTED_CE.
367 (frv_ifcvt_modify_multiple_tests): Likewise !TARGET_MULTI_CE
368 and TARGET_NO_MULTI_CE.
369 (frv_for_each_packet): Likewise TARGET_NO_VLIW_BRANCH and
371 * config/frv/frv.opt: New file.
373 2005-03-22 Kazu Hirata <kazu@cs.umass.edu>
375 * fold-const.c (fold_ternary): Take decomposed arguments of
377 (fold): Update a call to fold_ternary.
379 * fold-const.c (fold_build1, fold_build2, fold_build3): New.
380 * tree.h: Add corresponding prototypes.
382 2005-03-22 Jakub Jelinek <jakub@redhat.com>
385 * cfglayout.c (reemit_insn_block_notes): Don't put block notes in
386 between jump table and its label.
387 * final.c (shorten_branches): Handle notes in between ADDR_VEC
388 resp. ADDR_DIFF_VEC and the label preceeding it.
389 (final_scan_insn): Likewise. Ensure ADDR_VEC resp. ADDR_DIFF_VEC
390 is emitted in the right section.
392 2005-03-22 Kazu Hirata <kazu@cs.umass.edu>
394 * fold-const.c (fold_unary, fold_binary): Update comments
397 2005-03-22 Hans-Peter Nilsson <hp@axis.com>
399 PR rtl-optimization/20527
400 * combine.c (can_combine_p) [AUTO_INC_DEC]: When INSN has an
401 REG_INC note, test that the register also isn't mentioned in PRED
404 2005-03-22 Ben Elliston <bje@au.ibm.com>
406 * dwarf2out.c (dwarf_type_encoding_name): Remove unused prototype
409 2005-03-21 Mike Stump <mrs@apple.com>
411 * varasm.c (default_assemble_visibility): Remove extra ().
413 2005-03-21 Roger Sayle <roger@eyesopen.com>
416 * bb-reorder.c (duplicate_computed_gotos): Use can_duplicate_block_p
417 to determine whether a block can be duplicated, rather than test
418 whether the block contains noncopyable insns ourselves.
420 2005-03-21 Kazu Hirata <kazu@cs.umass.edu>
422 * config/i860/i860.h (PREDICATE_CODES): Remove nonexistent
425 2005-03-21 Richard Sandiford <rsandifo@redhat.com>
427 * config/ip2k/ip2k.h (target_flags, TARGET_SWITCHES): Delete.
429 2005-03-21 Richard Sandiford <rsandifo@redhat.com>
431 * config/fr30/fr30.h (TARGET_SMALL_MODEL_MASK, TARGET_SMALL_MODEL)
432 (TARGET_DEFAULT, target_flags, TARGET_SWITCHES): Delete.
433 * config/fr30/fr30.opt: New file.
435 2005-03-18 Daniel Berlin <dberlin@dberlin.org>
437 Fix PR tree-optimization/20542
439 * tree-flow-inline.h (overlap_subvar): Move to here.
440 * tree-ssa-operands.c: From here.
441 * tree-flow.h (overlap_subvar): Declare.
442 * tree-ssa-alias.c (add_pointed_to_var): Use overlap_subvar here.
443 * tree-ssa-loop-im.c (is_call_clobbered_ref): Return proper answer
444 for variables with subvars.
446 2005-03-21 Mostafa Hagog <mustafa@il.ibm.com>
449 * ddg.c (create_ddg_dependence): Ignore reg-anti dependency.
450 * modulo-sched.c (const_iteration_count): Return on NULL
452 (print_node_sched_params): Return on NULL dump_file.
453 (generate_reg_moves): Handle reg-anti dependencies and disregard
454 closing branch when generating register moves.
455 (sms_schedule): Mark the SMSed block dirty.
456 * passes.c (rest_of_handle_sms): Call update_life_info for all
458 * testsuite/gcc.dg/20050321-1.c: New test.
460 2005-03-21 Bob Wilson <bob.wilson@acm.org>
462 * config/xtensa/lib1funcs.asm (__mulsi3): Use symbolic name for ACCLO.
463 * config/xtensa/xtensa.md (movsi_internal, movhi_internal,
464 movqi_internal): Likewise.
466 2005-03-21 Bob Wilson <bob.wilson@acm.org>
468 * config/xtensa/xtensa-protos.h: (xtensa_simm7, xtensa_uimm8,
469 xtensa_uimm8x2, xtensa_uimm8x4, xtensa_ai4const, xtensa_lsi4x4,
470 xtensa_b4const): Delete prototypes.
471 (xtensa_simm8, xtensa_simm8x256, xtensa_simm12b, xtensa_b4constu,
472 xtensa_mask_immediate, xtensa_mem_offset): Update prototypes.
473 (xtensa_b4const_or_zero, xtensa_const_ok_for_letter_p,
474 xtensa_extra_constraint): New prototypes.
475 (add_operand, arith_operand, nonimmed_operand, mem_operand,
476 mask_operand, extui_fldsz_operand, sext_operand, sext_fldsz_operand,
477 lsbitnum_operand, branch_operand, ubranch_operand, call_insn_operand,
478 move_operand, const_float_1_operand, fpmem_offset_operand,
479 branch_operator, ubranch_operator, boolean_operator): Delete prototypes.
480 * config/xtensa/xtensa.c (b4const_or_zero): Rename to ...
481 (xtensa_b4const_or_zero): ...this. Change return type to bool and
482 argument type to HOST_WIDE_INT.
483 (xtensa_simm8, xtensa_simm8x256, xtensa_simm12b,
484 xtensa_mask_immediate): Likewise.
485 (xtensa_uimm8, xtensa_uimm8x2, xtensa_uimm8x4, xtensa_b4const):
486 Likewise. Also make these functions static.
487 (xtensa_simm7, xtensa_ai4const, xtensa_lsi4x4): Delete.
488 (xtensa_const_ok_for_letter_p): New.
489 (add_operand, arith_operand, nonimmed_operand, mem_operand,
490 mask_operand, extui_fldsz_operand, sext_operand, sext_fldsz_operand,
491 lsbitnum_operand, branch_operand, ubranch_operand, call_insn_operand,
492 move_operand, const_float_1_operand, fpmem_offset_operand,
493 branch_operator, ubranch_operator, boolean_operator): Move to
495 (smalloffset_mem_p): Inline code from xtensa_lsi4x4.
496 (xtensa_mem_offset): Change return type to bool.
497 (xtensa_extra_constraint): New.
498 (gen_int_relational): Update type of const_range_p function pointer.
499 Use xtensa_b4const_or_zero.
500 * config/xtensa/xtensa.h (CONST_OK_FOR_LETTER_P): Define to
501 xtensa_const_ok_for_letter_p. Update comments.
502 (EXTRA_CONSTRAINT): Define to xtensa_extra_constraint.
503 (PREDICATE_CODES): Delete.
504 * config/xtensa/xtensa.md: Include predicates.md.
505 * config/xtensa/predicates.md: New file.
507 2005-03-21 Kazu Hirata <kazu@cs.umass.edu>
509 * config/v850/v850-protos.h: Remove the prototypes for
510 reg_or_int9_operand, reg_or_const_operand,
511 pattern_is_ok_for_prepare, pattern_is_ok_for_dispose,
512 reg_or_0_operand, reg_or_int5_operand, call_address_operand,
513 movsi_source_operand, power_of_two_operand,
514 not_power_of_two_operand, special_symbolref_operand,
515 pattern_is_ok_for_prologue, pattern_is_ok_for_epilogue, and
516 register_is_ok_for_epilogue.
517 * config/v850/v850.c (reg_or_0_operand, reg_or_int5_operand,
518 reg_or_int9_operand, reg_or_const_operand,
519 call_address_operand, special_symbolref_operand,
520 movsi_source_operand, power_of_two_operand,
521 not_power_of_two_operand, register_is_ok_for_epilogue,
522 pattern_is_ok_for_epilogue, pattern_is_ok_for_prologue,
523 pattern_is_ok_for_dispose, pattern_is_ok_for_prepare): Move to
525 * config/v850/v850.h (PREDICATE_CODES): Remove.
526 * config/v850/v850.md: Include predicates.md.
527 * config/v850/predicates.md: New.
529 2005-03-21 Zack Weinberg <zack@codesourcery.com>
531 * Makefile.in (BASEVER, DEVPHASE, DATESTAMP)
532 (BASEVER_c, DEVPHASE_c, DATESTAMP_c)
533 (BASEVER_s, DEVPHASE_s, DATESTAMP_s, version): Set with :=.
534 (itoolsdir, itoolsdatadir): Move definition above new first use.
535 (install-itoolsdirs): New rule.
536 (install-mkheaders): Depend on install-itoolsdirs, not
539 2005-03-21 Kazu Hirata <kazu@cs.umass.edu>
541 * tree-into-ssa.c: Remove obsolete comments.
543 2005-03-21 Richard Guenther <rguenth@gcc.gnu.org>
545 * tree-ssa-loop.c (gate_tree_complete_unroll): Run complete
546 unrolling if -fpeel-loops is specified, too.
547 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
548 Remove superfluous check for flag_unroll_loops.
550 2005-03-21 Uros Bizjak <uros@kss-loka.si>
552 * optabs.h (enum optab_index): Add new OTI_lrint and OTI_llrint.
553 (lrint_optab, llrint_optab): Define corresponding macros.
554 * optabs.c (init_optabs): Initialize lrint_optab and llrint_optab.
555 * genopinit.c (optabs): Implement lrint_optab using lrintsi2
556 pattern and llrint_optab using llrintdi2 patterns.
557 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LRINT{,F,L}
558 using lrint_optab and BUILT_IN_LLRINT{,F,L} using llrint_optab.
559 (expand_builtin): Expand BUILT_IN_LRINT{,F,L} and
560 BUILT_IN_LLRINT{,F,L} using expand_builtin_mathfn if
561 flag_unsafe_math_optimizations is set.
563 2005-03-21 Paolo Bonzini <bonzini@gnu.org>
565 * combine.c (combine_simplify_rtx, simplify_if_then_else,
566 simplify_logical, if_then_else_cond, known_cond,
567 simplify_comparison): Adjust calls to reverse_comparison.
568 Don't use combine_reversed_comparison_code).
569 (combine_reversed_comparison_code): Remove.
570 (reversed_comparison): Using reversed_comparison_code, move it...
571 * jump.c (reversed_comparison): ... here.
572 * rtl.h (reversed_comparison): Add prototype.
574 2005-03-21 Kazu Hirata <kazu@cs.umass.edu>
576 * builtins.c (fold_builtin): Take decomposed arguments of
578 * fold-const.c (fold_ternary): Update a call to fold_builtin.
579 * gimplify.c (gimplify_call_expr): Likewise.
580 * tree-ssa-ccp.c (ccp_fold, ccp_fold_builtin): Likewise.
581 * tree.h: Update the prototype of fold_builtin.
583 2005-03-21 Paolo Bonzini <bonzini@gnu.org>
585 * rtl.h (struct rtx_hooks): Add gen_lowpart_no_emit.
586 * rtlhooks.c (gen_lowpart_no_emit_general): New.
587 * rtlhooks-def.h (gen_lowpart_no_emit_general): Declare.
588 (RTL_HOOKS_GEN_LOWPART_NO_EMIT): New.
589 * simplify-rtx.c (simplify_binary_operation_1): Use it.
591 2005-03-21 Kazu Hirata <kazu@cs.umass.edu>
593 * builtins.c (fold_builtin_1): Take decomposed arguments of
595 (fold_builtin): Update a call to fold_builtin_1.
597 2005-03-21 Nathan Sidwell <nathan@codesourcery.com>
600 * gcov.c (output_lines): Only output function block summary when
601 outputting branch information.
602 * doc/gcov.texi: Document format of preamble and additional block
605 2005-03-21 Richard Sandiford <rsandifo@redhat.com>
607 * libgcc2.h (LIBGCC2_HAS_SF_MODE): New macro.
608 (LIBGCC2_HAS_DF_MODE, LIBGCC2_HAS_TF_MODE, LIBGCC2_HAS_XF_MODE): Make
609 the defaults false if BITS_PER_UNIT != 8.
610 (SFtype, SCtype, __fixsfdi, __floatdisf, __fixunssfSI, __fixunssfDI)
611 (__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE rather
612 than BITS_PER_UNIT != 8.
613 (L_fixdfdi, L_fixsfdi, L_fixtfdi, L_fixunsdfdi, L_fixunsdfsi)
614 (L_fixunssfdi, L_fixunssfsi, L_fixunstfdi, L_fixunsxfdi, L_fixunsxfsi)
615 (L_fixxfdi, L_floatdidf, L_floatdisf, L_floatditf, L_floatdixf): Remove
617 * libgcc2.c (__fixunssfDI, __fixsfdi, __floatdisf, __fixunssfSI)
618 (__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE.
620 2005-03-20 Roger Sayle <roger@eyesopen.com>
623 * fold-const.c (fold_binary): Fix type mismatch between
624 TRUTH_{AND,OR,XOR}_EXPR nodes an their operands' types.
625 (fold_binary) <TRUTH_XOR_EXPR>: Avoid calling invert_truthvalue
626 for non-truth-valued expressions.
628 * c-common.c (c_common_truthvalue_conversion): Handle ERROR_MARK
629 and FUNCTION_DECL in the main switch.
630 <TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
631 TRUTH_XOR_EXPR>: When changing the result type of these tree nodes,
632 we also need to convert their operands to match.
633 <TRUTH_NOT_EXPR>: Likewise.
635 2005-03-21 Joseph S. Myers <joseph@codesourcery.com>
637 * c-common.c (lvalue_or_else): Replace by lvalue_error; only give
638 diagnostic without checking whether an lvalue.
639 * c-common.h (lvalue_p): Remove.
640 (enum lvalue_use): Update comment.
641 (lvalue_or_else): Replace by lvalue_error.
642 * c-typeck.c (lvalue_p): Make static.
643 (lvalue_or_else): New. Call lvalue_error.
645 2005-03-21 Alan Modra <amodra@bigpond.net.au>
647 * config/rs6000/rs6000.c (rs6000_parm_start): New function.
648 (function_arg_advance): Use rs6000_parm_start.
649 (function_arg, rs6000_arg_partial_bytes): Likewise.
651 2005-03-20 Joseph S. Myers <joseph@codesourcery.com>
653 * c-common.c (check_case_value): Adjust comment about stripping
655 (handle_vector_size_attribute): Don't strip NON_LVALUE_EXPR.
656 * c-typeck.c (default_conversion, convert_arguments,
657 build_modify_expr, convert_for_assignment, store_init_value,
658 digest_init): Use STRIP_TYPE_NOPS instead of stripping nops
659 manually. Remove inaccurate comments.
661 2005-03-20 Roger Sayle <roger@eyesopen.com>
662 Joseph S. Myers <joseph@codesourcery.com>
664 * varasm.c (do_assemble_alias): Restore comment describing function.
665 Annotate the target parameter as potentially unused.
667 2005-03-20 Marek Michalkiewicz <marekm@amelek.gda.pl>
670 * config/avr/avr.c (avr_output_function_prologue): Do not use
671 current_function_name() in a label, use a local label instead.
673 2005-03-20 David Edelsohn <edelsohn@gnu.org>
675 * config/rs6000/rs6000.c (rs6000_generate_compare): Test
676 flag_finite_math_only, not flag_unsafe_math_optimizations.
678 2005-03-20 Kazu Hirata <kazu@cs.umass.edu>
680 * builtins.c (fold_builtin_1): Update a call to
681 targetm.fold_builtin.
682 * hooks.c (hook_tree_tree_bool_null): Rename to
683 hook_tree_tree_tree_bool_null. Take one more argument of type
685 * hooks.h: Update the prototype of hook_tree_tree_bool_null.
686 * target-def.h (TARGET_FOLD_BUILTIN): Define it as
687 hook_tree_tree_tree_bool_null.
688 * target.h (gcc_target): Update the prototype of fold_builtin.
689 * config/alpha/alpha.c (alpha_fold_builtin): Take decomposed
690 arguments of CALL_EXPR.
691 * doc/tm.texi (TARGET_FOLD_BUILTIN): Update. Mention the
694 2005-03-20 Jan Hubicka <jh@suse.cz>
696 * cgraph.h (cgraph_node): Add prev_clone pointer.
697 * cgraph.c (cgraph_remove_node): Remove from doubly linked chain.
698 (cgraph_clone_node): Produce doubly linked chain.
700 2005-03-20 Joseph S. Myers <joseph@codesourcery.com>
702 * c-common.c (handle_aligned_attribute, check_function_sentinel,
703 get_nonnull_operand, handle_sentinel_attribute,
704 check_function_arguments_recurse): Do not strip NOPS from
706 * c-decl.c (check_bitfield_type_and_width, build_enumerator):
708 * c-format.c (get_constant): Likewise.
709 * c-parser.c (c_parser_postfix_expression): Likewise.
710 * c-typeck.c (set_init_index): Likewise.
711 (convert_arguments): Don't check for NOP_EXPR containing integer
714 2005-03-20 Kazu Hirata <kazu@cs.umass.edu>
716 * builtins.c (fold_fixed_mathfn, fold_builtin_trunc,
717 fold_builtin_floor, fold_builtin_ceil, fold_builtin_lround):
718 Take decomposed arguments of CALL_EXPR.
719 (fold_builtin_1): Update calls to the functions mentioned
722 2005-03-20 Joseph S. Myers <joseph@codesourcery.com>
724 * c-decl.c (check_bitfield_type_and_width): Require bit-field
725 width to have integer type.
726 (build_enumerator): Require enumerator value to have integer type.
728 2005-03-19 Joseph S. Myers <joseph@codesourcery.com>
730 * doc/extend.texi (__builtin_inf): Move statement about INFINITY
733 2005-03-19 Joseph S. Myers <joseph@codesourcery.com>
735 * c.opt (ansi, std=iso9899:1990, std=iso9899:1999,
736 std=iso9899:199x): Correct descriptions.
738 2005-03-19 Joseph S. Myers <joseph@codesourcery.com>
740 * config.gcc: Consistently use solaris2.1[0-9]* instead of
743 2005-03-19 Kazu Hirata <kazu@cs.umass.edu>
745 * builtins.c (fold_builtin_memcpy): Take decomposed arguments
747 (expand_builtin_memcpy, fold_builtin_1): Update calls to
750 * builtins.c (fold_trunc_transparent_mathfn): Take decomposed
751 arguments of CALL_EXPR.
752 (fold_builtin_trunc, fold_builtin_floor, fold_builtin_ceil,
753 fold_builtin_found, fold_builtin_1): Update calls to
754 fold_trunc_transparent_mathfn.
756 2005-03-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
759 * fold-const.c (fold_widened_comparison): Don't optimize casts of
760 function pointers on targets that require function pointer
762 (fold_sign_changed_comparison): Likewise.
764 2005-03-19 Bernd Schmidt <bernd.schmidt@analog.com>
766 * combine.c (try_combine): When changing the mode of a hard reg, make
767 sure that doing so is valid.
769 2005-03-19 Richard Sandiford <rsandifo@redhat.com>
771 * config/avr/avr.c (avr_init_stack, avr_mcu_name): Make static.
772 (TARGET_HANDLE_OPTION): Override default.
773 (avr_handle_option): New function.
774 * config/avr/avr.h (MASK_ALL_DEBUG, MASK_ORDER_1, MASK_INSN_SIZE_DUMP)
775 (MASK_ORDER_2, MASK_NO_TABLEJUMP, MASK_INT8, MASK_NO_INTERRUPTS)
776 (MASK_CALL_PROLOGUES, MASK_TINY_STACK, MASK_SHORT_CALLS)
777 (TARGET_ORDER_1, TARGET_ORDER_2, TARGET_INT8, TARGET_NO_INTERRUPTS)
778 (TARGET_INSN_SIZE_DUMP, TARGET_CALL_PROLOGUES, TARGET_TINY_STACK)
779 (TARGET_NO_TABLEJUMP, TARGET_SHORT_CALLS, TARGET_ALL_DEBUG)
780 (TARGET_SWITCHES, avr_init_stack, avr_mcu_name)
781 (TARGET_OPTIONS): Delete.
782 * config/avr/avr.opt: New file.
784 2005-03-18 2005-03-18 Kazu Hirata <kazu@cs.umass.edu>
786 * config/m32r/m32r-protos.h: Remove the prototypes for
787 call_address_operand, symbolic_operand, seth_add3_operand,
788 cmp_int16_operand, uint16_operand, reg_or_int16_operand,
789 reg_or_uint16_operand, reg_or_cmp_int16_operand,
790 two_insn_const_operand, move_src_operand,
791 move_double_src_operand, move_dest_operand,
792 eqne_comparison_operator, signed_comparison_operator,
793 large_insn_p, conditional_move_operand, carry_compare_operand,
794 m32r_block_immediate_operand, extend_operand,
795 reg_or_eq_int16_operand, int8_operand, and
797 * config/m32r/m32r.c (call_address_operand, symbolic_operand,
798 seth_add3_operand, int8_operand, cmp_int16_operand,
799 uint16_operand, reg_or_int16_operand, reg_or_uint16_operand,
800 reg_or_eq_int16_operand, reg_or_cmp_int16_operand,
801 reg_or_zero_operand, two_insn_const_operand, move_src_operand,
802 move_double_src_operand, move_dest_operand,
803 eqne_comparison_operator, signed_comparison_operator,
804 extend_operand, small_insn_p, large_insn_p,
805 conditional_move_operand, carry_compare_operand,
806 m32r_block_immediate_operand): Move to predicates.md.
807 (MAX_MOVE_BYTES): Move to m32r.h.
808 * config/m32r/m32r.h (PREDICATE_CODES): Remove.
809 * config/m32r/m32r.md: Include predicates.md.
810 * config/m32r/predicates.md: New.
812 2005-03-18 James E Wilson <wilson@specifixinc.com>
815 * dwarf2out.c (declare_in_namespace): Ignore decls with an abstract
818 2005-03-18 Kazu Hirata <kazu@cs.umass.edu>
820 * config/mn10300/mn10300-protos.h: Remove the prototypes for
821 call_address_operand, const_8bit_operand.
822 * config/mn10300/mn10300.c (call_address_operand,
823 const_8bit_operand, const_1f_operand): Move to predicates.md.
824 * config/mn10300/mn10300.h (PREDICATE_CODES): Remove.
825 * config/mn10300/mn10300.md: Include predicates.md.
826 * config/mn10300/predicates.md: New.
828 2005-03-18 Joseph S. Myers <joseph@codesourcery.com>
830 * c-common.c, c-decl.c, c-format.c, c-typeck.c: Use %D for
831 declarations in diagnostics and %E for identifiers, not %s.
833 2005-03-18 Jan Hubicka <jh@suse.cz>
834 Dale Johannesen <dalej@apple.com>
836 * basic-block.h (scale_bbs_frequencies_int,
837 scale_bbs_frequencies_gcov_type): Declare.
838 * cfg.c (RDIV): New macro.
839 (update_bb_frequency_for_threading): Fix.
840 * basic-block.h (scale_bbs_frequencies_int,
841 scale_bbs_frequencies_gcov_type): New.
842 * cfgloopmanip.c (scale_bbs_frequencies): Kill.
843 (scale_loop_frequencies, duplicate_loop_to_header_edge): Use
844 scale_bbs_frequencies_int.
845 * tree-ssa-loop-ch.c (copy_loop_headers): Fix profiling info.
847 2005-03-18 Kazu Hirata <kazu@cs.umass.edu>
849 * config/m32r/m32r-protos.h: Remove the prototypes for
850 call_address_operand, symbolic_operand, seth_add3_operand,
851 cmp_int16_operand, uint16_operand, reg_or_int16_operand,
852 reg_or_uint16_operand, reg_or_cmp_int16_operand,
853 two_insn_const_operand, move_src_operand,
854 move_double_src_operand, move_dest_operand,
855 eqne_comparison_operator, signed_comparison_operator,
856 large_insn_p, conditional_move_operand, carry_compare_operand,
857 m32r_block_immediate_operand, extend_operand,
858 reg_or_eq_int16_operand, int8_operand, and
860 * config/m32r/m32r.c (call_address_operand, symbolic_operand,
861 seth_add3_operand, int8_operand, cmp_int16_operand,
862 uint16_operand, reg_or_int16_operand, reg_or_uint16_operand,
863 reg_or_eq_int16_operand, reg_or_cmp_int16_operand,
864 reg_or_zero_operand, two_insn_const_operand, move_src_operand,
865 move_double_src_operand, move_dest_operand,
866 eqne_comparison_operator, signed_comparison_operator,
867 extend_operand, small_insn_p, large_insn_p,
868 conditional_move_operand, carry_compare_operand,
869 m32r_block_immediate_operand): Move to predicates.md.
870 (MAX_MOVE_BYTES): Move to m32r.h.
871 * config/m32r/m32r.h (PREDICATE_CODES): Remove.
872 * config/m32r/m32r.md: Include predicates.md.
873 * config/m32r/predicates.md: New.
875 * config/pa/pa-protos.h: Add prototypes for magic_milli and
877 * config/pa/pa.c (reg_or_0_operand, call_operand_address,
878 symbolic_operand, symbolic_memory_operand,
879 reg_or_0_or_nonsymb_mem_operand, reg_before_reload_operand,
880 indexed_memory_operand, move_dest_operand, move_src_operand,
881 prefetch_cc_operand, prefetch_nocc_operand,
882 reg_or_cint_move_operand, pic_label_operand, fp_reg_operand,
883 arith_operand, arith11_operand, pre_cint_operand,
884 post_cint_operan, arith_double_operand, ireg_or_int5_operand,
885 ireg_operand, int5_operand, uint5_operand, int11_operand,
886 uint32_operand, arith5_operand, and_operand, ior_operand,
887 lhs_lshift_operand, lhs_lshift_cint_operand, arith32_operand,
888 pc_or_label_operand, div_operand, plus_xor_ior_operator,
889 shadd_operand, movb_comparison_operator,
890 cmpib_comparison_operator): Move to predicates.md.
891 (magic_milli, shadd_constant_p): Make it extern.
892 * config/pa/pa.h (PREDICATE_CODES): Remove.
893 * config/pa/pa.md: Include predicates.md.
894 * config/pa/predicates.md: New.
896 * config/v850/v850.h (PREDICATE_CODES): Remove a nonexistent
899 2005-03-18 Kazu Hirata <kazu@cs.umass.edu>
901 * hooks.c, hooks.h, intl.c, opts.h, prefix.c, tree-gimple.c,
902 config/alpha/ev4.md, config/alpha/ev5.md, config/alpha/ev6.md,
903 config/alpha/freebsd.h, config/alpha/linux.h,
904 config/alpha/netbsd.h, config/alpha/osf5.h,
905 config/alpha/vms.h, config/arc/arc.c, config/arc/arc.h,
906 config/h8300/h8300-protos.h, config/h8300/h8300.c,
907 config/h8300/h8300.h, config/ia64/unwind-ia64.c,
908 doc/cppopts.texi: Update copyright.
910 2005-03-18 Jan Hubicka <jh@suse.cz>
913 * cgraph.c (cgraph_mark_reachable_node): Assert that it is not called
915 * varasm.c (find_decl_and_mark_needed): Mark needed only when not
918 2005-03-18 Kazu Hirata <kazu@cs.umass.edu>
920 * tree-into-ssa.c (find_idf): Use VEC_quick_push instead of
923 2005-03-18 Paolo Bonzini <bonzini@gnu.org>
925 * combine.c (gen_binary): Remove.
926 (known_cond, simplify_shift_const, find_split_point,
927 combine_simplify_rtx, simplify_if_then_else, simplify_set,
928 simplify_logical, expand_field_assignment, extract_left_shift,
929 force_to_mode, if_then_else_cond, apply_distributive_law,
930 simplify_and_const_int, simplify_shift_const, gen_lowpart_for_combine,
931 simplify_comparison, reversed_comparison): Replace with
932 simplify_gen_binary, simplify_gen_relational or
933 distribute_and_simplify_rtx.
934 (distribute_and_simplify_rtx): New function.
936 2005-03-18 Alexey Neyman <alex.neyman@auriga.ru>
937 Paolo Bonzini <gcc.gnu.org>
939 * calls.c (setjmp_call_p, special_function_p): Update comments
940 at the head of the functions.
942 2005-03-18 Jan Hubicka <jh@suse.cz>
944 * tree-cfg.c (fold_cond_expr_cond): Use boolean types for condition.
946 * cgraph.c (cgraph_remove_node): Avoid loop in code deciding whether
947 function body should be released; do not proactively release function
948 bodies in non-unit-at-a-time mode.
950 2005-03-18 Ralf Corsepius <ralf.corsepius@rtems.org>
952 * config/i386/t-rtems-i386 (MULTILIBS): Remove k6, athlon,
953 mno-fp-ret-in-387 multilib variants.
955 2005-03-18 Richard Sandiford <rsandifo@redhat.com>
957 * common.opt (m): Remove.
958 * opts.c (handle_option): Pass 'm' options to set_target_switch if
960 (common_handle_option): Remove OPT_m case.
962 2005-03-18 Kazu Hirata <kazu@cs.umass.edu>
964 * builtins.c (fold_builtin_bitop): Take decomposed arguments
966 (fold_builtin_1): Update a call to fold_builtin_bitop.
968 * builtins.c (fold_builtin_signbit): Take decomposed arguments
970 (fold_builtin_1): Update a call to fold_builtin_signbit.
972 2005-03-17 Dorit Naishlos <dorit@il.ibm.com>
974 PR tree-optimization/20474
975 * tree-vect-analyze.c (vect_analyze_pointer_ref_access): Check the
976 size_type of the relevant pointer. Check for COMPLETE_TYPE_P.
978 2005-03-17 Kazu Hirata <kazu@cs.umass.edu>
980 * config/h8300/h8300-protos.h: Remove prototypes for
981 general_operand_src, general_operand_dst, single_one_operand,
982 single_zero_operand, call_insn_operand,
983 two_insn_adds_subs_operand, small_call_insn_operand,
984 jump_address_operand, bit_operand, bit_memory_operand,
985 stack_pointer_operand, const_int_gt_2_operand,
986 const_int_ge_8_operand, const_int_qi_operand,
987 const_int_hi_operand, incdec_operand, bit_operator,
988 nshift_operator, eqne_operator, gtle_operator,
989 gtuleu_operator, iorxor_operator.
990 Add prototypes for h8sx_shift_type h8sx_classify_shift and
991 h8300_ldm_stm_parallel.
992 * config/h8300/h8300.c (h8sx_shift_type,): Move to
994 (SYMBOL_FLAG_FUNCVEC_FUNCTION, SYMBOL_FLAG_EIGHTBIT_DATA,
995 SYMBOL_FLAG_TINY_DATA): Move to h8300.h.
996 (h8300_ldm_stm_parallel): Make it extern.
997 (h8300_ldm_parallel, h8300_stm_parallel,
998 h8300_return_parallel, general_operand_src,
999 general_operand_dst, h8300_dst_operand, h8300_src_operand,
1000 nibble_operand, reg_or_nibble_operand, single_one_operand,
1001 single_zero_operand, call_insn_operand,
1002 two_insn_adds_subs_operand, small_call_insn_operand,
1003 jump_address_operand, bit_operand, bit_memory_operand,
1004 stack_pointer_operand, const_int_gt_2_operand,
1005 const_int_ge_8_operand, const_int_qi_operand,
1006 const_int_hi_operand, incdec_operand, eqne_operator,
1007 gtle_operator, gtuleu_operator, iorxor_operator, bit_operator,
1008 h8sx_binary_memory_operator, h8sx_unary_memory_operator,
1009 h8sx_unary_shift_operator, h8sx_binary_shift_operator,
1010 nshift_operator): Move to predicates.md.
1011 * config/h8300/h8300.h (PREDICATE_CODES): Remove.
1012 * config/h8300/h8300.md: Include predicates.md.
1013 * config/h8300/predicates.md: New.
1015 2005-03-17 Richard Henderson <rth@redhat.com>
1017 * config.gcc (ia64*-*-hpux*): Add extra_options.
1018 * config/ia64/hpux.h (SUBTARGET_SWITCHES): Remove.
1019 (TARGET_DEFAULT): Remove MASK_INLINE_FLOAT_DIV_THR.
1020 * config/ia64/ia64.c (ia64_fixed_range_string): Remove.
1021 (ia64_tls_size_string, ia64_tune_string): Remove.
1022 (ia64_tune): Init to PROCESSOR_ITANIUM2.
1023 (TARGET_DEFAULT_TARGET_FLAGS): New.
1024 (TARGET_HANDLE_OPTION): New.
1025 (ia64_override_options): Move options parsing ...
1026 (ia64_handle_option): ... here. New.
1027 * config/ia64/ia64.h (target_flags, MASK_BIG_ENDIAN, MASK_GNU_AS,
1028 MASK_GNU_LD, MASK_NO_PIC, MASK_VOL_ASM_STOP, MASK_ILP32,
1029 MASK_REG_NAMES, MASK_NO_SDATA, MASK_CONST_GP, MASK_AUTO_PIC,
1030 MASK_INLINE_FLOAT_DIV_LAT, MASK_INLINE_FLOAT_DIV_THR,
1031 MASK_INLINE_INT_DIV_LAT, MASK_INLINE_INT_DIV_THR,
1032 MASK_INLINE_SQRT_LAT, MASK_INLINE_SQRT_THR, MASK_DWARF2_ASM,
1033 MASK_EARLY_STOP_BITS, TARGET_BIG_ENDIAN, TARGET_GNU_AS, TARGET_GNU_LD,
1034 TARGET_NO_PIC, TARGET_VOL_ASM_STOP, TARGET_ILP32, TARGET_REG_NAMES,
1035 TARGET_NO_SDATA, TARGET_CONST_GP, TARGET_AUTO_PIC,
1036 TARGET_INLINE_FLOAT_DIV_LAT, TARGET_INLINE_FLOAT_DIV_THR,
1037 TARGET_INLINE_INT_DIV_LAT, TARGET_INLINE_INT_DIV_THR,
1038 TARGET_INLINE_FLOAT_DIV, TARGET_INLINE_INT_DIV, TARGET_INLINE_SQRT_LAT,
1039 TARGET_INLINE_SQRT_THR, TARGET_INLINE_SQRT, TARGET_DWARF2_ASM,
1040 TARGET_EARLY_STOP_BITS): Remove.
1041 (TARGET_ILP32): Default false.
1042 (TARGET_SWITCHES, SUBTARGET_SWITCHES, TARGET_OPTIONS): Remove.
1043 (enum ia64_inline_type): New.
1044 (TARGET_DEFAULT): Remove MASK_INLINE_FLOAT_DIV_THR.
1045 * config/ia64/ia64.md: Update for new definitions of
1046 TARGET_INLINE_INT_DIV, TARGET_INLINE_FLOAT_DIV, TARGET_INLINE_SQRT.
1047 * config/ia64/ia64.opt: New file.
1048 * config/ia64/ilp32.opt: New file.
1050 2005-03-17 H.J. Lu <hongjiu.lu@intel.com>
1053 * config/ia64/unwind-ia64.c (_Unwind_FindTableEntry): Removed.
1055 2005-03-17 Kazu Hirata <kazu@cs.umass.edu>
1057 * config/h8300/h8300.c (h8300_init_once): Use MASK_H8300S_1
1058 instead of MASK_H8300S.
1059 * config/h8300/h8300.h (target_flags, MASK_H8300S, MASK_MAC,
1060 MASK_INT32, MASK_ADDRESSES, MASK_QUICKCALL, MASK_SLOWBYTE,
1061 MASK_NORMAL_MODE, MASK_RELAX, MASK_H8300H, MASK_ALIGN_300,
1062 MASK_H8300SX, TARGET_INT32, TARGET_ADDRESSES,
1063 TARGET_QUICKCALL, TARGET_SLOWBYTE, TARGET_H8300H,
1064 TARGET_H8300XS, TARGET_NORMAL_MODE, TARGET_ALIGN_300,
1065 TARGET_SWITCHES): Remove.
1066 (TARGET_H8300S): Redefine interms of TARGET_H8300S_1 and
1068 * config/h8300/h8300.opt: New.
1070 * config/alpha/alpha.opt, config/arc/arc.opt,
1071 config/h8300/h8300.opt, config/mips/mips.opt: Add copyright
1074 2005-03-17 Ian Lance Taylor <ian@airs.com>
1078 2005-03-17 Richard Sandiford <rsandifo@redhat.com>
1080 * config/arc/arc.c (arc_cpu_string): Make static. Default to "base"
1081 (arc_text_string, arc_data_string, arc_rodata_string): Make static.
1082 (TARGET_HANDLE_OPTION): Override default.
1083 (arc_handle_option): New function.
1084 (arc_init): Remove code to set arch_cpu_string.
1085 * config/arc/arc.h (target_flags, TARGET_MASK_MANGLE_CPU)
1086 (TARGET_MANGLE_CPU, TARGET_MASK_MANGLE_CPU_LIBGCC)
1087 (TARGET_MANGLE_CPU_LIBGCC, TARGET_MASK_ALIGN_LOOPS, TARGET_ALIGN_LOOPS)
1088 (TARGET_MASK_BIG_ENDIAN, TARGET_BIG_ENDIAN, TARGET_MASK_NO_COND_EXEC)
1089 (TARGET_NO_COND_EXEC, TARGET_SWITCHES, TARGET_DEFAULT)
1090 (SUBTARGET_SWITCHES, arc_cpu_string, arc_text_string, arc_data_string)
1091 (arc_rodata_string, TARGET_OPTIONS): Delete.
1092 * config/arc/arc.opt: New file.
1094 2005-03-17 Richard Henderson <rth@redhat.com>
1096 * doc/extend.texi (Weak Pragmas): New section.
1097 (attribute alias): Clarify that target must be in the same
1100 2005-03-17 Richard Henderson <rth@redhat.com>
1102 * config/alpha/alpha.opt: New file.
1103 * config/alpha/alpha.c (alpha_tune): New. Rename all existing uses
1105 (alpha_cpu_string, alpha_tune_string, alpha_tp_string,
1106 alpha_fprm_string, alpha_fptm_string): Make static.
1107 (alpha_tls_size_string): Remove.
1108 (alpha_handle_option): New.
1109 (override_options): Update for alpha_cpu/alpha_tune split.
1110 (alpha_file_start): Likewise.
1111 (TARGET_DEFAULT_TARGET_FLAGS): New.
1112 (TARGET_HANDLE_OPTION): New.
1113 * config/alpha/alpha.h (alpha_tune): Declare.
1114 (MASK_FP, MASK_FPREGS, TARGET_FPREGS, MASK_GAS, TARGET_GAS,
1115 MASK_IEEE_CONFORMANT, TARGET_IEEE_CONFORMANT, MASK_IEEE, TARGET_IEEE,
1116 MASK_IEEE_WITH_INEXACT, TARGET_IEEE_WITH_INEXACT, MASK_BUILD_CONSTANTS,
1117 TARGET_BUILD_CONSTANTS, MASK_FLOAT_VAX, TARGET_FLOAT_VAX, MASK_BWX,
1118 TARGET_BWX, MASK_MAX, TARGET_MAX, MASK_FIX, TARGET_FIX, MASK_CIX,
1119 TARGET_CIX, MASK_EXPLICIT_RELOCS, TARGET_EXPLICIT_RELOCS,
1120 MASK_SMALL_DATA, TARGET_SMALL_DATA, MASK_TLS_KERNEL, TARGET_TLS_KERNEL,
1121 MASK_SMALL_TEXT, TARGET_SMALL_TEXT, MASK_LONG_DOUBLE_128,
1122 TARGET_LONG_DOUBLE_128, MASK_CPU_EV5, TARGET_CPU_EV5, MASK_CPU_EV6,
1123 TARGET_CPU_EV6, MASK_SUPPORT_ARCH): Remove.
1124 (TARGET_SWITCHES, TARGET_OPTIONS): Remove.
1125 (TARGET_DEFAULT): Remove MASK_FP.
1126 (TARGET_FP): Redefined based on TARGET_SOFT_FP.
1127 (TARGET_SUPPORT_ARCH): Default on if HAVE_AS_EXPLICIT_RELOCS.
1128 (alpha_cpu_string, alpha_tune_string, alpha_fprm_string,
1129 alpha_fptm_string, alpha_tp_string, alpha_mlat_string,
1130 alpha_tls_size_string): Remove.
1131 * config/alpha/alpha.md (prefetch): Use alpha_cpu.
1132 (attribute tune): Rename from attribute cpu.
1133 * config/alpha/ev4.md: Update to match.
1134 * config/alpha/ev5.md, config/alpha/ev6.md: Likewise.
1135 * config/alpha/freebsd.h (TARGET_DEFAULT): Remove MASK_FP.
1136 * config/alpha/linux.h (TARGET_DEFAULT): Likewise.
1137 * config/alpha/netbsd.h (TARGET_DEFAULT): Likewise.
1138 * config/alpha/osf5.h (TARGET_DEFAULT): Likewise.
1139 * config/alpha/vms.h (TARGET_DEFAULT): Likewise.
1141 2005-03-16 James E. Wilson <wilson@specifixinc.com>
1143 * config/ia64/ia64.c (issue_nops_and_insn): Check first_insn attribute,
1144 and return without creating new state if before_nops_num is nonzero.
1145 * config/ia64/ia64.md (first_insn): New attribute.
1146 (alloc): Set it to yes.
1148 2005-03-16 Daniel Berlin <dberlin@dberlin.org>
1150 * tree-vectorizer.c (new_vec_stmt_info): Initialize
1151 STMT_VINFO_SUBVARS to NULL.
1152 * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
1154 2005-03-16 Dale Johannesen <dalej@apple.com>
1156 * rtlanal.c (find_first_parameter_load): Rewrite to
1157 return actual first param load or the call if none,
1158 instead of first in block, when not all loads exist.
1160 2005-03-16 Roger Sayle <roger@eyesopen.com>
1162 * optabs.c (expand_copysign_absneg): Make static.
1163 * optabs.h (expand_copysign_absneg): Delete prototype.
1164 * config/rs6000/rs6000.md (copysigntf3): Delete pattern.
1166 2005-03-16 Richard Henderson <rth@redhat.com>
1169 * varasm.c (struct alias_pair): Rename from struct output_def_pair.
1170 (alias_pairs): Rename from output_defs.
1171 (find_decl_and_mark_needed): Split out from assemble_alias.
1172 (do_assemble_alias): New.
1173 (assemble_output_def): Remove.
1174 (finish_aliases_1, finish_aliases_2): New.
1175 (process_pending_assemble_output_defs): Remove.
1176 (assemble_alias): Defer aliases for which we don't yet have a
1177 non-external decl for the target symbol.
1178 * passes.c (rest_of_decl_compilation): Register variables with cgraph.
1179 * cgraphunit.c (cgraph_finalize_compilation_unit): Use finish_aliases_1.
1180 * toplev.c (compile_file): Use finish_aliases_2 instead of
1181 process_pending_assemble_output_defs.
1182 * tree.h (finish_aliases_1, finish_aliases_2): Declare.
1183 (process_pending_assemble_output_defs): Remove.
1185 2005-03-16 Daniel Berlin <dberlin@dberlin.org>
1187 Fix PR tree-optimization/20489
1189 * tree-ssa-alias.c (push_fields_onto_fieldstack): DTRT
1190 for empty structures.
1192 2005-03-16 Daniel Berlin <dberlin@dberlin.org>
1194 Fix PR tree-optimization/20490
1196 * tree-ssa-pre.c (create_expression_by_pieces): Use
1197 force_gimple_operand on result of fold.
1199 2005-03-16 Andrew Pinski <pinskia@physics.uc.edu>
1201 * config/i386/emmintrin.h (_mm_extract_epi16): Correct the number
1202 of closing parenthesis.
1204 2005-03-16 Kazu Hirata <kazu@cs.umass.edu>
1206 * builtins.c (expand_movstr): Update a call to
1207 fold_builtin_strcpy.
1208 (expand_builtin_strncpy): Update a call to
1209 fold_builtin_strncpy.
1210 (fold_builtin_strcpy, fold_builtin_strncpy): Take decomosed
1211 arguments of CALL_EXPR.
1212 (fold_builtin_1): Update calls to fold_builtin_strcpy and
1213 fold_builtin_strncpy.
1214 * tree-ssa-ccp.c (ccp_fold_builtin): Likewise.
1215 * tree.h: Update the prototypes of fold_builtin_strcpy and
1216 fold_builtin_strncpy.
1218 2005-03-16 Steven Bosscher <stevenb@suse.de>
1219 Dorit Naishlos <dorit@il.ibm.com>
1221 * tree-vect-analyze.c (vect_enhance_data_refs_alignment): Copy
1222 UNITS_PER_SIMD_WORD to a local variable to avoid a "division by zero"
1225 2005-03-16 Steven Bosscher <stevenb@suse.de>
1227 * tree-inline.c (walk_type_fields, walk_tree,
1228 walk_tree_without_duplicates): Move from here...
1229 * tree.c: ...to here.
1231 2005-03-15 Zack Weinberg <zack@codesourcery.com>
1233 * BASE-VER, DATESTAMP, DEV-PHASE: New files.
1234 * Makefile.in (gcc_version, gcc_version_trigger, ): Delete.
1235 (BASEVER, DEVPHASE, DATESTAMP, BASEVER_c, DEVPHASE_c, DATESTAMP_c)
1236 (BASEVER_s, DEVPHASE_s, DATESTAMP_s): New variables.
1237 (version): Define using $(BASEVER_c).
1238 (Makefile, config.status, build/gcov-iov.o): No longer depends on
1240 (version.o): Depend on version files; add custom generation command.
1241 (prefix.o): Define BASEVER on command line.
1242 (s-iov): Depend on version files; adjust command.
1243 (TEXI_CPP_FILES, TEX_IGCC_FILES, TEXI_GCCINT_FILES, TEXI_CPPINT_FILES):
1245 (gcc-vers.texi): New rule.
1246 (doc/%.info, doc/%.dvi): Add -I . to command line.
1247 (doc/gccinstall.dvi): Likewise.
1248 (PACKAGE): Delete. All uses replaced with "gcc".
1249 * aclocal.m4: Do not include gcc-version.m4.
1250 * configure.ac: Do not invoke TL_AC_GCC_VERSION.
1251 Do not AC_SUBST nor AC_DEFINE PACKAGE or VERSION.
1252 Set is_release based on contents of DEV-PHASE.
1253 Set gcc_version based on contents of BASE-VER.
1254 Define WIN32_REGISTRY_KEY only if the user overrode the default.
1255 * config.in, configure: Regenerate.
1256 * gccbug.in: Determine version of GCC in use at runtime.
1257 * gcov-iov.c: Get version number and development phase from
1258 command line, not by including version.c.
1259 * intl.c: Replace all uses of PACKAGE with "gcc".
1260 * libada-mk.in: Delete unused "gcc_version" variable.
1261 * prefix.c: Default WIN32_REGISTRY_KEY to BASEVER.
1262 * version.c: (VERSUFFIX): New hook for redistributors; adjust
1263 commentary to match.
1264 (version_string): Put together from pieces.
1265 * config/alpha/x-vms: Do not use $(gcc_version).
1266 * config/i386/t-nwld: Likewise.
1267 * doc/include/gcc-common.texi: Include gcc-vers.texi for
1268 version-GCC and DEVELOPMENT.
1270 2005-03-15 Roger Sayle <roger@eyesopen.com>
1272 PR tree-optimization/17454
1273 * tree.c (tree_size): Add case for TREE_BINFO.
1274 * fold-const.c (fold_checksum_tree): Only clear the overloaded
1275 field TYPE_CACHED_VALUES if TYPE_CACHED_VALUES_P is set.
1277 2005-03-15 Roger Sayle <roger@eyesopen.com>
1279 * optabs.c (expand_doubleword_mult): Avoid clobbering op0 and
1280 op1 whilst expanding the signed widenening multiply variant.
1282 2005-03-15 Richard Sandiford <rsandifo@redhat.com>
1284 * toplev.c (display_target_options): Avoid unused variable warning if
1285 TARGET_SWITCHES and TARGET_OPTIONS are both undefined.
1286 * config/mips/mips.c (mips_arch_string, mips_tune_string): Make static.
1287 (mips_isa_string, mips_abi_string, mips_fix_vr4130_string): Delete.
1288 (mips_isa): Initialize to MIPS_ABI_DEFAULT.
1289 (mips_isa_info): New variable.
1290 (mips_parse_cpu): Remove the first argument and leave the caller
1292 (TARGET_HANDLE_OPTION): Override default.
1293 (mips_handle_option): New function. Move option validation code from...
1294 (override_options): ...here. Update calls to mips_parse_cpu.
1295 * config/mips/mips.h (mips_arch_string, mips_tune_string)
1296 (mips_isa_string, mips_abi_string, TARGET_OPTIONS)
1297 (SUBTARGET_TARGET_OPTIONS): Delete.
1298 * config/mips/mips.opt (mabi=, march=, mflush-func=, mips)
1299 (mno-flush-func, mtune=): New options.
1301 2005-03-15 Roger Sayle <roger@eyesopen.com>
1302 Richard Henderson <rth@redhat.com>
1304 * real.c (c4x_single_format, c4x_extended_format): Provide values
1305 for signbit_ro for c4x's single and extended floating point formats.
1306 * optabs.c (expand_copysign): Use the floating point format's
1307 signbit_ro for expanding via expand_copysign_absneg, and it's
1308 signbit_rw field for expanding via expand_copysign_bit.
1310 2005-03-15 Dorit Naishlos <dorit@il.ibm.com>
1312 * tree-vectorizer.h (unknown_alignment_for_access_p): Replaced by
1313 known_alignment_for_access_p.
1314 (known_alignment_for_access_p): New.
1315 (do_peeling_for_alignment): Field made int instead of bool and renamed
1316 to peeling_for_alignment.
1317 (LOOP_DO_PEELING_FOR_ALIGNMENT): Renamed to LOOP_PEELING_FOR_ALIGNMENT.
1318 * tree-vect-analyze.c (vect_determine_vectorization_factor): New. This
1319 functionality used to be in vect_analyze_operations.
1320 (vect_analyze_operations): Code to determine vectorization factor was
1321 moved to vect_determine_vectorization_factor.
1322 (vect_enhance_data_refs_alignment): Update to correct alignment when it
1323 is known instead of -1. Set LOOP_PEELING_FOR_ALIGNMENT to peeling
1325 (vect_analyze_loop): Call vect_determine_vectorization_factor (used to
1326 be part of vect_analyze_operations).
1327 * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Use fold when
1328 creating the guard condition, as the number of iterations may be
1330 (slpeel_tree_peel_loop_to_edge): Use new name of
1331 LOOP_DO_PEELING_FOR_ALIGNMENT. Set it to 0 instead of false.
1332 * tree-vect-transform.c (vect_gen_niters_for_prolog_loop): Handle known
1333 alignment case more efficiently. Use LOOP_PEELING_FOR_ALIGNMENT.
1334 (vect_do_peeling_for_alignment): Use fold.
1335 (vect_transform_loop): Use new name of LOOP_DO_PEELING_FOR_ALIGNMENT.
1337 (vect_update_inits_of_dr): Renamed to
1338 vect_update_init_of_dr.
1339 (vect_update_inits_of_drs): Use new name of vect_update_inits_of_dr.
1340 (vectorizable_store): Fix assertion to use == instead of =.
1342 2005-03-15 Daniel Jacobowitz <dan@codesourcery.com>
1344 * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't clear
1345 call_used_regs for wCG registers.
1347 2005-03-15 Ulrich Weigand <uweigand@de.ibm.com>
1349 * config/s390/s390.c (s390_secondary_output_reload_class): Adapt check
1350 for non-offsettable memory references to cope with outstanding reload
1351 replacements, take 2.
1353 2005-03-15 Uros Bizjak <uros@kss-loka.si>
1356 * config/i386/i386.h (x86_fisttp): New.
1357 (TARGET_FISTTP): New macro.
1358 * config/i386/i386.c (x86_fisttp): Set for NOCONA.
1359 (output_fix_trunc): Add fisttp parameter. Generate fisttp x87
1360 instruction when fisttp flag is set.
1361 * config/i386/i386-protos.h (output_fix_trunc): Change declaration.
1363 * config/i386/i386.md (type attribute): Add fisttp.
1364 (unit attribute): Set to i387 for fisttp type.
1365 (X87MODEF, X87MODEI, SSEMODEF, SSEMODEI24): New mode macros.
1366 (fix_truncxfdi2, fix_truncxfsi2): Generate fisttp patterns for
1368 (fix_truncdfdi2, fix_truncsfdi2, fix_truncdfsi2, fix_truncsfsi2):
1369 Generate fisttp patterns for TARGET_FISTTP. Implement using mode
1371 (fix_truncxfhi2, fix_truncdfhi2, fix_truncsfhi2): Generate fisttp
1372 patterns for TARGET_FISTTP. Enable patterns for
1373 (TARGET_FISTTP && !TARGET_SSE_MATH). Implement using mode macros.
1374 (fix_trunc<mode>_i387_fisttp_1, fix_trunc<mode>_i387_fisttp,
1375 fix_trunc<mode>_i387_fisttp_with_temp): New instruction patterns to
1376 implement fisttp x87 insn.
1377 (fix_trunc*_i387_fisttp splitters): New patterns.
1378 (*fix_truncdi_i387, *fix_truncsi_i387, *fix_trunchi_i387):
1379 Rename to *fix_trunc<mode>_i387_1. Implement using mode macros.
1380 Disable patterns for TARGET_FISTTP. Add comment about FLAGS_REG
1382 (fix_truncdi_memory, fix_truncdi_nomemory, fix_trunchi_nomemory):
1383 Rename to fix_trunc<mode>_i387 and fix_trunc<mode>_i387_with_temp.
1384 Implement using mode macros. Disable patterns for TARGET_FISTTP.
1385 (fix_truncsi_memory, fix_truncsi_nomemory, fix_trunchi_memory,
1386 fix_trunchi_nomemory): Rename to fix_trunc<mode>_i387 and
1387 fix_trunc<mode>_i387_with_temp. Implement using mode macros.
1388 Disable patterns for TARGET_FISTTP.
1389 (fix_trunc*_i387 splitters): Implement usign mode macros.
1390 (fix_truncdfdi_sse, fix_truncsfdi_sse, fix_truncdfsi_sse,
1391 fix_truncsfsi_sse): Disable for (TARGET_FISTTP && !TARGET_SSE_MATH).
1392 (fix_trunx*_sse peephole2s): Implement using mode macros.
1394 2005-03-15 J"orn Rennecke <joern.rennecke@st.com>
1396 PR rtl-optimization/20291
1397 * combine.c (try_combine): If splitting fails, re-try with
1398 original combined pattern, i.e. before clobber stripping.
1400 2005-03-14 Eric Christopher <echristo@redhat.com>
1402 * config/mips/mips.h (DWARF_CIE_DATA_ALIGNMENT): Change for
1403 STACK_GROWS_DOWNWARD.
1405 2005-03-14 Roger Sayle <roger@eyesopen.com>
1407 * real.h (struct real_format): Split the signbit field into two
1408 two fields, signbit_ro and signbit_rw.
1409 * real.c (ieee_single_format, mips_single_format, ieee_double_format,
1410 mips_double_format, ieee_extended_motorola_format,
1411 ieee_extended_intel_96_format, ieee_extended_intel_96_round_53_format,
1412 ieee_extended_intel_128_format, ibm_extended_format,
1413 mips_extended_format, ieee_quad_format, mips_quad_format,
1414 vax_f_format, vax_d_format, vax_g_format, i370_single_format,
1415 i370_double_format, c4x_single_format, c4x_extended_format,
1416 real_internal_format): Update initializers for new field.
1417 * builtins.c (expand_builtin_signbit): Use signbit_ro field of the
1418 real_format structure.
1419 * optabs.c (expand_absneg_bit, expand_copysign): Use signbit_rw
1420 field of the real_format structure.
1422 2005-03-14 Daniel Berlin <dberlin@dberlin.org>
1424 Fix PR tree-optimization/20458
1426 * tree-flow-inline.h (mark_call_clobbered): Don't fiddle
1427 DECL_EXTERNAL on STRUCT_FIELD tags.
1428 (clear_call_clobbered): Ditto.
1429 * tree-ssa-operands.c (note_addressable): Make sure the original
1430 variable doesn't slip into the addressable list if we have
1432 * tree-tailcall.c (suitable_for_tail_opt_p): Look at STRUCT_FIELD
1435 2005-03-14 Geoffrey Keating <geoffk@apple.com>
1437 * doc/cppopts.texi (-fexec-charset): Add concept index entry.
1438 (-fwide-exec-charset): Likewise.
1439 (-finput-charset): Likewise.
1440 * doc/invoke.texi (Warning Options): Document -Wnormalized=.
1441 * c-opts.c (c_common_handle_option): Handle -Wnormalized=.
1442 * c.opt (Wnormalized): New.
1444 2005-03-14 Devang Patel <dpatel@apple.com>
1446 * doc/invoke.texi: Add reference to Visibility document.
1448 2005-03-14 Richard Sandiford <rsandifo@redhat.com>
1450 * config.gcc (mips*-*-*): Rename MASK_SPLIT_ADDRS to
1451 MASK_SPLIT_ADDRESSES.
1452 * config/mips/mips.h (target_flags, mips_fix_vr4130_string): Delete.
1453 (MASK_INT64, MASK_LONG64, MASK_SPLIT_ADDR, MASK_NO_FUSED_MADD)
1454 (MASK_EXPLICIT_RELOCS, MASK_MEMCPY, MASK_SOFT_FLOAT)
1455 (MASK_FLOAT64, MASK_ABICALLS, MASK_XGOT, MASK_LONG_CALLS)
1456 (MASK_64BIT, MASK_EMBEDDED_DATA, MASK_BIG_ENDIAN)
1457 (MASK_SINGLE_FLOAT, MASK_MAD, MASK_4300_MUL_FIX, MASK_MIPS16)
1458 (MASK_NO_CHECK_ZERO_DIV, MASK_BRANCHLIKELY)
1459 (MASK_UNINIT_CONST_IN_RODATA, MASK_FIX_R4000, MASK_FIX_R4400)
1460 (MASK_FIX_SB1, MASK_FIX_VR4120, MASK_VR4130_ALIGN)
1461 (MASK_FP_EXCEPTIONS, MASK_DIVIDE_BREAKS, MASK_PAIRED_SINGLE)
1462 (MASK_MIPS3D, MASK_SYM32, MASK_DEBUG, MASK_DEBUG_D)
1463 (MASK_MIPS_TFILE, TARGET_INT64, TARGET_LONG64, TARGET_FLOAT64)
1464 (TARGET_64BIT, TARGET_SPLIT_ADDRESSES, TARGET_DEBUG_MODE)
1465 (TARGET_DEBUG_D_MODE, TARGET_MEMCPY, TARGET_ABICALLS)
1466 (TARGET_XGOT, TARGET_SOFT_FLOAT, TARGET_HARD_FLOAT)
1467 (TARGET_LONG_CALLS, TARGET_EMBEDDED_DATA)
1468 (TARGET_UNINIT_CONST_IN_RODATA, TARGET_BIG_ENDIAN)
1469 (TARGET_SINGLE_FLOAT, TARGET_DOUBLE_FLOAT, TARGET_MAD)
1470 (TARGET_FUSED_MADD, TARGET_4300_MUL_FIX, TARGET_CHECK_ZERO_DIV)
1471 (TARGET_DIVIDE_TRAPS, TARGET_BRANCHLIKELY, TARGET_FIX_SB1)
1472 (TARGET_FIX_R4000, TARGET_FIX_R4400, TARGET_FIX_VR4120)
1473 (TARGET_FIX_VR4130, TARGET_VR4130_ALIGN, TARGET_FP_EXCEPTIONS)
1474 (TARGET_PAIRED_SINGLE_FLOAT, TARGET_MIPS3D, TARGET_SYM32)
1475 (TARGET_EXPLICIT_RELOCS): Delete.
1476 (TARGET_SWITCHES, SUBTARGET_TARGET_SWITCHES): Delete.
1477 (TARGET_OPTIONS): Remove entry for -mfix-vr4130.
1478 * config/mips/mips.c (TARGET_DEFAULT_TARGET_FLAGS): Define.
1479 (override_options): Set MASK_LONG64 if -mint64 is given and no
1480 -mlongXX option is. Complain about -mint64 -mlong32.
1481 (override_options, CMP_BUILTINS, mips_bdesc, sb1_desc): Rename
1482 MASK_PAIRED_SINGLE to MASK_PAIRED_SINGLE_FLOAT.
1483 * config/mips/mips.opt: New file.
1485 2005-03-14 Richard Sandiford <rsandifo@redhat.com>
1487 * config.gcc (extra_options): New variable for listing option files.
1488 Add ${cpu_type}/${cpu_type}.opt to it if that file exists.
1489 * configure.ac (extra_opt_files): New AC_SUBST variable.
1490 (tm_file_list, tm_include_list): Include options.h first.
1491 * configure: Regenerate.
1492 * Makefile.in (extra_opt_files, ALL_OPT_FILES): New variables.
1493 (s-options): Use $(ALL_OPT_FILES) instead of $(lang_opt_files)
1494 (s-options-h): New rule.
1495 (options.h): Depend on it.
1496 (TEXI_GCCINT_FILES): Add options.texi.
1497 * hooks.h (hook_bool_size_t_constcharptr_int_true): Declare.
1498 * hooks.c (hook_bool_size_t_constcharptr_int_true): New function.
1499 * target.h (gcc_target): Add default_target_flags and handle_option.
1500 * target-def.h (TARGET_DEFAULT_TARGET_FLAGS)
1501 (TARGET_HANDLE_OPTION): New macros.
1502 (TARGET_INITIALIZER): Include them.
1503 * opt-functions.awk (opt_args, nth_arg): New functions.
1504 (switch_flags): Handle the "Target" flag.
1506 (var_name): Use opt_args and nth_arg.
1507 (var_set, var_ref): Likewise. Handle "Mask" and "InverseMask".
1508 * opth-gen.awk: Declare target_flags. Declare MASK_* and TARGET_*
1509 macros for the "Mask" and "InverseMask" options.
1510 * opts.h (cl_var_cond): New enum.
1511 (cl_option): Replace the "has_set_value" and "set_value" fields with
1512 "var_cond" and "var_value".
1513 (CL_TARGET): New macro.
1514 (option_enabled, print_filtered_help): Declare.
1515 (decode_options): Move definition.
1516 * opts.c (handle_option): Search for the original option before
1517 removing any "no-" prefix. Handle CL_TARGET. Adjust for the new
1518 var_cond and var_value fields. Use targetm.handle_option to handle
1520 (decode_options): Set target_flags to targetm.default_target_flags.
1521 (print_filtered_help): Make global. Handle CL_TARGET.
1522 (option_enabled): New function.
1523 * toplev.c (target_switches): Guard with #ifdef TARGET_SWITCHES.
1524 (display_target_options, set_target_switch, print_switch_values)
1525 (default_pch_valid_p): Guard uses of target_switches with
1526 #ifdef TARGET_SWITCHES. Also...
1527 (display_target_options): Display the CL_TARGET entries in cl_options.
1528 (set_target_option): Don't complain about the "" option when
1529 TARGET_SWITCHES is undefined.
1530 (print_switch_values): Use option_enabled.
1531 (default_pch_valid_p): Check cl_options[] when looking for something
1532 that has changed the value of target_flags.
1533 * c.opt: Remove documentation from top of file.
1534 * doc/gccint.texi: Add an "Options" chapter. Include options.texi.
1535 * doc/sourecebuild.texi: Refer to the new options documentation
1536 instead of c.opt. Document machine-specific .opt files.
1537 * doc/tm.texi (target_flags): Say that this variable is declared
1539 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Document.
1540 (TARGET_SWITCHES, TARGET_OPTIONS): Refer to the option files as
1542 * doc/options.texi: New file.
1544 2005-03-14 Alexandre Oliva <aoliva@redhat.com>
1547 * cse.c (fold_rtx_mem): Don't fold a load from a jumptable into a
1550 2005-03-14 Alexandre Oliva <aoliva@redhat.com>
1553 * gimplify.c (gimplify_cond_expr): Add fallback argument. Use a
1554 temporary variable of pointer type if an lvalues is required.
1555 (gimplify_modify_expr_rhs): Request an rvalue from it.
1556 (gimplify_expr): Pass fallback on.
1558 2005-03-14 Kazu Hirata <kazu@cs.umass.edu>
1560 * cfgbuild.c: Update comments.
1562 2005-03-14 Roger Sayle <roger@eyesopen.com>
1564 PR rtl-optimization/17236
1565 * optabs.c (expand_doubleword_mult): New helper function split out
1566 from expand_binop. Permute the order in which instructions are
1567 emitted to minimize the number of simultaneously live registers.
1568 (expand_binop): Call expand_doubleword_mult to synthesize a double
1569 word multiplication.
1571 2005-03-14 Kazu Hirata <kazu@cs.umass.edu>
1573 * basic-block.h: Update the prototypes of cached_make_edge and
1575 * cfg.c (cached_make_edge): Take edge_cache representing one
1576 row of the adjacency matrix of edges.
1577 * cfgbuild.c (make_label_edge, rtl_make_eh_edge): Likewise.
1578 (make_edges): Initialize edge_cache to represent one row of
1579 the adjacency matrix of edges.
1581 2005-03-14 Zdenek Dvorak <dvorakz@suse.cz>
1583 * tree-ssa-phiopt.c (minmax_replacement, blocks_in_phiopt_order):
1585 (tree_ssa_phiopt): Use blocks_in_phiopt_order and minmax_replacement.
1586 Remove unused removed_phis variable.
1587 (conditional_replacement): Use build1/build2.
1588 (abs_replacement): Use last_and_only_stmt and build1/build2.
1590 2005-03-14 Zdenek Dvorak <dvorakz@suse.cz>
1592 * builtin-attrs.def (ATTR_NOVOPS, ATTR_NOVOPS_LIST,
1593 ATTR_PURE_NOTHROW_NOVOPS_LIST): New.
1594 * builtins.def (ATTR_MATHFN_FPROUNDING): Use NOVOPS.
1595 (BUILT_IN_PREFETCH): Set the NOVOPS attribute.
1596 * c-common.c (handle_novops_attribute): New function.
1597 (c_common_attribute_table): Add "no vops" entry.
1598 * c-decl.c (merge_decls): Copy DECL_IS_NOVOPS.
1599 * calls.c (flags_from_decl_or_type): Set ECF_NOVOPS.
1600 * tree-ssa-operands.c (get_call_expr_operands): Do not
1601 create virtual operands for calls with ECF_NOVOPS flag.
1602 * tree.h (DECL_IS_NOVOPS): New macro.
1603 (struct tree_decl): Add novops_flag.
1604 (ECF_NOVOPS): New constant.
1606 2005-03-14 Uros Bizjak <uros@kss-loka.si>
1609 * config/i386/i386.c (x86_use_himode_fiop): New.
1610 (x86_use_simode_fiop): Rename from x86_use_fiop.
1611 * config/i386/i386.h (x86_use_himode_fiop): Declare.
1612 (TARGET_USE_HIMODE_FIOP): New.
1613 (x86_use_simode_fiop): Rename from x86_use_fiop.
1614 (TARGET_USE_SIMODE_FIOP): Rename from TARGET_USE_FIOP.
1616 * config/i386/i386.md (X87MODEI12): New mode macro define.
1617 (*cmpfp_<mode>): Rename from *cmpfp_si. Use X87MODEI12 mode macro
1618 to implement x87 FP compare with HImode input operands.
1619 (*fp_jcc_8<mode>_387, splitter): Rename from *fp_jcc_8_387.
1620 Use X87MODEI12 mode macro to handle HImode input operands.
1621 (*fop_sf_2<mode>_i387, *fop_sf_3<mode>_i387, *fop_df_2<mode>_i387,
1622 *fop_df_3<mode>_i387, *fop_xf_2<mode>_i387, *fop_xf_3<mode>_i387):
1623 Renamed from *fop_sf_2_i387, *fop_sf_3_i387, *fop_df_2_i387,
1624 *fop_df_3_i387, *fop_xf_2_i387, *fop_xf_3_i387. Use X87MODEI12 mode
1625 macro to implement x87 operators with HImode input operands.
1626 (fop splitters): Use X87MODEI12 mode macro to handle HImode
1629 2005-03-14 Zdenek Dvorak <dvorakz@suse.cz>
1631 * tree-cfg.c (find_taken_edge_cond_expr): Use zero_p instead of
1633 * tree-gimple.c (is_gimple_min_invariant): Consider overflowed
1634 constants invariant.
1636 2005-03-14 Zdenek Dvorak <dvorakz@suse.cz>
1638 * basic-block.h (BB_VISITED): Removed.
1639 * cfganal.c (dfs_enumerate_from): Do not use BB_VISITED flag.
1641 2005-03-14 Falk Hueffner <falk@debian.org>
1644 * config/alpha/alpha.c (alpha_fold_builtin_cmpbge): Fix typo.
1646 2005-03-14 Kazu Hirata <kazu@cs.umass.edu>
1648 * ggc-zone.c: Fix comment typos.
1650 * alloc-pool.c, except.h, ggc-common.c, ggc-zone.c, ggc.h,
1651 stringpool.c, config/mips/mips-protos.h: Update copyright.
1653 2005-03-14 Alan Modra <amodra@bigpond.net.au>
1655 * config/rs6000/rs6000-protos.h: Replace "struct rtx_def *"
1656 throughout with its typedef, "rtx".
1657 * config/rs6000/rs6000.c: Likewise. Formatting fixes.
1658 (rs6000_tls_symbol_ref_1): Remove inline keyword.
1659 * config/rs6000/rs6000.h (REG_ALLOC_ORDER): Formatting. Reorder
1660 regs in comment to match code.
1662 2005-03-14 Kazu Hirata <kazu@cs.umass.edu>
1664 * except.c (check_handled): Make it static.
1665 * except.h: Remove the corresponding prototype.
1667 * function.c (get_func_frame_size): Make it static.
1668 * function.h: Remove the corresponding type.
1670 * regclass.c (reg_class_superclasses, reg_class_subclasses):
1672 * hard-reg-set.h: Remove the corresponding declarations.
1674 * tree-cfg.c (verify_stmts): Check that
1675 bb_for_stmt (stmt) == bb for every PHI node and statement.
1677 2005-03-14 Alan Modra <amodra@bigpond.net.au>
1679 * config.gcc: Remove excess indentation.
1680 (powerpc*-*-*, rs6000-*-*): Accept --with-cpu/tune power5 and 8548.
1682 2005-03-13 Roger Sayle <roger@eyesopen.com>
1685 * tree.c (get_unwidened): Treat CONVERT_EXPR and NOP_EXPR identically.
1686 * fold-const.c (fold_sign_changed_comparison): Likewise.
1687 (fold_binary): Optimize comparisons against widened operands if
1688 the extension is represented by a CONVERT_EXPR, same as a NOP_EXPR.
1690 2005-03-13 Eric Botcazou <ebotcazou@libertysurf.fr>
1692 * config/sparc/sparc.c (struct_value_alias_set): New global variable.
1693 (sparc_override_options): Initialize it.
1694 (sparc_struct_value_rtx): Set it on the MEM to be returned.
1696 2005-03-13 David Edelsohn <edelsohn@gnu.org>
1698 * config/rs6000/predicates.md (mem_or_easy_const_operand): Delete.
1699 (reg_or_none500mem_operand): New predicate.
1700 (zero_reg_mem_operand): New predicate.
1701 * config/rs6000/rs6000.md (extendsfdf2): Change operand1 predicate
1702 to reg_or_none500mem_operand.
1703 (extendsfdf2_fpr): Add MEM alternative.
1704 (extenddftf2_internal): Change operand2 predicate to
1705 zero_reg_mem_operand.
1707 2005-03-13 Daniel Jacobowitz <dan@codesourcery.com>
1709 * ggc-zone.c: Rewritten.
1711 * alloc-pool.c (dump_alloc_pool_statistics): Don't print statistics
1713 * configure.ac: Define GGC_ZONE for --with-gc=zone.
1714 * config.in: Regenerated.
1715 * configure: Regenerated.
1716 * gengtype.c (write_types_process_field, write_func_for_structure):
1717 Pass new argument to gt_pch_note_object.
1718 * ggc-common.c (struct ptr_data): Add TYPE.
1719 (gt_pch_note_object): Take TYPE argument and save it.
1720 (call_count): Update call to ggc_pch_count_object.
1721 (call_alloc): Update call to ggc_pch_alloc_object.
1722 (gt_pch_save): Call ggc_pch_prepare_write after paddng the PCH
1724 * ggc-none.c (rtl_zone, garbage_zone, ggc_alloc_zone_stat): Delete.
1725 * ggc-page.c (rtl_zone, tree_zone, garbage_zone)
1726 (ggc_alloc_zone_stat): Delete.
1727 (ggc_pch_count_object, ggc_pch_alloc_object): Add TYPE argument.
1728 * ggc.h (gt_pch_note_object, ggc_pch_count_object)
1729 (ggc_pch_alloc_object): Update prototypes.
1730 (garbage_zone): Delete.
1731 (tree_zone, rtl_zone, ggc_alloc_zone_stat, ggc_alloc_zone): Move to
1732 GGC_ZONE conditional. Update. Change tree_zone and rtl_zone into
1734 (tree_id_zone): New variable.
1735 (ggc_alloc_cleared_zone): Remove unused.
1736 (ggc_alloc_zone): Define.
1737 (ggc_alloc_rtvec, ggc_alloc_tree): Update to use ggc_alloc_zone.
1738 * rtl.c (rtx_alloc_stat, shallow_copy_rtx_stat): Use
1739 ggc_alloc_zone_stat.
1740 * stringpool.c (gt_pch_n_S): Update call to gt_pch_note_object.
1741 * tree.c (copy_node_stat, make_tree_binfo_stat, make_tree_vec_stat)
1742 (tree_cons_stat, build1_stat): Update call to ggc_alloc_zone_stat.
1743 (make_node_stat): Likewise. Use tree_id_zone.
1745 2005-03-13 Daniel Jacobowitz <dan@codesourcery.com>
1746 Joseph S. Myers <joseph@codesourcery.com>
1748 * configure.ac: Check for MIPS TLS.
1749 * configure: Regenerated.
1750 * config/mips/mips-protos.h (enum mips_symbol_type): Add
1751 SYMBOL_TLS, SYMBOL_TLSGD, SYMBOL_TLSLDM, SYMBOL_DTPREL,
1752 SYMBOL_GOTTPREL, and SYMBOL_TPREL.
1753 * config/mips/mips.c (mips_regno_to_class): Handle V1_REG.
1754 (TARGET_HAVE_TLS, TARGET_CANNOT_FORCE_CONST_MEM): Define.
1755 (mips_classify_symbol, mips_symbolic_constant_p)
1756 (mips_symbolic_address_p, mips_symbol_insns): Handle TLS symbols.
1757 (mips_tls_operand_p, mips_call_tls_get_addr)
1758 (mips_legitimize_tls_address, mips_cannot_force_const_mem)
1759 (mips_tls_symbol_ref_1): New functions.
1760 (mips_legitimize_address, mips_legitimize_const_move): Call
1761 mips_legitimize_tls_address.
1762 (override_options): Handle V1_REG and TLS symbols. Disable TLS
1764 * config/mips/mips.h (enum reg_class, REG_CLASS_NAMES)
1765 (REG_CLASS_CONTENTS, GR_REG_CLASS_P): Include V1_REG.
1766 (mips_char_to_class): Document V1_REG.
1767 (HAVE_AS_TLS): Provide default.
1768 * config/mips/mips.md (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): New
1770 (load_got<mode>): Renamed from *load_got<mode>. Allow when
1772 (tls_get_tp_<mode>): New instruction.
1774 2005-03-13 Daniel Jacobowitz <dan@codesourcery.com>
1776 * configure.ac: Update checks for target tools.
1777 * configure: Regenerated.
1779 2005-03-13 Daniel Jacobowitz <dan@codesourcery.com>
1781 * varasm.c (decl_tls_model): Check flag_shlib instead of flag_pic.
1783 2005-03-13 Roger Sayle <roger@eyesopen.com>
1785 * expmed.c (expand_mult): Use synthetic multiplication sequences for
1786 more classes of DImode multiplication by constant. Allow both
1787 multiplication by small negative constants (by performing a
1788 multiplication by a positive constant and negating the result) and
1789 multiplications by large powers of two, by using a left shift.
1791 2005-03-13 Kazu Hirata <kazu@cs.umass.edu>
1793 * tree-into-ssa.c (find_idf): Speed up by putting the indexes
1794 of basic blocks into work_stack.
1796 * builtin-attrs.def, c-lex.c, c-pragma.h, reg-stack.c,
1797 config/mips/vr.h: Update copyright.
1799 * c-decl.c (c_init_decl_processing): Remove useless calls to
1800 build_function_type.
1802 * builtins.c (fold_trunc_transparent_mathfn,
1803 fold_fixed_mathfn, fold_builtin_atan, fold_builtin_trunc,
1804 fold_builtin_floor, fold_builtin_ceil, fold_builtin_round,
1805 fold_builtin_lround, fold_builtin_bitop, fold_builtin_memcpy,
1806 fold_builtin_strcpy, fold_builtin_strncpy,
1807 fold_builtin_signbit): Use TYPE (TYPE (fndecl)) instead of
1810 * builtins.c (expand_builtin_mathfn_3): Remove local variable
1813 * lambda-code.c (lambda_compute_auxillary_space): Remove local
1814 variable determinant.
1816 * tree-cfg.c (group_case_labels): Remove local variable type.
1818 * tree-ssa-live.c (build_tree_conflict_graph): Remove local
1821 * tree-ssa-phiopt.c (value_replacement): Remove local variable
1824 2005-03-13 Andy Hutchinson <HutchinsonAndy@netscape.net>
1827 * config/avr/avr.md (movmemhi): Rewrite as RTL loop.
1828 (*movmemqi_insn): Delete.
1829 (*movmemhi): Delete.
1831 2005-03-13 Kazu Hirata <kazu@cs.umass.edu>
1833 * builtins.c (fold_builtin_classify): Take decomposed
1834 arguments of CALL_EXPR.
1835 (fold_builtin_1): Update a call to fold_builtin_classify.
1837 2005-03-13 Joseph S. Myers <joseph@codesourcery.com>
1840 * c-parser.c (c_parser_struct_or_union_specifier): Don't fall
1841 through into call to parser_xref_tag after parse error.
1842 (c_parser_struct_declaration): Consistently return NULL_TREE on
1845 2005-03-12 Daniel Berlin <dberlin@dberlin.org>
1847 * tree-flow-inline.h (ref_contains_array_ref): New function.
1848 (lookup_subvars_for_var): Ditto.
1849 (get_subvars_for_var): Ditto.
1850 (var_can_have_subvars): Ditto.
1852 * tree-flow.h (mem_tag_kind): Add STRUCT_FIELD.
1853 (struct subvar): New type.
1855 * tree-dfa.c (okay_component_ref_for_subvars): New function.
1857 * tree-optimize.c (init_tree_optimization_passes): Call
1858 pass_create_structure_vars.
1860 * tree-ssa-alias.c: Include vec.h.
1861 (init_alias_info): Don't auto-clear call clobbered on struct-field
1863 (compute_flow_insensitive_aliasing): Handle subvars.
1864 (group_aliases): Handle STRUCT_FIELD aliases.
1865 (setup_pointers_and_addressables): Ditto.
1866 Don't mark variables non-addressable if they still have
1867 addressable subvars.
1868 Also mark subvars addressable when the real variable is marked
1870 (add_pointed_to_var): Try to prune the pointed-to set by only
1871 pointing to subvars when possible.
1872 Otherwise, make sure we set addresses_needed and pt_vars to
1873 properly include subvars.
1874 (bitpos_of_field): New function.
1875 (push_fields_onto_fieldstack): Ditto.
1876 (get_or_create_used_part_for): Ditto.
1877 (create_overlap_variables_for): Ditto.
1878 (find_used_portions): Ditto.
1879 (create_structure_vars): Ditto.
1880 (pass_create_structure_vars): New structure.
1882 * tree-ssa-operands.c (finalize_ssa_v_must_defs): Remove assert.
1883 (get_expr_operands): Handle subvars. Also try to turn
1884 COMPONENT_REF accesses into must-defs now that we can accurately
1886 (note_addressable): Try to only mark as addressable those subvars
1887 we know a COMPONENT_REF touches.
1888 (overlap_subvar): New function.
1890 * tree-vect-analyze.c (vect_object_analysis): Add new parameter.
1891 Handle subvar storing.
1892 (vect_address_analysis): Update caller of vect_object_analysis.
1894 * tree-vect-transform.c (vect_create_data_ref_ptr): Copy subvars.
1896 * tree-vectorizer.h (struct _stmt_vec_info): Add subvars member.
1897 (STMT_VINFO_SUBVARS): New macro.
1899 * common.opts: add flag_tree_salias.
1901 * opts.c (decode_options): flag_tree_salias defaults to on.
1903 * doc/invoke.texi: Document fdump-tree-svars and -ftree-salias.
1905 * doc/tree-ssa.texi: Document structural alias analysis.
1907 2005-03-12 Steven Bosscher <stevenb@suse.de>
1909 * tree-cfg.c (make_goto_expr_edges): Don't use error_mark_node.
1910 * tree-ssa-dce.c (mark_stmt_necessary): Don't check for it.
1911 * tree-ssa-operands.c (get_expr_operands): Likewise.
1912 (get_expr_operands): Likewise for ERROR_MARK.
1914 2005-03-12 Kazu Hirata <kazu@cs.umass.edu>
1916 * tree-ssa.c (kill_redundant_phi_nodes): Remove local variable
1919 * tree-ssa-phiopt.c (tree_ssa_phiopt): Remove local variable
1922 * tree-ssa-pre.c (compute_avail): Remove local variable val.
1923 (mark_operand_necessary): Remove local variable ver.
1925 * tree-vect-transform.c (vect_get_new_vect_var): Remove local
1926 variable prefix_len.
1928 * value-prof.c (mod_subtract_transform): Remove local variable
1931 * builtins.c (fold_builtin_exponent): Take decomposed
1932 arguments of CALL_EXPR.
1933 (fold_builtin_1): Update a call to fold_builtin_exponent.
1935 * builtins.c (fold_builtin_logarithm): Take decomposed
1936 arguments of CALL_EXPR.
1937 (fold_builtin_1): Update a call to fold_builtin_logarithm.
1939 * c-decl.c (c_init_decl_processing): Remove local variables
1940 ptr_ftype_void and ptr_ftype_ptr.
1942 * gimplify.c (gimplify_expr): Remove local variables r0 and
1945 * reg-stack.c (move_for_stack_reg): Remove local variable
1947 (compare_for_stack_reg): Remove local variable flags_user.
1948 (convert_regs_1): Remove local variable deleted.
1950 * tree-if-conv.c (tree_if_convert_cond_expr): Remove local
1952 (combine_blocks): Remove local variables exits and new_e.
1954 * tree-inline.c (expand_call_inline): Remove local variable
1957 * tree-ssa-live.c (create_ssa_var_map,
1958 calculate_live_on_entry): Remove local variable snn.
1960 2005-03-12 Geoffrey Keating <geoffk@apple.com>
1962 * c-lex.c (c_lex_with_flags): Add parameter to call to
1965 2005-03-11 Per Bothner <per@bothner.com>
1967 * c-tree.h (struct c_declarator): New id_loc field.
1968 * c-pragma.h (c_lex_with_flags): Take position reference.
1969 * c-lex.c (c_lex_with_flags): Set passed-in location from cpp token,
1970 iff USE_MAPPED_LOCATION. (Type doesn't match otherwise.)
1971 (c_lex): Pass dummy location to c_lex_with_flags.
1972 * c-parser.c (c_lex_one_token): Set c_token's location using
1973 c_lex_with_flags, instead of input_location, which might be "ahead".
1974 (c_parser_direct_declarator): Set declarator's id_loc from
1976 * c-decl.c (grokdeclarator): Set DECL_SOURCE_LOCATION from
1977 declarator's id_loc, rather than probably-imprecise input_location.
1978 (build_id_declarator): Initialize c_declarator's id_loc field.
1980 2005-03-11 Roger Sayle <roger@eyesopen.com>
1983 * builtins.c (expand_builtin_signbit): Force the signbit's word
1984 into an integer register to avoid SUBREGs of floating point modes.
1986 2005-03-12 Kazu Hirata <kazu@cs.umass.edu>
1988 * cfglayout.c, loop-doloop.c, profile.c, target-def.h,
1989 target.h, targhooks.c, tracer.c, tree-ssa-loop-ch.c,
1990 tree-ssa-loop-unswitch.c, tree-ssa-loop.c, vec.c, vmsdbgout.c,
1991 config/m32r/m32r.md, config/xtensa/xtensa.h: Update copyright.
1993 2005-03-11 David Edelsohn <edelsohn@gnu.org>
1995 PR rtl-optimization/20306
1996 * expr.c (emit_move_complex): Set try_int false if mode is
1997 MODE_COMPLEX_FLOAT and mov_optab exists for inner mode. Only try
1998 emit_block_move if try_int is true.
2000 2005-03-11 Richard Henderson <rth@redhat.com>
2003 * config/i386/mmx.md (vec_dupv4hi): Fix predicate.
2004 * config/i386/i386.c (ix86_expand_vector_init_duplicate): Update
2007 2005-03-11 Richard Sandiford <rsandifo@redhat.com>
2009 * config/mips/mips.h (mips_fix_vr4130_string): Declare.
2010 (TARGET_FIX_VR4130): New macro.
2011 (TARGET_OPTIONS): Add -mfix-vr4130.
2012 (ISA_HAS_MACCHI): New macro.
2013 (ASM_SPEC): Add -mfix-vr4130.
2014 * config/mips/mips.c (mips_fix_vr4130_string): New variable.
2015 (override_options): Handle mips_fix_vr4130_string.
2016 (mips_avoid_hazards): Clear all_noreorder_p
2017 if we're working around VR4130 errata and the macc alternatives
2019 * config/mips/mips.md (mfhilo_<mode>): Turn into a define_expand.
2020 (*mfhilo_<mode>, *mfhilo_<mode>_macc): New insns.
2021 * config/mips/vr.h (DEFAULT_VR_ARCH): Set to mfix-vr4130.
2022 (MULTILIB_DEFAULTS): Remove leading "march=".
2023 (DRIVER_SELF_SPECS): Likewise. Make -mfix-vr4130 imply -march=vr4130
2024 if no architecture option is given.
2025 * config/mips/t-vr (MULTILIB_OPTIONS): Use -mfix-vr4130 for the
2027 (MULTILIB_MATCHES): Map -march=vr4130 to the -mfix-vr4130 multilibs.
2028 * doc/invoke.texi: Document -mfix-vr4130.
2030 2005-03-11 Richard Sandiford <rsandifo@redhat.com>
2032 * config/mips/mips.c (override_options): Only warn about -mint64
2033 deprecation if TARGET_INT64.
2035 2005-03-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2037 * builtin-attrs.def (ATTR_NONNULL_LIST, ATTR_NOTHROW_NONNULL,
2038 ATTR_CONST_NOTHROW_NONNULL, ATTR_PURE_NOTHROW_NONNULL,
2039 ATTR_MALLOC_NOTHROW_NONNULL): New "nonnull" attribute lists which
2040 are non-specific regarding the nonnull parameter positions.
2041 (ATTR_NONNULL_1_2, ATTR_NONNULL_1_4, ATTR_NOTHROW_NONNULL_1_2,
2042 ATTR_NOTHROW_NONNULL_1_4, ATTR_CONST_NOTHROW_NONNULL_1,
2043 ATTR_PURE_NOTHROW_NONNULL_1, ATTR_PURE_NOTHROW_NONNULL_1_2,
2044 ATTR_MALLOC_NOTHROW_NONNULL_1): Delete.
2046 * builtins.def: Use the non-specific "nonnull" attibute lists.
2048 2005-03-11 Zdenek Dvorak <dvorakz@suse.cz>
2050 * basic-block.h (single_succ_p, single_pred_p, single_succ_edge,
2051 single_pred_edge, single_succ, single_pred): Improve comments.
2053 2005-03-11 Zdenek Dvorak <dvorakz@suse.cz>
2055 * basic-block.h (single_succ_p, single_pred_p, single_succ_edge,
2056 single_pred_edge, single_succ, single_pred): New inline functions.
2057 * bb-reorder.c (rotate_loop, find_traces_1_round,
2058 add_labels_and_missing_jumps, fix_up_fall_thru_edges,
2059 duplicate_computed_gotos): Use the single_succ/pred functions.
2060 * cfganal.c (forwarder_block_p): Ditto.
2061 * cfgbuild.c (compute_outgoing_frequencies): Ditto.
2062 * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
2063 outgoing_edges_match, try_crossjump_to_edge, try_optimize_cfg,
2064 merge_seq_blocks): Ditto.
2065 * cfghooks.c (split_edge, tidy_fallthru_edges): Ditto.
2066 * cfglayout.c (fixup_reorder_chain): Ditto.
2067 * cfgloop.c (mark_single_exit_loops, update_latch_info,
2068 canonicalize_loop_headers, verify_loop_structure): Ditto.
2069 * cfgloopmanip.c (remove_path, unloop, loop_delete_branch_edge,
2070 mfb_update_loops, create_preheader, force_single_succ_latches,
2071 create_loop_notes): Ditto.
2072 * cfgrtl.c (rtl_can_merge_blocks, try_redirect_by_replacing_jump,
2073 force_nonfallthru_and_redirect, rtl_tidy_fallthru_edge,
2074 commit_one_edge_insertion, purge_dead_edges,
2075 cfg_layout_can_merge_blocks_p): Ditto.
2076 * except.c (sjlj_emit_function_enter): Ditto.
2077 * flow.c (init_propagate_block_info): Ditto.
2078 * function.c (thread_prologue_and_epilogue_insns): Ditto.
2079 * gcse.c (find_implicit_sets, bypass_conditional_jumps,
2080 insert_insn_end_bb): Ditto.
2081 * ifcvt.c (merge_if_block, find_if_block, find_if_case_1,
2082 find_if_case_2): Ditto.
2083 * lambda-code.c (perfect_nestify): Ditto.
2084 * lcm.c (optimize_mode_switching): Ditto.
2085 * loop-doloop.c (doloop_modify): Ditto.
2086 * loop-init.c (loop_optimizer_init): Ditto.
2087 * loop-iv.c (simplify_using_initial_values): Ditto.
2088 * loop-unroll.c (unroll_loop_runtime_iterations): Ditto.
2089 * loop-unswitch.c (unswitch_loop): Ditto.
2090 * modulo-sched.c (generate_prolog_epilog): Ditto.
2091 * predict.c (combine_predictions_for_insn, estimate_probability,
2092 tree_estimate_probability, last_basic_block_p,
2093 estimate_bb_frequencies): Ditto.
2094 * profile.c (branch_prob): Ditto.
2095 * regrename.c (copyprop_hardreg_forward): Ditto.
2096 * sched-rgn.c (is_cfg_nonregular, find_rgns, update_live): Ditto.
2097 * tracer.c (layout_superblocks): Ditto.
2098 * tree-cfg.c (tree_can_merge_blocks_p, tree_merge_blocks,
2099 cfg_remove_useless_stmts_bb, cleanup_control_flow,
2100 cleanup_control_expr_graph, disband_implicit_edges,
2101 tree_find_edge_insert_loc, bsi_commit_edge_inserts,
2102 tree_verify_flow_info, tree_make_forwarder_block,
2103 tree_forwarder_block_p, remove_forwarder_block,
2104 remove_forwarder_block_with_phi, merge_phi_nodes): Ditto.
2105 * tree-if-conv.c (tree_if_conversion): Ditto.
2106 * tree-mudflap.c (mf_build_check_statement_for): Ditto.
2107 * tree-ssa-dce.c (remove_dead_stmt): Ditto.
2108 * tree-ssa-dom.c (dom_opt_finalize_block): Ditto.
2109 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p,
2110 copy_loop_headers): Ditto.
2111 * tree-ssa-loop-im.c (loop_commit_inserts): Ditto.
2112 * tree-ssa-loop-ivopts.c (compute_phi_arg_on_exit): Ditto.
2113 * tree-ssa-loop-manip.c (split_loop_exit_edge, ip_normal_pos,
2114 lv_adjust_loop_entry_edge, tree_ssa_loop_version): Ditto.
2115 * tree-ssa-loop-niter.c (simplify_using_initial_conditions): Ditto.
2116 * tree-ssa-loop-unswitch.c (simplify_using_entry_checks): Ditto.
2117 * tree-ssa-phiopt.c (tree_ssa_phiopt, value_replacement): Ditto.
2118 * tree-ssa-pre.c (compute_antic_aux, insert_aux, init_pre): Ditto.
2119 * tree-ssa-threadupdate.c (redirect_edges): Ditto.
2120 * tree-tailcall.c (independent_of_stmt_p, find_tail_calls,
2121 eliminate_tail_call, tree_optimize_tail_calls_1): Ditto.
2122 * tree-vect-analyze.c (vect_analyze_loop_form): Ditto.
2123 * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Ditto.
2124 * tree-vectorizer.c (slpeel_update_phi_nodes_for_guard,
2125 slpeel_add_loop_guard): Ditto.
2127 2005-03-11 James A. Morrison <phython@gcc.gnu.org>
2129 PR tree-optimization/15784
2130 * fold-const.c (fold): Fold ~A + 1 to -A. Fold -A - 1
2133 * stmt.c (expand_case): Don't change index_type. Convert minval
2136 PR tree-optimization/20130
2137 * fold-const.c (fold): Fold x * -1 into -x.
2139 2005-03-11 Kaz Kojima <kkojima@gcc.gnu.org>
2141 PR rtl-optimization/20331
2142 * rtlanal.c (modified_between_p): Check its address first for MEM.
2143 (modified_in_p): Likewise.
2145 2005-03-11 Joseph S. Myers <joseph@codesourcery.com>
2147 * config.gcc (hppa*64*-*-hpux11*): Use pa/t-hpux-shlib.
2149 2005-03-10 Steven Bosscher <stevenb@suse.de>
2151 * expr.c (expand_expr_real_1): If possible, use a conditional
2152 move for expanding MIN_EXPR and MAX_EXPR.
2153 Use temp for moving around rtx-en.
2155 2005-03-10 Andrew Pinski <pinskia@physics.uc.edu>
2158 * simplify-rtx.c (simplify_relational_operation_1): Fix typo - check the
2161 2005-03-10 Roger Sayle <roger@eyesopen.com>
2163 * builtins.c (expand_builtin_signbit): Extend to handle floating
2164 point modes wider than the largest integer type, using the
2165 operand_subword_force function to obtain the signbit's word.
2167 2005-03-10 Jakub Jelinek <jakub@redhat.com>
2170 * combine.c (try_combine): If recog_for_combine added CLOBBERs
2171 to NEWI2PAT, fail to combine if they are used by NEWPAT.
2173 2005-03-10 Aldy Hernandez <aldyh@redhat.com>
2175 * doc/invoke.texi: Add 8540 to list of cpus in rs6000 cpu section.
2177 2005-03-10 Kazu Hirata <kazu@cs.umass.edu>
2179 * tree-outof-ssa.c (analyze_edges_for_bb): Make the return
2181 (perform_edge_inserts): Unconditionally call
2182 free_dominator_info.
2184 * tree-outof-ssa.c (analyze_edges_for_bb): Update a comment.
2186 2005-03-10 Bob Wilson <bob.wilson@acm.org>
2188 * config/xtensa/xtensa.h (MEMBER_TYPE_FORCES_BLK): Define.
2190 2005-03-10 Nathan Sidwell <nathan@codesourcery.com>
2192 * bitmap.c (bitmap_copy): Remove manual loop unrolling.
2194 * value-prof.c (rtl_find_values_to_profile): Use gcc_assert and
2196 (rtl_register_value_prof_hooks,
2197 tree_value_profile_transformations,
2198 tree_register_value_prof_hooks): Likewise.
2199 * var-tracking.c (stack_adjust_offset_pre_post,
2200 variable_htab_free, variable_union, dataflow_set_different_2,
2201 count_uses, variable_was_changed, set_frame_base_location,
2202 set_variable_part, emit_note_insn_var_location, vt_emit_notes,
2203 vt_add_function_parameters): Likewise.
2204 * varasm.c (named_section_real, named_section, make_decl_rtl,
2205 asm_emit_uninitialised, assemble_integer, decode_addr_const,
2206 const_hash_1, compare_constant, copy_constant, force_const_mem,
2207 output_constant_pool_2, output_constant_pool_1, output_constant,
2208 output_constructor, make_decl_one_only, decl_tls_model,
2209 default_no_named_section, default_elf_select_section_1,
2210 default_unique_section_1): Likewise.
2211 * vec.c (vec_gc_o_reserve, vec_heap_o_reserve): Likewise.
2212 * vmsdbgout.c (addr_const_to_string): Likewise.
2215 * function.c (struct assign_parm_data_one): Remove last_named
2217 (assign_parm_find_data_types): Don't determine last_named.
2218 Reorder named_parm determination.
2219 (assign_parms): Only setup varargs on the last non-varadic
2222 2005-03-10 Kazuhiro Inaoka <inaoka.lazuhiro@renesas.com>
2224 * config/m32r/m32r.md (load_sda_base_32): New pattern. Loads
2225 sda base address on medium model.
2227 2005-03-10 Zdenek Dvorak <dvorakz@suse.cz>
2229 * Makefile.in (tree-optimize.o): Add CFGLOOP_H dependence.
2230 * cfgloop.c (flow_loop_nodes_find): Export.
2231 * cfgloop.h (flow_loop_nodes_find, fix_loop_structure):
2233 * cfgloopmanip.c (fix_loop_structure): New function.
2234 * predict.c (predict_loops): Clean up the loops information.
2235 * tree-cfg.c (cleanup_tree_cfg_loop): New function.
2236 (tree_can_merge_blocks_p, remove_bb, tree_forwarder_block_p): Respect
2238 * tree-flow.h (cleanup_tree_cfg_loop): Declare.
2239 (rewrite_into_loop_closed_ssa): Declaration changed.
2240 * tree-loop-linear.c (linear_transform_loops): Add argument to
2241 rewrite_into_loop_closed_ssa call.
2242 * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
2243 * tree-ssa-loop-im.c (move_computations): Ditto.
2244 * tree-ssa-loop.c (tree_loop_optimizer_init): Ditto.
2245 * tree-vectorizer.c (vectorize_loops): Ditto.
2246 * tree-optimize.c: Include cfgloop.h.
2247 (execute_todo): Choose whether to call cleanup_tree_cfg or
2248 cleanup_tree_cfg_loop.
2249 * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables,
2250 (tree_unroll_loops_completely): Enable cleanup_tree_cfg_loop call.
2251 * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Enable
2252 cleanup_tree_cfg_loop call.
2253 * tree-ssa-loop-manip.c (find_uses_to_rename_bb): New function.
2254 (find_uses_to_rename, rewrite_into_loop_closed_ssa): Support
2255 work on part of cfg.
2257 2005-03-10 Jakub Jelinek <jakub@redhat.com>
2260 * gimplify.c (gimplify_asm_expr): Handle input/output constraints
2261 with multiple alternatives.
2263 * stmt.c (parse_output_constraint): Fix a typo.
2265 2005-03-09 Bob Wilson <bob.wilson@acm.org>
2267 * config/xtensa/xtensa.h (TRAMPOLINE_TEMPLATE): Use "no-transform"
2268 assembly directive instead of deprecated "no-generics".
2270 2005-03-09 Ulrich Weigand <uweigand@de.ibm.com>
2272 * config/s390/s390.c (s390_secondary_output_reload_class): Adapt check
2273 for non-offsettable memory references to cope with outstanding reload
2275 * config/s390/s390.md ("reload_outti"): Call find_replacement to
2276 avoid losing outstanding address reloads.
2277 ("reload_outdi", "reload_outdf"): Likewise.
2279 2005-03-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2281 * builtins.c (fold_builtin_cbrt, fold_builtin_pow): Rearrange
2282 code. Add more cbrt transformations.
2284 2005-03-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2286 * fold-const.c (fold_unary_to_constant): Add FIX_ROUND_EXPR case.
2288 2005-03-09 Kazu Hirata <kazu@cs.umass.edu>
2290 * fold-const.c (fold_unary, fold_binary, fold_ternary): Return
2291 NULL_TREE when a given tree is not simplified.
2292 (fold): Return the original tree when any of the functions
2293 mentioned above NULL_TREE.
2295 * fold-const.c (fold_unary, fold_binary): Take decomposed
2296 arguments, code, type, op0, and op1 in case of fold_binary.
2297 (fold): Update calls to fold_unary and fold_binary.
2299 2005-03-09 Roger Sayle <roger@eyesopen.com>
2301 * builtins.c (fold_builtin_unordered_cmp): Change prototype to take
2302 a fndecl and an arglist instead of a CALL_EXPR, exp.
2304 2005-03-09 Kazu Hirata <kazu@cs.umass.edu>
2306 * cfglayout.c (fixup_reorder_chain): Remove old_bb.
2308 * cfgrtl.c (cfg_layout_merge_blocks): Remove new_e.
2310 * expr.c (expand_assignment): Remove orig_to_rtx.
2312 * fold-const.c (int_const_binop): Remove no_overflow.
2314 * ifcvt.c (noce_emit_move_insn): Remove inmode.
2316 * loop-iv.c (get_biv_step_1): Remove lhs.
2318 * loop-unroll.c (analyze_insns_in_loop): Remove preheader.
2320 * real.c (real_nan): Remove neg.
2322 * function.c (thread_prologue_and_epilogue_insns): Remove i
2325 * tree-data-ref.c (array_base_name_differ_p): Remove ta and
2328 * tree-eh.c (tree_could_trap_p): Remove idx.
2330 * tree-into-ssa.c (ann): Remove ann.
2332 * tree-outof-ssa.c (num_nodes): Remove num_nodes.
2334 * tree-sra.c (decide_block_copy): Remove inst_count.
2336 * tree-ssa-alias.c (may_alias_p): Remove v_ann.
2338 * tree-ssa-loop-im.c (lhs): Remove.
2340 * cfgbuild.c (state, STATE, SET_STATE,
2341 BLOCK_USED_BY_TABLEJUMP, FULL_STATE): Move just before
2343 (make_edges): Speed up by skipping blocks with BLOCK_ORIGINAL.
2344 (find_basic_blocks): Set the state of each basic block to
2347 2005-03-08 Jeff Law <law@redhat.com>
2349 * tree-cfg.c (cleanup_control_flow): If removal of a computed
2350 goto results in the removal of edges in the CFG, then we need
2351 to recompute dominators.
2353 2005-03-09 Ben Elliston <bje@au.ibm.com>
2355 * c-common.c (c_do_switch_warnings): Comment fix.
2357 2005-03-08 Julian Brown <julian@codesourcery.com>
2359 * Patch from 2005-03-08 reverted for causing regressions and
2360 ppc-darwin bootstrap failure.
2362 2005-03-08 Fariborz Jahanian <fjahanian@apple.com>
2364 * config/rs6000/rs6000.c (invalid_arg_for_unprototyped_fn):
2365 Define the real function for ppc-darwin.
2366 * c-typeck.c (convert_arguments): Check for target-specific
2367 invalid argument call to unprototyped function.
2368 * target-def.h (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
2370 * target.h (invalid_arg_for_unprototyped_fn): New field
2372 * targhooks.c (hook_invalid_arg_for_unprototyped_fn): New
2373 default target hook.
2374 * targhooks.h (hook_invalid_arg_for_unprototyped_fn):
2377 2005-03-08 Kazu Hirata <kazu@cs.umass.edu>
2379 * c-typeck.c (constructor_stack, constructor_range_stack,
2380 initializer_stack): Make them static.
2382 * cfg.c (rbi_pool): Make it static.
2384 * gimple-low.c (lower_stmt_body): Make it static.
2385 * tree-flow.h: Remove the corresponding prototype. Don't
2388 * sched-deps.c (cache_size): Make it static.
2390 * stor-layout.c (lang_adjust_rli): Make it static.
2392 2005-03-08 Julian Brown <julian@codesourcery.com>
2394 * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK
2395 from being used for symbols with vague linkage when
2396 HAVE_GAS_COMDAT_GROUP is true.
2398 2005-03-08 J"orn Rennecke <joern.rennecke@st.com>
2400 * jump.c (invert_jump_1): Don't call redirect_jump_1 with
2401 nlabel == JUMP_LABEL (jump).
2403 2005-03-08 Kazu Hirata <kazu@cs.umass.edu>
2405 * c-common.c, c-opts.c, combine.c, cse.c, dojump.c,
2406 gimplify.c, tree-dfa.c, tree-ssa-loop-ivopts.c,
2407 tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-sink.c,
2408 tree-vect-analyze.c, tree.def, tree.h: Fix comment formatting.
2410 2005-03-08 Alexey Neyman <alex.neyman@auriga.ru>
2413 * calls.c (flags_from_decl_or_type): Handle eturns_twice' attribute.
2414 * c-common.c (handle_returns_twice): New function.
2415 (c_common_attribute_table): Declare eturns_twice' attribute.
2416 * doc/extend.texi: Document eturns_twice' attribute.
2417 * tree.h (DECL_IS_RETURNS_TWICE): New macro.
2418 (struct tree_decl): Add returns_twice_flag.
2420 2005-03-08 Kazu Hirata <kazu@cs.umass.edu>
2422 * tree-ssa-phiopt.c: Fix a comment typo.
2424 * c-semantics.c, cfghooks.c, diagnostic.h, loop-iv.c,
2425 loop-unswitch.c, modulo-sched.c, stor-layout.c, tree-gimple.h,
2426 config/i386/cygwin1.c, doc/cfg.texi, doc/objc.texi: Update
2429 2005-03-08 Richard Henderson <rth@redhat.com>
2431 * config/alpha/alpha.c (code_for_builtin): Replace special-case
2432 builtin codes with ctzdi2, clzdi2, popcountdi2.
2433 (struct alpha_builtin_def): Add is_const.
2434 (zero_arg_builtins, one_arg_builtins, two_arg_builtins): Init it.
2435 (alpha_v8qi_u, alpha_v8qi_s, alpha_v4hi_u, alpha_v4hi_s): New.
2436 (alpha_init_builtins): Init them. Set nothrow and const attributes
2438 (alpha_fold_builtin_cmpbge, alpha_fold_builtin_zapnot,
2439 alpha_fold_builtin_extxx, alpha_fold_builtin_insxx,
2440 alpha_fold_builtin_mskxx, alpha_fold_builtin_umulh,
2441 alpha_fold_vector_minmax, alpha_fold_builtin_perr,
2442 alpha_fold_builtin_pklb, alpha_fold_builtin_pkwb,
2443 alpha_fold_builtin_unpkbl, alpha_fold_builtin_unpkbw,
2444 alpha_fold_builtin_cttz, alpha_fold_builtin_ctlz,
2445 alpha_fold_builtin_ctpop, alpha_fold_builtin): New.
2446 (TARGET_FOLD_BUILTIN): New.
2447 * config/alpha/alpha.md (UNSPEC_CTTZ): Remove.
2448 (UNSPEC_CTLZ, UNSPEC_CTPOP): Remove.
2450 (cttz, builtin_cttz, builtin_ctlz, builtin_ctpop): Remove.
2452 2005-03-08 Ira Rosen <irar@il.ibm.com>
2454 PR tree-optimization/20122
2455 * tree-vect-analyze.c (vect_object_analysis): Analyze initial
2456 condition of access function instead of base.
2458 2005-03-07 Jeff Law <law@redhat.com>
2459 Steven Bosscher <stevenb@suse.de>
2461 * tree-cfg.c (find_taken_edge_computed_goto): New function.
2462 (find_taken_edge): Call find_taken_edge_computed_goto as
2463 appropriate. Allow any gimple invariant rather than just
2464 INTEGER_CST for VAL.
2465 (cleanup_control_flow): Cleanup a computed goto which has turned
2467 (tree_merge_blocks): If block B has any forced labels, move
2468 them to the start of block A.
2469 * tree-ssa-dom.c (thread_across_edge): Allow threading across
2470 computed gotos as well.
2471 * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Handle
2472 removal of unnecessary computed gotos too.
2473 (lookup_redirection_data): Fix type of INSERT argument. Callers
2476 2005-03-08 Kazu Hirata <kazu@cs.umass.edu>
2478 * tree-ssa-phiopt.c: Update copyright. Fix indentations.
2479 Remove trailing spaces.
2481 * gimplify.c (gimple_push_bind_expr, gimple_pop_bind_expr,
2482 unshare_all_trees): Make them static.
2483 * tree-gimple.h: Remove the corresponding prototypes.
2485 * diagnostic.h: Remove unused prototype
2486 debug_output_buffer.
2487 * modulo-sched.c: Remove unused prototype
2488 set_row_column_for_ps.
2490 * tree-ssa-phiopt.c (tree_ssa_phiopt,
2491 replace_phi_edge_with_variable): Remove unused variable i.
2493 2005-03-07 Per Bothner <per@bothner.com>
2495 * tree.h (DECL_IS_BUILTIN): Reverted my patch from earlier today.
2497 2005-03-06 Andrew Pinski <pinskia@physics.uc.edu>
2500 * tree-ssa-phiopt.c (tree_ssa_phiopt): Rewrite so we base the
2501 bbs on the COND_EXPR instead of the PHI_NODEs.
2502 (candidate_bb_for_phi_optimization): Remove.
2503 (replace_phi_with_stmt): Rename to ...
2504 (replace_phi_edge_with_variable): this and change so that we
2505 replace the phi argument instead of removing the PHI.
2506 (conditional_replacement): Change so we deal with PHI with more
2508 (value_replacement): Likewise.
2509 (abs_replacement): Likewise.
2511 2005-03-07 Aldy Hernandez <aldyh@redhat.com>
2513 * config/rs6000/rs6000-protos.h: Rename output_e500_flip_eq_bit to
2514 output_e500_flip_gt_bit.
2516 * config/rs6000/rs6000.c (print_operand): case D: Print out bit 31
2518 (rs6000_generate_compare): Fix logic to look at the correct bits.
2519 (output_e500_flip_eq_bit): Rename to output_e500_flip_gt_bit.
2521 (rs6000_emit_sCOND): Rename gen_e500_flip_eq_bit to
2522 gen_e500_flip_gt_bit. Rename gen_move_from_CR_eq_bit to
2523 gen_move_from_CR_gt_bit.
2525 * config/rs6000/rs6000.md ("move_from_CR_eq_bit"): Change bit
2526 ("move_from_CR_eq_bit"): Rename to move_from_CR_gt_bit.
2527 (UNSPEC_MV_CR_EQ): Rename to UNSPEC_MV_CR_GT.
2529 * config/rs6000/spe.md ("e500_cr_ior_compare"): New.
2530 (E500_CR_IOR_COMPARE): New constant.
2532 2005-03-08 Earl Chew <earl_chew@agilent.com>
2533 David Billinghurst <David.Billinghurst@riotinto.com>
2535 * config/i386/host-cygwin.c: New file to support precompiled
2537 * config/i386/x-cygwin: Use host-cygwin.c on cygwin host
2538 * config.host: Use above files for cygwin host.
2540 2005-03-07 David Edelsohn <edelsohn@gnu.org>
2542 * fold-const.c (fold_binary_op_with_conditional_arg): Fix typo
2543 ordering ops from earlier change.
2545 2005-03-07 Per Bothner <per@bothner.com>
2547 Various fixes to allow us to again build if --enable-mapped-location:
2548 * c-decl.c (finish_function): Use SET_EXPR_LOCATION instead of
2549 unavailable annotate_with_file_line, if USE_MAPPED_LOCATION.
2550 * tree-cfg.c (remove_bb): If USE_MAPPED_LOCATION, change type of
2551 local variable loc. Change logic appropriately.
2552 * tree-vect-transform.c (vect_finish_stmt_generation): Use
2553 EXPR_LOCATION rather than EXPR_LOCUS if USE_MAPPED_LOCATION.
2554 * c-parser.c (c_parser_for_statement): Initialize loc variable.
2555 * tree.h (DECL_IS_BUILTIN): Temporarily revert definition of
2556 DECL_IS_BUILTIN in the USE_MAPPED_LOCATION because of jc1 issues.
2558 2005-03-07 Richard Sandiford <rsandifo@redhat.com>
2560 PR rtl-optimization/19683
2561 * reload1.c (choose_reload_regs): Pass the number of bits, not the
2562 number of bytes, to smallest_int_for_mode. Fix arguments to
2563 REG_CANNOT_CHANGE_MODE_P.
2565 2005-03-07 Eric Botcazou <ebotcazou@libertysurf.fr>
2567 * reorg.c (relax_delay_slots): Check that the jump is
2568 conditional before trying to invert it.
2570 2005-03-07 Kazu Hirata <kazu@cs.umass.edu>
2572 * bb-reorder.c (max_entry_frequency, max_entry_frequency):
2575 * calls (stack_arg_under_construction): Make it static.
2577 * flow.c (regs_live_at_setjmp): Make it static.
2578 * flow.h: Remove the corresponding prototype.
2580 * reload1.c (reload_startobj, reload_firstobj,
2581 something_needs_operands_changed, reload_inherited,
2582 reload_inheritance_insn, reload_override_in,
2583 reload_spill_index): Make them static.
2585 * recog.c (verify_changes): Make it static.
2586 * recog.h: Remove the corresponding prototype.
2588 * cfgbuild.c (find_sub_basic_blocks): Remove.
2589 * basic-block.h: Remove the corresponding prototype.
2590 * cfgexpand.c, cfgrtl.c: Don't mention find_sub_basic_blocks
2592 * doc/cfg.texi: Don't mention find_sub_basic_blocks.
2594 * tree-ssa-operands.c (check_build_stmt): Remove.
2596 * stor-layout.c (set_alignment): Remove.
2597 * tree.h: Remove the corresponding prototype.
2599 * tree-ssa-pre.c (has_abnormal_preds): Make it static.
2601 * tree-ssa-dce.c (control_dependence_map,
2602 visited_control_parents): Make them static.
2604 * cfghooks.c (verify_flow_info): Remove local variable
2607 * cfgrtl.c (rtl_verify_flow_info_1): Remove local variable
2610 * loop-unswitch.c (unswitch_loop): Remove local variable src.
2612 2005-03-07 David Billinghurst <David.Billinghurst@riotinto.com>
2614 * config/i386/cygwin1.c(mingw_scan): Use xstrdup in calls to putenv.
2616 2005-03-07 Joseph S. Myers <joseph@codesourcery.com>
2618 * config/ia64/hpux.h (LINK_SPEC): Add -z.
2619 * config/ia64/ia64.c (ia64_function_value): Return a REG not a
2620 PARALLEL for an empty structure.
2622 2005-03-07 Kazu Hirata <kazu@cs.umass.edu>
2624 * fold-const.c (fold_binary): Remove handling of RANGE_EXPR.
2626 * fold-const.c (fold_binary): Unroll the very first "for"
2629 2005-03-06 David Edelsohn <edelsohn@gnu.org>
2631 * config/rs6000/predicates.md (branch_comparison_operator): Remove
2632 redundant match_code test.
2633 (scc_comparison_operator): Swap match_operand and match_code
2635 (branch_positive_comparison_operator): Same.
2636 (trap_comparison_operator): Use comparison_operator and swap with
2639 2005-03-06 Marek Michalkiewicz <marekm@amelek.gda.pl>
2642 * config/avr/avr.c (print_operand): Add 'p' and 'r'.
2643 (out_movhi_r_mr): Read low byte of volatile MEM first.
2644 (out_movhi_mr_r): Write high byte of volatile MEM first.
2646 2005-03-05 Kazu Hirata <kazu@cs.umass.edu>
2648 * cselib.c (reg_values, reg_values_size): Make them static.
2650 * cse.c (cse_reg_info_table): Make it static.
2652 * fold-const.c (fold_unary): Use build1 instead of copy_node.
2654 2005-03-06 Zdenek Dvorak <dvorakz@suse.cz>
2656 * cse.c (find_best_addr): Use canon_for_address.
2658 2005-03-06 Kazu Hirata <kazu@cs.umass.edu>
2660 * cse.c (fold_rtx_subreg, fold_rtx_mem): New.
2661 (fold_rtx): Call fold_rtx_subreg and fold_rtx_mem to handle
2662 SUBREG and MEM, respectively.
2664 * fold-const.c (fold_binary): Use code instead of t.
2666 * fold-const.c (optimize_minmax_comparison): Take decomposed
2667 arguments code, type, op0, and op1 instead of t.
2668 (fold_binary): Update a call to optimize_minmax_comparison.
2670 * fold-const.c (fold_range_test): Take decomposed arguments
2671 code, type, op0, and op1 instead of t.
2672 (fold_binary): Update a call to fold_range_test.
2674 * fold-const.c (fold_binary_op_with_conditional_arg): Take
2675 decomposed arguments code, type, op0, and op1 instead of t.
2676 (fold_binary): Update a call to fold_range_test.
2678 2005-03-06 Kazu Hirata <kazu@cs.umass.edu>
2680 * fold-const.c (fold_binary): Avoid directly using the original
2681 expression t as much as possible.
2683 2005-03-05 Kazu Hirata <kazu@cs.umass.edu>
2685 * c-semantics.c (build_stmt): Use TYPE_P instead of
2686 IS_NON_TYPE_CODE_CLASS.
2687 * tree.h (IS_NON_TYPE_CODE_CLASS): Remove.
2688 (NON_TYPE_CHECK): Use TYPE_P instead of
2689 IS_NON_TYPE_CODE_CLASS.
2691 * fold-const.c (fold): Remove handling of binary expressions.
2693 2005-03-05 James A. Morrison <phython@gcc.gnu.org>
2695 * doc/c-tree.texi: Wrap comments in @r{}.
2696 * doc/cpp.texi: Likewise.
2697 * doc/cppinternals.texi: Likewise.
2698 * doc/extend.texi: Likewise.
2699 * doc/md.texi: Likewise.
2700 * doc/objc.texi: Likewise.
2701 * doc/sourcebuild.texi: Likewise.
2702 * doc/tm.texi: Likewise.
2705 2005-03-05 Kazu Hirata <kazu@cs.umass.edu>
2707 * predict.c (apply_return_prediction): Standardize PHI chain
2709 * tree-ssa.c (ssa_redirect_edge): Likewise.
2711 * genattrtab.c, genemit.c, genoutput.c, genrecog.c,
2712 gensupport.c, jump.c, tree-phinodes.c, unwind-dw2-fde-glibc.c:
2715 * tree-phinodes.c (remove_phi_node): Drop the last argument.
2716 * tree-flow.h: Adjust the prototype for remove_phi_node.
2717 * lambda-code.c (perfect_nestify): Adjust a call to
2720 (remove_phi_nodes_and_edges_for_unreachable_block): Likewise.
2721 * tree-outof-ssa.c (eliminate_virtual_phis, remove_ssa_form):
2723 * tree-ssa-dce.c (remove_dead_phis): Likewise.
2724 * tree-ssa-loop-ivopts.c (remove_statement): Likewise.
2725 * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
2726 * tree-ssa.c (kill_redundant_phi_nodes): Likewise.
2728 * combine.c (simplify_and_const_int): Use gen_int_mode instead
2729 of GEN_INT (trunc_int_for_mode (...)).
2730 * loop-iv.c (iv_number_of_iterations): Likewise.
2731 * postreload.c (reload_cse_move2add): Likewise.
2732 * simplify-rtx.c (simplify_const_unary_operation,
2733 simplify_const_binary_operation): Likewise.
2734 * stor-layout.c (get_mode_bounds): Likewise.
2736 * fold-const.c (fold_binary): New.
2737 (fold): Call fold_binary on binary expressions.
2739 2005-03-05 Richard Sandiford <rsandifo@redhat.com>
2741 * doc/invoke.texi: Document new MIPS -msym32 and -mno-sym32 options.
2742 * config/mips/mips.h (MASK_SYM32, TARGET_SYM32): New macros.
2743 (TARGET_SWITCHES): Add -msym32 and -mno-sym32.
2744 (ABI_HAS_64BIT_SYMBOLS): Set to false if TARGET_SYM32.
2745 (ASM_SPEC): Pass down -msym32 and -mno-sym32.
2747 2005-03-04 Devang Patel <dpatel@apple.com>
2749 PR tree-optimization/18815
2750 * tree-if-conv.c (combine_blocks): Adjust loop header edges for
2751 loops with zero exit edges.
2753 2005-03-04 Devang Patel <dpatel@apple.com>
2755 * doc/invoke.texi: Remove reference to webpage that does not exist.
2757 2005-03-04 John David Anglin <dave.danglin@nrc-cnrc.gc.ca>
2758 Joseph S. Myers <joseph@codesourcery.com>
2761 * pa/elf.h, pa64-hpux.h, som.h (ASM_OUTPUT_EXTERNAL_REAL): Define.
2762 (ASM_OUTPUT_EXTERNAL): Call pa_hpux_asm_output_external.
2763 * pa-protos.h (pa_hpux_asm_output_external): Add prototype.
2764 * pa.c (get_plabel): Change argument to symbol_ref. Call
2765 maybe_get_identifier instead of get_identifier.
2766 (pa_hpux_asm_output_external, pa_hpux_file_end): New functions.
2767 (struct deferred_plabel): Replace name field with symbol field.
2768 (TARGET_ASM_FILE_END): Define as pa_hpux_file_end if
2769 ASM_OUTPUT_EXTERNAL_REAL is defined.
2770 (output_global_address): Use output_addr_const for output of all
2772 (output_deferred_plabels): Use symbol_ref instead of name for address
2774 * pa.h (SYMBOL_FLAG_REFERENCED, SYMBOL_REF_REFERENCED_P,
2775 ASM_OUTPUT_SYMBOL_REF): New macros.
2776 * som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Use assemble_name_raw. Update
2778 (ASM_WEAKEN_LABEL): Use targetm.asm_out.globalize_label to globalize
2781 2005-03-05 Joseph S. Myers <joseph@codesourcery.com>
2783 * config.gcc (hppa*64*-*-hpux11*): Use pa/pa-hpux1111.h for
2784 *-*-hpux11.[1-9]*, not just for *-*-hpux11.11.
2786 2005-03-04 Jeff Law <law@redhat.com>
2788 * basic-block.h (rediscover_loops_after_threading): Declare.
2789 * tree-ssa-dom.c: Include cfgloop.h.
2790 (tree_ssa_dominator_optimize): Discover loops and some basic
2791 properties. Remove forwarder blocks recreated by loop header
2792 canonicalization. Also mark backedges in the CFG.
2793 * tree-ssa-threadupdate.c: Include cfgloop.h
2794 (rediscover_loops_after_threading): Define.
2795 (struct local_info): New field, JUMP_THREADED.
2796 (prune_undesirable_thread_requests): New function.
2797 (redirect_edges): Clear EDGE_ABNORMAL. If edges were threaded
2798 then record that fact for the callers of redirct_edges.
2799 (thread_block): If BB has incoming backedges, then call
2800 prune_undesirable_thraed_requests. Note when we are
2801 going to have to rediscover loop information. Return a
2802 boolean indicating if any jumps were threaded.
2803 (thread_through_all_blocks): Bubble up boolean indicating
2804 if any jumps were threaded.
2805 * Makefile.in (tree-ssa-dom.o): Depend on cfgloop.h
2806 (tree-ssa-threadupdate.o): Similarly.
2808 2005-03-04 Kazu Hirata <kazu@cs.umass.edu>
2810 * fold-const.c (fold_ternary): Unroll the "for" loop to
2813 2005-03-04 Andrew Haley <aph@redhat.com>
2815 * unwind-dw2-fde-glibc.c (struct
2816 unw_eh_callback_data.check_cache): New field.
2817 (frame_hdr_cache): New.
2818 (_Unwind_IteratePhdrCallback): Add ext_dl_phdr_info.
2819 Cache frame header info.
2821 2005-03-04 Richard Sandiford <rsandifo@redhat.com>
2823 * rtl.h (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
2824 (print_c_condition): Declare.
2825 * read-rtl.c (ptr_loc): New structure.
2826 (ptr_locs, ptr_loc_obstack, joined_conditions)
2827 (joined_conditions_obstack): New variables.
2828 (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc)
2829 (get_rtx_ptr_loc, copy_rtx_ptr_loc, print_rtx_ptr_loc)
2830 (join_c_conditions, print_c_condition): New functions.
2831 (apply_macro_to_string): Associate the new string with the same
2832 source location as the old one.
2833 (add_condition_to_string): Use join_c_conditions.
2834 (read_string): Use set_rtx_ptr_loc to record a filename and line
2835 number for the string.
2836 (read_rtx): Initialize the new variables above.
2837 * genattrtab.c (write_test_expr, write_attr_value): Use
2839 * genconditions.c (write_header): Don't define MAYBE_EVAL. Move its
2840 comment above the GCC_VERSION check.
2841 (write_one_condition): Use print_rtx_ptr_loc and print_c_condition.
2842 Inline the definition of MAYBE_EVAL.
2843 * genemit.c (gen_expand, gen_split): Use print_rtx_ptr_loc.
2844 * genoutput.c (process_template): Likewise.
2845 * genpreds.c (write_predicate_subfunction): Likewise.
2846 (write_predicate_expr): Use print_c_condition.
2847 * genrecog.c (write_cond): Likewise.
2848 * gensupport.c (process_rtx): Use join_c_conditions to join the
2849 conditions of a define_insn_and_split. Record a source location
2850 for the string after the "&&".
2851 (alter_test_for_insn): Use join_c_conditions.
2853 2005-03-04 Andrew Pinski <pinskia@physics.uc.edu>
2856 2005-03-03 James A. Morrison <phython@gcc.gnu.org>
2857 PR tree-optimization/15784
2858 * fold-const.c (fold): Fold ~A + 1 to -A. Fold -A - 1
2861 2005-03-04 Ben Elliston <bje@au.ibm.com>
2863 * gcc.c (option_map): Add --coverage.
2864 (LINK_COMMAND_SPEC): Pass -lgcov for `coverage'.
2865 (cc1_options): Pass -fprofile-arcs -ftest-coverage for `coverage'.
2866 * config/darwin.h: Pass -lgcov for `coverage'.
2867 * doc/invoke.texi (Debugging Options): Document --coverage.
2869 2005-03-04 Kazu Hirata <kazu@cs.umass.edu>
2871 * gcse.c (bypass_block): Use find_edge wherever possible.
2873 2005-03-03 Daniel Berlin <dberlin@dbrelin.org>
2877 * c-opts.c (c_common_parse_file): Call start_source_file
2878 and end_source_file at the approriate times.
2880 * dwarf2out.c (dwarf2out_finish): Don't auto-end
2881 the main file, it will be done for us now.
2883 2005-03-04 Kazu Hirata <kazu@cs.umass.edu>
2885 * fold-const.c (fold_ternary): New.
2886 (fold): Call fold_ternary on ternary expressions. Remove
2887 handling of ternary expressions.
2889 2005-03-03 James A. Morrison <phython@gcc.gnu.org>
2891 PR tree-optimization/15784
2892 * fold-const.c (fold): Fold ~A + 1 to -A. Fold -A - 1
2895 2005-03-03 David Edelsohn <edelsohn@gnu.org>
2897 * config/rs6000/predicates.md (branch_comparison_operator):
2898 Convert from C block to conditional format.
2900 2005-03-03 Jan Hubicka <jh@suse.cz>
2902 * tree-dfa.c (add_referenced_var): Don't walk initializer of external
2903 and non-constant public variables.
2905 2005-03-03 Kazu Hirata <kazu@cs.umass.edu>
2907 * tree-cfg.c (stmt_starts_bb_p): Clean up by replacing code
2910 * cfgexpand.c (construct_exit_block): Use EDGE_PRED instead of
2913 * tree-phinodes.c (remove_phi_node): Clean up by factoring out
2914 calls to release_ssa_name and release_phi_node.
2916 * fold-const.c (fold): Remove handling of unary expressions.
2918 * fold-const.c (fold_unary): Avoid directly using the original
2919 expression t as much as possible.
2921 2005-03-03 Roger Sayle <roger@eyesopen.com>
2922 Andrew Pinski <pinskia@physics.uc.edu>
2924 * jump.c (redirect_exp_1): If nlabel is a NULL pointer create a
2925 RETURN rtx, and not a LABEL_REF containing a NULL pointer.
2927 2005-03-03 Hans-Peter Nilsson <hp@axis.com>
2929 Describe special registers SRP and MOF as allocatable registers.
2930 * config/cris/cris.c (cris_md_asm_clobbers): New function.
2931 (TARGET_MD_ASM_CLOBBERS): Define to cris_md_asm_clobbers.
2932 (cris_conditional_register_usage): Enable CRIS_MOF_REGNUM if
2933 TARGET_HAS_MUL_INSNS.
2934 (cris_print_operand) <case 'd'>: New case.
2935 <case REG>: Allow CRIS_MOF_REGNUM and CRIS_SRP_REGNUM.
2936 * config/cris/cris.h (CRIS_PC_REGNUM, CRIS_SRP_REGNUM): Don't
2938 (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS)
2939 (REG_ALLOC_ORDER): Update for MOF.
2940 (enum reg_class): New members MOF_REGS, GENERAL_REGS and
2942 (GENERAL_REGS): No longer a define of ALL_REGS.
2943 (REGNO_REG_CLASS, REG_CLASS_CONTENTS, REG_CLASS_NAMES)
2944 (PREFERRED_RELOAD_CLASS, REGISTER_NAMES, DBX_REGISTER_NUMBER):
2946 (CRIS_SPECIAL_REGS_CONTENTS): New macro.
2947 (REG_CLASS_FROM_LETTER): Allocate 'h' and 'x'.
2948 (SECONDARY_RELOAD_CLASS): Define.
2949 (STACK_POINTER_REGNUM): Define as CRIS_SP_REGNUM.
2950 (FRAME_POINTER_REGNUM): Define as CRIS_FP_REGNUM.
2951 (ARG_POINTER_REGNUM): Define as CRIS_AP_REGNUM.
2952 (STATIC_CHAIN_REGNUM): Define as CRIS_STATIC_CHAIN_REGNUM.
2953 (REGISTER_MOVE_COST): Define.
2954 (PIC_OFFSET_TABLE_REGNUM): Define in terms of CRIS_GOT_REGNUM.
2955 * config/cris/cris.md (CRIS_GOT_REGNUM, CRIS_STATIC_CHAIN_REGNUM)
2956 (CRIS_FP_REGNUM, CRIS_SP_REGNUM, CRIS_SRP_REGNUM, CRIS_AP_REGNUM)
2957 (CRIS_MOF_REGNUM): New define_constants.
2958 ("*movsi_internal", "movhi", "movqi", "movsf"): Add alternatives for
2960 ("reload_inhi", "reload_outhi", "reload_inqi", "reload_outqi"):
2962 ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3")
2963 ("mulsidi3", "umulsidi3", "smulsi3_highpart", "umulsi3_highpart"):
2964 Adjust for MOF being properly described as a register.
2965 (indir_to_reg_split): Name this split. Conditionalize on the
2966 destination register being a general register.
2967 (movei): Conditionalize on on operands 0 and 1 having the same
2970 2005-03-03 Alan Modra <amodra@bigpond.net.au>
2973 * config/rs6000/rs6000.c (rs6000_override_options): Don't allow
2974 -mcpu to override any other explicitly given flags.
2976 2005-03-02 J"orn Rennecke <joern.rennecke@st.com>
2978 * recog.c (verify_changes, confirm_change_group): New functions,
2979 broken out of apply_change_group.
2980 (apply_change_group): Use them.
2981 * recog.h (verify_change, confirm_change_group): Declare.
2982 * rtl.h (redirect_jump_2): Declare.
2983 * jump.c (redirect_exp, invert_exp): Delete.
2984 (invert_exp_1): Take second parameter. Return value. Changed caller.
2985 (redirect_jump_2): New function, broken out of redirect_jump.
2986 (redirect_jump): Use redirect_jump_1 and redirect_jump_2.
2987 (invert_jump): Use invert_jump_1 and redirect_jump_2.
2988 * ifcvt.c (dead_or_predicable): Use redirect_jump_2.
2990 2005-03-02 Geoffrey Keating <geoffk@apple.com>
2992 * varasm.c (named_section): Use xstrdup rather than doing it by
2995 * config/darwin8.h (LIB_SPEC): Switch -lmx and -lSystem.
2997 2005-03-02 Devang Patel <dpatel@apple.com>
2999 Undo PR tree-optimization/18815 fix.
3001 2005-03-02 Devang Patel <dpatel@apple.com>
3003 PR tree-optimization/18815
3004 * tree-if-conv.c (combine_blocks): Adjust loop header edges for
3005 loops with zero exit edges.
3007 2005-03-02 Kazu Hirata <kazu@cs.umass.edu>
3009 * cfg.c (connect_src, connect_dest, disconnect_src,
3010 disconnct_dest): New.
3011 (unchecked_make_edge, remove_edge, redirect_edge_succ,
3012 redirect_edge_pred): Use the new functions.
3014 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
3015 free_dominance_info only when needed.
3017 2005-03-02 David Edelsohn <edelsohn@gnu.org>
3020 * config/rs6000/predicates.md (reg_or_cint64_operand): Fix typo.
3021 (reg_or_sub_cint64_operand): Same.
3023 2005-03-02 Jeff Law <law@redhat.com>
3025 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Fix setting of
3026 CFG_ALTERED in the main DOM iteration loop.
3028 2005-03-02 Mark Mitchell <mark@codesourcery.com>
3031 * varasm.c (initializer_constant_valid_p): Allow conversions
3032 between OFFSET_TYPEs. Tidy.
3034 2005-03-02 Hans-Peter Nilsson <hp@axis.com>
3036 * config/cris/cris.md ("return"): Remove epilogue delay list
3039 2005-03-02 Daniel Jacobowitz <dan@codesourcery.com>
3041 * config/arm/linux-elf.h (ARM_FUNCTION_PROFILER): Do not use (PLT)
3043 * config/arm/netbsd-elf.h (ARM_FUNCTION_PROFILER): Likewise.
3045 2005-03-02 Kazu Hirata <kazu@cs.umass.edu>
3047 * cfgloop.h, cfgloopanal.c, cfgloopmanip.c, conflict.c,
3048 loop-init.c, loop-unroll.c, print-tree.c, reg-notes.def,
3049 config/m68k/m68k.c, config/mips/mips.h,
3050 config/rs6000/rs6000-protos.h, doc/contrib.texi,
3051 doc/include/gcc-common.texi: Update copyright.
3053 PR middle-end/18029 and PR middle-end/18030
3054 * expr.c (optimize_bitfield_assignment_op): Add a special case
3055 to handle BIT_IOR_EXPR and BIT_XOR_EXPR.
3057 * fold-const.c (fold_unary): New.
3058 (fold): Call fold_unary on unary expressions.
3060 2005-03-02 Richard Guenther <rguenth@gcc.gnu.org>
3062 * cgraph.h (struct cgraph_edge): Add prev_caller and
3064 (cgraph_node_remove_callees): Export.
3065 * cgraph.c (cgraph_create_edge): Initialize prev_caller
3067 (cgraph_edge_remove_callee): New function.
3068 (cgraph_edge_remove_caller): Likewise.
3069 (cgraph_remove_edge): Use.
3070 (cgraph_redirect_edge_callee): Likewise.
3071 (cgraph_node_remove_callees): New function.
3072 (cgraph_node_remove_callers): Likewise.
3073 (cgraph_remove_node): Use.
3074 * tree-optimize.c (tree_rest_of_compilation): Use
3075 cgraph_node_remove_callees instead of manual loop.
3076 * cgraphunit.c (cgraph_finalize_function): Likewise.
3077 (cgraph_expand_function): Likewise.
3078 (cgraph_remove_unreachable_nodes): Likewise.
3080 2005-03-02 Joseph S. Myers <joseph@codesourcery.com>
3083 * c-tree.h (undeclared_variable, build_external_ref): Add extra
3085 * c-decl.c (undeclared_variable): Take location as argument.
3086 * c-typeck.c (build_external_ref): Likewise.
3087 * c-parser.c (c_parser_postfix_expression): Pass location of
3088 identifier to build_external_ref.
3090 2005-03-01 David Edelsohn <edelsohn@gnu.org>
3092 * config/rs6000/rs6000.md (cceq splitter): Use operand mode, not
3093 CCEQ mode for branch_positive_comparison_operator test.
3094 * config/rs6000/predicates (branch_comparison_operator): Revert to
3096 (scc_comparison_operator): Same.
3097 (branch_positive_comparison_operator): Same.
3099 2005-03-01 Hans-Peter Nilsson <hp@axis.com>
3101 * config/cris/cris.c (cris_eligible_for_epilogue_delay)
3102 (cris_delay_slots_for_epilogue): Remove.
3103 (save_last): Move into cris_target_asm_function_epilogue.
3104 (cris_target_asm_function_epilogue): Remove tests for file being
3106 * config/cris/cris-protos.h (cris_eligible_for_epilogue_delay)
3107 (cris_delay_slots_for_epilogue): Remove prototypes.
3108 * config/cris/cris.h (DELAY_SLOTS_FOR_EPILOGUE)
3109 (ELIGIBLE_FOR_EPILOGUE_DELAY): Do not define.
3111 2005-03-01 David Edelsohn <edelsohn@gnu.org>
3113 * config/rs6000/predicates.md (branch_comparison_operator): Change
3114 to define_special_predicate.
3115 (scc_comparison_operator): Same.
3116 (branch_positive_comparison_operator): Same.
3118 2005-03-01 Daniel Berlin <dberlin@dberlin.org>
3120 * Makefile.in (tree-ssa-sink.o): New.
3121 (OBJS-common): Add tree-ssa-sink.o.
3122 * common.opt: Add -ftree-sink
3123 * opts.c (decode_options): flag_tree_sink is set at O1 or higher.
3124 * timevar.def (TV_TREE_SINK): new timevar.
3125 * tree-flow.h (is_hidden_global_store): Prototype.
3126 * tree-optimize.c (init_tree_optimization_passes): Add
3128 * tree-pass.h (pass_sink_code): New.
3129 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Move checking
3130 for non-obvious global store store to is_hidden_global_store, and
3131 call that new function.
3132 * tree-ssa-sink.c: New file.
3133 * doc/invoke.texi: Document -fdump-tree-sink and -ftree-sink.
3134 * doc/passes.texi: Document forward store motion.
3135 * testsuite/gcc.dg/tree-ssa/ssa-sink-1.c: New test
3136 * testsuite/gcc.dg/tree-ssa/ssa-sink-2.c: New test
3137 * testsuite/gcc.dg/tree-ssa/ssa-sink-3.c: New test
3138 * testsuite/gcc.dg/tree-ssa/ssa-sink-4.c: New test
3140 2005-03-01 Per Bothner <per@bothner.com>
3142 * diagnostic.c (diagnostic_build_prefix): If USE_MAPPED_LOCATION
3143 and we have a non-zero column-number, add it to the message.
3144 Also factor out the diagnostic_kind_text.
3146 2005-03-01 Zdenek Dvorak <dvorakz@suse.cz>
3148 * cfgloop.c (flow_loop_entry_edges_find, flow_loop_exit_edges_find,
3149 flow_loop_pre_header_scan, flow_loop_pre_header_find,
3150 flow_loop_scan): Removed.
3151 (flow_loop_dump): Do not dump removed fields.
3152 (flow_loop_free): Do not free removed fields.
3153 (flow_loops_find): Flags argument removed. Do not call flow_loop_scan.
3154 (loop_exit_edge_p): New function.
3155 * cfgloop.h (struct loop): Removed fields pre_header, pre_header_edges,
3156 num_pre_header_edges, entry_edges, num_entries, exit_edges,
3157 num_exits, exits_doms.
3158 (LOOP_TREE, LOOP_PRE_HEADER, LOOP_ENTRY_EDGES, LOOP_EXIT_EDGES,
3159 LOOP_EDGES, LOOP_ALL): Removed.
3160 (flow_loop_scan): Declaration removed.
3161 (loop_exit_edge_p, mark_loop_exit_edges): Declare.
3162 * cfgloopmanip.c (create_loop_notes): Do not pass flags to
3164 * ifcvt.c (mark_loop_exit_edges): Moved to cfgloopanal.c.
3165 (if_convert): Call flow_loops_find and flow_loops_free
3166 when calling mark_loop_exit_edges.
3167 * cfgloopanal.c (mark_loop_exit_edges): Moved from
3168 ifcvt.c. Removed the flow_loops_find, flow_loops_free and
3169 free_dominance_info calls.
3170 * loop-init.c (flow_loops_find): Ditto.
3171 * passes.c (rest_of_handle_branch_prob): Ditto.
3172 * lambda-code.c (perfect_nestify): Do not call flow_loops_find.
3173 * loop-unroll.c (analyze_insns_in_loop): Do not use
3175 * predict.c (predict_loops): Do not call flow_loop_scan.
3176 Use get_loop_exit_edges.
3177 (tree_estimate_probability): Do not pass flags to flow_loops_find.
3178 * tree-if-conv.c (bb_with_exit_edge_p): Take loop as argument.
3179 Do not use EDGE_LOOP_EXIT.
3180 (tree_if_convert_cond_expr, if_convertible_modify_expr_p): Pass loop
3181 to bb_with_exit_edge_p.
3182 (if_convertible_loop_p): Do not call flow_loop_scan. Use
3183 loop->single_exit. Do not use EDGE_LOOP_EXIT. Pass loop
3184 to bb_with_exit_edge_p.
3185 (combine_blocks): Pass loop to bb_with_exit_edge_p. Do not use
3187 * tree-loop-linear.c (linear_transform_loops): Do not call
3188 flow_loop_scan. Use loop->single_exit.
3189 * tree-vect-analyze.c (vect_analyze_operations): Use loop->single_exit.
3190 (vect_analyze_loop_form): Do not call flow_loop_scan.
3191 * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Use
3193 (vect_do_peeling_for_loop_bound): Use loop_preheader_edge and
3195 * tree-vectorizer.c (slpeel_update_phis_for_duplicate_loop,
3196 slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
3197 slpeel_tree_duplicate_loop_to_edge_cfg,
3198 slpeel_verify_cfg_after_peeling, slpeel_tree_peel_loop_to_edge):
3199 Use loop_preheader_edge and loop->single_exit. Do not call
3202 2005-03-01 Nick Clifton <nickc@redhat.com>
3204 * config/arm/arm.c (thumb_find_work_register): Check all of the
3205 argument registers to see if they are free, and a couple of
3206 special cases where the last argument register but can be proved
3207 to be available during the function's prologue.
3208 (print_multi_reg, arm_compute_save_reg0_reg12_mask,
3209 output_return_instruction, emit_multi_reg_push, thumb_pushpop,
3210 thumb_unexpanded_epilogue): Use unsigned long as the type for the
3212 (thumb_compute_save_reg_mask): Likewise. Also use
3213 thumb_find_work_register() to ensure that there is agreement about
3214 which work register is going to be used in the prologue.
3215 (thumb_output_function_prologue): Use unsigned long as the type
3216 for the register bit-mask. Also delay pushing the link register if
3217 other high registers are going to be pushed.
3218 (thumb_compute_save_reg_mask, emit_multi_reg_push,
3219 print_multi-reg, number_of_first_bit_set, thumb_pushpop): Remove
3220 redundant prototypes.
3222 2005-02-28 John David Anglin <dave.anglin#nrc-cnrc.gc.ca>
3225 * pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow allow hard registers during
3226 and after reload in REG+REG indexed addresses without REG_POINTER
3227 set in the base and not set in the index.
3229 2005-02-28 Kaz Kojima <kkojima@gcc.gnu.org>
3231 * config/sh/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
3232 Don't undefine here.
3233 (HANDLE_PRAGMA_PACK_PUSH_POP): Delete.
3234 (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC): Likewise.
3235 (TARGET_OS_CPP_BUILTINS): Use LINUX_TARGET_OS_CPP_BUILTINS.
3236 (LIB_SPEC, LINK_EH_SPEC, STARTFILE_SPEC, ENDFILE_SPEC,
3237 LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED, TARGET_C99_FUNCTIONS):
3239 * config.gcc (sh*-*-linux*): Use config/linux.h.
3241 2005-02-28 Dale Johannesen <dalej@apple.com>
3242 Stan Shebs <shebs@apple.com>
3244 Rewrite of 64-bit Darwin structure-by-value pass/return.
3245 * config/rs6000/rs6000.h (CUMULATIVE_ARGS): New fields
3246 intoffset, use_stack, named.
3247 * config/rs6000/rs6000.c (rs6000_darwin64_function_arg): Remove.
3248 (rs6000_darwin64_record_arg_advance_flush): New.
3249 (rs6000_darwin64_record_arg_advance_recurse): New.
3250 (rs6000_darwin64_record_arg_flush): New.
3251 (rs6000_darwin64_record_arg_recurse): New.
3252 (rs6000_darwin64_record_arg): New.
3253 (rs6000_return_in_memory): Remove AGGREGATE_TYPE_P check.
3254 (function_arg_boundary): Handle 128-bit aligned structs.
3255 (function_arg_advance): Rewrite darwin64 struct handling.
3256 (function_arg): Call rs6000_darwin64_record_arg.
3257 (function_arg_partial_nregs): Handle darwin64 structs.
3258 (rs6000_darwin64_function_value): Remove.
3259 (rs6000_function_value): Call rs6000_darwin64_record_arg.
3261 2005-02-28 Roger Sayle <roger@eyesopen.com>
3263 PR tree-optimization/20216
3264 * tree-chrec.c (tree_fold_factorial): Delete.
3265 (tree_fold_binomial): Change argument list to take a return type
3266 and change the type of K to unsigned int. Rewrite to avoid explicit
3267 evaluation of factorials, and (recursively) calling fold to perform
3268 compile-time arithmetic. Return NULL on (internal) overflow.
3269 (chrec_evaluate): Change type of K to an unsigned int. Avoid
3270 calling tree_fold_binomial unnecessarily. Return chrec_dont_know
3271 if any intermediate calculation overflows.
3272 (chrec_apply): Update call to chrec_evaluate.
3274 2005-02-28 James E Wilson <wilson@specifixinc.com>
3276 * config/mips/mips.h (NO_PROFILE_COUNTERS): Define.
3278 2005-02-28 Joseph S. Myers <joseph@codesourcery.com>
3281 * c-parser.c (c_parser_compound_statement): Return error_mark_node
3282 instead of NULL_TREE on error.
3284 2005-02-28 David Edelsohn <edelsohn@gnu.org>
3286 * config/rs6000/rs6000.c (EASY_VECTOR_15): Remove.
3287 (EASY_VECTOR_15_ADD_SELF): Remove.
3288 (num_insns_constant_wide): Not static.
3289 (validate_condition_mode): Not static.
3290 (toc_relative_expr_p): Not static.
3291 (legitimate_indirect_address_p): Not static.
3292 (macho_lo_sum_memory_operand): Not static.
3293 (invalid_e500_subreg): Not static.
3294 (easy_vector_same): Not static.
3295 (easy_vector_splat_const): Not static.
3296 (RS6000_SYMBOL_REF_TLS_P): Remove.
3297 (any_operand): Delete.
3298 (any_parallel_operand): Delete.
3299 (count_register_operand): Delete.
3300 (altivec_register_operand): Delete.
3301 (xer_operand): Delete.
3302 (s8bit_cint_operand): Delete.
3303 (short_cint_operand): Delete.
3304 (u_short_cint_operand): Delete.
3305 (non_short_cint_operand): Delete.
3306 (exact_log2_cint_operand): Delete.
3307 (gpc_reg_operand): Delete.
3308 (cc_reg_operand): Delete.
3309 (cc_reg_not_cr0_operand): Delete.
3310 (reg_or_short_operand): Delete.
3311 (reg_or_neg_short_operand): Delete.
3312 (reg_or_aligned_short_operand): Delete.
3313 (reg_or_u_short_operand): Delete.
3314 (reg_or_cint_operand): Delete.
3315 (reg_or_arith_cint_operand): Delete.
3316 (reg_or_add_cint64_operand): Delete.
3317 (reg_or_sub_cint64_operand): Delete.
3318 (reg_or_logical_cint_operand): Delete.
3319 (got_operand): Delete.
3320 (got_no_const_operand): Delete.
3321 (easy_fp_constant): Delete.
3322 (easy_vector_constant): Delete.
3323 (easy_vector_constant_add_self): Delete.
3324 (zero_constant): Delete.
3325 (zero_fp_constant): Delete.
3326 (volatile_mem_operand): Delete.
3327 (offsettable_mem_operand): Delete.
3328 (mem_or_easy_const_operand): Delete.
3329 (add_operand): Delete.
3330 (non_add_cint_operand): Delete.
3331 (logical_operand): Delete.
3332 (non_logical_cint_operand): Delete.
3333 (mask_operand): Delete.
3334 (mask_operand_wrap): Delete.
3335 (mask64_operand): Delete.
3336 (mask64_2_operand): Delete.
3337 (and64_operand): Delete.
3338 (and64_2_operand): Delete.
3339 (and_operand): Delete.
3340 (reg_or_mem_operand): Delete.
3341 (lwa_operand): Delete.
3342 (symbol_ref_operand): Delete.
3343 (call_operand): Delete.
3344 (current_file_function_operand): Delete.
3345 (input_operand): Delete.
3346 (rs6000_nonimmediate_operand): Delete.
3347 (rs6000_tls_symbol_ref): Delete.
3348 (save_world_operation): Delete.
3349 (restore_world_operation): Delete.
3350 (load_multiple_operation): Delete.
3351 (store_multiple_operation): Delete.
3352 (vrsave_operation): Delete.
3353 (mfcr_operation): Delete.
3354 (mtcrf_operation): Delete.
3355 (lmw_operation): Delete.
3356 (stmw_operation): Delete.
3357 (branch_comparison_operator): Delete.
3358 (branch_positive_comparison_operator): Delete.
3359 (scc_comparison_operator): Delete.
3360 (trap_comparison_operator): Delete.
3361 (boolean_operator): Delete.
3362 (boolean_or_operator): Delete.
3363 (min_max_operator): Delete.
3364 * config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Move to here.
3365 (EASY_VECTOR_15): Moved to here.
3366 (EASY_VECTOR_15_ADD_SELF): Move to here.
3367 (PREDICATE_CODES): Delete.
3368 * config/rs6000/rs6000-protos.h: Delete predicate functions.
3369 Declare functions no longer static.
3370 * config/rs6000/predicates.md: New.
3371 * config/rs6000/rs6000.md: Include predicates.md
3373 2005-02-28 Kazu Hirata <kazu@cs.umass.edu>
3375 * calls.c (emit_call_1): Don't use REG_ALWAYS_RETURN.
3376 (emit_library_call_value_1): Don't use LCT_ALWAYS_RETURN and
3378 * cfgrtl.c (need_fake_edge_p): Likewise.
3379 * combine.c (distribute_notes): Likewise.
3380 * emit-rtl.c (try_split): Likewise.
3381 * recog.c (peephole2_opimize): Likewise.
3382 * reg-notes.def (ALWAYS_RETURN): Remove.
3383 * rtl.h (LCT_ALWAYS_RETURN): Remove.
3384 * tree-cfg.c (need_fake_edge_p): Don't use ECF_ALWAYS_RETURN.
3385 * tree.h (ECF_ALWAYS_RETURN): Remove.
3387 2005-02-28 Roger Sayle <roger@eyesopen.com>
3390 * tree-ssa.c (tree_ssa_useless_type_conversion_1): A conversion
3391 between different machine modes is never a "useless" conversion.
3393 2005-02-28 Geert Bosch <bosch@gnat.com>
3396 * doc/contrib.texi: List contributors for Ada front end
3398 2005-02-28 Paolo Bonzini <bonzini@gnu.org>
3400 * simplify-rtx.c (simplify_unary_operation_1,
3401 simplify_const_unary_operation): New, extracted from...
3402 (simplify_unary_operation): ... this one.
3403 (simplify_binary_operation_1,
3404 simplify_const_binary_operation): New, extracted from...
3405 (simplify_binary_operation): ... this one.
3406 * rtl.h (simplify_const_unary_operation,
3407 simplify_const_binary_operation): Add prototypes.
3409 2005-02-28 Julian Brown <julian@codesourcery.com>
3411 * config/elfos.h: Revert my patch from 2005-02-25 since it broke
3412 building libjava and caused PR regression/20228.
3414 2005-02-28 Paolo Bonzini <bonzini@gnu.org>
3417 * Makefile.in (host_subdir): New.
3418 (build_objdir): New. Replace ../$(build_subdir) with it throughout.
3419 * configure: Regenerate.
3421 2005-02-27 Zack Weinberg <zack@codesourcery.com>
3423 * config/alpha/t-osf4, config/arm/t-netbsd, config/ia64/t-hpux