OSDN Git Service

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