OSDN Git Service

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