1 2005-03-26 Andrew Pinski <pinskia@physics.uc.edu>
3 * Makefile.in (libbackend.o): Depend on version files;
4 add custom generation command.
6 2005-03-26 Andrew Pinski <pinskia@physics.uc.edu>
9 * config/rs6000/rs6000.md (extendsfdf2_fpr): Check to make
10 sure that we have a REG before getting its REGNO.
12 2005-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14 * builtin-types.def (BT_FN_STRING_CONST_STRING_SIZE): New.
15 * builtins.def (BUILT_IN_STRNDUP): New.
17 2005-03-25 Pat Haugen <pthaugen@us.ibm.com>
19 PR tree-optimization/20470
20 * fold-const.c (fold_cond_expr_with_comparison): Recognize/fold
23 2005-03-25 Mike Stump <mrs@apple.com>
25 * config/darwin.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Don't allow 0
28 2005-03-25 Geoffrey Keating <geoffk@apple.com>
30 * config/rs6000/darwin-fallback.c: Don't include <ucontext.h>.
31 Use our own structure definitions.
33 * config/rs6000/rs6000.md (UNSPEC constants): Add UNSPEC_STFIWX.
34 (fix_truncdfsi2): Allow registers or memory as destination.
35 When TARGET_PPC_GFXOPT, generate simplified pattern.
36 (fix_truncdfsi2_internal): Use define_insn_and_split.
37 (fix_truncdfsi2_internal_gfxopt): New.
38 (fctiwz): Don't confuse register allocation by giving it no choices.
40 * config/rs6000/rs6000.h (EXTRA_CONSTRAINT): Add 'Z'.
41 (EXTRA_MEMORY_CONSTRAINT): Likewise.
42 * config/rs6000/rs6000.c (indexed_or_indirect_operand): New.
43 * config/rs6000/rs6000-protos.h (indexed_or_indirect_operand): New.
45 2005-03-25 Kazu Hirata <kazu@cs.umass.edu>
47 * dominance.c (free_dominance_info): Speed up by freeing et
48 data structures without maintaining other nodes.
49 * et-forest.c (et_free_tree_force): New.
50 * et-forest.h: Add a prototype for et_free_tree_force.
52 * tree.c (get_set_constructor_bits,
53 get_set_constructor_bytes): Remove.
54 * tree.h: Remove the corresponding prototypes.
56 2005-03-25 John David Anglin <dave.anglin@nrc-crnc.gc.ca>
59 * vax.c (vax_rtx_costs_1): Merge with vax_rtx_costs.
60 (vax_rtx_costs): Return false when passed unsupported rtx's. Handle
61 FLOAT_EXTEND, FLOAT_TRUNCATE and TRUNCATE. Fix costs for POST_INC,
64 2005-03-25 Kazu Hirata <kazu@cs.umass.edu>
66 * fold-const.c: Convert uses of fold (build (...)) to
69 2005-03-25 Zdenek Dvorak <dvorakz@suse.cz>
71 PR rtl-optimization/20249
72 * cse.c (insert_regs): Do not record equivalence of registers in
75 2005-03-24 Kazu Hirata <kazu@cs.umass.edu>
77 * emit-rtl.c (reverse_comparison): Remove.
78 * rtl.h: Remove the corresponding prototype.
80 2005-03-24 James E Wilson <wilson@specifixinc.com>
82 * doc/install.texi (--enable-altivec): Delete docs.
84 2005-03-24 David Edelsohn <edelsohn@gnu.org>
86 * config/rs6000/predicates.md (easy_fp_constant): Return 0 for
87 SFmode and DFmode before reload when
88 flag_unsafe_math_optimizations not enabled.
90 2005-03-24 Geoffrey Keating <geoffk@apple.com>
92 * c.opt (fvisibility-inlines-hidden): Allow for ObjC++.
94 * config/i386/darwin.h (TARGET_SUBTARGET_DEFAULT): Add
95 MASK_128BIT_LONG_DOUBLE, MASK_ALIGN_DOUBLE.
97 2005-03-24 Nathan Sidwell <nathan@codesourcery.com>
99 * configure.ac (enable-checking): Add 'runtime' option.
100 * doc/install.texi (enable-checking): Document 'runtime' checking.
101 * tsystem.h (gcc_assert, gcc_unreachable): Define.
102 * config.in: Regenerated.
103 * configure: Regenerated.
105 2005-03-23 Uros Bizjak <uros@kss-loka.si>
107 * optabs.h (enum optab_index): Remove OTI_llrint.
108 (llrint_optab): Remove macro.
109 * optabs.c (init_optabs): Remove llrint_optab initialization.
110 * genopinit.c (optabs): Remove llrint_optab implementation.
111 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LLRINT{,F,L}
114 2005-03-24 Alexandre Oliva <aoliva@redhat.com>
116 PR rtl-optimization/20532
117 * simplify-rtx.c (simplify_binary_operation_1): Protect from
118 overflow when adding coefficients for PLUS or MINUS.
119 (simplify_binary_operation_1): Handle CONST_DOUBLE exact power of
122 2005-03-23 Joseph S. Myers <joseph@codesourcery.com>
124 * langhooks.h (truthvalue_conversion): Remove.
125 * langhooks-def.h (LANG_HOOKS_INITIALIZER): Remove
126 LANG_HOOKS_TRUTHVALUE_CONVERSION.
127 * system.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Poison.
128 * gimplify.c (gimple_boolify): Don't use truthvalue_conversion.
129 * c-objc-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
131 2005-03-23 Kazu Hirata <kazu@cs.umass.edu>
133 * params.def: Fix a typo.
134 * config/mips/mips.c: Follow the spelling convensions.
135 * doc/invoke.texi: Fix typos.
137 2005-03-18 Dale Johannese <dalej@apple.com>
139 * cp/tree.c (cp_tree_equal): Handle SSA_NAME.
141 2005-03-23 Daniel Berlin <dberlin@dberlin.org>
143 Fix PR tree-optimization/20601
145 * tree-ssa-pre.c (insert_aux): Add missing condition to
148 2005-03-23 Ian Lance Taylor <ian@airs.com>
150 * final.c (final_scan_insn): Don't remove no-op instructions.
151 * reload1.c (reload): Remove simple no-op instructions even when
154 2005-03-23 Dorit Naishlos <dorit@il.ib.com>
156 PR tree-optimization/20501
157 * tree-vect-analyze.c (vect_enhance_data_refs_alignment): Debug print
158 reporting that peeling for alignment is applied moved to...
159 * (vect_analyze_data_refs_alignment): Here.
161 2005-03-23 Ian Lance Taylor <ian@airs.com>
163 * reorg.c (dbr_schedule): Remove #if 0 code to call final.
165 2005-03-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
167 * config.gcc (alpha*-dec-osf[45]*): Remove target_cpu_default.
168 Define TARGET_SUPPORT_ARCH except on Tru64 UNIX V4.0A.
170 2005-03-23 Hans-Peter Nilsson <hp@axis.com>
172 * doc/tm.texi (TARGET_MD_ASM_CLOBBERS): Adjust wording to not
173 imply that this is called once, independent of asms in code.
174 Adjust to now being pased output and input lists. Mention helper
175 function decl_overlaps_hard_reg_set_p.
176 * hooks.c (hook_tree_tree_tree_tree_3rd_identity): Rename from
177 hook_tree_tree_identity and to take three trees, returning third.
178 * hooks.h (hook_tree_tree_tree_tree_3rd_identity): Adjust the
180 * stmt.c: include hard-reg-set.h before tree.h.
181 (decl_overlaps_hard_reg_set_p): New function, broken out from...
182 (decl_conflicts_with_clobbers_p): Call
183 decl_overlaps_hard_reg_set_p.
184 (expand_asm_operands): Pass output and input lists in call to
185 targetm.md_asm_clobbers.
186 * target-def.h (TARGET_MD_ASM_CLOBBERS): Define as
187 hook_tree_tree_tree_tree_3rd_identity.
188 * target.h (struct gcc_target.md_asm_clobbers): Take three tree
190 * tree.h [HARD_CONST] (decl_overlaps_hard_reg_set_p): Prototype.
191 * config/i386/i386.c (ix86_md_asm_clobbers): Adjust to three
192 parameters, first two unused.
193 * config/cris/cris.c (cris_md_asm_clobbers): Adjust to added
194 parameters. Only add MOF to clobbers if there's no 'h' mentioned
195 in constraint letters and MOF is not mentioned as a asm-declared
196 register in neither of the input and output lists.
198 2005-03-23 DJ Delorie <dj@redhat.com>
200 * optabs.c (expand_binop): Make sure the first subword's result
203 2005-03-23 Joseph S. Myers <joseph@codesourcery.com>
205 * c-common.c (c_common_truthvalue_conversion): Adjust comment.
206 Call c_common_truthvalue_conversion rather than
207 lang_hooks.truthvalue_conversion.
208 * c-convert.c (convert): Call c_objc_common_truthvalue_conversion.
209 * c-objc-common.c (c_objc_common_truthvalue_conversion): Move to
211 * c-objc-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Change to
212 c_common_truthvalue_conversion.
213 * c-parser.c (c_parser_paren_condition, c_parser_for_statement,
214 c_parser_conditional_expression, c_parser_binary_expression): Call
215 c_objc_common_truthvalue_conversion.
216 * c-typeck.c (build_unary_op): Call
217 c_objc_common_truthvalue_conversion.
218 (build_conditional_expr): Do not call
219 lang_hooks.truthvalue_conversion.
220 (build_binary_op): Call c_common_truthvalue_conversion.
221 (c_objc_common_truthvalue_conversion): Moved from
222 c-objc-common.c. Call default_function_array_conversion instead
223 of default_conversion.
225 2005-03-23 Joseph S. Myers <joseph@codesourcery.com>
227 * c-common.h (default_conversion): Remove.
228 (perform_integral_promotions): Add.
229 * c-tree.h (default_conversion): Add.
230 * c-typeck.c (perform_integral_promotions): New, split out from
232 * c-common.c (check_case_value): Use perform_integral_promotions,
233 not default_conversion.
234 (c_add_case_label): Don't continue processing case label after
237 2005-03-23 Mark Mitchell <mark@codesourcery.com>
239 * gcc.c (do_spec_1): Do not add a -L path for a directory in
240 the prefix list if we have already added a multilib directory
242 (main): Do not add MD_EXEC_PREFIX to the list of directories to
245 2005-03-22 Kazu Hirata <kazu@cs.umass.edu>
247 * reload1.c (indirect_symref_ok, reload_obstack): Make them
249 * reload.h: Remove the prototype for indirect_symref_ok.
251 * reload1.c (indirect_symref_ok): Make it global.
252 * reload.h: Add a prototype for indirect_symref_ok.
254 2005-03-22 Kaz Kojima <kkojima@gcc.gnu.org>
256 * config/sh/sh.md (ashlhi3): Rename to *ashlhi3_n and add a new
259 2005-03-22 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
261 * tree.h (DECL_IGNORED_P, DECL_IN_SYSTEM_HEADER): Clarify comments.
263 2005-03-22 Daniel Berlin <dberlin@dberlin.org>
265 * c-opts.c (c_common_parse_file): Only start/end main source file
266 if debug hooks says the writer wants it.
267 * dbxout.c (dbx_debug_hooks): Add start_end_main_source_file
269 (xcoff_debug_hooks): Ditto.
270 * debug.c (do_nothing_hooks): Ditto.
271 * debug.h (gcc_debug_hooks): Ditto.
272 * dwarf2out.c (dwarf2_debug_hooks): Ditto.
273 * sdbout.c (sdb_debug_hooks): Ditto.
274 * vmsdbgout.c (vmsdbg_debug_hooks): Ditto.
276 2005-03-22 Mark Mitchell <mark@codesourcery.com>
278 * doc/extend.texi: Deprecate C++ min/max operators.
280 2005-03-22 Zdenek Dvorak <dvorakz@suse.cz>
282 * tree-ssa-loop-ivopts.c (determine_iv_cost): Do not try to preserve
283 artificial original candidates.
285 2005-03-22 Richard Guenther <rguenth@tat.physik.uni-tuebingen.de>
286 Jan Hubicka <jh@suse.cz>
287 Steven Bosscher <stevenb@suse.de
289 * cgraphunit.c (cgraph_estimate_size_after_inlining): Compute
290 call cost based on argument sizes.
291 (cgraph_mark_inline_edge): Avoid inline unit from shrinking by
293 * params.def: (max-inline-inssn-single): Set to 450.
294 (max-inline-insns-auto): Set to 90.
295 (max-inline-insns-recursive): Set to 450
296 (max-inline-insns-recursive-auto): Set to 450.
297 (large-function-insns): Set to 2700.
298 (inline-call-cost): New parameter.
299 * tree-inline.c (estimate_move_cost): New function.
300 (estimate_num_insns_1): Compute move sizes costs by estimate_move_cost
301 for non-gimple-regs, set cost to 0 for gimple-regs. Compute call size
303 * tree-inline.h (estimate_move_cost): Declare.
304 * invoke.texi: (max-inline-inssn-single): Change default to 450.
305 (max-inline-insns-auto): Change default to 90.
306 (max-inline-insns-recursive): Change default to 450
307 (max-inline-insns-recursive-auto): Change default to 450.
308 (large-function-insns): Change default to 2700.
309 (inline-call-cost): Document new parameter.
311 2005-03-22 Richard Sandiford <rsandifo@redhat.com>
313 * config/i860/i860.h (target_flags, TARGET_XP, TARGET_SWITCHES)
314 (TARGET_DEFAULT): Delete.
315 * config/i860/i860.opt: New file.
317 2005-03-22 Richard Sandiford <rsandifo@redhat.com>
319 * config/frv/frv-protos.h (frv_branch_cost_string, frv_branch_cost_int)
320 (frv_cpu_string, frv_condexec_insns_str, frv_condexec_insns)
321 (frv_condexec_temps_str, frv_condexec_temps, frv_sched_lookahead_str)
322 (frv_sched_lookahead): Delete.
323 * config/frv/frv.h (MASK_DEFAULT_ALLOC_CC): Move to frv.c.
324 (target_flags, MASK_GPR_32, MASK_FPR_32, MASK_SOFT_FLOAT)
325 (MASK_ALLOC_CC, MASK_DWORD, MASK_DOUBLE, MASK_MEDIA, MASK_MULADD)
326 (MASK_LIBPIC, MASK_ACC_4, MASK_PACK, MASK_LONG_CALLS)
327 (MASK_ALIGN_LABELS, MASK_LINKED_FP, MASK_BIG_TLS, MASK_DEBUG_ARG)
328 (MASK_DEBUG_ADDR, MASK_DEBUG_STACK, MASK_DEBUG, MASK_DEBUG_LOC)
329 (MASK_DEBUG_COND_EXEC, MASK_NO_COND_MOVE, MASK_NO_SCC)
330 (MASK_NO_COND_EXEC, MASK_NO_VLIW_BRANCH, MASK_NO_MULTI_CE)
331 (MASK_FDPIC, MASK_INLINE_PLT, MASK_GPREL_RO, MASK_DEFAULT)
332 (TARGET_GPR_32, TARGET_FPR_32, TARGET_SOFT_FLOAT, TARGET_ALLOC_CC)
333 (TARGET_DWORD, TARGET_DOUBLE, TARGET_MEDIA, TARGET_MULADD)
334 (TARGET_LIBPIC, TARGET_ACC_4, TARGET_DEBUG_ARG, TARGET_DEBUG_ADDR)
335 (TARGET_DEBUG_STACK, TARGET_DEBUG, TARGET_DEBUG_LOC)
336 (TARGET_DEBUG_COND_EXEC, TARGET_NO_COND_MOVE, TARGET_NO_SCC)
337 (TARGET_NO_COND_EXEC, TARGET_NO_VLIW_BRANCH, TARGET_NO_MULTI_CE)
338 (TARGET_NO_NESTED_CE, TARGET_FDPIC, TARGET_INLINE_PLT, TARGET_BIG_TLS)
339 (TARGET_GPREL_RO, TARGET_PACK, TARGET_LONG_CALLS, TARGET_ALIGN_LABELS)
340 (TARGET_LINKED_FP, TARGET_GPR_64, TARGET_FPR_64, TARGET_HARD_FLOAT)
341 (TARGET_FIXED_CC, TARGET_COND_MOVE, TARGET_SCC, TARGET_COND_EXEC)
342 (TARGET_VLIW_BRANCH, TARGET_MULTI_CE, TARGET_NESTED_CE, TARGET_ACC_8)
343 (TARGET_SWITCHES, TARGET_OPTIONS, DEFAULT_CONDEXEC_TEMPS)
344 (DEFAULT_BRANCH_COST, DEFAULT_CONDEXEC_INSNS): Delete.
345 * config/frv/frv.c (frv_branch_cost_string, frv_branch_cost_int)
346 (frv_cpu_string, frv_condexec_insns_str, frv_condexec_insns)
347 (frv_condexec_temps_str, frv_condexec_temps, frv_sched_lookahead_str)
348 (frv_sched_lookahead): Delete.
349 (MASK_DEFAULT_ALLOC_CC): Moved from frv.h.
350 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
351 (frv_handle_option): New function. Move -mcpu= handling from...
352 (frv_override_options): ...here. Remove handling of other
354 (frv_ifcvt_modify_tests): Check !TARGET_COND_EXEC instead of
355 TARGET_NO_COND_EXEC and !TARGET_NESTED_CE to TARGET_NO_NESTED_CE.
356 (frv_ifcvt_modify_multiple_tests): Likewise !TARGET_MULTI_CE
357 and TARGET_NO_MULTI_CE.
358 (frv_for_each_packet): Likewise TARGET_NO_VLIW_BRANCH and
360 * config/frv/frv.opt: New file.
362 2005-03-22 Kazu Hirata <kazu@cs.umass.edu>
364 * fold-const.c (fold_ternary): Take decomposed arguments of
366 (fold): Update a call to fold_ternary.
368 * fold-const.c (fold_build1, fold_build2, fold_build3): New.
369 * tree.h: Add corresponding prototypes.
371 2005-03-22 Jakub Jelinek <jakub@redhat.com>
374 * cfglayout.c (reemit_insn_block_notes): Don't put block notes in
375 between jump table and its label.
376 * final.c (shorten_branches): Handle notes in between ADDR_VEC
377 resp. ADDR_DIFF_VEC and the label preceeding it.
378 (final_scan_insn): Likewise. Ensure ADDR_VEC resp. ADDR_DIFF_VEC
379 is emitted in the right section.
381 2005-03-22 Kazu Hirata <kazu@cs.umass.edu>
383 * fold-const.c (fold_unary, fold_binary): Update comments
386 2005-03-22 Hans-Peter Nilsson <hp@axis.com>
388 PR rtl-optimization/20527
389 * combine.c (can_combine_p) [AUTO_INC_DEC]: When INSN has an
390 REG_INC note, test that the register also isn't mentioned in PRED
393 2005-03-22 Ben Elliston <bje@au.ibm.com>
395 * dwarf2out.c (dwarf_type_encoding_name): Remove unused prototype
398 2005-03-21 Mike Stump <mrs@apple.com>
400 * varasm.c (default_assemble_visibility): Remove extra ().
402 2005-03-21 Roger Sayle <roger@eyesopen.com>
405 * bb-reorder.c (duplicate_computed_gotos): Use can_duplicate_block_p
406 to determine whether a block can be duplicated, rather than test
407 whether the block contains noncopyable insns ourselves.
409 2005-03-21 Kazu Hirata <kazu@cs.umass.edu>
411 * config/i860/i860.h (PREDICATE_CODES): Remove nonexistent
414 2005-03-21 Richard Sandiford <rsandifo@redhat.com>
416 * config/ip2k/ip2k.h (target_flags, TARGET_SWITCHES): Delete.
418 2005-03-21 Richard Sandiford <rsandifo@redhat.com>
420 * config/fr30/fr30.h (TARGET_SMALL_MODEL_MASK, TARGET_SMALL_MODEL)
421 (TARGET_DEFAULT, target_flags, TARGET_SWITCHES): Delete.
422 * config/fr30/fr30.opt: New file.
424 2005-03-18 Daniel Berlin <dberlin@dberlin.org>
426 Fix PR tree-optimization/20542
428 * tree-flow-inline.h (overlap_subvar): Move to here.
429 * tree-ssa-operands.c: From here.
430 * tree-flow.h (overlap_subvar): Declare.
431 * tree-ssa-alias.c (add_pointed_to_var): Use overlap_subvar here.
432 * tree-ssa-loop-im.c (is_call_clobbered_ref): Return proper answer
433 for variables with subvars.
435 2005-03-21 Mostafa Hagog <mustafa@il.ibm.com>
438 * ddg.c (create_ddg_dependence): Ignore reg-anti dependency.
439 * modulo-sched.c (const_iteration_count): Return on NULL
441 (print_node_sched_params): Return on NULL dump_file.
442 (generate_reg_moves): Handle reg-anti dependencies and disregard
443 closing branch when generating register moves.
444 (sms_schedule): Mark the SMSed block dirty.
445 * passes.c (rest_of_handle_sms): Call update_life_info for all
447 * testsuite/gcc.dg/20050321-1.c: New test.
449 2005-03-21 Bob Wilson <bob.wilson@acm.org>
451 * config/xtensa/lib1funcs.asm (__mulsi3): Use symbolic name for ACCLO.
452 * config/xtensa/xtensa.md (movsi_internal, movhi_internal,
453 movqi_internal): Likewise.
455 2005-03-21 Bob Wilson <bob.wilson@acm.org>
457 * config/xtensa/xtensa-protos.h: (xtensa_simm7, xtensa_uimm8,
458 xtensa_uimm8x2, xtensa_uimm8x4, xtensa_ai4const, xtensa_lsi4x4,
459 xtensa_b4const): Delete prototypes.
460 (xtensa_simm8, xtensa_simm8x256, xtensa_simm12b, xtensa_b4constu,
461 xtensa_mask_immediate, xtensa_mem_offset): Update prototypes.
462 (xtensa_b4const_or_zero, xtensa_const_ok_for_letter_p,
463 xtensa_extra_constraint): New prototypes.
464 (add_operand, arith_operand, nonimmed_operand, mem_operand,
465 mask_operand, extui_fldsz_operand, sext_operand, sext_fldsz_operand,
466 lsbitnum_operand, branch_operand, ubranch_operand, call_insn_operand,
467 move_operand, const_float_1_operand, fpmem_offset_operand,
468 branch_operator, ubranch_operator, boolean_operator): Delete prototypes.
469 * config/xtensa/xtensa.c (b4const_or_zero): Rename to ...
470 (xtensa_b4const_or_zero): ...this. Change return type to bool and
471 argument type to HOST_WIDE_INT.
472 (xtensa_simm8, xtensa_simm8x256, xtensa_simm12b,
473 xtensa_mask_immediate): Likewise.
474 (xtensa_uimm8, xtensa_uimm8x2, xtensa_uimm8x4, xtensa_b4const):
475 Likewise. Also make these functions static.
476 (xtensa_simm7, xtensa_ai4const, xtensa_lsi4x4): Delete.
477 (xtensa_const_ok_for_letter_p): New.
478 (add_operand, arith_operand, nonimmed_operand, mem_operand,
479 mask_operand, extui_fldsz_operand, sext_operand, sext_fldsz_operand,
480 lsbitnum_operand, branch_operand, ubranch_operand, call_insn_operand,
481 move_operand, const_float_1_operand, fpmem_offset_operand,
482 branch_operator, ubranch_operator, boolean_operator): Move to
484 (smalloffset_mem_p): Inline code from xtensa_lsi4x4.
485 (xtensa_mem_offset): Change return type to bool.
486 (xtensa_extra_constraint): New.
487 (gen_int_relational): Update type of const_range_p function pointer.
488 Use xtensa_b4const_or_zero.
489 * config/xtensa/xtensa.h (CONST_OK_FOR_LETTER_P): Define to
490 xtensa_const_ok_for_letter_p. Update comments.
491 (EXTRA_CONSTRAINT): Define to xtensa_extra_constraint.
492 (PREDICATE_CODES): Delete.
493 * config/xtensa/xtensa.md: Include predicates.md.
494 * config/xtensa/predicates.md: New file.
496 2005-03-21 Kazu Hirata <kazu@cs.umass.edu>
498 * config/v850/v850-protos.h: Remove the prototypes for
499 reg_or_int9_operand, reg_or_const_operand,
500 pattern_is_ok_for_prepare, pattern_is_ok_for_dispose,
501 reg_or_0_operand, reg_or_int5_operand, call_address_operand,
502 movsi_source_operand, power_of_two_operand,
503 not_power_of_two_operand, special_symbolref_operand,
504 pattern_is_ok_for_prologue, pattern_is_ok_for_epilogue, and
505 register_is_ok_for_epilogue.
506 * config/v850/v850.c (reg_or_0_operand, reg_or_int5_operand,
507 reg_or_int9_operand, reg_or_const_operand,
508 call_address_operand, special_symbolref_operand,
509 movsi_source_operand, power_of_two_operand,
510 not_power_of_two_operand, register_is_ok_for_epilogue,
511 pattern_is_ok_for_epilogue, pattern_is_ok_for_prologue,
512 pattern_is_ok_for_dispose, pattern_is_ok_for_prepare): Move to
514 * config/v850/v850.h (PREDICATE_CODES): Remove.
515 * config/v850/v850.md: Include predicates.md.
516 * config/v850/predicates.md: New.
518 2005-03-21 Zack Weinberg <zack@codesourcery.com>
520 * Makefile.in (BASEVER, DEVPHASE, DATESTAMP)
521 (BASEVER_c, DEVPHASE_c, DATESTAMP_c)
522 (BASEVER_s, DEVPHASE_s, DATESTAMP_s, version): Set with :=.
523 (itoolsdir, itoolsdatadir): Move definition above new first use.
524 (install-itoolsdirs): New rule.
525 (install-mkheaders): Depend on install-itoolsdirs, not
528 2005-03-21 Kazu Hirata <kazu@cs.umass.edu>
530 * tree-into-ssa.c: Remove obsolete comments.
532 2005-03-21 Richard Guenther <rguenth@gcc.gnu.org>
534 * tree-ssa-loop.c (gate_tree_complete_unroll): Run complete
535 unrolling if -fpeel-loops is specified, too.
536 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
537 Remove superfluous check for flag_unroll_loops.
539 2005-03-21 Uros Bizjak <uros@kss-loka.si>
541 * optabs.h (enum optab_index): Add new OTI_lrint and OTI_llrint.
542 (lrint_optab, llrint_optab): Define corresponding macros.
543 * optabs.c (init_optabs): Initialize lrint_optab and llrint_optab.
544 * genopinit.c (optabs): Implement lrint_optab using lrintsi2
545 pattern and llrint_optab using llrintdi2 patterns.
546 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LRINT{,F,L}
547 using lrint_optab and BUILT_IN_LLRINT{,F,L} using llrint_optab.
548 (expand_builtin): Expand BUILT_IN_LRINT{,F,L} and
549 BUILT_IN_LLRINT{,F,L} using expand_builtin_mathfn if
550 flag_unsafe_math_optimizations is set.
552 2005-03-21 Paolo Bonzini <bonzini@gnu.org>
554 * combine.c (combine_simplify_rtx, simplify_if_then_else,
555 simplify_logical, if_then_else_cond, known_cond,
556 simplify_comparison): Adjust calls to reverse_comparison.
557 Don't use combine_reversed_comparison_code).
558 (combine_reversed_comparison_code): Remove.
559 (reversed_comparison): Using reversed_comparison_code, move it...
560 * jump.c (reversed_comparison): ... here.
561 * rtl.h (reversed_comparison): Add prototype.
563 2005-03-21 Kazu Hirata <kazu@cs.umass.edu>
565 * builtins.c (fold_builtin): Take decomposed arguments of
567 * fold-const.c (fold_ternary): Update a call to fold_builtin.
568 * gimplify.c (gimplify_call_expr): Likewise.
569 * tree-ssa-ccp.c (ccp_fold, ccp_fold_builtin): Likewise.
570 * tree.h: Update the prototype of fold_builtin.
572 2005-03-21 Paolo Bonzini <bonzini@gnu.org>
574 * rtl.h (struct rtx_hooks): Add gen_lowpart_no_emit.
575 * rtlhooks.c (gen_lowpart_no_emit_general): New.
576 * rtlhooks-def.h (gen_lowpart_no_emit_general): Declare.
577 (RTL_HOOKS_GEN_LOWPART_NO_EMIT): New.
578 * simplify-rtx.c (simplify_binary_operation_1): Use it.
580 2005-03-21 Kazu Hirata <kazu@cs.umass.edu>
582 * builtins.c (fold_builtin_1): Take decomposed arguments of
584 (fold_builtin): Update a call to fold_builtin_1.
586 2005-03-21 Nathan Sidwell <nathan@codesourcery.com>
589 * gcov.c (output_lines): Only output function block summary when
590 outputting branch information.
591 * doc/gcov.texi: Document format of preamble and additional block
594 2005-03-21 Richard Sandiford <rsandifo@redhat.com>
596 * libgcc2.h (LIBGCC2_HAS_SF_MODE): New macro.
597 (LIBGCC2_HAS_DF_MODE, LIBGCC2_HAS_TF_MODE, LIBGCC2_HAS_XF_MODE): Make
598 the defaults false if BITS_PER_UNIT != 8.
599 (SFtype, SCtype, __fixsfdi, __floatdisf, __fixunssfSI, __fixunssfDI)
600 (__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE rather
601 than BITS_PER_UNIT != 8.
602 (L_fixdfdi, L_fixsfdi, L_fixtfdi, L_fixunsdfdi, L_fixunsdfsi)
603 (L_fixunssfdi, L_fixunssfsi, L_fixunstfdi, L_fixunsxfdi, L_fixunsxfsi)
604 (L_fixxfdi, L_floatdidf, L_floatdisf, L_floatditf, L_floatdixf): Remove
606 * libgcc2.c (__fixunssfDI, __fixsfdi, __floatdisf, __fixunssfSI)
607 (__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE.
609 2005-03-20 Roger Sayle <roger@eyesopen.com>
612 * fold-const.c (fold_binary): Fix type mismatch between
613 TRUTH_{AND,OR,XOR}_EXPR nodes an their operands' types.
614 (fold_binary) <TRUTH_XOR_EXPR>: Avoid calling invert_truthvalue
615 for non-truth-valued expressions.
617 * c-common.c (c_common_truthvalue_conversion): Handle ERROR_MARK
618 and FUNCTION_DECL in the main switch.
619 <TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
620 TRUTH_XOR_EXPR>: When changing the result type of these tree nodes,
621 we also need to convert their operands to match.
622 <TRUTH_NOT_EXPR>: Likewise.
624 2005-03-21 Joseph S. Myers <joseph@codesourcery.com>
626 * c-common.c (lvalue_or_else): Replace by lvalue_error; only give
627 diagnostic without checking whether an lvalue.
628 * c-common.h (lvalue_p): Remove.
629 (enum lvalue_use): Update comment.
630 (lvalue_or_else): Replace by lvalue_error.
631 * c-typeck.c (lvalue_p): Make static.
632 (lvalue_or_else): New. Call lvalue_error.
634 2005-03-21 Alan Modra <amodra@bigpond.net.au>
636 * config/rs6000/rs6000.c (rs6000_parm_start): New function.
637 (function_arg_advance): Use rs6000_parm_start.
638 (function_arg, rs6000_arg_partial_bytes): Likewise.
640 2005-03-20 Joseph S. Myers <joseph@codesourcery.com>
642 * c-common.c (check_case_value): Adjust comment about stripping
644 (handle_vector_size_attribute): Don't strip NON_LVALUE_EXPR.
645 * c-typeck.c (default_conversion, convert_arguments,
646 build_modify_expr, convert_for_assignment, store_init_value,
647 digest_init): Use STRIP_TYPE_NOPS instead of stripping nops
648 manually. Remove inaccurate comments.
650 2005-03-20 Roger Sayle <roger@eyesopen.com>
651 Joseph S. Myers <joseph@codesourcery.com>
653 * varasm.c (do_assemble_alias): Restore comment describing function.
654 Annotate the target parameter as potentially unused.
656 2005-03-20 Marek Michalkiewicz <marekm@amelek.gda.pl>
659 * config/avr/avr.c (avr_output_function_prologue): Do not use
660 current_function_name() in a label, use a local label instead.
662 2005-03-20 David Edelsohn <edelsohn@gnu.org>
664 * config/rs6000/rs6000.c (rs6000_generate_compare): Test
665 flag_finite_math_only, not flag_unsafe_math_optimizations.
667 2005-03-20 Kazu Hirata <kazu@cs.umass.edu>
669 * builtins.c (fold_builtin_1): Update a call to
670 targetm.fold_builtin.
671 * hooks.c (hook_tree_tree_bool_null): Rename to
672 hook_tree_tree_tree_bool_null. Take one more argument of type
674 * hooks.h: Update the prototype of hook_tree_tree_bool_null.
675 * target-def.h (TARGET_FOLD_BUILTIN): Define it as
676 hook_tree_tree_tree_bool_null.
677 * target.h (gcc_target): Update the prototype of fold_builtin.
678 * config/alpha/alpha.c (alpha_fold_builtin): Take decomposed
679 arguments of CALL_EXPR.
680 * doc/tm.texi (TARGET_FOLD_BUILTIN): Update. Mention the
683 2005-03-20 Jan Hubicka <jh@suse.cz>
685 * cgraph.h (cgraph_node): Add prev_clone pointer.
686 * cgraph.c (cgraph_remove_node): Remove from doubly linked chain.
687 (cgraph_clone_node): Produce doubly linked chain.
689 2005-03-20 Joseph S. Myers <joseph@codesourcery.com>
691 * c-common.c (handle_aligned_attribute, check_function_sentinel,
692 get_nonnull_operand, handle_sentinel_attribute,
693 check_function_arguments_recurse): Do not strip NOPS from
695 * c-decl.c (check_bitfield_type_and_width, build_enumerator):
697 * c-format.c (get_constant): Likewise.
698 * c-parser.c (c_parser_postfix_expression): Likewise.
699 * c-typeck.c (set_init_index): Likewise.
700 (convert_arguments): Don't check for NOP_EXPR containing integer
703 2005-03-20 Kazu Hirata <kazu@cs.umass.edu>
705 * builtins.c (fold_fixed_mathfn, fold_builtin_trunc,
706 fold_builtin_floor, fold_builtin_ceil, fold_builtin_lround):
707 Take decomposed arguments of CALL_EXPR.
708 (fold_builtin_1): Update calls to the functions mentioned
711 2005-03-20 Joseph S. Myers <joseph@codesourcery.com>
713 * c-decl.c (check_bitfield_type_and_width): Require bit-field
714 width to have integer type.
715 (build_enumerator): Require enumerator value to have integer type.
717 2005-03-19 Joseph S. Myers <joseph@codesourcery.com>
719 * doc/extend.texi (__builtin_inf): Move statement about INFINITY
722 2005-03-19 Joseph S. Myers <joseph@codesourcery.com>
724 * c.opt (ansi, std=iso9899:1990, std=iso9899:1999,
725 std=iso9899:199x): Correct descriptions.
727 2005-03-19 Joseph S. Myers <joseph@codesourcery.com>
729 * config.gcc: Consistently use solaris2.1[0-9]* instead of
732 2005-03-19 Kazu Hirata <kazu@cs.umass.edu>
734 * builtins.c (fold_builtin_memcpy): Take decomposed arguments
736 (expand_builtin_memcpy, fold_builtin_1): Update calls to
739 * builtins.c (fold_trunc_transparent_mathfn): Take decomposed
740 arguments of CALL_EXPR.
741 (fold_builtin_trunc, fold_builtin_floor, fold_builtin_ceil,
742 fold_builtin_found, fold_builtin_1): Update calls to
743 fold_trunc_transparent_mathfn.
745 2005-03-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
748 * fold-const.c (fold_widened_comparison): Don't optimize casts of
749 function pointers on targets that require function pointer
751 (fold_sign_changed_comparison): Likewise.
753 2005-03-19 Bernd Schmidt <bernd.schmidt@analog.com>
755 * combine.c (try_combine): When changing the mode of a hard reg, make
756 sure that doing so is valid.
758 2005-03-19 Richard Sandiford <rsandifo@redhat.com>
760 * config/avr/avr.c (avr_init_stack, avr_mcu_name): Make static.
761 (TARGET_HANDLE_OPTION): Override default.
762 (avr_handle_option): New function.
763 * config/avr/avr.h (MASK_ALL_DEBUG, MASK_ORDER_1, MASK_INSN_SIZE_DUMP)
764 (MASK_ORDER_2, MASK_NO_TABLEJUMP, MASK_INT8, MASK_NO_INTERRUPTS)
765 (MASK_CALL_PROLOGUES, MASK_TINY_STACK, MASK_SHORT_CALLS)
766 (TARGET_ORDER_1, TARGET_ORDER_2, TARGET_INT8, TARGET_NO_INTERRUPTS)
767 (TARGET_INSN_SIZE_DUMP, TARGET_CALL_PROLOGUES, TARGET_TINY_STACK)
768 (TARGET_NO_TABLEJUMP, TARGET_SHORT_CALLS, TARGET_ALL_DEBUG)
769 (TARGET_SWITCHES, avr_init_stack, avr_mcu_name)
770 (TARGET_OPTIONS): Delete.
771 * config/avr/avr.opt: New file.
773 2005-03-18 2005-03-18 Kazu Hirata <kazu@cs.umass.edu>
775 * config/m32r/m32r-protos.h: Remove the prototypes for
776 call_address_operand, symbolic_operand, seth_add3_operand,
777 cmp_int16_operand, uint16_operand, reg_or_int16_operand,
778 reg_or_uint16_operand, reg_or_cmp_int16_operand,
779 two_insn_const_operand, move_src_operand,
780 move_double_src_operand, move_dest_operand,
781 eqne_comparison_operator, signed_comparison_operator,
782 large_insn_p, conditional_move_operand, carry_compare_operand,
783 m32r_block_immediate_operand, extend_operand,
784 reg_or_eq_int16_operand, int8_operand, and
786 * config/m32r/m32r.c (call_address_operand, symbolic_operand,
787 seth_add3_operand, int8_operand, cmp_int16_operand,
788 uint16_operand, reg_or_int16_operand, reg_or_uint16_operand,
789 reg_or_eq_int16_operand, reg_or_cmp_int16_operand,
790 reg_or_zero_operand, two_insn_const_operand, move_src_operand,
791 move_double_src_operand, move_dest_operand,
792 eqne_comparison_operator, signed_comparison_operator,
793 extend_operand, small_insn_p, large_insn_p,
794 conditional_move_operand, carry_compare_operand,
795 m32r_block_immediate_operand): Move to predicates.md.
796 (MAX_MOVE_BYTES): Move to m32r.h.
797 * config/m32r/m32r.h (PREDICATE_CODES): Remove.
798 * config/m32r/m32r.md: Include predicates.md.
799 * config/m32r/predicates.md: New.
801 2005-03-18 James E Wilson <wilson@specifixinc.com>
804 * dwarf2out.c (declare_in_namespace): Ignore decls with an abstract
807 2005-03-18 Kazu Hirata <kazu@cs.umass.edu>
809 * config/mn10300/mn10300-protos.h: Remove the prototypes for
810 call_address_operand, const_8bit_operand.
811 * config/mn10300/mn10300.c (call_address_operand,
812 const_8bit_operand, const_1f_operand): Move to predicates.md.
813 * config/mn10300/mn10300.h (PREDICATE_CODES): Remove.
814 * config/mn10300/mn10300.md: Include predicates.md.
815 * config/mn10300/predicates.md: New.
817 2005-03-18 Joseph S. Myers <joseph@codesourcery.com>
819 * c-common.c, c-decl.c, c-format.c, c-typeck.c: Use %D for
820 declarations in diagnostics and %E for identifiers, not %s.
822 2005-03-18 Jan Hubicka <jh@suse.cz>
823 Dale Johannesen <dalej@apple.com>
825 * basic-block.h (scale_bbs_frequencies_int,
826 scale_bbs_frequencies_gcov_type): Declare.
827 * cfg.c (RDIV): New macro.
828 (update_bb_frequency_for_threading): Fix.
829 * basic-block.h (scale_bbs_frequencies_int,
830 scale_bbs_frequencies_gcov_type): New.
831 * cfgloopmanip.c (scale_bbs_frequencies): Kill.
832 (scale_loop_frequencies, duplicate_loop_to_header_edge): Use
833 scale_bbs_frequencies_int.
834 * tree-ssa-loop-ch.c (copy_loop_headers): Fix profiling info.
836 2005-03-18 Kazu Hirata <kazu@cs.umass.edu>
838 * config/m32r/m32r-protos.h: Remove the prototypes for
839 call_address_operand, symbolic_operand, seth_add3_operand,
840 cmp_int16_operand, uint16_operand, reg_or_int16_operand,
841 reg_or_uint16_operand, reg_or_cmp_int16_operand,
842 two_insn_const_operand, move_src_operand,
843 move_double_src_operand, move_dest_operand,
844 eqne_comparison_operator, signed_comparison_operator,
845 large_insn_p, conditional_move_operand, carry_compare_operand,
846 m32r_block_immediate_operand, extend_operand,
847 reg_or_eq_int16_operand, int8_operand, and
849 * config/m32r/m32r.c (call_address_operand, symbolic_operand,
850 seth_add3_operand, int8_operand, cmp_int16_operand,
851 uint16_operand, reg_or_int16_operand, reg_or_uint16_operand,
852 reg_or_eq_int16_operand, reg_or_cmp_int16_operand,
853 reg_or_zero_operand, two_insn_const_operand, move_src_operand,
854 move_double_src_operand, move_dest_operand,
855 eqne_comparison_operator, signed_comparison_operator,
856 extend_operand, small_insn_p, large_insn_p,
857 conditional_move_operand, carry_compare_operand,
858 m32r_block_immediate_operand): Move to predicates.md.
859 (MAX_MOVE_BYTES): Move to m32r.h.
860 * config/m32r/m32r.h (PREDICATE_CODES): Remove.
861 * config/m32r/m32r.md: Include predicates.md.
862 * config/m32r/predicates.md: New.
864 * config/pa/pa-protos.h: Add prototypes for magic_milli and
866 * config/pa/pa.c (reg_or_0_operand, call_operand_address,
867 symbolic_operand, symbolic_memory_operand,
868 reg_or_0_or_nonsymb_mem_operand, reg_before_reload_operand,
869 indexed_memory_operand, move_dest_operand, move_src_operand,
870 prefetch_cc_operand, prefetch_nocc_operand,
871 reg_or_cint_move_operand, pic_label_operand, fp_reg_operand,
872 arith_operand, arith11_operand, pre_cint_operand,
873 post_cint_operan, arith_double_operand, ireg_or_int5_operand,
874 ireg_operand, int5_operand, uint5_operand, int11_operand,
875 uint32_operand, arith5_operand, and_operand, ior_operand,
876 lhs_lshift_operand, lhs_lshift_cint_operand, arith32_operand,
877 pc_or_label_operand, div_operand, plus_xor_ior_operator,
878 shadd_operand, movb_comparison_operator,
879 cmpib_comparison_operator): Move to predicates.md.
880 (magic_milli, shadd_constant_p): Make it extern.
881 * config/pa/pa.h (PREDICATE_CODES): Remove.
882 * config/pa/pa.md: Include predicates.md.
883 * config/pa/predicates.md: New.
885 * config/v850/v850.h (PREDICATE_CODES): Remove a nonexistent
888 2005-03-18 Kazu Hirata <kazu@cs.umass.edu>
890 * hooks.c, hooks.h, intl.c, opts.h, prefix.c, tree-gimple.c,
891 config/alpha/ev4.md, config/alpha/ev5.md, config/alpha/ev6.md,
892 config/alpha/freebsd.h, config/alpha/linux.h,
893 config/alpha/netbsd.h, config/alpha/osf5.h,
894 config/alpha/vms.h, config/arc/arc.c, config/arc/arc.h,
895 config/h8300/h8300-protos.h, config/h8300/h8300.c,
896 config/h8300/h8300.h, config/ia64/unwind-ia64.c,
897 doc/cppopts.texi: Update copyright.
899 2005-03-18 Jan Hubicka <jh@suse.cz>
902 * cgraph.c (cgraph_mark_reachable_node): Assert that it is not called
904 * varasm.c (find_decl_and_mark_needed): Mark needed only when not
907 2005-03-18 Kazu Hirata <kazu@cs.umass.edu>
909 * tree-into-ssa.c (find_idf): Use VEC_quick_push instead of
912 2005-03-18 Paolo Bonzini <bonzini@gnu.org>
914 * combine.c (gen_binary): Remove.
915 (known_cond, simplify_shift_const, find_split_point,
916 combine_simplify_rtx, simplify_if_then_else, simplify_set,
917 simplify_logical, expand_field_assignment, extract_left_shift,
918 force_to_mode, if_then_else_cond, apply_distributive_law,
919 simplify_and_const_int, simplify_shift_const, gen_lowpart_for_combine,
920 simplify_comparison, reversed_comparison): Replace with
921 simplify_gen_binary, simplify_gen_relational or
922 distribute_and_simplify_rtx.
923 (distribute_and_simplify_rtx): New function.
925 2005-03-18 Alexey Neyman <alex.neyman@auriga.ru>
926 Paolo Bonzini <gcc.gnu.org>
928 * calls.c (setjmp_call_p, special_function_p): Update comments
929 at the head of the functions.
931 2005-03-18 Jan Hubicka <jh@suse.cz>
933 * tree-cfg.c (fold_cond_expr_cond): Use boolean types for condition.
935 * cgraph.c (cgraph_remove_node): Avoid loop in code deciding whether
936 function body should be released; do not proactively release function
937 bodies in non-unit-at-a-time mode.
939 2005-03-18 Ralf Corsepius <ralf.corsepius@rtems.org>
941 * config/i386/t-rtems-i386 (MULTILIBS): Remove k6, athlon,
942 mno-fp-ret-in-387 multilib variants.
944 2005-03-18 Richard Sandiford <rsandifo@redhat.com>
946 * common.opt (m): Remove.
947 * opts.c (handle_option): Pass 'm' options to set_target_switch if
949 (common_handle_option): Remove OPT_m case.
951 2005-03-18 Kazu Hirata <kazu@cs.umass.edu>
953 * builtins.c (fold_builtin_bitop): Take decomposed arguments
955 (fold_builtin_1): Update a call to fold_builtin_bitop.
957 * builtins.c (fold_builtin_signbit): Take decomposed arguments
959 (fold_builtin_1): Update a call to fold_builtin_signbit.
961 2005-03-17 Dorit Naishlos <dorit@il.ibm.com>
963 PR tree-optimization/20474
964 * tree-vect-analyze.c (vect_analyze_pointer_ref_access): Check the
965 size_type of the relevant pointer. Check for COMPLETE_TYPE_P.
967 2005-03-17 Kazu Hirata <kazu@cs.umass.edu>
969 * config/h8300/h8300-protos.h: Remove prototypes for
970 general_operand_src, general_operand_dst, single_one_operand,
971 single_zero_operand, call_insn_operand,
972 two_insn_adds_subs_operand, small_call_insn_operand,
973 jump_address_operand, bit_operand, bit_memory_operand,
974 stack_pointer_operand, const_int_gt_2_operand,
975 const_int_ge_8_operand, const_int_qi_operand,
976 const_int_hi_operand, incdec_operand, bit_operator,
977 nshift_operator, eqne_operator, gtle_operator,
978 gtuleu_operator, iorxor_operator.
979 Add prototypes for h8sx_shift_type h8sx_classify_shift and
980 h8300_ldm_stm_parallel.
981 * config/h8300/h8300.c (h8sx_shift_type,): Move to
983 (SYMBOL_FLAG_FUNCVEC_FUNCTION, SYMBOL_FLAG_EIGHTBIT_DATA,
984 SYMBOL_FLAG_TINY_DATA): Move to h8300.h.
985 (h8300_ldm_stm_parallel): Make it extern.
986 (h8300_ldm_parallel, h8300_stm_parallel,
987 h8300_return_parallel, general_operand_src,
988 general_operand_dst, h8300_dst_operand, h8300_src_operand,
989 nibble_operand, reg_or_nibble_operand, single_one_operand,
990 single_zero_operand, call_insn_operand,
991 two_insn_adds_subs_operand, small_call_insn_operand,
992 jump_address_operand, bit_operand, bit_memory_operand,
993 stack_pointer_operand, const_int_gt_2_operand,
994 const_int_ge_8_operand, const_int_qi_operand,
995 const_int_hi_operand, incdec_operand, eqne_operator,
996 gtle_operator, gtuleu_operator, iorxor_operator, bit_operator,
997 h8sx_binary_memory_operator, h8sx_unary_memory_operator,
998 h8sx_unary_shift_operator, h8sx_binary_shift_operator,
999 nshift_operator): Move to predicates.md.
1000 * config/h8300/h8300.h (PREDICATE_CODES): Remove.
1001 * config/h8300/h8300.md: Include predicates.md.
1002 * config/h8300/predicates.md: New.
1004 2005-03-17 Richard Henderson <rth@redhat.com>
1006 * config.gcc (ia64*-*-hpux*): Add extra_options.
1007 * config/ia64/hpux.h (SUBTARGET_SWITCHES): Remove.
1008 (TARGET_DEFAULT): Remove MASK_INLINE_FLOAT_DIV_THR.
1009 * config/ia64/ia64.c (ia64_fixed_range_string): Remove.
1010 (ia64_tls_size_string, ia64_tune_string): Remove.
1011 (ia64_tune): Init to PROCESSOR_ITANIUM2.
1012 (TARGET_DEFAULT_TARGET_FLAGS): New.
1013 (TARGET_HANDLE_OPTION): New.
1014 (ia64_override_options): Move options parsing ...
1015 (ia64_handle_option): ... here. New.
1016 * config/ia64/ia64.h (target_flags, MASK_BIG_ENDIAN, MASK_GNU_AS,
1017 MASK_GNU_LD, MASK_NO_PIC, MASK_VOL_ASM_STOP, MASK_ILP32,
1018 MASK_REG_NAMES, MASK_NO_SDATA, MASK_CONST_GP, MASK_AUTO_PIC,
1019 MASK_INLINE_FLOAT_DIV_LAT, MASK_INLINE_FLOAT_DIV_THR,
1020 MASK_INLINE_INT_DIV_LAT, MASK_INLINE_INT_DIV_THR,
1021 MASK_INLINE_SQRT_LAT, MASK_INLINE_SQRT_THR, MASK_DWARF2_ASM,
1022 MASK_EARLY_STOP_BITS, TARGET_BIG_ENDIAN, TARGET_GNU_AS, TARGET_GNU_LD,
1023 TARGET_NO_PIC, TARGET_VOL_ASM_STOP, TARGET_ILP32, TARGET_REG_NAMES,
1024 TARGET_NO_SDATA, TARGET_CONST_GP, TARGET_AUTO_PIC,
1025 TARGET_INLINE_FLOAT_DIV_LAT, TARGET_INLINE_FLOAT_DIV_THR,
1026 TARGET_INLINE_INT_DIV_LAT, TARGET_INLINE_INT_DIV_THR,
1027 TARGET_INLINE_FLOAT_DIV, TARGET_INLINE_INT_DIV, TARGET_INLINE_SQRT_LAT,
1028 TARGET_INLINE_SQRT_THR, TARGET_INLINE_SQRT, TARGET_DWARF2_ASM,
1029 TARGET_EARLY_STOP_BITS): Remove.
1030 (TARGET_ILP32): Default false.
1031 (TARGET_SWITCHES, SUBTARGET_SWITCHES, TARGET_OPTIONS): Remove.
1032 (enum ia64_inline_type): New.
1033 (TARGET_DEFAULT): Remove MASK_INLINE_FLOAT_DIV_THR.
1034 * config/ia64/ia64.md: Update for new definitions of
1035 TARGET_INLINE_INT_DIV, TARGET_INLINE_FLOAT_DIV, TARGET_INLINE_SQRT.
1036 * config/ia64/ia64.opt: New file.
1037 * config/ia64/ilp32.opt: New file.
1039 2005-03-17 H.J. Lu <hongjiu.lu@intel.com>
1042 * config/ia64/unwind-ia64.c (_Unwind_FindTableEntry): Removed.
1044 2005-03-17 Kazu Hirata <kazu@cs.umass.edu>
1046 * config/h8300/h8300.c (h8300_init_once): Use MASK_H8300S_1
1047 instead of MASK_H8300S.
1048 * config/h8300/h8300.h (target_flags, MASK_H8300S, MASK_MAC,
1049 MASK_INT32, MASK_ADDRESSES, MASK_QUICKCALL, MASK_SLOWBYTE,
1050 MASK_NORMAL_MODE, MASK_RELAX, MASK_H8300H, MASK_ALIGN_300,
1051 MASK_H8300SX, TARGET_INT32, TARGET_ADDRESSES,
1052 TARGET_QUICKCALL, TARGET_SLOWBYTE, TARGET_H8300H,
1053 TARGET_H8300XS, TARGET_NORMAL_MODE, TARGET_ALIGN_300,
1054 TARGET_SWITCHES): Remove.
1055 (TARGET_H8300S): Redefine interms of TARGET_H8300S_1 and
1057 * config/h8300/h8300.opt: New.
1059 * config/alpha/alpha.opt, config/arc/arc.opt,
1060 config/h8300/h8300.opt, config/mips/mips.opt: Add copyright
1063 2005-03-17 Ian Lance Taylor <ian@airs.com>
1067 2005-03-17 Richard Sandiford <rsandifo@redhat.com>
1069 * config/arc/arc.c (arc_cpu_string): Make static. Default to "base"
1070 (arc_text_string, arc_data_string, arc_rodata_string): Make static.
1071 (TARGET_HANDLE_OPTION): Override default.
1072 (arc_handle_option): New function.
1073 (arc_init): Remove code to set arch_cpu_string.
1074 * config/arc/arc.h (target_flags, TARGET_MASK_MANGLE_CPU)
1075 (TARGET_MANGLE_CPU, TARGET_MASK_MANGLE_CPU_LIBGCC)
1076 (TARGET_MANGLE_CPU_LIBGCC, TARGET_MASK_ALIGN_LOOPS, TARGET_ALIGN_LOOPS)
1077 (TARGET_MASK_BIG_ENDIAN, TARGET_BIG_ENDIAN, TARGET_MASK_NO_COND_EXEC)
1078 (TARGET_NO_COND_EXEC, TARGET_SWITCHES, TARGET_DEFAULT)
1079 (SUBTARGET_SWITCHES, arc_cpu_string, arc_text_string, arc_data_string)
1080 (arc_rodata_string, TARGET_OPTIONS): Delete.
1081 * config/arc/arc.opt: New file.
1083 2005-03-17 Richard Henderson <rth@redhat.com>
1085 * doc/extend.texi (Weak Pragmas): New section.
1086 (attribute alias): Clarify that target must be in the same
1089 2005-03-17 Richard Henderson <rth@redhat.com>
1091 * config/alpha/alpha.opt: New file.
1092 * config/alpha/alpha.c (alpha_tune): New. Rename all existing uses
1094 (alpha_cpu_string, alpha_tune_string, alpha_tp_string,
1095 alpha_fprm_string, alpha_fptm_string): Make static.
1096 (alpha_tls_size_string): Remove.
1097 (alpha_handle_option): New.
1098 (override_options): Update for alpha_cpu/alpha_tune split.
1099 (alpha_file_start): Likewise.
1100 (TARGET_DEFAULT_TARGET_FLAGS): New.
1101 (TARGET_HANDLE_OPTION): New.
1102 * config/alpha/alpha.h (alpha_tune): Declare.
1103 (MASK_FP, MASK_FPREGS, TARGET_FPREGS, MASK_GAS, TARGET_GAS,
1104 MASK_IEEE_CONFORMANT, TARGET_IEEE_CONFORMANT, MASK_IEEE, TARGET_IEEE,
1105 MASK_IEEE_WITH_INEXACT, TARGET_IEEE_WITH_INEXACT, MASK_BUILD_CONSTANTS,
1106 TARGET_BUILD_CONSTANTS, MASK_FLOAT_VAX, TARGET_FLOAT_VAX, MASK_BWX,
1107 TARGET_BWX, MASK_MAX, TARGET_MAX, MASK_FIX, TARGET_FIX, MASK_CIX,
1108 TARGET_CIX, MASK_EXPLICIT_RELOCS, TARGET_EXPLICIT_RELOCS,
1109 MASK_SMALL_DATA, TARGET_SMALL_DATA, MASK_TLS_KERNEL, TARGET_TLS_KERNEL,
1110 MASK_SMALL_TEXT, TARGET_SMALL_TEXT, MASK_LONG_DOUBLE_128,
1111 TARGET_LONG_DOUBLE_128, MASK_CPU_EV5, TARGET_CPU_EV5, MASK_CPU_EV6,
1112 TARGET_CPU_EV6, MASK_SUPPORT_ARCH): Remove.
1113 (TARGET_SWITCHES, TARGET_OPTIONS): Remove.
1114 (TARGET_DEFAULT): Remove MASK_FP.
1115 (TARGET_FP): Redefined based on TARGET_SOFT_FP.
1116 (TARGET_SUPPORT_ARCH): Default on if HAVE_AS_EXPLICIT_RELOCS.
1117 (alpha_cpu_string, alpha_tune_string, alpha_fprm_string,
1118 alpha_fptm_string, alpha_tp_string, alpha_mlat_string,
1119 alpha_tls_size_string): Remove.
1120 * config/alpha/alpha.md (prefetch): Use alpha_cpu.
1121 (attribute tune): Rename from attribute cpu.
1122 * config/alpha/ev4.md: Update to match.
1123 * config/alpha/ev5.md, config/alpha/ev6.md: Likewise.
1124 * config/alpha/freebsd.h (TARGET_DEFAULT): Remove MASK_FP.
1125 * config/alpha/linux.h (TARGET_DEFAULT): Likewise.
1126 * config/alpha/netbsd.h (TARGET_DEFAULT): Likewise.
1127 * config/alpha/osf5.h (TARGET_DEFAULT): Likewise.
1128 * config/alpha/vms.h (TARGET_DEFAULT): Likewise.
1130 2005-03-16 James E. Wilson <wilson@specifixinc.com>
1132 * config/ia64/ia64.c (issue_nops_and_insn): Check first_insn attribute,
1133 and return without creating new state if before_nops_num is nonzero.
1134 * config/ia64/ia64.md (first_insn): New attribute.
1135 (alloc): Set it to yes.
1137 2005-03-16 Daniel Berlin <dberlin@dberlin.org>
1139 * tree-vectorizer.c (new_vec_stmt_info): Initialize
1140 STMT_VINFO_SUBVARS to NULL.
1141 * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
1143 2005-03-16 Dale Johannesen <dalej@apple.com>
1145 * rtlanal.c (find_first_parameter_load): Rewrite to
1146 return actual first param load or the call if none,
1147 instead of first in block, when not all loads exist.
1149 2005-03-16 Roger Sayle <roger@eyesopen.com>
1151 * optabs.c (expand_copysign_absneg): Make static.
1152 * optabs.h (expand_copysign_absneg): Delete prototype.
1153 * config/rs6000/rs6000.md (copysigntf3): Delete pattern.
1155 2005-03-16 Richard Henderson <rth@redhat.com>
1158 * varasm.c (struct alias_pair): Rename from struct output_def_pair.
1159 (alias_pairs): Rename from output_defs.
1160 (find_decl_and_mark_needed): Split out from assemble_alias.
1161 (do_assemble_alias): New.
1162 (assemble_output_def): Remove.
1163 (finish_aliases_1, finish_aliases_2): New.
1164 (process_pending_assemble_output_defs): Remove.
1165 (assemble_alias): Defer aliases for which we don't yet have a
1166 non-external decl for the target symbol.
1167 * passes.c (rest_of_decl_compilation): Register variables with cgraph.
1168 * cgraphunit.c (cgraph_finalize_compilation_unit): Use finish_aliases_1.
1169 * toplev.c (compile_file): Use finish_aliases_2 instead of
1170 process_pending_assemble_output_defs.
1171 * tree.h (finish_aliases_1, finish_aliases_2): Declare.
1172 (process_pending_assemble_output_defs): Remove.
1174 2005-03-16 Daniel Berlin <dberlin@dberlin.org>
1176 Fix PR tree-optimization/20489
1178 * tree-ssa-alias.c (push_fields_onto_fieldstack): DTRT
1179 for empty structures.
1181 2005-03-16 Daniel Berlin <dberlin@dberlin.org>
1183 Fix PR tree-optimization/20490
1185 * tree-ssa-pre.c (create_expression_by_pieces): Use
1186 force_gimple_operand on result of fold.
1188 2005-03-16 Andrew Pinski <pinskia@physics.uc.edu>
1190 * config/i386/emmintrin.h (_mm_extract_epi16): Correct the number
1191 of closing parenthesis.
1193 2005-03-16 Kazu Hirata <kazu@cs.umass.edu>
1195 * builtins.c (expand_movstr): Update a call to
1196 fold_builtin_strcpy.
1197 (expand_builtin_strncpy): Update a call to
1198 fold_builtin_strncpy.
1199 (fold_builtin_strcpy, fold_builtin_strncpy): Take decomosed
1200 arguments of CALL_EXPR.
1201 (fold_builtin_1): Update calls to fold_builtin_strcpy and
1202 fold_builtin_strncpy.
1203 * tree-ssa-ccp.c (ccp_fold_builtin): Likewise.
1204 * tree.h: Update the prototypes of fold_builtin_strcpy and
1205 fold_builtin_strncpy.
1207 2005-03-16 Steven Bosscher <stevenb@suse.de>
1208 Dorit Naishlos <dorit@il.ibm.com>
1210 * tree-vect-analyze.c (vect_enhance_data_refs_alignment): Copy
1211 UNITS_PER_SIMD_WORD to a local variable to avoid a "division by zero"
1214 2005-03-16 Steven Bosscher <stevenb@suse.de>
1216 * tree-inline.c (walk_type_fields, walk_tree,
1217 walk_tree_without_duplicates): Move from here...
1218 * tree.c: ...to here.
1220 2005-03-15 Zack Weinberg <zack@codesourcery.com>
1222 * BASE-VER, DATESTAMP, DEV-PHASE: New files.
1223 * Makefile.in (gcc_version, gcc_version_trigger, ): Delete.
1224 (BASEVER, DEVPHASE, DATESTAMP, BASEVER_c, DEVPHASE_c, DATESTAMP_c)
1225 (BASEVER_s, DEVPHASE_s, DATESTAMP_s): New variables.
1226 (version): Define using $(BASEVER_c).
1227 (Makefile, config.status, build/gcov-iov.o): No longer depends on
1229 (version.o): Depend on version files; add custom generation command.
1230 (prefix.o): Define BASEVER on command line.
1231 (s-iov): Depend on version files; adjust command.
1232 (TEXI_CPP_FILES, TEX_IGCC_FILES, TEXI_GCCINT_FILES, TEXI_CPPINT_FILES):
1234 (gcc-vers.texi): New rule.
1235 (doc/%.info, doc/%.dvi): Add -I . to command line.
1236 (doc/gccinstall.dvi): Likewise.
1237 (PACKAGE): Delete. All uses replaced with "gcc".
1238 * aclocal.m4: Do not include gcc-version.m4.
1239 * configure.ac: Do not invoke TL_AC_GCC_VERSION.
1240 Do not AC_SUBST nor AC_DEFINE PACKAGE or VERSION.
1241 Set is_release based on contents of DEV-PHASE.
1242 Set gcc_version based on contents of BASE-VER.
1243 Define WIN32_REGISTRY_KEY only if the user overrode the default.
1244 * config.in, configure: Regenerate.
1245 * gccbug.in: Determine version of GCC in use at runtime.
1246 * gcov-iov.c: Get version number and development phase from
1247 command line, not by including version.c.
1248 * intl.c: Replace all uses of PACKAGE with "gcc".
1249 * libada-mk.in: Delete unused "gcc_version" variable.
1250 * prefix.c: Default WIN32_REGISTRY_KEY to BASEVER.
1251 * version.c: (VERSUFFIX): New hook for redistributors; adjust
1252 commentary to match.
1253 (version_string): Put together from pieces.
1254 * config/alpha/x-vms: Do not use $(gcc_version).
1255 * config/i386/t-nwld: Likewise.
1256 * doc/include/gcc-common.texi: Include gcc-vers.texi for
1257 version-GCC and DEVELOPMENT.
1259 2005-03-15 Roger Sayle <roger@eyesopen.com>
1261 PR tree-optimization/17454
1262 * tree.c (tree_size): Add case for TREE_BINFO.
1263 * fold-const.c (fold_checksum_tree): Only clear the overloaded
1264 field TYPE_CACHED_VALUES if TYPE_CACHED_VALUES_P is set.
1266 2005-03-15 Roger Sayle <roger@eyesopen.com>
1268 * optabs.c (expand_doubleword_mult): Avoid clobbering op0 and
1269 op1 whilst expanding the signed widenening multiply variant.
1271 2005-03-15 Richard Sandiford <rsandifo@redhat.com>
1273 * toplev.c (display_target_options): Avoid unused variable warning if
1274 TARGET_SWITCHES and TARGET_OPTIONS are both undefined.
1275 * config/mips/mips.c (mips_arch_string, mips_tune_string): Make static.
1276 (mips_isa_string, mips_abi_string, mips_fix_vr4130_string): Delete.
1277 (mips_isa): Initialize to MIPS_ABI_DEFAULT.
1278 (mips_isa_info): New variable.
1279 (mips_parse_cpu): Remove the first argument and leave the caller
1281 (TARGET_HANDLE_OPTION): Override default.
1282 (mips_handle_option): New function. Move option validation code from...
1283 (override_options): ...here. Update calls to mips_parse_cpu.
1284 * config/mips/mips.h (mips_arch_string, mips_tune_string)
1285 (mips_isa_string, mips_abi_string, TARGET_OPTIONS)
1286 (SUBTARGET_TARGET_OPTIONS): Delete.
1287 * config/mips/mips.opt (mabi=, march=, mflush-func=, mips)
1288 (mno-flush-func, mtune=): New options.
1290 2005-03-15 Roger Sayle <roger@eyesopen.com>
1291 Richard Henderson <rth@redhat.com>
1293 * real.c (c4x_single_format, c4x_extended_format): Provide values
1294 for signbit_ro for c4x's single and extended floating point formats.
1295 * optabs.c (expand_copysign): Use the floating point format's
1296 signbit_ro for expanding via expand_copysign_absneg, and it's
1297 signbit_rw field for expanding via expand_copysign_bit.
1299 2005-03-15 Dorit Naishlos <dorit@il.ibm.com>
1301 * tree-vectorizer.h (unknown_alignment_for_access_p): Replaced by
1302 known_alignment_for_access_p.
1303 (known_alignment_for_access_p): New.
1304 (do_peeling_for_alignment): Field made int instead of bool and renamed
1305 to peeling_for_alignment.
1306 (LOOP_DO_PEELING_FOR_ALIGNMENT): Renamed to LOOP_PEELING_FOR_ALIGNMENT.
1307 * tree-vect-analyze.c (vect_determine_vectorization_factor): New. This
1308 functionality used to be in vect_analyze_operations.
1309 (vect_analyze_operations): Code to determine vectorization factor was
1310 moved to vect_determine_vectorization_factor.
1311 (vect_enhance_data_refs_alignment): Update to correct alignment when it
1312 is known instead of -1. Set LOOP_PEELING_FOR_ALIGNMENT to peeling
1314 (vect_analyze_loop): Call vect_determine_vectorization_factor (used to
1315 be part of vect_analyze_operations).
1316 * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Use fold when
1317 creating the guard condition, as the number of iterations may be
1319 (slpeel_tree_peel_loop_to_edge): Use new name of
1320 LOOP_DO_PEELING_FOR_ALIGNMENT. Set it to 0 instead of false.
1321 * tree-vect-transform.c (vect_gen_niters_for_prolog_loop): Handle known
1322 alignment case more efficiently. Use LOOP_PEELING_FOR_ALIGNMENT.
1323 (vect_do_peeling_for_alignment): Use fold.
1324 (vect_transform_loop): Use new name of LOOP_DO_PEELING_FOR_ALIGNMENT.
1326 (vect_update_inits_of_dr): Renamed to
1327 vect_update_init_of_dr.
1328 (vect_update_inits_of_drs): Use new name of vect_update_inits_of_dr.
1329 (vectorizable_store): Fix assertion to use == instead of =.
1331 2005-03-15 Daniel Jacobowitz <dan@codesourcery.com>
1333 * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't clear
1334 call_used_regs for wCG registers.
1336 2005-03-15 Ulrich Weigand <uweigand@de.ibm.com>
1338 * config/s390/s390.c (s390_secondary_output_reload_class): Adapt check
1339 for non-offsettable memory references to cope with outstanding reload
1340 replacements, take 2.
1342 2005-03-15 Uros Bizjak <uros@kss-loka.si>
1345 * config/i386/i386.h (x86_fisttp): New.
1346 (TARGET_FISTTP): New macro.
1347 * config/i386/i386.c (x86_fisttp): Set for NOCONA.
1348 (output_fix_trunc): Add fisttp parameter. Generate fisttp x87
1349 instruction when fisttp flag is set.
1350 * config/i386/i386-protos.h (output_fix_trunc): Change declaration.
1352 * config/i386/i386.md (type attribute): Add fisttp.
1353 (unit attribute): Set to i387 for fisttp type.
1354 (X87MODEF, X87MODEI, SSEMODEF, SSEMODEI24): New mode macros.
1355 (fix_truncxfdi2, fix_truncxfsi2): Generate fisttp patterns for
1357 (fix_truncdfdi2, fix_truncsfdi2, fix_truncdfsi2, fix_truncsfsi2):
1358 Generate fisttp patterns for TARGET_FISTTP. Implement using mode
1360 (fix_truncxfhi2, fix_truncdfhi2, fix_truncsfhi2): Generate fisttp
1361 patterns for TARGET_FISTTP. Enable patterns for
1362 (TARGET_FISTTP && !TARGET_SSE_MATH). Implement using mode macros.
1363 (fix_trunc<mode>_i387_fisttp_1, fix_trunc<mode>_i387_fisttp,
1364 fix_trunc<mode>_i387_fisttp_with_temp): New instruction patterns to
1365 implement fisttp x87 insn.
1366 (fix_trunc*_i387_fisttp splitters): New patterns.
1367 (*fix_truncdi_i387, *fix_truncsi_i387, *fix_trunchi_i387):
1368 Rename to *fix_trunc<mode>_i387_1. Implement using mode macros.
1369 Disable patterns for TARGET_FISTTP. Add comment about FLAGS_REG
1371 (fix_truncdi_memory, fix_truncdi_nomemory, fix_trunchi_nomemory):
1372 Rename to fix_trunc<mode>_i387 and fix_trunc<mode>_i387_with_temp.
1373 Implement using mode macros. Disable patterns for TARGET_FISTTP.
1374 (fix_truncsi_memory, fix_truncsi_nomemory, fix_trunchi_memory,
1375 fix_trunchi_nomemory): Rename to fix_trunc<mode>_i387 and
1376 fix_trunc<mode>_i387_with_temp. Implement using mode macros.
1377 Disable patterns for TARGET_FISTTP.
1378 (fix_trunc*_i387 splitters): Implement usign mode macros.
1379 (fix_truncdfdi_sse, fix_truncsfdi_sse, fix_truncdfsi_sse,
1380 fix_truncsfsi_sse): Disable for (TARGET_FISTTP && !TARGET_SSE_MATH).
1381 (fix_trunx*_sse peephole2s): Implement using mode macros.
1383 2005-03-15 J"orn Rennecke <joern.rennecke@st.com>
1385 PR rtl-optimization/20291
1386 * combine.c (try_combine): If splitting fails, re-try with
1387 original combined pattern, i.e. before clobber stripping.
1389 2005-03-14 Eric Christopher <echristo@redhat.com>
1391 * config/mips/mips.h (DWARF_CIE_DATA_ALIGNMENT): Change for
1392 STACK_GROWS_DOWNWARD.
1394 2005-03-14 Roger Sayle <roger@eyesopen.com>
1396 * real.h (struct real_format): Split the signbit field into two
1397 two fields, signbit_ro and signbit_rw.
1398 * real.c (ieee_single_format, mips_single_format, ieee_double_format,
1399 mips_double_format, ieee_extended_motorola_format,
1400 ieee_extended_intel_96_format, ieee_extended_intel_96_round_53_format,
1401 ieee_extended_intel_128_format, ibm_extended_format,
1402 mips_extended_format, ieee_quad_format, mips_quad_format,
1403 vax_f_format, vax_d_format, vax_g_format, i370_single_format,
1404 i370_double_format, c4x_single_format, c4x_extended_format,
1405 real_internal_format): Update initializers for new field.
1406 * builtins.c (expand_builtin_signbit): Use signbit_ro field of the
1407 real_format structure.
1408 * optabs.c (expand_absneg_bit, expand_copysign): Use signbit_rw
1409 field of the real_format structure.
1411 2005-03-14 Daniel Berlin <dberlin@dberlin.org>
1413 Fix PR tree-optimization/20458
1415 * tree-flow-inline.h (mark_call_clobbered): Don't fiddle
1416 DECL_EXTERNAL on STRUCT_FIELD tags.
1417 (clear_call_clobbered): Ditto.
1418 * tree-ssa-operands.c (note_addressable): Make sure the original
1419 variable doesn't slip into the addressable list if we have
1421 * tree-tailcall.c (suitable_for_tail_opt_p): Look at STRUCT_FIELD
1424 2005-03-14 Geoffrey Keating <geoffk@apple.com>
1426 * doc/cppopts.texi (-fexec-charset): Add concept index entry.
1427 (-fwide-exec-charset): Likewise.
1428 (-finput-charset): Likewise.
1429 * doc/invoke.texi (Warning Options): Document -Wnormalized=.
1430 * c-opts.c (c_common_handle_option): Handle -Wnormalized=.
1431 * c.opt (Wnormalized): New.
1433 2005-03-14 Devang Patel <dpatel@apple.com>
1435 * doc/invoke.texi: Add reference to Visibility document.
1437 2005-03-14 Richard Sandiford <rsandifo@redhat.com>
1439 * config.gcc (mips*-*-*): Rename MASK_SPLIT_ADDRS to
1440 MASK_SPLIT_ADDRESSES.
1441 * config/mips/mips.h (target_flags, mips_fix_vr4130_string): Delete.
1442 (MASK_INT64, MASK_LONG64, MASK_SPLIT_ADDR, MASK_NO_FUSED_MADD)
1443 (MASK_EXPLICIT_RELOCS, MASK_MEMCPY, MASK_SOFT_FLOAT)
1444 (MASK_FLOAT64, MASK_ABICALLS, MASK_XGOT, MASK_LONG_CALLS)
1445 (MASK_64BIT, MASK_EMBEDDED_DATA, MASK_BIG_ENDIAN)
1446 (MASK_SINGLE_FLOAT, MASK_MAD, MASK_4300_MUL_FIX, MASK_MIPS16)
1447 (MASK_NO_CHECK_ZERO_DIV, MASK_BRANCHLIKELY)
1448 (MASK_UNINIT_CONST_IN_RODATA, MASK_FIX_R4000, MASK_FIX_R4400)
1449 (MASK_FIX_SB1, MASK_FIX_VR4120, MASK_VR4130_ALIGN)
1450 (MASK_FP_EXCEPTIONS, MASK_DIVIDE_BREAKS, MASK_PAIRED_SINGLE)
1451 (MASK_MIPS3D, MASK_SYM32, MASK_DEBUG, MASK_DEBUG_D)
1452 (MASK_MIPS_TFILE, TARGET_INT64, TARGET_LONG64, TARGET_FLOAT64)
1453 (TARGET_64BIT, TARGET_SPLIT_ADDRESSES, TARGET_DEBUG_MODE)
1454 (TARGET_DEBUG_D_MODE, TARGET_MEMCPY, TARGET_ABICALLS)
1455 (TARGET_XGOT, TARGET_SOFT_FLOAT, TARGET_HARD_FLOAT)
1456 (TARGET_LONG_CALLS, TARGET_EMBEDDED_DATA)
1457 (TARGET_UNINIT_CONST_IN_RODATA, TARGET_BIG_ENDIAN)
1458 (TARGET_SINGLE_FLOAT, TARGET_DOUBLE_FLOAT, TARGET_MAD)
1459 (TARGET_FUSED_MADD, TARGET_4300_MUL_FIX, TARGET_CHECK_ZERO_DIV)
1460 (TARGET_DIVIDE_TRAPS, TARGET_BRANCHLIKELY, TARGET_FIX_SB1)
1461 (TARGET_FIX_R4000, TARGET_FIX_R4400, TARGET_FIX_VR4120)
1462 (TARGET_FIX_VR4130, TARGET_VR4130_ALIGN, TARGET_FP_EXCEPTIONS)
1463 (TARGET_PAIRED_SINGLE_FLOAT, TARGET_MIPS3D, TARGET_SYM32)
1464 (TARGET_EXPLICIT_RELOCS): Delete.
1465 (TARGET_SWITCHES, SUBTARGET_TARGET_SWITCHES): Delete.
1466 (TARGET_OPTIONS): Remove entry for -mfix-vr4130.
1467 * config/mips/mips.c (TARGET_DEFAULT_TARGET_FLAGS): Define.
1468 (override_options): Set MASK_LONG64 if -mint64 is given and no
1469 -mlongXX option is. Complain about -mint64 -mlong32.
1470 (override_options, CMP_BUILTINS, mips_bdesc, sb1_desc): Rename
1471 MASK_PAIRED_SINGLE to MASK_PAIRED_SINGLE_FLOAT.
1472 * config/mips/mips.opt: New file.
1474 2005-03-14 Richard Sandiford <rsandifo@redhat.com>
1476 * config.gcc (extra_options): New variable for listing option files.
1477 Add ${cpu_type}/${cpu_type}.opt to it if that file exists.
1478 * configure.ac (extra_opt_files): New AC_SUBST variable.
1479 (tm_file_list, tm_include_list): Include options.h first.
1480 * configure: Regenerate.
1481 * Makefile.in (extra_opt_files, ALL_OPT_FILES): New variables.
1482 (s-options): Use $(ALL_OPT_FILES) instead of $(lang_opt_files)
1483 (s-options-h): New rule.
1484 (options.h): Depend on it.
1485 (TEXI_GCCINT_FILES): Add options.texi.
1486 * hooks.h (hook_bool_size_t_constcharptr_int_true): Declare.
1487 * hooks.c (hook_bool_size_t_constcharptr_int_true): New function.
1488 * target.h (gcc_target): Add default_target_flags and handle_option.
1489 * target-def.h (TARGET_DEFAULT_TARGET_FLAGS)
1490 (TARGET_HANDLE_OPTION): New macros.
1491 (TARGET_INITIALIZER): Include them.
1492 * opt-functions.awk (opt_args, nth_arg): New functions.
1493 (switch_flags): Handle the "Target" flag.
1495 (var_name): Use opt_args and nth_arg.
1496 (var_set, var_ref): Likewise. Handle "Mask" and "InverseMask".
1497 * opth-gen.awk: Declare target_flags. Declare MASK_* and TARGET_*
1498 macros for the "Mask" and "InverseMask" options.
1499 * opts.h (cl_var_cond): New enum.
1500 (cl_option): Replace the "has_set_value" and "set_value" fields with
1501 "var_cond" and "var_value".
1502 (CL_TARGET): New macro.
1503 (option_enabled, print_filtered_help): Declare.
1504 (decode_options): Move definition.
1505 * opts.c (handle_option): Search for the original option before
1506 removing any "no-" prefix. Handle CL_TARGET. Adjust for the new
1507 var_cond and var_value fields. Use targetm.handle_option to handle
1509 (decode_options): Set target_flags to targetm.default_target_flags.
1510 (print_filtered_help): Make global. Handle CL_TARGET.
1511 (option_enabled): New function.
1512 * toplev.c (target_switches): Guard with #ifdef TARGET_SWITCHES.
1513 (display_target_options, set_target_switch, print_switch_values)
1514 (default_pch_valid_p): Guard uses of target_switches with
1515 #ifdef TARGET_SWITCHES. Also...
1516 (display_target_options): Display the CL_TARGET entries in cl_options.
1517 (set_target_option): Don't complain about the "" option when
1518 TARGET_SWITCHES is undefined.
1519 (print_switch_values): Use option_enabled.
1520 (default_pch_valid_p): Check cl_options[] when looking for something
1521 that has changed the value of target_flags.
1522 * c.opt: Remove documentation from top of file.
1523 * doc/gccint.texi: Add an "Options" chapter. Include options.texi.
1524 * doc/sourecebuild.texi: Refer to the new options documentation
1525 instead of c.opt. Document machine-specific .opt files.
1526 * doc/tm.texi (target_flags): Say that this variable is declared
1528 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Document.
1529 (TARGET_SWITCHES, TARGET_OPTIONS): Refer to the option files as
1531 * doc/options.texi: New file.
1533 2005-03-14 Alexandre Oliva <aoliva@redhat.com>
1536 * cse.c (fold_rtx_mem): Don't fold a load from a jumptable into a
1539 2005-03-14 Alexandre Oliva <aoliva@redhat.com>
1542 * gimplify.c (gimplify_cond_expr): Add fallback argument. Use a
1543 temporary variable of pointer type if an lvalues is required.
1544 (gimplify_modify_expr_rhs): Request an rvalue from it.
1545 (gimplify_expr): Pass fallback on.
1547 2005-03-14 Kazu Hirata <kazu@cs.umass.edu>
1549 * cfgbuild.c: Update comments.
1551 2005-03-14 Roger Sayle <roger@eyesopen.com>
1553 PR rtl-optimization/17236
1554 * optabs.c (expand_doubleword_mult): New helper function split out
1555 from expand_binop. Permute the order in which instructions are
1556 emitted to minimize the number of simultaneously live registers.
1557 (expand_binop): Call expand_doubleword_mult to synthesize a double
1558 word multiplication.
1560 2005-03-14 Kazu Hirata <kazu@cs.umass.edu>
1562 * basic-block.h: Update the prototypes of cached_make_edge and
1564 * cfg.c (cached_make_edge): Take edge_cache representing one
1565 row of the adjacency matrix of edges.
1566 * cfgbuild.c (make_label_edge, rtl_make_eh_edge): Likewise.
1567 (make_edges): Initialize edge_cache to represent one row of
1568 the adjacency matrix of edges.
1570 2005-03-14 Zdenek Dvorak <dvorakz@suse.cz>
1572 * tree-ssa-phiopt.c (minmax_replacement, blocks_in_phiopt_order):
1574 (tree_ssa_phiopt): Use blocks_in_phiopt_order and minmax_replacement.
1575 Remove unused removed_phis variable.
1576 (conditional_replacement): Use build1/build2.
1577 (abs_replacement): Use last_and_only_stmt and build1/build2.
1579 2005-03-14 Zdenek Dvorak <dvorakz@suse.cz>
1581 * builtin-attrs.def (ATTR_NOVOPS, ATTR_NOVOPS_LIST,
1582 ATTR_PURE_NOTHROW_NOVOPS_LIST): New.
1583 * builtins.def (ATTR_MATHFN_FPROUNDING): Use NOVOPS.
1584 (BUILT_IN_PREFETCH): Set the NOVOPS attribute.
1585 * c-common.c (handle_novops_attribute): New function.
1586 (c_common_attribute_table): Add "no vops" entry.
1587 * c-decl.c (merge_decls): Copy DECL_IS_NOVOPS.
1588 * calls.c (flags_from_decl_or_type): Set ECF_NOVOPS.
1589 * tree-ssa-operands.c (get_call_expr_operands): Do not
1590 create virtual operands for calls with ECF_NOVOPS flag.
1591 * tree.h (DECL_IS_NOVOPS): New macro.
1592 (struct tree_decl): Add novops_flag.
1593 (ECF_NOVOPS): New constant.
1595 2005-03-14 Uros Bizjak <uros@kss-loka.si>
1598 * config/i386/i386.c (x86_use_himode_fiop): New.
1599 (x86_use_simode_fiop): Rename from x86_use_fiop.
1600 * config/i386/i386.h (x86_use_himode_fiop): Declare.
1601 (TARGET_USE_HIMODE_FIOP): New.
1602 (x86_use_simode_fiop): Rename from x86_use_fiop.
1603 (TARGET_USE_SIMODE_FIOP): Rename from TARGET_USE_FIOP.
1605 * config/i386/i386.md (X87MODEI12): New mode macro define.
1606 (*cmpfp_<mode>): Rename from *cmpfp_si. Use X87MODEI12 mode macro
1607 to implement x87 FP compare with HImode input operands.
1608 (*fp_jcc_8<mode>_387, splitter): Rename from *fp_jcc_8_387.
1609 Use X87MODEI12 mode macro to handle HImode input operands.
1610 (*fop_sf_2<mode>_i387, *fop_sf_3<mode>_i387, *fop_df_2<mode>_i387,
1611 *fop_df_3<mode>_i387, *fop_xf_2<mode>_i387, *fop_xf_3<mode>_i387):
1612 Renamed from *fop_sf_2_i387, *fop_sf_3_i387, *fop_df_2_i387,
1613 *fop_df_3_i387, *fop_xf_2_i387, *fop_xf_3_i387. Use X87MODEI12 mode
1614 macro to implement x87 operators with HImode input operands.
1615 (fop splitters): Use X87MODEI12 mode macro to handle HImode
1618 2005-03-14 Zdenek Dvorak <dvorakz@suse.cz>
1620 * tree-cfg.c (find_taken_edge_cond_expr): Use zero_p instead of
1622 * tree-gimple.c (is_gimple_min_invariant): Consider overflowed
1623 constants invariant.
1625 2005-03-14 Zdenek Dvorak <dvorakz@suse.cz>
1627 * basic-block.h (BB_VISITED): Removed.
1628 * cfganal.c (dfs_enumerate_from): Do not use BB_VISITED flag.
1630 2005-03-14 Falk Hueffner <falk@debian.org>
1633 * config/alpha/alpha.c (alpha_fold_builtin_cmpbge): Fix typo.
1635 2005-03-14 Kazu Hirata <kazu@cs.umass.edu>
1637 * ggc-zone.c: Fix comment typos.
1639 * alloc-pool.c, except.h, ggc-common.c, ggc-zone.c, ggc.h,
1640 stringpool.c, config/mips/mips-protos.h: Update copyright.
1642 2005-03-14 Alan Modra <amodra@bigpond.net.au>
1644 * config/rs6000/rs6000-protos.h: Replace "struct rtx_def *"
1645 throughout with its typedef, "rtx".
1646 * config/rs6000/rs6000.c: Likewise. Formatting fixes.
1647 (rs6000_tls_symbol_ref_1): Remove inline keyword.
1648 * config/rs6000/rs6000.h (REG_ALLOC_ORDER): Formatting. Reorder
1649 regs in comment to match code.
1651 2005-03-14 Kazu Hirata <kazu@cs.umass.edu>
1653 * except.c (check_handled): Make it static.
1654 * except.h: Remove the corresponding prototype.
1656 * function.c (get_func_frame_size): Make it static.
1657 * function.h: Remove the corresponding type.
1659 * regclass.c (reg_class_superclasses, reg_class_subclasses):
1661 * hard-reg-set.h: Remove the corresponding declarations.
1663 * tree-cfg.c (verify_stmts): Check that
1664 bb_for_stmt (stmt) == bb for every PHI node and statement.
1666 2005-03-14 Alan Modra <amodra@bigpond.net.au>
1668 * config.gcc: Remove excess indentation.
1669 (powerpc*-*-*, rs6000-*-*): Accept --with-cpu/tune power5 and 8548.
1671 2005-03-13 Roger Sayle <roger@eyesopen.com>
1674 * tree.c (get_unwidened): Treat CONVERT_EXPR and NOP_EXPR identically.
1675 * fold-const.c (fold_sign_changed_comparison): Likewise.
1676 (fold_binary): Optimize comparisons against widened operands if
1677 the extension is represented by a CONVERT_EXPR, same as a NOP_EXPR.
1679 2005-03-13 Eric Botcazou <ebotcazou@libertysurf.fr>
1681 * config/sparc/sparc.c (struct_value_alias_set): New global variable.
1682 (sparc_override_options): Initialize it.
1683 (sparc_struct_value_rtx): Set it on the MEM to be returned.
1685 2005-03-13 David Edelsohn <edelsohn@gnu.org>
1687 * config/rs6000/predicates.md (mem_or_easy_const_operand): Delete.
1688 (reg_or_none500mem_operand): New predicate.
1689 (zero_reg_mem_operand): New predicate.
1690 * config/rs6000/rs6000.md (extendsfdf2): Change operand1 predicate
1691 to reg_or_none500mem_operand.
1692 (extendsfdf2_fpr): Add MEM alternative.
1693 (extenddftf2_internal): Change operand2 predicate to
1694 zero_reg_mem_operand.
1696 2005-03-13 Daniel Jacobowitz <dan@codesourcery.com>
1698 * ggc-zone.c: Rewritten.
1700 * alloc-pool.c (dump_alloc_pool_statistics): Don't print statistics
1702 * configure.ac: Define GGC_ZONE for --with-gc=zone.
1703 * config.in: Regenerated.
1704 * configure: Regenerated.
1705 * gengtype.c (write_types_process_field, write_func_for_structure):
1706 Pass new argument to gt_pch_note_object.
1707 * ggc-common.c (struct ptr_data): Add TYPE.
1708 (gt_pch_note_object): Take TYPE argument and save it.
1709 (call_count): Update call to ggc_pch_count_object.
1710 (call_alloc): Update call to ggc_pch_alloc_object.
1711 (gt_pch_save): Call ggc_pch_prepare_write after paddng the PCH
1713 * ggc-none.c (rtl_zone, garbage_zone, ggc_alloc_zone_stat): Delete.
1714 * ggc-page.c (rtl_zone, tree_zone, garbage_zone)
1715 (ggc_alloc_zone_stat): Delete.
1716 (ggc_pch_count_object, ggc_pch_alloc_object): Add TYPE argument.
1717 * ggc.h (gt_pch_note_object, ggc_pch_count_object)
1718 (ggc_pch_alloc_object): Update prototypes.
1719 (garbage_zone): Delete.
1720 (tree_zone, rtl_zone, ggc_alloc_zone_stat, ggc_alloc_zone): Move to
1721 GGC_ZONE conditional. Update. Change tree_zone and rtl_zone into
1723 (tree_id_zone): New variable.
1724 (ggc_alloc_cleared_zone): Remove unused.
1725 (ggc_alloc_zone): Define.
1726 (ggc_alloc_rtvec, ggc_alloc_tree): Update to use ggc_alloc_zone.
1727 * rtl.c (rtx_alloc_stat, shallow_copy_rtx_stat): Use
1728 ggc_alloc_zone_stat.
1729 * stringpool.c (gt_pch_n_S): Update call to gt_pch_note_object.
1730 * tree.c (copy_node_stat, make_tree_binfo_stat, make_tree_vec_stat)
1731 (tree_cons_stat, build1_stat): Update call to ggc_alloc_zone_stat.
1732 (make_node_stat): Likewise. Use tree_id_zone.
1734 2005-03-13 Daniel Jacobowitz <dan@codesourcery.com>
1735 Joseph S. Myers <joseph@codesourcery.com>
1737 * configure.ac: Check for MIPS TLS.
1738 * configure: Regenerated.
1739 * config/mips/mips-protos.h (enum mips_symbol_type): Add
1740 SYMBOL_TLS, SYMBOL_TLSGD, SYMBOL_TLSLDM, SYMBOL_DTPREL,
1741 SYMBOL_GOTTPREL, and SYMBOL_TPREL.
1742 * config/mips/mips.c (mips_regno_to_class): Handle V1_REG.
1743 (TARGET_HAVE_TLS, TARGET_CANNOT_FORCE_CONST_MEM): Define.
1744 (mips_classify_symbol, mips_symbolic_constant_p)
1745 (mips_symbolic_address_p, mips_symbol_insns): Handle TLS symbols.
1746 (mips_tls_operand_p, mips_call_tls_get_addr)
1747 (mips_legitimize_tls_address, mips_cannot_force_const_mem)
1748 (mips_tls_symbol_ref_1): New functions.
1749 (mips_legitimize_address, mips_legitimize_const_move): Call
1750 mips_legitimize_tls_address.
1751 (override_options): Handle V1_REG and TLS symbols. Disable TLS
1753 * config/mips/mips.h (enum reg_class, REG_CLASS_NAMES)
1754 (REG_CLASS_CONTENTS, GR_REG_CLASS_P): Include V1_REG.
1755 (mips_char_to_class): Document V1_REG.
1756 (HAVE_AS_TLS): Provide default.
1757 * config/mips/mips.md (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): New
1759 (load_got<mode>): Renamed from *load_got<mode>. Allow when
1761 (tls_get_tp_<mode>): New instruction.
1763 2005-03-13 Daniel Jacobowitz <dan@codesourcery.com>
1765 * configure.ac: Update checks for target tools.
1766 * configure: Regenerated.
1768 2005-03-13 Daniel Jacobowitz <dan@codesourcery.com>
1770 * varasm.c (decl_tls_model): Check flag_shlib instead of flag_pic.
1772 2005-03-13 Roger Sayle <roger@eyesopen.com>
1774 * expmed.c (expand_mult): Use synthetic multiplication sequences for
1775 more classes of DImode multiplication by constant. Allow both
1776 multiplication by small negative constants (by performing a
1777 multiplication by a positive constant and negating the result) and
1778 multiplications by large powers of two, by using a left shift.
1780 2005-03-13 Kazu Hirata <kazu@cs.umass.edu>
1782 * tree-into-ssa.c (find_idf): Speed up by putting the indexes
1783 of basic blocks into work_stack.
1785 * builtin-attrs.def, c-lex.c, c-pragma.h, reg-stack.c,
1786 config/mips/vr.h: Update copyright.
1788 * c-decl.c (c_init_decl_processing): Remove useless calls to
1789 build_function_type.
1791 * builtins.c (fold_trunc_transparent_mathfn,
1792 fold_fixed_mathfn, fold_builtin_atan, fold_builtin_trunc,
1793 fold_builtin_floor, fold_builtin_ceil, fold_builtin_round,
1794 fold_builtin_lround, fold_builtin_bitop, fold_builtin_memcpy,
1795 fold_builtin_strcpy, fold_builtin_strncpy,
1796 fold_builtin_signbit): Use TYPE (TYPE (fndecl)) instead of
1799 * builtins.c (expand_builtin_mathfn_3): Remove local variable
1802 * lambda-code.c (lambda_compute_auxillary_space): Remove local
1803 variable determinant.
1805 * tree-cfg.c (group_case_labels): Remove local variable type.
1807 * tree-ssa-live.c (build_tree_conflict_graph): Remove local
1810 * tree-ssa-phiopt.c (value_replacement): Remove local variable
1813 2005-03-13 Andy Hutchinson <HutchinsonAndy@netscape.net>
1816 * config/avr/avr.md (movmemhi): Rewrite as RTL loop.
1817 (*movmemqi_insn): Delete.
1818 (*movmemhi): Delete.
1820 2005-03-13 Kazu Hirata <kazu@cs.umass.edu>
1822 * builtins.c (fold_builtin_classify): Take decomposed
1823 arguments of CALL_EXPR.
1824 (fold_builtin_1): Update a call to fold_builtin_classify.
1826 2005-03-13 Joseph S. Myers <joseph@codesourcery.com>
1829 * c-parser.c (c_parser_struct_or_union_specifier): Don't fall
1830 through into call to parser_xref_tag after parse error.
1831 (c_parser_struct_declaration): Consistently return NULL_TREE on
1834 2005-03-12 Daniel Berlin <dberlin@dberlin.org>
1836 * tree-flow-inline.h (ref_contains_array_ref): New function.
1837 (lookup_subvars_for_var): Ditto.
1838 (get_subvars_for_var): Ditto.
1839 (var_can_have_subvars): Ditto.
1841 * tree-flow.h (mem_tag_kind): Add STRUCT_FIELD.
1842 (struct subvar): New type.
1844 * tree-dfa.c (okay_component_ref_for_subvars): New function.
1846 * tree-optimize.c (init_tree_optimization_passes): Call
1847 pass_create_structure_vars.
1849 * tree-ssa-alias.c: Include vec.h.
1850 (init_alias_info): Don't auto-clear call clobbered on struct-field
1852 (compute_flow_insensitive_aliasing): Handle subvars.
1853 (group_aliases): Handle STRUCT_FIELD aliases.
1854 (setup_pointers_and_addressables): Ditto.
1855 Don't mark variables non-addressable if they still have
1856 addressable subvars.
1857 Also mark subvars addressable when the real variable is marked
1859 (add_pointed_to_var): Try to prune the pointed-to set by only
1860 pointing to subvars when possible.
1861 Otherwise, make sure we set addresses_needed and pt_vars to
1862 properly include subvars.
1863 (bitpos_of_field): New function.
1864 (push_fields_onto_fieldstack): Ditto.
1865 (get_or_create_used_part_for): Ditto.
1866 (create_overlap_variables_for): Ditto.
1867 (find_used_portions): Ditto.
1868 (create_structure_vars): Ditto.
1869 (pass_create_structure_vars): New structure.
1871 * tree-ssa-operands.c (finalize_ssa_v_must_defs): Remove assert.
1872 (get_expr_operands): Handle subvars. Also try to turn
1873 COMPONENT_REF accesses into must-defs now that we can accurately
1875 (note_addressable): Try to only mark as addressable those subvars
1876 we know a COMPONENT_REF touches.
1877 (overlap_subvar): New function.
1879 * tree-vect-analyze.c (vect_object_analysis): Add new parameter.
1880 Handle subvar storing.
1881 (vect_address_analysis): Update caller of vect_object_analysis.
1883 * tree-vect-transform.c (vect_create_data_ref_ptr): Copy subvars.
1885 * tree-vectorizer.h (struct _stmt_vec_info): Add subvars member.
1886 (STMT_VINFO_SUBVARS): New macro.
1888 * common.opts: add flag_tree_salias.
1890 * opts.c (decode_options): flag_tree_salias defaults to on.
1892 * doc/invoke.texi: Document fdump-tree-svars and -ftree-salias.
1894 * doc/tree-ssa.texi: Document structural alias analysis.
1896 2005-03-12 Steven Bosscher <stevenb@suse.de>
1898 * tree-cfg.c (make_goto_expr_edges): Don't use error_mark_node.
1899 * tree-ssa-dce.c (mark_stmt_necessary): Don't check for it.
1900 * tree-ssa-operands.c (get_expr_operands): Likewise.
1901 (get_expr_operands): Likewise for ERROR_MARK.
1903 2005-03-12 Kazu Hirata <kazu@cs.umass.edu>
1905 * tree-ssa.c (kill_redundant_phi_nodes): Remove local variable
1908 * tree-ssa-phiopt.c (tree_ssa_phiopt): Remove local variable
1911 * tree-ssa-pre.c (compute_avail): Remove local variable val.
1912 (mark_operand_necessary): Remove local variable ver.
1914 * tree-vect-transform.c (vect_get_new_vect_var): Remove local
1915 variable prefix_len.
1917 * value-prof.c (mod_subtract_transform): Remove local variable
1920 * builtins.c (fold_builtin_exponent): Take decomposed
1921 arguments of CALL_EXPR.
1922 (fold_builtin_1): Update a call to fold_builtin_exponent.
1924 * builtins.c (fold_builtin_logarithm): Take decomposed
1925 arguments of CALL_EXPR.
1926 (fold_builtin_1): Update a call to fold_builtin_logarithm.
1928 * c-decl.c (c_init_decl_processing): Remove local variables
1929 ptr_ftype_void and ptr_ftype_ptr.
1931 * gimplify.c (gimplify_expr): Remove local variables r0 and
1934 * reg-stack.c (move_for_stack_reg): Remove local variable
1936 (compare_for_stack_reg): Remove local variable flags_user.
1937 (convert_regs_1): Remove local variable deleted.
1939 * tree-if-conv.c (tree_if_convert_cond_expr): Remove local
1941 (combine_blocks): Remove local variables exits and new_e.
1943 * tree-inline.c (expand_call_inline): Remove local variable
1946 * tree-ssa-live.c (create_ssa_var_map,
1947 calculate_live_on_entry): Remove local variable snn.
1949 2005-03-12 Geoffrey Keating <geoffk@apple.com>
1951 * c-lex.c (c_lex_with_flags): Add parameter to call to
1954 2005-03-11 Per Bothner <per@bothner.com>
1956 * c-tree.h (struct c_declarator): New id_loc field.
1957 * c-pragma.h (c_lex_with_flags): Take position reference.
1958 * c-lex.c (c_lex_with_flags): Set passed-in location from cpp token,
1959 iff USE_MAPPED_LOCATION. (Type doesn't match otherwise.)
1960 (c_lex): Pass dummy location to c_lex_with_flags.
1961 * c-parser.c (c_lex_one_token): Set c_token's location using
1962 c_lex_with_flags, instead of input_location, which might be "ahead".
1963 (c_parser_direct_declarator): Set declarator's id_loc from
1965 * c-decl.c (grokdeclarator): Set DECL_SOURCE_LOCATION from
1966 declarator's id_loc, rather than probably-imprecise input_location.
1967 (build_id_declarator): Initialize c_declarator's id_loc field.
1969 2005-03-11 Roger Sayle <roger@eyesopen.com>
1972 * builtins.c (expand_builtin_signbit): Force the signbit's word
1973 into an integer register to avoid SUBREGs of floating point modes.
1975 2005-03-12 Kazu Hirata <kazu@cs.umass.edu>
1977 * cfglayout.c, loop-doloop.c, profile.c, target-def.h,
1978 target.h, targhooks.c, tracer.c, tree-ssa-loop-ch.c,
1979 tree-ssa-loop-unswitch.c, tree-ssa-loop.c, vec.c, vmsdbgout.c,
1980 config/m32r/m32r.md, config/xtensa/xtensa.h: Update copyright.
1982 2005-03-11 David Edelsohn <edelsohn@gnu.org>
1984 PR rtl-optimization/20306
1985 * expr.c (emit_move_complex): Set try_int false if mode is
1986 MODE_COMPLEX_FLOAT and mov_optab exists for inner mode. Only try
1987 emit_block_move if try_int is true.
1989 2005-03-11 Richard Henderson <rth@redhat.com>
1992 * config/i386/mmx.md (vec_dupv4hi): Fix predicate.
1993 * config/i386/i386.c (ix86_expand_vector_init_duplicate): Update
1996 2005-03-11 Richard Sandiford <rsandifo@redhat.com>
1998 * config/mips/mips.h (mips_fix_vr4130_string): Declare.
1999 (TARGET_FIX_VR4130): New macro.
2000 (TARGET_OPTIONS): Add -mfix-vr4130.
2001 (ISA_HAS_MACCHI): New macro.
2002 (ASM_SPEC): Add -mfix-vr4130.
2003 * config/mips/mips.c (mips_fix_vr4130_string): New variable.
2004 (override_options): Handle mips_fix_vr4130_string.
2005 (mips_avoid_hazards): Clear all_noreorder_p
2006 if we're working around VR4130 errata and the macc alternatives
2008 * config/mips/mips.md (mfhilo_<mode>): Turn into a define_expand.
2009 (*mfhilo_<mode>, *mfhilo_<mode>_macc): New insns.
2010 * config/mips/vr.h (DEFAULT_VR_ARCH): Set to mfix-vr4130.
2011 (MULTILIB_DEFAULTS): Remove leading "march=".
2012 (DRIVER_SELF_SPECS): Likewise. Make -mfix-vr4130 imply -march=vr4130
2013 if no architecture option is given.
2014 * config/mips/t-vr (MULTILIB_OPTIONS): Use -mfix-vr4130 for the
2016 (MULTILIB_MATCHES): Map -march=vr4130 to the -mfix-vr4130 multilibs.
2017 * doc/invoke.texi: Document -mfix-vr4130.
2019 2005-03-11 Richard Sandiford <rsandifo@redhat.com>
2021 * config/mips/mips.c (override_options): Only warn about -mint64
2022 deprecation if TARGET_INT64.
2024 2005-03-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2026 * builtin-attrs.def (ATTR_NONNULL_LIST, ATTR_NOTHROW_NONNULL,
2027 ATTR_CONST_NOTHROW_NONNULL, ATTR_PURE_NOTHROW_NONNULL,
2028 ATTR_MALLOC_NOTHROW_NONNULL): New "nonnull" attribute lists which
2029 are non-specific regarding the nonnull parameter positions.
2030 (ATTR_NONNULL_1_2, ATTR_NONNULL_1_4, ATTR_NOTHROW_NONNULL_1_2,
2031 ATTR_NOTHROW_NONNULL_1_4, ATTR_CONST_NOTHROW_NONNULL_1,
2032 ATTR_PURE_NOTHROW_NONNULL_1, ATTR_PURE_NOTHROW_NONNULL_1_2,
2033 ATTR_MALLOC_NOTHROW_NONNULL_1): Delete.
2035 * builtins.def: Use the non-specific "nonnull" attibute lists.
2037 2005-03-11 Zdenek Dvorak <dvorakz@suse.cz>
2039 * basic-block.h (single_succ_p, single_pred_p, single_succ_edge,
2040 single_pred_edge, single_succ, single_pred): Improve comments.
2042 2005-03-11 Zdenek Dvorak <dvorakz@suse.cz>
2044 * basic-block.h (single_succ_p, single_pred_p, single_succ_edge,
2045 single_pred_edge, single_succ, single_pred): New inline functions.
2046 * bb-reorder.c (rotate_loop, find_traces_1_round,
2047 add_labels_and_missing_jumps, fix_up_fall_thru_edges,
2048 duplicate_computed_gotos): Use the single_succ/pred functions.
2049 * cfganal.c (forwarder_block_p): Ditto.
2050 * cfgbuild.c (compute_outgoing_frequencies): Ditto.
2051 * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
2052 outgoing_edges_match, try_crossjump_to_edge, try_optimize_cfg,
2053 merge_seq_blocks): Ditto.
2054 * cfghooks.c (split_edge, tidy_fallthru_edges): Ditto.
2055 * cfglayout.c (fixup_reorder_chain): Ditto.
2056 * cfgloop.c (mark_single_exit_loops, update_latch_info,
2057 canonicalize_loop_headers, verify_loop_structure): Ditto.
2058 * cfgloopmanip.c (remove_path, unloop, loop_delete_branch_edge,
2059 mfb_update_loops, create_preheader, force_single_succ_latches,
2060 create_loop_notes): Ditto.
2061 * cfgrtl.c (rtl_can_merge_blocks, try_redirect_by_replacing_jump,
2062 force_nonfallthru_and_redirect, rtl_tidy_fallthru_edge,
2063 commit_one_edge_insertion, purge_dead_edges,
2064 cfg_layout_can_merge_blocks_p): Ditto.
2065 * except.c (sjlj_emit_function_enter): Ditto.
2066 * flow.c (init_propagate_block_info): Ditto.
2067 * function.c (thread_prologue_and_epilogue_insns): Ditto.
2068 * gcse.c (find_implicit_sets, bypass_conditional_jumps,
2069 insert_insn_end_bb): Ditto.
2070 * ifcvt.c (merge_if_block, find_if_block, find_if_case_1,
2071 find_if_case_2): Ditto.
2072 * lambda-code.c (perfect_nestify): Ditto.
2073 * lcm.c (optimize_mode_switching): Ditto.
2074 * loop-doloop.c (doloop_modify): Ditto.
2075 * loop-init.c (loop_optimizer_init): Ditto.
2076 * loop-iv.c (simplify_using_initial_values): Ditto.
2077 * loop-unroll.c (unroll_loop_runtime_iterations): Ditto.
2078 * loop-unswitch.c (unswitch_loop): Ditto.
2079 * modulo-sched.c (generate_prolog_epilog): Ditto.
2080 * predict.c (combine_predictions_for_insn, estimate_probability,
2081 tree_estimate_probability, last_basic_block_p,
2082 estimate_bb_frequencies): Ditto.
2083 * profile.c (branch_prob): Ditto.
2084 * regrename.c (copyprop_hardreg_forward): Ditto.
2085 * sched-rgn.c (is_cfg_nonregular, find_rgns, update_live): Ditto.
2086 * tracer.c (layout_superblocks): Ditto.
2087 * tree-cfg.c (tree_can_merge_blocks_p, tree_merge_blocks,
2088 cfg_remove_useless_stmts_bb, cleanup_control_flow,
2089 cleanup_control_expr_graph, disband_implicit_edges,
2090 tree_find_edge_insert_loc, bsi_commit_edge_inserts,
2091 tree_verify_flow_info, tree_make_forwarder_block,
2092 tree_forwarder_block_p, remove_forwarder_block,
2093 remove_forwarder_block_with_phi, merge_phi_nodes): Ditto.
2094 * tree-if-conv.c (tree_if_conversion): Ditto.
2095 * tree-mudflap.c (mf_build_check_statement_for): Ditto.
2096 * tree-ssa-dce.c (remove_dead_stmt): Ditto.
2097 * tree-ssa-dom.c (dom_opt_finalize_block): Ditto.
2098 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p,
2099 copy_loop_headers): Ditto.
2100 * tree-ssa-loop-im.c (loop_commit_inserts): Ditto.
2101 * tree-ssa-loop-ivopts.c (compute_phi_arg_on_exit): Ditto.
2102 * tree-ssa-loop-manip.c (split_loop_exit_edge, ip_normal_pos,
2103 lv_adjust_loop_entry_edge, tree_ssa_loop_version): Ditto.
2104 * tree-ssa-loop-niter.c (simplify_using_initial_conditions): Ditto.
2105 * tree-ssa-loop-unswitch.c (simplify_using_entry_checks): Ditto.
2106 * tree-ssa-phiopt.c (tree_ssa_phiopt, value_replacement): Ditto.
2107 * tree-ssa-pre.c (compute_antic_aux, insert_aux, init_pre): Ditto.
2108 * tree-ssa-threadupdate.c (redirect_edges): Ditto.
2109 * tree-tailcall.c (independent_of_stmt_p, find_tail_calls,
2110 eliminate_tail_call, tree_optimize_tail_calls_1): Ditto.
2111 * tree-vect-analyze.c (vect_analyze_loop_form): Ditto.
2112 * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Ditto.
2113 * tree-vectorizer.c (slpeel_update_phi_nodes_for_guard,
2114 slpeel_add_loop_guard): Ditto.
2116 2005-03-11 James A. Morrison <phython@gcc.gnu.org>
2118 PR tree-optimization/15784
2119 * fold-const.c (fold): Fold ~A + 1 to -A. Fold -A - 1
2122 * stmt.c (expand_case): Don't change index_type. Convert minval
2125 PR tree-optimization/20130
2126 * fold-const.c (fold): Fold x * -1 into -x.
2128 2005-03-11 Kaz Kojima <kkojima@gcc.gnu.org>
2130 PR rtl-optimization/20331
2131 * rtlanal.c (modified_between_p): Check its address first for MEM.
2132 (modified_in_p): Likewise.
2134 2005-03-11 Joseph S. Myers <joseph@codesourcery.com>
2136 * config.gcc (hppa*64*-*-hpux11*): Use pa/t-hpux-shlib.
2138 2005-03-10 Steven Bosscher <stevenb@suse.de>
2140 * expr.c (expand_expr_real_1): If possible, use a conditional
2141 move for expanding MIN_EXPR and MAX_EXPR.
2142 Use temp for moving around rtx-en.
2144 2005-03-10 Andrew Pinski <pinskia@physics.uc.edu>
2147 * simplify-rtx.c (simplify_relational_operation_1): Fix typo - check the
2150 2005-03-10 Roger Sayle <roger@eyesopen.com>
2152 * builtins.c (expand_builtin_signbit): Extend to handle floating
2153 point modes wider than the largest integer type, using the
2154 operand_subword_force function to obtain the signbit's word.
2156 2005-03-10 Jakub Jelinek <jakub@redhat.com>
2159 * combine.c (try_combine): If recog_for_combine added CLOBBERs
2160 to NEWI2PAT, fail to combine if they are used by NEWPAT.
2162 2005-03-10 Aldy Hernandez <aldyh@redhat.com>
2164 * doc/invoke.texi: Add 8540 to list of cpus in rs6000 cpu section.
2166 2005-03-10 Kazu Hirata <kazu@cs.umass.edu>
2168 * tree-outof-ssa.c (analyze_edges_for_bb): Make the return
2170 (perform_edge_inserts): Unconditionally call
2171 free_dominator_info.
2173 * tree-outof-ssa.c (analyze_edges_for_bb): Update a comment.
2175 2005-03-10 Bob Wilson <bob.wilson@acm.org>
2177 * config/xtensa/xtensa.h (MEMBER_TYPE_FORCES_BLK): Define.
2179 2005-03-10 Nathan Sidwell <nathan@codesourcery.com>
2181 * bitmap.c (bitmap_copy): Remove manual loop unrolling.
2183 * value-prof.c (rtl_find_values_to_profile): Use gcc_assert and
2185 (rtl_register_value_prof_hooks,
2186 tree_value_profile_transformations,
2187 tree_register_value_prof_hooks): Likewise.
2188 * var-tracking.c (stack_adjust_offset_pre_post,
2189 variable_htab_free, variable_union, dataflow_set_different_2,
2190 count_uses, variable_was_changed, set_frame_base_location,
2191 set_variable_part, emit_note_insn_var_location, vt_emit_notes,
2192 vt_add_function_parameters): Likewise.
2193 * varasm.c (named_section_real, named_section, make_decl_rtl,
2194 asm_emit_uninitialised, assemble_integer, decode_addr_const,
2195 const_hash_1, compare_constant, copy_constant, force_const_mem,
2196 output_constant_pool_2, output_constant_pool_1, output_constant,
2197 output_constructor, make_decl_one_only, decl_tls_model,
2198 default_no_named_section, default_elf_select_section_1,
2199 default_unique_section_1): Likewise.
2200 * vec.c (vec_gc_o_reserve, vec_heap_o_reserve): Likewise.
2201 * vmsdbgout.c (addr_const_to_string): Likewise.
2204 * function.c (struct assign_parm_data_one): Remove last_named
2206 (assign_parm_find_data_types): Don't determine last_named.
2207 Reorder named_parm determination.
2208 (assign_parms): Only setup varargs on the last non-varadic
2211 2005-03-10 Kazuhiro Inaoka <inaoka.lazuhiro@renesas.com>
2213 * config/m32r/m32r.md (load_sda_base_32): New pattern. Loads
2214 sda base address on medium model.
2216 2005-03-10 Zdenek Dvorak <dvorakz@suse.cz>
2218 * Makefile.in (tree-optimize.o): Add CFGLOOP_H dependence.
2219 * cfgloop.c (flow_loop_nodes_find): Export.
2220 * cfgloop.h (flow_loop_nodes_find, fix_loop_structure):
2222 * cfgloopmanip.c (fix_loop_structure): New function.
2223 * predict.c (predict_loops): Clean up the loops information.
2224 * tree-cfg.c (cleanup_tree_cfg_loop): New function.
2225 (tree_can_merge_blocks_p, remove_bb, tree_forwarder_block_p): Respect
2227 * tree-flow.h (cleanup_tree_cfg_loop): Declare.
2228 (rewrite_into_loop_closed_ssa): Declaration changed.
2229 * tree-loop-linear.c (linear_transform_loops): Add argument to
2230 rewrite_into_loop_closed_ssa call.
2231 * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
2232 * tree-ssa-loop-im.c (move_computations): Ditto.
2233 * tree-ssa-loop.c (tree_loop_optimizer_init): Ditto.
2234 * tree-vectorizer.c (vectorize_loops): Ditto.
2235 * tree-optimize.c: Include cfgloop.h.
2236 (execute_todo): Choose whether to call cleanup_tree_cfg or
2237 cleanup_tree_cfg_loop.
2238 * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables,
2239 (tree_unroll_loops_completely): Enable cleanup_tree_cfg_loop call.
2240 * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Enable
2241 cleanup_tree_cfg_loop call.
2242 * tree-ssa-loop-manip.c (find_uses_to_rename_bb): New function.
2243 (find_uses_to_rename, rewrite_into_loop_closed_ssa): Support
2244 work on part of cfg.
2246 2005-03-10 Jakub Jelinek <jakub@redhat.com>
2249 * gimplify.c (gimplify_asm_expr): Handle input/output constraints
2250 with multiple alternatives.
2252 * stmt.c (parse_output_constraint): Fix a typo.
2254 2005-03-09 Bob Wilson <bob.wilson@acm.org>
2256 * config/xtensa/xtensa.h (TRAMPOLINE_TEMPLATE): Use "no-transform"
2257 assembly directive instead of deprecated "no-generics".
2259 2005-03-09 Ulrich Weigand <uweigand@de.ibm.com>
2261 * config/s390/s390.c (s390_secondary_output_reload_class): Adapt check
2262 for non-offsettable memory references to cope with outstanding reload
2264 * config/s390/s390.md ("reload_outti"): Call find_replacement to
2265 avoid losing outstanding address reloads.
2266 ("reload_outdi", "reload_outdf"): Likewise.
2268 2005-03-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2270 * builtins.c (fold_builtin_cbrt, fold_builtin_pow): Rearrange
2271 code. Add more cbrt transformations.
2273 2005-03-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2275 * fold-const.c (fold_unary_to_constant): Add FIX_ROUND_EXPR case.
2277 2005-03-09 Kazu Hirata <kazu@cs.umass.edu>
2279 * fold-const.c (fold_unary, fold_binary, fold_ternary): Return
2280 NULL_TREE when a given tree is not simplified.
2281 (fold): Return the original tree when any of the functions
2282 mentioned above NULL_TREE.
2284 * fold-const.c (fold_unary, fold_binary): Take decomposed
2285 arguments, code, type, op0, and op1 in case of fold_binary.
2286 (fold): Update calls to fold_unary and fold_binary.
2288 2005-03-09 Roger Sayle <roger@eyesopen.com>
2290 * builtins.c (fold_builtin_unordered_cmp): Change prototype to take
2291 a fndecl and an arglist instead of a CALL_EXPR, exp.
2293 2005-03-09 Kazu Hirata <kazu@cs.umass.edu>
2295 * cfglayout.c (fixup_reorder_chain): Remove old_bb.
2297 * cfgrtl.c (cfg_layout_merge_blocks): Remove new_e.
2299 * expr.c (expand_assignment): Remove orig_to_rtx.
2301 * fold-const.c (int_const_binop): Remove no_overflow.
2303 * ifcvt.c (noce_emit_move_insn): Remove inmode.
2305 * loop-iv.c (get_biv_step_1): Remove lhs.
2307 * loop-unroll.c (analyze_insns_in_loop): Remove preheader.
2309 * real.c (real_nan): Remove neg.
2311 * function.c (thread_prologue_and_epilogue_insns): Remove i
2314 * tree-data-ref.c (array_base_name_differ_p): Remove ta and
2317 * tree-eh.c (tree_could_trap_p): Remove idx.
2319 * tree-into-ssa.c (ann): Remove ann.
2321 * tree-outof-ssa.c (num_nodes): Remove num_nodes.
2323 * tree-sra.c (decide_block_copy): Remove inst_count.
2325 * tree-ssa-alias.c (may_alias_p): Remove v_ann.
2327 * tree-ssa-loop-im.c (lhs): Remove.
2329 * cfgbuild.c (state, STATE, SET_STATE,
2330 BLOCK_USED_BY_TABLEJUMP, FULL_STATE): Move just before
2332 (make_edges): Speed up by skipping blocks with BLOCK_ORIGINAL.
2333 (find_basic_blocks): Set the state of each basic block to
2336 2005-03-08 Jeff Law <law@redhat.com>
2338 * tree-cfg.c (cleanup_control_flow): If removal of a computed
2339 goto results in the removal of edges in the CFG, then we need
2340 to recompute dominators.
2342 2005-03-09 Ben Elliston <bje@au.ibm.com>
2344 * c-common.c (c_do_switch_warnings): Comment fix.
2346 2005-03-08 Julian Brown <julian@codesourcery.com>
2348 * Patch from 2005-03-08 reverted for causing regressions and
2349 ppc-darwin bootstrap failure.
2351 2005-03-08 Fariborz Jahanian <fjahanian@apple.com>
2353 * config/rs6000/rs6000.c (invalid_arg_for_unprototyped_fn):
2354 Define the real function for ppc-darwin.
2355 * c-typeck.c (convert_arguments): Check for target-specific
2356 invalid argument call to unprototyped function.
2357 * target-def.h (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
2359 * target.h (invalid_arg_for_unprototyped_fn): New field
2361 * targhooks.c (hook_invalid_arg_for_unprototyped_fn): New
2362 default target hook.
2363 * targhooks.h (hook_invalid_arg_for_unprototyped_fn):
2366 2005-03-08 Kazu Hirata <kazu@cs.umass.edu>
2368 * c-typeck.c (constructor_stack, constructor_range_stack,
2369 initializer_stack): Make them static.
2371 * cfg.c (rbi_pool): Make it static.
2373 * gimple-low.c (lower_stmt_body): Make it static.
2374 * tree-flow.h: Remove the corresponding prototype. Don't
2377 * sched-deps.c (cache_size): Make it static.
2379 * stor-layout.c (lang_adjust_rli): Make it static.
2381 2005-03-08 Julian Brown <julian@codesourcery.com>
2383 * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK
2384 from being used for symbols with vague linkage when
2385 HAVE_GAS_COMDAT_GROUP is true.
2387 2005-03-08 J"orn Rennecke <joern.rennecke@st.com>
2389 * jump.c (invert_jump_1): Don't call redirect_jump_1 with
2390 nlabel == JUMP_LABEL (jump).
2392 2005-03-08 Kazu Hirata <kazu@cs.umass.edu>
2394 * c-common.c, c-opts.c, combine.c, cse.c, dojump.c,
2395 gimplify.c, tree-dfa.c, tree-ssa-loop-ivopts.c,
2396 tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-sink.c,
2397 tree-vect-analyze.c, tree.def, tree.h: Fix comment formatting.
2399 2005-03-08 Alexey Neyman <alex.neyman@auriga.ru>
2402 * calls.c (flags_from_decl_or_type): Handle eturns_twice' attribute.
2403 * c-common.c (handle_returns_twice): New function.
2404 (c_common_attribute_table): Declare eturns_twice' attribute.
2405 * doc/extend.texi: Document eturns_twice' attribute.
2406 * tree.h (DECL_IS_RETURNS_TWICE): New macro.
2407 (struct tree_decl): Add returns_twice_flag.
2409 2005-03-08 Kazu Hirata <kazu@cs.umass.edu>
2411 * tree-ssa-phiopt.c: Fix a comment typo.
2413 * c-semantics.c, cfghooks.c, diagnostic.h, loop-iv.c,
2414 loop-unswitch.c, modulo-sched.c, stor-layout.c, tree-gimple.h,
2415 config/i386/cygwin1.c, doc/cfg.texi, doc/objc.texi: Update
2418 2005-03-08 Richard Henderson <rth@redhat.com>
2420 * config/alpha/alpha.c (code_for_builtin): Replace special-case
2421 builtin codes with ctzdi2, clzdi2, popcountdi2.
2422 (struct alpha_builtin_def): Add is_const.
2423 (zero_arg_builtins, one_arg_builtins, two_arg_builtins): Init it.
2424 (alpha_v8qi_u, alpha_v8qi_s, alpha_v4hi_u, alpha_v4hi_s): New.
2425 (alpha_init_builtins): Init them. Set nothrow and const attributes
2427 (alpha_fold_builtin_cmpbge, alpha_fold_builtin_zapnot,
2428 alpha_fold_builtin_extxx, alpha_fold_builtin_insxx,
2429 alpha_fold_builtin_mskxx, alpha_fold_builtin_umulh,
2430 alpha_fold_vector_minmax, alpha_fold_builtin_perr,
2431 alpha_fold_builtin_pklb, alpha_fold_builtin_pkwb,
2432 alpha_fold_builtin_unpkbl, alpha_fold_builtin_unpkbw,
2433 alpha_fold_builtin_cttz, alpha_fold_builtin_ctlz,
2434 alpha_fold_builtin_ctpop, alpha_fold_builtin): New.
2435 (TARGET_FOLD_BUILTIN): New.
2436 * config/alpha/alpha.md (UNSPEC_CTTZ): Remove.
2437 (UNSPEC_CTLZ, UNSPEC_CTPOP): Remove.
2439 (cttz, builtin_cttz, builtin_ctlz, builtin_ctpop): Remove.
2441 2005-03-08 Ira Rosen <irar@il.ibm.com>
2443 PR tree-optimization/20122
2444 * tree-vect-analyze.c (vect_object_analysis): Analyze initial
2445 condition of access function instead of base.
2447 2005-03-07 Jeff Law <law@redhat.com>
2448 Steven Bosscher <stevenb@suse.de>
2450 * tree-cfg.c (find_taken_edge_computed_goto): New function.
2451 (find_taken_edge): Call find_taken_edge_computed_goto as
2452 appropriate. Allow any gimple invariant rather than just
2453 INTEGER_CST for VAL.
2454 (cleanup_control_flow): Cleanup a computed goto which has turned
2456 (tree_merge_blocks): If block B has any forced labels, move
2457 them to the start of block A.
2458 * tree-ssa-dom.c (thread_across_edge): Allow threading across
2459 computed gotos as well.
2460 * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Handle
2461 removal of unnecessary computed gotos too.
2462 (lookup_redirection_data): Fix type of INSERT argument. Callers
2465 2005-03-08 Kazu Hirata <kazu@cs.umass.edu>
2467 * tree-ssa-phiopt.c: Update copyright. Fix indentations.
2468 Remove trailing spaces.
2470 * gimplify.c (gimple_push_bind_expr, gimple_pop_bind_expr,
2471 unshare_all_trees): Make them static.
2472 * tree-gimple.h: Remove the corresponding prototypes.
2474 * diagnostic.h: Remove unused prototype
2475 debug_output_buffer.
2476 * modulo-sched.c: Remove unused prototype
2477 set_row_column_for_ps.
2479 * tree-ssa-phiopt.c (tree_ssa_phiopt,
2480 replace_phi_edge_with_variable): Remove unused variable i.
2482 2005-03-07 Per Bothner <per@bothner.com>
2484 * tree.h (DECL_IS_BUILTIN): Reverted my patch from earlier today.
2486 2005-03-06 Andrew Pinski <pinskia@physics.uc.edu>
2489 * tree-ssa-phiopt.c (tree_ssa_phiopt): Rewrite so we base the
2490 bbs on the COND_EXPR instead of the PHI_NODEs.
2491 (candidate_bb_for_phi_optimization): Remove.
2492 (replace_phi_with_stmt): Rename to ...
2493 (replace_phi_edge_with_variable): this and change so that we
2494 replace the phi argument instead of removing the PHI.
2495 (conditional_replacement): Change so we deal with PHI with more
2497 (value_replacement): Likewise.
2498 (abs_replacement): Likewise.
2500 2005-03-07 Aldy Hernandez <aldyh@redhat.com>
2502 * config/rs6000/rs6000-protos.h: Rename output_e500_flip_eq_bit to
2503 output_e500_flip_gt_bit.
2505 * config/rs6000/rs6000.c (print_operand): case D: Print out bit 31
2507 (rs6000_generate_compare): Fix logic to look at the correct bits.
2508 (output_e500_flip_eq_bit): Rename to output_e500_flip_gt_bit.
2510 (rs6000_emit_sCOND): Rename gen_e500_flip_eq_bit to
2511 gen_e500_flip_gt_bit. Rename gen_move_from_CR_eq_bit to
2512 gen_move_from_CR_gt_bit.
2514 * config/rs6000/rs6000.md ("move_from_CR_eq_bit"): Change bit
2515 ("move_from_CR_eq_bit"): Rename to move_from_CR_gt_bit.
2516 (UNSPEC_MV_CR_EQ): Rename to UNSPEC_MV_CR_GT.
2518 * config/rs6000/spe.md ("e500_cr_ior_compare"): New.
2519 (E500_CR_IOR_COMPARE): New constant.
2521 2005-03-08 Earl Chew <earl_chew@agilent.com>
2522 David Billinghurst <David.Billinghurst@riotinto.com>
2524 * config/i386/host-cygwin.c: New file to support precompiled
2526 * config/i386/x-cygwin: Use host-cygwin.c on cygwin host
2527 * config.host: Use above files for cygwin host.
2529 2005-03-07 David Edelsohn <edelsohn@gnu.org>
2531 * fold-const.c (fold_binary_op_with_conditional_arg): Fix typo
2532 ordering ops from earlier change.
2534 2005-03-07 Per Bothner <per@bothner.com>
2536 Various fixes to allow us to again build if --enable-mapped-location:
2537 * c-decl.c (finish_function): Use SET_EXPR_LOCATION instead of
2538 unavailable annotate_with_file_line, if USE_MAPPED_LOCATION.
2539 * tree-cfg.c (remove_bb): If USE_MAPPED_LOCATION, change type of
2540 local variable loc. Change logic appropriately.
2541 * tree-vect-transform.c (vect_finish_stmt_generation): Use
2542 EXPR_LOCATION rather than EXPR_LOCUS if USE_MAPPED_LOCATION.
2543 * c-parser.c (c_parser_for_statement): Initialize loc variable.
2544 * tree.h (DECL_IS_BUILTIN): Temporarily revert definition of
2545 DECL_IS_BUILTIN in the USE_MAPPED_LOCATION because of jc1 issues.
2547 2005-03-07 Richard Sandiford <rsandifo@redhat.com>
2549 PR rtl-optimization/19683
2550 * reload1.c (choose_reload_regs): Pass the number of bits, not the
2551 number of bytes, to smallest_int_for_mode. Fix arguments to
2552 REG_CANNOT_CHANGE_MODE_P.
2554 2005-03-07 Eric Botcazou <ebotcazou@libertysurf.fr>
2556 * reorg.c (relax_delay_slots): Check that the jump is
2557 conditional before trying to invert it.
2559 2005-03-07 Kazu Hirata <kazu@cs.umass.edu>
2561 * bb-reorder.c (max_entry_frequency, max_entry_frequency):
2564 * calls (stack_arg_under_construction): Make it static.
2566 * flow.c (regs_live_at_setjmp): Make it static.
2567 * flow.h: Remove the corresponding prototype.
2569 * reload1.c (reload_startobj, reload_firstobj,
2570 something_needs_operands_changed, reload_inherited,
2571 reload_inheritance_insn, reload_override_in,
2572 reload_spill_index): Make them static.
2574 * recog.c (verify_changes): Make it static.
2575 * recog.h: Remove the corresponding prototype.
2577 * cfgbuild.c (find_sub_basic_blocks): Remove.
2578 * basic-block.h: Remove the corresponding prototype.
2579 * cfgexpand.c, cfgrtl.c: Don't mention find_sub_basic_blocks
2581 * doc/cfg.texi: Don't mention find_sub_basic_blocks.
2583 * tree-ssa-operands.c (check_build_stmt): Remove.
2585 * stor-layout.c (set_alignment): Remove.
2586 * tree.h: Remove the corresponding prototype.
2588 * tree-ssa-pre.c (has_abnormal_preds): Make it static.
2590 * tree-ssa-dce.c (control_dependence_map,
2591 visited_control_parents): Make them static.
2593 * cfghooks.c (verify_flow_info): Remove local variable
2596 * cfgrtl.c (rtl_verify_flow_info_1): Remove local variable
2599 * loop-unswitch.c (unswitch_loop): Remove local variable src.
2601 2005-03-07 David Billinghurst <David.Billinghurst@riotinto.com>
2603 * config/i386/cygwin1.c(mingw_scan): Use xstrdup in calls to putenv.
2605 2005-03-07 Joseph S. Myers <joseph@codesourcery.com>
2607 * config/ia64/hpux.h (LINK_SPEC): Add -z.
2608 * config/ia64/ia64.c (ia64_function_value): Return a REG not a
2609 PARALLEL for an empty structure.
2611 2005-03-07 Kazu Hirata <kazu@cs.umass.edu>
2613 * fold-const.c (fold_binary): Remove handling of RANGE_EXPR.
2615 * fold-const.c (fold_binary): Unroll the very first "for"
2618 2005-03-06 David Edelsohn <edelsohn@gnu.org>
2620 * config/rs6000/predicates.md (branch_comparison_operator): Remove
2621 redundant match_code test.
2622 (scc_comparison_operator): Swap match_operand and match_code
2624 (branch_positive_comparison_operator): Same.
2625 (trap_comparison_operator): Use comparison_operator and swap with
2628 2005-03-06 Marek Michalkiewicz <marekm@amelek.gda.pl>
2631 * config/avr/avr.c (print_operand): Add 'p' and 'r'.
2632 (out_movhi_r_mr): Read low byte of volatile MEM first.
2633 (out_movhi_mr_r): Write high byte of volatile MEM first.
2635 2005-03-05 Kazu Hirata <kazu@cs.umass.edu>
2637 * cselib.c (reg_values, reg_values_size): Make them static.
2639 * cse.c (cse_reg_info_table): Make it static.
2641 * fold-const.c (fold_unary): Use build1 instead of copy_node.
2643 2005-03-06 Zdenek Dvorak <dvorakz@suse.cz>
2645 * cse.c (find_best_addr): Use canon_for_address.
2647 2005-03-06 Kazu Hirata <kazu@cs.umass.edu>
2649 * cse.c (fold_rtx_subreg, fold_rtx_mem): New.
2650 (fold_rtx): Call fold_rtx_subreg and fold_rtx_mem to handle
2651 SUBREG and MEM, respectively.
2653 * fold-const.c (fold_binary): Use code instead of t.
2655 * fold-const.c (optimize_minmax_comparison): Take decomposed
2656 arguments code, type, op0, and op1 instead of t.
2657 (fold_binary): Update a call to optimize_minmax_comparison.
2659 * fold-const.c (fold_range_test): Take decomposed arguments
2660 code, type, op0, and op1 instead of t.
2661 (fold_binary): Update a call to fold_range_test.
2663 * fold-const.c (fold_binary_op_with_conditional_arg): Take
2664 decomposed arguments code, type, op0, and op1 instead of t.
2665 (fold_binary): Update a call to fold_range_test.
2667 2005-03-06 Kazu Hirata <kazu@cs.umass.edu>
2669 * fold-const.c (fold_binary): Avoid directly using the original
2670 expression t as much as possible.
2672 2005-03-05 Kazu Hirata <kazu@cs.umass.edu>
2674 * c-semantics.c (build_stmt): Use TYPE_P instead of
2675 IS_NON_TYPE_CODE_CLASS.
2676 * tree.h (IS_NON_TYPE_CODE_CLASS): Remove.
2677 (NON_TYPE_CHECK): Use TYPE_P instead of
2678 IS_NON_TYPE_CODE_CLASS.
2680 * fold-const.c (fold): Remove handling of binary expressions.
2682 2005-03-05 James A. Morrison <phython@gcc.gnu.org>
2684 * doc/c-tree.texi: Wrap comments in @r{}.
2685 * doc/cpp.texi: Likewise.
2686 * doc/cppinternals.texi: Likewise.
2687 * doc/extend.texi: Likewise.
2688 * doc/md.texi: Likewise.
2689 * doc/objc.texi: Likewise.
2690 * doc/sourcebuild.texi: Likewise.
2691 * doc/tm.texi: Likewise.
2694 2005-03-05 Kazu Hirata <kazu@cs.umass.edu>
2696 * predict.c (apply_return_prediction): Standardize PHI chain
2698 * tree-ssa.c (ssa_redirect_edge): Likewise.
2700 * genattrtab.c, genemit.c, genoutput.c, genrecog.c,
2701 gensupport.c, jump.c, tree-phinodes.c, unwind-dw2-fde-glibc.c:
2704 * tree-phinodes.c (remove_phi_node): Drop the last argument.
2705 * tree-flow.h: Adjust the prototype for remove_phi_node.
2706 * lambda-code.c (perfect_nestify): Adjust a call to
2709 (remove_phi_nodes_and_edges_for_unreachable_block): Likewise.
2710 * tree-outof-ssa.c (eliminate_virtual_phis, remove_ssa_form):
2712 * tree-ssa-dce.c (remove_dead_phis): Likewise.
2713 * tree-ssa-loop-ivopts.c (remove_statement): Likewise.
2714 * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
2715 * tree-ssa.c (kill_redundant_phi_nodes): Likewise.
2717 * combine.c (simplify_and_const_int): Use gen_int_mode instead
2718 of GEN_INT (trunc_int_for_mode (...)).
2719 * loop-iv.c (iv_number_of_iterations): Likewise.
2720 * postreload.c (reload_cse_move2add): Likewise.
2721 * simplify-rtx.c (simplify_const_unary_operation,
2722 simplify_const_binary_operation): Likewise.
2723 * stor-layout.c (get_mode_bounds): Likewise.
2725 * fold-const.c (fold_binary): New.
2726 (fold): Call fold_binary on binary expressions.
2728 2005-03-05 Richard Sandiford <rsandifo@redhat.com>
2730 * doc/invoke.texi: Document new MIPS -msym32 and -mno-sym32 options.
2731 * config/mips/mips.h (MASK_SYM32, TARGET_SYM32): New macros.
2732 (TARGET_SWITCHES): Add -msym32 and -mno-sym32.
2733 (ABI_HAS_64BIT_SYMBOLS): Set to false if TARGET_SYM32.
2734 (ASM_SPEC): Pass down -msym32 and -mno-sym32.
2736 2005-03-04 Devang Patel <dpatel@apple.com>
2738 PR tree-optimization/18815
2739 * tree-if-conv.c (combine_blocks): Adjust loop header edges for
2740 loops with zero exit edges.
2742 2005-03-04 Devang Patel <dpatel@apple.com>
2744 * doc/invoke.texi: Remove reference to webpage that does not exist.
2746 2005-03-04 John David Anglin <dave.danglin@nrc-cnrc.gc.ca>
2747 Joseph S. Myers <joseph@codesourcery.com>
2750 * pa/elf.h, pa64-hpux.h, som.h (ASM_OUTPUT_EXTERNAL_REAL): Define.
2751 (ASM_OUTPUT_EXTERNAL): Call pa_hpux_asm_output_external.
2752 * pa-protos.h (pa_hpux_asm_output_external): Add prototype.
2753 * pa.c (get_plabel): Change argument to symbol_ref. Call
2754 maybe_get_identifier instead of get_identifier.
2755 (pa_hpux_asm_output_external, pa_hpux_file_end): New functions.
2756 (struct deferred_plabel): Replace name field with symbol field.
2757 (TARGET_ASM_FILE_END): Define as pa_hpux_file_end if
2758 ASM_OUTPUT_EXTERNAL_REAL is defined.
2759 (output_global_address): Use output_addr_const for output of all
2761 (output_deferred_plabels): Use symbol_ref instead of name for address
2763 * pa.h (SYMBOL_FLAG_REFERENCED, SYMBOL_REF_REFERENCED_P,
2764 ASM_OUTPUT_SYMBOL_REF): New macros.
2765 * som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Use assemble_name_raw. Update
2767 (ASM_WEAKEN_LABEL): Use targetm.asm_out.globalize_label to globalize
2770 2005-03-05 Joseph S. Myers <joseph@codesourcery.com>
2772 * config.gcc (hppa*64*-*-hpux11*): Use pa/pa-hpux1111.h for
2773 *-*-hpux11.[1-9]*, not just for *-*-hpux11.11.
2775 2005-03-04 Jeff Law <law@redhat.com>
2777 * basic-block.h (rediscover_loops_after_threading): Declare.
2778 * tree-ssa-dom.c: Include cfgloop.h.
2779 (tree_ssa_dominator_optimize): Discover loops and some basic
2780 properties. Remove forwarder blocks recreated by loop header
2781 canonicalization. Also mark backedges in the CFG.
2782 * tree-ssa-threadupdate.c: Include cfgloop.h
2783 (rediscover_loops_after_threading): Define.
2784 (struct local_info): New field, JUMP_THREADED.
2785 (prune_undesirable_thread_requests): New function.
2786 (redirect_edges): Clear EDGE_ABNORMAL. If edges were threaded
2787 then record that fact for the callers of redirct_edges.
2788 (thread_block): If BB has incoming backedges, then call
2789 prune_undesirable_thraed_requests. Note when we are
2790 going to have to rediscover loop information. Return a
2791 boolean indicating if any jumps were threaded.
2792 (thread_through_all_blocks): Bubble up boolean indicating
2793 if any jumps were threaded.
2794 * Makefile.in (tree-ssa-dom.o): Depend on cfgloop.h
2795 (tree-ssa-threadupdate.o): Similarly.
2797 2005-03-04 Kazu Hirata <kazu@cs.umass.edu>
2799 * fold-const.c (fold_ternary): Unroll the "for" loop to
2802 2005-03-04 Andrew Haley <aph@redhat.com>
2804 * unwind-dw2-fde-glibc.c (struct
2805 unw_eh_callback_data.check_cache): New field.
2806 (frame_hdr_cache): New.
2807 (_Unwind_IteratePhdrCallback): Add ext_dl_phdr_info.
2808 Cache frame header info.
2810 2005-03-04 Richard Sandiford <rsandifo@redhat.com>
2812 * rtl.h (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
2813 (print_c_condition): Declare.
2814 * read-rtl.c (ptr_loc): New structure.
2815 (ptr_locs, ptr_loc_obstack, joined_conditions)
2816 (joined_conditions_obstack): New variables.
2817 (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc)
2818 (get_rtx_ptr_loc, copy_rtx_ptr_loc, print_rtx_ptr_loc)
2819 (join_c_conditions, print_c_condition): New functions.
2820 (apply_macro_to_string): Associate the new string with the same
2821 source location as the old one.
2822 (add_condition_to_string): Use join_c_conditions.
2823 (read_string): Use set_rtx_ptr_loc to record a filename and line
2824 number for the string.
2825 (read_rtx): Initialize the new variables above.
2826 * genattrtab.c (write_test_expr, write_attr_value): Use
2828 * genconditions.c (write_header): Don't define MAYBE_EVAL. Move its
2829 comment above the GCC_VERSION check.
2830 (write_one_condition): Use print_rtx_ptr_loc and print_c_condition.
2831 Inline the definition of MAYBE_EVAL.
2832 * genemit.c (gen_expand, gen_split): Use print_rtx_ptr_loc.
2833 * genoutput.c (process_template): Likewise.
2834 * genpreds.c (write_predicate_subfunction): Likewise.
2835 (write_predicate_expr): Use print_c_condition.
2836 * genrecog.c (write_cond): Likewise.
2837 * gensupport.c (process_rtx): Use join_c_conditions to join the
2838 conditions of a define_insn_and_split. Record a source location
2839 for the string after the "&&".
2840 (alter_test_for_insn): Use join_c_conditions.
2842 2005-03-04 Andrew Pinski <pinskia@physics.uc.edu>
2845 2005-03-03 James A. Morrison <phython@gcc.gnu.org>
2846 PR tree-optimization/15784
2847 * fold-const.c (fold): Fold ~A + 1 to -A. Fold -A - 1
2850 2005-03-04 Ben Elliston <bje@au.ibm.com>
2852 * gcc.c (option_map): Add --coverage.
2853 (LINK_COMMAND_SPEC): Pass -lgcov for `coverage'.
2854 (cc1_options): Pass -fprofile-arcs -ftest-coverage for `coverage'.
2855 * config/darwin.h: Pass -lgcov for `coverage'.
2856 * doc/invoke.texi (Debugging Options): Document --coverage.
2858 2005-03-04 Kazu Hirata <kazu@cs.umass.edu>
2860 * gcse.c (bypass_block): Use find_edge wherever possible.
2862 2005-03-03 Daniel Berlin <dberlin@dbrelin.org>
2866 * c-opts.c (c_common_parse_file): Call start_source_file
2867 and end_source_file at the approriate times.
2869 * dwarf2out.c (dwarf2out_finish): Don't auto-end
2870 the main file, it will be done for us now.
2872 2005-03-04 Kazu Hirata <kazu@cs.umass.edu>
2874 * fold-const.c (fold_ternary): New.
2875 (fold): Call fold_ternary on ternary expressions. Remove
2876 handling of ternary expressions.
2878 2005-03-03 James A. Morrison <phython@gcc.gnu.org>
2880 PR tree-optimization/15784
2881 * fold-const.c (fold): Fold ~A + 1 to -A. Fold -A - 1
2884 2005-03-03 David Edelsohn <edelsohn@gnu.org>
2886 * config/rs6000/predicates.md (branch_comparison_operator):
2887 Convert from C block to conditional format.
2889 2005-03-03 Jan Hubicka <jh@suse.cz>
2891 * tree-dfa.c (add_referenced_var): Don't walk initializer of external
2892 and non-constant public variables.
2894 2005-03-03 Kazu Hirata <kazu@cs.umass.edu>
2896 * tree-cfg.c (stmt_starts_bb_p): Clean up by replacing code
2899 * cfgexpand.c (construct_exit_block): Use EDGE_PRED instead of
2902 * tree-phinodes.c (remove_phi_node): Clean up by factoring out
2903 calls to release_ssa_name and release_phi_node.
2905 * fold-const.c (fold): Remove handling of unary expressions.
2907 * fold-const.c (fold_unary): Avoid directly using the original
2908 expression t as much as possible.
2910 2005-03-03 Roger Sayle <roger@eyesopen.com>
2911 Andrew Pinski <pinskia@physics.uc.edu>
2913 * jump.c (redirect_exp_1): If nlabel is a NULL pointer create a
2914 RETURN rtx, and not a LABEL_REF containing a NULL pointer.
2916 2005-03-03 Hans-Peter Nilsson <hp@axis.com>
2918 Describe special registers SRP and MOF as allocatable registers.
2919 * config/cris/cris.c (cris_md_asm_clobbers): New function.
2920 (TARGET_MD_ASM_CLOBBERS): Define to cris_md_asm_clobbers.
2921 (cris_conditional_register_usage): Enable CRIS_MOF_REGNUM if
2922 TARGET_HAS_MUL_INSNS.
2923 (cris_print_operand) <case 'd'>: New case.
2924 <case REG>: Allow CRIS_MOF_REGNUM and CRIS_SRP_REGNUM.
2925 * config/cris/cris.h (CRIS_PC_REGNUM, CRIS_SRP_REGNUM): Don't
2927 (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS)
2928 (REG_ALLOC_ORDER): Update for MOF.
2929 (enum reg_class): New members MOF_REGS, GENERAL_REGS and
2931 (GENERAL_REGS): No longer a define of ALL_REGS.
2932 (REGNO_REG_CLASS, REG_CLASS_CONTENTS, REG_CLASS_NAMES)
2933 (PREFERRED_RELOAD_CLASS, REGISTER_NAMES, DBX_REGISTER_NUMBER):
2935 (CRIS_SPECIAL_REGS_CONTENTS): New macro.
2936 (REG_CLASS_FROM_LETTER): Allocate 'h' and 'x'.
2937 (SECONDARY_RELOAD_CLASS): Define.
2938 (STACK_POINTER_REGNUM): Define as CRIS_SP_REGNUM.
2939 (FRAME_POINTER_REGNUM): Define as CRIS_FP_REGNUM.
2940 (ARG_POINTER_REGNUM): Define as CRIS_AP_REGNUM.
2941 (STATIC_CHAIN_REGNUM): Define as CRIS_STATIC_CHAIN_REGNUM.
2942 (REGISTER_MOVE_COST): Define.
2943 (PIC_OFFSET_TABLE_REGNUM): Define in terms of CRIS_GOT_REGNUM.
2944 * config/cris/cris.md (CRIS_GOT_REGNUM, CRIS_STATIC_CHAIN_REGNUM)
2945 (CRIS_FP_REGNUM, CRIS_SP_REGNUM, CRIS_SRP_REGNUM, CRIS_AP_REGNUM)
2946 (CRIS_MOF_REGNUM): New define_constants.
2947 ("*movsi_internal", "movhi", "movqi", "movsf"): Add alternatives for
2949 ("reload_inhi", "reload_outhi", "reload_inqi", "reload_outqi"):
2951 ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3")
2952 ("mulsidi3", "umulsidi3", "smulsi3_highpart", "umulsi3_highpart"):
2953 Adjust for MOF being properly described as a register.
2954 (indir_to_reg_split): Name this split. Conditionalize on the
2955 destination register being a general register.
2956 (movei): Conditionalize on on operands 0 and 1 having the same
2959 2005-03-03 Alan Modra <amodra@bigpond.net.au>
2962 * config/rs6000/rs6000.c (rs6000_override_options): Don't allow
2963 -mcpu to override any other explicitly given flags.
2965 2005-03-02 J"orn Rennecke <joern.rennecke@st.com>
2967 * recog.c (verify_changes, confirm_change_group): New functions,
2968 broken out of apply_change_group.
2969 (apply_change_group): Use them.
2970 * recog.h (verify_change, confirm_change_group): Declare.
2971 * rtl.h (redirect_jump_2): Declare.
2972 * jump.c (redirect_exp, invert_exp): Delete.
2973 (invert_exp_1): Take second parameter. Return value. Changed caller.
2974 (redirect_jump_2): New function, broken out of redirect_jump.
2975 (redirect_jump): Use redirect_jump_1 and redirect_jump_2.
2976 (invert_jump): Use invert_jump_1 and redirect_jump_2.
2977 * ifcvt.c (dead_or_predicable): Use redirect_jump_2.
2979 2005-03-02 Geoffrey Keating <geoffk@apple.com>
2981 * varasm.c (named_section): Use xstrdup rather than doing it by
2984 * config/darwin8.h (LIB_SPEC): Switch -lmx and -lSystem.
2986 2005-03-02 Devang Patel <dpatel@apple.com>
2988 Undo PR tree-optimization/18815 fix.
2990 2005-03-02 Devang Patel <dpatel@apple.com>
2992 PR tree-optimization/18815
2993 * tree-if-conv.c (combine_blocks): Adjust loop header edges for
2994 loops with zero exit edges.
2996 2005-03-02 Kazu Hirata <kazu@cs.umass.edu>
2998 * cfg.c (connect_src, connect_dest, disconnect_src,
2999 disconnct_dest): New.
3000 (unchecked_make_edge, remove_edge, redirect_edge_succ,
3001 redirect_edge_pred): Use the new functions.
3003 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
3004 free_dominance_info only when needed.
3006 2005-03-02 David Edelsohn <edelsohn@gnu.org>
3009 * config/rs6000/predicates.md (reg_or_cint64_operand): Fix typo.
3010 (reg_or_sub_cint64_operand): Same.
3012 2005-03-02 Jeff Law <law@redhat.com>
3014 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Fix setting of
3015 CFG_ALTERED in the main DOM iteration loop.
3017 2005-03-02 Mark Mitchell <mark@codesourcery.com>
3020 * varasm.c (initializer_constant_valid_p): Allow conversions
3021 between OFFSET_TYPEs. Tidy.
3023 2005-03-02 Hans-Peter Nilsson <hp@axis.com>
3025 * config/cris/cris.md ("return"): Remove epilogue delay list
3028 2005-03-02 Daniel Jacobowitz <dan@codesourcery.com>
3030 * config/arm/linux-elf.h (ARM_FUNCTION_PROFILER): Do not use (PLT)
3032 * config/arm/netbsd-elf.h (ARM_FUNCTION_PROFILER): Likewise.
3034 2005-03-02 Kazu Hirata <kazu@cs.umass.edu>
3036 * cfgloop.h, cfgloopanal.c, cfgloopmanip.c, conflict.c,
3037 loop-init.c, loop-unroll.c, print-tree.c, reg-notes.def,
3038 config/m68k/m68k.c, config/mips/mips.h,
3039 config/rs6000/rs6000-protos.h, doc/contrib.texi,
3040 doc/include/gcc-common.texi: Update copyright.
3042 PR middle-end/18029 and PR middle-end/18030
3043 * expr.c (optimize_bitfield_assignment_op): Add a special case
3044 to handle BIT_IOR_EXPR and BIT_XOR_EXPR.
3046 * fold-const.c (fold_unary): New.
3047 (fold): Call fold_unary on unary expressions.
3049 2005-03-02 Richard Guenther <rguenth@gcc.gnu.org>
3051 * cgraph.h (struct cgraph_edge): Add prev_caller and
3053 (cgraph_node_remove_callees): Export.
3054 * cgraph.c (cgraph_create_edge): Initialize prev_caller
3056 (cgraph_edge_remove_callee): New function.
3057 (cgraph_edge_remove_caller): Likewise.
3058 (cgraph_remove_edge): Use.
3059 (cgraph_redirect_edge_callee): Likewise.
3060 (cgraph_node_remove_callees): New function.
3061 (cgraph_node_remove_callers): Likewise.
3062 (cgraph_remove_node): Use.
3063 * tree-optimize.c (tree_rest_of_compilation): Use
3064 cgraph_node_remove_callees instead of manual loop.
3065 * cgraphunit.c (cgraph_finalize_function): Likewise.
3066 (cgraph_expand_function): Likewise.
3067 (cgraph_remove_unreachable_nodes): Likewise.
3069 2005-03-02 Joseph S. Myers <joseph@codesourcery.com>
3072 * c-tree.h (undeclared_variable, build_external_ref): Add extra
3074 * c-decl.c (undeclared_variable): Take location as argument.
3075 * c-typeck.c (build_external_ref): Likewise.
3076 * c-parser.c (c_parser_postfix_expression): Pass location of
3077 identifier to build_external_ref.
3079 2005-03-01 David Edelsohn <edelsohn@gnu.org>
3081 * config/rs6000/rs6000.md (cceq splitter): Use operand mode, not
3082 CCEQ mode for branch_positive_comparison_operator test.
3083 * config/rs6000/predicates (branch_comparison_operator): Revert to
3085 (scc_comparison_operator): Same.
3086 (branch_positive_comparison_operator): Same.
3088 2005-03-01 Hans-Peter Nilsson <hp@axis.com>
3090 * config/cris/cris.c (cris_eligible_for_epilogue_delay)
3091 (cris_delay_slots_for_epilogue): Remove.
3092 (save_last): Move into cris_target_asm_function_epilogue.
3093 (cris_target_asm_function_epilogue): Remove tests for file being
3095 * config/cris/cris-protos.h (cris_eligible_for_epilogue_delay)
3096 (cris_delay_slots_for_epilogue): Remove prototypes.
3097 * config/cris/cris.h (DELAY_SLOTS_FOR_EPILOGUE)
3098 (ELIGIBLE_FOR_EPILOGUE_DELAY): Do not define.
3100 2005-03-01 David Edelsohn <edelsohn@gnu.org>
3102 * config/rs6000/predicates.md (branch_comparison_operator): Change
3103 to define_special_predicate.
3104 (scc_comparison_operator): Same.
3105 (branch_positive_comparison_operator): Same.
3107 2005-03-01 Daniel Berlin <dberlin@dberlin.org>
3109 * Makefile.in (tree-ssa-sink.o): New.
3110 (OBJS-common): Add tree-ssa-sink.o.
3111 * common.opt: Add -ftree-sink
3112 * opts.c (decode_options): flag_tree_sink is set at O1 or higher.
3113 * timevar.def (TV_TREE_SINK): new timevar.
3114 * tree-flow.h (is_hidden_global_store): Prototype.
3115 * tree-optimize.c (init_tree_optimization_passes): Add
3117 * tree-pass.h (pass_sink_code): New.
3118 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Move checking
3119 for non-obvious global store store to is_hidden_global_store, and
3120 call that new function.
3121 * tree-ssa-sink.c: New file.
3122 * doc/invoke.texi: Document -fdump-tree-sink and -ftree-sink.
3123 * doc/passes.texi: Document forward store motion.
3124 * testsuite/gcc.dg/tree-ssa/ssa-sink-1.c: New test
3125 * testsuite/gcc.dg/tree-ssa/ssa-sink-2.c: New test
3126 * testsuite/gcc.dg/tree-ssa/ssa-sink-3.c: New test
3127 * testsuite/gcc.dg/tree-ssa/ssa-sink-4.c: New test
3129 2005-03-01 Per Bothner <per@bothner.com>
3131 * diagnostic.c (diagnostic_build_prefix): If USE_MAPPED_LOCATION
3132 and we have a non-zero column-number, add it to the message.
3133 Also factor out the diagnostic_kind_text.
3135 2005-03-01 Zdenek Dvorak <dvorakz@suse.cz>
3137 * cfgloop.c (flow_loop_entry_edges_find, flow_loop_exit_edges_find,
3138 flow_loop_pre_header_scan, flow_loop_pre_header_find,
3139 flow_loop_scan): Removed.
3140 (flow_loop_dump): Do not dump removed fields.
3141 (flow_loop_free): Do not free removed fields.
3142 (flow_loops_find): Flags argument removed. Do not call flow_loop_scan.
3143 (loop_exit_edge_p): New function.
3144 * cfgloop.h (struct loop): Removed fields pre_header, pre_header_edges,
3145 num_pre_header_edges, entry_edges, num_entries, exit_edges,
3146 num_exits, exits_doms.
3147 (LOOP_TREE, LOOP_PRE_HEADER, LOOP_ENTRY_EDGES, LOOP_EXIT_EDGES,
3148 LOOP_EDGES, LOOP_ALL): Removed.
3149 (flow_loop_scan): Declaration removed.
3150 (loop_exit_edge_p, mark_loop_exit_edges): Declare.
3151 * cfgloopmanip.c (create_loop_notes): Do not pass flags to
3153 * ifcvt.c (mark_loop_exit_edges): Moved to cfgloopanal.c.
3154 (if_convert): Call flow_loops_find and flow_loops_free
3155 when calling mark_loop_exit_edges.
3156 * cfgloopanal.c (mark_loop_exit_edges): Moved from
3157 ifcvt.c. Removed the flow_loops_find, flow_loops_free and
3158 free_dominance_info calls.
3159 * loop-init.c (flow_loops_find): Ditto.
3160 * passes.c (rest_of_handle_branch_prob): Ditto.
3161 * lambda-code.c (perfect_nestify): Do not call flow_loops_find.
3162 * loop-unroll.c (analyze_insns_in_loop): Do not use
3164 * predict.c (predict_loops): Do not call flow_loop_scan.
3165 Use get_loop_exit_edges.
3166 (tree_estimate_probability): Do not pass flags to flow_loops_find.
3167 * tree-if-conv.c (bb_with_exit_edge_p): Take loop as argument.
3168 Do not use EDGE_LOOP_EXIT.
3169 (tree_if_convert_cond_expr, if_convertible_modify_expr_p): Pass loop
3170 to bb_with_exit_edge_p.
3171 (if_convertible_loop_p): Do not call flow_loop_scan. Use
3172 loop->single_exit. Do not use EDGE_LOOP_EXIT. Pass loop
3173 to bb_with_exit_edge_p.
3174 (combine_blocks): Pass loop to bb_with_exit_edge_p. Do not use
3176 * tree-loop-linear.c (linear_transform_loops): Do not call
3177 flow_loop_scan. Use loop->single_exit.
3178 * tree-vect-analyze.c (vect_analyze_operations): Use loop->single_exit.
3179 (vect_analyze_loop_form): Do not call flow_loop_scan.
3180 * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Use
3182 (vect_do_peeling_for_loop_bound): Use loop_preheader_edge and
3184 * tree-vectorizer.c (slpeel_update_phis_for_duplicate_loop,
3185 slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
3186 slpeel_tree_duplicate_loop_to_edge_cfg,
3187 slpeel_verify_cfg_after_peeling, slpeel_tree_peel_loop_to_edge):
3188 Use loop_preheader_edge and loop->single_exit. Do not call
3191 2005-03-01 Nick Clifton <nickc@redhat.com>
3193 * config/arm/arm.c (thumb_find_work_register): Check all of the
3194 argument registers to see if they are free, and a couple of
3195 special cases where the last argument register but can be proved
3196 to be available during the function's prologue.
3197 (print_multi_reg, arm_compute_save_reg0_reg12_mask,
3198 output_return_instruction, emit_multi_reg_push, thumb_pushpop,
3199 thumb_unexpanded_epilogue): Use unsigned long as the type for the
3201 (thumb_compute_save_reg_mask): Likewise. Also use
3202 thumb_find_work_register() to ensure that there is agreement about
3203 which work register is going to be used in the prologue.
3204 (thumb_output_function_prologue): Use unsigned long as the type
3205 for the register bit-mask. Also delay pushing the link register if
3206 other high registers are going to be pushed.
3207 (thumb_compute_save_reg_mask, emit_multi_reg_push,
3208 print_multi-reg, number_of_first_bit_set, thumb_pushpop): Remove
3209 redundant prototypes.
3211 2005-02-28 John David Anglin <dave.anglin#nrc-cnrc.gc.ca>
3214 * pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow allow hard registers during
3215 and after reload in REG+REG indexed addresses without REG_POINTER
3216 set in the base and not set in the index.
3218 2005-02-28 Kaz Kojima <kkojima@gcc.gnu.org>
3220 * config/sh/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
3221 Don't undefine here.
3222 (HANDLE_PRAGMA_PACK_PUSH_POP): Delete.
3223 (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC): Likewise.
3224 (TARGET_OS_CPP_BUILTINS): Use LINUX_TARGET_OS_CPP_BUILTINS.
3225 (LIB_SPEC, LINK_EH_SPEC, STARTFILE_SPEC, ENDFILE_SPEC,
3226 LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED, TARGET_C99_FUNCTIONS):
3228 * config.gcc (sh*-*-linux*): Use config/linux.h.
3230 2005-02-28 Dale Johannesen <dalej@apple.com>
3231 Stan Shebs <shebs@apple.com>
3233 Rewrite of 64-bit Darwin structure-by-value pass/return.
3234 * config/rs6000/rs6000.h (CUMULATIVE_ARGS): New fields
3235 intoffset, use_stack, named.
3236 * config/rs6000/rs6000.c (rs6000_darwin64_function_arg): Remove.
3237 (rs6000_darwin64_record_arg_advance_flush): New.
3238 (rs6000_darwin64_record_arg_advance_recurse): New.
3239 (rs6000_darwin64_record_arg_flush): New.
3240 (rs6000_darwin64_record_arg_recurse): New.
3241 (rs6000_darwin64_record_arg): New.
3242 (rs6000_return_in_memory): Remove AGGREGATE_TYPE_P check.
3243 (function_arg_boundary): Handle 128-bit aligned structs.
3244 (function_arg_advance): Rewrite darwin64 struct handling.
3245 (function_arg): Call rs6000_darwin64_record_arg.
3246 (function_arg_partial_nregs): Handle darwin64 structs.
3247 (rs6000_darwin64_function_value): Remove.
3248 (rs6000_function_value): Call rs6000_darwin64_record_arg.
3250 2005-02-28 Roger Sayle <roger@eyesopen.com>
3252 PR tree-optimization/20216
3253 * tree-chrec.c (tree_fold_factorial): Delete.
3254 (tree_fold_binomial): Change argument list to take a return type
3255 and change the type of K to unsigned int. Rewrite to avoid explicit
3256 evaluation of factorials, and (recursively) calling fold to perform
3257 compile-time arithmetic. Return NULL on (internal) overflow.
3258 (chrec_evaluate): Change type of K to an unsigned int. Avoid
3259 calling tree_fold_binomial unnecessarily. Return chrec_dont_know
3260 if any intermediate calculation overflows.
3261 (chrec_apply): Update call to chrec_evaluate.
3263 2005-02-28 James E Wilson <wilson@specifixinc.com>
3265 * config/mips/mips.h (NO_PROFILE_COUNTERS): Define.
3267 2005-02-28 Joseph S. Myers <joseph@codesourcery.com>
3270 * c-parser.c (c_parser_compound_statement): Return error_mark_node
3271 instead of NULL_TREE on error.
3273 2005-02-28 David Edelsohn <edelsohn@gnu.org>
3275 * config/rs6000/rs6000.c (EASY_VECTOR_15): Remove.
3276 (EASY_VECTOR_15_ADD_SELF): Remove.
3277 (num_insns_constant_wide): Not static.
3278 (validate_condition_mode): Not static.
3279 (toc_relative_expr_p): Not static.
3280 (legitimate_indirect_address_p): Not static.
3281 (macho_lo_sum_memory_operand): Not static.
3282 (invalid_e500_subreg): Not static.
3283 (easy_vector_same): Not static.
3284 (easy_vector_splat_const): Not static.
3285 (RS6000_SYMBOL_REF_TLS_P): Remove.
3286 (any_operand): Delete.
3287 (any_parallel_operand): Delete.
3288 (count_register_operand): Delete.
3289 (altivec_register_operand): Delete.
3290 (xer_operand): Delete.
3291 (s8bit_cint_operand): Delete.
3292 (short_cint_operand): Delete.
3293 (u_short_cint_operand): Delete.
3294 (non_short_cint_operand): Delete.
3295 (exact_log2_cint_operand): Delete.
3296 (gpc_reg_operand): Delete.
3297 (cc_reg_operand): Delete.
3298 (cc_reg_not_cr0_operand): Delete.
3299 (reg_or_short_operand): Delete.
3300 (reg_or_neg_short_operand): Delete.
3301 (reg_or_aligned_short_operand): Delete.
3302 (reg_or_u_short_operand): Delete.
3303 (reg_or_cint_operand): Delete.
3304 (reg_or_arith_cint_operand): Delete.
3305 (reg_or_add_cint64_operand): Delete.
3306 (reg_or_sub_cint64_operand): Delete.
3307 (reg_or_logical_cint_operand): Delete.
3308 (got_operand): Delete.
3309 (got_no_const_operand): Delete.
3310 (easy_fp_constant): Delete.
3311 (easy_vector_constant): Delete.
3312 (easy_vector_constant_add_self): Delete.
3313 (zero_constant): Delete.
3314 (zero_fp_constant): Delete.
3315 (volatile_mem_operand): Delete.
3316 (offsettable_mem_operand): Delete.
3317 (mem_or_easy_const_operand): Delete.
3318 (add_operand): Delete.
3319 (non_add_cint_operand): Delete.
3320 (logical_operand): Delete.
3321 (non_logical_cint_operand): Delete.
3322 (mask_operand): Delete.
3323 (mask_operand_wrap): Delete.
3324 (mask64_operand): Delete.
3325 (mask64_2_operand): Delete.
3326 (and64_operand): Delete.
3327 (and64_2_operand): Delete.
3328 (and_operand): Delete.
3329 (reg_or_mem_operand): Delete.
3330 (lwa_operand): Delete.
3331 (symbol_ref_operand): Delete.
3332 (call_operand): Delete.
3333 (current_file_function_operand): Delete.
3334 (input_operand): Delete.
3335 (rs6000_nonimmediate_operand): Delete.
3336 (rs6000_tls_symbol_ref): Delete.
3337 (save_world_operation): Delete.
3338 (restore_world_operation): Delete.
3339 (load_multiple_operation): Delete.
3340 (store_multiple_operation): Delete.
3341 (vrsave_operation): Delete.
3342 (mfcr_operation): Delete.
3343 (mtcrf_operation): Delete.
3344 (lmw_operation): Delete.
3345 (stmw_operation): Delete.
3346 (branch_comparison_operator): Delete.
3347 (branch_positive_comparison_operator): Delete.
3348 (scc_comparison_operator): Delete.
3349 (trap_comparison_operator): Delete.
3350 (boolean_operator): Delete.
3351 (boolean_or_operator): Delete.
3352 (min_max_operator): Delete.
3353 * config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Move to here.
3354 (EASY_VECTOR_15): Moved to here.
3355 (EASY_VECTOR_15_ADD_SELF): Move to here.
3356 (PREDICATE_CODES): Delete.
3357 * config/rs6000/rs6000-protos.h: Delete predicate functions.
3358 Declare functions no longer static.
3359 * config/rs6000/predicates.md: New.
3360 * config/rs6000/rs6000.md: Include predicates.md
3362 2005-02-28 Kazu Hirata <kazu@cs.umass.edu>
3364 * calls.c (emit_call_1): Don't use REG_ALWAYS_RETURN.
3365 (emit_library_call_value_1): Don't use LCT_ALWAYS_RETURN and
3367 * cfgrtl.c (need_fake_edge_p): Likewise.
3368 * combine.c (distribute_notes): Likewise.
3369 * emit-rtl.c (try_split): Likewise.
3370 * recog.c (peephole2_opimize): Likewise.
3371 * reg-notes.def (ALWAYS_RETURN): Remove.
3372 * rtl.h (LCT_ALWAYS_RETURN): Remove.
3373 * tree-cfg.c (need_fake_edge_p): Don't use ECF_ALWAYS_RETURN.
3374 * tree.h (ECF_ALWAYS_RETURN): Remove.
3376 2005-02-28 Roger Sayle <roger@eyesopen.com>
3379 * tree-ssa.c (tree_ssa_useless_type_conversion_1): A conversion
3380 between different machine modes is never a "useless" conversion.
3382 2005-02-28 Geert Bosch <bosch@gnat.com>
3385 * doc/contrib.texi: List contributors for Ada front end
3387 2005-02-28 Paolo Bonzini <bonzini@gnu.org>
3389 * simplify-rtx.c (simplify_unary_operation_1,
3390 simplify_const_unary_operation): New, extracted from...
3391 (simplify_unary_operation): ... this one.
3392 (simplify_binary_operation_1,
3393 simplify_const_binary_operation): New, extracted from...
3394 (simplify_binary_operation): ... this one.
3395 * rtl.h (simplify_const_unary_operation,
3396 simplify_const_binary_operation): Add prototypes.
3398 2005-02-28 Julian Brown <julian@codesourcery.com>
3400 * config/elfos.h: Revert my patch from 2005-02-25 since it broke
3401 building libjava and caused PR regression/20228.
3403 2005-02-28 Paolo Bonzini <bonzini@gnu.org>
3406 * Makefile.in (host_subdir): New.
3407 (build_objdir): New. Replace ../$(build_subdir) with it throughout.
3408 * configure: Regenerate.
3410 2005-02-27 Zack Weinberg <zack@codesourcery.com>
3412 * config/alpha/t-osf4, config/arm/t-netbsd, config/ia64/t-hpux
3413 * config/pa/t-hpux-shlib (SHLIB_INSTALL): Create the
3414 installation directory first.
3416 2005-02-28 Hans-Peter Nilsson <hp@axis.com>
3419 * config/cris/cris.h (EXTRA_CONSTRAINT_Q): Accept only (mem (reg)),
3420 not including (reg). Do not check for reg being CRIS_PC_REGNUM.
3421 (EXTRA_MEMORY_CONSTRAINT): Define as 'Q'.
3422 * config/cris/cris.md: Tweak comments referring to Q.
3423 ("cmpsi", "cmphi", "cmpqi", "*movsi_internal", "movhi")
3424 ("movstricthi", "movqi", "movstrictqi", "movsf", "addsi3")
3425 ("addhi3", "addqi3", "subsi3", "subhi3", "subqi3")
3426 ("*expanded_andsi", "*expanded_andhi", "*andhi_lowpart", "andqi3")
3427 ("*andqi_lowpart", "iorsi3", "iorhi3", "iorqi3", "uminsi3"):
3428 Insert spaces in constraints to align alternatives vertically for
3430 ("cmphi"): Ditto. Add separate alternative for operand 0 "r",
3433 2005-02-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3435 PR rtl-optimization/17728
3436 * pa.md (mulsi3, divsi3, udivsi3, modsi3): Change predicate for
3437 operand 0 from general_operand to move_dest_operand.
3439 2005-02-26 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3441 * pa/elf.h, pa/som.h (ASM_OUTPUT_EXTERNAL): Use assemble_name_raw
3442 instead of trying to save and restore TREE_SYMBOL_REFERENCED.
3443 * pa/pa64-hpux.h (ASM_OUTPUT_TYPE_DIRECTIVE): Define.
3444 (ASM_OUTPUT_EXTERNAL): Don't save and restore TREE_SYMBOL_REFERENCED.
3446 2005-02-26 Nathanael Nerode <neroden@gcc.gnu.org>
3448 * configure.ac: Rename cc_for_cross_gnattools to host_cc_for_libada.
3449 * configure: Regenerate.
3450 * libada-mk.in: Remove CC; rename
3451 cc_for_cross_gnattools / cc_set_by_configure to host_cc_for_libada.
3453 2005-02-26 Andrew Pinski <pinskia@physics.uc.edu>
3456 * tree-ssa-alias.c (count_uses_and_derefs): If we have TREE_LIST
3457 for the lhs, also walk over the tree. Likewise for rhs.
3459 2005-02-26 Zdenek Dvorak <dvorakz@suse.cz>
3461 * tree-ssa-dom.c (simple_iv_increment_p): New function.
3462 (simplify_rhs_and_lookup_avail_expr, eliminate_redundant_computations):
3463 Do not propagate value of iv before increment over the increment.
3465 2005-02-25 Joseph S. Myers <joseph@codesourcery.com>
3467 * c-parser.c: New file.
3468 * c-parse.in: Remove.
3469 * Makefile.in (c-parse.o-warn, c-parse.o, c-parse.c, c-parse.y):
3471 (c-parser.o): Add dependencies.
3472 (C_AND_OBJC_OBJC, C_OBJS, gcc.srcextra, GTFILES, distclean,
3473 maintainer-clean, TAGS): Update.
3474 * c-config-lang.in (gtfiles): Update.
3475 * gengtype-lex.l: Don't handle "@@".
3476 * stub-objc.c (objc_get_class_ivars, objc_build_throw_stmt,
3477 objc_build_synchronized, objc_begin_try_stmt,
3478 objc_begin_catch_clause, objc_finish_catch_clause,
3479 objc_build_finally_clause, objc_finish_try_stmt): New.
3480 * c-tree.h (struct c_declspecs): Add declspecs_seen_p and
3482 (c_parse_init): Update comment.
3483 * c-decl.c (c_init_decl_processing): Update comment.
3484 (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
3485 declspecs_add_scspec, declspecs_add_attrs): Initialize and update
3486 new c_declspecs members.
3488 2005-02-25 Julian Brown <julian@codesourcery.com>
3490 * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK
3491 from being used for symbols with vague linkage when
3492 HAVE_GAS_COMDAT_GROUP is true.
3494 2005-02-25 Mark Mitchell <mark@codesourcery.com>
3496 * doc/include/gcc-common.texi (version-GCC): Update to 4.1.
3498 2005-02-25 Steve Ellcey <sje@cup.hp.com>
3501 * doc/tm.texi (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Document.
3502 (LIBGCC2_HAS_DF_MODE): New.
3503 (LIBGCC2_HAS_XF_MODE): New.
3504 (LIBGCC2_HAS_TF_MODE): New.
3505 * libgcc2.h (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
3506 (LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
3507 * libgcc2.c (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
3508 (LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
3509 (LIBGCC2_HAS_DF_MODE): New name for HAVE_DFMODE.
3510 * config/ia64/t-ia64 (LIB1ASMFUNCS): Remove __compat
3511 and add _fixtfdi, _fixunstfdi, _floatditf
3512 * lib1funcs.asm: Remove L__compat. Add L_fixtfdi,
3513 L_fixunstfdi, L_floatditf.
3514 * config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE): Define.
3515 (LIBGCC2_HAS_TF_MODE): Define.
3517 2005-02-25 Diego Novillo <dnovillo@redhat.com>
3519 PR tree-optimization/20204
3520 * tree-into-ssa.c (insert_phi_nodes_for): Do not use
3521 REWRITE_THIS_STMT markers on PHI nodes.
3522 (rewrite_initialize_block): Likewise.
3524 2005-02-25 Mark Mitchell <mark@codesourcery.com>
3526 * version.c (version_string): Update to 4.1.
3528 2005-02-25 Paolo Carlini <pcarlini@suse.de>
3530 * doc/extend.texi (5.24 Declaring Attributes of Functions)<noreturn>:
3531 Clarify that the alternative way doesn't work in GNU C++.
3533 2005-02-25 Zdenek Dvorak <dvorakz@suse.cz>
3535 PR tree-optimization/19937
3536 * tree-ssa-loop-ivopts.c (rewrite_use_compare): Cast the final value
3537 to the type of the induction variable.
3539 2005-02-25 Kaz Kojima <kkojima@gcc.gnu.org>
3541 PR rtl-optimization/20117
3542 * bb-reorder.c (duplicate_computed_gotos): Don't duplicate
3543 the block including noncopyable insn.
3545 2005-02-24 Kazu Hirata <kazu@cs.umass.edu>
3547 * cse.c (delete_trivially_dead_insns): Speed up by minimizing
3548 calls to find_reg_note.
3550 2005-02-24 Richard Henderson <rth@redhat.com>
3553 * tree-sra.c (instantiate_element): Copy TREE_THIS_VOLATILE from
3556 2005-02-24 Fariborz Jahanian <fjahanian@apple.com>
3558 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Check for
3559 vector types if to use base reg for misaligned non-word ld/std.
3561 2005-02-24 Hans-Peter Nilsson <hp@axis.com>
3564 * config/cris/cris.c (cris_target_asm_function_prologue): Create
3565 dwarf2 label manually and put it after, not before the prologue.
3567 2005-02-24 David Edelsohn <edelsohn@gnu.org>
3570 * reload.c (operands_match_p): Only increment register number for
3571 SCALAR_INT_MODE_P modes in multiple hard registers.
3573 * config/rs6000/rs6000.md (trunctfdf2): Remove register constraints.
3576 2005-02-24 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3578 * ChangeLog.5: Fix log message typo(s).
3579 * ChangeLog.7: Likewise.
3580 * ChangeLog.tree-ssa: Likewise.
3581 * cfgexpand.c: Fix comment typo(s).
3582 * conflict.c: Likewise.
3583 * defaults.h: Likewise.
3584 * dwarf2out.c: Likewise.
3586 * ggc-page.c: Likewise.
3587 * tree-eh.c: Likewise.
3588 * tree-ssa-dom.c: Likewise.
3590 2005-02-24 Jakub Jelinek <jakub@redhat.com>
3593 * mklibgcc.in: Pass -DSHARED when compiling all *_s${objext} objects.
3594 * config/rs6000/darwin-ldouble.c: Only use the .symver directives
3595 if SHARED is defined.
3598 * config/rs6000/rs6000.md (LTU, GTU sCC splitters): Add earlyclobber,
3599 allow splitting only if operands 0 and 3 don't overlap.
3601 2005-02-24 Richard Henderson <rth@redhat.com>
3604 * builtins.c (fold_builtin_complex_mul, fold_builtin_complex_div): New.
3605 (fold_builtin_1): Call them.
3606 * fold-const.c (fold_complex_mult_parts): Split out from ...
3607 (fold_complex_mult): ... here. Fix typo in both imaginary case.
3608 (fold_complex_div_parts, fold_complex_div): New.
3610 * tree.h (fold_complex_mult_parts, fold_complex_div_parts): Declare.
3612 2005-02-24 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3614 * tree-ssa-ccp.c (visit_assignment): Verify that result of
3615 VIEW_CONVERT_EXPR is_gimple_min_invariant.
3617 * print-tree.c (print_node_brief): Print LABEL_DECL_UID.
3618 (print_node): Likewise.
3619 Print TYPE_SIZES_GIMPLIFIED.
3621 2005-02-24 Hans-Peter Nilsson <hp@axis.com>
3623 * config/cris/cris.md ("umulhisi3", "umulqihi3", "mulsi3")
3624 ("mulqihi3", "mulhisi3", "mulsidi3", "umulsidi3"): Mark input
3625 operands as commutative in constraints.
3627 2005-02-24 Diego Novillo <dnovillo@redhat.com>
3629 * tree-into-ssa.c: Re-organize internal functions.
3631 2005-02-24 Richard Henderson <rth@redhat.com>
3634 * c-opts.c (c_common_post_options): Set flag_complex_method to 2
3636 * common.opt (fcx-limited-range): New.
3637 * opts.c (set_fast_math_flags): Set flag_cx_limited_range.
3638 * toplev.c (flag_complex_method): Initialize to 1.
3639 (process_options): Set flag_complex_method to 0 if
3640 flag_cx_limited_range.
3641 * doc/invoke.texi (-fcx-limited-range): New.
3643 2005-02-24 Kazu Hirata <kazu@cs.umass.edu>
3645 * cse.c (delete_trivially_dead_insns): Speed up by using
3646 NEXT_INSN and PREV_INSN directly instead of next_real_insn and
3649 2005-02-24 Andrea Tarani <andrea.tarani@gilbarco.com>
3651 * config/m68k/m68k.c (m68k_save_reg): Also save A5 for non-leaf
3652 functions when -mid-shared-library is being used.
3654 2005-02-23 Daniel Jacobowitz <dan@codesourcery.com>
3656 * doc/tm.texi (LINK_LIBGCC_SPECIAL): Remove.
3657 (LINK_LIBGCC_SPECIAL_1): Don't mention it.
3658 * gcc.c: Don't check for LINK_LIBGCC_SPECIAL.
3659 * system.h: Poison LINK_LIBGCC_SPECIAL.
3661 2005-02-23 James E Wilson <wilson@specifixinc.com>
3663 * gengtype.c (note_insn_name): Make 1 element larger.
3665 2005-02-23 Roger Sayle <roger@eyesopen.com>
3668 PR rtl-optimization/20097
3669 * simplify-rtx.c (simplify_relational_operation_1): Avoid creating
3670 BImode SUBREGs of SImode registers which confuse the ia64 backend.
3672 2005-02-23 David Edelsohn <edelsohn@gnu.org>
3674 * t-aix43 (SHLIB_INSTALL): Create directory for shared library.
3675 * t-aix52 (SHLIB_INSTALL): Same.
3677 2005-02-23 Kazu Hirata <kazu@cs.umass.edu>
3679 * genpreds.c: Update copyright.
3681 2005-02-23 Michael Beach <michaelb@ieee.org>
3684 * config/sparc/t-elf (startup files): Assemble with CPP.
3686 2005-02-23 Paolo Bonzini <bonzini@gnu.org>
3688 * genpreds.c (mark_mode_tests): Handle non-VOIDmode match_operands.
3689 (write_predicate_expr): Likewise.
3691 2005-02-22 Diego Novillo <dnovillo@redhat.com>
3693 PR tree-optimization/20100
3694 PR tree-optimization/20115
3695 * tree-optimize.c (init_tree_optimization_passes): Remove
3696 pass_maybe_create_global_var.
3697 * tree-pass.h (pass_maybe_create_global_var): Remove.
3698 * tree-ssa-alias.c (aliases_computed_p): Declare.
3699 (struct alias_info): Add field NUM_PURE_CONST_CALLS_FOUND.
3700 (count_calls_and_maybe_create_global_var): Remove.
3701 (pass_maybe_create_global_var): Remove.
3702 (init_alias_info): Do not declare aliases_computed_p.
3703 (maybe_create_global_var): If the function contains no
3704 call-clobbered variables and a mix of pure/const and regular
3705 function calls, create .GLOBAL_VAR.
3706 Mark all call-clobbered variables for renaming.
3707 (merge_pointed_to_info): Update comment.
3708 (add_pointed_to_var): Likewise.
3709 (is_escape_site): Likewise.
3710 Accept struct alias_info * instead of size_t *.
3712 Update AI->NUM_CALLS_FOUND and AI->NUM_PURE_CONST_CALLS_FOUND
3714 * tree-ssa-operands.c (get_call_expr_operands): If
3715 ALIASES_COMPUTED_P is false, do not add call-clobbering
3717 * tree-ssa.c (init_tree_ssa): Set ALIASES_COMPUTED_P to false.
3718 (delete_tree_ssa): Likewise.
3720 2005-02-22 James E Wilson <wilson@specifixinc.com>
3722 * toplev.c (backend_init): Don't call init_adjust_machine_modes here.
3723 (do_compile): Do call it here.
3725 2005-02-22 Kazu Hirata <kazu@cs.umass.edu>
3727 PR rtl-optimization/20017.
3728 * passes.c (rest_of_handle_combine, rest_of_handle_cse,
3729 rest_of_handle_cse2, rest_of_handle_gcse): Call
3730 delete_dead_jumptables immediately before calling cleanup_cfg.
3732 2005-02-22 Devang Patel <dpatel@apple.com>
3735 * tree-if-conv.c (process_phi_nodes): Use bsi_after_labels and skip
3738 2005-02-22 David Edelsohn <edelsohn@gnu.org>
3740 * config/rs6000/aix.h (WINT_TYPE): Define.
3742 2005-02-22 Stan Shebs <shebs@apple.com>
3744 * config/rs6000/rs6000.c (rs6000_override_options): Default to
3745 natural alignment for 64-bit Darwin.
3746 (rs6000_parse_alignment_option): Warn about uses of -malign-power
3748 * doc/invoke.texi: Document this.
3750 2005-02-22 DJ Delorie <dj@redhat.com>
3752 * c-common.c (c_common_type_for_mode): Pass the mode's precision
3753 to make_[un]signed_type, not the mode itself.
3755 2005-02-22 Kazu Hirata <kazu@cs.umass.edu>
3757 * cfg.c (cached_make_edge): Call make_edge if edge cache is
3758 not available. Use tail calls wherever possible.
3759 (make_edge): Call unchecked_make_edge to create an edge.
3761 * tree-outof-ssa.c (SSANORM_USE_COALESCE_LIST): Remove.
3762 (coalesce_ssa_name): Don't check for
3763 SSANORM_USE_COALESCE_LIST.
3764 (rewrite_out_of_ssa): Don't use SSANORM_USE_COALESCE_LIST.
3766 2005-02-22 Diego Novillo <dnovillo@redhat.com>
3768 * tree-into-ssa.c (rewrite_blocks): Move debug dumps from ...
3769 (rewrite_into_ssa): ... here.
3771 2005-02-21 Alexandre Oliva <aoliva@redhat.com>
3773 PR tree-optimization/19786
3774 * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add one
3775 tag to another's may-alias bitmap when adding to the other's list.
3777 2005-02-21 DJ Delorie <dj@redhat.com>
3779 * tree-ssa-loop-ivopts.c (computation_cost): Start register
3780 numbering at LAST_VIRTUAL_REGISTER+1 to avoid possibly using hard
3781 registers in unsupported ways.
3782 * expmed.c (init_expmed): Likewise.
3784 2005-02-21 Stan Cox <scox@redhat.com>
3786 * config/iq2000/iq2000.h (DWARF_FRAME_RETURN_COLUMN): Change to 31.
3788 2005-02-21 Kazu Hirata <kazu@cs.umass.edu>
3790 * tree-cfg.c (fold_cond_expr_cond): New.
3791 (make_edges): Call fold_cond_expr_cond.
3792 (find_taken_edge): Accept nothing but INTEGER_CST.
3793 (find_taken_edge_cond_expr): Reject INTEGER_CST other than 0
3795 (find_taken_edge_switch_expr): Remove a check for INTEGER_CST.
3797 * flow.c (delete_dead_jumptables): Speed up by scanning insns
3798 that do not belong to any basic block.
3800 2005-02-21 Jeff Law <law@redhat.com>
3802 * cfganal.c (find_unreachable_blocks): Manually CSE load of
3805 2005-02-21 Kazu Hirata <kazu@cs.umass.edu>
3807 * tree-outof-ssa.c (SSANORM_REMOVE_ALL_PHIS): Remove.
3808 (SSANORM_COALESCE_PARTITIONS, SSANORM_USE_COALESCE_LIST):
3809 Adjust their definitions.
3810 (remove_ssa_form): Don't check for SSANORM_REMOVE_ALL_PHIS.
3811 (rewrite_out_of_ssa): Don't use SSANORM_REMOVE_ALL_PHIS.
3813 * c-objc-common.h, c-pretty-print.c, cgraphunit.c, except.c,
3814 genautomata.c, langhooks.c, langhooks.h, system.h,
3815 config/arm/lib1funcs.asm: Update copyright.
3817 2005-02-21 Ulrich Weigand <uweigand@de.ibm.com>
3819 * dbxout.c (dbxout_function_end): Emit Lscope label always.
3821 2005-02-21 Richard Guenther <rguenth@gcc.gnu.org>
3824 * doc/install.texi: Document --with-gc.
3826 2005-02-21 Paolo Bonzini <bonzini@gnu.org>
3828 * simplify-rtx.c (simplify_unary_operation): Add a missing
3831 2005-02-21 Eric Botcazou <ebotcazou@libertysurf.fr>
3833 PR tree-optimization/18663
3834 * tree-ssa-dom.c (extract_range_from_cond): Return 0
3835 if the type has variable bounds.
3837 2005-02-20 Kazu Hirata <kazu@cs.umass.edu>
3839 * gcse.c: Remove an obsolete comment.
3841 * cse.c (init_cse_reg_info): Use xmalloc instead of xrealloc.
3843 2005-02-20 Hans-Peter Nilsson <hp@axis.com>
3845 * doc/extend.texi (Function Attributes) <Attribute const>: The
3846 attribute "pure" is below this text, not above.
3848 2005-02-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3850 * pa.c (pa_assemble_integer, get_plabel): Small cleanups.
3851 (pa_asm_output_mi_thunk): Use asm_output_insn instead of fprintf.
3852 * som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Small cleanup.
3854 2005-02-20 Zack Weinberg <zack@codesourcery.com>
3857 * langhooks.h (struct lang_hooks): Add to_target_charset.
3858 * langhooks.c (lhd_to_target_charset): New function.
3859 * langhooks-def.h: Declare lhd_to_target_charset.
3860 (LANG_HOOKS_TO_TARGET_CHARSET): New macro.
3861 (LANG_HOOKS_INITIALIZER): Update.
3862 * c-common.c (c_common_to_target_charset): New function.
3863 * c-common.h: Declare it.
3864 * c-objc-common.h (LANG_HOOKS_TO_TARGET_CHARSET): Set to
3865 c_common_to_target_charset.
3867 * defaults.c (TARGET_BELL, TARGET_BS, TARGET_CR, TARGET_DIGIT0)
3868 (TARGET_ESC, TARGET_FF, TARGET_NEWLINE, TARGET_TAB, TARGET_VT):
3870 * system.h: Poison them.
3871 * doc/tm.texi: Don't discuss them.
3872 * builtins.c (fold_builtin_isdigit): Use lang_hooks.to_target_charset.
3873 * c-pretty-print.c (pp_c_integer_constant): Don't use pp_c_char.
3874 (pp_c_char): Do not attempt to generate letter escapes for
3876 * config/arm/arm.c (output_ascii_pseudo_op): Likewise.
3877 * config/mips/mips.c (mips_output_ascii): Likewise.
3879 2005-02-20 Dorit Naishlos <dorit@il.ibm.com>
3881 PR tree-optimization/19951
3882 * tree-vect-analyze.c (vect_analyze_loop_form): Check if loop exit edge
3885 2005-02-19 Steven Bosscher <stevenb@suse.de>
3888 * function.h (struct function): New field `max_loop_depth'.
3889 * cfgloop.c (establish_preds): Update maximum loop depth seen so far.
3890 (flow_loops_find): Reset the max loop depth count before finding loops.
3891 * flow.c (MAX_LIVENESS_ROUNDS): New constant.
3892 (update_life_info_in_dirty_blocks): Remove 2002-05-28 workaround.
3893 (calculate_global_regs_live): Make sure the loop will terminate
3894 when the initial sets are not empty.
3896 2005-02-19 Zack Weinberg <zack@codesourcery.com>
3898 * mklibgcc.in: If libgcc_eh.a would be empty, put a dummy
3900 * config/ia64/hpux.h: Don't define LIBGCC_SPEC.
3902 2005-02-19 Richard Sandiford <rsandifo@redhat.com>
3905 * doc/invoke.texi: Remove documentation of %M spec.
3907 (init_spec): Remove %M suffix from -lgcc_s.
3908 (do_spec_1): Remove 'M' case.
3909 * mklibgcc.in: Remove SHLIB_MULTILIB handling. Expect SHLIB_LINK
3910 to put shared libraries in the multilib directory. Remove the
3911 shlib_so_soname substitution variable. Don't add a multilib encoding
3912 to shlib_base_name. Set shlib_slibdir_qual to the full pathname
3913 reported by -print-multi-os-directory. Pass @multilib_dir@ to
3914 SHLIB_INSTALL as well as SHLIB_LINK.
3915 * config/t-slibgcc-elf-ver (SHLIB_SONAME): Use @shlib_base_name@.
3916 (SHLIB_NAME): Delete.
3917 (SHLIB_DIR): New macro.
3918 (SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_SOLINK) in $(SHLIB_DIR).
3919 (SHLIB_INSTALL): Adjust accordingly.
3920 * config/t-slibgcc-darwin: As for t-slibgcc-elf-ver.
3921 * config/t-slibgcc-sld: Likewise.
3922 * config/t-libunwind-elf (SHLIBUNWIND_NAME): Delete.
3923 (SHLIBUNWIND_SONAME): Use @shlib_base_name@.
3924 (SHLIBUNWIND_LINK): Put $(SHLIBUNWIND_SONAME) and $(SHLIB_SOLINK)
3926 (SHLIBUNWIND_INSTALL): Adjust accordingly.
3927 * config/i386/t-nwld (SHLIB_SONAME): Delete.
3928 (SHLIB_LINK, SHLIB_INSTALL): Use SHLIB_NAME instead of SHLIB_SONAME.
3929 Use @shlib_base_name@ instead of @shlib_so_name@.
3930 * config/ia64/t-hpux (SHLIB_LINK): Put @shlib_base_name@.so.0
3931 and @shlib_base_name@.so in @multilib_dir@.
3932 (SHLIB_INSTALL): Adjust accordingly. Add @shlib_slibdir_qual@
3933 to the install path.
3934 * config/mips/t-slibgcc-irix: As for t-slibgcc-elf-ver.
3935 (SHLIB_LINK): Remove previous workaround.
3936 * config/pa/t-hpux-shlib (SHLIB_DIR, SHLIB_SLIBDIR_QUAL): New macros.
3937 (SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_NAME) in $(SHLIB_DIR).
3938 (SHLIB_INSTALL): Adjust accordingly. Add $(SHLIB_SLIBDIR_QUAL) to
3940 * config/rs6000/t-aix43 (SHLIB_LINK): Put @shlib_base_name@.a in
3941 @multilib_dir@. Use @multilib_dir@ to check for threading libraries.
3942 (SHLIB_INSTALL): Adjust accordingly.
3943 (SHLIB_LIBS): Use @multilib_dir@ to check for threading libraries.
3944 * config/rs6000/t-aix52: As for config/rs6000/t-aix43.
3945 * config/sh/t-linux (SHLIB_LINK, SHLIB_INSTALL): As for
3946 config/t-slibgcc-elf-ver.
3948 2005-02-19 Zdenek Dvorak <dvorakz@suse.cz>
3949 Jakub Jelinek <jakub@redhat.com>
3951 PR tree-optimization/19828
3952 * tree-ssa-loop-im.c: Add a TODO comment.
3953 (movement_possibility): Return MOVE_PRESERVE_EXECUTION for calls
3954 without side-effects.
3956 2005-02-18 James A. Morrison <phython@gcc.gnu.org>
3958 * tree-ssa-ccp.c (widen_bitfield): Pass type to build_int_cst and don't
3961 2005-02-18 James E. Wilson <wilson@specifixinc.com>
3963 * doc/invoke.texi (IA-64 Options): Delete -mb-step.
3964 * config/ia64/ia64.c (last_group, group_idx): Delete variables.
3965 (errata_find_address_regs, errata_emit_nops, fixup_errata): Delete
3967 (ia64_reorg): Delete fixup_errata call.
3968 * config/ia64/ia64.h (MASK_B_STEP, TARGET_B_STEP): Delete.
3969 (TARGET_SWITCHES): Delete -mb-step entry.
3971 2005-02-19 Jakub Jelinek <jakub@redhat.com>
3974 * c-typeck.c (composite_type): Handle quals in transparent unions.
3975 (type_lists_compatible_p): Likewise.
3977 2005-02-18 Stan Shebs <shebs@apple.com>
3979 * config/darwin.c (machopic_select_rtx_section): Don't put relocatable
3980 expressions in the .literal8 section.
3982 2005-02-18 Geoffrey Keating <geoffk@apple.com>
3984 * config/rs6000/darwin-tramp.asm: Remove stray 'APPLE LOCAL' marker.
3986 2005-02-18 Roger Sayle <roger@eyesopen.com>
3988 * fold-const.c (constant_boolean_node): Always create values of the
3989 specified type, don't bother calling truthvalue_conversion.
3991 2005-02-18 Joseph S. Myers <joseph@codesourcery.com>
3993 * except.c (output_function_exception_table): Call
3994 assemble_external_libcall (eh_personality_libfunc).
3996 2005-02-18 Joseph S. Myers <joseph@codesourcery.com>
3999 * config/ia64/ia64.h (struct machine_function): Add state_num.
4000 * config/ia64/ia64.c (process_epilogue,
4001 process_for_unwind_directive): Use new unwind state numbers each
4002 time rather than state 1.
4004 2005-02-18 Ulrich Weigand <uweigand@de.ibm.com>
4007 * config/s390/s390.md ("*llgt_sidi", "*llgt_sidi_split"): Move to
4008 before the "*llgt_didi" pattern.
4010 2005-02-18 Jason Merrill <jason@redhat.com>
4012 * gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Revert again.
4014 2005-02-18 Richard Earnshaw <rearnsha@arm.com>
4016 * arm/lib1funcs.asm (FUNC_ALIAS): New macro.
4017 (div0): Use it in place of ARM_FUNC_ALIAS.
4018 (lshrdi3, ashrdi3, ashlrdi3): Likewise.
4020 2005-02-18 Andrew Pinski <pinskia@physics.uc.edu>