OSDN Git Service

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