OSDN Git Service

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