OSDN Git Service

PR c/21342
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2005-05-10  Joseph S. Myers  <joseph@codesourcery.com>
2
3         PR c/21342
4         * c-decl.c (pushdecl): When there is a declaration in the current
5         scope and the declarations are external linkage, check for
6         compatibility with the type in the external scope and update the
7         type in the external scope with the composite type information.
8         Do not form a composite type of the new type and the visible type
9         if they are incompatible.
10
11 2005-05-10  Nathan Sidwell  <nathan@codesourcery.com>
12
13         * crtstuff.c: Revert part of 2005-05-08 Change.
14         (IN_LIBGCC2): Define.
15
16 2005-05-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
17
18         * config/sparc/sparc.c (fp_sethi_p): Test !SPARC_SIMM13_P and
19         remove redundant test.
20         (fp_mov_p): Accept 0.
21         (fp_high_losum_p): Remove redundant test.
22         * config/sparc/predicates.md (const_high_operand): Explicitly test
23         (not small_int_operand).
24         (fp_const_high_losum_operand): New.
25         * config/sparc/sparc.md (movsi_insn): Do not emit 'clr'.  Reorder.
26         (movdi_insn_sp32_v9): Use canonical predicates.
27         (movdi_insn_sp32): Test !TARGET_V9 instead of !TARGET_ARCH64.
28         (movdi_insn_sp64_novis): Delete.
29         (movdi_insn_sp64_vis): Rename into movdi_insn_sp64.
30         (movsf_insn_novis): Delete.
31         (movsf_insn_vis): Rename into movsf_insn.
32         (movsf_no_f_insn): Rename into movsf_insn_no_fpu.
33         (movsf_lo_sum): Use fp_const_high_losum_operand.
34         (movsf_high): Likewise.
35         (movsf_high_losum splitter): Likewise.
36         (mov<V32:mode> expander): Use register_or_zero_operand.
37         (mov<V64:mode> expander): Likewise.
38         (movdf_insn_sp32): Use register_or_zero_operand.
39         (movdf_no_e_insn_sp32): Use register_or_zero_operand.
40         Rename into movdf_insn_sp32_no_fpu.
41         (movdf_no_e_insn_v9_sp32): Use register_or_zero_operand.
42         Rename into movdf_insn_sp32_v9_no_fpu.
43         (movdf_insn_v9only_novis): Delete.
44         (movdf_insn_v9only_vis): Rename into movdf_insn_sp32_v9.
45         (movdf_insn_sp64_novis): Delete.
46         (movdf_insn_sp64_vis): Rename into movdf_insn_sp64.
47         (movdf_no_e_insn_sp64): Use register_or_zero_operand. 
48         Rename into movdf_insn_sp64_no_fpu.
49         (movtf expander): Use register_or_zero_operand.
50         (movtf_insn_sp32): Delete.
51         (movtf_insn_vis_sp32): Use register_or_zero_operand.
52         Rename into movtf_insn_sp32.
53         (movtf_no_e_insn_sp32): Use register_or_zero_operand.
54         Rename into movtf_insn_sp32_no_fpu.
55         (movtf_insn_hq_sp64): Delete.
56         (movtf_insn_hq_vis_sp64): Use register_or_zero_operand.
57         Rename into movtf_insn_sp64_hq.
58         (movtf_insn_sp64): Delete.
59         (movtf_insn_vis_sp64): Use register_or_zero_operand.
60         Rename into movtf_insn_sp64.
61         (movtf_no_e_insn_sp64): Use register_or_zero_operand.
62         Rename into movtf_insn_sp64_no_fpu.
63
64 2005-05-10  Nathan Sidwell  <nathan@codesourcery.com>
65
66         * config/stormy16/stormy16.c (xstormy16_emit_cbranch): Use
67         gcc_assert and gcc_unreachable as appropriate.
68         (xstormy16_split_cbranch, xstormy16_output_cbranch_hi,
69         xstormy16_output_cbranch_si, xstormy16_split_move,
70         xstormy16_initial_elimination_offset,
71         xstormy16_encode_section_info, xstormy16_print_operand_address,
72         xstormy16_expand_call, xstormy16_expand_arith,
73         xstormy16_output_shift, xstormy16_init_builtins): Likewise.
74
75 2005-05-10  Kazu Hirata  <kazu@cs.umass.edu>
76
77         * tree-outof-ssa.c (_elim_graph): Change the type of nodes and
78         const_copies to VEC(tree,heap)*.
79         (new_elim_graph, delete_elim_graph, elim_graph_size,
80         elim_graph_add_node, eliminate_build, eliminate_phi): Use VEC
81         instead of VARRAY.
82
83 2005-05-10  Joseph S. Myers  <joseph@codesourcery.com>
84
85         PR other/21052
86         * doc/extend.texi (Type Attributes): Correct example syntax.
87
88 2005-05-09  Joseph S. Myers  <joseph@codesourcery.com>
89
90         PR c/21160
91         * doc/invoke.texi (-Wuninitialized): Update documentation.
92
93 2005-05-09  Richard Earnshaw  <richard.earnshaw@arm.com>
94
95         * arm.c (const_ok_for_arm): Use a faster algorithm.
96
97 2005-05-09  David Edelsohn  <edelsohn@gnu.org>
98
99         PR target/21477
100         * config/rs6000/rs6000.md (add_op2): New.
101         (add<mode>3): Use it.
102
103 2005-05-09  Richard Earnshaw  <richard.earnshaw@arm.com>
104
105         * arm.c (arm_gen_constant): Add new heuristic for generating
106         constant integers that can be expressed as the difference of two
107         valid immediates.
108
109 2005-05-09  Roger Sayle  <roger@eyesopen.com>
110
111         * c-tree.h (parser_build_unary_op): New prototype.
112         * c-typeck.c (parser_build_unary_op): New function to construct
113         a unary operation in the C parser.
114         * c-parser.c (c_parser_unary_expression):  Use the new function
115         parser_build_unary_op when appropriate.
116
117 2005-05-09  Mark Mitchell  <mark@codesourcery.com>
118
119         PR 18655
120         * dwarf2out.c (output_call_frame_info): Use DWARF2_FRAME_REG_OUT
121         before outputting DWARF_FRAME_RETURN_COLUMN.
122
123 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
124
125         * config/s390/s390.c: (s390_branch_condition_mask,
126         s390_branch_condition_mnemonic, s390_extra_constraint_str,
127         s390_const_ok_for_constraint_p, s390_expand_plus_operand,
128         legitimize_pic_address, s390_emit_tls_call_insn,
129         legitimize_tls_address, legitimize_tls_address,
130         s390_expand_addcc, print_shift_count_operand, print_operand,
131         addr_generation_dependency_p, annotate_constant_pool_refs,
132         s390_split_branches, find_constant_pool_ref,
133         replace_constant_pool_ref, s390_add_constant, s390_find_constant,
134         s390_find_execute, s390_mainpool_start, s390_chunkify_start,
135         s390_output_pool_entry, s390_function_value,
136         s390_call_saved_register_used, s390_emit_call): Replace
137         conditional aborts by gcc_assert and unconditional by gcc_unreachable.
138         (s390_select_ccmode, s390_match_ccmode_set, s390_extract_part,
139         s390_cannot_force_const_mem, s390_output_dwarf_dtprel,
140         get_some_local_dynamic_name, s390_function_arg_size,
141         s390_function_arg_advance, s390_function_arg,
142         s390_expand_builtin, s390_gen_rtx_const_DI): Replace abort in
143         default case by gcc_unreachable.
144         * config/s390/s390.md: ("*cjump_31", "*icjump_31", "*jump31"): Replace
145         conditional abort by gcc_assert.
146         ("doloop_si31"): Replace abort in last else by gcc_unreachable.
147         ("main_pool", "pool"): Replace unconditional abort by gcc_unreachable.
148
149 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
150
151         * config/s390/s390.c: (s390_decompose_address,
152         tls_symbolic_operand, legitimate_pic_operand_p,
153         legitimate_constant_p, legitimate_reload_constant_p,
154         s390_expand_plus_operand, legitimate_address_p,
155         legitimate_la_operand_p, ): Remove 'register' from signature.
156         (symbolic_reference_mentioned_p,
157         tls_symbolic_reference_mentioned_p): Remove 'register' from local
158         variable declarations.
159         (legitimize_address): Remove 'register' from
160         signature and local variable declarations.
161
162 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
163
164         * config/s390/s390-protos.h: (s390_match_ccmode,
165         s390_match_ccmode_set, reg_used_in_mem_p,
166         symbolic_reference_mentioned_p, tls_symbolic_reference_mentioned_p,
167         legitimate_la_operand_p, preferred_la_operand_p,
168         s390_short_displacement, addr_generation_dependency_p,
169         legitimate_reload_constant_p, legitimate_address_p): Change return type
170         into 'bool'.
171         (s390_tm_ccmode): Change type of parameter "mixed" into 'bool'. 
172         * config/s390/s390.c: (s390_match_ccmode,
173         symbolic_reference_mentioned_p, tls_symbolic_reference_mentioned_p,
174         legitimate_reload_constant_p): Change return type into 'bool'.
175         (preferred_la_operand_p,legitimate_la_operand_p, legitimate_address_p):
176         Likewise.  Additionally adapted comment.  
177         (s390_extra_constraint_p): Change Comment to reflect 'int' return type.
178         (s390_tm_ccmode): Change type of parameter "mixed" into 'bool'. 
179         (s390_decompose_address): Change the type of the internal flags
180         "pointer", "base_ptr", "indx_ptr", and the return value into 'bool'.
181         (struct s390_address): Change type of "pointer" into bool.
182         * config/s390/s390.md: ("*tmdi_reg", "*tmsi_reg", "tm<mode>_full"):
183         Adapt calls for 's390_tm_ccmode' to the new signature.
184
185 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
186
187         * config/s390/s390.c: (s390_match_ccmode_set,
188         s390_branch_condition_mnemonic, s390_short_displacement,
189         s390_decompose_address, get_thread_pointer, legitimize_tls_address,
190         print_shift_count_operand, get_some_local_dynamic_name,
191         get_some_local_dynamic_name_1, reg_used_in_mem_p,
192         addr_generation_dependency_p, s390_split_branches,
193         annotate_constant_pool_refs, find_constant_pool_ref,
194         replace_constant_pool_ref, find_ltrel_base, replace_ltrel_base,
195         s390_optimize_prologue, find_unused_clobbered_reg, s390_frame_area,
196         s390_register_info, s390_frame_info, s390_init_frame_layout,
197         s390_update_frame_layout, save_fpr, restore_fpr, save_gprs,
198         restore_gprs, s390_function_arg_size, s390_function_arg_float,
199         s390_init_machine_status, s390_assemble_integer, s390_handle_option,
200         s390_encode_section_info, s390_cannot_force_const_mem,
201         s390_delegitimize_address, s390_return_in_memory, s390_init_builtins,
202         s390_expand_builtin, s390_output_mi_thunk, s390_safe_attr_type,
203         s390_adjust_priority, s390_issue_rate,
204         s390_first_cycle_multipass_dfa_lookahead, s390_cannot_copy_insn_p,
205         s390_rtx_costs, s390_address_cost, s390_reorg, s390_valid_pointer_mode,
206         s390_build_builtin_va_list, s390_gimplify_va_arg,
207         s390_function_ok_for_sibcall, s390_call_saved_register_used,
208         s390_pass_by_reference, s390_fixed_condition_code_regs,
209         s390_cc_modes_compatible s390_mainpool_start,, s390_mainpool_finish,
210         s390_mainpool_cancel, s390_chunkify_start, s390_chunkify_finish,
211         s390_chunkify_cancel, s390_start_pool, s390_end_pool,
212         s390_add_pool_insn, s390_find_pool, s390_add_constant,
213         s390_find_constant, s390_add_execute, s390_find_execute,
214         s390_execute_label, s390_execute_target, s390_dump_pool,
215         s390_dump_execute, s390_alloc_pool, s390_free_pool): Remove prototypes. 
216         Move target macro definitions to the end of the file.  Move several
217         functions within the file to assure correct compiling.
218
219 2005-05-09  Steven Bosscher  <stevenb@suse.de>
220
221         * calls.c (purge_reg_equiv_notes): Remove, fold into...
222         (fixup_tail_calls): ...here.  Only look at insns between the
223         start of the function and the FUNCTION_BEG insn note.
224
225         * gcse.c (one_cprop_pass): Fix typos in dumps.
226
227         * tree-ssa-operands.h (FOR_EACH_PHI_ARG): Fix typos.
228
229 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
230
231         * config/s390/s390.h: Move xxx_REGNUM definitions to s390.md.
232         * config/s390/s390.md: ("SIBCALL_REGNUM", "BASE_REGNUM",
233         "RETURN_REGNUM", "CC_REGNUM", "TP_REGNUM"): New constants.
234         Replace every occurrence of '(reg:<MODE> 33)' by '(reg:<MODE>
235         CC_REGNUM)'.
236         ("get_tp_64", "get_tp_31", "set_tp_64", "set_tp_31"): Replace
237         '(reg:<MODE> 36)' by '(reg:<MODE> TP_REGNUM)'.
238         ("*sibcall_br", "*sibcall_value_br"): Replace '(reg:DI 1)' by '(reg:DI
239         REG_SC)'.
240
241 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
242
243         * config/s390/s390.md: ("gf") New mode attribute.
244         ("fixuns_truncdfdi2", "fixuns_truncdfsi2", "fixuns_truncsfdi2",
245         "fixuns_truncsfsi2"): Merge.
246         ("fix_truncdfdi2", "fix_truncsfdi2"): Merge.
247         ("fix_truncdfdi2_ieee", "fix_truncdfsi2_ieee", "fix_truncsfdi2_ieee",
248         "fix_truncsfsi2_ieee"): Merge.
249
250 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
251
252         * config/s390/s390.md: ("FPR") New mode macro.
253         ("de", "dee"): New mode attributes.
254         ("cmpdf", "cmpsf"): Merge.
255         ("*cmpdf_ccs_0", "*cmpsf_ccs_0"): Merge.
256         ("*cmpdf_ccs_0_ibm", "*cmpdf_ccs_0_ibm"): Merge.
257         ("*cmpdf_ccs", "*cmpsf_ccs"): Merge.
258         ("*cmpdf_ccs_ibm", "*cmpsf_ccs_ibm"): Merge.
259         ("floatdidf2", "floatdisf2"): Merge.
260         ("adddf3", "addsf3"): Merge.
261         ("*adddf3", "*addsf3"): Merge.
262         ("*adddf3_cc", "*addsf3_cc"): Merge.
263         ("*adddf3_cconly", "*addsf3_cconly"): Merge.
264         ("*adddf3_ibm", "*addsf3_ibm"): Merge.
265         ("subdf3", "subsf3"): Merge.
266         ("*subdf3", "*subsf3"): Merge.
267         ("*subdf3_cc", "*subsf3_cc"): Merge.
268         ("*subdf3_cconly", "*subsf3_cconly"): Merge.
269         ("*subdf3_ibm", "*subsf3_ibm"): Merge.
270         ("muldf3", "mulsf3"): Merge.
271         ("*muldf3", "*mulsf3" "): Merge.
272         ("*muldf3_ibm", "*mulsf3_ibm"): Merge.
273         ("*fmadddf", "*fmaddsf"): Merge.
274         ("*fmsubdf", "*fmsubsf"): Merge.
275         ("divdf3", "divsf3"): Merge.
276         ("*divdf3", "*divsf3"): Merge.
277         ("*divdf3_ibm", "*divsf3_ibm"): Merge.
278         ("negdf2", "negsf2"): Merge.
279         ("*negdf2_cc", "*negsf2_cc"): Merge.
280         ("*negdf2_cconly", "*negsf2_cconly"): Merge.
281         ("*negdf2", "*negsf2"): Merge.
282         ("*negdf2_ibm", "*negsf2_ibm"): Merge.
283         ("absdf2", "abssf2"): Merge.
284         ("*absdf2_cc", "*abssf2_cc"): Merge.
285         ("*absdf2_cconly", "*abssf2_cconly"): Merge.
286         ("*absdf2", "*abssf2"): Merge.
287         ("*absdf2_ibm", "*abssf2_ibm"): Merge.
288         ("*negabsdf2_cc", "*negabssf2_cc"): Merge.
289         ("*negabsdf2_cconly", "*negabssf2_cconly"): Merge.
290         ("*negabsdf2", "*negabssf2"): Merge.
291         ("sqrtdf2", "sqrtsf2"): Merge.
292
293 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
294
295         * config/s390/s390.c: (s390_adjust_priority): Adapt to changed 
296         attribute names.
297         * config/s390/2084.md: ("x_fsimpd", "x_fsimps", "x_fdivd", "x_fdivs",
298         "x_floadd", "x_floads", "x_fstored", "x_fstores"): Rename to
299         ("x_fsimpdf", "x_fsimpsf", "x_fdivdf", "x_fdivsf", "x_floaddf",
300         "x_floadsf", "x_fstoredf", "x_fstoresf") and replace 'type'
301         attribute names.
302         * config/s390/s390.md: ("type"): Rename "fsimpd, fsimps, floadd, floads,
303         fstored, fstores, fmuld, fmuls, fdivd, fdivs, fsqrtd, fsqrts" to
304         "fsimpdf, fsimpsf, floaddf, floadsf, fstoredf, fstoresf, fmuldf,
305         fmulsf, fdivdf, fdivsf, fsqrtdf, fsqrtsf".
306         ("*cmpdf_ccs_0", "*cmpdf_css_0_ibm", "*cmpdf_ccs",
307         "*cmpdf_ccs_ibm", "*cmpsf_ccs_0", "*cmpsf_css_0_ibm",
308         "*cmpsf_ccs", "*cmpsf_ccs_ibm", "*movdi_64", "*movdi_31",
309         "*movsi_zarch", "*movsi_esa", "*movdf_64", "*movdf_31", "movsf",
310         "*muldf3", "*muldf3_ibm", "*fmadddf", "*fmsubdf", "*mulsf3",
311         "mulsf3_ibm", "*fmaddsf", "fmsubsf", "*divdf3", "*divdf3_ibm",
312         "*negdf2_cc", "*negdf2_cconly", "*negdf2", "*negdf2_ibm",
313         "*negsf2_cc", "*negsf2_cconly", "*negsf2", "*absdf2_cc",
314         "*absdf2_cconly", "*absdf2", "*absdf2_ibm", "*abssf2_cc",
315         "*abssf2_cconly", "*abssf2", "*abssf2_ibm", "*negabsdf2_cc",
316         "*negabsdf2_cconly", "*negabsdf2", "*negabssf2_cc",
317         "*negabssf2_cconly", "*negabssf2", "sqrtdf2", "sqrtsf2"): Rename
318         'type' value.
319         ("*divsf3"): Additionally rename second pattern to
320         "*divsf3_ibm".
321         ("truncdfsf2_ibm", "extendsfdf2_ieee", "extendsfdf2_ibm",
322         "*adddf3", "*adddf3_cc", "*adddf3_cconly", "*adddf3_ibm",
323         "*addsf3", "*addsf3_cc", "*addsf3_cconly", "*subdf3",
324         "subdf3_cc", "*subdf3_cconly", "*subdf3_ibm", "*subsf3",
325         "subsf3_cc", "*subsf3_cconly", "*subsf3_ibm"): Merge identical
326         'type values' and rename 'type' value.
327         ("*addsf3"): Additionally rename second pattern to
328         "*addsf3_ibm".
329
330 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
331
332         * config/s390/s390.md: ("SHIFT"): New mode macro.
333         ("lr", "shift"): New mode attributes.
334         ("ashldi3", "lshrdi3"): Merge.
335         ("*ashldi3_31", "*lshrdi3"_31): Merge.
336         ("*ashldi3_64", "*lshrdi3"_64): Merge.
337         ("ashlsi3", "lshrsi3"): Merge.
338
339 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
340
341         * config/s390/s390.md: ("DSI", "SCOND"): New mode 
342         macros.
343         ("E", "g"): New mode attributes.
344         ("*adddi3_alc_cc", "*addsi3_alc_cc"): Merge.
345         ("*adddi3_alc", "*addsi3_alc"): Merge.
346         ("*subdi3_slb_cc", "*subsi3_slb_cc"): Merge.
347         ("*subdi3_slb", "*subsi3_slb"): Merge.
348         ("adddicc", "addsicc"): Merge.
349         ("*sconddi", "*scondsi"): Merge.
350         ("*sconddi_neg", "*scondsi_neg"): Merge.
351         ("sltu", "sgtu", "sleu", "sgeu"): Merge.
352         ("negdi2", "negsi2"): Extract expander pattern from
353         "negsi2" and merge with "negdi2".
354         ("*negdi2"): Merge with instruction pattern of "negsi2".
355         ("*negdi2_cc", "*negsi2_cc"): Merge.
356         ("*negdi2_cconly", "*negsi2_cconly"): Merge.
357         ("rotldi3", "rotlsi3"): Merge.
358
359 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
360
361         * config/s390/s390.md: ("hc"): New mode attribute.
362         ("extendhidi2", "extendqidi2"): Merge.
363         ("*extendhidi2", "*extendqidi2"): Merge.
364         ("extendhisi2", "extendqisi2"): Merge.
365         ("zero_extendhidi2", "zero_extendqidi2"): Merge.
366         ("*zero_extendhidi2", "*zero_extendqidi2"): Merge.
367         Merged 2 define_split.
368         ("*zero_extendhisi2", "*zero_extendqisi2"): Merge.
369         ("*zero_extendhisi2_64", "*zero_extendqisi2_64"): Merge.
370
371 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
372
373         * config/s390/s390.md: ("COMPARE"): New mode macro.
374         ("beq", "bne", "bgt", "bgtu", "blt", "bltu", "bge", "bgeu",
375         "ble", "bleu", "bunordered", "bordered", "buneq", "bunlt",
376         "bungt", "bunle", "bunge", "bltgt"): Merge.
377
378 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
379
380         * config/s390/s390.md: ("INT"): New mode macro.
381         ("one_cmpldi2", "one_cmplsi2", "one_cmplhi2", "one_cmplqi2"):
382         Merge.
383
384 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
385
386         * config/s390/s390.md: ("GPR", "P"): New mode macros.
387         ("cmpdi", "cmpsi"): Merge.
388         ("strlendi", "strlensi"): Merge.
389         ("*strlendi", "*strlensi"): Merge.
390         ("movmemdi", "movmemsi"): Merge.
391         ("clrmemdi", "clrmemsi"): Merge.
392
393 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
394
395         * config/s390/s390.md: ("HQI"): New mode macro.
396         ("icm_lo", "icm_hi", "max_uint"): New mode attributes.
397         ("*tmhi_full", "*tmqi_full"): Merge.
398         ("*tsthiCCT", "*tstqiCCT"): Merge.
399         ("*tsthi", "*tstqi"): Merge.
400         ("*tsthi_cconly", "tstqi_cconly"): Merge.
401         ("*sethighhisi", "*sethighqisi"): Merge.
402          
403 2005-05-09  Kazu Hirata  <kazu@cs.umass.edu>
404
405         * crtstuff.c, integrate.h, tree-scalar-evolution.h,
406         config/alpha/unicosmk.h, config/arc/arc.md,
407         config/arm/bpabi.h, config/arm/coff.h, config/arm/elf.h,
408         config/arm/ieee754-df.S, config/arm/ieee754-sf.S,
409         config/arm/netbsd.h, config/arm/pe.c, config/arm/pe.h,
410         config/arm/semi.h, config/arm/uclinux-elf.h,
411         config/arm/wince-pe.h, config/fr30/fr30.c,
412         config/rs6000/altivec.h: Update copyright.
413
414 2005-05-09  Nathan Sidwell  <nathan@codesourcery.com>
415
416         * config/pdp11/pdp11.c (pdp11_output_function_prologue): Use
417         gcc_assert and gcc_unreachable as appropriate.
418         (pdp11_output_function_epilogue, output_move_double,
419         output_move_quad, print_operand_address, output_jump,
420         output_addr_const_pdp11): Likewise.
421         * config/pdp11/pdp11.h (FUNCTION_PROFILER,
422         ASM_OUTPUT_ALIGN): Likewise.
423         * config/pdp11/pdp11.md: Likewise.
424         (extendhisi2, subhi3, subqi3): Likewise.
425
426 2005-05-09  David Edelsohn  <edelsohn@gnu.org>
427
428         PR middle-end/21237
429         * dojump.c (do_jump, MINUS_EXPR): Build NE_EXPR and fall through
430         to NE_EXPR case.
431
432 2005-05-09  Kazu Hirata  <kazu@cs.umass.edu>
433
434         * config/ia64/ia64.c: Fix a comment typo.
435
436 2005-05-09  Richard Earnshaw  <rearnsha@arm.com>
437
438         PR target/21397
439         * arm.c (ARM_OPT_SET_CPU, ARM_OPT_SET_ARCH, ARM_OPT_SET_TUNE): Define.
440         (arm_override_options): Use them instead of manifest constants.  Don't
441         allow -march to override the -mtune setting.
442
443 2005-05-09  Nathan Sidwell  <nathan@codesourcery.com>
444
445         * config/iq2000/iq2000.c (abort_with_insn): Use fancy_abort.
446         (gen_int_relational): Use gcc_unreachable and gcc_assert as necessary.
447         (function_arg_advance, function_arg, save_restore_insns,
448         iq2000_expand_prologue, iq2000_output_conditional_branch,
449         expand_one_builtin, print_operand):
450         * config/iq2000/iq2000.md (tablejump): Likewise.
451
452 2005-05-09  David Ung  <davidu@mips.com>
453
454         * config/mips/mips.h (processor_type): Add names for the 24K. 
455         * config/mips/mips.c (mips_cpu_info_table): Add names for the 24K
456         processor family.
457         * config/mips/mips.md (cnv_mode): New attribute for recording the
458         conversion types of float convert insns.
459         (cpu): Add 24k and 24kx.
460         (include): Include 24k.md file.
461         (truncdfsf2, extendsfdf2, fix_truncdfsi2_insn, fix_truncdfsi2_macro)
462         (fix_truncdfdi2, fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2)
463         (floatdisf2): Setup cnv_mode.
464         (fix_truncsfsi2_insn, fix_truncsfsi2_macro): Changed mode to SF and
465         setup cnv_mode.
466         * config/mips/24k.md: New file, contains 24k DFA pipeline
467         description. 
468
469 2005-05-09  Nathan Sidwell  <nathan@codesourcery.com>
470
471         * config/sh/sh.c (print_operand_address): Use gcc_assert and
472         gcc_unreachable as appropriate.
473         (print_operand, prepare_move_operands, prepare_scc_operands,
474         output_movedouble, output_branch, shift_insns_rtx, gen_shifty_op,
475         gen_shl_and, shl_sext_kind, gen_datalabel_ref, dump_table,
476         fixup_mova, gen_far_branch, sh_reorg, split_branches,
477         final_prescan_insn, output_stack_adjust, sh_expand_epilogue,
478         sh_set_return_address, sh_setup_incoming_varargs,
479         initial_elimination_offset, sh_pch_valid_p, get_free_reg,
480         sh_expand_builtin, sh_output_mi_thunk, extract_sfunc_addr,
481         check_use_sfunc_addr): Likewise.
482         * config/sh/netbsd-elf.h (FUNCTION_PROFILER): Likewise.
483         * config/sh/sh.h (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
484         * config/sh/symbian.c (sh_symbian_mark_dllexport,
485         sh_symbian_mark_dllimport): Likewise.
486         * config/sh/sh.md: Likewise.
487         (movdicc, call_pop, call_value_pop, casesi_worker_1,
488         casesi_worker_2, casesi_shift_media, casesi_load_media,
489         return_media): Likewise.
490
491 2005-05-08  Roger Sayle  <roger@eyesopen.com>
492
493         PR inline-asm/8788
494         * stmt.c (expand_asm_operands): Avoid calling force_reg on BLKmode
495         operands.
496
497 2005-05-08  Richard Henderson  <rth@redhat.com>
498
499         * config/alpha/alpha.c (adjust_address): Fix typo last change.
500
501 2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>
502
503         * config/m68hc11/m68hc11.h (REG_VALID_P): A regno must be >= 0
504         and -1 can happen in reg_renumber when no hard register is assigned.
505
506 2005-05-08  Steven Bosscher  <stevenb@suse.de>
507             Kazu Hirata  <kazu@cs.umass.edu>
508
509         PR tree-optimization/14841, tree-optimization/15838
510         * tree-ssa-ccp.c (fold_const_aggregate_ref): New.
511         (evaluate_stmt): Call it.
512
513 2005-05-08  Jakub Jelinek  <jakub@redhat.com>
514
515         * config/ia64/ia64.c (ia64_override_options): Don't set
516         ia64_flag_var_tracking and clear flag_var_tracking here...
517         (ia64_file_start): ... but here.
518
519 2005-05-08  Nathan Sidwell  <nathan@codesourcery.com>
520
521         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use gcc_assert
522         and gcc_unreachable as appropriate.
523         (expand_prologue, expand_epilogue, m68hc11_gen_lowpart,
524         m68hc11_gen_highpart, print_operand, print_operand_address,
525         m68hc11_expand_compare, m68hc11_expand_compare_and_branch,
526         m68hc11_gen_movhi): Likewise.
527         * config/m68hc11/m68hc11.h (HARD_X_REGNUM): Reword comment.
528         * config/m68hc11/m68hc11.md: Reword comment.
529
530 2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>
531
532         PR target/21281
533         * config/m68hc11/predicates.md (splitable_operand): An immediate is
534         allowed.
535
536 2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>
537
538         * config/m68hc11/predicates.md (reg_or_some_mem_operand): Do not allow
539         the 68HC12 address indirect addressing mode as it is not supported by
540         bset and bclr.
541         * config/m68hc11/m68hc11-protos.h
542         (m68hc11_valid_addressing_p): Declare.
543         (m68hc11_add_mode): Declare.
544         * config/m68hc11/m68hc11.c (m68hc11_valid_addressing_p): Rename from
545         register_indirect_p and export it.
546         (m68hc11_z_replacement): Use emit_insn_after when adding the save Z
547         instruction so that it is part of the good BB.
548         (m68hc11_gen_movhi): Fix invalid generation of indexed indirect
549         addressing with movw.
550         (m68hc11_gen_movqi): Use pula and pulb instead of lda and ldb for
551         68HC12.
552         * config/m68hc11/m68hc11.h (ADDR_STRICT, ADDR_INCDEC, ADDR_INDEXED,
553         ADDR_OFFSET, ADDR_INDIRECT, ADDR__CONST): Moved from m68hc11.c.
554         * config/m68hc11/m68hc11.md ("movhi_const0"): Use this pattern only
555         for 68HC11.
556         ("*movhi_68hc12"): Handle movhi_const0.
557         ("*subhi3", "subqi3"): Use general_operand for operand 1.
558         ("*subhi3_zext"): Likewise.
559
560 2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>
561
562         PR target/19051
563         * config/m68hc11/m68hc11.md ("mulqi3"): Use general_operand for
564         operand 1 and fix constraints.
565         ("mulqihi3"): Use general_operand for operand 2.
566
567 2005-05-08  Julian Brown  <julian@codesourcery.com>
568             H.J. Lu  <hongjiu.lu@intel.com>
569             Paul Brook  <paul@codesourcery.com>
570
571         * configure.ac: Set ld_vers_major, ld_vers_minor and ld_vers_patch for
572         GNU linker. Support linker version x.x.x.x.x. Require GNU linker
573         20050308/2.16.0 or newer for comdat group.
574         * configure: Regenerated.
575         * config.in: Regenerated.
576         * varasm.c (default_function_rodata_section): Put .rodata section in
577         COMDAT group when necessary.
578         (default_elf_asm_named_section): Rename HAVE_GAS_COMDAT_GROUP to
579         HAVE_COMDAT_GROUP.
580         (default_unique_section_1): Don't use .gnu.linkonce when COMDAT is
581         available.
582
583 2005-05-08  Kazu Hirata  <kazu@cs.umass.edu>
584
585         * tree-dfa.c (referenced_vars, add_referenced_var): Use VEC
586         instead of VARRAY.
587         * tree-flow.h (num_referenced_var, referenced_var): Likewise.
588         * tree-into-ssa.c (mark_def_site_blocks): Likewise.
589         * tree-ssa.c (init_tree_ssa, delete_tree_ssa): Likewise.
590         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
591
592 2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>
593
594         PR target/16925
595         * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Handle split of
596         64-bit constants on 64-bit hosts.
597         (m68hc11_split_logical): Simplify.
598         (m68hc11_split_move): Likewise.
599
600 2005-05-08  Nathan Sidwell  <nathan@codesourcery.com>
601             Paolo Bonzini  <bonzini@gnu.org>
602
603         * Makefile.in (cs-tconfig.h): Pass USED_FOR_TARGET to mkconfig.sh
604         * aclocal.m4 (GCC_TARGET_TEMPLATE, AH_TEMPLATE): New.
605         * configure.ac (enable_checking): Fix typos in runtime_checking.
606         (ENABLE_RUNTIME_CHECKING): Mark as target template.
607         (xm_file): Prepend auto-host.h
608         (HAVE_GAS_HIDDEN, HAVE_LD_EH_FRAME_HDR): Mark as target template.
609         * mkconfig.sh: Do not automatically define USED_FOR_TARGET in
610         tconfig.h.
611         * crtstuff.c: Do not include auto-host.h.
612         (IN_LIBGCC2): Do not define.
613         * gcov-io.h: Include tconfig.h, not auto-host.h.
614         * libgcc2.c: Do not include auto-host.h.
615         (abort): Do not undefine.
616         * libgcov.c: Remove unneeded comment about config.h.
617         * unwind-dw2-fde-glibc.c: Do not inlude auto-host.h.
618         * config.in, configure: Regenerated.
619         
620 2005-05-08  Nathan Sidwell  <nathan@codesourcery.com>
621             Falk Hueffner  <falk@debian.org>
622
623         * config/alpha/alpha.c (tls_symbolic_operand_1): Use gcc_assert
624         and gcc_unreachable as appropriate.
625         (get_aligned_mem, get_unaligned_address,
626         alpha_emit_set_long_const, alpha_emit_conditional_branch,
627         alpha_emit_setcc, alpha_emit_conditional_move,
628         alpha_lookup_xfloating_lib_func, alpha_compute_xfloating_mode_arg,
629         alpha_emit_xfloating_libcall, alpha_split_tfmode_pair,
630         alpha_expand_unaligned_load, alpha_expand_block_move,
631         alpha_expand_zap_mask, get_trap_mode_suffix,
632         get_round_mode_suffix, get_some_local_dynamic_name,
633         print_operand_address, function_arg, alpha_return_in_memory,
634         function_value, alpha_expand_builtin,
635         alpha_initial_elimination_offset, alpha_expand_epilogue,
636         summarize_insn, alpha_handle_trap_shadows, alphaev5_insn_pipe,
637         alphaev5_next_group, alpha_align_insns,
638         unicosmk_initial_elimination_offset, unicosmk_unique_section,
639         unicosmk_ssib_name): Likewise.
640         * config/alpha/alpha.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise.
641         * config/alpha/unicosmk.h (TRAMPOLINE_TEMPLATE,
642         ASM_OUTPUT_ADDR_DIFF_ELT, ASM_OUTPUT_ADDR_DIFF_VEC): Likewise.
643         * config/alpha/vms.h (INITIAL_ELIMINATION_OFFSET,
644         ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
645         * config/alpha/alpha.md (*divmodsi_internal_er,
646         *divmoddi_internal_er, ashldi3, *insxl, sibcall, call_osf,
647         call_nt, call_umk, call_vms, call_value, sibcall_value,
648         call_value_osf, call_value_nt, call_value_vms, call_value_umk,
649         *call_vms_1, *movmemdi_1, *clrmemdi_1, *call_value_vms_1): Likewise.
650         * config/alpha/predicates.md (input_operand): Likewise.
651
652 2005-05-08  Nathan Sidwell  <nathan@codesourcery.com>
653
654         * config/frv/frv.c (frv_default_flags_for_cpu): Use gcc_assert and
655         gcc_unreachable, as appropriate.
656         (frv_function_prologue, frv_alloc_temp_reg,
657         frv_initial_elimination_offset, frv_expand_block_move,
658         frv_expand_block_clear, frv_print_operand_jump_hint,
659         frv_legitimize_tls_address, unspec_got_name, frv_emit_move,
660         frv_emit_movsi, frv_split_cond_move, frv_split_minmax,
661         frv_ifcvt_modify_insn, frv_ifcvt_modify_final,
662         frv_adjust_field_align, frv_insn_unit, frv_cond_flags,
663         frv_sort_insn_group, frv_reorder_packet, frv_matching_accg_mode,
664         frv_in_small_data_p, frv_asm_out_constructor,
665         frv_asm_out_destructor, frv_output_dwarf_dtprel): Likewise.
666         * config/frv/frv.md (reload_incc_fp, *cond_exec_si_binary1,
667         *cond_exec_si_binary2, *cond_exec_si_divide, *cond_exec_si_unary1,
668         *cond_exec_sf_conv, *cond_exec_sf_add, call, sibcall, call_value,
669         sibcall_value, casesi): Likewise.
670
671         * config/mn10300/mn10300.c (print_operand): Use gcc_assert and
672         gcc_unreachable as appropriate.
673         (print_operand_address, mn10300_print_reg_list, expand_prologue,
674         expand_epilogue, notice_update_cc, initial_offset,
675         mn10300_address_cost_1): Likewise.
676         * config/mn10300/mn10300.md: Likewise.
677         (absdf2, abssf2, negdf2, negsf2): Likewise.
678
679 2005-05-08  Richard Sandiford  <rsandifo@redhat.com>
680
681         PR target/21416
682         * config/mips/mips.c (mips_emit_compare): Don't reverse UNGE and UNGT
683         comparisons.
684         * config/mips/mips.md (swapped_fcond): New code macro and attribute.
685         (sgt_<mode>, sge_<mode>): Generalize to all members of swapped_fcond,
686         including sunge_<mode> and sungt_<mode>.
687
688 2005-05-08  Richard Sandiford  <rsandifo@redhat.com>
689
690         * integrate.h (get_hard_reg_initial_val): Change type of register
691         parameter from int to unsigned int.
692         (has_hard_reg_initial_val): Likewise.
693         * integrate.c (get_hard_reg_initial_val): Likewise.
694         (has_hard_reg_initial_val): Likewise.  Remove cast to unsigned int.
695
696 2005-05-08  Kazu Hirata  <kazu@cs.umass.edu>
697
698         * except.c (eh_status): Change the type of ttype_data to
699         VEC(tree,gc)*.
700         (add_ttypes_entry, assign_filter_values,
701         output_function_exception_table): Use VEC instead of VARRAY.
702
703 2005-05-07  David Edelsohn  <edelsohn@gnu.org>
704
705         * config/rs6000/rs6000.md (popcount<mode>2): Fix non-C90 constant.
706
707 2005-05-07  Paul Brook  <paul@codesourcery.com>
708
709         * Makefile.in: Fix dependencies.
710         (GCOV_IO_H, VARRAY_H): Set.
711
712 2005-05-07  Anthony Green  <green@redhat.com>
713
714         PR bootstrap/21403
715         * configure.ac (STMP_FIXPROTO): Fix [ ] consumption problem in
716         x$STMP_FIXPROTO test.
717         * configure: Rebuilt.
718
719 2005-05-07  Joseph S. Myers  <joseph@codesourcery.com>
720
721         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Do not define
722         inappropriate feature test macros if flag_iso.
723
724 2005-05-07  Joseph S. Myers  <joseph@codesourcery.com>
725
726         * config/ia64/hpux.h (NO_IMPLICIT_EXTERN_C): Define.
727
728 2005-05-07  Hans-Peter Nilsson  <hp@axis.com>
729
730         PR target/21441
731         * config/cris/cris.md ("*movdi_insn", "*mov_sidesisf_biap")
732         ("*mov_sidesisf", "*mov_sidesisf_biap_mem", "*mov_sidesisf_mem"):
733         Handle moved operand being in special register.
734         ("smulsi3_highpart", "umulsi3_highpart"): Change .error into
735         presumed working insn.
736         (mover2side): Add FIXME.
737
738 2005-05-07  Richard Sandiford  <rsandifo@redhat.com>
739
740         * integrate.c (get_func_hard_reg_initial_val): Delete.
741         (has_func_hard_reg_initial_val): Delete.
742         (get_hard_reg_initial_val): Inline the old implementation of
743         get_func_hard_reg_initial_val.  Use has_hard_reg_initial_val
744         instead of has_func_hard_reg_initial_val to test for an existing
745         pseudo.  Only create an rtx if a new initial value entry is needed.
746         (has_hard_reg_initial_val): Scan the initial value list directly.
747         Don't create an rtx.
748
749 2005-05-07  David Edelsohn  <edelsohn@gnu.org>
750
751         * config.gcc ({powerpc,rs6000}-ibm-aix*): Remove rs6000/aix.opt
752         from extra_options.
753         * config.in (HAVE_AS_POPCNTB): New.
754         * configure.ac (HAVE_AS_MFCRF): Add .machine "pwr5" to AIX test.
755         (HAVE_AS_POPCNTB): New.
756         * configure: Regenerated.
757         * config/rs6000/aix.h (TARGET_XL_COMPAT): Delete.
758         * config/rs6000/rs6000.c (rs6000_override_options, power5): Add
759         MASK_POPCNTB.  Uncomment rs6000_sched_restricted_insns_priority
760         and rs6000_sched_costly_dep.
761         * config/rs6000/rs6000.h (TARGET_POPCNTB): New.
762         (TARGET_XL_COMPAT): Delete.
763         * config/rs6000/rs6000.md (UNSPEC_POPCNTB): New.
764         (popcount<mode>2): New.
765         (popcntb<mode>2): New.
766         * config/rs6000/rs6000.opt (mpopcntb): New.
767
768         * opt-functions.awk (var_set): Emit OPTION_MASK_ for InverseMask
769         if variable name exists.
770
771 2005-05-07  Matt Kraai  <kraai@ftbfs.org>
772
773         * Makefile.in (c-gimplify.o): Depend on $(RTL_H) instead of rtl.h.
774
775 2005-05-07  Richard Henderson  <rth@redhat.com>
776
777         PR target/21412
778         * config/rs6000/rs6000.c (rs6000_emit_move): Look for tls addresses
779         with constant offsets.
780
781 2005-05-07  Nathan Sidwell  <nathan@codesourcery.com>
782
783         * config/v850/v850.c (print_operand): Use gcc_assert and
784         gcc_unreachable, as appropriate.
785         (print_operand_address, v850_handle_data_area_attribute,
786         v850_encode_data_area, construct_restore_jr, construct_save_jarl,
787         v850_insert_attributes, construct_prepare_instruction): Likewise.
788         * config/v850/v850.h (INITIAL_ELIMINATION_OFFSET): Likewise.
789         * config/v850/v850.md (movsicc, *sasf_1): Likewise.
790
791 2005-05-07  Kazu Hirata  <kazu@cs.umass.edu>
792
793         * tree-ssa-loop-ivcanon.c, config/i386/i386.c,
794         config/rs6000/rs6000.h: Fix comment typos.
795
796 2005-05-07  Richard Sandiford  <rsandifo@redhat.com>
797
798         * doc/invoke.texi: Remove documentation for MIPS' -mint64 option.
799         * config/mips/mips.c (TARGET_SCALAR_MODE_SUPPORTED_P): Delete.
800         (mips_scalar_mode_supported_p): Delete.
801
802 2005-05-06  Eric Christopher  <echristo@redhat.com>
803
804         * config/mips/mips.opt: Remove -mint64 option.
805         * config/mips/mips.c (override_options): Remove -mint64
806         handling.
807         * config/mips/mips.h (INT_TYPE_SIZE): Define to 32.
808         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Remove
809         64-bit integer handling.
810         * doc/invoke.texi (Option Summary): Remove -mint64 for
811         mips.
812
813 2005-05-06  Zdenek Dvorak  <dvorakz@suse.cz>
814
815         PR tree-optimization/19401
816         * tree-flow.h (tree_unroll_loops_completely): Declaration changed.
817         * tree-ssa-loop-ivcanon.c (enum unroll_level): New.
818         (estimated_unrolled_size): New function.
819         (try_unroll_loop_completely, canonicalize_loop_induction_variables,
820         tree_unroll_loops_completely): Always unroll loops if the code size
821         does not increase.
822         * tree-ssa-loop.c (tree_complete_unroll): Indicate whether all
823         loops should be unrolled completely.
824         (gate_tree_complete_unroll): Run complete unrolling unconditionally.
825
826 2005-05-06  Zdenek Dvorak  <dvorakz@suse.cz>
827
828         PR rtl-optimization/21254
829         * loop-iv.c (iv_number_of_iterations): Simplify infiniteness
830         assumptions for loops that otherwise do not roll.
831         (find_simple_exit): Prefer # of iterations that is guaranteed
832         not to be infinite.
833         * loop-unroll.c (decide_peel_once_rolling,
834         decide_peel_completely): Check whether the loop is infinite.
835
836 2005-05-06  Pat Haugen  <pthaugen@us.ibm.com>
837
838         * config/rs6000/sysv4.opt: Fix typo.
839
840 2005-05-06  Denis Vlasenko  <vda@port.imtp.ilyichevsk.odessa.ua>
841             Jakub Jelinek  <jakub@redhat.com>
842
843         PR target/21329
844         * config/i386/i386.c (ix86_expand_movmem): Don't use rep; movsb
845         for -Os if (movsl;)*(movsw;)?(movsb;)? sequence is shorter.
846         Don't use rep; movs{l,q} if the repetition count is really small,
847         instead use a sequence of movs{l,q} instructions.
848
849 2005-05-06  Jeff Law  <law@redhat.com>
850
851         PR tree-optimization/21380
852         * tree-ssa-threadupdate.c (thread_through_all_blocks): Do not
853         thread through a block with no preds.
854
855 2005-05-06  Kazu Hirata  <kazu@cs.umass.edu>
856
857         * tree-ssa-operands.c (clobbered_v_may_defs, clobbered_vuses,
858         ro_call_vuse, fini_ssa_operands, add_call_clobber_ops,
859         add_call_read_ops): Use VEC instead of VARRAY.
860
861 2005-05-06  Nathan Sidwell  <nathan@codesourcery.com>
862
863         * config/mcore/mcore.c (mcore_print_operand_address): Use
864         gcc_assert and gcc_unreachable as appropriate.
865         (mcore_print_operand, mcore_gen_compare_reg, mcore_output_call,
866         mcore_output_andn, output_inline_const, mcore_output_move,
867         mcore_output_movedouble, mcore_expand_block_move,
868         layout_mcore_frame, mcore_initial_elimination_offset,
869         mcore_expand_prolog, mcore_mark_dllexport,
870         mcore_mark_dllimport): Likewise.
871         * config/mcore/mcore.h (switch_to_section): Likewise.
872         * config/mcore/mcore.md: Likewise.
873
874 2005-05-06  Aldy Hernandez  <aldyh@redhat.com>
875
876         * config/rs6000/linux64.h: Remove MASK_PROFILE_KERNEL, and
877         TARGET_PROFILE_KERNEL.
878
879         * config/rs6000/rs6000.c (output_profile_hook): Add comment to
880         TARGET_PROFILE_KERNEL use.
881
882 2005-05-06  Nathan Sidwell  <nathan@codesourcery.com>
883
884         * config/m32r/m32r.c (m32r_encode_section_info): Use gcc_assert
885         and gcc_unreachable, as appropriate.
886         (gen_compare, gen_split_move_double, m32r_setup_incoming_varargs,
887         m32r_expand_prologue, m32r_output_function_epilogue,
888         m32r_legitimize_pic_address, m32r_print_operand_address,
889         emit_cond_move, m32r_function_symbol,
890         m32r_output_block_move): Likewise.
891         * config/m32r/m32r.h (INITIAL_ELIMINATION_OFFSET): Likewise.
892         * config/m32r/m32r.md ( *movsi_insn, *zero_branch_insn,
893         *rev_zero_branch_insn): Likewise.
894         
895 2005-05-06  Jakub Jelinek  <jakub@redhat.com>
896
897         PR c++/20961
898         * varasm.c (merge_weak): Remove NEWDECL from WEAK_DECLS chain
899         if both NEWDECL and OLDDECL are already weak.
900
901 2005-05-06  Richard Sandiford  <rsandifo@redhat.com>
902
903         * config/rs6000/sysv4.h (EXTRA_SUBTARGET_SWITCHES): Delete.
904
905 2005-05-05  J"orn Rennecke  <joern.rennecke@st.com>
906             Kaz Kojima  <kkojima@gcc.gnu.org>
907
908         * config/sh/sh.c (sh_builtin_saveregs): Use copy_to_mode_reg
909         and plus_constant.
910
911 2005-05-05  Aldy Hernandez  <aldyh@redhat.com>
912             David Edelsohn  <edelsohn@gnu.org>
913
914         * config.gcc: Add .opt magic for the rs6000 ports.
915
916         * doc/invoke.texi: Document -mabi= option properly.  Document
917         -misel and -mno-sel.  Document -mspe and -mno-spe.  Document
918         -mvrsave and -mno-vrsave.  Document deprecation of -mspe= and
919         -misel=.
920
921         * config/rs6000/aix.h: Remove XL_COMPAT stuff.  Remove
922         SUBTARGET_SWITCHES and SUBSUBTARGET_SWITCHES.  Define
923         TARGET_XL_COMPAT.
924
925         * config/rs6000/aix.opt: New.
926         * config/rs6000/aix41.opt: New.
927         * config/rs6000/aix64.opt: New.
928         * config/rs6000/darwin.opt: New.
929         * config/rs6000/linux64.opt: New.
930         * config/rs6000/rs6000.opt: New.
931         * config/rs6000/sysv4.opt: New.
932
933         * config/rs6000/sysv4.h: Delete definitions of MASK_* and
934         associated TARGET_*.  Remove SUBTARGET_OPTIONS,
935         SUBTARGET_SWITCHES.
936         Define TARGET_USES_SYSV4_OPT.
937         * config/rs6000/aix41.h: Remove SUBSUBTARGET_SWITCHES.
938         * config/rs6000/aix43.h: Remove SUBSUBTARGET_SWITCHES.  Define
939         TARGET_USES_AIX64_OPT.
940         * config/rs6000/aix51.h: Same.
941         * config/rs6000/aix52.h: Same.
942         * config/rs6000/darwin.h: Remove SUBTARGET_SWITCHES,
943         MASK_MACHO_DYNAMIC_NO_PIC, TARGET_MACHO_DYNAMIC_NO_PIC.
944         Use TARGET_ALTIVEC_VRSAVE instead of rs6000_altivec_vrsave.
945         Define TARGET_DYNAMIC_NO_PIC as TARGET_MACHO_DYNAMIC_NO_PIC.
946         * config/rs6000/linux64.h: Use
947         rs6000_explicit_options.  Remove EXTRA_SUBTARGET_SWITCHES.
948
949         * config/rs6000/rs6000.c: Remove definitions of
950         rs6000_sched_restricted_insns_priority,
951         rs6000_long_double_size_string, rs6000_altivec_vrsave,
952         rs6000_altivec_vrsave_string, rs6000_isel, rs6000_spe,
953         rs6000_float_gprs_string, rs6000_isel_string, rs6000_spe_string,
954         rs6000_abi_string, rs6000_warn_altivec_long, rs6000_longcall,
955         rs6000_alignment_string.  Define rs6000_explicit_options.
956         (rs6000_parse_abi_options): Remove.
957         (rs6000_parse_alignment_option): Remove.
958         (rs6000_parse_float_gprs_option): Remove.
959         (rs6000_handle_option): New.  Define TARGET_HANDLE_OPTION.  Define
960         TARGET_DEFAULT_TARGET_FLAGS.
961         (rs6000_override_options): Revamp to use new .opt machinery.
962
963         * config/rs6000/rs6000.h: Remove old MASK_* and TARGET_* in favor
964         of new .opt machinery.  Remove target_flags.  Redefine
965         TARGET_MFCRF and TARGET_POWERPC64.  Remove TARGET_SWITCHES,
966         SUBTARGET_SWITCHES, TARGET_OPTIONS, SUBTARGET_OPTIONS,
967         rs6000_float_gprs_string, rs6000_isel_string, rs6000_spe_string,
968         rs6000_altivec_vrsave_string, rs6000_altivec_vrsave,
969         rs6000_longcall_switch, rs6000_default_long_calls,
970         rs6000_sched_costly_dep_str, rs6000_sched_costly_dep,
971         rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch, and
972         TARGET_ALTIVEC_VRSAVE.
973
974 2005-05-05  Ralf Corsepius  <ralf.corsepius@rtems.org>
975
976         * config.gcc (hppa1.1-*-rtems*): Remove.
977         * config/pa/rtems.h: Remove.
978
979 2005-05-05  Ralf Corsepius  <ralf.corsepius@rtems.org>
980
981         * config/rs6000/t-rtems (MULTILIB_NEW_EXCEPTIONS_ONLY):
982         Exclude roe/603e multilib variants.
983
984 2005-05-04  Denis Chertykov  <denisc@overta.ru>
985
986         PR target/21284
987         * config/avr/avr.c (avr_output_addr_vec_elt): Use special section
988         for output.
989
990 2005-05-05  Richard Sandiford  <rsandifo@redhat.com>
991
992         * config.gcc (arm*-wince-pe*, arm-*-pe*, strongarm-*-pe): Add
993         arm/pe.opt to $extra_options.
994         * config/arm/arm.h (target_flags, target_fpu_name, target_fpe_name)
995         (target_float_abi_name, target_float_switch, target_abi_name)
996         (ARM_FLAG_APCS_FRAME, ARM_FLAG_POKE, ARM_FLAG_FPE, ARM_FLAG_APCS_STACK)
997         (ARM_FLAG_APCS_FLOAT, ARM_FLAG_APCS_REENT, ARM_FLAG_BIG_END)
998         (ARM_FLAG_INTERWORK, ARM_FLAG_LITTLE_WORDS, ARM_FLAG_NO_SCHED_PRO)
999         (ARM_FLAG_ABORT_NORETURN, ARM_FLAG_SINGLE_PIC_BASE)
1000         (ARM_FLAG_LONG_CALLS, ARM_FLAG_THUMB, THUMB_FLAG_BACKTRACE)
1001         (THUMB_FLAG_LEAF_BACKTRACE, THUMB_FLAG_CALLEE_SUPER_INTERWORKING)
1002         (THUMB_FLAG_CALLER_SUPER_INTERWORKING, CIRRUS_FIX_INVALID_INSNS)
1003         (TARGET_APCS_FRAME, TARGET_POKE_FUNCTION_NAME, TARGET_FPE)
1004         (TARGET_APCS_STACK, TARGET_APCS_FLOAT, TARGET_APCS_REENT)
1005         (TARGET_BIG_END, TARGET_INTERWORK, TARGET_LITTLE_WORDS)
1006         (TARGET_NO_SCHED_PRO, TARGET_ABORT_NORETURN, TARGET_SINGLE_PIC_BASE)
1007         (TARGET_LONG_CALLS, TARGET_THUMB, TARGET_CALLER_INTERWORKING)
1008         (TARGET_CIRRUS_FIX_INVALID_INSNS, SUBTARGET_SWITCHES, TARGET_SWITCHES)
1009         (TARGET_OPTIONS, arm_cpu_select, arm_select,  structure_size_string)
1010         (arm_pic_register_string): Delete.
1011         (TARGET_BACKTRACE): Redefine using TARGET_TPCS_LEAF_FRAME and
1012         TARGET_TPCS_FRAME.
1013         (TARGET_DEFAULT, CONDITIONAL_REGISTER_USAGE): Update mask names.
1014         * config/arm/coff.h (TARGET_DEFAULT): Likewise.
1015         * config/arm/elf.h (TARGET_DEFAULT): Likewise.
1016         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Likewise.
1017         * config/arm/netbsd.h (TARGET_DEFAULT): Likewise.
1018         * config/arm/semi.h (TARGET_DEFAULT): Likewise.
1019         * config/arm/uclinux-elf.h (TARGET_DEFAULT): Likewise.
1020         * config/arm/wince-pe.h (TARGET_DEFAULT): Likewise.
1021         * config/arm/pe.h (TARGET_DEFAULT): Likewise.
1022         (TARGET_FLAG_NOP_FUN, TARGET_NOP_FUN_DLLIMPORT): Delete.
1023         (SUBTARGET_SWITCHES): Delete.
1024         * config/arm/arm.c (target_float_switch): Delete.
1025         (arm_cpu_select): Moved from config/arm/arm.h.
1026         (target_fpu_name, target_fpe_name, target_float_abi_name)
1027         (target_abi_name, structure_size_string, arm_pic_register_string)
1028         (arm_select): Make static.
1029         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
1030         (arm_handle_option): New function.
1031         (arm_override_options): Update target_flags checks for new mask names.
1032         Remove target_float_switch code.
1033         (arm_expand_prologue, thumb_expand_prologue): Check
1034         !TARGET_SCHED_PROLOG instead of TARGET_NO_SCHED_PRO.
1035         * config/arm/arm.opt, config/arm/pe.opt: New files.
1036
1037 2005-05-05  Nathan Sidwell  <nathan@codesourcery.com>
1038
1039         * config/arc/arc.c (get_arc_condition_code): Use gcc_assert &
1040         gcc_unreachable as appropriate.
1041         (arc_double_limm_p, arc_setup_incoming_varargs,
1042         arc_compute_function_type, arc_output_function_prologue,
1043         arc_output_function_epilogue, arc_eligible_for_epilogue_delay,
1044         output_shift, arc_print_operand, arc_print_operand_address,
1045         arc_final_prescan_insn): Likewise.
1046         * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
1047
1048 2005-05-04  Geoffrey Keating  <geoffk@apple.com>
1049
1050         * config/rs6000/rs6000.md (P): Use TARGET_*BIT rather than
1051         comparing Pmode.
1052         (SDI): New.
1053         (cmp): Delete.
1054         (wd): New.
1055         (add<mode>3, add<mode>3_internal1, add<mode>3_internal2,
1056         add<mode>3_internal3, one_cmpl<mode>2, sub<mode>3, neg<mode>2,
1057         clz<mode>2, ctz<mode>2, ffs<mode>2): New.
1058         (addsi3, addsi3_internal1, addsi3_internal2, addsi3_internal3,
1059         (one_cmplsi2, subsi3, negsi2, clzsi2, ctzsi2, ffssi2): Remove.
1060         (adddi3, adddi3_internal1, adddi3_internal2, adddi3_internal3,
1061         (one_cmpldi2, subdi3, negdi2, clzdi2, ctzdi2, ffsdi2): Remove.
1062         (sync_compare_and_swap<mode>): Use <wd> rather than <cmp>.
1063
1064 2005-05-05  Paul Brook  <paul@codesourcery.com>
1065
1066         * Makefile.in: Replace dependencies on basic-block.h, c-pragma.h,
1067         cfgloop.h, diagnostic.h, insn-attr.h, langhooks-def.h, params.h,
1068         regs.h, system.h, tree-dump.h, tree-gimple.h, tree-scalar-evolution.h
1069         and tree-data-ref.h with *_H variables.
1070
1071 2005-05-05  Kelley Cook  <kcook@gcc.gnu.org>
1072
1073         * config/m32r/xm-m32r.h, config/m32r/xm-linux.h: Delete files.
1074
1075 2005-05-05  Kelley Cook  <kcook@gcc.gnu.org>
1076
1077         * system.h: Poison BYTEORDER and HOST_WORDS_BIG_ENDIAN.
1078
1079 2005-05-04  Gerald Pfeifer  <gerald@pfeifer.com>
1080
1081         * doc/contrib.texi (Contributors): Add Mostafa Hagog and Ayal Zaks.
1082
1083 2005-05-04 Fariborz Jahanian <fjahanian@apple.com>
1084
1085         * config/rs6000/rs6000.c (rs6000_emit_prologue): Emit
1086         setting of vrsave register for current function after
1087         call to save_world is emitted.
1088
1089 2005-05-05  Hans-Peter Nilsson  <hp@bitrange.com>
1090
1091         * config/mmix/predicates.md: New file.
1092         * config/mmix/mmix.c (mmix_symbolic_or_address_operand)
1093         (mmix_reg_or_constant_operand, mmix_reg_cc_operand)
1094         (mmix_foldable_comparison_operator, mmix_comparison_operator)
1095         (mmix_reg_or_0_operand, mmix_reg_or_8bit_operand): Remove.
1096         * config/mmix/mmix.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES):
1097         Don't define.
1098         * config/mmix/mmix.md: Include predicates.md.
1099         ("call", "call_value"): Force address to register if it isn't a
1100         mmix_symbolic_or_address_operand.
1101
1102 2005-05-04  Andrew MacLeod  <amacleod@redhat.com>
1103
1104         * tree-flow-inline.h (op_iter_init_use, op_iter_init_def): Assert that
1105         the flags are of appropriate types.
1106         (num_ssa_operands): Generalize using the generic interface.
1107         * tree-ssa-dce.c (remove_dead_stmt): Don't ask for kills on a DEF
1108         iterator.
1109
1110 2005-05-04  Richard Sandiford  <rsandifo@redhat.com>
1111
1112         * protoize.c (version_flag, quiet_flag, nochange_flag, nosave_flag)
1113         (keep_flag, local_flag, global_flag, cplusplus_flag): Make extern.
1114
1115 2005-05-04  Kazu Hirata  <kazu@cs.umass.edu>
1116
1117         * tree-outof-ssa.c (edge_leader, stmt_list,
1118         analyze_edges_for_bb): Use VEC instead of VARRAY.
1119         (init_analayze_edges_for_bb, fini_analayze_edges_for_bb): New.
1120         (perform_edge_inserts): Call init_analayze_edges_for_bb and
1121         fini_analayze_edges_for_bb.
1122
1123 2005-05-04  James E Wilson  <wilson@specifixinc.com>
1124
1125         PR driver/21112
1126         * gcc.c (process_command): In the second argv scan loop, ignore
1127         Xassembler and Xpreprocessor, along with their argument.
1128
1129 2005-05-04  Kazu Hirata  <kazu@cs.umass.edu>
1130
1131         * tree-flow-inline.h, tree-ssa-operands.c,
1132         tree-ssa-operands.h, tree-ssa-opfinalize.h:
1133         Likewise. tree-vn.c: Fix comment typos.
1134         * doc/passes.texi, doc/tree-ssa.texi: Fix typos.
1135
1136 2005-05-04  Paolo Bonzini  <bonzini@gnu.org>
1137
1138         * doc/tm.texi (Target Hooks): Document
1139         TARGET_RESOLVE_OVERLOADED_BUILTIN.
1140
1141 2005-05-04  Paul Brook  <paul@codesourcery.com>
1142
1143         * Makefile.in: Change dependencies on target.h to $(TARGET_H).
1144
1145 2005-05-04  Kazu Hirata  <kazu@cs.umass.edu>
1146
1147         * dwarf2out.c (incomplete_types, retry_incomplete_types,
1148         gen_struct_or_union_type_die, dwarf2out_init): Use VEC instead
1149         of VARRAY.
1150
1151         * loop-unroll.c (var_to_expand, analyze_insn_to_expand_var,
1152         get_expansion, expand_var_during_unrolling,
1153         insert_var_expansion_initialization,
1154         combine_var_copies_in_loop_exit, release_var_copies): Use VEC
1155         instead of VARRAY.
1156
1157         * tree-ssa-loop-ivopts.c (rewrite_address_base): Don't call
1158         update_stmt.
1159
1160 2004-05-03  Andrew Pinski  <pinskia@physics.uc.edu>
1161
1162         PR middle-end/15618
1163         * fold-const.c (fold_widened_comparison): Treat BOOLEAN_TYPE
1164         the same as INTEGER_TYPE.
1165         (fold_binary): Fold "bool_var != 0" to bool_var.
1166         Fold "bool_var == 1" to bool_var.
1167
1168 2004-05-03  Richard Henderson  <rth@redhat.com>
1169
1170         PR middle-end/21318
1171         * function.c (instantiate_virtual_regs_in_insn): Use the mode
1172         from recog_data instead of insn_data.
1173
1174 2005-05-03  DJ Delorie  <dj@redhat.com>
1175
1176         * common.opt (fdiagnostics-show-option): No variable is needed.
1177         * diagnostic.h (diagnostic_context): Add show_option_requested flag.
1178         * diagnostic.c (diagnostic_initialize): Initialize show_option_requested.
1179         (diagnostic_report_diagnostic): Test for enabled diagnostics here.
1180         Save and restore original message format.  Use flag in context
1181         instead of global.
1182         (warning): Don't test for enabled warnings here.
1183         * opts.c (common_handle_option): Handle -fdiagnostics-show-option
1184         here.
1185
1186 2005-05-04  Kelley Cook  <kcook@gcc.gnu.org>
1187
1188         * config/m32r/xm-m32r.h: Don't define HOST_WORDS_BIG_ENDIAN.
1189         * config/m32r/xm-linux.h: Don't undefine HOST_WORDS_BIG_ENDIAN.
1190         * mips-tfile.c: Use WORDS_BIG_ENDIAN instead of HOST_WORDS_BIG_ENDIAN.
1191         * aclocal.m4: Don't include accross.m4.
1192         * configure.ac: Use AC_C_BIGENDIAN instead of AC_C_BIGENDIAN_CROSS.
1193         Use AC_CHECK_SIZEOF instead of AC_COMPILE_CHECK_SIZEOF.
1194         * configure, config.in: Regenerate.
1195         
1196 2005-05-04  Jakub Jelinek  <jakub@redhat.com>
1197
1198         PR middle-end/21265
1199         * expr.h (enum block_op_methods): Add BLOCK_OP_TAILCALL.
1200         (clear_storage): Add argument.
1201         * expr.c (emit_block_move_via_libcall, clear_storage_via_libcall):
1202         Add tailcall argument, set CALL_EXPR_TAILCALL of the CALL_EXPR to
1203         tailcall.
1204         (emit_block_move): Handle BLOCK_OP_TAILCALL method.
1205         (clear_storage): Add method argument, handle BLOCK_OP_TAILCALL.
1206         (store_expr, store_constructor): Adjust callers.
1207         * builtins.c (expand_builtin_memcpy): Pass BLOCK_OP_TAILCALL
1208         to emit_block_move if CALL_EXPR_TAILCALL (exp).
1209         (expand_builtin_memmove): Add ORIG_EXP argument, copy
1210         CALL_EXPR_TAILCALL from ORIG_EXP to the new CALL_EXPR.
1211         (expand_builtin_bcopy): Replace ARGLIST and TYPE arguments
1212         with EXP.  Pass EXP to expand_builtin_memmove.
1213         (expand_builtin_memset): Add ORIG_EXP argument, pass
1214         BLOCK_OP_TAILCALL to clear_storage if CALL_EXPR_TAILCALL (orig_exp).
1215         (expand_builtin_bzero): Replace ARGLIST argument with EXP.
1216         Pass EXP to expand_builtin_memset.
1217         (expand_builtin_strcmp): Copy CALL_EXPR_TAILCALL from EXP to
1218         the new CALL_EXPR.
1219         (expand_builtin_strncmp): Likewise.
1220         (expand_builtin_printf): Replace ARGLIST argument with EXP.
1221         Copy CALL_EXPR_TAILCALL from EXP to the new CALL_EXPR.
1222         (expand_builtin_fprintf): Likewise.
1223         (expand_builtin): Adjust calls to
1224         expand_builtin_{memmove,bcopy,memset,bzero,{,f}printf}.
1225
1226         * config/i386/i386.c (ix86_expand_vector_set): Fix setting 3rd and 4th
1227         item in V4SF mode.
1228
1229         PR rtl-optimization/21239
1230         * combine.c (combine_simplify_rtx) <case VEC_SELECT>: Fix a typo.
1231
1232 2005-05-03  Kazu Hirata  <kazu@cs.umass.edu>
1233
1234         * tree-flow.h (tree_ann_common_d): Move aux to ...
1235         (stmt_ann_d): ... here.
1236         * tree-ssa-loop-im.c (LIM_DATA, determine_invariantness_stmt,
1237         move_computations_stmt, schedule_sm): Update references to
1238         aux.
1239         * tree-vectorizer.h (set_stmt_info, vinfo_for_stmt): Likewise.
1240
1241         * tree-cfg.c (remove_bb): Remove a redundant call to
1242         set_bb_for_stmt.
1243         * tree-if-conv.c (replace_phi_with_cond_modify_expr):
1244         Likewise.
1245
1246 2005-05-03  Richard Henderson  <rth@redhat.com>
1247
1248         * config/rs6000/rs6000.c: Remove conflict markers.
1249
1250         * cfg.c (dump_flow_info): Use max_reg_num, not max_regno.
1251
1252 2005-05-03  James E Wilson  <wilson@specifixinc.com>
1253
1254         * dwarf2out.c (lookup_filename): Call maybe_emit_file.
1255
1256 2005-05-03  DJ Delorie  <dj@redhat.com>
1257
1258         * c-decl.c (store_parm_decls_oldstyle): Let diagnostic machinery
1259         decide if the warning will be printed.
1260         * calls.c (expand_call): Likewise.
1261         * function.c (init-function_start): Likewise.
1262
1263         * common.opt (-fdiagnostics-show-option): New.
1264         * opts.c (option_enabled): Accept the option index instead of a
1265         pointer to the option descriptor.
1266         * opts.h (option_enabled): Likewise.
1267         * toplev.c (print_switch_values): Pass option index, not option
1268         descriptor.
1269         * diagnostic.h (diagnostic_info): Add option_index.
1270         * diagnostic.c: Include opts.h.
1271         (diagnostic_set_info): Initialize option_index.
1272         (diagnostic_report_diagnostic): Amend option name if appropriate.
1273         (warning): Check to see if the specified warning is enabled.
1274         Store option index.
1275         * doc/invoke.texi (-fdiagnostics-show-options): Document.
1276
1277 2005-05-03  Richard Henderson  <rth@redhat.com>
1278
1279         * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Fix ALL_REGS and
1280         SPEC_OR_GEN_REGS definitions.
1281
1282 2005-05-03  Alexandre Oliva  <aoliva@redhat.com>
1283
1284         PR target/16888
1285         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Clear reg names
1286         for unavailable registers.
1287
1288 2005-05-03  Kazu Hirata  <kazu@cs.umass.edu>
1289
1290         * tree-cfg.c (tree_forwarder_block_p): Fix a typo.
1291
1292         * cfglayout.c (block_locators_blocks,
1293         insn_locators_initialize, insn_scope): Use VEC instead of
1294         VARRAY.
1295
1296         * tree-mudflap.c (deferred_static_decls, mudflap_enqueue_decl,
1297         mudflap_finish_file, mudflap_finish_file): Use VEC instead of
1298         VARRAY.
1299
1300 2005-05-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
1301
1302         * config/sparc/predicates.md (const_compl_high_operand): New.
1303         * config/sparc/sparc.c (sparc_emit_set_safe_HIGH64): Rename into
1304         gen_safe_HIGH64.
1305         (sparc_emit_set_const64_quick1): Adjust for above change.
1306         (sparc_emit_set_const64_quick2): Likewise.
1307         (sparc_emit_set_const64_longway): Likewise.
1308         (sparc_emit_set_const64): Likewise.
1309         * config/sparc/sparc.md (movhi_const64_special, movsi_const64_special,
1310         movdi_const64_special): Delete.
1311         (logical constant splitters): Use const_compl_high_operand.
1312
1313 2005-05-03  Richard Guenther  <rguenth@gcc.gnu.org>
1314
1315         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Use STRIP_TYPE_NOPS
1316         rather than STRIP_NOPS.
1317
1318 2005-05-03  Jakub Jelinek  <jakub@redhat.com>
1319
1320         PR rtl-optimization/21330
1321         * loop-unswitch.c (may_unswitch_on): Set *cinsn only when
1322         returning non-NULL.
1323         (unswitch_single_loop): Clear cinsn when retrying.
1324
1325         PR target/21297
1326         * config/i386/i386.c (legitimize_address): When canonicalizing
1327         ASHIFT into MULT, multiply by 1 << shift_count instead of
1328         1 << log2 (shift_count).
1329
1330 2005-05-03  Andrew MacLeod  <amacleod@redhat.com>
1331
1332         * lambda-code.c (gcc_loop_to_lambda_loop, 
1333         lambda_loopnest_to_gcc_loopnest, phi_loop_edge_uses_def,
1334         stmt_is_bumper_for_loop, perfect_nest_p, replace_uses_of_x_with_y): Use
1335         generic operand interface.
1336         * tree-data-ref.c (find_data_references_in_loop): Use generic interface.
1337         * tree-dfa.c (collect_dfa_stats_r, mark_new_vars_to_rename): Use
1338         generic operand interface.
1339         * tree-flow-inline.h (delink_imm_use, link_imm_use_to_list, 
1340         link_imm_use, link_imm_use_stmt, relink_imm_use, relink_imm_use_stmt,
1341         next_safe_imm_use, has_zero_uses, has_single_use, single_imm_use,
1342         num_imm_uses): Use ssa_use_operand_t.
1343         (get_def_ops, get_use_ops, get_v_may_def_ops, get_vuse_ops,
1344         get_v_must_def_ops): Delete.
1345         (get_def_from_ptr, get_phi_result_ptr): Get def directly now.
1346         (get_use_op_ptr, get_def_op_ptr, get_v_may_def_result_ptr,
1347         get_v_may_def_op_ptr, get_vuse_op_ptr, get_v_must_def_result_ptr,
1348         get_v_must_def_kill_ptr): Delete.
1349         (delink_stmt_imm_use): Move and use new operand interface.
1350         (op_iter_next_use, op_iter_next_def, op_iter_next_tree, op_iter_init,
1351         op_iter_next_tree): Use new operand implementation.
1352         (clear_and_done_ssa_iter): New.  Initialize a blank operand iterator.
1353         (op_iter_init_use, op_iter_init_def, op_iter_init_tree): Add iterator 
1354         type check.
1355         (op_iter_next_mustdef, op_iter_next_maydef, 
1356         op_iter_next_must_and_may_def): Delete. Replace with...
1357         (op_iter_next_maymustdef): New.  Combine must and may next operations.
1358         (op_iter_init_maydef, op_iter_init_mustdef, 
1359         op_iter_init_must_and_may_def): Use new interface.
1360         (single_ssa_tree_operand ): New.  Process single operands only as trees.
1361         (single_ssa_use_operand): New.  Process single operands only as uses.
1362         (single_ssa_def_operand): New.  Process single operands only as defs.
1363         (zero_ssa_operands): New.  Return TRUE if there are zero operands of the
1364         specified types.
1365         (num_ssa_operands): New.  Count the number of specified operands.
1366         (compare_ssa_operands_equal): New.  Compare two statements' operands.
1367         (single_phi_def): New.  Return true if PHI has one def of the specified
1368         operand type.
1369         (op_iter_init_phiuse): New.  Initialize the iterator for PHI arguments.
1370         (op_iter_init_phidef): New.  Initialize the iterator for the PHI def.
1371         * tree-flow.h (struct immediate_use_iterator_d): Use ssa_use_operand_t.
1372         (struct stmt_ann_d): Operands field no longer require GTY().
1373         (vn_compute, vn_lookup_or_add, vn_add, vn_lookup): Change prototype.
1374         * tree-into-ssa.c (mark_def_sites): Use SSA_OP_VMUSTKILL.
1375         * tree-outof-ssa.c (check_replaceable, find_replaceable_in_bb, 
1376         dump_replaceable_exprs, rewrite_trees): Use generic interface.
1377         * tree-phinodes.c (make_phi_node, release_phi_node, resize_phi_node): 
1378         Use use_operand_p instead of ssa_imm_use_t *.
1379         * tree-pretty-print.c (dump_vops): check if operands are active before
1380         dumping virtual operands.
1381         * tree-sra.c (sra_walk_function): Use ZERO_SSA_OPERANDS.
1382         * tree-ssa-ccp.c (likely_value): Use ZERO_SSA_OPERANDS.
1383         (ccp_fold): Use new interface.
1384         (ccp_visit_stmt): Remove unused variables and code.
1385         (convert_to_gimple_builtin): Insert statements before calling 
1386         mark_new_vars_to_rename.
1387         * tree-ssa-copy.c (stmt_may_generate_copy): Use ZERO_SSA_OPERANDS.
1388         (copy_prop_visit_cond_stmt): Use generic interface.
1389         * tree-ssa-dom.c (struct expr_hash_elt): Use stmt pointer, not the 
1390         annotation in table.
1391         (thread_across_edge): Use generic interface.
1392         (initialize_hash_element): Initialzie with stmt, not annotation.
1393         (eliminate_redundant_computations): Use generic interface.
1394         (record_equivalences_from_stmt): Pass stmt, not annotation.
1395         (avail_expr_hash, real_avail_expr_hash, avail_expr_eq): Use generic
1396         interface.
1397         * tree-ssa-dse.c (dse_optimize_stmt): Use ZERO_SSA_OPERANDS.
1398         * tree-ssa-loop-ivopts.c (find_invariants_stmt, 
1399         find_interesting_uses_stmt, protect_loop_closed_ssa_form_use): Use 
1400         generic operand interface.
1401         * tree-ssa-loop-niter.c (chain_of_csts_start, get_val_for): Use generic
1402         interface.
1403         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Use Generic operand
1404         Interface.
1405         * tree-ssa-operands.c (struct opbuild_list_d): New.  Operand build type.
1406         (build_defs, build_uses, build_v_may_defs, build_vuses, 
1407         build_v_must_defs): Change type to struct opbuild_list_d.
1408         (ops_active): New.  Operands active boolean.
1409         (operand_memory, operand_memory_index): New.  Operand memory managers.
1410         (allocate_def_optype, allocate_use_optype, allocate_v_may_def_optype,
1411         allocate_vuse_optype, allocate_v_must_def_optype): Delete.
1412         (free_uses, free_defs, free_vuses, free_v_may_defs, free_v_must_defs): 
1413         Change from functions to static variable list heads.
1414         (opbuild_initialize_virtual): New.  Initialize a virtual build list.
1415         (opbuild_initialize_real): New.  Initialize a virtual build list.
1416         (opbuild_free): New.  Free a build list.
1417         (opbuild_num_elems): New.  Number of items in a list.
1418         (opbuild_append_real): New.  Add a real (tree *) operand.
1419         (opbuild_append_virtual): New.  Add and sort a virtual (tree) operand.
1420         (opbuild_first): New.  Return first element index in a list.
1421         (opbuild_next): New.  Return next element in a list.
1422         (opbuild_elem_real): New.  Return real element.
1423         (opbuild_elem_virtual): New.  Return virtual element.
1424         (opbuild_elem_uid): New.  Return UID of virtual element.
1425         (opbuild_clear): New.  Reset an operand list.
1426         (opbuild_remove_elem): New.  Remove an element form a list.
1427         (ssa_operands_active): New.  Return true if operand cache is active.
1428         (init_ssa_operands, fini_ssa_operands): Initialize new implementation.
1429         (ssa_operand_alloc): New.  Allocate memory from an operand chunk.
1430         (correct_use_link): Use use_operand_p.
1431         (finalize_ssa_uses, finalize_ssa_v_may_defs, finalize_ssa_defs,
1432         finalize_ssa_vuses, finalize_ssa_v_must_defs): New implmentation. 
1433         (cleanup_v_may_defs): Use new implmentation.
1434         (finalize_ssa_stmt_operands, start_ssa_stmt_operands): New 
1435         implementation.
1436         (append_def, append_use, append_v_may_def, append_vuse, 
1437         append_v_must_def): Call opbuild_append routine instead of using varray.
1438         (build_ssa_operands): Simplify to simply use stmt, don't maintain a 
1439         global parse_old_ops variable.
1440         (free_ssa_operands): New implementation.
1441         (update_stmt_operands): Move.  Change argument to build_ssa_operands.
1442         (copy_virtual_operands): Move. New generic implementation.
1443         (create_ssa_artficial_load_stmt): Move. New implementation.
1444         (swap_tree_operands): Update for new implementation.
1445         (get_expr_operands): Add stmt parameter to calls to swap_tree_operands.
1446         (add_call_clobber_ops, add_call_read_ops): Initialize opbuild list
1447         rather than a varray.
1448         (verify_imm_links): Use use_operand_p.
1449         (dump_immediate_uses_for): If the immediate use variable is a virtual 
1450         variable, show the virtual ops in the stmt.
1451         * tree-ssa-operands.h (def_operand_p): No longer a structure.
1452         (NULL_DEF_OPERAND_P): Now a #define.
1453         (def_optype_d, use_optype_d, v_def_use_operand_type, v_may_def_optype_d,
1454         vuse_operand_type, vuse_optype_d, v_must_def_optype_d): Delete.
1455         (def_optype_d, use_optype_d, maydef_optype_d, vuse_optype_d,
1456         mustdef_optype_d): New.  Use Linked list representation.
1457         (SSA_OPERAND_MEMORY_SIZE): New.  Size of operand memory chunk.
1458         (struct ssa_operand_memory_d): New.  Allocated Chunk node.
1459         (struct stmt_operands_d): Change to new pointers that are not GTY.
1460         (STMT_USE_OPS, NUM_USES, SET_USE_OP, STMT_DEF_OPS, NUM_DEFS, SET_DEF_OP,
1461         STMT_V_MAY_DEF_OPS, NUM_V_MAY_DEFS, SET_V_MAY_DEF_RESULT,
1462         SET_V_MAY_DEF_OP, STMT_VUSE_OPS, NUM_VUSES, SET_VUSE_OP,
1463         STMT_V_MUST_DEF_OPS, NUM_V_MUST_DEFS, SET_V_MUST_DEF_RESULT, 
1464         SET_V_MUST_DEF_KILL): Delete.
1465         (V_MAY_DEF_OPS, V_MAY_DEF_RESULT_PTR, V_MAY_DEF_RESULT, 
1466         V_MAY_DEF_OP_PTR, V_MAY_DEF_OP): Rename to MAYDEF_*.
1467         (V_MUST_DEF_OPS, V_MUST_DEF_RESULT_PTR, V_MUST_DEF_RESULT, 
1468         V_MUST_DEF_KILL_PTR, V_MUST_DEF_KILL): Rename to MUSTDEF_*.
1469         (enum ssa_op_iter_type): Operand iterator typechecking values.
1470         (struct ssa_operand_iterator_d): Use linked lists of operands.
1471         (SSA_OP_VMUSTDEFKILL): Rename to SSA_OP_VMUSTKILL.
1472         (FOR_EACH_SSA_MAYDEF_OPERAND, FOR_EACH_SSA_MUSTDEF_OPERAND,
1473         FOR_EACH_SSA_MUST_AND_MAY_DEF_OPERAND): Use op_iter_next_maymustdef.
1474         (FOR_EACH_PHI_ARG): New.  Iterate over PHI arguments.
1475         (FOR_EACH_PHI_OR_STMT_USE): New.  Iterate over PHI or stmt uses.
1476         (FOR_EACH_PHI_OR_STMT_DEF): New.  Iterate over PHI or stmt defs.
1477         (SINGLE_SSA_TREE_OPERAND, SINGLE_SSA_USE_OPERAND, 
1478         SINGLE_SSA_DEF_OPERAND, ZERO_SSA_OPERANDS, NUM_SSA_OPERANDS): New.
1479         * tree-ssa-opfinalize.h: New.  Function templates for expansion.
1480         (FINALIZE_ALLOC): Expands into alloc_def, alloc_use, alloc_maydef,
1481         alloc_vuse, and alloc_mustdef.
1482         (FINALIZE_FUNC): Expands into finalize_ssa_def_ops, 
1483         finalize_ssa_use_ops, finalize_ssa_v_may_def_ops, finalize_ssa_vuse_ops,
1484         and finalize_ssa_v_must_def_ops.
1485         * tree-ssa-pre.c (add_to_sets): Pass tree to vn_add.
1486         (create_value_expr_from): Use stmt not vuse_optype as a parameter. Pass
1487         stmt around.
1488         (compute_avail): Use generic iterator interface.
1489         * tree-ssa-propagate.c (first_vdef): Use generic operand interface.
1490         (stmt_makes_single_load, stmt_makes_single_store): Use 
1491         ZERO_SSA_OPERANDS.
1492         * tree-ssa-sink.c (is_hidden_global_store): Use ZERO_SSA_OPERANDS.
1493         (statement_sink_location): Use generic interface.
1494         * tree-ssa.c (verify_ssa):  Use %p in fprintf.  Use generic interface.
1495         (delete_tree_ssa): Don't call release_defs.  Call release_ssa_name and
1496         reset the immediate use link nodes.
1497         (stmt_references_memory_p): Use ZERO_SSA_OPERANDS.
1498         * tree-ssanames.c (make_ssa_name): Use use_operand_p.
1499         * tree-tailcall.c (find_tail_calls): Use ZERO_SSA_OPERANDS.
1500         (eliminate_tail_call): Use generic operand interface.
1501         * tree-vect-analyze.c (vect_analyze_data_refs): Use ZERO_SSA_OPERANDS.
1502         (vect_mark_relevant, vect_mark_stmts_to_be_vectorized): Use generic 
1503         interface.
1504         * tree-vect-transform.c (update_vuses_to_preheader): Use generic 
1505         interface.
1506         * tree-vectorizer.c (rename_variables_in_bb): Use generic interface.
1507         * tree-vn.c (struct val_expr_pair_d): Cache statment pointer instead of
1508         vuse_optype.
1509         (vn_compute, val_expr_pair_hash, vn_add, vn_lookup, vn_lookup_or_add): 
1510         Use statement pointer instead of vuse_optype.  Use generic interface.
1511         * tree-vrp.c (maybe_add_assert_expr): Use generic interface.
1512         (stmt_interesting_for_vrp, vrp_visit_stmt): Use ZERO_SSA_OPERANDS.
1513         * tree.h (struct ssa_imm_use_d): Renamed to ssa_use_operand_d.
1514         (tree_ssa_name, phi_arg_d): Use ssa_use_operand_d.
1515         * doc/tree-ssa.texi: Update documentation for operand interface.
1516
1517 2005-05-03  Nathan Sidwell  <nathan@codesourcery.com>
1518
1519         * config/darwin.c (machopic_define_symbol): Use gcc_assert or
1520         gcc_unreachable as appropriate.
1521         (machopic_function_base_name, machopic_indirect_data_reference,
1522         machopic_legitimize_pic_address, darwin_non_lazy_pcrel): Likewise.
1523         * config/host-darwin.c (darwin_gt_pch_use_address): Likewise
1524         * config/rs6000/altivec.md (*mov<mode>_internal,
1525         build_vector_mask_for_load): Likewise.
1526         * config/rs6000/darwin.md (movdf_low_si, movdf_low_di,
1527         *call_nonlocal_darwin64, *call_value_nonlocal_darwin64,
1528         *sibcall_symbolic_64, *sibcall_value_symbolic_64): Likewise.
1529         * config/rs6000/predicates.md (easy_fp_constant,
1530         logical_operand): Likewise.
1531         * config/rs6000/rs6000.c (spe_expand_predicate_builtin,
1532         compute_save_world_info, rs6000_emit_prologue,
1533         rs6000_output_mi_thunk): Reword comments to avoid 'abort'.
1534         * config/rs6000/host-darwin.c (segv_handler): Use fancy_abort
1535         directly.
1536
1537 2005-05-03  Uros Bizjak  <uros@kss-loka.si>
1538
1539         PR middle-end/21282
1540         * convert.c (convert_to_integer): Convert ceil and floor in
1541         c99 mode only.
1542
1543 2005-04-29  Geoffrey Keating  <geoffk@apple.com>
1544
1545         PR target/20813
1546         * config/rs6000/rs6000.md (floatsidf2_internal): Merge to create
1547         define_insn_and_split.  Split only when memory operand is
1548         offsettable.  Use adjust_address rather than plus_constant.
1549         (floatunssidf2_internal): Likewise.
1550         (fix_truncdfsi2_internal): Split only when memory operand is
1551         offsettable.  Use adjust_address rather than plus_constant.
1552         (fix_trunctfsi2_internal): Likewise.
1553         (floatsidf2_internal): Likewise.
1554
1555 2005-05-02  Diego Novillo  <dnovillo@redhat.com>
1556
1557         * tree-vrp.c (set_value_range_to_nonnull): Declare inline.
1558         (set_value_range_to_null): Likewise.
1559         (set_value_range_to_varying): New function.  Use it in all
1560         call sites that used to call set_value_range (vr, VR_VARYING, ...).
1561         (extract_range_from_assert): If the integral type has a
1562         super-type, and LIMIT is not within MIN and MAX values of that
1563         type, set the resulting range to VR_VARYING.
1564
1565 2005-05-02  Hans-Peter Nilsson  <hp@bitrange.com>
1566
1567         * config/mmix/mmix.opt: New file.
1568         * config/mmix/mmix.h: Move options-related comments to mmix.opt.
1569         (mmix_cc1_ignored_option): Don't declare.
1570         (TARGET_OPTIONS, TARGET_MASK_LIBFUNCS, TARGET_MASK_ABI_GNU)
1571         (TARGET_MASK_FCMP_EPSILON, TARGET_MASK_ZERO_EXTEND)
1572         (TARGET_MASK_KNUTH_DIVISION, TARGET_MASK_TOPLEVEL_SYMBOLS)
1573         (TARGET_MASK_BRANCH_PREDICT, TARGET_MASK_USE_RETURN_INSN)
1574         (TARGET_MASK_BASE_ADDRESSES, TARGET_LIBFUNC, TARGET_ABI_GNU,
1575         (TARGET_FCMP_EPSILON, TARGET_ZERO_EXTEND, TARGET_KNUTH_DIVISION)
1576         (TARGET_TOPLEVEL_SYMBOLS, TARGET_BRANCH_PREDICT)
1577         (TARGET_BASE_ADDRESSES, TARGET_USE_RETURN_INSN, TARGET_SWITCHES):
1578         Don't define.
1579         (TARGET_DEFAULT): Change TARGET_MASK_... to MASK_...
1580         * config/mmix/mmix.c (mmix_cc1_ignored_option): Remove.
1581         (TARGET_DEFAULT_TARGET_FLAGS): Override default.
1582
1583 2005-05-02  Joseph S. Myers  <joseph@codesourcery.com>
1584
1585         PR c/15698
1586         * c-tree.h (C_DECL_BUILTIN_PROTOTYPE): New.
1587         * c-decl.c (current_function_prototype_built_in,
1588         current_function_prototype_arg_types): New.
1589         (merge_decls): Keep source location of prototype followed by
1590         nonprototype declaration.  Update C_DECL_BUILTIN_PROTOTYPE.
1591         (builtin_function): Set C_DECL_BUILTIN_PROTOTYPE.
1592         (start_function): Always set current_function_prototype_locus,
1593         current_function_prototype_built_in and
1594         current_function_prototype_arg_types.  Check for external
1595         prototype whether or not visible for external function and set
1596         current_function_prototype_arg_types accordingly.
1597         (store_parm_decls_oldstyle): Use
1598         current_function_prototype_arg_types for checking old-style
1599         definition against prototype.  Give warnings only if
1600         current_function_prototype_built_in).
1601
1602 2005-05-02  Daniel Jacobowitz  <dan@codesourcery.com>
1603
1604         * ggc.h (ggc_alloc_zone_pass_stat): New macro.
1605         (ggc_alloc_zone_stat): Don't define.
1606         * ggc-zone.c (ggc_alloc_typed_stat, ggc_alloc_stat): Use
1607         ggc_alloc_zone_pass_stat.
1608         * rtl.c (rtx_alloc_stat, shallow_copy_rtx_stat): Likewise.
1609         * tree.c (make_node_stat, copy_node_stat, make_tree_binfo_stat)
1610         (make_tree_vec_stat, tree_cons_stat, build1_stat): Likewise.
1611
1612 2005-05-02  Daniel Jacobowitz  <dan@codesourcery.com>
1613
1614         * calls.c (expand_call): Handle current_function_pretend_args_size
1615         when checking for sibcalls.
1616
1617 2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>
1618
1619         PR tree-optimization/21294
1620         * tree-vrp.c (vrp_expr_computes_nonzero): New.
1621         (extract_range_from_expr): Call vrp_expr_computes_nonzero.
1622
1623 2005-05-02  Janis Johnson  <janis187@us.ibm.com>
1624
1625         PR 19985
1626         * gcov-io.h: Declare gcov external functions hidden.
1627
1628 2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>
1629
1630         * tree-ssa-uncprop.c (equiv_hash_elt, remove_equivalence,
1631         record_equiv, tree_ssa_uncprop, uncprop_into_successor_phis):
1632         Use VEC instead of VARRAY.
1633         (equiv_free): New.
1634
1635         * tree-ssa-sink.c (nearest_common_dominator_of_uses): Factor
1636         out common code.
1637
1638 2005-05-02  Paolo Bonzini  <bonzini@gnu.org>
1639
1640         * c-common.c (resolve_overloaded_builtin): Forward to target
1641         hook for BUILT_IN_MD built-ins.
1642         * c-typeck.c (finish_call_expr): Call resolve_overloaded_builtin
1643         for all types of built-in.
1644         * target-def.h (TARGET_RESOLVE_OVERLOADED_BUILTIN): New.  Use it
1645         in the definition of the target hooks struct.
1646         * target.h (struct gcc_target): Add resolve_overloaded_builtin.
1647         * config/rs6000/altivec.h: Rewritten.
1648         * config/rs6000/rs6000-c.c (struct altivec_builtin_types,
1649         altivec_resolve_overloaded_builtin, altivec_build_resolved_builtin,
1650         rs6000_builtin_type, rs6000_builtin_type_compatible,
1651         altivec_overloaded_builtins, rs6000_builtin_type,
1652         rs6000_builtin_type_compatible): New.
1653         * config/rs6000/rs6000.c (rs6000_builtin_types, rs6000_builtin_decls):
1654         New.
1655         (def_builtin): Turn into a function.  Check for duplicates and store
1656         the builtin into rs6000_builtin_decls.
1657         (bdesc_3arg, bdesc_dst, bdesc_altivec_preds, bdesc_2arg,
1658         bdesc_1arg): Add overloaded builtins.
1659         (altivec_expand_builtin): Check for unresolved overloaded builtins,
1660         do not support ALTIVEC_COMPILETIME_ERROR.
1661         (rs6000_init_builtins): Add opaque 128-bit vector, and internal
1662         nodes to represent front-end types.
1663         (altivec_init_builtins, rs6000_common_init_builtins): Create builtins
1664         with opaque arguments and/or return values.
1665         * config/rs6000/rs6000.h (enum rs6000_builtins): Remove
1666         ALTIVEC_COMPILETIME_ERROR and add Altivec overloaded builtins.
1667         (rs6000_builtin_type_index): New.
1668         (is_ev64_opaque_type): Rename to...
1669         (rs6000_is_opaque_type): ... this.
1670         (rs6000_cpu_cpp_builtins): Install the resolve_overloaded_builtin
1671         target hook.
1672
1673 2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>
1674
1675         * function.c (reorder_blocks, reorder_blocks_1): Use VEC
1676         instead of VARRAY.
1677
1678 2005-05-02  Nathan Sidwell  <nathan@codesourcery.com>
1679             Bernd Schmidt  <bernd.schmidt@analog.com>
1680
1681         * config/bfin/bfin.c (emit_link_insn, effective_address_32bit_p,
1682         print_address_operand, print_operand, legitimize_pic_address,
1683         asm_conditional_branch, bfin_gen_compare, output_push_multiple,
1684         output_pop_multiple): Use gcc_assert or gcc_unreachable as
1685         appropriate.
1686         * config/bfin/bfin.md (movsf splitter, beq, bne): Likewise.
1687
1688 2005-05-02  Dorit Naishlos  <dorit@il.ibm.com>
1689
1690         * doc/passes.texi: Document vectorization pass.
1691
1692 2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>
1693
1694         * tree-scalar-evolution.c (get_exit_conditions_rec,
1695         select_loops_exit_conditions,
1696         number_of_iterations_for_all_loops,
1697         analyze_scalar_evolution_for_all_loop_phi_nodes,
1698         scev_analysis): Use VEC instead of VARRAY.
1699
1700 2005-05-02  Michael Matz  <matz@suse.de>
1701
1702         PR c++/19542
1703         * c-common.c (c_common_nodes_and_builtins): Create global null_node.
1704         (warn_strict_null_sentinel): Define.
1705         (check_function_sentinel): Check for null_node as valid sentinel too.
1706         * c-common.h (c_tree_index): Added CTI_NULL.
1707         (null_node) Define global_tree[CTI_NULL].
1708         (warn_strict_null_sentinel): Declare.
1709         * c-opts.c: (c_common_handle_option): Handle -Wstrict-null-sentinel.
1710         * c.opt: (Wstrict-null-sentinel): New C++ option.
1711         * doc/invoke.texi (C++ Options): Document -Wstrict-null-sentinel.
1712
1713 2005-05-01  Kazu Hirata  <kazu@cs.umass.edu>
1714
1715         * gimplify.c (gimplify_compound_lval): Use VEC instead of
1716         VARRAY.
1717
1718         * global.c (calculate_reg_pav): Use VEC instead of VARRAY.
1719
1720         * dwarf2out.c (decl_scope_table, push_decl_scope,
1721         pop_decl_scope, scope_die_for, dwarf2out_init): Use VEC
1722         instead of VARRAY.
1723
1724 2005-05-01  Mark Mitchell  <mark@codesourcery.com>
1725
1726         PR C++/14391
1727         * c-cppbuiltin.c (c_cpp_builtins): Do not define __GXX_WEAK__ to 1
1728         if !flag_weak.
1729         * doc/cpp.texi (__DEPRECATED): Document.
1730         (__EXCEPTIONS): Likewise.
1731         (__GXX_WEAK__): Likewise.
1732
1733         * function.c (INVOKE__main): Do not define.
1734         (expand_main_function): Check HAS_INIT_SECTION when determining
1735         whether or not to call __main.
1736
1737 2005-05-01  Kazu Hirata  <kazu@cs.umass.edu>
1738
1739         * tree-ssa-loop-ivopts.c: Fix a comment typo.
1740
1741 2005-01-05  Paul Brook  <paul@codesourcery.com>
1742
1743         * config/arm/arm.h (ARM_EMIT_TRAMPOLINE_CACHE_CLEAR): Define.
1744         (INITIALIZE_TRAMPOLINE): Use it.
1745         * config/arm/linux-gas.h (INITIALIZE_TRAMPOLINE): Remove.
1746         * config/arm/netbsd.h (INITIALIZE_TRAMPOLINE): Remove.
1747         * config/arm/netbsd-elf.h (INITIALIZE_TRAMPOLINE): Remove.
1748
1749 2005-05-01  Gerald Pfeifer  <gerald@pfeifer.com>
1750
1751         * doc/install.texi (Specific): Omit dots in the @anchors names
1752         for i?86-*-sco3.2v5*, i?86-*-solaris2.10, and sparc-sun-solaris2.7.
1753         Omit underscores for x86_64-*-* and the "all ELF targets" entry.
1754
1755 2005-05-01  Zdenek Dvorak  <dvorakz@suse.cz>
1756
1757         PR tree-optimization/18316
1758         PR tree-optimization/19126
1759         * tree.c (build_int_cst_type): Avoid shift by size of type.
1760         * tree-scalar-evolution.c (simple_iv): Add allow_nonconstant_step
1761         argument.
1762         * tree-scalar-evolution.h (simple_iv): Declaration changed.
1763         * tree-ssa-loop-ivopts.c (struct iv_cand): Add depends_on
1764         field.
1765         (dump_cand): Dump depends_on information.
1766         (determine_biv_step): Add argument to simple_iv call.
1767         (contains_abnormal_ssa_name_p): Handle case expr == NULL.
1768         (find_bivs, find_givs_in_stmt_scev): Do not require step to be a
1769         constant.
1770         (add_candidate_1): Record depends_on for candidates.
1771         (tree_int_cst_sign_bit, constant_multiple_of): New functions.
1772         (get_computation_at, get_computation_cost_at, may_eliminate_iv):
1773         Handle ivs with nonconstant step.
1774         (iv_ca_set_remove_invariants, iv_ca_set_add_invariants): New functions.
1775         (iv_ca_set_no_cp, iv_ca_set_cp): Handle cand->depends_on.
1776         (create_new_iv): Unshare the step before passing it to create_iv.
1777         (free_loop_data): Free cand->depends_on.
1778         (build_addr_strip_iref): New function.
1779         (find_interesting_uses_address): Use build_addr_strip_iref.
1780         (strip_offset_1): Split the recursive part from strip_offset.
1781         Strip constant offset component_refs and array_refs.
1782         (strip_offset): Split the recursive part to strip_offset_1.
1783         (add_address_candidates): Removed.
1784         (add_derived_ivs_candidates): Do not use add_address_candidates.
1785         (add_iv_value_candidates): Add candidates with stripped constant
1786         offset.  Consider all candidates with initial value 0 important.
1787         (struct affine_tree_combination): New.
1788         (aff_combination_const, aff_combination_elt, aff_combination_scale,
1789         aff_combination_add_elt, aff_combination_add,
1790         tree_to_aff_combination, add_elt_to_tree, aff_combination_to_tree,
1791         fold_affine_sum): New functions.
1792         (get_computation_at): Use fold_affine_sum.
1793         * tree-ssa-loop-manip.c (create_iv): Handle ivs with nonconstant step.
1794         * tree-ssa-loop-niter.c (number_of_iterations_exit): Add argument
1795         to simple_iv call.
1796
1797 2005-04-30  Michael Matz  <matz@suse.de>
1798
1799         * config/i386/i386.md (movmemsi): Also active when
1800         TARGET_INLINE_ALL_STRINGOPS.
1801
1802 2005-04-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
1803
1804         PR bootstrap/20633
1805         * config/freebsd-spec.h (FBSD_CPP_SPEC): Add %(cpp_arch).
1806
1807 2005-04-30  Paul Brook  <paul@codesourcery.com>
1808
1809         * config/arm/bpabi.h (RENAME_LIBRARY_SET): Always use .thumb_set in
1810         thumb mode.
1811         * config/arm/ieee754-df.S: Use __INTERWORKING_STUBS__.
1812         * config/arm/ieee754-sf.S: Ditto.
1813         * config/arm/lib1funcs.asm: Define and use __INTERWORKING_STUBS__.
1814         (FUNC_ALIAS): Use .thumb_set for thumb routines.
1815
1816 2005-04-30  Kazu Hirata  <kazu@cs.umass.edu>
1817
1818         * tree-ssanames.c: Fix a comment typo.
1819         * doc/options.texi: Fix a typo.
1820
1821 2005-04-30  Nathan Sidwell  <nathan@codesourcery.com>
1822
1823         * config/h8300/h8300.c (byte_reg): Use gcc_assert and
1824         gcc_unreachable as appropriate.
1825         (split_adds_subs, cond_string, print_operand,
1826         h8300_initial_elimination_offset, h8300_classify_operand,
1827         h8300_unary_length, h8300_short_immediate_length,
1828         h8300_bitfield_length, h8300_binary_length,
1829         h8300_insn_length_from_table, compute_mov_length, output_plussi,
1830         compute_plussi_length, compute_plussi_cc, output_logical_op,
1831         compute_logical_op_length, compute_logical_op_cc,
1832         output_h8sx_shift, get_shift_alg, h8300_shift_needs_scratch_p,
1833         output_a_shift, compute_a_shift_length, compute_a_shift_cc,
1834         output_a_rotate, compute_a_rotate_length, fix_bit_operand,
1835         h8300_regs_ok_for_stm): Likewise.
1836         * config/h8300/h8300.md (*movsi_h8300, *movsf_h8300,
1837         monitor_prologue): Likewise.
1838
1839 2005-04-30  Kazu Hirata  <kazu@cs.umass.edu>
1840
1841         * loop-invariant.c (invariants, create_new_invariant,
1842         get_inv_cost, best_gain_for_invariant,
1843         find_invariants_to_move, move_invariants,
1844         init_inv_motion_data, free_inv_motion_data): Use VEC instead
1845         of VARRAY.
1846
1847 2005-04-29  Richard Henderson  <rth@redhat.com>
1848
1849         * function.c (instantiate_decls): Remove valid_only argument.
1850         (instantiate_decls_1, instantiate_decl): Likewise.
1851         (instantiate_virtual_regs_1): Delete.
1852         (instantiate_virtual_regs_lossage): Delete.
1853         (instantiate_virtual_regs_in_rtx): New.
1854         (safe_insn_predicate): New.
1855         (instantiate_virtual_regs_in_insn): New.
1856         (instantiate_virtual_regs): Update to match all that.  Only run
1857         instantiate_decls once.
1858
1859 2005-04-29  Richard Henderson  <rth@redhat.com>
1860             Daniel Jacobowitz  <dan@codesourcery.com>
1861
1862         * gengtype.c (write_func_for_structure): Split out ...
1863         (output_type_enum): ... new function.  Fix thinko accessing
1864         TYPE_PARAM_STRUCT data.
1865
1866 2005-04-29  Tom Tromey  <tromey@redhat.com>
1867
1868         * tree.c (build_block): Removed unused 'tags' argument.
1869         * tree.h (build_block): Removed argument.
1870
1871 2005-04-29  Michael Matz  <matz@suse.de>
1872
1873         PR rtl-optimization/21144
1874         * postreload.c (reload_cse_move2add): Check for VOIDmode.
1875
1876 2005-04-29  Bob Wilson  <bob.wilson@acm.org>
1877
1878         * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Define to disable
1879         flag_reorder_blocks.
1880
1881 2005-04-28  Kazu Hirata  <kazu@cs.umass.edu>
1882
1883         PR tree-optimization/21030
1884         * tree-vrp.c (adjust_range_with_scev): Do not create invalid
1885         ranges where VR->MAX is smaller than VR->MIN.
1886
1887 2005-04-29  Devang Patel  <dpatel@apple.com>
1888
1889         PR tree-optimization/21272
1890         PR tree-optimization/21266
1891         * tree-if-conv.c (find_phi_replacement_condition): Fix think-o.
1892         
1893 2005-04-29  Kazu Hirata  <kazu@cs.umass.edu>
1894
1895         * tree-flow-inline.h: Fix a comment typo.
1896         * doc/tree-ssa.texi: Fix a typo.
1897
1898         * tree-flow-inline.h, tree-ssa-operands.c: Fix comment typos.
1899
1900 2005-04-29  Nathan Sidwell  <nathan@codesourcery.com>
1901
1902         * config/fr30/fr30.c (fr30_expand_prologue): Use gcc_assert and
1903         gcc_unreachable as appropriate.
1904         (fr30_expand_epilogue, fr30_setup_incoming_varargs,
1905         fr30_print_operand, fr30_move_double): Likewise.
1906         * config/fr30/fr30.md (*movsi_internal, *movsf_internal): Likewise.
1907
1908 2005-04-29  Mark Mitchell  <mark@codesourcery.com>
1909
1910         * config/arm/arm.h (ARM_EABI_CTORS_SECTION_OP): Do not define if a
1911         definition has already been provided.
1912         (ARM_EABI_DTORS_SECTION_OP): Likewise.
1913         * config/arm/symbian.h (ARM_EABI_CTORS_SECTION_OP): Define.
1914         (ARM_EABI_DTORS_SECTION_OP): Likewise.
1915
1916 2005-04-29  Jim Tison  <jtison@us.ibm.com>
1917
1918         * config/s390/s390.md ("prologue_tpf", "epilogue_tpf"): Alter
1919         trace hooks calls to improve performance.
1920
1921 2005-04-29  Julian Brown  <julian@codesourcery.com>
1922             Mark Mitchell  <mark@codesourcery.com>
1923             Paul Brook  <paul@codesourcery.com>
1924
1925         * crtstuff.c: Handle targets that use .init_array.
1926         * function.c (HAS_INIT_SECTION): Do not define. Instead, make sure
1927         that INVOKE__main is set correctly.
1928         (expand_main_function): Test INVOKE__main.
1929         * libgcc2.c: Do not define __main when using .init_array.
1930         * config/arm/arm.c (arm_elf_asm_constructor): New function.
1931         * config/arm/arm.h (CTORS_SECTION_ASM_OP): Define, with specialized
1932         libgcc version.
1933         (DTORS_SECTION_ASM_OP): Likewise.
1934         (CTOR_LIST_BEGIN): Define specially when in libgcc.
1935         (CTOR_LIST_END): Likewise.
1936         (DTOR_LIST_BEGIN): Likewise.
1937         (DTOR_LIST_END): Likewise.
1938         * config/arm/bpapi.h (INIT_SECTION_ASM_OP): Do not define it.
1939         (FINI_SECTION_ASM_OP): Likewise.
1940         (INIT_ARRAY_SECTION_ASM_OP): Define.
1941         (FINI_ARRAY_SECTION_ASM_OP): Likewise.
1942         * config/arm/elf.h (TARGET_ASM_CONSTRUCTOR): Define.
1943         (SUPPORTS_INIT_PRIORITY): Evaluate to false for EABI based targets.
1944         * doc/tm.texi (INIT_ARRAY_SECTION_ASM_OP): Document.
1945         (FINI_ARRAY_SECTION_ASM_OP): Likewise.  
1946
1947 2005-04-29  Nathan Sidwell  <nathan@codesourcery.com>
1948
1949         * config/m68k/m68k.c (m68k_initial_elimination_offset): Use
1950         gcc_assert and gcc_unreachable as appropriate.
1951         (output_dbcc_and_branch, output_scc_di, legitimize_pic_address,
1952         const_int_cost, output_move_const_into_data_reg,
1953         output_move_qimode, output_move_double, find_addr_reg,
1954         print_operand, print_operand_address): Likewise.
1955         * config/m68k/m68k.md (adddi3, subdi3, negsf2, negdf2, abssf2,
1956         absdf2, sordered, sunordered, suneq, sunge, sungt, sunle, sunlt,
1957         sltgt, bordered, bunordered, buneq, bunge, bungt, bunle, bunlt,
1958         bltgt, *bordered_rev, *bunordered_rev, *buneq_rev, *bunge_rev,
1959         *bunle_rev, *bunlt_rev, *bltgt_rev, negxf2, absxf2,
1960         conditional_trap): Likewise.
1961         * config/m68k/m68kelf.h (ASM_OUTPUT_ALIGN): Remove unreachable code.
1962
1963 2005-04-29  Nathan Sidwell  <nathan@codesourcery.com>
1964
1965         * config/xtensa/xtensa.c (gen_int_relational): Use gcc_assert and
1966         gcc_unreachable as appropriate.
1967         (gen_conditional_move, xtensa_split_operand_pair,
1968         xtensa_split_operand_pair, xtensa_copy_incoming_a7,
1969         xtensa_copy_incoming_a7, xtensa_copy_incoming_a7,
1970         xtensa_copy_incoming_a7, xtensa_output_literal,
1971         xtensa_output_literal, xtensa_output_literal): Likewise.
1972         * config/xtensa/xtensa.h (INITIAL_ELIMINATION_OFFSET): Likewise.
1973         * config/xtensa/xtensa.md (*btrue, *bfalse, *ubtrue, *ubfalse,
1974         *bittrue, *bitfalse, *masktrue, *maskfalse, movsicc_internal0,
1975         movsicc_internal1, movsfcc_internal0,
1976         movsfcc_internal1): Likewise.
1977
1978 2005-04-28  James E Wilson  <wilson@specifixinc.com>
1979
1980         * config/i386/i386.h (HI_REGISTER_NAMES): Fix typos in comment.
1981         (ADDITIONAL_REGISTER_NAMES): Delete obsolete mmx register entries.
1982
1983 2005-04-28  DJ Delorie  <dj@redhat.com>
1984
1985         * opt-functions.awk (var_set): Emit proper initializer for
1986         non-target bitfields.
1987
1988 2005-04-28  Devang Patel  <dpatel@apple.com>
1989
1990         * dbxout.c (have_used_extensions): Remove.
1991         (dbxout_type_fileds, dbxout_type, dbxout_symbol): Remove use of
1992         have_used_extensions.
1993         
1994 2005-04-28  James E Wilson  <wilson@specifixinc.com>
1995
1996         * doc/install.texi: Update -enable-languages info.  Correct path to
1997         html docs.
1998
1999 2005-04-28  DJ Delorie  <dj@redhat.com>
2000
2001         * optc-gen.awk (END): Make sure no variable is defined more
2002         than once.
2003         * opth-gen.awk (END): Allocate bits on a per-variable basis.
2004         Allow for bitfield variables other than target_flags.
2005         * doc/options.text (Mask): Document that you may specify a
2006         variable other than target_flags.
2007
2008 2005-04-28  Martin Koegler <mkoegler@auto.tuwien.ac.at>
2009
2010         PR rtl-optimization/18877
2011         * reload.c (decompose) <case REG, case SUBREG>: Handle pseudo reg
2012         number in val.start.
2013
2014 2005-04-28  David Edelsohn  <edelsohn@gnu.org>
2015
2016         PR target/20813
2017         * config/rs6000/aix43.h (SUBSUBTARGET_SWITCHES, aix64): Add
2018         MASK_PPC_GFXOPT.
2019         * config/rs6000/aix51.h (SUBSUBTARGET_SWITCHES, aix64): Same.
2020         * config/rs6000/aix52.h (SUBSUBTARGET_SWITCHES, aix64): Same.
2021         * config/rs6000/sysv4.h (SUBTARGET_SWITCHES, 64): Same.
2022
2023 2005-04-28  Richard Earnshaw  <richard.earnshaw@arm.com>
2024
2025         * arm.c (legitimize_pic_address): Fix sense of assertion test for
2026         creating pseudos when the base offset is too large.
2027
2028 2005-04-28  Kazu Hirata  <kazu@cs.umass.edu>
2029
2030         * global.c (earlyclobber_regclass): Change the type to
2031         VEC(int,heap).
2032         (check_earlyclobber): Update uses of earlyclobber_regclass.
2033         (mark_reg_use_for_earlyclobber): Likewise.
2034         (calculate_local_reg_bb_info): Allocate and free
2035         earlyclobber_regclass using the VEC API.
2036
2037 2005-04-28  Nathan Sidwell  <nathan@codesourcery.com>
2038
2039         * tree-ssa-alias.c (push_fields_onto_fieldstack): Remove bogus
2040         assert.
2041
2042 2005-04-28  Kazu Hirata  <kazu@cs.umass.edu>
2043
2044         * modulo-sched.c, tree-stdarg.c: Use targetm.foo instead of
2045         (*targetm.foo).
2046
2047         * config.gcc: Obsolete c4x-* and tic4x-*.
2048
2049         * tree.h (edge_def): Remove.
2050
2051         * bt-load.c, cfgexpand.c, dwarf2out.c, emit-rtl.c, expr.c,
2052         function.c, global.c, lcm.c, loop-invariant.c, optabs.c,
2053         reorg.c, resource.c, tree-ssa-loop-ivopts.c, value-prof.c: Use
2054         JUMP_P, LABEL_P, REG_P, MEM_P, NONJUMP_INSN_P, and INSN_P
2055         where appropriate.
2056
2057         * attribs.c, c-pragma.c, caller-save.c, cfghooks.h,
2058         coverage.c, cselib.h, domwalk.c, domwalk.h, errors.c,
2059         errors.h, gcov-dump.c, gcov-io.c, gcov-io.h, gen-protos.c,
2060         genattrtab.h, genextract.c, gthr-win32.h, insn-notes.def,
2061         integrate.c, lambda-mat.c, lambda.h, libgcov.c, local-alloc.c,
2062         machmode.def, mips-tfile.c, params.c, pretty-print.c,
2063         print-rtl.c, protoize.c, regmove.c, sched-vis.c, tree-chrec.h,
2064         tree-data-ref.h, vec.h, config/darwin-c.c, config/sol2-c.c,
2065         config/sol2.c, config/arm/arm-cores.def, config/arm/cirrus.md,
2066         config/arm/symbian.h, config/c4x/c4x.c, config/c4x/c4x.h,
2067         config/i386/cygming.h, config/i386/djgpp.h,
2068         config/i386/lynx.h, config/i386/netware.c,
2069         config/i386/winnt.c, config/ia64/ia64-c.c,
2070         config/iq2000/iq2000.c, config/m32r/little.h,
2071         config/m68k/m68k-protos.h, config/m68k/m68k.h,
2072         config/m68k/m68k.md, config/mcore/mcore.c,
2073         config/mcore/mcore.h, config/mmix/mmix.c, config/mmix/mmix.md,
2074         config/mn10300/mn10300-protos.h, config/mn10300/mn10300.c,
2075         config/mn10300/mn10300.h, config/ns32k/netbsd.h,
2076         config/ns32k/ns32k.c, config/ns32k/ns32k.h,
2077         config/pa/pa-hpux11.h, config/pdp11/pdp11.c,
2078         config/pdp11/pdp11.h, config/rs6000/darwin.h,
2079         config/rs6000/default64.h, config/rs6000/rs6000-c.c,
2080         config/s390/2064.md, config/s390/2084.md,
2081         config/s390/s390-modes.def, config/s390/s390-protos.h,
2082         config/s390/tpf.h, config/sh/sh.h, config/sh/symbian.c,
2083         config/stormy16/stormy16.c, config/vax/vax-protos.h,
2084         config/vax/vax.c, config/vax/vax.h,
2085         config/xtensa/lib1funcs.asm, config/xtensa/xtensa.md: Update
2086         copyright.
2087
2088 2005-04-28  Joseph S. Myers  <joseph@codesourcery.com>
2089
2090         * c-typeck.c (build_compound_expr): Correct logic in last change.
2091
2092 2005-04-27  James E. Wilson  <wilson@specifixinc.com>
2093
2094         * config/ia64/ia64.c (update_set_flags): Delete ppred and pcond
2095         parameters.  Replace conditional move code with assert checking for
2096         ar.lc.  Delete obsolete comments.
2097         (set_src_needs_barrier): Delete cond parameter, and code using it.
2098         (rtx_needs_barrier): Delete initialization of cond.  Fix typo in
2099         assert checking for PR_REGS.  Fix calls to update_set_flags and
2100         set_src_needs_barrier.
2101         (group_barrier_needed): Renamed from group_barrier_needed_p.  Fix all
2102         callers.  Rewrite explanatory comment before the function.
2103         (safe_group_barrier_needed): Renamed from safe_group_barrier_needed_p.
2104         Fix all callers.
2105
2106 2005-04-27  Mike Stump  <mrs@apple.com>
2107
2108         * doc/cpp.texi: gcc now implements universal character names.
2109
2110 2005-04-27  Joseph S. Myers  <joseph@codesourcery.com>
2111
2112         PR c/21159
2113         * c-typeck.c (build_compound_expr): Don't warn for left-hand side
2114         being a compound expression whose right-hand side is cast to void.
2115
2116 2005-04-27  Caroline Tice  <ctice@apple.com>
2117
2118         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
2119         Remove targetm.have_named_sections test.
2120         (fix_edges_for_rarely_executed_code): Likewise.
2121         (insert_section_boundary_note): Likewise.
2122         (reorder_basic_blocks): Check partitioning flag before calling
2123         verify_hot_cold_block_grouping.
2124         * dbxout.c (dbxout_function_end): Get hot/cold section labels from
2125         the function struct rather than global variables.
2126         * dwarf2out.c (COLD_TEXT_SECTION_LABEL): New macro.
2127         (COLD_END_LABEL): Likewise
2128         (cold_text_section_label): New static global variable.
2129         (cold_end_label): Likewise.
2130         (dwarf2out_switch_text_section): Get hot/cold section labels from
2131         the function struct rather than global variables; test to make sure
2132         cfun is defined.
2133         (output_aranges): Use cold_text_section_label and cold_end_label;
2134         check partitioning flag before putting out delta.
2135         (output_ranges): Remove incorrect code attempting to use
2136         hot/cold labels.
2137         (output_line_info): Get cold section label from function struct; test
2138         to make sure cfun is defined.
2139         (add_location_or_const_value_attribute): Likewise.
2140         (dwarf2out_var_location): Likewise.
2141         (dwarf2out_init): Generate cold_text_section_label and cold_end_label;
2142         write out cold_text_section_label if partition flag is set.
2143         (dwarf2out_finish): Write out cold_end_label if partition flag is set;
2144         * function.h (struct function): Add new fields to point to hot/cold
2145         section labels: hot_section_label, cold_section_label,
2146         hot_section_end_label and cold_section_end_label; also add new field
2147         for cold text section name, unlikely_text_section_name.
2148         * opts.c (decode_options): Turn off partitioning flag if
2149         !targetm.have_named_sections.
2150         * output.h (hot_section_label): Remove.
2151         (hot_section_end_label): Remove.
2152         (cold_section_end_label): Remove.
2153         (unlikely_section_label): Remove.
2154         (unlikely_text_section_name): Remove.
2155         * passes.c (rest_of_handle_final):  Remove extra blank line.
2156         * varasm.c (unlikely_section_label): Remove.
2157         (hot_section_label): Remove.
2158         (hot_section_end_label): Remove.
2159         (cold_section_end_label): Remove.
2160         (unlikely_text_section_name):  Remove.
2161         (initialize_cold_section_name): Modify to call
2162         targetm.strip_name_encoding; to store cold section name in current
2163         function struct, if it exists; and to only use the decl_section_name
2164         if flag_named_sections is true.
2165         (unlikely_text_section): Modify to get section name out of current
2166         function struct, if there is one; otherwise build it from
2167         UNLIKELY_EXECUTED_TEXT_SECTION_NAME.
2168         (in_unlikely_text_section): Likewise.
2169         (named_section): Modify to get/put cold section name in current function
2170         struct, if there is one.
2171         (function_section):  Change 'bool unlikely' to 'int reloc'; check
2172         targetm.have_named_sections before calling named_section.
2173         (current_function_section): Likewise.
2174         (assemble_start_function): Modify to get/put unlikely_text_section_name
2175         in current function struct; modify to get hot/cold section labels
2176         from function struct; initialize labels using
2177         ASM_GENERATE_INTERNAL_LABEL;
2178         test partitioning flag before writing out hot section label.
2179         (assemble_end_function): Test partitioning flag before writing out
2180         hot/cold section labels.
2181         (default_section_type_flags_1):  Get cold text section name from
2182         function struct if there is one; Set flags correctly for
2183         cold text section if there is not a current function struct.
2184         
2185 2005-04-27  Richard Guenther  <rguenth@gcc.gnu.org>
2186
2187         * tree-ssa-propagate.c (set_rhs): Revert last change.
2188
2189 2005-04-27  Steve Ellcey  <sje@cup.hp.com>
2190
2191         * explow.c (convert_memory_address): Add gcc_assert.
2192
2193 2005-04-27  Mark Mitchell  <mark@codesourcery.com>
2194
2195         * configure.ac: Check for ld --sysroot support.
2196         * gcc.c: Document %R specifier for specs.
2197         (SYSROOT_SPEC): New macro.
2198         (sysroot_spec): New variable.
2199         (static_specs): Add sysroot_spec.
2200         (main): Pass the sysroot spec to the linker if appropriate.
2201         * configure: Regenerated.
2202         * config.in: Likewise.
2203
2204 2005-04-27  Richard Guenther  <rguenth@gcc.gnu.org>
2205
2206         * fold-const.c (fold_binary): Use build_fold_addr_expr
2207         for address calculation and INDIRECT_REF handling.
2208
2209 2005-04-27  Andrew Haley  <aph@redhat.com>
2210
2211         * postreload-gcse.c (hash_scan_set): Remove bogus assertion.
2212
2213 2005-04-27  Nathan Sidwell  <nathan@codesourcery.com>
2214
2215         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Reserve arm frame
2216         pointer when thumb backtracing is on.
2217
2218         * config/fp-bit.c (abort): Revert change.
2219
2220 2005-04-27  Ian Lance Taylor  <ian@airs.com>
2221
2222         * c-semantics.c (add_stmt): Don't test STATEMENT_CODE_P.
2223
2224 2005-04-27  Kazu Hirata  <kazu@cs.umass.edu>
2225
2226         * tree-ssa-dce.c: Fix a comment typo.
2227
2228 2005-04-27  David S. Miller  <davem@davemloft.net>
2229
2230         * explow.c (allocate_dynamic_stack_space SETJMP_VIA_SAVE_AREA):
2231         Kill setjmpless_size.  current_function_calls_setjmp is completely
2232         computed when we are called, so just use the optimized size value
2233         instead of using REG_SAVE_AREA notes.
2234         (optimize_save_area_alloca): Delete....
2235         * rtl.h (optimize_save_area_alloca): Likewise...
2236         * passes.c (rest_of_compilation): and don't call it any more.
2237         * reg-notes.def (SAVE_AREA): Delete.
2238         
2239 2005-04-27  Nathan Sidwell  <nathan@codesourcery.com>
2240
2241         * config/fp-bit.c (abort): Add noreturn attribute.
2242
2243         * config/avr/avr.c (avr_naked_function_p): Use gcc_assert and
2244         gcc_unreachable as appropriate.
2245         (ptrreg_to_str, cond_string, avr_normalize_condition): Likewise.
2246         * config/avr/avr.h (ASM_OUTPUT_REG_PUSH,
2247         ASM_OUTPUT_REG_POP): Likewise.
2248
2249 2005-04-27  Paolo Bonzini  <bonzini@gnu.org>
2250
2251         * tree-complex.c (expand_vector_operations_1): Do not build
2252         VIEW_CONVERT_EXPR's for the lhs.
2253
2254 2005-04-27  Nathan Sidwell  <nathan@codesourcery.com>
2255
2256         * config/pa/pa.h (PRINT_OPERAND_ADDRESS): Use gcc_assert, remove
2257         unnecessary noncanonical RTL handling.
2258         * config/pa/pa64-linux.h (INITIAL_ELIMINATION_OFFSET): Use
2259         gcc_assert and gcc_unreachable.
2260
2261         * config/arm/arm.h (ARM_PRINT_OPERAND_ADDRESS): Use gcc_assert and
2262         gcc_unreachable as appropriate.
2263         (THUMB_PRINT_OPERAND_ADDRESS): Likewise.
2264         * config/arm/arm.c (arm_override_options, arm_compute_func_type,
2265         use_return_insn, const_ok_for_op, arm_gen_constant,
2266         arm_canonicalize_comparison, legitimize_pic_address,
2267         thumb_find_work_register, arm_load_pic_register, arm_rtx_costs_1,
2268         arm_cirrus_insn_p, cirrus_reorg, minmax_code,
2269         load_multiple_sequence, emit_ldm_seq, store_multiple_sequence,
2270         emit_stm_seq, arm_gen_movmemqi, arm_select_dominance_cc_mode,
2271         arm_select_cc_mode, arm_reload_in_hi, arm_reload_out_hi,
2272         move_minipool_fix_forward_ref, move_minipool_fix_backward_ref,
2273         dump_minipool, create_fix_barrier, push_minipool_fix, arm_reorg,
2274         fp_immediate_constant, fp_const_from_val, vfp_output_fstmx,
2275         output_call, output_mov_long_double_fpa_from_arm,
2276         output_mov_long_double_arm_from_fpa,
2277         output_mov_double_fpa_from_arm, output_mov_double_arm_from_fpa,
2278         output_move_double, arithmetic_instr, shift_op, int_log2,
2279         output_return_instruction, arm_output_function_prologue,
2280         arm_output_epilogue, arm_output_function_epilogue,
2281         emit_multi_reg_push, arm_get_frame_offsets,
2282         arm_compute_initial_elimination_offset, arm_expand_prologue,
2283         arm_print_operand, arm_assemble_integer, get_arm_condition_code,
2284         arm_final_prescan_insn, arm_init_iwmmxt_builtins,
2285         arm_expand_binop_builtin, thumb_pushpop, thumb_far_jump_used_p,
2286         thumb_compute_initial_elimination_offset,
2287         thumb_output_function_prologue, thumb_load_double_from_address,
2288         thumb_output_move_mem_multiple, thumb_reload_out_hi,
2289         arm_emit_vector_const, arm_dbx_register_number): Likewise.
2290         * config/arm/pe.c (arm_mark_dllexport, arm_mark_dllimport): Likewise.
2291         * config/arm/arm.md (thumb_extendhisi2,
2292         *thumb_extendhisi2_insn_v6, *thumb_extendqisi2,
2293         *thumb_extendqisi2_v6, movhi, *thumb_movhi_insn,
2294         thumb_movhi_clobber, movqi, *arm_buneq, *arm_bltgt,
2295         *arm_buneq_reversed, *arm_bltgt_reversed, suneq, sltgt): Likewise.
2296         * config/arm/cirrus.md (*cirrus_arm_movdi,
2297         *cirrus_movdf_hard_insn): Likewise.
2298         * config/arm/vfp.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
2299
2300 2005-04-27  Kazu Hirata  <kazu@cs.umass.edu>
2301
2302         * tree-flow.h (ssa_names): Change the type to VEC(tree,gc).
2303         (num_ssa_names): Use VEC_length.
2304         (ssa_names): Use VEC_index.
2305         * tree-ssanames.c (ssa_names): Change the type to
2306         VEC(tree,gc).
2307         (init_ssanames, fini_ssa_names, make_ssanames,
2308         release_ssa_name): Update uses of ssa_names.
2309
2310         * dojump.c, emit-rtl.c, expmed.c, expr.c, stmt.c, stor-layout.c:
2311         Use fold_buildN instead of fold (buildN (...)).
2312
2313 2005-04-27  Devang Patel <dpatel@apple.com>
2314
2315         * dbxout.c (dbxout_type): Check use_gnu_debug_info_extensions.
2316
2317 2005-04-27  Matt Thomas <matt@3am-software.com>
2318             Jan-Benedict Glaw <jbglaw@microdata-pos.de>
2319
2320         * config/vax/vax.c (vax_rtx_costs): Whitespace cleanup.
2321         (vax_output_mi_thunk): Ditto.
2322         (vax_notice_cc_update): Ditto.
2323         (INDEX_REGISTER_P): Add trailing \.
2324         (BASE_REGISTER_P): Add trailing \.
2325         (legitimate_address_p): Whitespace cleanup.  Remove trailing \.
2326
2327 2005-04-27  Richard Guenther  <rguenth@gcc.gnu.org>
2328
2329         * tree-ssa-propagate.c (set_rhs): Check operand of
2330         ADDR_EXPR for gimpliness, too.
2331
2332 2005-04-27  Kazu Hirata  <kazu@cs.umass.edu>
2333
2334         * tree-ssa-pre.c: Fix a comment typo.
2335
2336 2005-04-27  Zdenek Dvorak  <dvorakz@suse.cz>
2337
2338         PR tree-optimization/21171
2339         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Do not
2340         record address uses if the reference is volatile.
2341
2342 2004-04-27  Paolo Bonzini  <bonzini@gnu.org>
2343
2344         * tree-complex.c (expand_vector_operation): New, extracted from
2345         expand_vector_operations_1.
2346         (tree_vec_extract): Build a NOP_EXPR.
2347         (expand_vec_parallel): Do not care about returning the correct type.
2348         (expand_vector_operations_1): Call expand_vector_operation.
2349         Build the VIEW_CONVERT_EXPR on the left side of MODIFY_EXPRs.
2350
2351         * tree-complex.c (gate_expand_vector_operations): New.
2352         (pass_lower_vector_ssa): Use it.
2353         * tree-optimize.c (init_tree_optimization_passes): Include
2354         pass_lower_vector_ssa.
2355         * tree-vect-transform.c (vect_min_worthwhile_factor): New.
2356         (vectorizable_operation): Use it.
2357         * tree-vectorizer.c (get_vectype_for_scalar_type): Accept
2358         integer modes for the vector type.
2359
2360         * defaults.h (UNITS_PER_SIMD_WORD): Default to UNITS_PER_WORD.
2361         * tree-vect-analyze.c (vect_enhance_data_refs_alignment):
2362         Do not cope with UNITS_PER_SIMD_WORD == 0.
2363         * tree-vectorizer.c (get_vectype_for_scalar_type): Check
2364         if the scalar type is not bigger than UNITS_PER_SIMD_WORD.
2365         (vectorize_loops): Do not check that UNITS_PER_SIMD_WORD > 0.
2366         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Default to UNITS_PER_WORD.
2367         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
2368         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
2369         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
2370
2371         * config/alpha/alpha.h (UNITS_PER_SIMD_WORD): Remove.
2372         * config/bfin/bfin.h (UNITS_PER_SIMD_WORD): Remove.
2373         * config/ia64/ia64.h (UNITS_PER_SIMD_WORD): Remove.
2374
2375         * doc/tm.texi (UNITS_PER_WORD): Rephrase more accurately.
2376         (UNITS_PER_SIMD_WORD): New.
2377
2378 2005-04-27  Nathan Sidwell  <nathan@codesourcery.com>
2379
2380         * config/ia64/ia64.c (ia64_encode_addr_area): Use gcc_assert and
2381         gcc_unreachable as appropriate.
2382         (ia64_expand_load_address, ia64_expand_tls_address,
2383         ia64_split_tmode, ia64_split_tmode_move, ia64_expand_compare,
2384         ia64_expand_vecint_compare, ia64_expand_vecint_minmax,
2385         next_scratch_gr_reg, ia64_initial_elimination_offset,
2386         ia64_expand_prologue, ia64_expand_epilogue,
2387         ia64_output_dwarf_dtprel, ia64_print_operand,
2388         ia64_register_move_cost, first_instruction, rws_access_regno,
2389         update_set_flags, rtx_needs_barrier, group_barrier_needed_p,
2390         ia64_sched_init, ia64_variable_issue,
2391         ia64_first_cycle_multipass_dfs_lookahead_guard,
2392         ia64_dfa_new_cycle, issue_nops_and_insn, get_template, bundling,
2393         ia64_st_address_bypass_p, ia64_ld_address_bypass_p, process_set,
2394         process_for_unwind_directive, ia64_hpux_file_end): Likewise.
2395         * config/ia64/ia64.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise.
2396         * config/ia64/ia64.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
2397         * config/ia64/predicates.md (got_symbolic_operand,
2398         sdata_symbolic_operand): Likewise.
2399         * config/ia64/vect.md (vcondv2sf): Likewise.
2400
2401 2005-04-27  Matt Thomas <matt@3am-software.com>
2402
2403         * config/vax/vax.c (legitimate_constant_address_p): New.  Formerly
2404         CONSTANT_ADDRESS_P in config/vax/vax.h
2405         (legitimate_constant_p): Added.  Formerly CONSTANT_P in vax.h. 
2406         (INDEX_REGISTER_P): New.
2407         (BASE_REGISTER_P): New.
2408         (indirectable_constant_address_p): New.  Adapted from
2409         INDIRECTABLE_CONSTANT_ADDRESS_P in vax.h. Use SYMBOL_REF_LOCAL_P.
2410         (indirectable_address_p): New.  Adapted from
2411         INDIRECTABLE_ADDRESS_P in vax.h.
2412         (nonindexed_address_p): New.  Adapted from
2413         GO_IF_NONINDEXED_ADDRESS in vax.h.
2414         (index_temp_p): New.  Adapted from INDEX_TERM_P in vax.h.
2415         (reg_plus_index_p): New.  Adapted from GO_IF_REG_PLUS_INDEX in vax.h.
2416         (legitimate_address_p): New.  Adapted from
2417         GO_IF_LEGITIMATE_ADDRESS in vax.h.
2418         (vax_mode_dependent_address_p): New.  Adapted from
2419         GO_IF_MODE_DEPENDENT_ADDRESS in vax.h.
2420         * config/vax/vax.h (CONSTANT_ADDRESS_P): Use
2421         legitimate_constant_address_p.
2422         (CONSTANT_P): Use legitimate_constant_p.
2423         (INDIRECTABLE_CONSTANT_ADDRESS_P): Removed.
2424         (INDIRECTABLE_ADDRESS_P): Removed.
2425         (GO_IF_NONINDEXED_ADDRESS): Removed.
2426         (INDEX_TEMP_P): Removed.
2427         (GO_IF_REG_PLUS_INDEX): Removed.
2428         (GO_IF_LEGITIMATE_ADDRESS): Use legitimate_address_p. Two
2429         definitions, depending on whether REG_OK_STRICT is defined.
2430         (GO_IF_MODE_DEPENDENT_ADDRESS): Use vax_mode_dependent_address_p.
2431         Two definitions, depending on whether REG_OK_STRICT is defined.
2432         * config/vax/vax-protos.h (legitimate_constant_address_p): Prototype
2433         added.
2434         (legitimate_constant_p): Prototype added.
2435         (legitimate_address_p): Prototype added.
2436         (vax_mode_dependent_address_p): Prototype added.
2437
2438 2005-04-27  Kazu Hirata  <kazu@cs.umass.edu>
2439
2440         * tree.h (phi_arg_d): Expand a comment in phi_arg_d.
2441
2442 2005-04-27  Joseph S. Myers  <joseph@codesourcery.com>
2443
2444         PR c/21213
2445         * c-decl.c (finish_struct): Don't dereference NULL TYPE_FIELDS of
2446         transparent union.
2447
2448 2005-04-27  Joseph S. Myers  <joseph@codesourcery.com>
2449
2450         PR c/20740
2451         * c-format.c (init_dynamic_asm_fprintf_info): Give errors, not
2452         assertion failures, if __gcc_host_wide_int__ is not properly
2453         defined.
2454         (init_dynamic_diag_info): Give errors, not assertion failures, if
2455         location_t, tree or __gcc_host_wide_int__ are not properly
2456         defined.
2457
2458 2005-04-26  Kazu Hirata  <kazu@cs.umass.edu>
2459
2460         * tree-ssa-loop-ivopts.c (ivopts_data, decl_rtl_to_reset,
2461         n_iv_uses, iv_use, n_iv_cands, iv_cand,
2462         tree_ssa_iv_optimize_init, record_use, add_candidate_1,
2463         prepare_decl_rtl, free_loop_data,
2464         tree_ssa_iv_optimize_finalize): Use the VEC API instead of
2465         VARRAY.
2466
2467         * tree.h (tree_phi_node): Add a comment about the order of PHI
2468         arguments.
2469
2470 2005-04-26  Paul Brook  <paul@codesourcery.com>
2471
2472         * config/arm/arm.md (thumb_mulsi3): Use two-operand assembly form.
2473
2474 2005-04-26  Nathan Sidwell  <nathan@codesourcery.com>
2475
2476         * config/mips.mips.c (mips_legitimize_tls_address): Use
2477         gcc_unreachable.
2478
2479         * config/mmix/mmix.c (mmix_assemble_integer): Use gcc_assert.
2480         * config/mmix/crti.asm (_init): Reword comment to avoid 'abort'.
2481         * config/mmix/mmix.md (nonlocal_goto_receiver): Likewise.
2482
2483         * config/sparc/sparc.h (enum reg_class): Reword comment to avoid
2484         'abort'.
2485
2486 2005-04-26  Jeff Law  <law@redhat.com>
2487
2488         * tree-flow-inline.h (op_iter_next_must_and_may_def): New.
2489         (op_iter_init_must_and_may_def): Likewise.
2490         (unmodifiable_var_p): Move to a later point in the file.
2491         * tree-ssa-operands.h (FOR_EACH_SSA_MUST_AND_MAY_DEF_OPERAND): New.
2492         * tree-ssa-dse.c (need_imm_uses_for): Remove, no longer needed.
2493         (dse_record_phis): Directly check for virtual operands rather than
2494         using need_imm_uses_for.
2495         (dse_optimize_stmt): Handle V_MUST_DEF operands.  Handle case where
2496         store has multiple V_{MAY,MUST}_DEF operands.
2497
2498 2005-04-26  Andrew MacLeod  <amacleod@redhat.com>
2499
2500         * tree-cfg.c (bsi_replace): Delink immediate uses for the original
2501         stmt.
2502
2503 2005-04-26  Kazu Hirata  <kazu@cs.umass.edu>
2504
2505         * tree-cfg.c (lv_adjust_loop_header_phi): Speed up moving a
2506         call to find_edge outside a loop to go through a PHI chain.
2507
2508 2004-04-26  Richard Guenther  <rguenth@gcc.gnu.org>
2509
2510         PR tree-optimization/17598
2511         * fold-const.c (fold_binary): Fold comparisons of addresses
2512         of COMPONENT_REFs which reference the same field to
2513         comparisons of the addresses of the base objects.
2514
2515 2005-04-26  Julian Brown  <julian@codesourcery.com>
2516
2517         * config/arm/arm.c (arm_return_in_msb): New function.
2518         (arm_must_pass_in_stack): New function.
2519         (TARGET_RETURN_IN_MSB): Define target hook.
2520         (TARGET_MUST_PASS_IN_STACK): Define target hook.
2521         (arm_function_value): Pad small aggregate return.
2522         (arm_pad_arg_upward): New function.
2523         (arm_pad_reg_upward): New function.
2524         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Include complex values.
2525         (FUNCTION_ARG_PADDING): Define macro.
2526         (BLOCK_REG_PADDING): Define macro.
2527         (PAD_VARARGS_DOWN): Correct padding for AAPCS.
2528         * config/arm/arm-protos.h (arm_pad_arg_upward): Declare function.
2529         (arm_pad_reg_upward): Declare function.
2530
2531 2005-04-26  Kazu Hirata  <kazu@cs.umass.edu>
2532
2533         * basic-block.h (ei_cond): New.
2534         (FOR_EACH_EDGE): Call ei_cond.
2535
2536         PR tree-optimization/21047
2537         * fold-const.c (fold_binary): Abort on ASSERT_EXPR.
2538         (fold): Don't handle ASSERT_EXPR.
2539
2540 2005-04-25  Roger Sayle  <roger@eyesopen.com>
2541
2542         * sched-deps.c (sched_analyze_1): On STACK_REGS targets, x87, treat
2543         all writes to any stack register as a read/write dependency on
2544         FIRST_STACK_REG.
2545         (sched_analyze_2): Likewise, for reads from any stack register.
2546
2547 2005-04-25  Richard Henderson  <rth@redhat.com>
2548
2549         * final.c (output_addr_const): Revert 2005-04-09 change.
2550
2551 2005-04-25  Mike Stump  <mrs@apple.com>
2552
2553         * config/darwin.c (darwin_encode_section_info): Always set
2554         MACHO_SYMBOL_STATIC for all ! TREE_PUBLIC symbols.
2555
2556 2005-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2557
2558         * collect2.c, gcc.c, gcov-dump.c, gcov.c, gen-protos.c,
2559         gensupport.c, protoize.c, toplev.c: Replace calls to
2560         `unlock_stream' with `unlock_std_streams'.
2561
2562 2005-04-25  Devang Patel <dpatel@apple.com>
2563
2564         * dbxout.c (dbxout_type): Emit attribute vector.
2565         
2566 2005-04-05  Paul Brook  <paul@codesourcery.com>
2567
2568         * target-def.h (TARGET_CXX_USE_AEABI_ATEXIT): Define.
2569         * target.h (struct gcc_target): Add cxx.use_aeabi_atexit.
2570         * config/arm/arm.c (arm_cxx_atexit_name): New function.
2571         (TARGET_CXX_USE_AEABI_ATEXIT): New macro.
2572         * cp/decl.c (get_atexit_node): Reorder arguments for __aeabi_atexit.
2573         (register_dtor_fn): Likewise.
2574         * doc/tm.texi: Document TARGET_CXX_USE_AEABI_ATEXIT.
2575
2576 2005-04-25  Ian Lance Taylor  <ian@airs.com>
2577
2578         * c-common.def (EXPR_STMT): Remove, moved to C++ frontend.
2579         * c-common.h (EXPR_STMT_EXPR): Don't define.
2580         (c_common_stmt_codes): Don't define.
2581         * c-dump.c (c_dump_tree): Remove EXPR_STMT case.
2582         * c-gimplify.c (gimplify_expr_stmt): Remove.
2583         (c_gimplify_expr): Remove EXPR_STMT case.
2584         * c-objc-common.c (c_objc_common_init): Remove stmt_codes and call
2585         to INIT_STATEMENT_CODES.
2586         * c-pretty-print.c (pp_c_statement): Just call dump_generic_node.
2587
2588 2005-04-25  Jan Hubicka  <jh@suse.cz>
2589
2590         * tree-cfg.c (tree_duplicate_bb): Duplicate EH region too.
2591
2592         * except.c: Include diagnostic.h
2593         (dump_eh_tree, verify_eh_tree): New functions.
2594         * except.h (verify_eh_tree, dump_eh_tree, verify_eh_edges): Declare.
2595         * tree-cfg.c (tree_verify_flow_info): verify eh edges.
2596         (dump_function_to_file): dump eh tree.
2597         * tree-eh.c (mark_eh_edge): New function.
2598         (mark_eh_edge_found_error): New static variable.
2599         (verify_eh_edges): New function.
2600
2601 2005-04-25  Nathan Sidwell  <nathan@codesourcery.com>
2602
2603         * tree-ssa-alias.c (fieldoff_t): Remove.
2604         (fieldoff_s): typedef the structure itself.  Create a vector of
2605         objects.
2606         (push_fields_onto_fieldstack): Return count of fields pushed.
2607         Remove peeling of first field.  Adjust.
2608         (fieldoff_compare): Adjust.
2609         (create_overlap_variables_for): Adjust.
2610
2611 2005-04-25  Joseph S. Myers  <joseph@codesourcery.com>
2612
2613         * doc/invoke.texi (Blackfin Options): Avoid empty @opindex line.
2614
2615 2005-04-25  Joseph S. Myers  <joseph@codesourcery.com>
2616
2617         PR bootstrap/21215
2618         * doc/install.texi: Document correct assembler and linker to use
2619         on i?86-*-solaris2.10.
2620
2621 2005-04-25  Steven Bosscher  <stevenb@suse.de>
2622
2623         Fix PR tree-optimization/21173
2624
2625         * tree-ssa-pre.c (create_expression_by_pieces): Simplify code.
2626         Unshare expression we pass to force_gimple_operand.
2627
2628 2005-04-25  J"orn Rennecke <joern.rennecke@st.com>
2629             Stephen Clarke <stevec@superh.com>
2630             Roger Sayle <roger@eyesopen.com>
2631
2632         PR rtl-optimization/20413
2633         * cfgrtl.c (redirect_edge_and_branch): Use Pmode instead of
2634         VOIDmode for LABEL_REF.
2635         * final.c (shorten_branches): Likewise.
2636         * jump.c (mark_all_labels, redirect_exp_1): Likewise.
2637         * loop.c (reg_dead_after_loop): Likewise.
2638         * varasm.c (decode_addr_const): Likewise.
2639         * doc/rtl.texi: Document mode requirement for LABEL_REF.
2640
2641 2005-04-25  Ralf Corsepius  <ralf.corsepius@rtems.org>
2642
2643         * config.gcc (avr-*-*): Remove redundant "case".
2644
2645 2005-04-25  Kazu Hirata  <kazu@cs.umass.edu>
2646
2647         * tree-vect-analyze.c (vect_mark_relevant): Take
2648         VEC(tree,heap) instead of varray_type as an argument.
2649         (vect_mark_stmts_to_be_vectorized): Change the type of
2650         worklist to VEC(tree,heap).  Adjust uses of worklist.
2651
2652 2005-04-24  Devang Patel  <dpatel@apple.com>
2653
2654         *  config/rs6000/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New.
2655         
2656 2005-04-24  Ian Lance Taylor  <ian@airs.com>
2657
2658         * c-semantics.c (build_stmt): Remove test of specific tree codes
2659         for TREE_SIDE_EFFECTS handling.
2660
2661 2005-04-24  Per Bothner  <per@bothner.com>
2662
2663         * c-opts.c (finish_options):  Make the line-number of the <built-in>
2664         location 0, as assumed elsewhere, rather than 1.
2665
2666 2005-04-24  Kazu Hirata  <kazu@cs.umass.edu>
2667
2668         * tree-ssa-uncprop.c (equiv_stack): Change the type o
2669         VEC(tree,heap).
2670         (tree_ssa_uncprop, uncprop_finalize_block,
2671         uncprop_initialize_block): Update uses of equiv_stack.
2672
2673 2005-04-24  Richard Henderson  <rth@redhat.com>
2674
2675         PR rtl-opt/21163
2676         * simplify-rtx.c (simplify_binary_operation) <IOR>: Check
2677         for SCALAR_INT_MODE_P instead of not MODE_CC before returning
2678         constm1_rtx.
2679         <AND, LSHIFTRT, UMIN>: Use CONST0_RTX.
2680         <UDIV, UMOD>: Use CONST0_RTX and CONST1_RTX.
2681         <DIV, MOD>: Likewise.
2682
2683 2005-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2684
2685         * collect2.c (main): Unlock the stdio streams.
2686         * gcc.c (main): Likewise.
2687         * gcov-dump.c (main): Likewise.
2688         * gcov.c (main): Likewise.
2689         * gen-protos.c (main): Likewise.
2690         * gensupport.c (init_md_reader_args_cb): Likewise.
2691         * protoize.c (main): Likewise.
2692         * toplev.c (general_init): Likewise.
2693
2694 2005-04-24  Jakub Jelinek  <jakub@redhat.com>
2695
2696         PR middle-end/20991
2697         * cgraph.h (cgraph_local_info): Add vtable_method field.
2698         * varasm.c (mark_decl_referenced): If cgraph_global_info_ready
2699         and node is vtable_method, finalized and not reachable, don't do
2700         anything.
2701
2702 2005-04-24  Kazu Hirata  <kazu@cs.umass.edu>
2703
2704         * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Use
2705         COMPARISON_CLASS_P.
2706         * tree-ssa-pre.c (create_value_expr_from): Use
2707         CONSTANT_CLASS_P and REFERENCE_CLASS_P.
2708         * tree-ssa-propagate.c (stmt_makes_single_load,
2709         stmt_makes_single_store): Use REFERENCE_CLASS_P.
2710         * tree-vect-transform.c (vect_is_simple_cond): Use
2711         COMPARISON_CLASS_P.
2712         * tree-vrp.c (extract_range_from_assert,
2713         build_assert_expr_for, fp_predicate, has_assert_expr): Use
2714         COMPARISON_CLASS_P.
2715
2716         * tree-ssa-live.c (build_tree_conflict_graph): Change the type
2717         of tpa_to_clear to VEC(int,heap).  Update uses of
2718         tpa_to_clear.  Free tpa_to_clear at the end.
2719
2720 2005-04-24  Andrew Pinski  <pinskia@physics.uc.edu>
2721
2722         * tree.h (TREE_THIS_VOLATILE): Document the effect on a
2723         function decl.
2724
2725 2005-04-24  Nathan Sidwell  <nathan@codesourcery.com>
2726
2727         * config/rs6000/rs6000.c (rs6000_override_options): Use gcc_assert
2728         and gcc_unreachable as appropriate.
2729         (num_insns_constant, output_vec_const_move,
2730         build_mask64_2_operands, rs6000_output_dwarf_dtprel,
2731         rs6000_emit_set_const, rs6000_emit_move,
2732         spe_build_register_parallel, function_arg,
2733         rs6000_move_block_from_reg, altivec_expand_predicate_builtin,
2734         spe_expand_predicate_builtin, spe_expand_evsel_builtin,
2735         rs6000_expand_builtin, spe_init_builtins, altivec_init_builtins,
2736         rs6000_common_init_builtins, expand_block_clear,
2737         expand_block_move, validate_condition_mode, ccr_bit, extract_MB,
2738         extract_ME, rs6000_get_some_local_dynamic_name,
2739         rs6000_output_function_entry, print_operand,
2740         print_operand_address, rs6000_generate_compare, rs6000_emit_sCOND,
2741         output_cbranch, output_e500_flip_gt_bit,
2742         rs6000_emit_vector_compare, rs6000_emit_vector_compare,
2743         rs6000_emit_cmove, rs6000_emit_minmax, rs6000_split_multireg_move,
2744         compute_save_world_info, rs6000_stack_info,
2745         rs6000_emit_load_toc_table, rs6000_frame_related,
2746         spe_synthesize_frame_save, rs6000_emit_epilogue,
2747         rs6000_output_function_epilogue, rs6000_hash_constant, output_toc,
2748         output_function_profiler, rs6000_trampoline_size,
2749         rs6000_initialize_trampoline, find_addr_reg,
2750         rs6000_machopic_legitimize_pic_address,
2751         rs6000_initial_elimination_offset,
2752         rs6000_dbx_register_number): Likewise.
2753         * config/rs6000/rs6000.md (*fix_truncdfsi2_internal,
2754         *movdf_hardfloat32, *movdf_softfloat32, *fix_trunctfsi2_internal,
2755         *movti_power, *movti_string, call, call_value, sibcall,
2756         sibcall_value): Likewise.
2757         * config/rs6000/spe.md (*movdf_e500_double,
2758         *movv2si_internal): Likewise.
2759         * config/rs6000/rs6000.h (PREFERRED_RELOAD_CLASS): Remove 'abort'
2760         from comment.
2761
2762 2005-04-24  Richard Henderson  <rth@redhat.com>
2763
2764         PR target/21101
2765         * config/i386/i386.h (CANNOT_CHANGE_MODE_CLASS): Move guts to ...
2766         * config/i386/i386.c (ix86_cannot_change_mode_class): ... here.
2767         Deny modes smaller than 4 bytes.
2768         * config/i386/i386-protos.h: Update.
2769
2770 2005-04-24  Ralf Corsepius  <ralf.corsepius@rtems.org>
2771
2772         * config.gcc (h8300-*-rtems*): Add h8300-*-rtemscoff*.
2773         Switch h8300-*-rtems* to ELF.
2774
2775 2005-04-24  Kazu Hirata  <kazu@cs.umass.edu>
2776
2777         * vec.h (VEC_safe_grow): Replace grow with safe_grow.
2778
2779 2005-04-23  Kazu Hirata  <kazu@cs.umass.edu>
2780
2781         * ipa-inline.c, tree-ssa-operands.h: Fix comment typos.
2782
2783 2005-04-23  Richard Guenther  <rguenth@gcc.gnu.org>
2784
2785         PR middle-end/21082
2786         * fold-const.c: Fold &a[i]-&a[j] to i-j.
2787
2788 2005-04-23  Zdenek Dvorak  <dvorakz@suse.cz>
2789
2790         * tree-ssa-loop-niter.c (tree_simplify_using_condition): Expand simple
2791         definitions of ssa names in condition.  Split recusive part to ...
2792         (tree_simplify_using_condition_1): New function.
2793         (expand_simple_operations): New function.
2794
2795 2005-04-23  Zdenek Dvorak  <dvorakz@suse.cz>
2796
2797         * tree-ssa-loop-ivopts.c (struct cost_pair): Add value field.
2798         (find_interesting_uses_cond): Do not use integer_zerop and
2799         integer_nonzerop to check for integer constants.
2800         (set_use_iv_cost): Record the value field.
2801         (determine_use_iv_cost_generic, determine_use_iv_cost_address,
2802         determine_use_iv_cost_outer): Set the value field of the cost pair.
2803         (may_eliminate_iv): Do not return the comparison code.
2804         (iv_elimination_compare): New function.
2805         (determine_use_iv_cost_condition): Set the value field.  Record
2806         noneliminable invariants correctly.
2807         (rewrite_use_compare, rewrite_use_outer): Use the value field.
2808
2809 2005-04-23  DJ Delorie  <dj@redhat.com>
2810
2811         * diagnostic.c (warning): Accept parameter to classify warning option.
2812         (warning0): New, for when a pointer to an error() like function is needed.
2813         * errors.c (warning): Likewise.
2814         * errors.h (warning, warning0): Adjust prototypes.
2815         * toplev.h (warning, warning0): Likewise.
2816
2817         * attribs.c, builtins.c, c-common.c, c-decl.c, c-format.c,
2818         c-gimplify.c, c-lex.c, c-objc-common.c, c-opts.c, c-parser.c,
2819         c-pragma.c, c-typeck.c, calls.c, cgraph.c, coverage.c, emit-rtl.c,
2820         fold-const.c, fortran/trans-decl.c, function.c, gcse.c,
2821         genautomata.c, haifa-sched.c, opts.c, passes.c, regclass.c,
2822         reload1.c, stmt.c, stor-layout.c, toplev.c, tree-cfg.c,
2823         tree-dump.c, tree-inline.c, tree-mudflap.c, tree-optimize.c,
2824         tree-ssa.c, tree.c, varasm.c: Adjust warning() callers.
2825
2826         * config/alpha/alpha.c, config/arc/arc.c, config/arm/arm.c,
2827         config/avr/avr.c, config/bfin/bfin.c, config/c4x/c4x-c.c,
2828         config/c4x/c4x.c, config/cris/cris.c, config/darwin-c.c,
2829         config/darwin.c, config/darwin.h, config/h8300/h8300.c,
2830         config/i386/cygming.h, config/i386/djgpp.h, config/i386/i386.c,
2831         config/i386/winnt.c, config/ia64/ia64-c.c, config/ia64/ia64.c,
2832         config/ip2k/ip2k.c, config/m32r/m32r.c, config/m68hc11/m68hc11.c,
2833         config/m68k/m68k.c, config/mcore/mcore.c, config/mips/mips.c,
2834         config/mmix/mmix.c, config/ns32k/ns32k.c, config/pa/pa-hpux11.h,
2835         config/pa/pa.c, config/rs6000/aix43.h, config/rs6000/aix51.h,
2836         config/rs6000/aix52.h, config/rs6000/darwin.h,
2837         config/rs6000/rs6000-c.c, config/rs6000/rs6000.c,
2838         config/s390/s390.c, config/sh/sh.c, config/sh/sh.h,
2839         config/sh/symbian.c, config/sol2-c.c, config/sol2.c,
2840         config/stormy16/stormy16.c, config/v850/v850-c.c,
2841         config/v850/v850.c, config/xtensa/xtensa.c: Adjust warning()
2842         callers.
2843         
2844 2005-04-23  Richard Henderson  <rth@redhat.com>
2845
2846         PR rtl-opt/21102
2847         * simplify-rtx.c (simplify_binary_operation): Fix mode check before
2848         performing some integral scalar simplifications.
2849
2850 2005-04-23  Richard Henderson  <rth@redhat.com>
2851
2852         PR target/21099
2853         * config/i386/i386.c (ix86_split_to_parts): Use proper mode when
2854         simplifying CONST_VECTOR.
2855
2856 2005-04-23  Kazu Hirata  <kazu@cs.umass.edu>
2857
2858         * tree-ssa-live.c (live_worklist): Take a stack allocated on
2859         heap as an argument.  Update uses of stack.
2860         (calculate_live_on_entry): Allocate stack on heap.
2861
2862         * tree-ssa-live.c (build_tree_conflict_graph): Allocate
2863         partition_link and tpa_nodes on heap.
2864
2865         * tree-ssa-dce.c (worklist): Change to VEC(tree,heap).
2866         (mark_stmt_necessary, propagate_necessity,
2867         mark_really_necessary_kill_operand_phis): Update uses of
2868         worklist.
2869         (tree_dce_init): Allocate worklist using VEC_alloc.
2870         (tree_dce_done): Free worklist using VEC_free.
2871
2872 2005-04-23  Mike Stump  <mrs@apple.com>
2873
2874         * config/darwin.c (machopic_indirection_name): Don't use
2875         quotes needlessly.
2876         (darwin_emit_unwind_label): Use user_label_prefix instead of
2877         "_".
2878
2879 2005-04-23  Kazu Hirata  <kazu@cs.umass.edu>
2880
2881         * final.c, ipa-inline.c, varasm.c: Fix comment typos.
2882
2883 2005-04-23  Hans-Peter Nilsson  <hp@axis.com>
2884
2885         * config.gcc <cris-*>: Specify .opt files.
2886         * config/cris/cris.opt, config/cris/elf.opt, config/cris/aout.opt,
2887         config/cris/linux.opt: New files.
2888         * config/cris/aout.h (CRIS_SUBTARGET_SWITCHES)
2889         (CRIS_SUBTARGET_LONG_OPTIONS): Don't define.
2890         (TARGET_ELF): Override to 0.
2891         (CRIS_SUBTARGET_HANDLE_OPTION): Override to handle -melinux and
2892         -melinux-stacksize=N.
2893         * config/cris/cris.c: (cris_handle_option): New function.
2894         (TARGET_DEFAULT_TARGET_FLAGS): Override.
2895         (TARGET_HANDLE_OPTION): Override to cris_handle_option.
2896         (cris_override_options): Use MASK_*, not TARGET_MASK_*.
2897         * config/cris/cris.h (TARGET_MASK_SVINTO, TARGET_SVINTO,
2898         (TARGET_MASK_CCINIT, TARGET_CCINIT, TARGET_MASK_PDEBUG)
2899         (TARGET_PDEBUG, TARGET_MASK_SIDE_EFFECT_PREFIXES)
2900         (TARGET_SIDE_EFFECT_PREFIXES, TARGET_MASK_EXPAND_MUL)
2901         (TARGET_EXPAND_MUL, TARGET_MASK_STACK_ALIGN, TARGET_STACK_ALIGN)
2902         (TARGET_MASK_CONST_ALIGN, TARGET_CONST_ALIGN)
2903         (TARGET_MASK_DATA_ALIGN, TARGET_DATA_ALIGN)
2904         (TARGET_MASK_PROLOGUE_EPILOGUE, TARGET_PROLOGUE_EPILOGUE)
2905         (TARGET_MASK_ETRAX4_ADD, TARGET_ETRAX4_ADD)
2906         (TARGET_MASK_ALIGN_BY_32, TARGET_ALIGN_BY_32, TARGET_MASK_ELF)
2907         (TARGET_ELF, TARGET_MASK_LINUX, TARGET_LINUX)
2908         (TARGET_MASK_AVOID_GOTPLT, TARGET_AVOID_GOTPLT)
2909         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG, TARGET_SWITCHES)
2910         (CRIS_SUBTARGET_SWITCHES, TARGET_OPTIONS)
2911         (CRIS_SUBTARGET_LONG_OPTIONS): Don't define.
2912         (TARGET_LINUX): Define 0.
2913         (TARGET_DEFAULT): Use MASK_*, not TARGET_MASK_*.
2914         (CRIS_SUBTARGET_DEFAULT): Define to 0, not TARGET_MASK_ELF.
2915         (CRIS_SUBTARGET_DEFAULT): New empty default macro.
2916         * config/cris/linux.h (CRIS_SUBTARGET_SWITCHES): Don't define.
2917         (TARGET_LINUX): Override to 1.
2918         (CRIS_SUBTARGET_DEFAULT): Use MASK_*, not TARGET_MASK_*.
2919
2920 2005-04-23  Nathan Sidwell  <nathan@codesourcery.com>
2921
2922         * haifa-sched.c (schedule_block): Fix thinko in previous
2923         assertification patch.
2924
2925 2005-04-23  Richard Sandiford  <rsandifo@redhat.com>
2926
2927         * config.gcc (hppa[12]*-*-hpux10*): Add pa/pa-hpux.opt to
2928         $extra_options.  Also add pa/pa-hpux1010.opt for hpux10.[1-9]*.
2929         (hppa*64*-*-hpux11*): Add pa/pa-hpux1010.h to $tm_file.  Add
2930         pa/pa-hpux.opt, pa/pa-hpux1010.opt and pa/pa64-hpux.opt to
2931         $extra_options.  Also add pa/pa-hpux1111.opt for hpux11.[1-9]*.
2932         (hppa[12]*-*-hpux11*): Add pa/pa-hpux1010.h to $tm_file.  Add
2933         pa/pa-hpux.opt to $extra_options.  Also add pa/pa-hpux1111.opt
2934         for hpux11.[1-9]*.
2935         * config/pa/pa.h (architecture_type, rtx_def, pa_arch_string, pa_arch)
2936         (pa_fixed_range_string, pa_cpu_string, pa_unix_string, target_flags)
2937         (MASK_PA_11, MASK_DISABLE_FPREGS, TARGET_DISABLE_FPREGS)
2938         (MASK_NO_SPACE_REGS, TARGET_NO_SPACE_REGS, MASK_JUMP_IN_DELAY)
2939         (TARGET_JUMP_IN_DELAY, MASK_DISABLE_INDEXING, TARGET_DISABLE_INDEXING)
2940         (MASK_PORTABLE_RUNTIME, TARGET_PORTABLE_RUNTIME, MASK_GAS, TARGET_GAS)
2941         (MASK_SOFT_FLOAT, TARGET_SOFT_FLOAT, MASK_LONG_LOAD_STORE)
2942         (TARGET_LONG_LOAD_STORE, MASK_FAST_INDIRECT_CALLS)
2943         (TARGET_FAST_INDIRECT_CALLS, MASK_BIG_SWITCH, TARGET_BIG_SWITCH)
2944         (MASK_PA_20, MASK_SIO, TARGET_SIO, MASK_GNU_LD, TARGET_GNU_LD)
2945         (MASK_LONG_CALLS, TARGET_LONG_CALLS, TARGET_PA_11, TARGET_PA_20)
2946         (TARGET_SWITCHES, SUBTARGET_SWITCHES, TARGET_OPTIONS)
2947         (SUBTARGET_OPTIONS): Delete.
2948         (TARGET_PA_10): Redefine in terms of TARGET_PA_11 and TARGET_PA_20.
2949         (TARGET_SCHED_DEFAULT): Define to a PROCESSOR_* enum (PROCESSOR_8000)
2950         instead of a string.
2951         * config/pa/pa.c (pa_arch, pa_arch_string, pa_fixed_range_string)
2952         (pa_cpu_string, pa_unix_string): Delete.
2953         (pa_cpu): Initialize to TARGET_SCHED_DEFAULT.
2954         (flag_pa_unix): Initialize based on TARGET_HPUX_11_11 and
2955         TARGET_HPUX_10_10.
2956         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
2957         (pa_handle_option): New function.
2958         (override_options): Remove handling of -march=, -mfixed-range=,
2959         -mschedule= and -munix=.
2960         * config/pa/pa-hpux.h (SUBTARGET_SWITCHES): Delete.
2961         * config/pa/pa-hpux1010.h (SUBTARGET_OPTIONS): Delete.
2962         * config/pa/pa-hpux10.h (SUBTARGET_OPTIONS): Delete.
2963         * config/pa/pa-hpux1111.h (SUBTARGET_OPTIONS): Delete.
2964         * config/pa/pa-hpux11.h (SUBTARGET_OPTIONS): Delete.
2965         * config/pa/pa64-hpux.h (SUBTARGET_SWITCHES): Delete.
2966         * config/pa/pa64-start.h (TARGET_PA_11, TARGET_PA_20): #undef before
2967         redefining.
2968         * config/pa/pa.opt: New file.
2969         * config/pa/pa-hpux.opt: New file.
2970         * config/pa/pa-hpux1010.opt: New file.
2971         * config/pa/pa-hpux1111.opt: New file.
2972         * config/pa/pa64-hpux.opt: New file.
2973
2974 2005-04-22  David S. Miller  <davem@davemloft.net>
2975
2976         * rtl.h (CONST_DOUBLE): Fix comment, a CONST_DOUBLE holds an
2977         integer when it's mode is VOIDmode not DImode.
2978
2979 2005-04-22  Geoffrey Keating  <geoffk@apple.com>
2980
2981         * config/rs6000/rs6000.md (sync_add<mode>_internal,
2982         sync_addshort_internal, sync_sub<mode>_internal, sync_andsi_internal,
2983         sync_anddi_internal, sync_boolsi_internal, sync_booldi_internal,
2984         sync_boolc<mode>_internal, sync_boolc<mode>_internal2,
2985         sync_boolcc<mode>_internal, sync_lock_test_and_set<mode>): Use
2986         "bne- $-xxx" rather than local labels.
2987         (sync_lock_release<mode>): Add second operand.
2988         (lwsync): Use .long rather than a more meaningful opcode.
2989         * doc/md.texi (Standard Names): Add description of second
2990         parameter to sync_lock_test_and_set.
2991
2992 2005-04-23  Kazu Hirata  <kazu@cs.umass.edu>
2993
2994         PR tree-optimization/21088
2995         * fold-const.c (fold_unary, fold_binary, fold_ternary):
2996         Export.
2997         * tree-vrp.c (compare_values): Use fold_binary to compare
2998         pointers.  Use boolean_type_node as the type of a comparison
2999         expression being folded.
3000         * tree.h: Add prototypes for fold_unary, fold_binary,
3001         fold_ternary.
3002
3003         * tree-ssa-dom.c: Fix formatting.
3004
3005 2005-04-22  Diego Novillo  <dnovillo@redhat.com>
3006
3007         * Makefile.in (tree-into-ssa.o): Add dependency on PARAMS_H.
3008         * lambda-code.c (perfect_nestify): Mark virtual operands in
3009         the moved statement for renaming.
3010         * params.def (PARAM_MIN_VIRTUAL_MAPPINGS): Define.
3011         (PARAM_VIRTUAL_MAPPINGS_TO_SYMS_RATIO): Define.
3012         * params.h (MIN_VIRTUAL_MAPPINGS): Define.
3013         (VIRTUAL_MAPPINGS_TO_SYMS_RATIO): Define.
3014         * tree-flow.h (struct var_ann_d): Update comments.
3015         (rewrite_to_new_ssa_names_bb, rewrite_to_new_ssa_names,
3016         allocate_ssa_names, find_phi_node_for, dump_tree_ssa,
3017         debug_tree_ssa, debug_def_blocks, dump_tree_ssa_stats,
3018         debug_tree_ssa_stats, rewrite_ssa_into_ssa,
3019         dump_repl_tbl, debug_repl_tbl, dump_names_replaced_by,
3020         debug_names_replaced_by): Remove declarations.
3021         (delete_update_ssa, get_current_def, set_current_def): Declare.
3022         (rewrite_into_loop_closed_ssa): Add new argument.  Update
3023         all callers.
3024         * tree-into-ssa.c: Include params.h.
3025         (old_virtual_ssa_names): Remove.  Update all users.
3026         (need_to_replace_names_p): Remove.  Update all users.
3027         (struct update_ssa_stats_d): Declare.
3028         (update_ssa_stats): New local.
3029         (dump_tree_ssa, debug_tree_ssa, debug_def_blocks,
3030         dump_tree_ssa_stats, debug_tree_ssa_stats,
3031         dump_update_ssa, debug_update_ssa,
3032         dump_names_replaced_by, debug_names_replaced_by): Declare.
3033         (get_current_def, set current_def): Make extern.
3034         (is_old_name, is_new_name): Protect against references
3035         past the end of the sets.
3036         (add_new_name_mapping): Assert that OLD and NEW are
3037         different SSA names for the same symbol.
3038         When adding a virtual mapping, update stats for virtual
3039         mapping heuristic.
3040         (insert_phi_nodes_for): If UPDATE_P is true, create the
3041         LHS of the new PHI by duplicating SSA name VAR.
3042         (insert_phi_nodes_1): Remove.  Update all users.
3043         (insert_phi_nodes): Remove second argument.  Update all
3044         users.
3045         (maybe_replace_use, maybe_replace_def): New.
3046         (rewrite_update_stmt): Call them.
3047         (mark_def_interesting): Remove calls to is_gimple_reg.
3048         (prepare_phi_args_for_update): Remove.  Update all users.
3049         (prepare_block_for_update): Only process virtual operands
3050         and GIMPLE registers in normal form.
3051         (prepare_use_sites_for): New.
3052         (prepare_names_to_update): Rename from prepare_def_sites.
3053         Call prepare_use_sites_for.
3054         (dump_update_ssa): Rename from dump_repl_tbl.
3055         Update all users.
3056         Show statistics for virtual mapping heuristic.
3057         (debug_update_ssa): Rename from debug_debug_repl_tbl.
3058         (init_update_ssa): Initialize UPDATE_SSA_STATS.
3059         (delete_update_ssa): Make extern.
3060         (mark_set_for_renaming): If the set is empty, do nothing.
3061         (release_ssa_name_after_update_ssa): Update comment.
3062         (insert_updated_phi_nodes_for): Do not remove existing
3063         PHI nodes for symbols.
3064         (switch_virtuals_to_full_rewrite_p): New.
3065         (switch_virtuals_to_full_rewrite): New.
3066         (update_ssa): Call them.
3067         Clear REWRITE_THIS_STMT and REGISTER_DEFS_IN_THIS_STMT
3068         for every statement before updating.
3069         If all the names in NEW_SSA_NAMES have been marked for
3070         removal, do nothing.
3071         Only start at the top of the CFG if there are symbols in
3072         SYMS_TO_RENAME.
3073         (ssa_rewrite_finalize_block): Remove.
3074         (ssa_register_new_def): Remove.
3075         (ssa_rewrite_stmt): Remove.
3076         (ssa_rewrite_phi_arguments): Remove.
3077         (ssa_rewrite_initialize_block): Remove.
3078         (ssa_mark_def_sites): Remove.
3079         (ssa_mark_def_sites_initialize_block): Remove.
3080         (ssa_mark_phi_uses): Remove.
3081         (rewrite_ssa_into_ssa): Remove.
3082         * tree-phinodes.c (find_phi_node_for): Remove.
3083         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
3084         Call update_ssa.
3085         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops):
3086         Remove calls to verify_dominators and
3087         verify_loop_structure.
3088         (tree_unswitch_single_loop): Call update_ssa.
3089         * tree-ssa.c (verify_ssa): Assert that need_ssa_update_p
3090         returns false.
3091         Call verify_stmts.
3092         (delete_tree_ssa): Assert that need_ssa_update_p returns
3093         false.
3094         * tree-vect-transform.c (vect_transform_loop): Call update_ssa.
3095         * tree-vectorizer.c (allocate_new_names, rename_def_op,
3096         free_new_names): Remove.  Update all users.
3097         (rename_use_op): Call get_current_def.
3098         (rename_variables_in_bb): Do not handle any real or
3099         virtual definition.
3100         (slpeel_update_phis_for_duplicate_loop): Call
3101         get_current_def and set_current_def instead of using
3102         SSA_NAME_AUX.
3103         (slpeel_update_phi_nodes_for_guard2): Reformat comments.
3104         (slpeel_can_duplicate_loop_p): Call need_ssa_update_p,
3105         ssa_names_to_replace and delete_update_ssa.
3106         * doc/invoke.texi: Document --param min-virtual-mappings
3107         and --param virtual-mappings-ratio.
3108
3109 2005-04-22  Diego Novillo  <dnovillo@redhat.com>
3110
3111         * tree-cfg.c (tree_duplicate_bb): Call create_new_def_for
3112         for newly created PHI nodes.
3113         Call create_new_def_for for every new V_MAY_DEF and
3114         V_MUST_DEF on the copied statement.
3115         (struct ssa_name_map_entry): Remove.
3116         (ssa_name_map_entry_hash): Remove.
3117         (ssa_name_map_entry_eq): Remove.
3118         (allocate_ssa_names): Remove.
3119         (rewrite_to_new_ssa_names_def): Remove.
3120         (rewrite_to_new_ssa_names_use): Remove.
3121         (rewrite_to_new_ssa_names_bb): Remove.
3122         (rewrite_to_new_ssa_names): Remove.
3123         (tree_duplicate_sese_region): Remove variables ver,
3124         definitions, phi, ssa_name_map and bi.
3125         Call need_ssa_update_p instead of any_marked_for_rewrite_p.
3126         Call update_ssa.
3127         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
3128         update_ssa instead of rewrite_ssa_into_ssa.
3129         * tree-ssa-loop-manip.c (add_exit_phis_edge): Call
3130         create_new_def_for.
3131         (find_uses_to_rename_use): Add argument 'need_phis'.
3132         (find_uses_to_rename_stmt): Do not scan virtual operands.
3133         (find_uses_to_rename): Only scan PHI nodes for
3134         non-virtual names.
3135         (rewrite_into_loop_closed_ssa): Call update_ssa.
3136         (check_loop_closed_ssa_use): Ignore virtual operands.
3137         (check_loop_closed_ssa_stmt): Likewise.
3138         (verify_loop_closed_ssa): Do nothing if CURRENT_LOOPS is
3139         NULL.
3140         (rename_variables, set_phi_def_stmts): Remove.
3141         (tree_duplicate_loop_to_header_edge): Reformat comment.
3142         Remove variables BB, I and DEFINITIONS.
3143         Call need_ssa_update_p.
3144         Call update_ssa.
3145         (lv_adjust_loop_header_phi): Reformat comment.
3146         * tree-ssanames.c (ssa_names_to_rewrite): Remove.
3147         (marked_for_rewrite_p, any_marked_for_rewrite_p,
3148         mark_for_rewrite, unmark_all_for_rewrite,
3149         marked_ssa_names): Remove.  Update all users.
3150         (release_ssa_name): If VAR has been registered for SSA
3151         updating, do nothing.
3152         * tree-vrp.c (new_ssa_names, old_ssa_names): Remove.
3153         (build_assert_expr_for): Call register_new_name_mapping.
3154         (insert_range_assertions): Update call to update_ssa.
3155         * tree.h (mark_for_rewrite, unmark_all_for_rewrite,
3156         marked_for_rewrite_p, any_marked_for_rewrite_p,
3157         marked_ssa_names): Remove.
3158
3159 2005-04-22  Jeff Law  <law@redhat.com>
3160
3161         * tree-ssa-dom.c (block_defs_stack): Remove, no longer needed.
3162         (restore_currdefs_to_original_value): Likewise.
3163         (register_definitions_for_stmt): Likewise.
3164         (tree_ssa_dominator_optimize): No longer initialize CURRENT_DEF
3165         for each variable.  Do not allocate/free block_defs_stack either.
3166         Do not iterate if we just thread jumps.  Only iterate if the
3167         tree_cleanup_cfg does useful work (temporary).
3168         (dom_opt_initialize_block): No longer push a marker on
3169         BLOCK_DEFS_STACK.
3170         (dom_opt_finalize_block): Removal call to restore currdefs.
3171         Relax restrictions for recording edge equivalences.
3172         (record_equivalences_from_phis): No longer need to track
3173         CURRENT_DEF.
3174         (optimize_stmt): Similarly.
3175         (thread_across_edge): Simplify by removing the requirement that
3176         statements in the block we are threading through must be nops.
3177         (initialize_hash_element): Handle GOTO_EXPR.
3178
3179 2005-04-22  David S. Miller  <davem@davemloft.net>
3180
3181         * sched-vis.c (print_value): Use CONST_DOUBLE_LOW and
3182         CONST_DOUBLE_HIGH.
3183         * config/sparc/sparc.c (sparc_rtx_costs): Likewise, and
3184         fix check on CONST_DOUBLE mode.  It should be VOIDmode
3185         when it is representing an integer.
3186
3187 2005-04-22  Nathan Sidwell  <nathan@codesourcery.com>
3188
3189         * builtins.c (gimplify_va_arg_expr): Reword comments to avoid
3190         'abort'. Use gcc_assert and gcc_unreachable as appropriate.
3191         * c-format.c (get_constant, decode_format_attr, get_flag_spec, 
3192         find_char_info_specifier_index,
3193         find_length_info_modifier_index): Likewise.
3194         * c-typeck.c (composite_type, pop_init_level): Likewise.
3195         * combine.c (cant_combine_insn_p, try_combine): Likewise.
3196         * cse.c (cse_insn): Likewise
3197         * dominance.c (calc_dfs_tree): Likewise
3198         dwarf2out.c (loc_descriptor_from_tree_1,
3199         add_abstract_origin_attribute, force_decl_die,
3200         force_type_die): Likewise
3201         emit-rtl.c (operand_subword_force): Likewise
3202         explow.c (hard_function_value): Likewise
3203         expmed.c (store_bit_field, expand_divmod,
3204         emit_store_flag_force): Likewise
3205         expr.c (emit_move_multi_word, store_expr,
3206         expand_expr_real_1): Likewise
3207         final.c (this_is_asm_operands, shorten_branches, final_scan_insn,
3208         output_operand): Likewise
3209         flow.c (recompute_reg_usage): Likewise
3210         * function.c (assign_stack_temp_for_type, assign_temp, 
3211         handle_epilogue_set): Likewise
3212         * genextract.c (main): Likewise
3213         * gimplify.c (mostly_copy_tree_r, gimplify_return_expr,
3214         gimplify_modify_expr_rhs, gimplify_expr): Likewise
3215         * haifa-sched.c (ready_lastpos, ready_remove_first, ready_element,
3216         ready_remove, rm_line_notes, rm_other_notes,
3217         schedule_block): Likewise
3218         mips-tfile.c (copy_object, out_of_bounds): Likewise
3219
3220 2005-04-22 David Edelsohn  <edelsohn@gnu.org>
3221
3222         PR target/20813
3223         * config/rs6000/default64.h (TARGET_DEFAULT): Add MASK_PPC_GFXOPT.
3224         * config/rs6000/rs6000.c (processor_target_table): Rename rs64a to
3225         rs64.  Add MASK_PPC_GFXOPT to powerpc64 and rs64.
3226         (rs6000_init_libfuncs): Set TFmode optabs to xlq names if
3227         TARGET_XL_COMPAT.
3228         * doc/invoke.texi (PowerPC options): Change rs64a to rs64.
3229
3230 2005-04-22  Nathan Sidwell  <nathan@codesourcery.com>
3231
3232         * lambda-code.c: Define VEC(int,heap), VEC(lambda_loop,heap).
3233         (gcc_tree_to_linear_expression): Convert to heap allocated
3234         vectors.
3235         (gcc_loop_to_lambda_loop, gcc_loopnest_to_lambda_loopnest,
3236         lbv_to_gcc_expression, lle_to_gcc_expression,
3237         lambda_loopnest_to_gcc_loopnest, can_convert_to_perfect_nest, 
3238         perfect_nestify): Likewise.
3239         lambda.h (gcc_loopnest_to_lambda_loopnest,
3240         lambda_loopnest_to_gcc_loopnest): Likewise.
3241         tree-loop-linear.c (linear_transform_loops): Likewise.
3242
3243 2005-04-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
3244
3245         * config/sparc/predicates.md (arith_double_operand): Use
3246         trunc_int_for_mode if HOST_BITS_PER_WIDE_INT >=64.
3247         * config/sparc/sparc.md (movqi, movhi, movsi, movqi): Use gen_int_mode.
3248         (DImode, DFmode constant splitters): Likewise.  Remove code for
3249         TARGET_ARCH64 && HOST_BITS_PER_WIDE_INT < 64.
3250         (logical constant splitters): Use const_int_operand predicate.
3251         (lshrsi3_extend): Remove code for TARGET_ARCH64 &&
3252         HOST_BITS_PER_WIDE_INT < 64.
3253
3254 2005-04-22  Nathan Sidwell  <nathan@codesourcery.com>
3255
3256         * config/pa/pa.c (legitimize_pic_address): Use gcc_assert and
3257         gcc_unreachable as appropriate.
3258         (force_mode, emit_move_sequence, singlemove_string,
3259         output_move_double, output_fp_move_double, find_addr_reg,
3260         output_block_move, output_block_clear, output_and,
3261         output_64bit_and, output_ior, output_64bit_ior, store_reg_modify,
3262         pa_adjust_cost, pa_issue_rate, print_operand,
3263         output_global_address, output_arg_descriptor, output_cbranch,
3264         output_lbranch, output_bb, output_bvb, output_dbra, output_movb,
3265         output_call): Likewise.
3266         * config/pa/pa.md (call, call_value, sibcall, sibcall_value,
3267         prefetch, prefetch_cc, prefetch_nocc): Likewise.
3268
3269 2005-04-22  Zdenek Dvorak  <dvorakz@suse.cz>
3270
3271         * Makefile.in (LIBGCOV): Add _gcov_interval_profiler,
3272         _gcov_pow2_profiler and _gcov_one_value_profiler.
3273         (tree-profile.o): Add GGC_H and gt-tree-profile.h dependency.
3274         (GTFILES): Add $(srcdir)/tree-profile.c.
3275         * gcov-io.h (__gcov_interval_profiler, __gcov_pow2_profiler,
3276         __gcov_one_value_profiler): Declare.
3277         * gimplify.c (force_gimple_operand): Check whether the statements
3278         should be produced in ssa form.
3279         (force_gimple_operand_bsi): New function.
3280         * libgcov.c (__gcov_interval_profiler, __gcov_pow2_profiler,
3281         __gcov_one_value_profiler): New functions.
3282         * rtl-profile.c (rtl_gen_pow2_profiler): Only measure whether
3283         the profiled value is a power of two or not.
3284         * tree-cfg.c (tree_block_ends_with_condjump_p): Handle empty blocks.
3285         * tree-flow.h (in_ssa_p): Declare.
3286         (force_gimple_operand_bsi): Declare.
3287         * tree-into-ssa.c (in_ssa_p): New variable.
3288         (rewrite_into_ssa): Set in_ssa_p.
3289         * tree-outof-ssa.c (rewrite_out_of_ssa): Set in_ssa_p.
3290         * tree-profile.c: Include ggc.h and gt-tree-profile.h.
3291         (gcov_type_node, tree_interval_profiler_fn, tree_pow2_profiler_fn,
3292         tree_one_value_profiler_fn): New variables.
3293         (tree_init_edge_profiler): Initialize the profiler function decls.
3294         (tree_gen_edge_profiler): Use global gcov_type_node.
3295         (prepare_instrumented_value): New function.
3296         (tree_gen_interval_profiler, tree_gen_interval_profiler,
3297         tree_gen_one_value_profiler): Call the library functions instead of
3298         creating instrumentation code.
3299         * tree.c (build_fn_decl): New function.
3300         * tree.h (build_fn_decl): Declare.
3301         * value-prof.c (rtl_divmod_values_to_profile,
3302         rtl_find_values_to_profile, rtl_mod_pow2_value_transform,
3303         tree_mod_pow2_value_transform, tree_find_values_to_profile):
3304         Do not handle may_be_other and precise values of exponents at pow2
3305         profiler.
3306         (tree_mod_subtract_transform): Reflect that value field of
3307         histogram has changed meaning.
3308         (tree_divmod_values_to_profile): Record the values correctly.
3309         (tree_values_to_profile): Update comment.
3310         * value-prof.h (struct histogram_value_t): Remove pow2 data.
3311
3312 2005-04-22  Joseph S. Myers  <joseph@codesourcery.com>
3313
3314         * varasm.c (do_assemble_alias): Return early if TREE_ASM_WRITTEN
3315         (decl).
3316
3317 2005-04-22  Nathan Sidwell  <nathan@codesourcery.com>
3318
3319         * config/i386/i386.md (length_immediate): Use gcc_assert or
3320         gcc_unreachable, as appropriate.
3321         (*movsi_1, *movqi_1, reload_outqi, *movdi_1_rex64, *pushsf,
3322         *pushsf_rex64, *truncxfsf2_mixed, *truncxfsf2_i387,
3323         *truncxfdf2_mixed, *truncxfdf2_i387, *adddi_1_rex64,
3324         *adddi_2_rex64, *adddi_3_rex64, *adddi_4_rex64, *adddi_5_rex64,
3325         *addsi_1, addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
3326         *addsi_3_zext, *addsi_4, *addsi_5, *addhi_1_lea, *addhi_1,
3327         *addhi_2, *addhi_3, *addhi_4, *addhi_5, *addqi_1_lea, *addqi_1,
3328         *addqi_1_slp, *addqi_2, *addqi_3, *addqi_4, *addqi_5, addqi_ext_1,
3329         *addqi_ext_1_rex64, *anddi_1_rex64, *andsi_1, *andhi_1,
3330         *ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashlsi3_1, *ashlsi3_1_zext,
3331         *ashlsi3_cmp, *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1,
3332         *ashlhi3_cmp, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
3333         pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64,
3334         pro_epilogue_adjust_stack_rex64_2, prefetch, *prefetch_sse,
3335         *prefetch_sse_rex): Likewise.
3336         * config/i386/predicates.md (x86_64_immediate_operand,
3337         x86_64_zext_immediate_operand, symbolic_operand,
3338         no_seg_address_operand, aligned_operand,
3339         memory_displacement_operand): Likewise.
3340         * config/i386/sse.md (*mov<mode>_internal,
3341         *movv2df_internal): Likewise.
3342
3343 2005-04-22  Jan Hubicka  <jh@suse.cz>
3344
3345         * Makefile.in (ipa.o, ipa-inline.o): New files.
3346         * cgraph.h (cgraph_remove_unreachable_nodes, cgraph_postorder,
3347         cgraph_decide_inlining_incrementally, cgraph_clone_inlined_nodes,
3348         cgraph_mark_inline_edge, cgraph_default_inline_p): Declare.
3349         * cgraphunit.c (cgraph_default_inline_p,
3350         cgraph_decide_inlining_incrementally,  ncalls_inlined,
3351         nfunctions_inlined, initial_insns, overall_insns, 
3352         cgraph_estimate_size_after_inlining, cgraph_estimate_growth,
3353         cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
3354         cgraph_mark_inline, cgraph_check_inline_limits,
3355         cgraph_default_inline_p, cgraph_recursive_inlining_p,
3356         update_callee_keys, lookup_recursive_calls,
3357         cgraph_decide_recursive_inlining, cgraph_set_inline_failed,
3358         cgraph_decide_inlining_of_small_functions, cgraph_decide_inlining,
3359         cgraph_decide_inlining_incrementally, cgraph_gate_inlining,
3360         pass_ipa_inline): Move to ipa-inline.c
3361         (cgraph_postorder, cgraph_remove_unreachable_nodes): Move to ipa.c
3362         * ipa.c: New file.
3363         * ipa-inline.c: New file.
3364
3365 2005-04-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
3366
3367         * doc/invoke.texi (SPARC options): Document that -mapp-regs
3368         is turned off by default on Solaris.
3369
3370 2005-04-21  Roger Sayle  <roger@eyesopen.com>
3371