OSDN Git Service

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