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