OSDN Git Service

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