OSDN Git Service

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