OSDN Git Service

* crtstuff.c: Revert part of 2005-05-08 Change.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2005-05-10  Nathan Sidwell  <nathan@codesourcery.com>
2
3         * crtstuff.c: Revert part of 2005-05-08 Change.
4         (IN_LIBGCC2): Define.
5
6 2005-05-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
7
8         * config/sparc/sparc.c (fp_sethi_p): Test !SPARC_SIMM13_P and
9         remove redundant test.
10         (fp_mov_p): Accept 0.
11         (fp_high_losum_p): Remove redundant test.
12         * config/sparc/predicates.md (const_high_operand): Explicitly test
13         (not small_int_operand).
14         (fp_const_high_losum_operand): New.
15         * config/sparc/sparc.md (movsi_insn): Do not emit 'clr'.  Reorder.
16         (movdi_insn_sp32_v9): Use canonical predicates.
17         (movdi_insn_sp32): Test !TARGET_V9 instead of !TARGET_ARCH64.
18         (movdi_insn_sp64_novis): Delete.
19         (movdi_insn_sp64_vis): Rename into movdi_insn_sp64.
20         (movsf_insn_novis): Delete.
21         (movsf_insn_vis): Rename into movsf_insn.
22         (movsf_no_f_insn): Rename into movsf_insn_no_fpu.
23         (movsf_lo_sum): Use fp_const_high_losum_operand.
24         (movsf_high): Likewise.
25         (movsf_high_losum splitter): Likewise.
26         (mov<V32:mode> expander): Use register_or_zero_operand.
27         (mov<V64:mode> expander): Likewise.
28         (movdf_insn_sp32): Use register_or_zero_operand.
29         (movdf_no_e_insn_sp32): Use register_or_zero_operand.
30         Rename into movdf_insn_sp32_no_fpu.
31         (movdf_no_e_insn_v9_sp32): Use register_or_zero_operand.
32         Rename into movdf_insn_sp32_v9_no_fpu.
33         (movdf_insn_v9only_novis): Delete.
34         (movdf_insn_v9only_vis): Rename into movdf_insn_sp32_v9.
35         (movdf_insn_sp64_novis): Delete.
36         (movdf_insn_sp64_vis): Rename into movdf_insn_sp64.
37         (movdf_no_e_insn_sp64): Use register_or_zero_operand. 
38         Rename into movdf_insn_sp64_no_fpu.
39         (movtf expander): Use register_or_zero_operand.
40         (movtf_insn_sp32): Delete.
41         (movtf_insn_vis_sp32): Use register_or_zero_operand.
42         Rename into movtf_insn_sp32.
43         (movtf_no_e_insn_sp32): Use register_or_zero_operand.
44         Rename into movtf_insn_sp32_no_fpu.
45         (movtf_insn_hq_sp64): Delete.
46         (movtf_insn_hq_vis_sp64): Use register_or_zero_operand.
47         Rename into movtf_insn_sp64_hq.
48         (movtf_insn_sp64): Delete.
49         (movtf_insn_vis_sp64): Use register_or_zero_operand.
50         Rename into movtf_insn_sp64.
51         (movtf_no_e_insn_sp64): Use register_or_zero_operand.
52         Rename into movtf_insn_sp64_no_fpu.
53
54 2005-05-10  Nathan Sidwell  <nathan@codesourcery.com>
55
56         * config/stormy16/stormy16.c (xstormy16_emit_cbranch): Use
57         gcc_assert and gcc_unreachable as appropriate.
58         (xstormy16_split_cbranch, xstormy16_output_cbranch_hi,
59         xstormy16_output_cbranch_si, xstormy16_split_move,
60         xstormy16_initial_elimination_offset,
61         xstormy16_encode_section_info, xstormy16_print_operand_address,
62         xstormy16_expand_call, xstormy16_expand_arith,
63         xstormy16_output_shift, xstormy16_init_builtins): Likewise.
64
65 2005-05-10  Kazu Hirata  <kazu@cs.umass.edu>
66
67         * tree-outof-ssa.c (_elim_graph): Change the type of nodes and
68         const_copies to VEC(tree,heap)*.
69         (new_elim_graph, delete_elim_graph, elim_graph_size,
70         elim_graph_add_node, eliminate_build, eliminate_phi): Use VEC
71         instead of VARRAY.
72
73 2005-05-10  Joseph S. Myers  <joseph@codesourcery.com>
74
75         PR other/21052
76         * doc/extend.texi (Type Attributes): Correct example syntax.
77
78 2005-05-09  Joseph S. Myers  <joseph@codesourcery.com>
79
80         PR c/21160
81         * doc/invoke.texi (-Wuninitialized): Update documentation.
82
83 2005-05-09  Richard Earnshaw  <richard.earnshaw@arm.com>
84
85         * arm.c (const_ok_for_arm): Use a faster algorithm.
86
87 2005-05-09  David Edelsohn  <edelsohn@gnu.org>
88
89         PR target/21477
90         * config/rs6000/rs6000.md (add_op2): New.
91         (add<mode>3): Use it.
92
93 2005-05-09  Richard Earnshaw  <richard.earnshaw@arm.com>
94
95         * arm.c (arm_gen_constant): Add new heuristic for generating
96         constant integers that can be expressed as the difference of two
97         valid immediates.
98
99 2005-05-09  Roger Sayle  <roger@eyesopen.com>
100
101         * c-tree.h (parser_build_unary_op): New prototype.
102         * c-typeck.c (parser_build_unary_op): New function to construct
103         a unary operation in the C parser.
104         * c-parser.c (c_parser_unary_expression):  Use the new function
105         parser_build_unary_op when appropriate.
106
107 2005-05-09  Mark Mitchell  <mark@codesourcery.com>
108
109         PR 18655
110         * dwarf2out.c (output_call_frame_info): Use DWARF2_FRAME_REG_OUT
111         before outputting DWARF_FRAME_RETURN_COLUMN.
112
113 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
114
115         * config/s390/s390.c: (s390_branch_condition_mask,
116         s390_branch_condition_mnemonic, s390_extra_constraint_str,
117         s390_const_ok_for_constraint_p, s390_expand_plus_operand,
118         legitimize_pic_address, s390_emit_tls_call_insn,
119         legitimize_tls_address, legitimize_tls_address,
120         s390_expand_addcc, print_shift_count_operand, print_operand,
121         addr_generation_dependency_p, annotate_constant_pool_refs,
122         s390_split_branches, find_constant_pool_ref,
123         replace_constant_pool_ref, s390_add_constant, s390_find_constant,
124         s390_find_execute, s390_mainpool_start, s390_chunkify_start,
125         s390_output_pool_entry, s390_function_value,
126         s390_call_saved_register_used, s390_emit_call): Replace
127         conditional aborts by gcc_assert and unconditional by gcc_unreachable.
128         (s390_select_ccmode, s390_match_ccmode_set, s390_extract_part,
129         s390_cannot_force_const_mem, s390_output_dwarf_dtprel,
130         get_some_local_dynamic_name, s390_function_arg_size,
131         s390_function_arg_advance, s390_function_arg,
132         s390_expand_builtin, s390_gen_rtx_const_DI): Replace abort in
133         default case by gcc_unreachable.
134         * config/s390/s390.md: ("*cjump_31", "*icjump_31", "*jump31"): Replace
135         conditional abort by gcc_assert.
136         ("doloop_si31"): Replace abort in last else by gcc_unreachable.
137         ("main_pool", "pool"): Replace unconditional abort by gcc_unreachable.
138
139 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
140
141         * config/s390/s390.c: (s390_decompose_address,
142         tls_symbolic_operand, legitimate_pic_operand_p,
143         legitimate_constant_p, legitimate_reload_constant_p,
144         s390_expand_plus_operand, legitimate_address_p,
145         legitimate_la_operand_p, ): Remove 'register' from signature.
146         (symbolic_reference_mentioned_p,
147         tls_symbolic_reference_mentioned_p): Remove 'register' from local
148         variable declarations.
149         (legitimize_address): Remove 'register' from
150         signature and local variable declarations.
151
152 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
153
154         * config/s390/s390-protos.h: (s390_match_ccmode,
155         s390_match_ccmode_set, reg_used_in_mem_p,
156         symbolic_reference_mentioned_p, tls_symbolic_reference_mentioned_p,
157         legitimate_la_operand_p, preferred_la_operand_p,
158         s390_short_displacement, addr_generation_dependency_p,
159         legitimate_reload_constant_p, legitimate_address_p): Change return type
160         into 'bool'.
161         (s390_tm_ccmode): Change type of parameter "mixed" into 'bool'. 
162         * config/s390/s390.c: (s390_match_ccmode,
163         symbolic_reference_mentioned_p, tls_symbolic_reference_mentioned_p,
164         legitimate_reload_constant_p): Change return type into 'bool'.
165         (preferred_la_operand_p,legitimate_la_operand_p, legitimate_address_p):
166         Likewise.  Additionally adapted comment.  
167         (s390_extra_constraint_p): Change Comment to reflect 'int' return type.
168         (s390_tm_ccmode): Change type of parameter "mixed" into 'bool'. 
169         (s390_decompose_address): Change the type of the internal flags
170         "pointer", "base_ptr", "indx_ptr", and the return value into 'bool'.
171         (struct s390_address): Change type of "pointer" into bool.
172         * config/s390/s390.md: ("*tmdi_reg", "*tmsi_reg", "tm<mode>_full"):
173         Adapt calls for 's390_tm_ccmode' to the new signature.
174
175 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
176
177         * config/s390/s390.c: (s390_match_ccmode_set,
178         s390_branch_condition_mnemonic, s390_short_displacement,
179         s390_decompose_address, get_thread_pointer, legitimize_tls_address,
180         print_shift_count_operand, get_some_local_dynamic_name,
181         get_some_local_dynamic_name_1, reg_used_in_mem_p,
182         addr_generation_dependency_p, s390_split_branches,
183         annotate_constant_pool_refs, find_constant_pool_ref,
184         replace_constant_pool_ref, find_ltrel_base, replace_ltrel_base,
185         s390_optimize_prologue, find_unused_clobbered_reg, s390_frame_area,
186         s390_register_info, s390_frame_info, s390_init_frame_layout,
187         s390_update_frame_layout, save_fpr, restore_fpr, save_gprs,
188         restore_gprs, s390_function_arg_size, s390_function_arg_float,
189         s390_init_machine_status, s390_assemble_integer, s390_handle_option,
190         s390_encode_section_info, s390_cannot_force_const_mem,
191         s390_delegitimize_address, s390_return_in_memory, s390_init_builtins,
192         s390_expand_builtin, s390_output_mi_thunk, s390_safe_attr_type,
193         s390_adjust_priority, s390_issue_rate,
194         s390_first_cycle_multipass_dfa_lookahead, s390_cannot_copy_insn_p,
195         s390_rtx_costs, s390_address_cost, s390_reorg, s390_valid_pointer_mode,
196         s390_build_builtin_va_list, s390_gimplify_va_arg,
197         s390_function_ok_for_sibcall, s390_call_saved_register_used,
198         s390_pass_by_reference, s390_fixed_condition_code_regs,
199         s390_cc_modes_compatible s390_mainpool_start,, s390_mainpool_finish,
200         s390_mainpool_cancel, s390_chunkify_start, s390_chunkify_finish,
201         s390_chunkify_cancel, s390_start_pool, s390_end_pool,
202         s390_add_pool_insn, s390_find_pool, s390_add_constant,
203         s390_find_constant, s390_add_execute, s390_find_execute,
204         s390_execute_label, s390_execute_target, s390_dump_pool,
205         s390_dump_execute, s390_alloc_pool, s390_free_pool): Remove prototypes. 
206         Move target macro definitions to the end of the file.  Move several
207         functions within the file to assure correct compiling.
208
209 2005-05-09  Steven Bosscher  <stevenb@suse.de>
210
211         * calls.c (purge_reg_equiv_notes): Remove, fold into...
212         (fixup_tail_calls): ...here.  Only look at insns between the
213         start of the function and the FUNCTION_BEG insn note.
214
215         * gcse.c (one_cprop_pass): Fix typos in dumps.
216
217         * tree-ssa-operands.h (FOR_EACH_PHI_ARG): Fix typos.
218
219 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
220
221         * config/s390/s390.h: Move xxx_REGNUM definitions to s390.md.
222         * config/s390/s390.md: ("SIBCALL_REGNUM", "BASE_REGNUM",
223         "RETURN_REGNUM", "CC_REGNUM", "TP_REGNUM"): New constants.
224         Replace every occurrence of '(reg:<MODE> 33)' by '(reg:<MODE>
225         CC_REGNUM)'.
226         ("get_tp_64", "get_tp_31", "set_tp_64", "set_tp_31"): Replace
227         '(reg:<MODE> 36)' by '(reg:<MODE> TP_REGNUM)'.
228         ("*sibcall_br", "*sibcall_value_br"): Replace '(reg:DI 1)' by '(reg:DI
229         REG_SC)'.
230
231 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
232
233         * config/s390/s390.md: ("gf") New mode attribute.
234         ("fixuns_truncdfdi2", "fixuns_truncdfsi2", "fixuns_truncsfdi2",
235         "fixuns_truncsfsi2"): Merge.
236         ("fix_truncdfdi2", "fix_truncsfdi2"): Merge.
237         ("fix_truncdfdi2_ieee", "fix_truncdfsi2_ieee", "fix_truncsfdi2_ieee",
238         "fix_truncsfsi2_ieee"): Merge.
239
240 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
241
242         * config/s390/s390.md: ("FPR") New mode macro.
243         ("de", "dee"): New mode attributes.
244         ("cmpdf", "cmpsf"): Merge.
245         ("*cmpdf_ccs_0", "*cmpsf_ccs_0"): Merge.
246         ("*cmpdf_ccs_0_ibm", "*cmpdf_ccs_0_ibm"): Merge.
247         ("*cmpdf_ccs", "*cmpsf_ccs"): Merge.
248         ("*cmpdf_ccs_ibm", "*cmpsf_ccs_ibm"): Merge.
249         ("floatdidf2", "floatdisf2"): Merge.
250         ("adddf3", "addsf3"): Merge.
251         ("*adddf3", "*addsf3"): Merge.
252         ("*adddf3_cc", "*addsf3_cc"): Merge.
253         ("*adddf3_cconly", "*addsf3_cconly"): Merge.
254         ("*adddf3_ibm", "*addsf3_ibm"): Merge.
255         ("subdf3", "subsf3"): Merge.
256         ("*subdf3", "*subsf3"): Merge.
257         ("*subdf3_cc", "*subsf3_cc"): Merge.
258         ("*subdf3_cconly", "*subsf3_cconly"): Merge.
259         ("*subdf3_ibm", "*subsf3_ibm"): Merge.
260         ("muldf3", "mulsf3"): Merge.
261         ("*muldf3", "*mulsf3" "): Merge.
262         ("*muldf3_ibm", "*mulsf3_ibm"): Merge.
263         ("*fmadddf", "*fmaddsf"): Merge.
264         ("*fmsubdf", "*fmsubsf"): Merge.
265         ("divdf3", "divsf3"): Merge.
266         ("*divdf3", "*divsf3"): Merge.
267         ("*divdf3_ibm", "*divsf3_ibm"): Merge.
268         ("negdf2", "negsf2"): Merge.
269         ("*negdf2_cc", "*negsf2_cc"): Merge.
270         ("*negdf2_cconly", "*negsf2_cconly"): Merge.
271         ("*negdf2", "*negsf2"): Merge.
272         ("*negdf2_ibm", "*negsf2_ibm"): Merge.
273         ("absdf2", "abssf2"): Merge.
274         ("*absdf2_cc", "*abssf2_cc"): Merge.
275         ("*absdf2_cconly", "*abssf2_cconly"): Merge.
276         ("*absdf2", "*abssf2"): Merge.
277         ("*absdf2_ibm", "*abssf2_ibm"): Merge.
278         ("*negabsdf2_cc", "*negabssf2_cc"): Merge.
279         ("*negabsdf2_cconly", "*negabssf2_cconly"): Merge.
280         ("*negabsdf2", "*negabssf2"): Merge.
281         ("sqrtdf2", "sqrtsf2"): Merge.
282
283 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
284
285         * config/s390/s390.c: (s390_adjust_priority): Adapt to changed 
286         attribute names.
287         * config/s390/2084.md: ("x_fsimpd", "x_fsimps", "x_fdivd", "x_fdivs",
288         "x_floadd", "x_floads", "x_fstored", "x_fstores"): Rename to
289         ("x_fsimpdf", "x_fsimpsf", "x_fdivdf", "x_fdivsf", "x_floaddf",
290         "x_floadsf", "x_fstoredf", "x_fstoresf") and replace 'type'
291         attribute names.
292         * config/s390/s390.md: ("type"): Rename "fsimpd, fsimps, floadd, floads,
293         fstored, fstores, fmuld, fmuls, fdivd, fdivs, fsqrtd, fsqrts" to
294         "fsimpdf, fsimpsf, floaddf, floadsf, fstoredf, fstoresf, fmuldf,
295         fmulsf, fdivdf, fdivsf, fsqrtdf, fsqrtsf".
296         ("*cmpdf_ccs_0", "*cmpdf_css_0_ibm", "*cmpdf_ccs",
297         "*cmpdf_ccs_ibm", "*cmpsf_ccs_0", "*cmpsf_css_0_ibm",
298         "*cmpsf_ccs", "*cmpsf_ccs_ibm", "*movdi_64", "*movdi_31",
299         "*movsi_zarch", "*movsi_esa", "*movdf_64", "*movdf_31", "movsf",
300         "*muldf3", "*muldf3_ibm", "*fmadddf", "*fmsubdf", "*mulsf3",
301         "mulsf3_ibm", "*fmaddsf", "fmsubsf", "*divdf3", "*divdf3_ibm",
302         "*negdf2_cc", "*negdf2_cconly", "*negdf2", "*negdf2_ibm",
303         "*negsf2_cc", "*negsf2_cconly", "*negsf2", "*absdf2_cc",
304         "*absdf2_cconly", "*absdf2", "*absdf2_ibm", "*abssf2_cc",
305         "*abssf2_cconly", "*abssf2", "*abssf2_ibm", "*negabsdf2_cc",
306         "*negabsdf2_cconly", "*negabsdf2", "*negabssf2_cc",
307         "*negabssf2_cconly", "*negabssf2", "sqrtdf2", "sqrtsf2"): Rename
308         'type' value.
309         ("*divsf3"): Additionally rename second pattern to
310         "*divsf3_ibm".
311         ("truncdfsf2_ibm", "extendsfdf2_ieee", "extendsfdf2_ibm",
312         "*adddf3", "*adddf3_cc", "*adddf3_cconly", "*adddf3_ibm",
313         "*addsf3", "*addsf3_cc", "*addsf3_cconly", "*subdf3",
314         "subdf3_cc", "*subdf3_cconly", "*subdf3_ibm", "*subsf3",
315         "subsf3_cc", "*subsf3_cconly", "*subsf3_ibm"): Merge identical
316         'type values' and rename 'type' value.
317         ("*addsf3"): Additionally rename second pattern to
318         "*addsf3_ibm".
319
320 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
321
322         * config/s390/s390.md: ("SHIFT"): New mode macro.
323         ("lr", "shift"): New mode attributes.
324         ("ashldi3", "lshrdi3"): Merge.
325         ("*ashldi3_31", "*lshrdi3"_31): Merge.
326         ("*ashldi3_64", "*lshrdi3"_64): Merge.
327         ("ashlsi3", "lshrsi3"): Merge.
328
329 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
330
331         * config/s390/s390.md: ("DSI", "SCOND"): New mode 
332         macros.
333         ("E", "g"): New mode attributes.
334         ("*adddi3_alc_cc", "*addsi3_alc_cc"): Merge.
335         ("*adddi3_alc", "*addsi3_alc"): Merge.
336         ("*subdi3_slb_cc", "*subsi3_slb_cc"): Merge.
337         ("*subdi3_slb", "*subsi3_slb"): Merge.
338         ("adddicc", "addsicc"): Merge.
339         ("*sconddi", "*scondsi"): Merge.
340         ("*sconddi_neg", "*scondsi_neg"): Merge.
341         ("sltu", "sgtu", "sleu", "sgeu"): Merge.
342         ("negdi2", "negsi2"): Extract expander pattern from
343         "negsi2" and merge with "negdi2".
344         ("*negdi2"): Merge with instruction pattern of "negsi2".
345         ("*negdi2_cc", "*negsi2_cc"): Merge.
346         ("*negdi2_cconly", "*negsi2_cconly"): Merge.
347         ("rotldi3", "rotlsi3"): Merge.
348
349 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
350
351         * config/s390/s390.md: ("hc"): New mode attribute.
352         ("extendhidi2", "extendqidi2"): Merge.
353         ("*extendhidi2", "*extendqidi2"): Merge.
354         ("extendhisi2", "extendqisi2"): Merge.
355         ("zero_extendhidi2", "zero_extendqidi2"): Merge.
356         ("*zero_extendhidi2", "*zero_extendqidi2"): Merge.
357         Merged 2 define_split.
358         ("*zero_extendhisi2", "*zero_extendqisi2"): Merge.
359         ("*zero_extendhisi2_64", "*zero_extendqisi2_64"): Merge.
360
361 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
362
363         * config/s390/s390.md: ("COMPARE"): New mode macro.
364         ("beq", "bne", "bgt", "bgtu", "blt", "bltu", "bge", "bgeu",
365         "ble", "bleu", "bunordered", "bordered", "buneq", "bunlt",
366         "bungt", "bunle", "bunge", "bltgt"): Merge.
367
368 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
369
370         * config/s390/s390.md: ("INT"): New mode macro.
371         ("one_cmpldi2", "one_cmplsi2", "one_cmplhi2", "one_cmplqi2"):
372         Merge.
373
374 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
375
376         * config/s390/s390.md: ("GPR", "P"): New mode macros.
377         ("cmpdi", "cmpsi"): Merge.
378         ("strlendi", "strlensi"): Merge.
379         ("*strlendi", "*strlensi"): Merge.
380         ("movmemdi", "movmemsi"): Merge.
381         ("clrmemdi", "clrmemsi"): Merge.
382
383 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
384
385         * config/s390/s390.md: ("HQI"): New mode macro.
386         ("icm_lo", "icm_hi", "max_uint"): New mode attributes.
387         ("*tmhi_full", "*tmqi_full"): Merge.
388         ("*tsthiCCT", "*tstqiCCT"): Merge.
389         ("*tsthi", "*tstqi"): Merge.
390         ("*tsthi_cconly", "tstqi_cconly"): Merge.
391         ("*sethighhisi", "*sethighqisi"): Merge.
392          
393 2005-05-09  Kazu Hirata  <kazu@cs.umass.edu>
394
395         * crtstuff.c, integrate.h, tree-scalar-evolution.h,
396         config/alpha/unicosmk.h, config/arc/arc.md,
397         config/arm/bpabi.h, config/arm/coff.h, config/arm/elf.h,
398         config/arm/ieee754-df.S, config/arm/ieee754-sf.S,
399         config/arm/netbsd.h, config/arm/pe.c, config/arm/pe.h,
400         config/arm/semi.h, config/arm/uclinux-elf.h,
401         config/arm/wince-pe.h, config/fr30/fr30.c,
402         config/rs6000/altivec.h: Update copyright.
403
404 2005-05-09  Nathan Sidwell  <nathan@codesourcery.com>
405
406         * config/pdp11/pdp11.c (pdp11_output_function_prologue): Use
407         gcc_assert and gcc_unreachable as appropriate.
408         (pdp11_output_function_epilogue, output_move_double,
409         output_move_quad, print_operand_address, output_jump,
410         output_addr_const_pdp11): Likewise.
411         * config/pdp11/pdp11.h (FUNCTION_PROFILER,
412         ASM_OUTPUT_ALIGN): Likewise.
413         * config/pdp11/pdp11.md: Likewise.
414         (extendhisi2, subhi3, subqi3): Likewise.
415
416 2005-05-09  David Edelsohn  <edelsohn@gnu.org>
417
418         PR middle-end/21237
419         * dojump.c (do_jump, MINUS_EXPR): Build NE_EXPR and fall through
420         to NE_EXPR case.
421
422 2005-05-09  Kazu Hirata  <kazu@cs.umass.edu>
423
424         * config/ia64/ia64.c: Fix a comment typo.
425
426 2005-05-09  Richard Earnshaw  <rearnsha@arm.com>
427
428         PR target/21397
429         * arm.c (ARM_OPT_SET_CPU, ARM_OPT_SET_ARCH, ARM_OPT_SET_TUNE): Define.
430         (arm_override_options): Use them instead of manifest constants.  Don't
431         allow -march to override the -mtune setting.
432
433 2005-05-09  Nathan Sidwell  <nathan@codesourcery.com>
434
435         * config/iq2000/iq2000.c (abort_with_insn): Use fancy_abort.
436         (gen_int_relational): Use gcc_unreachable and gcc_assert as necessary.
437         (function_arg_advance, function_arg, save_restore_insns,
438         iq2000_expand_prologue, iq2000_output_conditional_branch,
439         expand_one_builtin, print_operand):
440         * config/iq2000/iq2000.md (tablejump): Likewise.
441
442 2005-05-09  David Ung  <davidu@mips.com>
443
444         * config/mips/mips.h (processor_type): Add names for the 24K. 
445         * config/mips/mips.c (mips_cpu_info_table): Add names for the 24K
446         processor family.
447         * config/mips/mips.md (cnv_mode): New attribute for recording the
448         conversion types of float convert insns.
449         (cpu): Add 24k and 24kx.
450         (include): Include 24k.md file.
451         (truncdfsf2, extendsfdf2, fix_truncdfsi2_insn, fix_truncdfsi2_macro)
452         (fix_truncdfdi2, fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2)
453         (floatdisf2): Setup cnv_mode.
454         (fix_truncsfsi2_insn, fix_truncsfsi2_macro): Changed mode to SF and
455         setup cnv_mode.
456         * config/mips/24k.md: New file, contains 24k DFA pipeline
457         description. 
458
459 2005-05-09  Nathan Sidwell  <nathan@codesourcery.com>
460
461         * config/sh/sh.c (print_operand_address): Use gcc_assert and
462         gcc_unreachable as appropriate.
463         (print_operand, prepare_move_operands, prepare_scc_operands,
464         output_movedouble, output_branch, shift_insns_rtx, gen_shifty_op,
465         gen_shl_and, shl_sext_kind, gen_datalabel_ref, dump_table,
466         fixup_mova, gen_far_branch, sh_reorg, split_branches,
467         final_prescan_insn, output_stack_adjust, sh_expand_epilogue,
468         sh_set_return_address, sh_setup_incoming_varargs,
469         initial_elimination_offset, sh_pch_valid_p, get_free_reg,
470         sh_expand_builtin, sh_output_mi_thunk, extract_sfunc_addr,
471         check_use_sfunc_addr): Likewise.
472         * config/sh/netbsd-elf.h (FUNCTION_PROFILER): Likewise.
473         * config/sh/sh.h (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
474         * config/sh/symbian.c (sh_symbian_mark_dllexport,
475         sh_symbian_mark_dllimport): Likewise.
476         * config/sh/sh.md: Likewise.
477         (movdicc, call_pop, call_value_pop, casesi_worker_1,
478         casesi_worker_2, casesi_shift_media, casesi_load_media,
479         return_media): Likewise.
480
481 2005-05-08  Roger Sayle  <roger@eyesopen.com>
482
483         PR inline-asm/8788
484         * stmt.c (expand_asm_operands): Avoid calling force_reg on BLKmode
485         operands.
486
487 2005-05-08  Richard Henderson  <rth@redhat.com>
488
489         * config/alpha/alpha.c (adjust_address): Fix typo last change.
490
491 2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>
492
493         * config/m68hc11/m68hc11.h (REG_VALID_P): A regno must be >= 0
494         and -1 can happen in reg_renumber when no hard register is assigned.
495
496 2005-05-08  Steven Bosscher  <stevenb@suse.de>
497             Kazu Hirata  <kazu@cs.umass.edu>
498
499         PR tree-optimization/14841, tree-optimization/15838
500         * tree-ssa-ccp.c (fold_const_aggregate_ref): New.
501         (evaluate_stmt): Call it.
502
503 2005-05-08  Jakub Jelinek  <jakub@redhat.com>
504
505         * config/ia64/ia64.c (ia64_override_options): Don't set
506         ia64_flag_var_tracking and clear flag_var_tracking here...
507         (ia64_file_start): ... but here.
508
509 2005-05-08  Nathan Sidwell  <nathan@codesourcery.com>
510
511         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use gcc_assert
512         and gcc_unreachable as appropriate.
513         (expand_prologue, expand_epilogue, m68hc11_gen_lowpart,
514         m68hc11_gen_highpart, print_operand, print_operand_address,
515         m68hc11_expand_compare, m68hc11_expand_compare_and_branch,
516         m68hc11_gen_movhi): Likewise.
517         * config/m68hc11/m68hc11.h (HARD_X_REGNUM): Reword comment.
518         * config/m68hc11/m68hc11.md: Reword comment.
519
520 2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>
521
522         PR target/21281
523         * config/m68hc11/predicates.md (splitable_operand): An immediate is
524         allowed.
525
526 2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>
527
528         * config/m68hc11/predicates.md (reg_or_some_mem_operand): Do not allow
529         the 68HC12 address indirect addressing mode as it is not supported by
530         bset and bclr.
531         * config/m68hc11/m68hc11-protos.h
532         (m68hc11_valid_addressing_p): Declare.
533         (m68hc11_add_mode): Declare.
534         * config/m68hc11/m68hc11.c (m68hc11_valid_addressing_p): Rename from
535         register_indirect_p and export it.
536         (m68hc11_z_replacement): Use emit_insn_after when adding the save Z
537         instruction so that it is part of the good BB.
538         (m68hc11_gen_movhi): Fix invalid generation of indexed indirect
539         addressing with movw.
540         (m68hc11_gen_movqi): Use pula and pulb instead of lda and ldb for
541         68HC12.
542         * config/m68hc11/m68hc11.h (ADDR_STRICT, ADDR_INCDEC, ADDR_INDEXED,
543         ADDR_OFFSET, ADDR_INDIRECT, ADDR__CONST): Moved from m68hc11.c.
544         * config/m68hc11/m68hc11.md ("movhi_const0"): Use this pattern only
545         for 68HC11.
546         ("*movhi_68hc12"): Handle movhi_const0.
547         ("*subhi3", "subqi3"): Use general_operand for operand 1.
548         ("*subhi3_zext"): Likewise.
549
550 2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>
551
552         PR target/19051
553         * config/m68hc11/m68hc11.md ("mulqi3"): Use general_operand for
554         operand 1 and fix constraints.
555         ("mulqihi3"): Use general_operand for operand 2.
556
557 2005-05-08  Julian Brown  <julian@codesourcery.com>
558             H.J. Lu  <hongjiu.lu@intel.com>
559             Paul Brook  <paul@codesourcery.com>
560
561         * configure.ac: Set ld_vers_major, ld_vers_minor and ld_vers_patch for
562         GNU linker. Support linker version x.x.x.x.x. Require GNU linker
563         20050308/2.16.0 or newer for comdat group.
564         * configure: Regenerated.
565         * config.in: Regenerated.
566         * varasm.c (default_function_rodata_section): Put .rodata section in
567         COMDAT group when necessary.
568         (default_elf_asm_named_section): Rename HAVE_GAS_COMDAT_GROUP to
569         HAVE_COMDAT_GROUP.
570         (default_unique_section_1): Don't use .gnu.linkonce when COMDAT is
571         available.
572
573 2005-05-08  Kazu Hirata  <kazu@cs.umass.edu>
574
575         * tree-dfa.c (referenced_vars, add_referenced_var): Use VEC
576         instead of VARRAY.
577         * tree-flow.h (num_referenced_var, referenced_var): Likewise.
578         * tree-into-ssa.c (mark_def_site_blocks): Likewise.
579         * tree-ssa.c (init_tree_ssa, delete_tree_ssa): Likewise.
580         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
581
582 2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>
583
584         PR target/16925
585         * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Handle split of
586         64-bit constants on 64-bit hosts.
587         (m68hc11_split_logical): Simplify.
588         (m68hc11_split_move): Likewise.
589
590 2005-05-08  Nathan Sidwell  <nathan@codesourcery.com>
591             Paolo Bonzini  <bonzini@gnu.org>
592
593         * Makefile.in (cs-tconfig.h): Pass USED_FOR_TARGET to mkconfig.sh
594         * aclocal.m4 (GCC_TARGET_TEMPLATE, AH_TEMPLATE): New.
595         * configure.ac (enable_checking): Fix typos in runtime_checking.
596         (ENABLE_RUNTIME_CHECKING): Mark as target template.
597         (xm_file): Prepend auto-host.h
598         (HAVE_GAS_HIDDEN, HAVE_LD_EH_FRAME_HDR): Mark as target template.
599         * mkconfig.sh: Do not automatically define USED_FOR_TARGET in
600         tconfig.h.
601         * crtstuff.c: Do not include auto-host.h.
602         (IN_LIBGCC2): Do not define.
603         * gcov-io.h: Include tconfig.h, not auto-host.h.
604         * libgcc2.c: Do not include auto-host.h.
605         (abort): Do not undefine.
606         * libgcov.c: Remove unneeded comment about config.h.
607         * unwind-dw2-fde-glibc.c: Do not inlude auto-host.h.
608         * config.in, configure: Regenerated.
609         
610 2005-05-08  Nathan Sidwell  <nathan@codesourcery.com>
611             Falk Hueffner  <falk@debian.org>
612
613         * config/alpha/alpha.c (tls_symbolic_operand_1): Use gcc_assert
614         and gcc_unreachable as appropriate.
615         (get_aligned_mem, get_unaligned_address,
616         alpha_emit_set_long_const, alpha_emit_conditional_branch,
617         alpha_emit_setcc, alpha_emit_conditional_move,
618         alpha_lookup_xfloating_lib_func, alpha_compute_xfloating_mode_arg,
619         alpha_emit_xfloating_libcall, alpha_split_tfmode_pair,
620         alpha_expand_unaligned_load, alpha_expand_block_move,
621         alpha_expand_zap_mask, get_trap_mode_suffix,
622         get_round_mode_suffix, get_some_local_dynamic_name,
623         print_operand_address, function_arg, alpha_return_in_memory,
624         function_value, alpha_expand_builtin,
625         alpha_initial_elimination_offset, alpha_expand_epilogue,
626         summarize_insn, alpha_handle_trap_shadows, alphaev5_insn_pipe,
627         alphaev5_next_group, alpha_align_insns,
628         unicosmk_initial_elimination_offset, unicosmk_unique_section,
629         unicosmk_ssib_name): Likewise.
630         * config/alpha/alpha.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise.
631         * config/alpha/unicosmk.h (TRAMPOLINE_TEMPLATE,
632         ASM_OUTPUT_ADDR_DIFF_ELT, ASM_OUTPUT_ADDR_DIFF_VEC): Likewise.
633         * config/alpha/vms.h (INITIAL_ELIMINATION_OFFSET,
634         ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
635         * config/alpha/alpha.md (*divmodsi_internal_er,
636         *divmoddi_internal_er, ashldi3, *insxl, sibcall, call_osf,
637         call_nt, call_umk, call_vms, call_value, sibcall_value,
638         call_value_osf, call_value_nt, call_value_vms, call_value_umk,
639         *call_vms_1, *movmemdi_1, *clrmemdi_1, *call_value_vms_1): Likewise.
640         * config/alpha/predicates.md (input_operand): Likewise.
641
642 2005-05-08  Nathan Sidwell  <nathan@codesourcery.com>
643
644         * config/frv/frv.c (frv_default_flags_for_cpu): Use gcc_assert and
645         gcc_unreachable, as appropriate.
646         (frv_function_prologue, frv_alloc_temp_reg,
647         frv_initial_elimination_offset, frv_expand_block_move,
648         frv_expand_block_clear, frv_print_operand_jump_hint,
649         frv_legitimize_tls_address, unspec_got_name, frv_emit_move,
650         frv_emit_movsi, frv_split_cond_move, frv_split_minmax,
651         frv_ifcvt_modify_insn, frv_ifcvt_modify_final,
652         frv_adjust_field_align, frv_insn_unit, frv_cond_flags,
653         frv_sort_insn_group, frv_reorder_packet, frv_matching_accg_mode,
654         frv_in_small_data_p, frv_asm_out_constructor,
655         frv_asm_out_destructor, frv_output_dwarf_dtprel): Likewise.
656         * config/frv/frv.md (reload_incc_fp, *cond_exec_si_binary1,
657         *cond_exec_si_binary2, *cond_exec_si_divide, *cond_exec_si_unary1,
658         *cond_exec_sf_conv, *cond_exec_sf_add, call, sibcall, call_value,
659         sibcall_value, casesi): Likewise.
660
661         * config/mn10300/mn10300.c (print_operand): Use gcc_assert and
662         gcc_unreachable as appropriate.
663         (print_operand_address, mn10300_print_reg_list, expand_prologue,
664         expand_epilogue, notice_update_cc, initial_offset,
665         mn10300_address_cost_1): Likewise.
666         * config/mn10300/mn10300.md: Likewise.
667         (absdf2, abssf2, negdf2, negsf2): Likewise.
668
669 2005-05-08  Richard Sandiford  <rsandifo@redhat.com>
670
671         PR target/21416
672         * config/mips/mips.c (mips_emit_compare): Don't reverse UNGE and UNGT
673         comparisons.
674         * config/mips/mips.md (swapped_fcond): New code macro and attribute.
675         (sgt_<mode>, sge_<mode>): Generalize to all members of swapped_fcond,
676         including sunge_<mode> and sungt_<mode>.
677
678 2005-05-08  Richard Sandiford  <rsandifo@redhat.com>
679
680         * integrate.h (get_hard_reg_initial_val): Change type of register
681         parameter from int to unsigned int.
682         (has_hard_reg_initial_val): Likewise.
683         * integrate.c (get_hard_reg_initial_val): Likewise.
684         (has_hard_reg_initial_val): Likewise.  Remove cast to unsigned int.
685
686 2005-05-08  Kazu Hirata  <kazu@cs.umass.edu>
687
688         * except.c (eh_status): Change the type of ttype_data to
689         VEC(tree,gc)*.
690         (add_ttypes_entry, assign_filter_values,
691         output_function_exception_table): Use VEC instead of VARRAY.
692
693 2005-05-07  David Edelsohn  <edelsohn@gnu.org>
694
695         * config/rs6000/rs6000.md (popcount<mode>2): Fix non-C90 constant.
696
697 2005-05-07  Paul Brook  <paul@codesourcery.com>
698
699         * Makefile.in: Fix dependencies.
700         (GCOV_IO_H, VARRAY_H): Set.
701
702 2005-05-07  Anthony Green  <green@redhat.com>
703
704         PR bootstrap/21403
705         * configure.ac (STMP_FIXPROTO): Fix [ ] consumption problem in
706         x$STMP_FIXPROTO test.
707         * configure: Rebuilt.
708
709 2005-05-07  Joseph S. Myers  <joseph@codesourcery.com>
710
711         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Do not define
712         inappropriate feature test macros if flag_iso.
713
714 2005-05-07  Joseph S. Myers  <joseph@codesourcery.com>
715
716         * config/ia64/hpux.h (NO_IMPLICIT_EXTERN_C): Define.
717
718 2005-05-07  Hans-Peter Nilsson  <hp@axis.com>
719
720         PR target/21441
721         * config/cris/cris.md ("*movdi_insn", "*mov_sidesisf_biap")
722         ("*mov_sidesisf", "*mov_sidesisf_biap_mem", "*mov_sidesisf_mem"):
723         Handle moved operand being in special register.
724         ("smulsi3_highpart", "umulsi3_highpart"): Change .error into
725         presumed working insn.
726         (mover2side): Add FIXME.
727
728 2005-05-07  Richard Sandiford  <rsandifo@redhat.com>
729
730         * integrate.c (get_func_hard_reg_initial_val): Delete.
731         (has_func_hard_reg_initial_val): Delete.
732         (get_hard_reg_initial_val): Inline the old implementation of
733         get_func_hard_reg_initial_val.  Use has_hard_reg_initial_val
734         instead of has_func_hard_reg_initial_val to test for an existing
735         pseudo.  Only create an rtx if a new initial value entry is needed.
736         (has_hard_reg_initial_val): Scan the initial value list directly.
737         Don't create an rtx.
738
739 2005-05-07  David Edelsohn  <edelsohn@gnu.org>
740
741         * config.gcc ({powerpc,rs6000}-ibm-aix*): Remove rs6000/aix.opt
742         from extra_options.
743         * config.in (HAVE_AS_POPCNTB): New.
744         * configure.ac (HAVE_AS_MFCRF): Add .machine "pwr5" to AIX test.
745         (HAVE_AS_POPCNTB): New.
746         * configure: Regenerated.
747         * config/rs6000/aix.h (TARGET_XL_COMPAT): Delete.
748         * config/rs6000/rs6000.c (rs6000_override_options, power5): Add
749         MASK_POPCNTB.  Uncomment rs6000_sched_restricted_insns_priority
750         and rs6000_sched_costly_dep.
751         * config/rs6000/rs6000.h (TARGET_POPCNTB): New.
752         (TARGET_XL_COMPAT): Delete.
753         * config/rs6000/rs6000.md (UNSPEC_POPCNTB): New.
754         (popcount<mode>2): New.
755         (popcntb<mode>2): New.
756         * config/rs6000/rs6000.opt (mpopcntb): New.
757
758         * opt-functions.awk (var_set): Emit OPTION_MASK_ for InverseMask
759         if variable name exists.
760
761 2005-05-07  Matt Kraai  <kraai@ftbfs.org>
762
763         * Makefile.in (c-gimplify.o): Depend on $(RTL_H) instead of rtl.h.
764
765 2005-05-07  Richard Henderson  <rth@redhat.com>
766
767         PR target/21412
768         * config/rs6000/rs6000.c (rs6000_emit_move): Look for tls addresses
769         with constant offsets.
770
771 2005-05-07  Nathan Sidwell  <nathan@codesourcery.com>
772
773         * config/v850/v850.c (print_operand): Use gcc_assert and
774         gcc_unreachable, as appropriate.
775         (print_operand_address, v850_handle_data_area_attribute,
776         v850_encode_data_area, construct_restore_jr, construct_save_jarl,
777         v850_insert_attributes, construct_prepare_instruction): Likewise.
778         * config/v850/v850.h (INITIAL_ELIMINATION_OFFSET): Likewise.
779         * config/v850/v850.md (movsicc, *sasf_1): Likewise.
780
781 2005-05-07  Kazu Hirata  <kazu@cs.umass.edu>
782
783         * tree-ssa-loop-ivcanon.c, config/i386/i386.c,
784         config/rs6000/rs6000.h: Fix comment typos.
785
786 2005-05-07  Richard Sandiford  <rsandifo@redhat.com>
787
788         * doc/invoke.texi: Remove documentation for MIPS' -mint64 option.
789         * config/mips/mips.c (TARGET_SCALAR_MODE_SUPPORTED_P): Delete.
790         (mips_scalar_mode_supported_p): Delete.
791
792 2005-05-06  Eric Christopher  <echristo@redhat.com>
793
794         * config/mips/mips.opt: Remove -mint64 option.
795         * config/mips/mips.c (override_options): Remove -mint64
796         handling.
797         * config/mips/mips.h (INT_TYPE_SIZE): Define to 32.
798         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Remove
799         64-bit integer handling.
800         * doc/invoke.texi (Option Summary): Remove -mint64 for
801         mips.
802
803 2005-05-06  Zdenek Dvorak  <dvorakz@suse.cz>
804
805         PR tree-optimization/19401
806         * tree-flow.h (tree_unroll_loops_completely): Declaration changed.
807         * tree-ssa-loop-ivcanon.c (enum unroll_level): New.
808         (estimated_unrolled_size): New function.
809         (try_unroll_loop_completely, canonicalize_loop_induction_variables,
810         tree_unroll_loops_completely): Always unroll loops if the code size
811         does not increase.
812         * tree-ssa-loop.c (tree_complete_unroll): Indicate whether all
813         loops should be unrolled completely.
814         (gate_tree_complete_unroll): Run complete unrolling unconditionally.
815
816 2005-05-06  Zdenek Dvorak  <dvorakz@suse.cz>
817
818         PR rtl-optimization/21254
819         * loop-iv.c (iv_number_of_iterations): Simplify infiniteness
820         assumptions for loops that otherwise do not roll.
821         (find_simple_exit): Prefer # of iterations that is guaranteed
822         not to be infinite.
823         * loop-unroll.c (decide_peel_once_rolling,
824         decide_peel_completely): Check whether the loop is infinite.
825
826 2005-05-06  Pat Haugen  <pthaugen@us.ibm.com>
827
828         * config/rs6000/sysv4.opt: Fix typo.
829
830 2005-05-06  Denis Vlasenko  <vda@port.imtp.ilyichevsk.odessa.ua>
831             Jakub Jelinek  <jakub@redhat.com>
832
833         PR target/21329
834         * config/i386/i386.c (ix86_expand_movmem): Don't use rep; movsb
835         for -Os if (movsl;)*(movsw;)?(movsb;)? sequence is shorter.
836         Don't use rep; movs{l,q} if the repetition count is really small,
837         instead use a sequence of movs{l,q} instructions.
838
839 2005-05-06  Jeff Law  <law@redhat.com>
840
841         PR tree-optimization/21380
842         * tree-ssa-threadupdate.c (thread_through_all_blocks): Do not
843         thread through a block with no preds.
844
845 2005-05-06  Kazu Hirata  <kazu@cs.umass.edu>
846
847         * tree-ssa-operands.c (clobbered_v_may_defs, clobbered_vuses,
848         ro_call_vuse, fini_ssa_operands, add_call_clobber_ops,
849         add_call_read_ops): Use VEC instead of VARRAY.
850
851 2005-05-06  Nathan Sidwell  <nathan@codesourcery.com>
852
853         * config/mcore/mcore.c (mcore_print_operand_address): Use
854         gcc_assert and gcc_unreachable as appropriate.
855         (mcore_print_operand, mcore_gen_compare_reg, mcore_output_call,
856         mcore_output_andn, output_inline_const, mcore_output_move,
857         mcore_output_movedouble, mcore_expand_block_move,
858         layout_mcore_frame, mcore_initial_elimination_offset,
859         mcore_expand_prolog, mcore_mark_dllexport,
860         mcore_mark_dllimport): Likewise.
861         * config/mcore/mcore.h (switch_to_section): Likewise.
862         * config/mcore/mcore.md: Likewise.
863
864 2005-05-06  Aldy Hernandez  <aldyh@redhat.com>
865
866         * config/rs6000/linux64.h: Remove MASK_PROFILE_KERNEL, and
867         TARGET_PROFILE_KERNEL.
868
869         * config/rs6000/rs6000.c (output_profile_hook): Add comment to
870         TARGET_PROFILE_KERNEL use.
871
872 2005-05-06  Nathan Sidwell  <nathan@codesourcery.com>
873
874         * config/m32r/m32r.c (m32r_encode_section_info): Use gcc_assert
875         and gcc_unreachable, as appropriate.
876         (gen_compare, gen_split_move_double, m32r_setup_incoming_varargs,
877         m32r_expand_prologue, m32r_output_function_epilogue,
878         m32r_legitimize_pic_address, m32r_print_operand_address,
879         emit_cond_move, m32r_function_symbol,
880         m32r_output_block_move): Likewise.
881         * config/m32r/m32r.h (INITIAL_ELIMINATION_OFFSET): Likewise.
882         * config/m32r/m32r.md ( *movsi_insn, *zero_branch_insn,
883         *rev_zero_branch_insn): Likewise.
884         
885 2005-05-06  Jakub Jelinek  <jakub@redhat.com>
886
887         PR c++/20961
888         * varasm.c (merge_weak): Remove NEWDECL from WEAK_DECLS chain
889         if both NEWDECL and OLDDECL are already weak.
890
891 2005-05-06  Richard Sandiford  <rsandifo@redhat.com>
892
893         * config/rs6000/sysv4.h (EXTRA_SUBTARGET_SWITCHES): Delete.
894
895 2005-05-05  J"orn Rennecke  <joern.rennecke@st.com>
896             Kaz Kojima  <kkojima@gcc.gnu.org>
897
898         * config/sh/sh.c (sh_builtin_saveregs): Use copy_to_mode_reg
899         and plus_constant.
900
901 2005-05-05  Aldy Hernandez  <aldyh@redhat.com>
902             David Edelsohn  <edelsohn@gnu.org>
903
904         * config.gcc: Add .opt magic for the rs6000 ports.
905
906         * doc/invoke.texi: Document -mabi= option properly.  Document
907         -misel and -mno-sel.  Document -mspe and -mno-spe.  Document
908         -mvrsave and -mno-vrsave.  Document deprecation of -mspe= and
909         -misel=.
910
911         * config/rs6000/aix.h: Remove XL_COMPAT stuff.  Remove
912         SUBTARGET_SWITCHES and SUBSUBTARGET_SWITCHES.  Define
913         TARGET_XL_COMPAT.
914
915         * config/rs6000/aix.opt: New.
916         * config/rs6000/aix41.opt: New.
917         * config/rs6000/aix64.opt: New.
918         * config/rs6000/darwin.opt: New.
919         * config/rs6000/linux64.opt: New.
920         * config/rs6000/rs6000.opt: New.
921         * config/rs6000/sysv4.opt: New.
922
923         * config/rs6000/sysv4.h: Delete definitions of MASK_* and
924         associated TARGET_*.  Remove SUBTARGET_OPTIONS,
925         SUBTARGET_SWITCHES.
926         Define TARGET_USES_SYSV4_OPT.
927         * config/rs6000/aix41.h: Remove SUBSUBTARGET_SWITCHES.
928         * config/rs6000/aix43.h: Remove SUBSUBTARGET_SWITCHES.  Define
929         TARGET_USES_AIX64_OPT.
930         * config/rs6000/aix51.h: Same.
931         * config/rs6000/aix52.h: Same.
932         * config/rs6000/darwin.h: Remove SUBTARGET_SWITCHES,
933         MASK_MACHO_DYNAMIC_NO_PIC, TARGET_MACHO_DYNAMIC_NO_PIC.
934         Use TARGET_ALTIVEC_VRSAVE instead of rs6000_altivec_vrsave.
935         Define TARGET_DYNAMIC_NO_PIC as TARGET_MACHO_DYNAMIC_NO_PIC.
936         * config/rs6000/linux64.h: Use
937         rs6000_explicit_options.  Remove EXTRA_SUBTARGET_SWITCHES.
938
939         * config/rs6000/rs6000.c: Remove definitions of
940         rs6000_sched_restricted_insns_priority,
941         rs6000_long_double_size_string, rs6000_altivec_vrsave,
942         rs6000_altivec_vrsave_string, rs6000_isel, rs6000_spe,
943         rs6000_float_gprs_string, rs6000_isel_string, rs6000_spe_string,
944         rs6000_abi_string, rs6000_warn_altivec_long, rs6000_longcall,
945         rs6000_alignment_string.  Define rs6000_explicit_options.
946         (rs6000_parse_abi_options): Remove.
947         (rs6000_parse_alignment_option): Remove.
948         (rs6000_parse_float_gprs_option): Remove.
949         (rs6000_handle_option): New.  Define TARGET_HANDLE_OPTION.  Define
950         TARGET_DEFAULT_TARGET_FLAGS.
951         (rs6000_override_options): Revamp to use new .opt machinery.
952
953         * config/rs6000/rs6000.h: Remove old MASK_* and TARGET_* in favor
954         of new .opt machinery.  Remove target_flags.  Redefine
955         TARGET_MFCRF and TARGET_POWERPC64.  Remove TARGET_SWITCHES,
956         SUBTARGET_SWITCHES, TARGET_OPTIONS, SUBTARGET_OPTIONS,
957         rs6000_float_gprs_string, rs6000_isel_string, rs6000_spe_string,
958         rs6000_altivec_vrsave_string, rs6000_altivec_vrsave,
959         rs6000_longcall_switch, rs6000_default_long_calls,
960         rs6000_sched_costly_dep_str, rs6000_sched_costly_dep,
961         rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch, and
962         TARGET_ALTIVEC_VRSAVE.
963
964 2005-05-05  Ralf Corsepius  <ralf.corsepius@rtems.org>
965
966         * config.gcc (hppa1.1-*-rtems*): Remove.
967         * config/pa/rtems.h: Remove.
968
969 2005-05-05  Ralf Corsepius  <ralf.corsepius@rtems.org>
970
971         * config/rs6000/t-rtems (MULTILIB_NEW_EXCEPTIONS_ONLY):
972         Exclude roe/603e multilib variants.
973
974 2005-05-04  Denis Chertykov  <denisc@overta.ru>
975
976         PR target/21284
977         * config/avr/avr.c (avr_output_addr_vec_elt): Use special section
978         for output.
979
980 2005-05-05  Richard Sandiford  <rsandifo@redhat.com>
981
982         * config.gcc (arm*-wince-pe*, arm-*-pe*, strongarm-*-pe): Add
983         arm/pe.opt to $extra_options.
984         * config/arm/arm.h (target_flags, target_fpu_name, target_fpe_name)
985         (target_float_abi_name, target_float_switch, target_abi_name)
986         (ARM_FLAG_APCS_FRAME, ARM_FLAG_POKE, ARM_FLAG_FPE, ARM_FLAG_APCS_STACK)
987         (ARM_FLAG_APCS_FLOAT, ARM_FLAG_APCS_REENT, ARM_FLAG_BIG_END)
988         (ARM_FLAG_INTERWORK, ARM_FLAG_LITTLE_WORDS, ARM_FLAG_NO_SCHED_PRO)
989         (ARM_FLAG_ABORT_NORETURN, ARM_FLAG_SINGLE_PIC_BASE)
990         (ARM_FLAG_LONG_CALLS, ARM_FLAG_THUMB, THUMB_FLAG_BACKTRACE)
991         (THUMB_FLAG_LEAF_BACKTRACE, THUMB_FLAG_CALLEE_SUPER_INTERWORKING)
992         (THUMB_FLAG_CALLER_SUPER_INTERWORKING, CIRRUS_FIX_INVALID_INSNS)
993         (TARGET_APCS_FRAME, TARGET_POKE_FUNCTION_NAME, TARGET_FPE)
994         (TARGET_APCS_STACK, TARGET_APCS_FLOAT, TARGET_APCS_REENT)
995         (TARGET_BIG_END, TARGET_INTERWORK, TARGET_LITTLE_WORDS)
996         (TARGET_NO_SCHED_PRO, TARGET_ABORT_NORETURN, TARGET_SINGLE_PIC_BASE)
997         (TARGET_LONG_CALLS, TARGET_THUMB, TARGET_CALLER_INTERWORKING)
998         (TARGET_CIRRUS_FIX_INVALID_INSNS, SUBTARGET_SWITCHES, TARGET_SWITCHES)
999         (TARGET_OPTIONS, arm_cpu_select, arm_select,  structure_size_string)
1000         (arm_pic_register_string): Delete.
1001         (TARGET_BACKTRACE): Redefine using TARGET_TPCS_LEAF_FRAME and
1002         TARGET_TPCS_FRAME.
1003         (TARGET_DEFAULT, CONDITIONAL_REGISTER_USAGE): Update mask names.
1004         * config/arm/coff.h (TARGET_DEFAULT): Likewise.
1005         * config/arm/elf.h (TARGET_DEFAULT): Likewise.
1006         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Likewise.
1007         * config/arm/netbsd.h (TARGET_DEFAULT): Likewise.
1008         * config/arm/semi.h (TARGET_DEFAULT): Likewise.
1009         * config/arm/uclinux-elf.h (TARGET_DEFAULT): Likewise.
1010         * config/arm/wince-pe.h (TARGET_DEFAULT): Likewise.
1011         * config/arm/pe.h (TARGET_DEFAULT): Likewise.
1012         (TARGET_FLAG_NOP_FUN, TARGET_NOP_FUN_DLLIMPORT): Delete.
1013         (SUBTARGET_SWITCHES): Delete.
1014         * config/arm/arm.c (target_float_switch): Delete.
1015         (arm_cpu_select): Moved from config/arm/arm.h.
1016         (target_fpu_name, target_fpe_name, target_float_abi_name)
1017         (target_abi_name, structure_size_string, arm_pic_register_string)
1018         (arm_select): Make static.
1019         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
1020         (arm_handle_option): New function.
1021         (arm_override_options): Update target_flags checks for new mask names.
1022         Remove target_float_switch code.
1023         (arm_expand_prologue, thumb_expand_prologue): Check
1024         !TARGET_SCHED_PROLOG instead of TARGET_NO_SCHED_PRO.
1025         * config/arm/arm.opt, config/arm/pe.opt: New files.
1026
1027 2005-05-05  Nathan Sidwell  <nathan@codesourcery.com>
1028
1029         * config/arc/arc.c (get_arc_condition_code): Use gcc_assert &
1030         gcc_unreachable as appropriate.
1031         (arc_double_limm_p, arc_setup_incoming_varargs,
1032         arc_compute_function_type, arc_output_function_prologue,
1033         arc_output_function_epilogue, arc_eligible_for_epilogue_delay,
1034         output_shift, arc_print_operand, arc_print_operand_address,
1035         arc_final_prescan_insn): Likewise.
1036         * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
1037
1038 2005-05-04  Geoffrey Keating  <geoffk@apple.com>
1039
1040         * config/rs6000/rs6000.md (P): Use TARGET_*BIT rather than
1041         comparing Pmode.
1042         (SDI): New.
1043         (cmp): Delete.
1044         (wd): New.
1045         (add<mode>3, add<mode>3_internal1, add<mode>3_internal2,
1046         add<mode>3_internal3, one_cmpl<mode>2, sub<mode>3, neg<mode>2,
1047         clz<mode>2, ctz<mode>2, ffs<mode>2): New.
1048         (addsi3, addsi3_internal1, addsi3_internal2, addsi3_internal3,
1049         (one_cmplsi2, subsi3, negsi2, clzsi2, ctzsi2, ffssi2): Remove.
1050         (adddi3, adddi3_internal1, adddi3_internal2, adddi3_internal3,
1051         (one_cmpldi2, subdi3, negdi2, clzdi2, ctzdi2, ffsdi2): Remove.
1052         (sync_compare_and_swap<mode>): Use <wd> rather than <cmp>.
1053
1054 2005-05-05  Paul Brook  <paul@codesourcery.com>
1055
1056         * Makefile.in: Replace dependencies on basic-block.h, c-pragma.h,
1057         cfgloop.h, diagnostic.h, insn-attr.h, langhooks-def.h, params.h,
1058         regs.h, system.h, tree-dump.h, tree-gimple.h, tree-scalar-evolution.h
1059         and tree-data-ref.h with *_H variables.
1060
1061 2005-05-05  Kelley Cook  <kcook@gcc.gnu.org>
1062
1063         * config/m32r/xm-m32r.h, config/m32r/xm-linux.h: Delete files.
1064
1065 2005-05-05  Kelley Cook  <kcook@gcc.gnu.org>
1066
1067         * system.h: Poison BYTEORDER and HOST_WORDS_BIG_ENDIAN.
1068
1069 2005-05-04  Gerald Pfeifer  <gerald@pfeifer.com>
1070
1071         * doc/contrib.texi (Contributors): Add Mostafa Hagog and Ayal Zaks.
1072
1073 2005-05-04 Fariborz Jahanian <fjahanian@apple.com>
1074
1075         * config/rs6000/rs6000.c (rs6000_emit_prologue): Emit
1076         setting of vrsave register for current function after
1077         call to save_world is emitted.
1078
1079 2005-05-05  Hans-Peter Nilsson  <hp@bitrange.com>
1080
1081         * config/mmix/predicates.md: New file.
1082         * config/mmix/mmix.c (mmix_symbolic_or_address_operand)
1083         (mmix_reg_or_constant_operand, mmix_reg_cc_operand)
1084         (mmix_foldable_comparison_operator, mmix_comparison_operator)
1085         (mmix_reg_or_0_operand, mmix_reg_or_8bit_operand): Remove.
1086         * config/mmix/mmix.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES):
1087         Don't define.
1088         * config/mmix/mmix.md: Include predicates.md.
1089         ("call", "call_value"): Force address to register if it isn't a
1090         mmix_symbolic_or_address_operand.
1091
1092 2005-05-04  Andrew MacLeod  <amacleod@redhat.com>
1093
1094         * tree-flow-inline.h (op_iter_init_use, op_iter_init_def): Assert that
1095         the flags are of appropriate types.
1096         (num_ssa_operands): Generalize using the generic interface.
1097         * tree-ssa-dce.c (remove_dead_stmt): Don't ask for kills on a DEF
1098         iterator.
1099
1100 2005-05-04  Richard Sandiford  <rsandifo@redhat.com>
1101
1102         * protoize.c (version_flag, quiet_flag, nochange_flag, nosave_flag)
1103         (keep_flag, local_flag, global_flag, cplusplus_flag): Make extern.
1104
1105 2005-05-04  Kazu Hirata  <kazu@cs.umass.edu>
1106
1107         * tree-outof-ssa.c (edge_leader, stmt_list,
1108         analyze_edges_for_bb): Use VEC instead of VARRAY.
1109         (init_analayze_edges_for_bb, fini_analayze_edges_for_bb): New.
1110         (perform_edge_inserts): Call init_analayze_edges_for_bb and
1111         fini_analayze_edges_for_bb.
1112
1113 2005-05-04  James E Wilson  <wilson@specifixinc.com>
1114
1115         PR driver/21112
1116         * gcc.c (process_command): In the second argv scan loop, ignore
1117         Xassembler and Xpreprocessor, along with their argument.
1118
1119 2005-05-04  Kazu Hirata  <kazu@cs.umass.edu>
1120
1121         * tree-flow-inline.h, tree-ssa-operands.c,
1122         tree-ssa-operands.h, tree-ssa-opfinalize.h:
1123         Likewise. tree-vn.c: Fix comment typos.
1124         * doc/passes.texi, doc/tree-ssa.texi: Fix typos.
1125
1126 2005-05-04  Paolo Bonzini  <bonzini@gnu.org>
1127
1128         * doc/tm.texi (Target Hooks): Document
1129         TARGET_RESOLVE_OVERLOADED_BUILTIN.
1130
1131 2005-05-04  Paul Brook  <paul@codesourcery.com>
1132
1133         * Makefile.in: Change dependencies on target.h to $(TARGET_H).
1134
1135 2005-05-04  Kazu Hirata  <kazu@cs.umass.edu>
1136
1137         * dwarf2out.c (incomplete_types, retry_incomplete_types,
1138         gen_struct_or_union_type_die, dwarf2out_init): Use VEC instead
1139         of VARRAY.
1140
1141         * loop-unroll.c (var_to_expand, analyze_insn_to_expand_var,
1142         get_expansion, expand_var_during_unrolling,
1143         insert_var_expansion_initialization,
1144         combine_var_copies_in_loop_exit, release_var_copies): Use VEC
1145         instead of VARRAY.
1146
1147         * tree-ssa-loop-ivopts.c (rewrite_address_base): Don't call
1148         update_stmt.
1149
1150 2004-05-03  Andrew Pinski  <pinskia@physics.uc.edu>
1151
1152         PR middle-end/15618
1153         * fold-const.c (fold_widened_comparison): Treat BOOLEAN_TYPE
1154         the same as INTEGER_TYPE.
1155         (fold_binary): Fold "bool_var != 0" to bool_var.
1156         Fold "bool_var == 1" to bool_var.
1157
1158 2004-05-03  Richard Henderson  <rth@redhat.com>
1159
1160         PR middle-end/21318
1161         * function.c (instantiate_virtual_regs_in_insn): Use the mode
1162         from recog_data instead of insn_data.
1163
1164 2005-05-03  DJ Delorie  <dj@redhat.com>
1165
1166         * common.opt (fdiagnostics-show-option): No variable is needed.
1167         * diagnostic.h (diagnostic_context): Add show_option_requested flag.
1168         * diagnostic.c (diagnostic_initialize): Initialize show_option_requested.
1169         (diagnostic_report_diagnostic): Test for enabled diagnostics here.
1170         Save and restore original message format.  Use flag in context
1171         instead of global.
1172         (warning): Don't test for enabled warnings here.
1173         * opts.c (common_handle_option): Handle -fdiagnostics-show-option
1174         here.
1175
1176 2005-05-04  Kelley Cook  <kcook@gcc.gnu.org>
1177
1178         * config/m32r/xm-m32r.h: Don't define HOST_WORDS_BIG_ENDIAN.
1179         * config/m32r/xm-linux.h: Don't undefine HOST_WORDS_BIG_ENDIAN.
1180         * mips-tfile.c: Use WORDS_BIG_ENDIAN instead of HOST_WORDS_BIG_ENDIAN.
1181         * aclocal.m4: Don't include accross.m4.
1182         * configure.ac: Use AC_C_BIGENDIAN instead of AC_C_BIGENDIAN_CROSS.
1183         Use AC_CHECK_SIZEOF instead of AC_COMPILE_CHECK_SIZEOF.
1184         * configure, config.in: Regenerate.
1185         
1186 2005-05-04  Jakub Jelinek  <jakub@redhat.com>
1187
1188         PR middle-end/21265
1189         * expr.h (enum block_op_methods): Add BLOCK_OP_TAILCALL.
1190         (clear_storage): Add argument.
1191         * expr.c (emit_block_move_via_libcall, clear_storage_via_libcall):
1192         Add tailcall argument, set CALL_EXPR_TAILCALL of the CALL_EXPR to
1193         tailcall.
1194         (emit_block_move): Handle BLOCK_OP_TAILCALL method.
1195         (clear_storage): Add method argument, handle BLOCK_OP_TAILCALL.
1196         (store_expr, store_constructor): Adjust callers.
1197         * builtins.c (expand_builtin_memcpy): Pass BLOCK_OP_TAILCALL
1198         to emit_block_move if CALL_EXPR_TAILCALL (exp).
1199         (expand_builtin_memmove): Add ORIG_EXP argument, copy
1200         CALL_EXPR_TAILCALL from ORIG_EXP to the new CALL_EXPR.
1201         (expand_builtin_bcopy): Replace ARGLIST and TYPE arguments
1202         with EXP.  Pass EXP to expand_builtin_memmove.
1203         (expand_builtin_memset): Add ORIG_EXP argument, pass
1204         BLOCK_OP_TAILCALL to clear_storage if CALL_EXPR_TAILCALL (orig_exp).
1205         (expand_builtin_bzero): Replace ARGLIST argument with EXP.
1206         Pass EXP to expand_builtin_memset.
1207         (expand_builtin_strcmp): Copy CALL_EXPR_TAILCALL from EXP to
1208         the new CALL_EXPR.
1209         (expand_builtin_strncmp): Likewise.
1210         (expand_builtin_printf): Replace ARGLIST argument with EXP.
1211         Copy CALL_EXPR_TAILCALL from EXP to the new CALL_EXPR.
1212         (expand_builtin_fprintf): Likewise.
1213         (expand_builtin): Adjust calls to
1214         expand_builtin_{memmove,bcopy,memset,bzero,{,f}printf}.
1215
1216         * config/i386/i386.c (ix86_expand_vector_set): Fix setting 3rd and 4th
1217         item in V4SF mode.
1218
1219         PR rtl-optimization/21239
1220         * combine.c (combine_simplify_rtx) <case VEC_SELECT>: Fix a typo.
1221
1222 2005-05-03  Kazu Hirata  <kazu@cs.umass.edu>
1223
1224         * tree-flow.h (tree_ann_common_d): Move aux to ...
1225         (stmt_ann_d): ... here.
1226         * tree-ssa-loop-im.c (LIM_DATA, determine_invariantness_stmt,
1227         move_computations_stmt, schedule_sm): Update references to
1228         aux.
1229         * tree-vectorizer.h (set_stmt_info, vinfo_for_stmt): Likewise.
1230
1231         * tree-cfg.c (remove_bb): Remove a redundant call to
1232         set_bb_for_stmt.
1233         * tree-if-conv.c (replace_phi_with_cond_modify_expr):
1234         Likewise.
1235
1236 2005-05-03  Richard Henderson  <rth@redhat.com>
1237
1238         * config/rs6000/rs6000.c: Remove conflict markers.
1239
1240         * cfg.c (dump_flow_info): Use max_reg_num, not max_regno.
1241
1242 2005-05-03  James E Wilson  <wilson@specifixinc.com>
1243
1244         * dwarf2out.c (lookup_filename): Call maybe_emit_file.
1245
1246 2005-05-03  DJ Delorie  <dj@redhat.com>
1247
1248         * c-decl.c (store_parm_decls_oldstyle): Let diagnostic machinery
1249         decide if the warning will be printed.
1250         * calls.c (expand_call): Likewise.
1251         * function.c (init-function_start): Likewise.
1252
1253         * common.opt (-fdiagnostics-show-option): New.
1254         * opts.c (option_enabled): Accept the option index instead of a
1255         pointer to the option descriptor.
1256         * opts.h (option_enabled): Likewise.
1257         * toplev.c (print_switch_values): Pass option index, not option
1258         descriptor.
1259         * diagnostic.h (diagnostic_info): Add option_index.
1260         * diagnostic.c: Include opts.h.
1261         (diagnostic_set_info): Initialize option_index.
1262         (diagnostic_report_diagnostic): Amend option name if appropriate.
1263         (warning): Check to see if the specified warning is enabled.
1264         Store option index.
1265         * doc/invoke.texi (-fdiagnostics-show-options): Document.
1266
1267 2005-05-03  Richard Henderson  <rth@redhat.com>
1268
1269         * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Fix ALL_REGS and
1270         SPEC_OR_GEN_REGS definitions.
1271
1272 2005-05-03  Alexandre Oliva  <aoliva@redhat.com>
1273
1274         PR target/16888
1275         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Clear reg names
1276         for unavailable registers.
1277
1278 2005-05-03  Kazu Hirata  <kazu@cs.umass.edu>
1279
1280         * tree-cfg.c (tree_forwarder_block_p): Fix a typo.
1281
1282         * cfglayout.c (block_locators_blocks,
1283         insn_locators_initialize, insn_scope): Use VEC instead of
1284         VARRAY.
1285
1286         * tree-mudflap.c (deferred_static_decls, mudflap_enqueue_decl,
1287         mudflap_finish_file, mudflap_finish_file): Use VEC instead of
1288         VARRAY.
1289
1290 2005-05-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
1291
1292         * config/sparc/predicates.md (const_compl_high_operand): New.
1293         * config/sparc/sparc.c (sparc_emit_set_safe_HIGH64): Rename into
1294         gen_safe_HIGH64.
1295         (sparc_emit_set_const64_quick1): Adjust for above change.
1296         (sparc_emit_set_const64_quick2): Likewise.
1297         (sparc_emit_set_const64_longway): Likewise.
1298         (sparc_emit_set_const64): Likewise.
1299         * config/sparc/sparc.md (movhi_const64_special, movsi_const64_special,
1300         movdi_const64_special): Delete.
1301         (logical constant splitters): Use const_compl_high_operand.
1302
1303 2005-05-03  Richard Guenther  <rguenth@gcc.gnu.org>
1304
1305         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Use STRIP_TYPE_NOPS
1306         rather than STRIP_NOPS.
1307
1308 2005-05-03  Jakub Jelinek  <jakub@redhat.com>
1309
1310         PR rtl-optimization/21330
1311         * loop-unswitch.c (may_unswitch_on): Set *cinsn only when
1312         returning non-NULL.
1313         (unswitch_single_loop): Clear cinsn when retrying.
1314
1315         PR target/21297
1316         * config/i386/i386.c (legitimize_address): When canonicalizing
1317         ASHIFT into MULT, multiply by 1 << shift_count instead of
1318         1 << log2 (shift_count).
1319
1320 2005-05-03  Andrew MacLeod  <amacleod@redhat.com>
1321
1322         * lambda-code.c (gcc_loop_to_lambda_loop, 
1323         lambda_loopnest_to_gcc_loopnest, phi_loop_edge_uses_def,
1324         stmt_is_bumper_for_loop, perfect_nest_p, replace_uses_of_x_with_y): Use
1325         generic operand interface.
1326         * tree-data-ref.c (find_data_references_in_loop): Use generic interface.
1327         * tree-dfa.c (collect_dfa_stats_r, mark_new_vars_to_rename): Use
1328         generic operand interface.
1329         * tree-flow-inline.h (delink_imm_use, link_imm_use_to_list, 
1330         link_imm_use, link_imm_use_stmt, relink_imm_use, relink_imm_use_stmt,
1331         next_safe_imm_use, has_zero_uses, has_single_use, single_imm_use,
1332         num_imm_uses): Use ssa_use_operand_t.
1333         (get_def_ops, get_use_ops, get_v_may_def_ops, get_vuse_ops,
1334         get_v_must_def_ops): Delete.
1335         (get_def_from_ptr, get_phi_result_ptr): Get def directly now.
1336         (get_use_op_ptr, get_def_op_ptr, get_v_may_def_result_ptr,
1337         get_v_may_def_op_ptr, get_vuse_op_ptr, get_v_must_def_result_ptr,
1338         get_v_must_def_kill_ptr): Delete.
1339         (delink_stmt_imm_use): Move and use new operand interface.
1340         (op_iter_next_use, op_iter_next_def, op_iter_next_tree, op_iter_init,
1341         op_iter_next_tree): Use new operand implementation.
1342         (clear_and_done_ssa_iter): New.  Initialize a blank operand iterator.
1343         (op_iter_init_use, op_iter_init_def, op_iter_init_tree): Add iterator 
1344         type check.
1345         (op_iter_next_mustdef, op_iter_next_maydef, 
1346         op_iter_next_must_and_may_def): Delete. Replace with...
1347         (op_iter_next_maymustdef): New.  Combine must and may next operations.
1348         (op_iter_init_maydef, op_iter_init_mustdef, 
1349         op_iter_init_must_and_may_def): Use new interface.
1350         (single_ssa_tree_operand ): New.  Process single operands only as trees.
1351         (single_ssa_use_operand): New.  Process single operands only as uses.
1352         (single_ssa_def_operand): New.  Process single operands only as defs.
1353         (zero_ssa_operands): New.  Return TRUE if there are zero operands of the
1354         specified types.
1355         (num_ssa_operands): New.  Count the number of specified operands.
1356         (compare_ssa_operands_equal): New.  Compare two statements' operands.
1357         (single_phi_def): New.  Return true if PHI has one def of the specified
1358         operand type.
1359         (op_iter_init_phiuse): New.  Initialize the iterator for PHI arguments.
1360         (op_iter_init_phidef): New.  Initialize the iterator for the PHI def.
1361         * tree-flow.h (struct immediate_use_iterator_d): Use ssa_use_operand_t.
1362         (struct stmt_ann_d): Operands field no longer require GTY().
1363         (vn_compute, vn_lookup_or_add, vn_add, vn_lookup): Change prototype.
1364         * tree-into-ssa.c (mark_def_sites): Use SSA_OP_VMUSTKILL.
1365         * tree-outof-ssa.c (check_replaceable, find_replaceable_in_bb, 
1366         dump_replaceable_exprs, rewrite_trees): Use generic interface.
1367         * tree-phinodes.c (make_phi_node, release_phi_node, resize_phi_node): 
1368         Use use_operand_p instead of ssa_imm_use_t *.
1369         * tree-pretty-print.c (dump_vops): check if operands are active before
1370         dumping virtual operands.
1371         * tree-sra.c (sra_walk_function): Use ZERO_SSA_OPERANDS.
1372         * tree-ssa-ccp.c (likely_value): Use ZERO_SSA_OPERANDS.
1373         (ccp_fold): Use new interface.
1374         (ccp_visit_stmt): Remove unused variables and code.
1375         (convert_to_gimple_builtin): Insert statements before calling 
1376         mark_new_vars_to_rename.
1377         * tree-ssa-copy.c (stmt_may_generate_copy): Use ZERO_SSA_OPERANDS.
1378         (copy_prop_visit_cond_stmt): Use generic interface.
1379         * tree-ssa-dom.c (struct expr_hash_elt): Use stmt pointer, not the 
1380         annotation in table.
1381         (thread_across_edge): Use generic interface.
1382         (initialize_hash_element): Initialzie with stmt, not annotation.
1383         (eliminate_redundant_computations): Use generic interface.
1384         (record_equivalences_from_stmt): Pass stmt, not annotation.
1385         (avail_expr_hash, real_avail_expr_hash, avail_expr_eq): Use generic
1386         interface.
1387         * tree-ssa-dse.c (dse_optimize_stmt): Use ZERO_SSA_OPERANDS.
1388         * tree-ssa-loop-ivopts.c (find_invariants_stmt, 
1389         find_interesting_uses_stmt, protect_loop_closed_ssa_form_use): Use 
1390         generic operand interface.
1391         * tree-ssa-loop-niter.c (chain_of_csts_start, get_val_for): Use generic
1392         interface.
1393         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Use Generic operand
1394         Interface.
1395         * tree-ssa-operands.c (struct opbuild_list_d): New.  Operand build type.
1396         (build_defs, build_uses, build_v_may_defs, build_vuses, 
1397         build_v_must_defs): Change type to struct opbuild_list_d.
1398         (ops_active): New.  Operands active boolean.
1399         (operand_memory, operand_memory_index): New.  Operand memory managers.
1400         (allocate_def_optype, allocate_use_optype, allocate_v_may_def_optype,
1401         allocate_vuse_optype, allocate_v_must_def_optype): Delete.
1402         (free_uses, free_defs, free_vuses, free_v_may_defs, free_v_must_defs): 
1403         Change from functions to static variable list heads.
1404         (opbuild_initialize_virtual): New.  Initialize a virtual build list.
1405         (opbuild_initialize_real): New.  Initialize a virtual build list.
1406         (opbuild_free): New.  Free a build list.
1407         (opbuild_num_elems): New.  Number of items in a list.
1408         (opbuild_append_real): New.  Add a real (tree *) operand.
1409         (opbuild_append_virtual): New.  Add and sort a virtual (tree) operand.
1410         (opbuild_first): New.  Return first element index in a list.
1411         (opbuild_next): New.  Return next element in a list.
1412         (opbuild_elem_real): New.  Return real element.
1413         (opbuild_elem_virtual): New.  Return virtual element.
1414         (opbuild_elem_uid): New.  Return UID of virtual element.
1415         (opbuild_clear): New.  Reset an operand list.
1416         (opbuild_remove_elem): New.  Remove an element form a list.
1417         (ssa_operands_active): New.  Return true if operand cache is active.
1418         (init_ssa_operands, fini_ssa_operands): Initialize new implementation.
1419         (ssa_operand_alloc): New.  Allocate memory from an operand chunk.
1420         (correct_use_link): Use use_operand_p.
1421         (finalize_ssa_uses, finalize_ssa_v_may_defs, finalize_ssa_defs,
1422         finalize_ssa_vuses, finalize_ssa_v_must_defs): New implmentation. 
1423         (cleanup_v_may_defs): Use new implmentation.
1424         (finalize_ssa_stmt_operands, start_ssa_stmt_operands): New 
1425         implementation.
1426         (append_def, append_use, append_v_may_def, append_vuse, 
1427         append_v_must_def): Call opbuild_append routine instead of using varray.
1428         (build_ssa_operands): Simplify to simply use stmt, don't maintain a 
1429         global parse_old_ops variable.
1430         (free_ssa_operands): New implementation.
1431         (update_stmt_operands): Move.  Change argument to build_ssa_operands.
1432         (copy_virtual_operands): Move. New generic implementation.
1433         (create_ssa_artficial_load_stmt): Move. New implementation.
1434         (swap_tree_operands): Update for new implementation.
1435         (get_expr_operands): Add stmt parameter to calls to swap_tree_operands.
1436         (add_call_clobber_ops, add_call_read_ops): Initialize opbuild list
1437         rather than a varray.
1438         (verify_imm_links): Use use_operand_p.
1439         (dump_immediate_uses_for): If the immediate use variable is a virtual 
1440         variable, show the virtual ops in the stmt.
1441         * tree-ssa-operands.h (def_operand_p): No longer a structure.
1442         (NULL_DEF_OPERAND_P): Now a #define.
1443         (def_optype_d, use_optype_d, v_def_use_operand_type, v_may_def_optype_d,
1444         vuse_operand_type, vuse_optype_d, v_must_def_optype_d): Delete.
1445         (def_optype_d, use_optype_d, maydef_optype_d, vuse_optype_d,
1446         mustdef_optype_d): New.  Use Linked list representation.
1447         (SSA_OPERAND_MEMORY_SIZE): New.  Size of operand memory chunk.
1448         (struct ssa_operand_memory_d): New.  Allocated Chunk node.
1449         (struct stmt_operands_d): Change to new pointers that are not GTY.
1450         (STMT_USE_OPS, NUM_USES, SET_USE_OP, STMT_DEF_OPS, NUM_DEFS, SET_DEF_OP,
1451         STMT_V_MAY_DEF_OPS, NUM_V_MAY_DEFS, SET_V_MAY_DEF_RESULT,
1452         SET_V_MAY_DEF_OP, STMT_VUSE_OPS, NUM_VUSES, SET_VUSE_OP,
1453         STMT_V_MUST_DEF_OPS, NUM_V_MUST_DEFS, SET_V_MUST_DEF_RESULT, 
1454         SET_V_MUST_DEF_KILL): Delete.
1455         (V_MAY_DEF_OPS, V_MAY_DEF_RESULT_PTR, V_MAY_DEF_RESULT, 
1456         V_MAY_DEF_OP_PTR, V_MAY_DEF_OP): Rename to MAYDEF_*.
1457         (V_MUST_DEF_OPS, V_MUST_DEF_RESULT_PTR, V_MUST_DEF_RESULT, 
1458         V_MUST_DEF_KILL_PTR, V_MUST_DEF_KILL): Rename to MUSTDEF_*.
1459         (enum ssa_op_iter_type): Operand iterator typechecking values.
1460         (struct ssa_operand_iterator_d): Use linked lists of operands.
1461         (SSA_OP_VMUSTDEFKILL): Rename to SSA_OP_VMUSTKILL.
1462         (FOR_EACH_SSA_MAYDEF_OPERAND, FOR_EACH_SSA_MUSTDEF_OPERAND,
1463         FOR_EACH_SSA_MUST_AND_MAY_DEF_OPERAND): Use op_iter_next_maymustdef.
1464         (FOR_EACH_PHI_ARG): New.  Iterate over PHI arguments.
1465         (FOR_EACH_PHI_OR_STMT_USE): New.  Iterate over PHI or stmt uses.
1466         (FOR_EACH_PHI_OR_STMT_DEF): New.  Iterate over PHI or stmt defs.
1467         (SINGLE_SSA_TREE_OPERAND, SINGLE_SSA_USE_OPERAND, 
1468         SINGLE_SSA_DEF_OPERAND, ZERO_SSA_OPERANDS, NUM_SSA_OPERANDS): New.
1469         * tree-ssa-opfinalize.h: New.  Function templates for expansion.
1470         (FINALIZE_ALLOC): Expands into alloc_def, alloc_use, alloc_maydef,
1471         alloc_vuse, and alloc_mustdef.
1472         (FINALIZE_FUNC): Expands into finalize_ssa_def_ops, 
1473         finalize_ssa_use_ops, finalize_ssa_v_may_def_ops, finalize_ssa_vuse_ops,
1474         and finalize_ssa_v_must_def_ops.
1475         * tree-ssa-pre.c (add_to_sets): Pass tree to vn_add.
1476         (create_value_expr_from): Use stmt not vuse_optype as a parameter. Pass
1477         stmt around.
1478         (compute_avail): Use generic iterator interface.
1479         * tree-ssa-propagate.c (first_vdef): Use generic operand interface.
1480         (stmt_makes_single_load, stmt_makes_single_store): Use 
1481         ZERO_SSA_OPERANDS.
1482         * tree-ssa-sink.c (is_hidden_global_store): Use ZERO_SSA_OPERANDS.
1483         (statement_sink_location): Use generic interface.
1484         * tree-ssa.c (verify_ssa):  Use %p in fprintf.  Use generic interface.
1485         (delete_tree_ssa): Don't call release_defs.  Call release_ssa_name and
1486         reset the immediate use link nodes.
1487         (stmt_references_memory_p): Use ZERO_SSA_OPERANDS.
1488         * tree-ssanames.c (make_ssa_name): Use use_operand_p.
1489         * tree-tailcall.c (find_tail_calls): Use ZERO_SSA_OPERANDS.
1490         (eliminate_tail_call): Use generic operand interface.
1491         * tree-vect-analyze.c (vect_analyze_data_refs): Use ZERO_SSA_OPERANDS.
1492         (vect_mark_relevant, vect_mark_stmts_to_be_vectorized): Use generic 
1493         interface.
1494         * tree-vect-transform.c (update_vuses_to_preheader): Use generic 
1495         interface.
1496         * tree-vectorizer.c (rename_variables_in_bb): Use generic interface.
1497         * tree-vn.c (struct val_expr_pair_d): Cache statment pointer instead of
1498         vuse_optype.
1499         (vn_compute, val_expr_pair_hash, vn_add, vn_lookup, vn_lookup_or_add): 
1500         Use statement pointer instead of vuse_optype.  Use generic interface.
1501         * tree-vrp.c (maybe_add_assert_expr): Use generic interface.
1502         (stmt_interesting_for_vrp, vrp_visit_stmt): Use ZERO_SSA_OPERANDS.
1503         * tree.h (struct ssa_imm_use_d): Renamed to ssa_use_operand_d.
1504         (tree_ssa_name, phi_arg_d): Use ssa_use_operand_d.
1505         * doc/tree-ssa.texi: Update documentation for operand interface.
1506
1507 2005-05-03  Nathan Sidwell  <nathan@codesourcery.com>
1508
1509         * config/darwin.c (machopic_define_symbol): Use gcc_assert or
1510         gcc_unreachable as appropriate.
1511         (machopic_function_base_name, machopic_indirect_data_reference,
1512         machopic_legitimize_pic_address, darwin_non_lazy_pcrel): Likewise.
1513         * config/host-darwin.c (darwin_gt_pch_use_address): Likewise
1514         * config/rs6000/altivec.md (*mov<mode>_internal,
1515         build_vector_mask_for_load): Likewise.
1516         * config/rs6000/darwin.md (movdf_low_si, movdf_low_di,
1517         *call_nonlocal_darwin64, *call_value_nonlocal_darwin64,
1518         *sibcall_symbolic_64, *sibcall_value_symbolic_64): Likewise.
1519         * config/rs6000/predicates.md (easy_fp_constant,
1520         logical_operand): Likewise.
1521         * config/rs6000/rs6000.c (spe_expand_predicate_builtin,
1522         compute_save_world_info, rs6000_emit_prologue,
1523         rs6000_output_mi_thunk): Reword comments to avoid 'abort'.
1524         * config/rs6000/host-darwin.c (segv_handler): Use fancy_abort
1525         directly.
1526
1527 2005-05-03  Uros Bizjak  <uros@kss-loka.si>
1528
1529         PR middle-end/21282
1530         * convert.c (convert_to_integer): Convert ceil and floor in
1531         c99 mode only.
1532
1533 2005-04-29  Geoffrey Keating  <geoffk@apple.com>
1534
1535         PR target/20813
1536         * config/rs6000/rs6000.md (floatsidf2_internal): Merge to create
1537         define_insn_and_split.  Split only when memory operand is
1538         offsettable.  Use adjust_address rather than plus_constant.
1539         (floatunssidf2_internal): Likewise.
1540         (fix_truncdfsi2_internal): Split only when memory operand is
1541         offsettable.  Use adjust_address rather than plus_constant.
1542         (fix_trunctfsi2_internal): Likewise.
1543         (floatsidf2_internal): Likewise.
1544
1545 2005-05-02  Diego Novillo  <dnovillo@redhat.com>
1546
1547         * tree-vrp.c (set_value_range_to_nonnull): Declare inline.
1548         (set_value_range_to_null): Likewise.
1549         (set_value_range_to_varying): New function.  Use it in all
1550         call sites that used to call set_value_range (vr, VR_VARYING, ...).
1551         (extract_range_from_assert): If the integral type has a
1552         super-type, and LIMIT is not within MIN and MAX values of that
1553         type, set the resulting range to VR_VARYING.
1554
1555 2005-05-02  Hans-Peter Nilsson  <hp@bitrange.com>
1556
1557         * config/mmix/mmix.opt: New file.
1558         * config/mmix/mmix.h: Move options-related comments to mmix.opt.
1559         (mmix_cc1_ignored_option): Don't declare.
1560         (TARGET_OPTIONS, TARGET_MASK_LIBFUNCS, TARGET_MASK_ABI_GNU)
1561         (TARGET_MASK_FCMP_EPSILON, TARGET_MASK_ZERO_EXTEND)
1562         (TARGET_MASK_KNUTH_DIVISION, TARGET_MASK_TOPLEVEL_SYMBOLS)
1563         (TARGET_MASK_BRANCH_PREDICT, TARGET_MASK_USE_RETURN_INSN)
1564         (TARGET_MASK_BASE_ADDRESSES, TARGET_LIBFUNC, TARGET_ABI_GNU,
1565         (TARGET_FCMP_EPSILON, TARGET_ZERO_EXTEND, TARGET_KNUTH_DIVISION)
1566         (TARGET_TOPLEVEL_SYMBOLS, TARGET_BRANCH_PREDICT)
1567         (TARGET_BASE_ADDRESSES, TARGET_USE_RETURN_INSN, TARGET_SWITCHES):
1568         Don't define.
1569         (TARGET_DEFAULT): Change TARGET_MASK_... to MASK_...
1570         * config/mmix/mmix.c (mmix_cc1_ignored_option): Remove.
1571         (TARGET_DEFAULT_TARGET_FLAGS): Override default.
1572
1573 2005-05-02  Joseph S. Myers  <joseph@codesourcery.com>
1574
1575         PR c/15698
1576         * c-tree.h (C_DECL_BUILTIN_PROTOTYPE): New.
1577         * c-decl.c (current_function_prototype_built_in,
1578         current_function_prototype_arg_types): New.
1579         (merge_decls): Keep source location of prototype followed by
1580         nonprototype declaration.  Update C_DECL_BUILTIN_PROTOTYPE.
1581         (builtin_function): Set C_DECL_BUILTIN_PROTOTYPE.
1582         (start_function): Always set current_function_prototype_locus,
1583         current_function_prototype_built_in and
1584         current_function_prototype_arg_types.  Check for external
1585         prototype whether or not visible for external function and set
1586         current_function_prototype_arg_types accordingly.
1587         (store_parm_decls_oldstyle): Use
1588         current_function_prototype_arg_types for checking old-style
1589         definition against prototype.  Give warnings only if
1590         current_function_prototype_built_in).
1591
1592 2005-05-02  Daniel Jacobowitz  <dan@codesourcery.com>
1593
1594         * ggc.h (ggc_alloc_zone_pass_stat): New macro.
1595         (ggc_alloc_zone_stat): Don't define.
1596         * ggc-zone.c (ggc_alloc_typed_stat, ggc_alloc_stat): Use
1597         ggc_alloc_zone_pass_stat.
1598         * rtl.c (rtx_alloc_stat, shallow_copy_rtx_stat): Likewise.
1599         * tree.c (make_node_stat, copy_node_stat, make_tree_binfo_stat)
1600         (make_tree_vec_stat, tree_cons_stat, build1_stat): Likewise.
1601
1602 2005-05-02  Daniel Jacobowitz  <dan@codesourcery.com>
1603
1604         * calls.c (expand_call): Handle current_function_pretend_args_size
1605         when checking for sibcalls.
1606
1607 2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>
1608
1609         PR tree-optimization/21294
1610         * tree-vrp.c (vrp_expr_computes_nonzero): New.
1611         (extract_range_from_expr): Call vrp_expr_computes_nonzero.
1612
1613 2005-05-02  Janis Johnson  <janis187@us.ibm.com>
1614
1615         PR 19985
1616         * gcov-io.h: Declare gcov external functions hidden.
1617
1618 2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>
1619
1620         * tree-ssa-uncprop.c (equiv_hash_elt, remove_equivalence,
1621         record_equiv, tree_ssa_uncprop, uncprop_into_successor_phis):
1622         Use VEC instead of VARRAY.
1623         (equiv_free): New.
1624
1625         * tree-ssa-sink.c (nearest_common_dominator_of_uses): Factor
1626         out common code.
1627
1628 2005-05-02  Paolo Bonzini  <bonzini@gnu.org>
1629
1630         * c-common.c (resolve_overloaded_builtin): Forward to target
1631         hook for BUILT_IN_MD built-ins.
1632         * c-typeck.c (finish_call_expr): Call resolve_overloaded_builtin
1633         for all types of built-in.
1634         * target-def.h (TARGET_RESOLVE_OVERLOADED_BUILTIN): New.  Use it
1635         in the definition of the target hooks struct.
1636         * target.h (struct gcc_target): Add resolve_overloaded_builtin.
1637         * config/rs6000/altivec.h: Rewritten.
1638         * config/rs6000/rs6000-c.c (struct altivec_builtin_types,
1639         altivec_resolve_overloaded_builtin, altivec_build_resolved_builtin,
1640         rs6000_builtin_type, rs6000_builtin_type_compatible,
1641         altivec_overloaded_builtins, rs6000_builtin_type,
1642         rs6000_builtin_type_compatible): New.
1643         * config/rs6000/rs6000.c (rs6000_builtin_types, rs6000_builtin_decls):
1644         New.
1645         (def_builtin): Turn into a function.  Check for duplicates and store
1646         the builtin into rs6000_builtin_decls.
1647         (bdesc_3arg, bdesc_dst, bdesc_altivec_preds, bdesc_2arg,
1648         bdesc_1arg): Add overloaded builtins.
1649         (altivec_expand_builtin): Check for unresolved overloaded builtins,
1650         do not support ALTIVEC_COMPILETIME_ERROR.
1651         (rs6000_init_builtins): Add opaque 128-bit vector, and internal
1652         nodes to represent front-end types.
1653         (altivec_init_builtins, rs6000_common_init_builtins): Create builtins
1654         with opaque arguments and/or return values.
1655         * config/rs6000/rs6000.h (enum rs6000_builtins): Remove
1656         ALTIVEC_COMPILETIME_ERROR and add Altivec overloaded builtins.
1657         (rs6000_builtin_type_index): New.
1658         (is_ev64_opaque_type): Rename to...
1659         (rs6000_is_opaque_type): ... this.
1660         (rs6000_cpu_cpp_builtins): Install the resolve_overloaded_builtin
1661         target hook.
1662
1663 2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>
1664
1665         * function.c (reorder_blocks, reorder_blocks_1): Use VEC
1666         instead of VARRAY.
1667
1668 2005-05-02  Nathan Sidwell  <nathan@codesourcery.com>
1669             Bernd Schmidt  <bernd.schmidt@analog.com>
1670
1671         * config/bfin/bfin.c (emit_link_insn, effective_address_32bit_p,
1672         print_address_operand, print_operand, legitimize_pic_address,
1673         asm_conditional_branch, bfin_gen_compare, output_push_multiple,
1674         output_pop_multiple): Use gcc_assert or gcc_unreachable as
1675         appropriate.
1676         * config/bfin/bfin.md (movsf splitter, beq, bne): Likewise.
1677
1678 2005-05-02  Dorit Naishlos  <dorit@il.ibm.com>
1679
1680         * doc/passes.texi: Document vectorization pass.
1681
1682 2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>
1683
1684         * tree-scalar-evolution.c (get_exit_conditions_rec,
1685         select_loops_exit_conditions,
1686         number_of_iterations_for_all_loops,
1687         analyze_scalar_evolution_for_all_loop_phi_nodes,
1688         scev_analysis): Use VEC instead of VARRAY.
1689
1690 2005-05-02  Michael Matz  <matz@suse.de>
1691
1692         PR c++/19542
1693         * c-common.c (c_common_nodes_and_builtins): Create global null_node.
1694         (warn_strict_null_sentinel): Define.
1695         (check_function_sentinel): Check for null_node as valid sentinel too.
1696         * c-common.h (c_tree_index): Added CTI_NULL.
1697         (null_node) Define global_tree[CTI_NULL].
1698         (warn_strict_null_sentinel): Declare.
1699         * c-opts.c: (c_common_handle_option): Handle -Wstrict-null-sentinel.
1700         * c.opt: (Wstrict-null-sentinel): New C++ option.
1701         * doc/invoke.texi (C++ Options): Document -Wstrict-null-sentinel.
1702
1703 2005-05-01  Kazu Hirata  <kazu@cs.umass.edu>
1704
1705         * gimplify.c (gimplify_compound_lval): Use VEC instead of
1706         VARRAY.
1707
1708         * global.c (calculate_reg_pav): Use VEC instead of VARRAY.
1709
1710         * dwarf2out.c (decl_scope_table, push_decl_scope,
1711         pop_decl_scope, scope_die_for, dwarf2out_init): Use VEC
1712         instead of VARRAY.
1713
1714 2005-05-01  Mark Mitchell  <mark@codesourcery.com>
1715
1716         PR C++/14391
1717         * c-cppbuiltin.c (c_cpp_builtins): Do not define __GXX_WEAK__ to 1
1718         if !flag_weak.
1719         * doc/cpp.texi (__DEPRECATED): Document.
1720         (__EXCEPTIONS): Likewise.
1721         (__GXX_WEAK__): Likewise.
1722
1723         * function.c (INVOKE__main): Do not define.
1724         (expand_main_function): Check HAS_INIT_SECTION when determining
1725         whether or not to call __main.
1726
1727 2005-05-01  Kazu Hirata  <kazu@cs.umass.edu>
1728
1729         * tree-ssa-loop-ivopts.c: Fix a comment typo.
1730
1731 2005-01-05  Paul Brook  <paul@codesourcery.com>
1732
1733         * config/arm/arm.h (ARM_EMIT_TRAMPOLINE_CACHE_CLEAR): Define.
1734         (INITIALIZE_TRAMPOLINE): Use it.
1735         * config/arm/linux-gas.h (INITIALIZE_TRAMPOLINE): Remove.
1736         * config/arm/netbsd.h (INITIALIZE_TRAMPOLINE): Remove.
1737         * config/arm/netbsd-elf.h (INITIALIZE_TRAMPOLINE): Remove.
1738
1739 2005-05-01  Gerald Pfeifer  <gerald@pfeifer.com>
1740
1741         * doc/install.texi (Specific): Omit dots in the @anchors names
1742         for i?86-*-sco3.2v5*, i?86-*-solaris2.10, and sparc-sun-solaris2.7.
1743         Omit underscores for x86_64-*-* and the "all ELF targets" entry.
1744
1745 2005-05-01  Zdenek Dvorak  <dvorakz@suse.cz>
1746
1747         PR tree-optimization/18316
1748         PR tree-optimization/19126
1749         * tree.c (build_int_cst_type): Avoid shift by size of type.
1750         * tree-scalar-evolution.c (simple_iv): Add allow_nonconstant_step
1751         argument.
1752         * tree-scalar-evolution.h (simple_iv): Declaration changed.
1753         * tree-ssa-loop-ivopts.c (struct iv_cand): Add depends_on
1754         field.
1755         (dump_cand): Dump depends_on information.
1756         (determine_biv_step): Add argument to simple_iv call.
1757         (contains_abnormal_ssa_name_p): Handle case expr == NULL.
1758         (find_bivs, find_givs_in_stmt_scev): Do not require step to be a
1759         constant.
1760         (add_candidate_1): Record depends_on for candidates.
1761         (tree_int_cst_sign_bit, constant_multiple_of): New functions.
1762         (get_computation_at, get_computation_cost_at, may_eliminate_iv):
1763         Handle ivs with nonconstant step.
1764         (iv_ca_set_remove_invariants, iv_ca_set_add_invariants): New functions.
1765         (iv_ca_set_no_cp, iv_ca_set_cp): Handle cand->depends_on.
1766         (create_new_iv): Unshare the step before passing it to create_iv.
1767         (free_loop_data): Free cand->depends_on.
1768         (build_addr_strip_iref): New function.
1769         (find_interesting_uses_address): Use build_addr_strip_iref.
1770         (strip_offset_1): Split the recursive part from strip_offset.
1771         Strip constant offset component_refs and array_refs.
1772         (strip_offset): Split the recursive part to strip_offset_1.
1773         (add_address_candidates): Removed.
1774         (add_derived_ivs_candidates): Do not use add_address_candidates.
1775         (add_iv_value_candidates): Add candidates with stripped constant
1776         offset.  Consider all candidates with initial value 0 important.
1777         (struct affine_tree_combination): New.
1778         (aff_combination_const, aff_combination_elt, aff_combination_scale,
1779         aff_combination_add_elt, aff_combination_add,
1780         tree_to_aff_combination, add_elt_to_tree, aff_combination_to_tree,
1781         fold_affine_sum): New functions.
1782         (get_computation_at): Use fold_affine_sum.
1783         * tree-ssa-loop-manip.c (create_iv): Handle ivs with nonconstant step.
1784         * tree-ssa-loop-niter.c (number_of_iterations_exit): Add argument
1785         to simple_iv call.
1786
1787 2005-04-30  Michael Matz  <matz@suse.de>
1788
1789         * config/i386/i386.md (movmemsi): Also active when
1790         TARGET_INLINE_ALL_STRINGOPS.
1791
1792 2005-04-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
1793
1794         PR bootstrap/20633
1795         * config/freebsd-spec.h (FBSD_CPP_SPEC): Add %(cpp_arch).
1796
1797 2005-04-30  Paul Brook  <paul@codesourcery.com>
1798
1799         * config/arm/bpabi.h (RENAME_LIBRARY_SET): Always use .thumb_set in
1800         thumb mode.
1801         * config/arm/ieee754-df.S: Use __INTERWORKING_STUBS__.
1802         * config/arm/ieee754-sf.S: Ditto.
1803         * config/arm/lib1funcs.asm: Define and use __INTERWORKING_STUBS__.
1804         (FUNC_ALIAS): Use .thumb_set for thumb routines.
1805
1806 2005-04-30  Kazu Hirata  <kazu@cs.umass.edu>
1807
1808         * tree-ssanames.c: Fix a comment typo.
1809         * doc/options.texi: Fix a typo.
1810
1811 2005-04-30  Nathan Sidwell  <nathan@codesourcery.com>
1812
1813         * config/h8300/h8300.c (byte_reg): Use gcc_assert and
1814         gcc_unreachable as appropriate.
1815         (split_adds_subs, cond_string, print_operand,
1816         h8300_initial_elimination_offset, h8300_classify_operand,
1817         h8300_unary_length, h8300_short_immediate_length,
1818         h8300_bitfield_length, h8300_binary_length,
1819         h8300_insn_length_from_table, compute_mov_length, output_plussi,
1820         compute_plussi_length, compute_plussi_cc, output_logical_op,
1821         compute_logical_op_length, compute_logical_op_cc,
1822         output_h8sx_shift, get_shift_alg, h8300_shift_needs_scratch_p,
1823         output_a_shift, compute_a_shift_length, compute_a_shift_cc,
1824         output_a_rotate, compute_a_rotate_length, fix_bit_operand,
1825         h8300_regs_ok_for_stm): Likewise.
1826         * config/h8300/h8300.md (*movsi_h8300, *movsf_h8300,
1827         monitor_prologue): Likewise.
1828
1829 2005-04-30  Kazu Hirata  <kazu@cs.umass.edu>
1830
1831         * loop-invariant.c (invariants, create_new_invariant,
1832         get_inv_cost, best_gain_for_invariant,
1833         find_invariants_to_move, move_invariants,
1834         init_inv_motion_data, free_inv_motion_data): Use VEC instead
1835         of VARRAY.
1836
1837 2005-04-29  Richard Henderson  <rth@redhat.com>
1838
1839         * function.c (instantiate_decls): Remove valid_only argument.
1840         (instantiate_decls_1, instantiate_decl): Likewise.
1841         (instantiate_virtual_regs_1): Delete.
1842         (instantiate_virtual_regs_lossage): Delete.
1843         (instantiate_virtual_regs_in_rtx): New.
1844         (safe_insn_predicate): New.
1845         (instantiate_virtual_regs_in_insn): New.
1846         (instantiate_virtual_regs): Update to match all that.  Only run
1847         instantiate_decls once.
1848
1849 2005-04-29  Richard Henderson  <rth@redhat.com>
1850             Daniel Jacobowitz  <dan@codesourcery.com>
1851
1852         * gengtype.c (write_func_for_structure): Split out ...
1853         (output_type_enum): ... new function.  Fix thinko accessing
1854         TYPE_PARAM_STRUCT data.
1855
1856 2005-04-29  Tom Tromey  <tromey@redhat.com>
1857
1858         * tree.c (build_block): Removed unused 'tags' argument.
1859         * tree.h (build_block): Removed argument.
1860
1861 2005-04-29  Michael Matz  <matz@suse.de>
1862
1863         PR rtl-optimization/21144
1864         * postreload.c (reload_cse_move2add): Check for VOIDmode.
1865
1866 2005-04-29  Bob Wilson  <bob.wilson@acm.org>
1867
1868         * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Define to disable
1869         flag_reorder_blocks.
1870
1871 2005-04-28  Kazu Hirata  <kazu@cs.umass.edu>
1872
1873         PR tree-optimization/21030
1874         * tree-vrp.c (adjust_range_with_scev): Do not create invalid
1875         ranges where VR->MAX is smaller than VR->MIN.
1876
1877 2005-04-29  Devang Patel  <dpatel@apple.com>
1878
1879         PR tree-optimization/21272
1880         PR tree-optimization/21266
1881         * tree-if-conv.c (find_phi_replacement_condition): Fix think-o.
1882         
1883 2005-04-29  Kazu Hirata  <kazu@cs.umass.edu>
1884
1885         * tree-flow-inline.h: Fix a comment typo.
1886         * doc/tree-ssa.texi: Fix a typo.
1887
1888         * tree-flow-inline.h, tree-ssa-operands.c: Fix comment typos.
1889
1890 2005-04-29  Nathan Sidwell  <nathan@codesourcery.com>
1891
1892         * config/fr30/fr30.c (fr30_expand_prologue): Use gcc_assert and
1893         gcc_unreachable as appropriate.
1894         (fr30_expand_epilogue, fr30_setup_incoming_varargs,
1895         fr30_print_operand, fr30_move_double): Likewise.
1896         * config/fr30/fr30.md (*movsi_internal, *movsf_internal): Likewise.
1897
1898 2005-04-29  Mark Mitchell  <mark@codesourcery.com>
1899
1900         * config/arm/arm.h (ARM_EABI_CTORS_SECTION_OP): Do not define if a
1901         definition has already been provided.
1902         (ARM_EABI_DTORS_SECTION_OP): Likewise.
1903         * config/arm/symbian.h (ARM_EABI_CTORS_SECTION_OP): Define.
1904         (ARM_EABI_DTORS_SECTION_OP): Likewise.
1905
1906 2005-04-29  Jim Tison  <jtison@us.ibm.com>
1907
1908         * config/s390/s390.md ("prologue_tpf", "epilogue_tpf"): Alter
1909         trace hooks calls to improve performance.
1910
1911 2005-04-29  Julian Brown  <julian@codesourcery.com>
1912             Mark Mitchell  <mark@codesourcery.com>
1913             Paul Brook  <paul@codesourcery.com>
1914
1915         * crtstuff.c: Handle targets that use .init_array.
1916         * function.c (HAS_INIT_SECTION): Do not define. Instead, make sure
1917         that INVOKE__main is set correctly.
1918         (expand_main_function): Test INVOKE__main.
1919         * libgcc2.c: Do not define __main when using .init_array.
1920         * config/arm/arm.c (arm_elf_asm_constructor): New function.
1921         * config/arm/arm.h (CTORS_SECTION_ASM_OP): Define, with specialized
1922         libgcc version.
1923         (DTORS_SECTION_ASM_OP): Likewise.
1924         (CTOR_LIST_BEGIN): Define specially when in libgcc.
1925         (CTOR_LIST_END): Likewise.
1926         (DTOR_LIST_BEGIN): Likewise.
1927         (DTOR_LIST_END): Likewise.
1928         * config/arm/bpapi.h (INIT_SECTION_ASM_OP): Do not define it.
1929         (FINI_SECTION_ASM_OP): Likewise.
1930         (INIT_ARRAY_SECTION_ASM_OP): Define.
1931         (FINI_ARRAY_SECTION_ASM_OP): Likewise.
1932         * config/arm/elf.h (TARGET_ASM_CONSTRUCTOR): Define.
1933         (SUPPORTS_INIT_PRIORITY): Evaluate to false for EABI based targets.
1934         * doc/tm.texi (INIT_ARRAY_SECTION_ASM_OP): Document.
1935         (FINI_ARRAY_SECTION_ASM_OP): Likewise.  
1936
1937 2005-04-29  Nathan Sidwell  <nathan@codesourcery.com>
1938
1939         * config/m68k/m68k.c (m68k_initial_elimination_offset): Use
1940         gcc_assert and gcc_unreachable as appropriate.
1941         (output_dbcc_and_branch, output_scc_di, legitimize_pic_address,
1942         const_int_cost, output_move_const_into_data_reg,
1943         output_move_qimode, output_move_double, find_addr_reg,
1944         print_operand, print_operand_address): Likewise.
1945         * config/m68k/m68k.md (adddi3, subdi3, negsf2, negdf2, abssf2,
1946         absdf2, sordered, sunordered, suneq, sunge, sungt, sunle, sunlt,
1947         sltgt, bordered, bunordered, buneq, bunge, bungt, bunle, bunlt,
1948         bltgt, *bordered_rev, *bunordered_rev, *buneq_rev, *bunge_rev,
1949         *bunle_rev, *bunlt_rev, *bltgt_rev, negxf2, absxf2,
1950         conditional_trap): Likewise.
1951         * config/m68k/m68kelf.h (ASM_OUTPUT_ALIGN): Remove unreachable code.
1952
1953 2005-04-29  Nathan Sidwell  <nathan@codesourcery.com>
1954
1955         * config/xtensa/xtensa.c (gen_int_relational): Use gcc_assert and
1956         gcc_unreachable as appropriate.
1957         (gen_conditional_move, xtensa_split_operand_pair,
1958         xtensa_split_operand_pair, xtensa_copy_incoming_a7,
1959         xtensa_copy_incoming_a7, xtensa_copy_incoming_a7,
1960         xtensa_copy_incoming_a7, xtensa_output_literal,
1961         xtensa_output_literal, xtensa_output_literal): Likewise.
1962         * config/xtensa/xtensa.h (INITIAL_ELIMINATION_OFFSET): Likewise.
1963         * config/xtensa/xtensa.md (*btrue, *bfalse, *ubtrue, *ubfalse,
1964         *bittrue, *bitfalse, *masktrue, *maskfalse, movsicc_internal0,
1965         movsicc_internal1, movsfcc_internal0,
1966         movsfcc_internal1): Likewise.
1967
1968 2005-04-28  James E Wilson  <wilson@specifixinc.com>
1969
1970         * config/i386/i386.h (HI_REGISTER_NAMES): Fix typos in comment.
1971         (ADDITIONAL_REGISTER_NAMES): Delete obsolete mmx register entries.
1972
1973 2005-04-28  DJ Delorie  <dj@redhat.com>
1974
1975         * opt-functions.awk (var_set): Emit proper initializer for
1976         non-target bitfields.
1977
1978 2005-04-28  Devang Patel  <dpatel@apple.com>
1979
1980         * dbxout.c (have_used_extensions): Remove.
1981         (dbxout_type_fileds, dbxout_type, dbxout_symbol): Remove use of
1982         have_used_extensions.
1983         
1984 2005-04-28  James E Wilson  <wilson@specifixinc.com>
1985
1986         * doc/install.texi: Update -enable-languages info.  Correct path to
1987         html docs.
1988
1989 2005-04-28  DJ Delorie  <dj@redhat.com>
1990
1991         * optc-gen.awk (END): Make sure no variable is defined more
1992         than once.
1993         * opth-gen.awk (END): Allocate bits on a per-variable basis.
1994         Allow for bitfield variables other than target_flags.
1995         * doc/options.text (Mask): Document that you may specify a
1996         variable other than target_flags.
1997
1998 2005-04-28  Martin Koegler <mkoegler@auto.tuwien.ac.at>
1999
2000         PR rtl-optimization/18877
2001         * reload.c (decompose) <case REG, case SUBREG>: Handle pseudo reg
2002         number in val.start.
2003
2004 2005-04-28  David Edelsohn  <edelsohn@gnu.org>
2005
2006         PR target/20813
2007         * config/rs6000/aix43.h (SUBSUBTARGET_SWITCHES, aix64): Add
2008         MASK_PPC_GFXOPT.
2009         * config/rs6000/aix51.h (SUBSUBTARGET_SWITCHES, aix64): Same.
2010         * config/rs6000/aix52.h (SUBSUBTARGET_SWITCHES, aix64): Same.
2011         * config/rs6000/sysv4.h (SUBTARGET_SWITCHES, 64): Same.
2012
2013 2005-04-28  Richard Earnshaw  <richard.earnshaw@arm.com>
2014
2015         * arm.c (legitimize_pic_address): Fix sense of assertion test for
2016         creating pseudos when the base offset is too large.
2017
2018 2005-04-28  Kazu Hirata  <kazu@cs.umass.edu>
2019
2020         * global.c (earlyclobber_regclass): Change the type to
2021         VEC(int,heap).
2022         (check_earlyclobber): Update uses of earlyclobber_regclass.
2023         (mark_reg_use_for_earlyclobber): Likewise.
2024         (calculate_local_reg_bb_info): Allocate and free
2025         earlyclobber_regclass using the VEC API.
2026
2027 2005-04-28  Nathan Sidwell  <nathan@codesourcery.com>
2028
2029         * tree-ssa-alias.c (push_fields_onto_fieldstack): Remove bogus
2030         assert.
2031
2032 2005-04-28  Kazu Hirata  <kazu@cs.umass.edu>
2033
2034         * modulo-sched.c, tree-stdarg.c: Use targetm.foo instead of
2035         (*targetm.foo).
2036
2037         * config.gcc: Obsolete c4x-* and tic4x-*.
2038
2039         * tree.h (edge_def): Remove.
2040
2041         * bt-load.c, cfgexpand.c, dwarf2out.c, emit-rtl.c, expr.c,
2042         function.c, global.c, lcm.c, loop-invariant.c, optabs.c,
2043         reorg.c, resource.c, tree-ssa-loop-ivopts.c, value-prof.c: Use
2044         JUMP_P, LABEL_P, REG_P, MEM_P, NONJUMP_INSN_P, and INSN_P
2045         where appropriate.
2046
2047         * attribs.c, c-pragma.c, caller-save.c, cfghooks.h,
2048         coverage.c, cselib.h, domwalk.c, domwalk.h, errors.c,
2049         errors.h, gcov-dump.c, gcov-io.c, gcov-io.h, gen-protos.c,
2050         genattrtab.h, genextract.c, gthr-win32.h, insn-notes.def,
2051         integrate.c, lambda-mat.c, lambda.h, libgcov.c, local-alloc.c,
2052         machmode.def, mips-tfile.c, params.c, pretty-print.c,
2053         print-rtl.c, protoize.c, regmove.c, sched-vis.c, tree-chrec.h,
2054         tree-data-ref.h, vec.h, config/darwin-c.c, config/sol2-c.c,
2055         config/sol2.c, config/arm/arm-cores.def, config/arm/cirrus.md,
2056         config/arm/symbian.h, config/c4x/c4x.c, config/c4x/c4x.h,
2057         config/i386/cygming.h, config/i386/djgpp.h,
2058         config/i386/lynx.h, config/i386/netware.c,
2059         config/i386/winnt.c, config/ia64/ia64-c.c,
2060         config/iq2000/iq2000.c, config/m32r/little.h,
2061         config/m68k/m68k-protos.h, config/m68k/m68k.h,
2062         config/m68k/m68k.md, config/mcore/mcore.c,
2063         config/mcore/mcore.h, config/mmix/mmix.c, config/mmix/mmix.md,
2064         config/mn10300/mn10300-protos.h, config/mn10300/mn10300.c,
2065         config/mn10300/mn10300.h, config/ns32k/netbsd.h,
2066         config/ns32k/ns32k.c, config/ns32k/ns32k.h,
2067         config/pa/pa-hpux11.h, config/pdp11/pdp11.c,
2068         config/pdp11/pdp11.h, config/rs6000/darwin.h,
2069         config/rs6000/default64.h, config/rs6000/rs6000-c.c,
2070         config/s390/2064.md, config/s390/2084.md,
2071         config/s390/s390-modes.def, config/s390/s390-protos.h,
2072         config/s390/tpf.h, config/sh/sh.h, config/sh/symbian.c,
2073         config/stormy16/stormy16.c, config/vax/vax-protos.h,
2074         config/vax/vax.c, config/vax/vax.h,
2075         config/xtensa/lib1funcs.asm, config/xtensa/xtensa.md: Update
2076         copyright.
2077
2078 2005-04-28  Joseph S. Myers  <joseph@codesourcery.com>
2079
2080         * c-typeck.c (build_compound_expr): Correct logic in last change.
2081
2082 2005-04-27  James E. Wilson  <wilson@specifixinc.com>
2083
2084         * config/ia64/ia64.c (update_set_flags): Delete ppred and pcond
2085         parameters.  Replace conditional move code with assert checking for
2086         ar.lc.  Delete obsolete comments.
2087         (set_src_needs_barrier): Delete cond parameter, and code using it.
2088         (rtx_needs_barrier): Delete initialization of cond.  Fix typo in
2089         assert checking for PR_REGS.  Fix calls to update_set_flags and
2090         set_src_needs_barrier.
2091         (group_barrier_needed): Renamed from group_barrier_needed_p.  Fix all
2092         callers.  Rewrite explanatory comment before the function.
2093         (safe_group_barrier_needed): Renamed from safe_group_barrier_needed_p.
2094         Fix all callers.
2095
2096 2005-04-27  Mike Stump  <mrs@apple.com>
2097
2098         * doc/cpp.texi: gcc now implements universal character names.
2099
2100 2005-04-27  Joseph S. Myers  <joseph@codesourcery.com>
2101
2102         PR c/21159
2103         * c-typeck.c (build_compound_expr): Don't warn for left-hand side
2104         being a compound expression whose right-hand side is cast to void.
2105
2106 2005-04-27  Caroline Tice  <ctice@apple.com>
2107
2108         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
2109         Remove targetm.have_named_sections test.
2110         (fix_edges_for_rarely_executed_code): Likewise.
2111         (insert_section_boundary_note): Likewise.
2112         (reorder_basic_blocks): Check partitioning flag before calling
2113         verify_hot_cold_block_grouping.
2114         * dbxout.c (dbxout_function_end): Get hot/cold section labels from
2115         the function struct rather than global variables.
2116         * dwarf2out.c (COLD_TEXT_SECTION_LABEL): New macro.
2117         (COLD_END_LABEL): Likewise
2118         (cold_text_section_label): New static global variable.
2119         (cold_end_label): Likewise.
2120         (dwarf2out_switch_text_section): Get hot/cold section labels from
2121         the function struct rather than global variables; test to make sure
2122         cfun is defined.
2123         (output_aranges): Use cold_text_section_label and cold_end_label;
2124         check partitioning flag before putting out delta.
2125         (output_ranges): Remove incorrect code attempting to use
2126         hot/cold labels.
2127         (output_line_info): Get cold section label from function struct; test
2128         to make sure cfun is defined.
2129         (add_location_or_const_value_attribute): Likewise.
2130         (dwarf2out_var_location): Likewise.
2131         (dwarf2out_init): Generate cold_text_section_label and cold_end_label;
2132         write out cold_text_section_label if partition flag is set.
2133         (dwarf2out_finish): Write out cold_end_label if partition flag is set;
2134         * function.h (struct function): Add new fields to point to hot/cold
2135         section labels: hot_section_label, cold_section_label,
2136         hot_section_end_label and cold_section_end_label; also add new field
2137         for cold text section name, unlikely_text_section_name.
2138         * opts.c (decode_options): Turn off partitioning flag if
2139         !targetm.have_named_sections.
2140         * output.h (hot_section_label): Remove.
2141         (hot_section_end_label): Remove.
2142         (cold_section_end_label): Remove.
2143         (unlikely_section_label): Remove.
2144         (unlikely_text_section_name): Remove.
2145         * passes.c (rest_of_handle_final):  Remove extra blank line.
2146         * varasm.c (unlikely_section_label): Remove.
2147         (hot_section_label): Remove.
2148         (hot_section_end_label): Remove.
2149         (cold_section_end_label): Remove.
2150         (unlikely_text_section_name):  Remove.
2151         (initialize_cold_section_name): Modify to call
2152         targetm.strip_name_encoding; to store cold section name in current
2153         function struct, if it exists; and to only use the decl_section_name
2154         if flag_named_sections is true.
2155         (unlikely_text_section): Modify to get section name out of current
2156         function struct, if there is one; otherwise build it from
2157         UNLIKELY_EXECUTED_TEXT_SECTION_NAME.
2158         (in_unlikely_text_section): Likewise.
2159         (named_section): Modify to get/put cold section name in current function
2160         struct, if there is one.
2161         (function_section):  Change 'bool unlikely' to 'int reloc'; check
2162         targetm.have_named_sections before calling named_section.
2163         (current_function_section): Likewise.
2164         (assemble_start_function): Modify to get/put unlikely_text_section_name
2165         in current function struct; modify to get hot/cold section labels
2166         from function struct; initialize labels using
2167         ASM_GENERATE_INTERNAL_LABEL;
2168         test partitioning flag before writing out hot section label.
2169         (assemble_end_function): Test partitioning flag before writing out
2170         hot/cold section labels.
2171         (default_section_type_flags_1):  Get cold text section name from
2172         function struct if there is one; Set flags correctly for
2173         cold text section if there is not a current function struct.
2174         
2175 2005-04-27  Richard Guenther  <rguenth@gcc.gnu.org>
2176
2177         * tree-ssa-propagate.c (set_rhs): Revert last change.
2178
2179 2005-04-27  Steve Ellcey  <sje@cup.hp.com>
2180
2181         * explow.c (convert_memory_address): Add gcc_assert.
2182
2183 2005-04-27  Mark Mitchell  <mark@codesourcery.com>
2184
2185         * configure.ac: Check for ld --sysroot support.
2186         * gcc.c: Document %R specifier for specs.
2187         (SYSROOT_SPEC): New macro.
2188         (sysroot_spec): New variable.
2189         (static_specs): Add sysroot_spec.
2190         (main): Pass the sysroot spec to the linker if appropriate.
2191         * configure: Regenerated.
2192         * config.in: Likewise.
2193
2194 2005-04-27  Richard Guenther  <rguenth@gcc.gnu.org>
2195
2196         * fold-const.c (fold_binary): Use build_fold_addr_expr
2197         for address calculation and INDIRECT_REF handling.
2198
2199 2005-04-27  Andrew Haley  <aph@redhat.com>
2200
2201         * postreload-gcse.c (hash_scan_set): Remove bogus assertion.
2202
2203 2005-04-27  Nathan Sidwell  <nathan@codesourcery.com>
2204
2205         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Reserve arm frame
2206         pointer when thumb backtracing is on.
2207
2208         * config/fp-bit.c (abort): Revert change.
2209
2210 2005-04-27  Ian Lance Taylor  <ian@airs.com>
2211
2212         * c-semantics.c (add_stmt): Don't test STATEMENT_CODE_P.
2213
2214 2005-04-27  Kazu Hirata  <kazu@cs.umass.edu>
2215
2216         * tree-ssa-dce.c: Fix a comment typo.
2217
2218 2005-04-27  David S. Miller  <davem@davemloft.net>
2219
2220         * explow.c (allocate_dynamic_stack_space SETJMP_VIA_SAVE_AREA):
2221         Kill setjmpless_size.  current_function_calls_setjmp is completely
2222         computed when we are called, so just use the optimized size value
2223         instead of using REG_SAVE_AREA notes.
2224         (optimize_save_area_alloca): Delete....
2225         * rtl.h (optimize_save_area_alloca): Likewise...
2226         * passes.c (rest_of_compilation): and don't call it any more.
2227         * reg-notes.def (SAVE_AREA): Delete.
2228         
2229 2005-04-27  Nathan Sidwell  <nathan@codesourcery.com>
2230
2231         * config/fp-bit.c (abort): Add noreturn attribute.
2232
2233         * config/avr/avr.c (avr_naked_function_p): Use gcc_assert and
2234         gcc_unreachable as appropriate.
2235         (ptrreg_to_str, cond_string, avr_normalize_condition): Likewise.
2236         * config/avr/avr.h (ASM_OUTPUT_REG_PUSH,
2237         ASM_OUTPUT_REG_POP): Likewise.
2238
2239 2005-04-27  Paolo Bonzini  <bonzini@gnu.org>
2240
2241         * tree-complex.c (expand_vector_operations_1): Do not build
2242         VIEW_CONVERT_EXPR's for the lhs.
2243
2244 2005-04-27  Nathan Sidwell  <nathan@codesourcery.com>
2245
2246         * config/pa/pa.h (PRINT_OPERAND_ADDRESS): Use gcc_assert, remove
2247         unnecessary noncanonical RTL handling.
2248         * config/pa/pa64-linux.h (INITIAL_ELIMINATION_OFFSET): Use
2249         gcc_assert and gcc_unreachable.
2250
2251         * config/arm/arm.h (ARM_PRINT_OPERAND_ADDRESS): Use gcc_assert and
2252         gcc_unreachable as appropriate.
2253         (THUMB_PRINT_OPERAND_ADDRESS): Likewise.
2254         * config/arm/arm.c (arm_override_options, arm_compute_func_type,
2255         use_return_insn, const_ok_for_op, arm_gen_constant,
2256         arm_canonicalize_comparison, legitimize_pic_address,
2257         thumb_find_work_register, arm_load_pic_register, arm_rtx_costs_1,
2258         arm_cirrus_insn_p, cirrus_reorg, minmax_code,
2259         load_multiple_sequence, emit_ldm_seq, store_multiple_sequence,
2260         emit_stm_seq, arm_gen_movmemqi, arm_select_dominance_cc_mode,
2261         arm_select_cc_mode, arm_reload_in_hi, arm_reload_out_hi,
2262         move_minipool_fix_forward_ref, move_minipool_fix_backward_ref,
2263         dump_minipool, create_fix_barrier, push_minipool_fix, arm_reorg,
2264         fp_immediate_constant, fp_const_from_val, vfp_output_fstmx,
2265         output_call, output_mov_long_double_fpa_from_arm,
2266         output_mov_long_double_arm_from_fpa,
2267         output_mov_double_fpa_from_arm, output_mov_double_arm_from_fpa,
2268         output_move_double, arithmetic_instr, shift_op, int_log2,
2269         output_return_instruction, arm_output_function_prologue,
2270         arm_output_epilogue, arm_output_function_epilogue,
2271         emit_multi_reg_push, arm_get_frame_offsets,
2272         arm_compute_initial_elimination_offset, arm_expand_prologue,
2273         arm_print_operand, arm_assemble_integer, get_arm_condition_code,
2274         arm_final_prescan_insn, arm_init_iwmmxt_builtins,
2275         arm_expand_binop_builtin, thumb_pushpop, thumb_far_jump_used_p,
2276         thumb_compute_initial_elimination_offset,
2277         thumb_output_function_prologue, thumb_load_double_from_address,
2278         thumb_output_move_mem_multiple, thumb_reload_out_hi,
2279         arm_emit_vector_const, arm_dbx_register_number): Likewise.
2280         * config/arm/pe.c (arm_mark_dllexport, arm_mark_dllimport): Likewise.
2281         * config/arm/arm.md (thumb_extendhisi2,
2282         *thumb_extendhisi2_insn_v6, *thumb_extendqisi2,
2283         *thumb_extendqisi2_v6, movhi, *thumb_movhi_insn,
2284         thumb_movhi_clobber, movqi, *arm_buneq, *arm_bltgt,
2285         *arm_buneq_reversed, *arm_bltgt_reversed, suneq, sltgt): Likewise.
2286         * config/arm/cirrus.md (*cirrus_arm_movdi,
2287         *cirrus_movdf_hard_insn): Likewise.
2288         * config/arm/vfp.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
2289
2290 2005-04-27  Kazu Hirata  <kazu@cs.umass.edu>
2291
2292         * tree-flow.h (ssa_names): Change the type to VEC(tree,gc).
2293         (num_ssa_names): Use VEC_length.
2294         (ssa_names): Use VEC_index.
2295         * tree-ssanames.c (ssa_names): Change the type to
2296         VEC(tree,gc).
2297         (init_ssanames, fini_ssa_names, make_ssanames,
2298         release_ssa_name): Update uses of ssa_names.
2299
2300         * dojump.c, emit-rtl.c, expmed.c, expr.c, stmt.c, stor-layout.c:
2301         Use fold_buildN instead of fold (buildN (...)).
2302
2303 2005-04-27  Devang Patel <dpatel@apple.com>
2304
2305         * dbxout.c (dbxout_type): Check use_gnu_debug_info_extensions.
2306
2307 2005-04-27  Matt Thomas <matt@3am-software.com>
2308             Jan-Benedict Glaw <jbglaw@microdata-pos.de>
2309
2310         * config/vax/vax.c (vax_rtx_costs): Whitespace cleanup.
2311         (vax_output_mi_thunk): Ditto.
2312         (vax_notice_cc_update): Ditto.
2313         (INDEX_REGISTER_P): Add trailing \.
2314         (BASE_REGISTER_P): Add trailing \.
2315         (legitimate_address_p): Whitespace cleanup.  Remove trailing \.
2316
2317 2005-04-27  Richard Guenther  <rguenth@gcc.gnu.org>
2318
2319         * tree-ssa-propagate.c (set_rhs): Check operand of
2320         ADDR_EXPR for gimpliness, too.
2321
2322 2005-04-27  Kazu Hirata  <kazu@cs.umass.edu>
2323
2324         * tree-ssa-pre.c: Fix a comment typo.
2325
2326 2005-04-27  Zdenek Dvorak  <dvorakz@suse.cz>
2327
2328         PR tree-optimization/21171
2329         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Do not
2330         record address uses if the reference is volatile.
2331
2332 2004-04-27  Paolo Bonzini  <bonzini@gnu.org>
2333
2334         * tree-complex.c (expand_vector_operation): New, extracted from
2335         expand_vector_operations_1.
2336         (tree_vec_extract): Build a NOP_EXPR.
2337         (expand_vec_parallel): Do not care about returning the correct type.
2338         (expand_vector_operations_1): Call expand_vector_operation.
2339         Build the VIEW_CONVERT_EXPR on the left side of MODIFY_EXPRs.
2340
2341         * tree-complex.c (gate_expand_vector_operations): New.
2342         (pass_lower_vector_ssa): Use it.
2343         * tree-optimize.c (init_tree_optimization_passes): Include
2344         pass_lower_vector_ssa.
2345         * tree-vect-transform.c (vect_min_worthwhile_factor): New.
2346         (vectorizable_operation): Use it.
2347         * tree-vectorizer.c (get_vectype_for_scalar_type): Accept
2348         integer modes for the vector type.
2349
2350         * defaults.h (UNITS_PER_SIMD_WORD): Default to UNITS_PER_WORD.
2351         * tree-vect-analyze.c (vect_enhance_data_refs_alignment):
2352         Do not cope with UNITS_PER_SIMD_WORD == 0.
2353         * tree-vectorizer.c (get_vectype_for_scalar_type): Check
2354         if the scalar type is not bigger than UNITS_PER_SIMD_WORD.
2355         (vectorize_loops): Do not check that UNITS_PER_SIMD_WORD > 0.
2356         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Default to UNITS_PER_WORD.
2357         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
2358         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
2359         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
2360
2361         * config/alpha/alpha.h (UNITS_PER_SIMD_WORD): Remove.
2362         * config/bfin/bfin.h (UNITS_PER_SIMD_WORD): Remove.
2363         * config/ia64/ia64.h (UNITS_PER_SIMD_WORD): Remove.
2364
2365         * doc/tm.texi (UNITS_PER_WORD): Rephrase more accurately.
2366         (UNITS_PER_SIMD_WORD): New.
2367
2368 2005-04-27  Nathan Sidwell  <nathan@codesourcery.com>
2369
2370         * config/ia64/ia64.c (ia64_encode_addr_area): Use gcc_assert and
2371         gcc_unreachable as appropriate.
2372         (ia64_expand_load_address, ia64_expand_tls_address,
2373         ia64_split_tmode, ia64_split_tmode_move, ia64_expand_compare,
2374         ia64_expand_vecint_compare, ia64_expand_vecint_minmax,
2375         next_scratch_gr_reg, ia64_initial_elimination_offset,
2376         ia64_expand_prologue, ia64_expand_epilogue,
2377         ia64_output_dwarf_dtprel, ia64_print_operand,
2378         ia64_register_move_cost, first_instruction, rws_access_regno,
2379         update_set_flags, rtx_needs_barrier, group_barrier_needed_p,
2380         ia64_sched_init, ia64_variable_issue,
2381         ia64_first_cycle_multipass_dfs_lookahead_guard,
2382         ia64_dfa_new_cycle, issue_nops_and_insn, get_template, bundling,
2383         ia64_st_address_bypass_p, ia64_ld_address_bypass_p, process_set,
2384         process_for_unwind_directive, ia64_hpux_file_end): Likewise.
2385         * config/ia64/ia64.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise.
2386         * config/ia64/ia64.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
2387         * config/ia64/predicates.md (got_symbolic_operand,
2388         sdata_symbolic_operand): Likewise.
2389         * config/ia64/vect.md (vcondv2sf): Likewise.
2390
2391 2005-04-27  Matt Thomas <matt@3am-software.com>
2392
2393         * config/vax/vax.c (legitimate_constant_address_p): New.  Formerly
2394         CONSTANT_ADDRESS_P in config/vax/vax.h
2395         (legitimate_constant_p): Added.  Formerly CONSTANT_P in vax.h. 
2396         (INDEX_REGISTER_P): New.
2397         (BASE_REGISTER_P): New.
2398         (indirectable_constant_address_p): New.  Adapted from
2399         INDIRECTABLE_CONSTANT_ADDRESS_P in vax.h. Use SYMBOL_REF_LOCAL_P.
2400         (indirectable_address_p): New.  Adapted from
2401         INDIRECTABLE_ADDRESS_P in vax.h.
2402         (nonindexed_address_p): New.  Adapted from
2403         GO_IF_NONINDEXED_ADDRESS in vax.h.
2404         (index_temp_p): New.  Adapted from INDEX_TERM_P in vax.h.
2405         (reg_plus_index_p): New.  Adapted from GO_IF_REG_PLUS_INDEX in vax.h.
2406         (legitimate_address_p): New.  Adapted from
2407         GO_IF_LEGITIMATE_ADDRESS in vax.h.
2408         (vax_mode_dependent_address_p): New.  Adapted from
2409         GO_IF_MODE_DEPENDENT_ADDRESS in vax.h.
2410         * config/vax/vax.h (CONSTANT_ADDRESS_P): Use
2411         legitimate_constant_address_p.
2412         (CONSTANT_P): Use legitimate_constant_p.
2413         (INDIRECTABLE_CONSTANT_ADDRESS_P): Removed.
2414         (INDIRECTABLE_ADDRESS_P): Removed.
2415         (GO_IF_NONINDEXED_ADDRESS): Removed.
2416         (INDEX_TEMP_P): Removed.
2417         (GO_IF_REG_PLUS_INDEX): Removed.
2418         (GO_IF_LEGITIMATE_ADDRESS): Use legitimate_address_p. Two
2419         definitions, depending on whether REG_OK_STRICT is defined.
2420         (GO_IF_MODE_DEPENDENT_ADDRESS): Use vax_mode_dependent_address_p.
2421         Two definitions, depending on whether REG_OK_STRICT is defined.
2422         * config/vax/vax-protos.h (legitimate_constant_address_p): Prototype
2423         added.
2424         (legitimate_constant_p): Prototype added.
2425         (legitimate_address_p): Prototype added.
2426         (vax_mode_dependent_address_p): Prototype added.
2427
2428 2005-04-27  Kazu Hirata  <kazu@cs.umass.edu>
2429
2430         * tree.h (phi_arg_d): Expand a comment in phi_arg_d.
2431
2432 2005-04-27  Joseph S. Myers  <joseph@codesourcery.com>
2433
2434         PR c/21213
2435         * c-decl.c (finish_struct): Don't dereference NULL TYPE_FIELDS of
2436         transparent union.
2437
2438 2005-04-27  Joseph S. Myers  <joseph@codesourcery.com>
2439
2440         PR c/20740
2441         * c-format.c (init_dynamic_asm_fprintf_info): Give errors, not
2442         assertion failures, if __gcc_host_wide_int__ is not properly
2443         defined.
2444         (init_dynamic_diag_info): Give errors, not assertion failures, if
2445         location_t, tree or __gcc_host_wide_int__ are not properly
2446         defined.
2447
2448 2005-04-26  Kazu Hirata  <kazu@cs.umass.edu>
2449
2450         * tree-ssa-loop-ivopts.c (ivopts_data, decl_rtl_to_reset,
2451         n_iv_uses, iv_use, n_iv_cands, iv_cand,
2452         tree_ssa_iv_optimize_init, record_use, add_candidate_1,
2453         prepare_decl_rtl, free_loop_data,
2454         tree_ssa_iv_optimize_finalize): Use the VEC API instead of
2455         VARRAY.
2456
2457         * tree.h (tree_phi_node): Add a comment about the order of PHI
2458         arguments.
2459
2460 2005-04-26  Paul Brook  <paul@codesourcery.com>
2461
2462         * config/arm/arm.md (thumb_mulsi3): Use two-operand assembly form.
2463
2464 2005-04-26  Nathan Sidwell  <nathan@codesourcery.com>
2465
2466         * config/mips.mips.c (mips_legitimize_tls_address): Use
2467         gcc_unreachable.
2468
2469         * config/mmix/mmix.c (mmix_assemble_integer): Use gcc_assert.
2470         * config/mmix/crti.asm (_init): Reword comment to avoid 'abort'.
2471         * config/mmix/mmix.md (nonlocal_goto_receiver): Likewise.
2472
2473         * config/sparc/sparc.h (enum reg_class): Reword comment to avoid
2474         'abort'.
2475
2476 2005-04-26  Jeff Law  <law@redhat.com>
2477
2478         * tree-flow-inline.h (op_iter_next_must_and_may_def): New.
2479         (op_iter_init_must_and_may_def): Likewise.
2480         (unmodifiable_var_p): Move to a later point in the file.
2481         * tree-ssa-operands.h (FOR_EACH_SSA_MUST_AND_MAY_DEF_OPERAND): New.
2482         * tree-ssa-dse.c (need_imm_uses_for): Remove, no longer needed.
2483         (dse_record_phis): Directly check for virtual operands rather than
2484         using need_imm_uses_for.
2485         (dse_optimize_stmt): Handle V_MUST_DEF operands.  Handle case where
2486         store has multiple V_{MAY,MUST}_DEF operands.
2487
2488 2005-04-26  Andrew MacLeod  <amacleod@redhat.com>
2489
2490         * tree-cfg.c (bsi_replace): Delink immediate uses for the original
2491         stmt.
2492
2493 2005-04-26  Kazu Hirata  <kazu@cs.umass.edu>
2494
2495         * tree-cfg.c (lv_adjust_loop_header_phi): Speed up moving a
2496         call to find_edge outside a loop to go through a PHI chain.
2497
2498 2004-04-26  Richard Guenther  <rguenth@gcc.gnu.org>
2499
2500         PR tree-optimization/17598
2501         * fold-const.c (fold_binary): Fold comparisons of addresses
2502         of COMPONENT_REFs which reference the same field to
2503         comparisons of the addresses of the base objects.
2504
2505 2005-04-26  Julian Brown  <julian@codesourcery.com>
2506
2507         * config/arm/arm.c (arm_return_in_msb): New function.
2508         (arm_must_pass_in_stack): New function.
2509         (TARGET_RETURN_IN_MSB): Define target hook.
2510         (TARGET_MUST_PASS_IN_STACK): Define target hook.
2511         (arm_function_value): Pad small aggregate return.
2512         (arm_pad_arg_upward): New function.
2513         (arm_pad_reg_upward): New function.
2514         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Include complex values.
2515         (FUNCTION_ARG_PADDING): Define macro.
2516         (BLOCK_REG_PADDING): Define macro.
2517         (PAD_VARARGS_DOWN): Correct padding for AAPCS.
2518         * config/arm/arm-protos.h (arm_pad_arg_upward): Declare function.
2519         (arm_pad_reg_upward): Declare function.
2520
2521 2005-04-26  Kazu Hirata  <kazu@cs.umass.edu>
2522
2523         * basic-block.h (ei_cond): New.
2524         (FOR_EACH_EDGE): Call ei_cond.
2525
2526         PR tree-optimization/21047
2527         * fold-const.c (fold_binary): Abort on ASSERT_EXPR.
2528         (fold): Don't handle ASSERT_EXPR.
2529
2530 2005-04-25  Roger Sayle  <roger@eyesopen.com>
2531
2532         * sched-deps.c (sched_analyze_1): On STACK_REGS targets, x87, treat
2533         all writes to any stack register as a read/write dependency on
2534         FIRST_STACK_REG.
2535         (sched_analyze_2): Likewise, for reads from any stack register.
2536
2537 2005-04-25  Richard Henderson  <rth@redhat.com>
2538
2539         * final.c (output_addr_const): Revert 2005-04-09 change.
2540
2541 2005-04-25  Mike Stump  <mrs@apple.com>
2542
2543         * config/darwin.c (darwin_encode_section_info): Always set
2544         MACHO_SYMBOL_STATIC for all ! TREE_PUBLIC symbols.
2545
2546 2005-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2547
2548         * collect2.c, gcc.c, gcov-dump.c, gcov.c, gen-protos.c,
2549         gensupport.c, protoize.c, toplev.c: Replace calls to
2550         `unlock_stream' with `unlock_std_streams'.
2551
2552 2005-04-25  Devang Patel <dpatel@apple.com>
2553
2554         * dbxout.c (dbxout_type): Emit attribute vector.
2555         
2556 2005-04-05  Paul Brook  <paul@codesourcery.com>
2557
2558         * target-def.h (TARGET_CXX_USE_AEABI_ATEXIT): Define.
2559         * target.h (struct gcc_target): Add cxx.use_aeabi_atexit.
2560         * config/arm/arm.c (arm_cxx_atexit_name): New function.
2561         (TARGET_CXX_USE_AEABI_ATEXIT): New macro.
2562         * cp/decl.c (get_atexit_node): Reorder arguments for __aeabi_atexit.
2563         (register_dtor_fn): Likewise.
2564         * doc/tm.texi: Document TARGET_CXX_USE_AEABI_ATEXIT.
2565
2566 2005-04-25  Ian Lance Taylor  <ian@airs.com>
2567
2568         * c-common.def (EXPR_STMT): Remove, moved to C++ frontend.
2569         * c-common.h (EXPR_STMT_EXPR): Don't define.
2570         (c_common_stmt_codes): Don't define.
2571         * c-dump.c (c_dump_tree): Remove EXPR_STMT case.
2572         * c-gimplify.c (gimplify_expr_stmt): Remove.
2573         (c_gimplify_expr): Remove EXPR_STMT case.
2574         * c-objc-common.c (c_objc_common_init): Remove stmt_codes and call
2575         to INIT_STATEMENT_CODES.
2576         * c-pretty-print.c (pp_c_statement): Just call dump_generic_node.
2577
2578 2005-04-25  Jan Hubicka  <jh@suse.cz>
2579
2580         * tree-cfg.c (tree_duplicate_bb): Duplicate EH region too.
2581
2582         * except.c: Include diagnostic.h
2583         (dump_eh_tree, verify_eh_tree): New functions.
2584         * except.h (verify_eh_tree, dump_eh_tree, verify_eh_edges): Declare.
2585         * tree-cfg.c (tree_verify_flow_info): verify eh edges.
2586         (dump_function_to_file): dump eh tree.
2587         * tree-eh.c (mark_eh_edge): New function.
2588         (mark_eh_edge_found_error): New static variable.
2589         (verify_eh_edges): New function.
2590
2591 2005-04-25  Nathan Sidwell  <nathan@codesourcery.com>
2592
2593         * tree-ssa-alias.c (fieldoff_t): Remove.
2594         (fieldoff_s): typedef the structure itself.  Create a vector of
2595         objects.
2596         (push_fields_onto_fieldstack): Return count of fields pushed.
2597         Remove peeling of first field.  Adjust.
2598         (fieldoff_compare): Adjust.
2599         (create_overlap_variables_for): Adjust.
2600
2601 2005-04-25  Joseph S. Myers  <joseph@codesourcery.com>
2602
2603         * doc/invoke.texi (Blackfin Options): Avoid empty @opindex line.
2604
2605 2005-04-25  Joseph S. Myers  <joseph@codesourcery.com>
2606
2607         PR bootstrap/21215
2608         * doc/install.texi: Document correct assembler and linker to use
2609         on i?86-*-solaris2.10.
2610
2611 2005-04-25  Steven Bosscher  <stevenb@suse.de>
2612
2613         Fix PR tree-optimization/21173
2614
2615         * tree-ssa-pre.c (create_expression_by_pieces): Simplify code.
2616         Unshare expression we pass to force_gimple_operand.
2617
2618 2005-04-25  J"orn Rennecke <joern.rennecke@st.com>
2619             Stephen Clarke <stevec@superh.com>
2620             Roger Sayle <roger@eyesopen.com>
2621
2622         PR rtl-optimization/20413
2623         * cfgrtl.c (redirect_edge_and_branch): Use Pmode instead of
2624         VOIDmode for LABEL_REF.
2625         * final.c (shorten_branches): Likewise.
2626         * jump.c (mark_all_labels, redirect_exp_1): Likewise.
2627         * loop.c (reg_dead_after_loop): Likewise.
2628         * varasm.c (decode_addr_const): Likewise.
2629         * doc/rtl.texi: Document mode requirement for LABEL_REF.
2630
2631 2005-04-25  Ralf Corsepius  <ralf.corsepius@rtems.org>
2632
2633         * config.gcc (avr-*-*): Remove redundant "case".
2634
2635 2005-04-25  Kazu Hirata  <kazu@cs.umass.edu>
2636
2637         * tree-vect-analyze.c (vect_mark_relevant): Take
2638         VEC(tree,heap) instead of varray_type as an argument.
2639         (vect_mark_stmts_to_be_vectorized): Change the type of
2640         worklist to VEC(tree,heap).  Adjust uses of worklist.
2641
2642 2005-04-24  Devang Patel  <dpatel@apple.com>
2643
2644         *  config/rs6000/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New.
2645         
2646 2005-04-24  Ian Lance Taylor  <ian@airs.com>
2647
2648         * c-semantics.c (build_stmt): Remove test of specific tree codes
2649         for TREE_SIDE_EFFECTS handling.
2650
2651 2005-04-24  Per Bothner  <per@bothner.com>
2652
2653         * c-opts.c (finish_options):  Make the line-number of the <built-in>
2654         location 0, as assumed elsewhere, rather than 1.
2655
2656 2005-04-24  Kazu Hirata  <kazu@cs.umass.edu>
2657
2658         * tree-ssa-uncprop.c (equiv_stack): Change the type o
2659         VEC(tree,heap).
2660         (tree_ssa_uncprop, uncprop_finalize_block,
2661         uncprop_initialize_block): Update uses of equiv_stack.
2662
2663 2005-04-24  Richard Henderson  <rth@redhat.com>
2664
2665         PR rtl-opt/21163
2666         * simplify-rtx.c (simplify_binary_operation) <IOR>: Check
2667         for SCALAR_INT_MODE_P instead of not MODE_CC before returning
2668         constm1_rtx.
2669         <AND, LSHIFTRT, UMIN>: Use CONST0_RTX.
2670         <UDIV, UMOD>: Use CONST0_RTX and CONST1_RTX.
2671         <DIV, MOD>: Likewise.
2672
2673 2005-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2674
2675         * collect2.c (main): Unlock the stdio streams.
2676         * gcc.c (main): Likewise.
2677         * gcov-dump.c (main): Likewise.
2678         * gcov.c (main): Likewise.
2679         * gen-protos.c (main): Likewise.
2680         * gensupport.c (init_md_reader_args_cb): Likewise.
2681         * protoize.c (main): Likewise.
2682         * toplev.c (general_init): Likewise.
2683
2684 2005-04-24  Jakub Jelinek  <jakub@redhat.com>
2685
2686         PR middle-end/20991
2687         * cgraph.h (cgraph_local_info): Add vtable_method field.
2688         * varasm.c (mark_decl_referenced): If cgraph_global_info_ready
2689         and node is vtable_method, finalized and not reachable, don't do
2690         anything.
2691
2692 2005-04-24  Kazu Hirata  <kazu@cs.umass.edu>
2693
2694         * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Use
2695         COMPARISON_CLASS_P.
2696         * tree-ssa-pre.c (create_value_expr_from): Use
2697         CONSTANT_CLASS_P and REFERENCE_CLASS_P.
2698         * tree-ssa-propagate.c (stmt_makes_single_load,
2699         stmt_makes_single_store): Use REFERENCE_CLASS_P.
2700         * tree-vect-transform.c (vect_is_simple_cond): Use
2701         COMPARISON_CLASS_P.
2702         * tree-vrp.c (extract_range_from_assert,
2703         build_assert_expr_for, fp_predicate, has_assert_expr): Use
2704         COMPARISON_CLASS_P.
2705
2706         * tree-ssa-live.c (build_tree_conflict_graph): Change the type
2707         of tpa_to_clear to VEC(int,heap).  Update uses of
2708         tpa_to_clear.  Free tpa_to_clear at the end.
2709
2710 2005-04-24  Andrew Pinski  <pinskia@physics.uc.edu>
2711
2712         * tree.h (TREE_THIS_VOLATILE): Document the effect on a
2713         function decl.
2714
2715 2005-04-24  Nathan Sidwell  <nathan@codesourcery.com>
2716
2717         * config/rs6000/rs6000.c (rs6000_override_options): Use gcc_assert
2718         and gcc_unreachable as appropriate.
2719         (num_insns_constant, output_vec_const_move,
2720         build_mask64_2_operands, rs6000_output_dwarf_dtprel,
2721         rs6000_emit_set_const, rs6000_emit_move,
2722         spe_build_register_parallel, function_arg,
2723         rs6000_move_block_from_reg, altivec_expand_predicate_builtin,
2724         spe_expand_predicate_builtin, spe_expand_evsel_builtin,
2725         rs6000_expand_builtin, spe_init_builtins, altivec_init_builtins,
2726         rs6000_common_init_builtins, expand_block_clear,
2727         expand_block_move, validate_condition_mode, ccr_bit, extract_MB,
2728         extract_ME, rs6000_get_some_local_dynamic_name,
2729         rs6000_output_function_entry, print_operand,
2730         print_operand_address, rs6000_generate_compare, rs6000_emit_sCOND,
2731         output_cbranch, output_e500_flip_gt_bit,
2732         rs6000_emit_vector_compare, rs6000_emit_vector_compare,
2733         rs6000_emit_cmove, rs6000_emit_minmax, rs6000_split_multireg_move,
2734         compute_save_world_info, rs6000_stack_info,
2735         rs6000_emit_load_toc_table, rs6000_frame_related,
2736         spe_synthesize_frame_save, rs6000_emit_epilogue,
2737         rs6000_output_function_epilogue, rs6000_hash_constant, output_toc,
2738         output_function_profiler, rs6000_trampoline_size,
2739         rs6000_initialize_trampoline, find_addr_reg,
2740         rs6000_machopic_legitimize_pic_address,
2741         rs6000_initial_elimination_offset,
2742         rs6000_dbx_register_number): Likewise.
2743         * config/rs6000/rs6000.md (*fix_truncdfsi2_internal,
2744         *movdf_hardfloat32, *movdf_softfloat32, *fix_trunctfsi2_internal,
2745         *movti_power, *movti_string, call, call_value, sibcall,
2746         sibcall_value): Likewise.
2747         * config/rs6000/spe.md (*movdf_e500_double,
2748         *movv2si_internal): Likewise.
2749         * config/rs6000/rs6000.h (PREFERRED_RELOAD_CLASS): Remove 'abort'
2750         from comment.
2751
2752 2005-04-24  Richard Henderson  <rth@redhat.com>
2753
2754         PR target/21101
2755         * config/i386/i386.h (CANNOT_CHANGE_MODE_CLASS): Move guts to ...
2756         * config/i386/i386.c (ix86_cannot_change_mode_class): ... here.
2757         Deny modes smaller than 4 bytes.
2758         * config/i386/i386-protos.h: Update.
2759
2760 2005-04-24  Ralf Corsepius  <ralf.corsepius@rtems.org>
2761
2762         * config.gcc (h8300-*-rtems*): Add h8300-*-rtemscoff*.
2763         Switch h8300-*-rtems* to ELF.
2764
2765 2005-04-24  Kazu Hirata  <kazu@cs.umass.edu>
2766
2767         * vec.h (VEC_safe_grow): Replace grow with safe_grow.
2768
2769 2005-04-23  Kazu Hirata  <kazu@cs.umass.edu>
2770
2771         * ipa-inline.c, tree-ssa-operands.h: Fix comment typos.
2772
2773 2005-04-23  Richard Guenther  <rguenth@gcc.gnu.org>
2774
2775         PR middle-end/21082
2776         * fold-const.c: Fold &a[i]-&a[j] to i-j.
2777
2778 2005-04-23  Zdenek Dvorak  <dvorakz@suse.cz>
2779
2780         * tree-ssa-loop-niter.c (tree_simplify_using_condition): Expand simple
2781         definitions of ssa names in condition.  Split recusive part to ...
2782         (tree_simplify_using_condition_1): New function.
2783         (expand_simple_operations): New function.
2784
2785 2005-04-23  Zdenek Dvorak  <dvorakz@suse.cz>
2786
2787         * tree-ssa-loop-ivopts.c (struct cost_pair): Add value field.
2788         (find_interesting_uses_cond): Do not use integer_zerop and
2789         integer_nonzerop to check for integer constants.
2790         (set_use_iv_cost): Record the value field.
2791         (determine_use_iv_cost_generic, determine_use_iv_cost_address,
2792         determine_use_iv_cost_outer): Set the value field of the cost pair.
2793         (may_eliminate_iv): Do not return the comparison code.
2794         (iv_elimination_compare): New function.
2795         (determine_use_iv_cost_condition): Set the value field.  Record
2796         noneliminable invariants correctly.
2797         (rewrite_use_compare, rewrite_use_outer): Use the value field.
2798
2799 2005-04-23  DJ Delorie  <dj@redhat.com>
2800
2801         * diagnostic.c (warning): Accept parameter to classify warning option.
2802         (warning0): New, for when a pointer to an error() like function is needed.
2803         * errors.c (warning): Likewise.
2804         * errors.h (warning, warning0): Adjust prototypes.
2805         * toplev.h (warning, warning0): Likewise.
2806
2807         * attribs.c, builtins.c, c-common.c, c-decl.c, c-format.c,
2808         c-gimplify.c, c-lex.c, c-objc-common.c, c-opts.c, c-parser.c,
2809         c-pragma.c, c-typeck.c, calls.c, cgraph.c, coverage.c, emit-rtl.c,
2810         fold-const.c, fortran/trans-decl.c, function.c, gcse.c,
2811         genautomata.c, haifa-sched.c, opts.c, passes.c, regclass.c,
2812         reload1.c, stmt.c, stor-layout.c, toplev.c, tree-cfg.c,
2813         tree-dump.c, tree-inline.c, tree-mudflap.c, tree-optimize.c,
2814         tree-ssa.c, tree.c, varasm.c: Adjust warning() callers.
2815
2816         * config/alpha/alpha.c, config/arc/arc.c, config/arm/arm.c,
2817         config/avr/avr.c, config/bfin/bfin.c, config/c4x/c4x-c.c,
2818         config/c4x/c4x.c, config/cris/cris.c, config/darwin-c.c,
2819         config/darwin.c, config/darwin.h, config/h8300/h8300.c,
2820         config/i386/cygming.h, config/i386/djgpp.h, config/i386/i386.c,
2821         config/i386/winnt.c, config/ia64/ia64-c.c, config/ia64/ia64.c,
2822         config/ip2k/ip2k.c, config/m32r/m32r.c, config/m68hc11/m68hc11.c,
2823         config/m68k/m68k.c, config/mcore/mcore.c, config/mips/mips.c,
2824         config/mmix/mmix.c, config/ns32k/ns32k.c, config/pa/pa-hpux11.h,
2825         config/pa/pa.c, config/rs6000/aix43.h, config/rs6000/aix51.h,
2826         config/rs6000/aix52.h, config/rs6000/darwin.h,
2827         config/rs6000/rs6000-c.c, config/rs6000/rs6000.c,
2828         config/s390/s390.c, config/sh/sh.c, config/sh/sh.h,
2829         config/sh/symbian.c, config/sol2-c.c, config/sol2.c,
2830         config/stormy16/stormy16.c, config/v850/v850-c.c,
2831         config/v850/v850.c, config/xtensa/xtensa.c: Adjust warning()
2832         callers.
2833         
2834 2005-04-23  Richard Henderson  <rth@redhat.com>
2835
2836         PR rtl-opt/21102
2837         * simplify-rtx.c (simplify_binary_operation): Fix mode check before
2838         performing some integral scalar simplifications.
2839
2840 2005-04-23  Richard Henderson  <rth@redhat.com>
2841
2842         PR target/21099
2843         * config/i386/i386.c (ix86_split_to_parts): Use proper mode when
2844         simplifying CONST_VECTOR.
2845
2846 2005-04-23  Kazu Hirata  <kazu@cs.umass.edu>
2847
2848         * tree-ssa-live.c (live_worklist): Take a stack allocated on
2849         heap as an argument.  Update uses of stack.
2850         (calculate_live_on_entry): Allocate stack on heap.
2851
2852         * tree-ssa-live.c (build_tree_conflict_graph): Allocate
2853         partition_link and tpa_nodes on heap.
2854
2855         * tree-ssa-dce.c (worklist): Change to VEC(tree,heap).
2856         (mark_stmt_necessary, propagate_necessity,
2857         mark_really_necessary_kill_operand_phis): Update uses of
2858         worklist.
2859         (tree_dce_init): Allocate worklist using VEC_alloc.
2860         (tree_dce_done): Free worklist using VEC_free.
2861
2862 2005-04-23  Mike Stump  <mrs@apple.com>
2863
2864         * config/darwin.c (machopic_indirection_name): Don't use
2865         quotes needlessly.
2866         (darwin_emit_unwind_label): Use user_label_prefix instead of
2867         "_".
2868
2869 2005-04-23  Kazu Hirata  <kazu@cs.umass.edu>
2870
2871         * final.c, ipa-inline.c, varasm.c: Fix comment typos.
2872
2873 2005-04-23  Hans-Peter Nilsson  <hp@axis.com>
2874
2875         * config.gcc <cris-*>: Specify .opt files.
2876         * config/cris/cris.opt, config/cris/elf.opt, config/cris/aout.opt,
2877         config/cris/linux.opt: New files.
2878         * config/cris/aout.h (CRIS_SUBTARGET_SWITCHES)
2879         (CRIS_SUBTARGET_LONG_OPTIONS): Don't define.
2880         (TARGET_ELF): Override to 0.
2881         (CRIS_SUBTARGET_HANDLE_OPTION): Override to handle -melinux and
2882         -melinux-stacksize=N.
2883         * config/cris/cris.c: (cris_handle_option): New function.
2884         (TARGET_DEFAULT_TARGET_FLAGS): Override.
2885         (TARGET_HANDLE_OPTION): Override to cris_handle_option.
2886         (cris_override_options): Use MASK_*, not TARGET_MASK_*.
2887         * config/cris/cris.h (TARGET_MASK_SVINTO, TARGET_SVINTO,
2888         (TARGET_MASK_CCINIT, TARGET_CCINIT, TARGET_MASK_PDEBUG)
2889         (TARGET_PDEBUG, TARGET_MASK_SIDE_EFFECT_PREFIXES)
2890         (TARGET_SIDE_EFFECT_PREFIXES, TARGET_MASK_EXPAND_MUL)
2891         (TARGET_EXPAND_MUL, TARGET_MASK_STACK_ALIGN, TARGET_STACK_ALIGN)
2892         (TARGET_MASK_CONST_ALIGN, TARGET_CONST_ALIGN)
2893         (TARGET_MASK_DATA_ALIGN, TARGET_DATA_ALIGN)
2894         (TARGET_MASK_PROLOGUE_EPILOGUE, TARGET_PROLOGUE_EPILOGUE)
2895         (TARGET_MASK_ETRAX4_ADD, TARGET_ETRAX4_ADD)
2896         (TARGET_MASK_ALIGN_BY_32, TARGET_ALIGN_BY_32, TARGET_MASK_ELF)
2897         (TARGET_ELF, TARGET_MASK_LINUX, TARGET_LINUX)
2898         (TARGET_MASK_AVOID_GOTPLT, TARGET_AVOID_GOTPLT)
2899         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG, TARGET_SWITCHES)
2900         (CRIS_SUBTARGET_SWITCHES, TARGET_OPTIONS)
2901         (CRIS_SUBTARGET_LONG_OPTIONS): Don't define.
2902         (TARGET_LINUX): Define 0.
2903         (TARGET_DEFAULT): Use MASK_*, not TARGET_MASK_*.
2904         (CRIS_SUBTARGET_DEFAULT): Define to 0, not TARGET_MASK_ELF.
2905         (CRIS_SUBTARGET_DEFAULT): New empty default macro.
2906         * config/cris/linux.h (CRIS_SUBTARGET_SWITCHES): Don't define.
2907         (TARGET_LINUX): Override to 1.
2908         (CRIS_SUBTARGET_DEFAULT): Use MASK_*, not TARGET_MASK_*.
2909
2910 2005-04-23  Nathan Sidwell  <nathan@codesourcery.com>
2911
2912         * haifa-sched.c (schedule_block): Fix thinko in previous
2913         assertification patch.
2914
2915 2005-04-23  Richard Sandiford  <rsandifo@redhat.com>
2916
2917         * config.gcc (hppa[12]*-*-hpux10*): Add pa/pa-hpux.opt to
2918         $extra_options.  Also add pa/pa-hpux1010.opt for hpux10.[1-9]*.
2919         (hppa*64*-*-hpux11*): Add pa/pa-hpux1010.h to $tm_file.  Add
2920         pa/pa-hpux.opt, pa/pa-hpux1010.opt and pa/pa64-hpux.opt to
2921         $extra_options.  Also add pa/pa-hpux1111.opt for hpux11.[1-9]*.
2922         (hppa[12]*-*-hpux11*): Add pa/pa-hpux1010.h to $tm_file.  Add
2923         pa/pa-hpux.opt to $extra_options.  Also add pa/pa-hpux1111.opt
2924         for hpux11.[1-9]*.
2925         * config/pa/pa.h (architecture_type, rtx_def, pa_arch_string, pa_arch)
2926         (pa_fixed_range_string, pa_cpu_string, pa_unix_string, target_flags)
2927         (MASK_PA_11, MASK_DISABLE_FPREGS, TARGET_DISABLE_FPREGS)
2928         (MASK_NO_SPACE_REGS, TARGET_NO_SPACE_REGS, MASK_JUMP_IN_DELAY)
2929         (TARGET_JUMP_IN_DELAY, MASK_DISABLE_INDEXING, TARGET_DISABLE_INDEXING)
2930         (MASK_PORTABLE_RUNTIME, TARGET_PORTABLE_RUNTIME, MASK_GAS, TARGET_GAS)
2931         (MASK_SOFT_FLOAT, TARGET_SOFT_FLOAT, MASK_LONG_LOAD_STORE)
2932         (TARGET_LONG_LOAD_STORE, MASK_FAST_INDIRECT_CALLS)
2933         (TARGET_FAST_INDIRECT_CALLS, MASK_BIG_SWITCH, TARGET_BIG_SWITCH)
2934         (MASK_PA_20, MASK_SIO, TARGET_SIO, MASK_GNU_LD, TARGET_GNU_LD)
2935         (MASK_LONG_CALLS, TARGET_LONG_CALLS, TARGET_PA_11, TARGET_PA_20)
2936         (TARGET_SWITCHES, SUBTARGET_SWITCHES, TARGET_OPTIONS)
2937         (SUBTARGET_OPTIONS): Delete.
2938         (TARGET_PA_10): Redefine in terms of TARGET_PA_11 and TARGET_PA_20.
2939         (TARGET_SCHED_DEFAULT): Define to a PROCESSOR_* enum (PROCESSOR_8000)
2940         instead of a string.
2941         * config/pa/pa.c (pa_arch, pa_arch_string, pa_fixed_range_string)
2942         (pa_cpu_string, pa_unix_string): Delete.
2943         (pa_cpu): Initialize to TARGET_SCHED_DEFAULT.
2944         (flag_pa_unix): Initialize based on TARGET_HPUX_11_11 and
2945         TARGET_HPUX_10_10.
2946         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
2947         (pa_handle_option): New function.
2948         (override_options): Remove handling of -march=, -mfixed-range=,
2949         -mschedule= and -munix=.
2950         * config/pa/pa-hpux.h (SUBTARGET_SWITCHES): Delete.
2951         * config/pa/pa-hpux1010.h (SUBTARGET_OPTIONS): Delete.
2952         * config/pa/pa-hpux10.h (SUBTARGET_OPTIONS): Delete.
2953         * config/pa/pa-hpux1111.h (SUBTARGET_OPTIONS): Delete.
2954         * config/pa/pa-hpux11.h (SUBTARGET_OPTIONS): Delete.
2955         * config/pa/pa64-hpux.h (SUBTARGET_SWITCHES): Delete.
2956         * config/pa/pa64-start.h (TARGET_PA_11, TARGET_PA_20): #undef before
2957         redefining.
2958         * config/pa/pa.opt: New file.
2959         * config/pa/pa-hpux.opt: New file.
2960         * config/pa/pa-hpux1010.opt: New file.
2961         * config/pa/pa-hpux1111.opt: New file.
2962         * config/pa/pa64-hpux.opt: New file.
2963
2964 2005-04-22  David S. Miller  <davem@davemloft.net>
2965
2966         * rtl.h (CONST_DOUBLE): Fix comment, a CONST_DOUBLE holds an
2967         integer when it's mode is VOIDmode not DImode.
2968
2969 2005-04-22  Geoffrey Keating  <geoffk@apple.com>
2970
2971         * config/rs6000/rs6000.md (sync_add<mode>_internal,
2972         sync_addshort_internal, sync_sub<mode>_internal, sync_andsi_internal,
2973         sync_anddi_internal, sync_boolsi_internal, sync_booldi_internal,
2974         sync_boolc<mode>_internal, sync_boolc<mode>_internal2,
2975         sync_boolcc<mode>_internal, sync_lock_test_and_set<mode>): Use
2976         "bne- $-xxx" rather than local labels.
2977         (sync_lock_release<mode>): Add second operand.
2978         (lwsync): Use .long rather than a more meaningful opcode.
2979         * doc/md.texi (Standard Names): Add description of second
2980         parameter to sync_lock_test_and_set.
2981
2982 2005-04-23  Kazu Hirata  <kazu@cs.umass.edu>
2983
2984         PR tree-optimization/21088
2985         * fold-const.c (fold_unary, fold_binary, fold_ternary):
2986         Export.
2987         * tree-vrp.c (compare_values): Use fold_binary to compare
2988         pointers.  Use boolean_type_node as the type of a comparison
2989         expression being folded.
2990         * tree.h: Add prototypes for fold_unary, fold_binary,
2991         fold_ternary.
2992
2993         * tree-ssa-dom.c: Fix formatting.
2994
2995 2005-04-22  Diego Novillo  <dnovillo@redhat.com>
2996
2997         * Makefile.in (tree-into-ssa.o): Add dependency on PARAMS_H.
2998         * lambda-code.c (perfect_nestify): Mark virtual operands in
2999         the moved statement for renaming.
3000         * params.def (PARAM_MIN_VIRTUAL_MAPPINGS): Define.
3001         (PARAM_VIRTUAL_MAPPINGS_TO_SYMS_RATIO): Define.
3002         * params.h (MIN_VIRTUAL_MAPPINGS): Define.
3003         (VIRTUAL_MAPPINGS_TO_SYMS_RATIO): Define.
3004         * tree-flow.h (struct var_ann_d): Update comments.
3005         (rewrite_to_new_ssa_names_bb, rewrite_to_new_ssa_names,
3006         allocate_ssa_names, find_phi_node_for, dump_tree_ssa,
3007         debug_tree_ssa, debug_def_blocks, dump_tree_ssa_stats,
3008         debug_tree_ssa_stats, rewrite_ssa_into_ssa,
3009         dump_repl_tbl, debug_repl_tbl, dump_names_replaced_by,
3010         debug_names_replaced_by): Remove declarations.
3011         (delete_update_ssa, get_current_def, set_current_def): Declare.
3012         (rewrite_into_loop_closed_ssa): Add new argument.  Update
3013         all callers.
3014         * tree-into-ssa.c: Include params.h.
3015         (old_virtual_ssa_names): Remove.  Update all users.
3016         (need_to_replace_names_p): Remove.  Update all users.
3017         (struct update_ssa_stats_d): Declare.
3018         (update_ssa_stats): New local.
3019         (dump_tree_ssa, debug_tree_ssa, debug_def_blocks,
3020         dump_tree_ssa_stats, debug_tree_ssa_stats,
3021         dump_update_ssa, debug_update_ssa,
3022         dump_names_replaced_by, debug_names_replaced_by): Declare.
3023         (get_current_def, set current_def): Make extern.
3024         (is_old_name, is_new_name): Protect against references
3025         past the end of the sets.
3026         (add_new_name_mapping): Assert that OLD and NEW are
3027         different SSA names for the same symbol.
3028         When adding a virtual mapping, update stats for virtual
3029         mapping heuristic.
3030         (insert_phi_nodes_for): If UPDATE_P is true, create the
3031         LHS of the new PHI by duplicating SSA name VAR.
3032         (insert_phi_nodes_1): Remove.  Update all users.
3033         (insert_phi_nodes): Remove second argument.  Update all
3034         users.
3035         (maybe_replace_use, maybe_replace_def): New.
3036         (rewrite_update_stmt): Call them.
3037         (mark_def_interesting): Remove calls to is_gimple_reg.
3038         (prepare_phi_args_for_update): Remove.  Update all users.
3039         (prepare_block_for_update): Only process virtual operands
3040         and GIMPLE registers in normal form.
3041         (prepare_use_sites_for): New.
3042         (prepare_names_to_update): Rename from prepare_def_sites.
3043         Call prepare_use_sites_for.
3044         (dump_update_ssa): Rename from dump_repl_tbl.
3045         Update all users.
3046         Show statistics for virtual mapping heuristic.
3047         (debug_update_ssa): Rename from debug_debug_repl_tbl.
3048         (init_update_ssa): Initialize UPDATE_SSA_STATS.
3049         (delete_update_ssa): Make extern.
3050         (mark_set_for_renaming): If the set is empty, do nothing.
3051         (release_ssa_name_after_update_ssa): Update comment.
3052         (insert_updated_phi_nodes_for): Do not remove existing
3053         PHI nodes for symbols.
3054         (switch_virtuals_to_full_rewrite_p): New.
3055         (switch_virtuals_to_full_rewrite): New.
3056         (update_ssa): Call them.
3057         Clear REWRITE_THIS_STMT and REGISTER_DEFS_IN_THIS_STMT
3058         for every statement before updating.
3059         If all the names in NEW_SSA_NAMES have been marked for
3060         removal, do nothing.
3061         Only start at the top of the CFG if there are symbols in
3062         SYMS_TO_RENAME.
3063         (ssa_rewrite_finalize_block): Remove.
3064         (ssa_register_new_def): Remove.
3065         (ssa_rewrite_stmt): Remove.
3066         (ssa_rewrite_phi_arguments): Remove.
3067         (ssa_rewrite_initialize_block): Remove.
3068         (ssa_mark_def_sites): Remove.
3069         (ssa_mark_def_sites_initialize_block): Remove.
3070         (ssa_mark_phi_uses): Remove.
3071         (rewrite_ssa_into_ssa): Remove.
3072         * tree-phinodes.c (find_phi_node_for): Remove.
3073         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
3074         Call update_ssa.
3075         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops):
3076         Remove calls to verify_dominators and
3077         verify_loop_structure.
3078         (tree_unswitch_single_loop): Call update_ssa.
3079         * tree-ssa.c (verify_ssa): Assert that need_ssa_update_p
3080         returns false.
3081         Call verify_stmts.
3082         (delete_tree_ssa): Assert that need_ssa_update_p returns
3083         false.
3084         * tree-vect-transform.c (vect_transform_loop): Call update_ssa.
3085         * tree-vectorizer.c (allocate_new_names, rename_def_op,
3086         free_new_names): Remove.  Update all users.
3087         (rename_use_op): Call get_current_def.
3088         (rename_variables_in_bb): Do not handle any real or
3089         virtual definition.
3090         (slpeel_update_phis_for_duplicate_loop): Call
3091         get_current_def and set_current_def instead of using
3092         SSA_NAME_AUX.
3093         (slpeel_update_phi_nodes_for_guard2): Reformat comments.
3094         (slpeel_can_duplicate_loop_p): Call need_ssa_update_p,
3095         ssa_names_to_replace and delete_update_ssa.
3096         * doc/invoke.texi: Document --param min-virtual-mappings
3097         and --param virtual-mappings-ratio.
3098
3099 2005-04-22  Diego Novillo  <dnovillo@redhat.com>
3100
3101         * tree-cfg.c (tree_duplicate_bb): Call create_new_def_for
3102         for newly created PHI nodes.
3103         Call create_new_def_for for every new V_MAY_DEF and
3104         V_MUST_DEF on the copied statement.
3105         (struct ssa_name_map_entry): Remove.
3106         (ssa_name_map_entry_hash): Remove.
3107         (ssa_name_map_entry_eq): Remove.
3108         (allocate_ssa_names): Remove.
3109         (rewrite_to_new_ssa_names_def): Remove.
3110         (rewrite_to_new_ssa_names_use): Remove.
3111         (rewrite_to_new_ssa_names_bb): Remove.
3112         (rewrite_to_new_ssa_names): Remove.
3113         (tree_duplicate_sese_region): Remove variables ver,
3114         definitions, phi, ssa_name_map and bi.
3115         Call need_ssa_update_p instead of any_marked_for_rewrite_p.
3116         Call update_ssa.
3117         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
3118         update_ssa instead of rewrite_ssa_into_ssa.
3119         * tree-ssa-loop-manip.c (add_exit_phis_edge): Call
3120         create_new_def_for.
3121         (find_uses_to_rename_use): Add argument 'need_phis'.
3122         (find_uses_to_rename_stmt): Do not scan virtual operands.
3123         (find_uses_to_rename): Only scan PHI nodes for
3124         non-virtual names.
3125         (rewrite_into_loop_closed_ssa): Call update_ssa.
3126         (check_loop_closed_ssa_use): Ignore virtual operands.
3127         (check_loop_closed_ssa_stmt): Likewise.
3128         (verify_loop_closed_ssa): Do nothing if CURRENT_LOOPS is
3129         NULL.
3130         (rename_variables, set_phi_def_stmts): Remove.
3131         (tree_duplicate_loop_to_header_edge): Reformat comment.
3132         Remove variables BB, I and DEFINITIONS.
3133         Call need_ssa_update_p.
3134         Call update_ssa.
3135         (lv_adjust_loop_header_phi): Reformat comment.
3136         * tree-ssanames.c (ssa_names_to_rewrite): Remove.
3137         (marked_for_rewrite_p, any_marked_for_rewrite_p,
3138         mark_for_rewrite, unmark_all_for_rewrite,
3139         marked_ssa_names): Remove.  Update all users.
3140         (release_ssa_name): If VAR has been registered for SSA
3141         updating, do nothing.
3142         * tree-vrp.c (new_ssa_names, old_ssa_names): Remove.
3143         (build_assert_expr_for): Call register_new_name_mapping.
3144         (insert_range_assertions): Update call to update_ssa.
3145         * tree.h (mark_for_rewrite, unmark_all_for_rewrite,
3146         marked_for_rewrite_p, any_marked_for_rewrite_p,
3147         marked_ssa_names): Remove.
3148
3149 2005-04-22  Jeff Law  <law@redhat.com>
3150
3151         * tree-ssa-dom.c (block_defs_stack): Remove, no longer needed.
3152         (restore_currdefs_to_original_value): Likewise.
3153         (register_definitions_for_stmt): Likewise.
3154         (tree_ssa_dominator_optimize): No longer initialize CURRENT_DEF
3155         for each variable.  Do not allocate/free block_defs_stack either.
3156         Do not iterate if we just thread jumps.  Only iterate if the
3157         tree_cleanup_cfg does useful work (temporary).
3158         (dom_opt_initialize_block): No longer push a marker on
3159         BLOCK_DEFS_STACK.
3160         (dom_opt_finalize_block): Removal call to restore currdefs.
3161         Relax restrictions for recording edge equivalences.
3162         (record_equivalences_from_phis): No longer need to track
3163         CURRENT_DEF.
3164         (optimize_stmt): Similarly.
3165         (thread_across_edge): Simplify by removing the requirement that
3166         statements in the block we are threading through must be nops.
3167         (initialize_hash_element): Handle GOTO_EXPR.
3168
3169 2005-04-22  David S. Miller  <davem@davemloft.net>
3170
3171         * sched-vis.c (print_value): Use CONST_DOUBLE_LOW and
3172         CONST_DOUBLE_HIGH.
3173         * config/sparc/sparc.c (sparc_rtx_costs): Likewise, and
3174         fix check on CONST_DOUBLE mode.  It should be VOIDmode
3175         when it is representing an integer.
3176
3177 2005-04-22  Nathan Sidwell  <nathan@codesourcery.com>
3178
3179         * builtins.c (gimplify_va_arg_expr): Reword comments to avoid
3180         'abort'. Use gcc_assert and gcc_unreachable as appropriate.
3181         * c-format.c (get_constant, decode_format_attr, get_flag_spec, 
3182         find_char_info_specifier_index,
3183         find_length_info_modifier_index): Likewise.
3184         * c-typeck.c (composite_type, pop_init_level): Likewise.
3185         * combine.c (cant_combine_insn_p, try_combine): Likewise.
3186         * cse.c (cse_insn): Likewise
3187         * dominance.c (calc_dfs_tree): Likewise
3188         dwarf2out.c (loc_descriptor_from_tree_1,
3189         add_abstract_origin_attribute, force_decl_die,
3190         force_type_die): Likewise
3191         emit-rtl.c (operand_subword_force): Likewise
3192         explow.c (hard_function_value): Likewise
3193         expmed.c (store_bit_field, expand_divmod,
3194         emit_store_flag_force): Likewise
3195         expr.c (emit_move_multi_word, store_expr,
3196         expand_expr_real_1): Likewise
3197         final.c (this_is_asm_operands, shorten_branches, final_scan_insn,
3198         output_operand): Likewise
3199         flow.c (recompute_reg_usage): Likewise
3200         * function.c (assign_stack_temp_for_type, assign_temp, 
3201         handle_epilogue_set): Likewise
3202         * genextract.c (main): Likewise
3203         * gimplify.c (mostly_copy_tree_r, gimplify_return_expr,
3204         gimplify_modify_expr_rhs, gimplify_expr): Likewise
3205         * haifa-sched.c (ready_lastpos, ready_remove_first, ready_element,
3206         ready_remove, rm_line_notes, rm_other_notes,
3207         schedule_block): Likewise
3208         mips-tfile.c (copy_object, out_of_bounds): Likewise
3209
3210 2005-04-22 David Edelsohn  <edelsohn@gnu.org>
3211
3212         PR target/20813
3213         * config/rs6000/default64.h (TARGET_DEFAULT): Add MASK_PPC_GFXOPT.
3214         * config/rs6000/rs6000.c (processor_target_table): Rename rs64a to
3215         rs64.  Add MASK_PPC_GFXOPT to powerpc64 and rs64.
3216         (rs6000_init_libfuncs): Set TFmode optabs to xlq names if
3217         TARGET_XL_COMPAT.
3218         * doc/invoke.texi (PowerPC options): Change rs64a to rs64.
3219
3220 2005-04-22  Nathan Sidwell  <nathan@codesourcery.com>
3221
3222         * lambda-code.c: Define VEC(int,heap), VEC(lambda_loop,heap).
3223         (gcc_tree_to_linear_expression): Convert to heap allocated
3224         vectors.
3225         (gcc_loop_to_lambda_loop, gcc_loopnest_to_lambda_loopnest,
3226         lbv_to_gcc_expression, lle_to_gcc_expression,
3227         lambda_loopnest_to_gcc_loopnest, can_convert_to_perfect_nest, 
3228         perfect_nestify): Likewise.
3229         lambda.h (gcc_loopnest_to_lambda_loopnest,
3230         lambda_loopnest_to_gcc_loopnest): Likewise.
3231         tree-loop-linear.c (linear_transform_loops): Likewise.
3232
3233 2005-04-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
3234
3235         * config/sparc/predicates.md (arith_double_operand): Use
3236         trunc_int_for_mode if HOST_BITS_PER_WIDE_INT >=64.
3237         * config/sparc/sparc.md (movqi, movhi, movsi, movqi): Use gen_int_mode.
3238         (DImode, DFmode constant splitters): Likewise.  Remove code for
3239         TARGET_ARCH64 && HOST_BITS_PER_WIDE_INT < 64.
3240         (logical constant splitters): Use const_int_operand predicate.
3241         (lshrsi3_extend): Remove code for TARGET_ARCH64 &&
3242         HOST_BITS_PER_WIDE_INT < 64.
3243
3244 2005-04-22  Nathan Sidwell  <nathan@codesourcery.com>
3245
3246         * config/pa/pa.c (legitimize_pic_address): Use gcc_assert and
3247         gcc_unreachable as appropriate.
3248         (force_mode, emit_move_sequence, singlemove_string,
3249         output_move_double, output_fp_move_double, find_addr_reg,
3250         output_block_move, output_block_clear, output_and,
3251         output_64bit_and, output_ior, output_64bit_ior, store_reg_modify,
3252         pa_adjust_cost, pa_issue_rate, print_operand,
3253         output_global_address, output_arg_descriptor, output_cbranch,
3254         output_lbranch, output_bb, output_bvb, output_dbra, output_movb,
3255         output_call): Likewise.
3256         * config/pa/pa.md (call, call_value, sibcall, sibcall_value,
3257         prefetch, prefetch_cc, prefetch_nocc): Likewise.
3258
3259 2005-04-22  Zdenek Dvorak  <dvorakz@suse.cz>
3260
3261         * Makefile.in (LIBGCOV): Add _gcov_interval_profiler,
3262         _gcov_pow2_profiler and _gcov_one_value_profiler.
3263         (tree-profile.o): Add GGC_H and gt-tree-profile.h dependency.
3264         (GTFILES): Add $(srcdir)/tree-profile.c.
3265         * gcov-io.h (__gcov_interval_profiler, __gcov_pow2_profiler,
3266         __gcov_one_value_profiler): Declare.
3267         * gimplify.c (force_gimple_operand): Check whether the statements
3268         should be produced in ssa form.
3269         (force_gimple_operand_bsi): New function.
3270         * libgcov.c (__gcov_interval_profiler, __gcov_pow2_profiler,
3271         __gcov_one_value_profiler): New functions.
3272         * rtl-profile.c (rtl_gen_pow2_profiler): Only measure whether
3273         the profiled value is a power of two or not.
3274         * tree-cfg.c (tree_block_ends_with_condjump_p): Handle empty blocks.
3275         * tree-flow.h (in_ssa_p): Declare.
3276         (force_gimple_operand_bsi): Declare.
3277         * tree-into-ssa.c (in_ssa_p): New variable.
3278         (rewrite_into_ssa): Set in_ssa_p.
3279         * tree-outof-ssa.c (rewrite_out_of_ssa): Set in_ssa_p.
3280         * tree-profile.c: Include ggc.h and gt-tree-profile.h.
3281         (gcov_type_node, tree_interval_profiler_fn, tree_pow2_profiler_fn,
3282         tree_one_value_profiler_fn): New variables.
3283         (tree_init_edge_profiler): Initialize the profiler function decls.
3284         (tree_gen_edge_profiler): Use global gcov_type_node.
3285         (prepare_instrumented_value): New function.
3286         (tree_gen_interval_profiler, tree_gen_interval_profiler,
3287         tree_gen_one_value_profiler): Call the library functions instead of
3288         creating instrumentation code.
3289         * tree.c (build_fn_decl): New function.
3290         * tree.h (build_fn_decl): Declare.
3291         * value-prof.c (rtl_divmod_values_to_profile,
3292         rtl_find_values_to_profile, rtl_mod_pow2_value_transform,
3293         tree_mod_pow2_value_transform, tree_find_values_to_profile):
3294         Do not handle may_be_other and precise values of exponents at pow2
3295         profiler.
3296         (tree_mod_subtract_transform): Reflect that value field of
3297         histogram has changed meaning.
3298         (tree_divmod_values_to_profile): Record the values correctly.
3299         (tree_values_to_profile): Update comment.
3300         * value-prof.h (struct histogram_value_t): Remove pow2 data.
3301
3302 2005-04-22  Joseph S. Myers  <joseph@codesourcery.com>
3303
3304         * varasm.c (do_assemble_alias): Return early if TREE_ASM_WRITTEN
3305         (decl).
3306
3307 2005-04-22  Nathan Sidwell  <nathan@codesourcery.com>
3308
3309         * config/i386/i386.md (length_immediate): Use gcc_assert or
3310         gcc_unreachable, as appropriate.
3311         (*movsi_1, *movqi_1, reload_outqi, *movdi_1_rex64, *pushsf,
3312         *pushsf_rex64, *truncxfsf2_mixed, *truncxfsf2_i387,
3313         *truncxfdf2_mixed, *truncxfdf2_i387, *adddi_1_rex64,
3314         *adddi_2_rex64, *adddi_3_rex64, *adddi_4_rex64, *adddi_5_rex64,
3315         *addsi_1, addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
3316         *addsi_3_zext, *addsi_4, *addsi_5, *addhi_1_lea, *addhi_1,
3317         *addhi_2, *addhi_3, *addhi_4, *addhi_5, *addqi_1_lea, *addqi_1,
3318         *addqi_1_slp, *addqi_2, *addqi_3, *addqi_4, *addqi_5, addqi_ext_1,
3319         *addqi_ext_1_rex64, *anddi_1_rex64, *andsi_1, *andhi_1,
3320         *ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashlsi3_1, *ashlsi3_1_zext,
3321         *ashlsi3_cmp, *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1,
3322         *ashlhi3_cmp, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
3323         pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64,
3324         pro_epilogue_adjust_stack_rex64_2, prefetch, *prefetch_sse,
3325         *prefetch_sse_rex): Likewise.
3326         * config/i386/predicates.md (x86_64_immediate_operand,
3327         x86_64_zext_immediate_operand, symbolic_operand,
3328         no_seg_address_operand, aligned_operand,
3329         memory_displacement_operand): Likewise.
3330         * config/i386/sse.md (*mov<mode>_internal,
3331         *movv2df_internal): Likewise.
3332
3333 2005-04-22  Jan Hubicka  <jh@suse.cz>
3334
3335         * Makefile.in (ipa.o, ipa-inline.o): New files.
3336         * cgraph.h (cgraph_remove_unreachable_nodes, cgraph_postorder,
3337         cgraph_decide_inlining_incrementally, cgraph_clone_inlined_nodes,
3338         cgraph_mark_inline_edge, cgraph_default_inline_p): Declare.
3339         * cgraphunit.c (cgraph_default_inline_p,
3340         cgraph_decide_inlining_incrementally,  ncalls_inlined,
3341         nfunctions_inlined, initial_insns, overall_insns, 
3342         cgraph_estimate_size_after_inlining, cgraph_estimate_growth,
3343         cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
3344         cgraph_mark_inline, cgraph_check_inline_limits,
3345         cgraph_default_inline_p, cgraph_recursive_inlining_p,
3346         update_callee_keys, lookup_recursive_calls,
3347         cgraph_decide_recursive_inlining, cgraph_set_inline_failed,
3348         cgraph_decide_inlining_of_small_functions, cgraph_decide_inlining,
3349         cgraph_decide_inlining_incrementally, cgraph_gate_inlining,
3350         pass_ipa_inline): Move to ipa-inline.c
3351         (cgraph_postorder, cgraph_remove_unreachable_nodes): Move to ipa.c
3352         * ipa.c: New file.
3353         * ipa-inline.c: New file.
3354
3355 2005-04-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
3356
3357         * doc/invoke.texi (SPARC options): Document that -mapp-regs
3358         is turned off by default on Solaris.
3359
3360 2005-04-21  Roger Sayle  <roger@eyesopen.com>
3361
3362         * c-common.h (objc_build_method_signature): Update prototype.
3363         * stub-objc.c (objc_build_method_signature): Update the stub
3364         implementation to accept and ignore additional parameter.
3365         * c-parser.c (c_parser_objc_method_decl): Reorgnize to pass
3366         the value of ellipsis to objc_build_method_signature instead
3367         of setting TREE_OVERFLOW on the parms TREE_LIST node.
3368
3369 2005-04-21  Geoffrey Keating  <geoffk@apple.com>
3370
3371         * config/rs6000/rs6000-protos.h (rs6000_emit_sync): New.
3372         * config/rs6000/rs6000.c (rs6000_emit_vector_compare): Use
3373         gen_rtx_* not gen_rtx_fmt_*.
3374         (rs6000_emit_vector_select): Likewise.
3375         (rs6000_emit_sync): New.
3376         * config/rs6000/rs6000.md (GPR, INT, INT1): New mode macros.
3377         (larx, stcx, cmp): New mode substitutions.
3378         (UNSPEC_SYNC, UNSPEC_SYNC_OP, UNSPEC_SYNC_SWAP, UNSPEC_LWSYNC,
3379         UNSPEC_ISYNC): New constants.
3380         (rlwinm): Give name.
3381         (memory_barrier, isync, lwsync): New insns.
3382         (sync_compare_and_swap<mode>, sync_lock_test_and_set<mode>): New insn.
3383         (sync_lock_release<mode>): New expander.
3384         (sync_add<mode>, sync_sub<mode>, sync_ior<mode>, sync_and<mode>,
3385         sync_xor<mode>, sync_nand<mode>, sync_old_add<mode>,
3386         sync_old_sub<mode>, sync_old_ior<mode>, sync_old_and<mode>,
3387         sync_old_xor<mode>, sync_old_nand<mode>, sync_new_add<mode>,
3388         sync_new_sub<mode>, sync_new_ior<mode>, sync_new_and<mode>,
3389         sync_new_xor<mode>, sync_new_nand<mode>): New expanders.
3390         (sync_add<mode>_internal, sync_addshort_internal,
3391         sync_sub<mode>_internal, sync_andsi_internal, sync_anddi_internal,
3392         sync_boolsi_internal, sync_booldi_internal, sync_boolc<mode>_internal,
3393         sync_boolc<mode>_internal2, sync_boolcc<mode>_internal): New insns.
3394
3395         * doc/md.texi (Standard Names): sync_compare_and_swap's operand 0
3396         is the memory before, not after, the operation.  Clarify
3397         barrier requirements.
3398
3399 2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
3400
3401         * cfghooks.h (struct cfg_hooks): Reword comments to avoid 'abort'.
3402         * lambda.h (lambda_vector_min_nz): Likewise.
3403         * langhooks.h (struct lang_hooks_for_types,
3404         struct lang_hooks): Likewise.
3405         * output.h (assemble_integer, this_is_asm_operands): Likewise.
3406         * tree.h: Likewise.
3407         * vec.h: Likewise.
3408         * tree-flow-inline.h (relink_imm_use): Use gcc_assert.
3409         
3410         * optabs.c (prepare_cmp_insn, emit_cmp_and_jump_insns): Reword
3411         comments to avoid 'abort'.  Use gcc_assert as necessary.
3412         * opts.c (common_handle_option): Likewise.
3413         * pretty-print.c (pp_base_format_text): Likewise.
3414         * print-rtl.c (print_rtx): Likewise.
3415         * read-rtl.c (read_rtx_filename, read_rtx_1): Likewise.
3416         * regmove.c (try_auto_increment): Likewise.
3417         * reload.c (find_valid_class, find_reloads_toplev,
3418         find_equiv_reg): Likewise.
3419         * reload1.c (reload, forget_old_reloads_1, function_invariant_p, 
3420         merge_assigned_reloads): Likewise.
3421         * tree-inline.c (inline_forbidden_p_1,
3422         estimate_num_insns_1): Likewise.
3423         * tree-optimize.c (execute_todo): Likewise.
3424         * tree-outof-ssa.c (eliminate_phi): Likewise.
3425         * tree-ssa-alias.c (add_pointed_to_expr): Likewise.
3426         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Likewise.
3427         * tree-ssa-operands.c (parse_ssa_operands,
3428         get_indirect_ref_operands, create_ssa_artficial_load_stmt): Likewise.
3429         * tree-ssa-pre.c (find_or_generate_expression): Likewise.
3430         * tree-ssanames.c (release_ssa_name): Likewise.
3431         * tree.c (int_bit_position, int_byte_position, tree_low_cst, 
3432         walk_tree): Likewise.
3433
3434         * tree-ssa-operands.c (verify_abort): Fold into ..
3435         (verify_imm_links): ... here.
3436
3437 2005-04-21  Richard Henderson  <rth@redhat.com>
3438
3439         * config/alpha/sync.md (sync_new_nand<I48MODE>): Fix constraints
3440         on non-memory operand for previous inversion.
3441
3442 2005-04-21  Devang Patel  <dpatel@apple.com>
3443
3444         PR optimization/20994
3445         * tree-if-conv.c (find_phi_replacement_condition): Avoid generating
3446         x = !(a == b) : p , q;.
3447         (pass_if_conversion): Verify stmts and flow.
3448         
3449 2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
3450
3451         * optabs.c (gen_conditional_trap): Restore #define.
3452
3453         * alias.c (true_dependence): Remove 'abort' from comments. Use
3454         gcc_assert and gcc_unreachable as appropriate.
3455         (canon_true_dependence): Likewise.
3456         * bb-reorder.c (connect_traces): Likewise.
3457         * c-common.c (c_add_case_label): Likewise.
3458         * c-decl.c (finish_function): Likewise.
3459         * caller-save.c (insert_restore, insert_save): Likewise.
3460         * cfg.c (update_bb_profile_for_threading): Likewise.
3461         * cfganal.c (flow_active_insn_p): Likewise.
3462         * cfgexpand.c (add_reg_br_prob_note): Likewise.
3463         * cfgrtl.c (rtl_redirect_edge_and_branch_force, rtl_split_edge,
3464         cfg_layout_merge_blocks): Likewise.
3465         * ifcvt.c (cond_exec_process_insns, merge_if_block,
3466         find_if_block): Likewise.
3467         * integrate.c (allocate_initial_values): Likewise.
3468         * jump.c (reverse_condition, reverse_condition_maybe_unordered,
3469         swap_condition, unsigned_condition, signed_condition,
3470         mark_jump_label, invert_jump_1, rtx_renumbered_equal_p,
3471         reg_or_subregno): Likewise.
3472         * lambda-code.c (lambda_compute_auxillary_space,
3473         lambda_transform_legal_p): Likewise.
3474         * lambda-mat.c (lambda_matrix_inverse_hard): Likewise.
3475         * langhooks.c (lhd_set_decl_assembler_name, lhd_type_promotes_to,
3476         lhd_incomplete_type_error, lhd_expand_expr,
3477         lhd_types_compatible_p, lhd_tree_size): Likewise.
3478         * lcm.c (create_pre_exit, optimize_mode_switching): Likewise.
3479         * local-alloc.c (update_equiv_regs): Likewise.
3480         * loop-unroll.c (peel_loop_completely
3481         unroll_loop_constant_iterations, unroll_loop_runtime_iterations,
3482         peel_loop_simple, unroll_loop_stupid,
3483         analyze_iv_to_split_insn): Likewise.
3484         * loop.c (gen_prefetch, find_and_verify_loops,
3485         basic_induction_var): Likewise.
3486         * modulo-sched.c (normalize_sched_times, check_nodes_order): Likewise.
3487         * value-prof.c (tree_find_values_to_profile): Likewise.
3488         * varasm.c (named_section, default_assemble_integer,
3489         decode_addr_const): Likewise.
3490
3491 2005-04-21 Alan Modra  <amodra@bigpond.net.au>
3492            Fariborz Jahanian <fjahanian@apple.com>
3493
3494         * config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Fix size of
3495         portion of argument passed in fpr.
3496         * expr.c (emit_push_insn): Fix computation of 'offset' used to
3497         decide on partial argument save on stack.
3498
3499 2005-04-21  Kazu Hirata  <kazu@cs.umass.edu>
3500
3501         * config/sparc/predicates.md, config/sparc/sparc.md: Fix
3502         comment typos.
3503
3504 2005-04-21  Jan Hubicka  <jh@suse.cz>
3505
3506         * cgraphunit.c: Include tree-pass.h
3507         (cgraph_decide_recursive_inlining,
3508         cgraph_decide_inlining_of_small_function, cgraph_set_inline_failed,
3509         cgraph_decide_inlining): Dump goes to dump_file.
3510         (cgraph_optimize): Call ipa passes instead of inliner.
3511         (cgraph_gate_inlining, pass_ipa_inline): New.
3512         * tree-optimize.c (all_ipa_passes): New static variable.
3513         (register_one_dump_file): Dead with IPA passes.
3514         (register_dump_files): Likewise.
3515         (init_tree_optimization_passes): Initialize IPA passes.
3516         (execute_todo): Do cgraph dump when asked to, do not dump function body
3517         for IPA pass.
3518         * tree-pass.h (TODO_dump_cgraph): New macro.
3519         (ipa_passes): Declare.
3520         * Makefile.in (cgraphunit.o): Add dependency on cgraphunit.h
3521
3522 2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
3523
3524         * config/i386/i386.c (type_natural_mode): Use gcc_unreachable and
3525         gcc_assert instead of abort.
3526         (classify_argument, examine_argument, construct_container,
3527         contains_128bit_aligned_vector_p, ix86_check_movabs,
3528         standard_80387_constant_opcode, standard_80387_constant_rtx,
3529         ix86_initial_elimination_offset, ix86_compute_frame_layout,
3530         pro_epilogue_adjust_stack, ix86_expand_epilogue,
3531         ix86_address_cost, legitimate_address_p, legitimize_pic_address,
3532         legitimize_tls_address, output_pic_addr_const,
3533         i386_output_dwarf_dtprel, put_condition_code, print_reg,
3534         get_some_local_dynamic_name, print_operand, print_operand_address,
3535         output_387_binary_op, emit_i387_cw_initialization,
3536         output_fix_trunc, output_fp_compare, ix86_output_addr_vec_elt,
3537         ix86_expand_clear, ix86_expand_binary_operator,
3538         ix86_expand_unary_operator, ix86_match_ccmode, ix86_cc_mode,
3539         ix86_cc_modes_compatible, ix86_fp_comparison_codes,
3540         ix86_fp_comparison_arithmetics_cost, ix86_expand_fp_compare,
3541         ix86_expand_branch, ix86_expand_setcc,
3542         ix86_expand_carry_flag_compare, ix86_expand_fp_movcc,
3543         ix86_expand_int_addcc, ix86_split_to_parts, ix86_split_long_move,
3544         ix86_expand_movmem, ix86_expand_call, assign_386_stack_local,
3545         memory_address_length, ix86_attr_length_immediate_default,
3546         ix86_attr_length_address_default, ix86_agi_dependant,
3547         x86_initialize_trampoline, ix86_init_mmx_sse_builtins,
3548         ix86_expand_binop_builtin, ix86_force_to_memory,
3549         ix86_secondary_memory_needed, ix86_avoid_jump_misspredicts,
3550         x86_emit_floatuns): Likewise.
3551         * config/i386/netware.c (gen_regparm_prefix,
3552         i386_nlm_strip_name_encoding): Likewise.
3553         * config/i386/winnt.c (i386_pe_mark_dllexport): Likewise.
3554
3555 2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
3556
3557         * optabs.c (gen_condiational_trap): Remove #define.
3558         (add_equal_note): Assertify. Remove explicit indirection from
3559         call via function pointer.
3560         (expand_ternary_op, expand_simple_binop, expand_binop,
3561         expand_twoval_unop, expand_twoval_binop,
3562         expand_twoval_binop_libfunc, expand_simple_unop expand_unop,
3563         emit_unop_insn,  emit_no_conflict_block,  prepare_cmp_insn,
3564         prepare_operand emit_cmp_and_jump_insn_1, emit_cmp_and_jump_insns,
3565         prepare_float_lib_cmp, emit_conditional_move,
3566         emit_conditional_add, gen_add2_insn, gen_add3_insn,
3567         have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn,
3568         expand_float, expand_fix, debug_optab_libfuncs, gen_cond_trap,
3569         vector_compare_rtx, expand_vec_cond_expr): Likewise.
3570
3571 2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
3572
3573         * vec.h: Update API to separate allocation mechanism from type.
3574         (VEC_safe_grow): New.
3575         * vec.c (calculate_allocation): New.
3576         (vec_gc_o_reserve, vec_heap_o_reserve): Adjust.
3577         (vec_gc_free, vec_heap_free): Remove.
3578         * gengtype-lex.l (DEF_VEC_): Process mult-argument macros.  Adjust.
3579         (VEC): Likewise.
3580         (mangle_macro_name): New.
3581         (struct macro_def): New.
3582         (struct macro): Add multiple argument values.
3583         (macro_expans_end): New.
3584         (push_macro_expansion):  Chain on new macro. Process multiple
3585         args, create follow on expansion. Return follow on argument.
3586         (macro_input): Deal with multiple arguments.
3587         
3588         * tree.h: Define VEC(tree,heap) and VEC(tree,gc).
3589         (struct tree_binfo): Adjust.
3590         * basic-block.h: Define VEC(edge,gc).
3591         (struct edge_def): Adjust.
3592         (struct basic_block_def, struct edge_iterator): Likewise.
3593         (ei_container, ei_start_1, ei_last_1): Likewise.
3594         * cfg.c (connect_src, connect_dest): Likewise.
3595         * cfgrtl.c (force_nonfallthru_and_redirect)
3596         * dbxout.c (dbxout_type)
3597         * dwarf2out.c (gen_member_die)
3598         * lambda-code.c: Define VEC(int,gc), VEC(lambda_loop,gc).
3599         (gcc_tree_to_linear_expression): Adjust.
3600         (gcc_loop_to_lambda_loop, gcc_loopnest_to_lambda_loopnest,
3601         lbv_to_gcc_expression, lle_to_gcc_expression,
3602         lambda_loopnest_to_gcc_loopnest, can_convert_to_perfect_nest,
3603         perfect_nestify): Likewise.
3604         * lambda.h (gcc_loopnest_to_lambda_loopnest,
3605         lambda_loopnest_to_gcc_loopnest): Adjust prototypes.
3606         * profile.c (instrument_values): Adjust.
3607         * tree-cfg.c (modified_noreturn_calls): Adjust.
3608         (remove_fallthru_edge): Likewise.
3609         * tree-dump.c (dequeue_and_dump): Adjust.
3610         * tree-flow-inline.h (mark_stmt_modified): Adjust.
3611         * tree-flow.h (modified_noreturn_calls): Adjust.
3612         (tree_on_heap): Remove. (yay!)
3613         (register_new_def): Adjust.
3614         * tree-into-ssa.c: Define VEC(int,heap).
3615         (block_defs_stack): Adjust.
3616         (find_idf, insert_phi_nodes, register_new_def,
3617         rewrite_initialize_block, rewrite_finalize_block,
3618         register_new_update_single, rewrite_update_init_block,
3619         rewrite_update_fini_block, rewrite_blocks,
3620         ssa_rewrite_finalize_block, ssa_register_new_def,
3621         ssa_rewrite_initialize_block, rewrite_ssa_into_ssa): Likewise.
3622         * tree-loop-linear.c (linear_transform_loops): Adjust.
3623         * tree-ssa-alias.c: Define VEC(fieldoff_t,heap).
3624         (push_fields_onto_fieldstack, create_overlap_variables_for): Adjust.
3625         * tree-ssa-dom.c (avail_exprs_stack, block_defs_stack,
3626         stmts_to_rescan, const_and_copies_stack, nonzero_vars_stack,
3627         vrp_variables_stack): Adjust declarations.
3628         (tree_ssa_dominator_optimize): Adjust.
3629         (dom_opt_initialize_block, remove_local_expressions_from_table,
3630         restore_nonzero_vars_to_original_value,
3631         restore_vars_to_original_value,
3632         restore_currdefs_to_original_value, dom_opt_finalize_block,
3633         record_var_is_nonzero, record_cond, record_const_or_copy_1,
3634         optimize_stmt, update_rhs_and_lookup_avail_expr,
3635         lookup_avail_expr, record_range): Likewise.
3636         * tree-ssa-pre.c: Define VEC(basic_block,heap).
3637         (compute_antic_aux): Adjust.
3638         (inserted_exprs, create_expression_by_pieces, 
3639         insert_into_preds_of_block, eliminate, mark_operand_necessary, 
3640         remove_dead_inserted_code, fini_pre): Likewise.
3641         * tree-ssa-propagate.c (interesting_ssa_edges): Adjust.
3642         (varying_ssa_edges, add_ssa_edge, process_ssa_edge_worklist. 
3643         ssa_prop_init): Likewise.
3644         * tree-ssa.c: Define VEC(bitmap,heap).
3645         (verify_name_tags): Adjust.
3646         * value-prof.c (rtl_divmod_values_to_profile): Adjust.
3647         (insn_prefetch_values_to_profile, rtl_find_values_to_profile,
3648         tree_divmod_values_to_profile, tree_find_values_to_profile,
3649         value_profile_transformations): Likewise.
3650         * value-prof.h: Define VEC(histogram_value,heap).
3651         * varasm.c: Remove alias_pair pointer typedef, define
3652         VEC(alias_pair,gc).
3653         (finish_aliases_1, finish_aliases_2, assemble_alias): Adjust.
3654         
3655         * config/pa/pa.c (typedef extern_symbol): Typedef the structure,
3656         not a pointer to it.  Create an object vector.
3657         (extern_symbols): Turn into an object vector.
3658         (pa_hpux_asm_output_external, pa_hpux_file_end): Adjust.
3659
3660 2005-04-21  Sebastian Pop  <pop@cri.ensmp.fr>
3661
3662         PR/20742
3663         * Makefile.in (tree-chrec.o): Depend on params.h.
3664         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): New parameter with
3665         default value 20.
3666         * tree-chrec.c: Depend on params.h.  Replace build with buildN,
3667         and fold build with fold_buildN.
3668         (chrec_fold_plus_1): Fail with a chrec_don_know when the size of
3669         the expression exceeds PARAM_SCEV_MAX_EXPR_SIZE.
3670         (tree_contains_chrecs): Compute an estimation of the size of the
3671         given expression.
3672         * tree-chrec.h (tree_contains_chrecs): Modify its declaration.
3673         (tree_does_not_contain_chrecs): Update the use of tree_contains_chrecs.
3674         * tree-scalar-evolution.c (simple_iv): Ditto.
3675         * doc/invoke.texi (scev-max-expr-size): Documented.
3676
3677 2005-04-21  Richard Sandiford  <rsandifo@redhat.com>
3678
3679         * config.gcc (*-*-darwin*): Add darwin.opt to $extra_options.
3680         (i[34567]86-pc-msdosdjgpp*): Likewise i386/djgpp.opt.
3681         (i[34567]86-*-lynxos*, powerpc-*-lynxos*): Likewise lynx.opt.
3682         (i[34567]86-*-sco3.2v5*): Likewise i386/sco5.opt.
3683         (i[34567]86-*-pe, i[34567]86-*-cygwin*, i[34567]86-*-mingw32*)
3684         (i[34567]86-*-uwin*): Likewise i386/cygming.opt.
3685         * config/darwin.h (darwin_one_byte_bool, darwin_fix_and_continue)
3686         (darwin_fix_and_continue_switch, SUBTARGET_OPTIONS): Delete.
3687         * config/darwin.c (darwin_one_byte_bool, darwin_fix_and_continue)
3688         (darwin_fix_and_continue_switch): Delete.
3689         * config/lynx.h (SUBTARGET_OS_LYNX_SWITCHES): Delete.
3690         (SUBTARGET_SWITCHES): Delete.
3691         * config/i386/i386.h (target_flags, MASK_80387, MASK_RTD)
3692         (MASK_ALIGN_DOUBLE, MASK_SVR3_SHLIB, MASK_IEEE_FP, MASK_FLOAT_RETURNS)
3693         (MASK_NO_FANCY_MATH_387, MASK_OMIT_LEAF_FRAME_POINTER)
3694         (MASK_STACK_PROBE, MASK_NO_ALIGN_STROPS, MASK_INLINE_ALL_STROPS)
3695         (MASK_NO_PUSH_ARGS, MASK_ACCUMULATE_OUTGOING_ARGS, MASK_MMX)
3696         (MASK_SSE, MASK_SSE2, MASK_SSE3, MASK_3DNOW, MASK_3DNOW_A)
3697         (MASK_128BIT_LONG_DOUBLE, MASK_64BIT, MASK_MS_BITFIELD_LAYOUT)
3698         (MASK_TLS_DIRECT_SEG_REFS, MASK_NO_RED_ZONE, TARGET_80387)
3699         (TARGET_RTD, TARGET_ALIGN_DOUBLE, TARGET_PUSH_ARGS)
3700         (TARGET_ACCUMULATE_OUTGOING_ARGS, TARGET_SVR3_SHLIB, TARGET_IEEE_FP)
3701         (TARGET_128BIT_LONG_DOUBLE, TARGET_NO_FANCY_MATH_387)
3702         (TARGET_USE_FANCY_MATH_387, TARGET_OMIT_LEAF_FRAME_POINTER)
3703         (TARGET_DEBUG_ADDR, TARGET_DEBUG_ARG): Delete.
3704         (TARGET_FLOAT_RETURNS_IN_80387): Make an alias of TARGET_FLOAT_RETURNS.
3705         (TARGET_64BIT): Undef before redefining.
3706         (TARGET_TLS_DIRECT_SEG_REFS, TARGET_STACK_PROBE)
3707         (TARGET_ALIGN_STRINGOPS, TARGET_INLINE_ALL_STRINGOPS, TARGET_SSE)
3708         (TARGET_SSE2, TARGET_SSE3, TARGET_MMX, TARGET_3DNOW, TARGET_3DNOW_A)
3709         (TARGET_RED_ZONE, TARGET_USE_MS_BITFIELD_LAYOUT, TARGET_SWITCHES)
3710         (TARGET_OPTIONS, SUBTARGET_SWITCHES, SUBTARGET_OPTIONS)
3711         (ix86_fpmath_string, ix86_tls_dialect_string, ix86_cmodel_string)
3712         (ix86_asm_string, ix86_regparm, ix86_regparm_string)
3713         (ix86_preferred_stack_boundary_string, ix86_branch_cost_string)
3714         (ix86_debug_arg_string, ix86_debug_addr_string)
3715         (ix86_align_loops_string, ix86_align_jumps_string)
3716         (ix86_align_funcs_string): Delete.
3717         * config/i386/cygming.h (MASK_NOP_FUN_DLLIMPORT)
3718         (TARGET_NOP_FUN_DLLIMPORT, SUBTARGET_SWITCHES): Delete.
3719         * config/i386/djgpp.h (MASK_BNU210, SUBTARGET_SWITCHES): Delete.
3720         (SUBTARGET_OVERRIDE_OPTIONS): Check TARGET_BNU210.
3721         * config/i386/lynx.h (SUBTARGET_SWITCHES): Delete.
3722         * config/i386/sco5.h (MASK_COFF, TARGET_ELF)
3723         (SUBTARGET_SWITCHES): Delete.
3724         * config/i386/i386.c (ix86_debug_arg_string): Delete.
3725         (ix86_debug_addr_string): Delete.
3726         (ix86_cmodel_string, ix86_asm_string, ix86_tls_dialect_string)
3727         (ix86_fpmath_string, ix86_regparm_string, ix86_regparm)
3728         (ix86_align_loops_string, ix86_align_jumps_string)
3729         (ix86_preferred_stack_boundary_string, ix86_branch_cost_string)
3730         (ix86_align_funcs_string): Make static.
3731         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
3732         (ix86_handle_option): New function.
3733         (TARGET_USE_MS_BITFIELD_LAYOUT): Delete.
3734         (ix86_ms_bitfield_layout_p): Check TARGET_MS_BITFIELD_LAYOUT.
3735         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Remove handling
3736         of darwin_fix_and_continue_switch.
3737         (darwin_one_byte_bool): Delete.
3738         * config/rs6000/lynx.h (EXTRA_SUBTARGET_SWITCHES): Delete.
3739         * config/rs6000/rs6000.c (rs6000_override_options): Update assignment
3740         to darwin_one_byte_bool.
3741         * config/darwin.opt, config/lynx.opt, config/i386/cygming.opt,
3742         * config/i386/djgpp.opt, config/i386/i386.opt,
3743         * config/i386/sco5.opt: New files.
3744
3745 2005-04-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
3746
3747         * config/sparc/sparc.c (reg_or_0_operand, const1_operand,
3748         fp_zero_operand, fp_register_operand, intreg_operand,
3749         fcc_reg_operand, fcc0_reg_operand, icc_or_fcc_reg_operand,
3750         call_operand, call_operand_address, tgd_symbolic_operand,
3751         tld_symbolic_operand, tie_symbolic_operand, tle_symbolic_operand,
3752         symbolic_operand, symbolic_memory_operand, label_ref_operand,
3753         sp64_medium_pic_operand, data_segment_operand,
3754         text_segment_operand, splittable_symbolic_memory_operand,
3755         reg_or_nonsymb_mem_operand, splittable_immediate_memory_operand,
3756         eq_or_neq, normal_comp_operator, noov_compare_op,
3757         noov_compare64_op, v9_regcmp_op, extend_op, cc_arithop,
3758         cc_arithopn, arith_operand, arith_4096_operand, arith_add_operand,
3759         const64_operand, const64_high_operand, arith11_operand,
3760         arith10_operand, arith_double_operand, arith_double_4096_operand,
3761         arith_double_add_operand, arith11_double_operand,
3762         arith10_double_operand, small_int, small_int_or_double,
3763         uns_small_int, uns_arith_operand, clobbered_register,
3764         input_operand, compare_operand): Delete.
3765         (sparc_emit_set_const32): Use predicates in assertion.  Remove special
3766         code for TARGET_ARCH64 && HOST_BITS_PER_WIDE_INT != 64.
3767         (sparc_emit_set_const64): Call gcc_unreachable if H_B_P_W_I == 32.
3768         (GEN_HIGHINT64, GEN_INT64): Delete.
3769         (sparc_emit_set_safe_HIGH64, gen_safe_SET64, gen_safe_OR64,
3770         gen_safe_XOR64): Adjust for above deletion.
3771         (sparc_emit_set_const64): Support only H_B_P_W_I == 64 and CONST_INTs.
3772         Use 'unsigned HOST_WIDE_INT' instead of 'long' for bitmask.
3773         (legitimate_constant_p): Use const_zero_operand instead.
3774         (sparc_extra_constraint_check): Likewise.
3775         * config/sparc/sparc.h (CONST_DOUBLE_OK_FOR_LETTER_P): Remove 'O'.
3776         (PREFERRED_RELOAD_CLASS): Use const_zero_operand.
3777         (PREDICATE_CODES): Delete.
3778         * config/sparc/sparc.md: Include predicates.md.
3779         (All patterns): Adjust for new predicate names.
3780         (cmpdi, cmpdi_sp64): Use arith_operand predicate.
3781         (movhi_const64_special, movsi_const64_special): Add 'K' constraint.
3782         (movdi): Use general_operand predicate.
3783         (movdi_sp64_dbl): Delete.
3784         (movdi_const64_special): Add 'N' constraint.
3785         (movdicc): Use arith10_operand predicate.
3786         (movdi_cc_sp64, movdi_cc_sp64_trunc): Use arith11_operand predicate.
3787         (movdi_cc_reg_sp64): Use arith10_operand predicate.
3788         (movdi_cc_reg_sp64_trunc): Delete.
3789         (cmp_zero_extract, cmp_zero_extract_sp64): Use small_int_operand.
3790         (adddi3_sp64, cmp_ccx_plus, cmp_ccx_plus_set): Use arith_operand.
3791         (subdi3_sp32): Delete.
3792         (subdi3_insn_sp32): Change to define_insn_and_split.
3793         (subdi3_sp64, cmp_minus_ccx, cmp_minus_ccx_set): Use arith_operand.
3794         (muldi3, muldi3_sp64, muldi3_v8plus): Likewise.
3795         (smulsi3_highpart_v8plus, const_smulsi3_highpart_v8plus,
3796         umulsi3_highpart_v8plus, const_umulsi3_highpart_v8plus): Use
3797         small_int_operand predicate.
3798         (divdi3, udivdi3): Use arith_operand predicate.
3799         (udivsi3, udivsi3_sp32, udivsi3_sp64): Use nonimmediate_operand.
3800         (and<V64I>3_sp64, ior<V64I>3_sp64, xor<V64I:mode>3_sp64,
3801         xor_not_<V64I:mode>_sp64) : Use arith_operand predicate.
3802         (xordi3_sp64_dbl): Delete.
3803         (cmp_ccx_arith_op, cmp_ccx_arith_op_set, cmp_ccx_xor_not,
3804         cmp_ccx_xor_not_set, cmp_ccx_arith_op_not, cmp_ccx_arith_op_not_set,
3805         cmp_ccx_neg, cmp_ccx_set_neg, one_cmpl<V64I>2_sp64, cmp_ccx_not,
3806         cmp_ccx_set_not): Use arith_operand predicate.
3807         (ashrsi3_extend2, lshrsi3_extend2 et al.): Use small_int_operand.
3808         * config/sparc/predicates.md: New file.
3809
3810 2005-04-21  Kazu Hirata  <kazu@cs.umass.edu>
3811
3812         PR tree-optimization/14846
3813         * fold-const.c (fold_single_bit_test_into_sign_test): New,
3814         split out from ...
3815         (fold_single_bit_test): ... here.
3816         (fold_binary): Call fold_single_bit_test_into_sign_test
3817         instead of fold_single_bit_test.
3818
3819 2005-04-20  James E Wilson  <wilson@specifixinc.com>
3820
3821         PR c++/20805
3822         * dwarf2out.c (gen_variable_die): Don't emit a specification if this
3823         is another declaration.
3824
3825 2005-04-21  Hans-Peter Nilsson  <hp@axis.com>
3826
3827         * config/cris/predicates.md: New file.
3828         * config/cris/cris-protos.h (cris_store_multiple_op_p)
3829         (cris_movem_load_rest_p): Declare.
3830         * config/cris/cris.c (cris_store_multiple_op): Return bool, not int.
3831         (cris_movem_load_rest_p): Ditto.  Globalize.
3832         (cris_bdap_operand, cris_bdap_biap_operand,
3833         cris_orthogonal_operator, cris_commutative_orth_op,
3834         cris_operand_extend_operator,
3835         cris_additive_operand_extend_operator, cris_extend_operator,
3836         cris_plus_or_bound_operator, cris_mem_op,
3837         cris_general_operand_or_symbol,
3838         cris_general_operand_or_gotless_symbol,
3839         cris_general_operand_or_plt_symbol, cris_mem_call_operand,
3840         cris_load_multiple_op): Remove predicate functions.
3841         (cris_symbol, cris_gotless_symbol) <case UNSPEC>: Return 0, don't
3842         abort, for UNSPECs other than CRIS_UNSPEC_PLT.
3843         * config/cris/cris.h (PREDICATE_CODES): Don't define.
3844         * config/cris/cris.md: Include predicates.md.
3845         ("call", "call_value"): Generate CONSTs of Pmode, not VOIDmode.
3846
3847 2005-04-20  Ian Lance Taylor  <ian@airs.com>
3848
3849         * c-common.def: Remove STMT_EXPR (moved to cp/cp-tree.def).
3850         * c-common.h (STMT_EXPR_STMT): Don't define.
3851         (STMT_EXPR_NO_SCOPE): Don't define.
3852         * c-dump.c (c_dump_tree): Don't handle STMT_EXPR.
3853         * c-pretty-print.c (pp_c_primary_expression): Likewise.
3854         (pp_c_expression): Likewise.
3855
3856 2005-04-20  Richard Henderson  <rth@redhat.com>
3857
3858         PR target/21100
3859         * config/i386/mmx.md (push<MMXMODE>1): Fix predicate thinko.
3860
3861 2005-04-20  Jeff Law  <law@redhat.com>
3862
3863         * reload1.c (reload): Ignore equivalences between pseudos and
3864         read only memory.
3865
3866 2005-04-20  Joseph S. Myers  <joseph@codesourcery.com>
3867
3868         PR c/12913
3869         * c-tree.h (struct c_label_list): Update comment.
3870         (struct c_label_context): Rename to struct c_label_context_se.
3871         (label_context_stack): Rename to label_context_stack_se.
3872         (C_DECL_UNJUMPABLE_VM, C_DECL_UNDEFINABLE_VM, struct
3873         c_label_context_vm, label_context_stack_vm, c_begin_vm_scope,
3874         c_end_vm_scope): New.
3875         (C_DECL_DECLARED_BUILTIN, C_DECL_USED): Use FUNCTION_DECL_CHECK.
3876         * c-decl.c (pop_scope): Call c_end_vm_scope.
3877         (pushdecl): Call c_begin_vm_scope for variably modified
3878         declarations.
3879         (define_label): Check for jumping into scope of identifier with
3880         variably modified type.  Push label on stack for those defined at
3881         current context of identifiers with variably modified type.
3882         (start_function): Create stack level for context of identifiers
3883         with variably modified type.
3884         (finish_function): Pop stack level for context of identifiers with
3885         variably modified type.
3886         * c-typeck.c (label_context_stack): Rename to
3887         label_context_stack_se.
3888         (label_context_stack_vm, c_begin_vm_scope, c_end_vm_scope): New.
3889         (c_finish_goto_label): Check for jumping into scope of identifier
3890         with variably modified type.  Push label on stack for those jumped
3891         to from current context of identifiers with variably modified
3892         type.
3893         (struct c_switch): Add blocked_vm.
3894         (c_start_case): Initialize blocked_vm.
3895         (do_case): Check blocked_vm.
3896         (c_finish_case): Add comment.
3897         (c_begin_stmt_expr, c_finish_stmt_expr): Update for renamed
3898         variable label_context_stack.
3899
3900 2005-04-20  Kazu Hirata  <kazu@cs.umass.edu>
3901
3902         * tree-ssa-phiopt.c (tree_ssa_phi_opt): Update calls to
3903         conditional_replacement, value_replacement, abs_replacement,
3904         minmax_replacement.
3905         (replace_phi_edge_with_variable): Remove argument BB.
3906         (conditional_replacement, value_replacement,
3907         minmax_replacement, abs_replacement): Remove argument PHI_BB.
3908         Update a call to replace_phi_edge_with_variable.
3909
3910         * tree-ssa-phiopt.c: Fix comments.
3911
3912 2005-04-20  Michael Matz  <matz@suse.de>
3913
3914         PR20973
3915         * reload.c (push_reload, find_dummy_reload): Check for uninitialized
3916         pseudos.
3917
3918 2005-04-20  Kazu Hirata  <kazu@cs.umass.edu>
3919
3920         * tree-ssa-phiopt.c: Fix comment typos.
3921
3922         PR tree-optimization/21116
3923         * tree-ssa-phiopt.c: Fix a typo.
3924
3925 2005-04-19  Richard Henderson  <rth@redhat.com>
3926
3927         * builtins.c (expand_builtin_sync_operation): Revert last change.
3928         * optabs.c (expand_bool_compare_and_swap): Compare vs old value,
3929         not vs new value.
3930         (expand_compare_and_swap_loop): Likewise.
3931         (expand_sync_operation): Remove fallback from NAND to AND; invert
3932         memory operand when expanding from cmpxchg.
3933         (expand_sync_fetch_operation): Likewise.
3934         * doc/extend.texi (Atomic Builtins): Fix docs for nand and
3935         compare-and-swap.
3936
3937         * config/alpha/alpha.c (alpha_split_atomic_op): Invert memory operand
3938         when implementing NAND.  Fix double-add for AFTER.
3939         * config/alpha/sync.md (sync_nand<I48MODE>): Invert memory operand.
3940         (sync_old_nand<I48MODE>, sync_new_nand<I48MODE>): Likewise.
3941         (sync_compare_and_swap<I48MODE>): Fix compare vs zero.  Return old
3942         memory value.
3943         (sync_lock_test_and_set<I48MODE>): Remove extra label and last
3944         memory barrier.
3945
3946         * config/i386/sync.md (sync_compare_and_swap<IMODE>): Fix pattern
3947         to return old memory value.
3948         (sync_compare_and_swap_cc<IMODE>): Likewise.
3949
3950         * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Early
3951         return pre-reload.  Don't consider output or anti dependencies.
3952         * config/ia64/sync.md (IMODE): New.
3953         (modesuffix): Add QI and HI.
3954         (memory_barrier): Simplify expansion.
3955         (sync_compare_and_swap<IMODE>): Use IMODE, not I48MODE.
3956         (cmpxchg_acq_<IMODE>): Likewise.
3957         (sync_lock_test_and_set<IMODE>): Likewise.
3958         (sync_lock_release<IMODE>): Likewise.
3959
3960 2005-04-19  James A. Morrison  <phython@gcc.gnu.org>
3961
3962         * fold-const.c (fold_binary): Fold ~(X ^ Y) to ~X ^ Y or X ^ ~Y if
3963         ~X or ~Y simplify.
3964
3965 2005-04-19  James A. Morrison  <phython@gcc.gnu.org>
3966
3967         * fold-const (fold_binary):  Fold ~X ^ ~ Y to X ^ Y.
3968
3969 2005-04-20  Michael Pogue  <michael.pogue@sun.com>
3970             Joseph S. Myers  <joseph@codesourcery.com>
3971
3972         * c.opt (Wint-to-pointer-cast, Wpointer-to-int-cast): New options.
3973         * c-typeck.c (build_c_cast): Check these options.
3974         * doc/invoke.texi: Document these options.
3975
3976 2005-04-20  Kazu Hirata  <kazu@cs.umass.edu>
3977
3978         * tree-ssa-phiopt.c: Update a comment about the pass.
3979
3980 2005-04-19  Kazu Hirata  <kazu@cs.umass.edu>
3981
3982         * tree-ssa-phiopt.c, config/arm/arm.c, config/fr30/fr30.md,
3983         config/mcore/mcore.c: Fix comment typos.
3984
3985 2005-04-19  Daniel Jacobowitz  <dan@codesourcery.com>
3986
3987         * Makefile.in (libgcc.mk): Pass GCC_FOR_TARGET.
3988         * mklibgcc.in: Use $GCC_FOR_TARGET instead of ./xgcc.
3989
3990 2005-04-19  Paul Brook  <paul@codesourcery.com>
3991
3992         * config/arm/arm.c (arm_init_libfuncs): Clear mod optabs. 
3993
3994 2005-04-19  Andrew Haley  <aph@redhat.com>
3995
3996         PR java/21022
3997         * dbxout.c (dbxout_type_fields): Check DECL_IGNORED_P before
3998         looking at a field's bitpos.
3999
4000 2005-04-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4001
4002         * system.h (fopen, fdopen, freopen): Define these to the unlocked
4003         libiberty functions.
4004
4005 2005-04-19  Kazu Hirata  <kazu@cs.umass.edu>
4006
4007         PR tree-optimization/21096
4008         * tree-ssa-copy.c (fini_copy_prop): Free cached_last_copy_of.
4009
4010 2005-04-19  Alan Modra  <amodra@bigpond.net.au>
4011
4012         PR target/21098
4013         * config/rs6000/rs6000.c (rs6000_elf_end_indicate_exec_stack): New.
4014         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Use the above.
4015
4016 2005-04-19  Alexandre Oliva  <aoliva@redhat.com>
4017
4018         * tree-cfg.c (dump_function_to_file): Use cfun info only if it
4019         refers to the function being dumped.
4020
4021 2005-04-18  Daniel Jacobowitz  <dan@codesourcery.com>
4022
4023         * varasm.c (assemble_start_function): Remove reset of in_section.
4024
4025 2005-04-18  James A. Morrison  <phython@gcc.gnu.org>
4026
4027         PR tree-optimization/21085
4028         * fold-const (fold_binary): Don't change X % -C to X % C if C has
4029         overflowed.
4030
4031 2005-04-19  Ben Elliston  <bje@au.ibm.com>
4032
4033         * doc/invoke.texi (Optimize Options): Refer to the correct
4034         optimisation flag -ftree-dominator-opts, not -ftree-dom.
4035
4036 2005-04-18  Christopher Jaillet <christophe.jaillet@wanadoo.fr>
4037
4038         * config/rs6000/rs6000.c (machopic_output_stub):  Increase
4039         alloca argument to be big enough.
4040
4041 2005-04-18  Alexandre Oliva  <aoliva@redhat.com>
4042
4043         PR middle-end/21049
4044         * tree-cfg.c (dump_function_to_file): Do not crash if cfun or
4045         cfun->cfg are NULL.
4046
4047 2005-04-18  Tom Tromey  <tromey@redhat.com>
4048
4049         * cgraphunit.c (cgraph_finalize_compilation_unit): Fix a comment
4050         typo.
4051
4052 2005-04-18  Richard Henderson  <rth@redhat.com>
4053
4054         * config/alpha/alpha.c (alpha_split_atomic_op): New.
4055         (alphaev5_insn_pipe): Add LD_L, ST_C, MB types.
4056         (alphaev4_insn_pipe): Likewise.  Correct IST and LDSYM pipes.
4057         * config/alpha/alpha-protos.h: Update.
4058         * config/alpha/alpha.md (UNSPECV_MB, UNSPECV_LL, UNSPECV_SC): New.
4059         (UNSPECV_ATOMIC, UNSPECV_CMPXCHG, UNSPECV_XCHG): New.
4060         (attr type): Add ld_l, st_c, mb.
4061         (andsi_internal, andnotsi3, iorsi_internal, one_cmplsi_internal,
4062         iornotsi3, xorsi_internal, xornotsi3): New.
4063         * config/alpha/ev4.md (ev4_ld): Add ld_l.
4064         (ev4_ist_c, ev4_mb): New.
4065         * config/alpha/ev5.md (ev5_st): Add st_c, mb.
4066         (ev5_ld_l): New.
4067         * config/alpha/ev6.md (ev6_ild): Add ld_l.
4068         (ev6_ist): Add st_c.
4069         (ev6_mb): New.
4070         * config/alpha/sync.md: New file.
4071
4072 2005-04-18  Richard Henderson  <rth@redhat.com>
4073
4074         * builtins.c (expand_builtin_sync_operation): Fold nand to and
4075         for constants.
4076
4077         * optabs.c (expand_sync_operation): Fix typo expanding nand to and.
4078
4079 2005-04-18  Devang Patel  <dpatel@apple.com>
4080
4081         * config/rs6000/atlivec.md (mulv4si3): New pattern.
4082         
4083 2005-04-18  James A. Morrison  <phython@gcc.gnu.org>
4084
4085         PR tree-optimization/20922
4086         * fold-const.c (fold_binary): Fold X - c > X and X + c < X to false.
4087         Fold X + c >= X and fold X - c <= X to true.
4088
4089 2005-04-18  James A. Morrison  <phython@gcc.gnu.org>
4090
4091         * config/ia64/unwind-ia64.c (emergency_reg_state_free): Make an
4092         unsigned int.
4093         (emergency_labeled_state_free): Likewise.
4094
4095 2005-04-18  Nick Clifton  <nickc@redhat.com>
4096
4097         * config/h8300/h8300.md (jump): Remove prescan parameter from
4098         calls to final_scan_insn.
4099
4100         * config/arc/arc.c (arc_output_function_epilogue): Remove prescan
4101         parameter from calls to final_scan_insn.
4102
4103         * config.gcc (m68hc12): Use the m68hc11.opt file for target
4104         specific options.
4105         (v850e, v850e1): Use the v850.opt file for target specific
4106         options.
4107
4108 2005-04-18  Kazu Hirata  <kazu@cs.umass.edu>
4109
4110         PR tree-optimization/21001
4111         * tree-optimize.c (init_tree_optimization_passes): Move the
4112         first pass_forwprop immediately before pass_vrp.
4113
4114 2005-04-17  Ian Lance Taylor  <ian@airs.com>
4115
4116         * c-common.def (SIZEOF_EXPR, ARROW_EXPR, ALIGNOF_EXPR): Remove.
4117         * c-common.c (c_sizeof_or_alignof_type): Change second parameter
4118         from enum tree_code op to bool is_sizeof.
4119         * c-common.h (c_sizeof_or_alignof_type): Update declaration.
4120         (c_sizeof, c_alignof): Update calls to c_sizeof_or_alignof_type.
4121         * c-pretty-print.c (pp_c_postfix_expression): Remove ARROW_EXPR
4122         case.
4123         (pp_c_unary_expression): Remove SIZEOF_EXPR and ALIGNOF_EXPR
4124         cases.
4125         (pp_c_expression): Remove ARROW_EXPR, SIZEOF_EXPR, and
4126         ALIGNOF_EXPR cases.
4127
4128 2005-04-17  Ian Lance Taylor  <ian@airs.com>
4129
4130         * system.h: Poison DONT_ACCESS_GBLS_AFTER_EPILOGUE.
4131
4132 2005-04-17  Richard Henderson  <rth@redhat.com>
4133
4134         * config/alpha/alpha.c (va_list_skip_additions): Only define if
4135         TARGET_ABI_OSF.
4136         (TARGET_STDARG_OPTIMIZE_HOOK): Likewise.
4137         (alpha_stdarg_optimize_hook): Likewise.  Allow for one more round
4138         of indirection through ssa names while looking for the gpr counter
4139         field.
4140         (alpha_setup_incoming_varargs) <TARGET_ABI_OSF>: Make use of the
4141         saved va_list_gpr_size and va_list_fpr_size.
4142
4143 2005-04-17  Kazu Hirata  <kazu@cs.umass.edu>
4144
4145         * tree-vrp.c (compare_values): Check that VAL1 and VAL2 are
4146         both pointers or both integers.
4147
4148         * tree-vrp.c (maybe_add_assert_expr): Don't assert
4149         ASSERT_EXPRs for single-use variable.
4150
4151         * tree-into-ssa.c: Fix a comment typo.
4152
4153 2005-04-17  Richard Sandiford  <rsandifo@redhat.com>
4154
4155         * config/mips/iris6.h (DRIVER_SELF_SPECS): Check -march as well as
4156         -mipsN before forcing a default of -mips2.
4157
4158 2005-04-17  Kazu Hirata  <kazu@cs.umass.edu>
4159
4160         * predict.h (IS_TAKEN): Remove.
4161         * rtl.h (NOTE_PREDICTION): Likewise.
4162
4163         * modulo-sched.c (CFG_HOOKS): Remove.
4164
4165         * c-parser.c (N_C_TTYPES): Remove.
4166
4167         * tree-flow-inline.h (get_stmt_operands): Remove.
4168         * lambda-code.c, tree-ssa-loop-unswitch.c,
4169         tree-ssa-operands.c, tree-ssa-pre.c, tree-ssa-propagate.c,
4170         tree-ssa-sink.c, tree-ssa.c, tree-tailcall.c,
4171         tree-vect-transform.c, tree-vectorizer.c, tree-vrp.c): Remove
4172         calls to get_stmt_operands.
4173         * doc/tree-ssa.texi: Don't mention get_stmt_operands.
4174
4175 2005-04-17  Richard Henderson  <rth@redhat.com>
4176
4177         PR target/20375
4178         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Advance a copy
4179         of CUMULATIVE_ARGS past the last named argument.
4180         (alpha_va_start): Expect pretend_args_size only if strictly less than
4181         6 named arguments.
4182
4183 2005-04-17  Kazu Hirata  <kazu@cs.umass.edu>
4184
4185         PR middle-end/21024
4186         * builtins.c (expand_builtin_strcat): Convert the result of
4187         strlen to the right type.
4188         * fold-const.c (fold_binary) <PLUS_EXPR>: Use fold_convert to
4189         avoid creating type mismatches.
4190         <GE_EXPR>: Pass op0 and op1 to fold_build2 to avoid creating
4191         type mismatches.
4192
4193         * c-lex.c (WCHAR_TYPE_SIZE, WCHAR_BYTES): Remove.
4194
4195 2005-04-16  Richard Henderson  <rth@redhat.com>
4196
4197         PR target/21051
4198         * builtins.c (expand_builtin) <BUILT_IN_BOOL_COMPARE_AND_SWAP_*>:
4199         Use the mode of boolean_type_node when the user doesn't provide one.
4200         * config/ia64/sync.md (sync_lock_release<I48MODE>): Use operand 1.
4201
4202 2005-04-16  Alexandre Oliva  <aoliva@redhat.com>
4203
4204         PR target/20126
4205         * loop.c (loop_givs_rescan): Handle non-replaceable (plus (reg)
4206         (const)).
4207
4208         * tree-scalar-evolution.c (interpret_rhs_modify_expr): Fix typo in
4209         comment.
4210
4211 2005-04-16  Roger Sayle  <roger@eyesopen.com>
4212             Steven Bosscher  <stevenb@suse.de>
4213
4214         * fold-const.c (fold_binary_to_constant): Delete obsolete comment.
4215         (fold_unary_to_constant): Likewise.
4216
4217 2005-04-16  Kazu Hirata  <kazu@cs.umass.edu>
4218
4219         * basic-block.h: Adjust the value of PROP_SCAN_DEAD_STORES,
4220         PROP_ASM_SCAN.
4221
4222 2005-04-16  Gerald Pfeifer  <gerald@pfeifer.com>
4223
4224         * doc/install.texi (Specific): Avoid using asterisks in @anchor
4225         names related to target triplets.
4226         Remove i?86-*-esix from platform directory.
4227         Remove powerpc-*-eabiaix from platform directory.
4228
4229 2005-04-16  Joseph S. Myers  <joseph@codesourcery.com>
4230
4231         PR middle-end/20491
4232         * config/ia64/ia64.c (rtx_needs_barrier): Recurse instead of
4233         falling through from SUBREG case to REG.
4234
4235 2005-04-15  Roger Sayle  <roger@eyesopen.com>
4236
4237         * fold-const.c (fold_relational_hi_lo): Delete function and prototype.
4238         (fold_binary): Update comment mentioning fold_relational_hi_lo.
4239         (fold_binary_to_constant): Simplify using fold_binary.
4240         (fold_unary_to_constant): Likewise, simplify using fold_unary.
4241
4242 2005-04-15  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4243
4244         * gthr-posix.c (pthread_cancel): Define.
4245         (pthread_mutexattr_init): Likewise.
4246         (pthread_mutexattr_settype): Likewise.
4247         (pthread_mutexattr_destroy): Likewise.
4248
4249 2005-04-15  David S. Miller  <davem@davemloft.net>
4250
4251         PR target/20673
4252         * config/sparc/sparc.h (sparc_hard_reg_printed): Mark as GTY(()).
4253
4254 2005-04-15  Kazu Hirata  <kazu@cs.umass.edu>
4255
4256         PR tree-optimization/21031
4257         * tree-ssa-forwprop.c (ssa_name_defined_by_comparison_p): New.
4258         (forward_propagate_into_cond_1): Call it.  Forward propagate
4259         integer-integer casts into COND_EXPRs.
4260
4261 2005-04-15  Dave Korn  <dave.korn@artimi.com>
4262
4263         * gcc.c (default_compilers): Clarify obscure error message when
4264         reading from standard input.
4265
4266 2005-04-15  Kazu Hirata  <kazu@cs.umass.edu>
4267
4268         * basic-block.h (PROP_EQUAL_NOTES): Remove.
4269         * flow.c (propagate_one_insn): Don't use PROP_EQUAL_NOTES.
4270
4271         * tree-ssa-alias.c (init_alias_info): Remove a call to
4272         get_stmt_operands.
4273
4274 2005-04-15  Andrew MacLeod  <amacleod@redhat.com>
4275
4276         * tree-vect-analyze.c (vect_stmt_relevant_p): Process immediate uses
4277         of non-virtual PHI nodes like we use to.
4278
4279 2005-05-15  Paolo Bonzini  <bonzini@gnu.org>
4280
4281         * genattrtab.c (ATTR_EQ_ATTR_P): Remove.
4282         (attr_copy_rtx): Do not use it.
4283
4284 2005-04-15  Andrew Macleod  <amacleod@redhat.com>
4285
4286         * doc/tree-ssa.texi: Grammer/abbreviation updates.
4287
4288 2005-04-15  Diego Novillo  <dnovillo@redhat.com>
4289
4290         * tree-vect-transform.c (vectorizable_store): Mark necessary
4291         objects in the vectorized store needing renaming.  Update the
4292         SSA graph for V_MAY_DEF operands in the original store.
4293
4294 2005-04-14  Daniel Berlin <dberlin@dberlin.org>
4295
4296         * tree-ssa-pre.c (compute_avail): It's okay to have
4297         TREE_INVARIANT's here, and value number the resulting expressions.
4298         (create_expression_by_pieces): Make sure operands that were
4299         min_invariant when we started, stay that way.
4300
4301 2005-04-15  David Edelsohn  <edelsohn@gnu.org>
4302
4303         * doc/install.texi (*-ibm-aix*): Add comment about system limits.
4304
4305 2005-04-15  Kazu Hirata  <kazu@cs.umass.edu>
4306
4307         PR tree-optimization/20936.
4308         * tree-ssa-ccp.c (visit_assignment): Fix a typo.
4309
4310 2005-04-15  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
4311
4312         * doc/invoke.texi: Fix typos.
4313         * doc/md.texi: Likewise.
4314         * doc/rtl.texi: Likewise.
4315         * doc/sourcebuild.texi: Likewise.
4316         * doc/tm.texi: Likewise.
4317
4318 2005-04-15  Uros Bizjak  <uros@kss-loka.si>
4319
4320         PR tree-optimization/21004
4321         * convert.c (convert_to_integer): Convert ceilf, ceill, floorf
4322         and floorl in c99 mode only.
4323         * builtins.c (expand_builtin_int_roundingfn): Assert that
4324         fallback_fndecl is not NULL_TREE.
4325
4326 2005-04-15  Kazu Hirata  <kazu@cs.umass.edu>
4327
4328         * cfgrtl.c (purge_all_dead_edge): Remove an unused argument.
4329         * basic-block.h: Update the prototype for
4330         purge_all_dead_edges.
4331         * cfgexpand.c (tree_expand_cfg): Update a call to
4332         purge_all_dead_edges.
4333         * combine.c (combine_instructions): Likewise.
4334         * passes.c (rest_of_handle_old_regalloc, rest_of_handle_cse,
4335         rest_of_handle_cse2, rest_of_handle_gcse,
4336         rest_of_handle_postreload): likewise.
4337
4338 2005-04-15  Alexandre Oliva  <aoliva@redhat.com>
4339
4340         PR middle-end/20739
4341         * gimplify.c (gimplify_addr_expr): Compensate for removal of
4342         e.g. cv-qualification conversions.
4343
4344 2005-04-14  Mike Stump  <mrs@apple.com>
4345
4346         * config/darwin-c.c (framework_construct_pathname): We must
4347         find all headers of a framework in the first instance of it
4348         found in the seach path.
4349
4350 2005-04-14  Kazu Hirata  <kazu@cs.umass.edu>
4351
4352         PR tree-optimization/21021
4353         * tree-vrp.c (compare_values): Work around a bug in the front
4354         end that produces a comparison of mismatched types.
4355
4356 2004-04-14  Richard Henderson  <rth@redhat.com>
4357
4358         * config/ia64/ia64.h (enum fetchop_code): Remove.
4359         (enum ia64_builtins): Move ...
4360         * config/ia64/ia64.c (enum ia64_builtins): ... here.  Remove all
4361         members except BSP and FLUSHRS.
4362         (ia64_init_builtins): Remove __sync builtins.
4363         (ia64_expand_builtin): Likewise.
4364         (ia64_expand_fetch_and_op, ia64_expand_op_and_fetch): Remove.
4365         (ia64_expand_compare_and_swap, ia64_expand_lock_test_and_set): Remove.
4366         (ia64_expand_lock_release): Remove.
4367         * config/ia64/ia64.md (mf): Move to sync.md.
4368         (mf_internal, fetchadd_acq_si, fetchadd_acq_di, cmpxchg_acq_si,
4369         cmpxchg_acq_di, xchgsi, xchgdi): Likewise.
4370         * config/ia64/sync.md: New file.
4371         (memory_barrier): Rename from mf.
4372         (fetchadd_acq_<I48MODE>): Macroize from _si/_di patterns.
4373         (cmpxchg_acq_<I48MODE>): Likewise.
4374         (sync_lock_test_and_set<I48MODE>): Likewise.
4375
4376         * config/ia64/ia64intrin.h: Define nothing for C; limit #defines
4377         to c++.  Remove __sync* declarations.  s/_si/_4/.  s/_di/_8/.
4378
4379 2004-04-14  Richard Henderson  <rth@redhat.com>
4380
4381         * config/i386/i386.c (x86_cmpxchg, x86_xadd): New.
4382         (ix86_compare_emitted): New.
4383         (ix86_expand_compare): Use ix86_compare_emitted if set.
4384         (ix86_expand_setcc): Only emit REG_EQUAL if both ix86_compare_op0
4385         and ix86_compare_op0 are set.
4386         * config/i386/i386.h (x86_cmpxchg, x86_xadd): Declare.
4387         (TARGET_CMPXCHG, TARGET_XADD): New.
4388         (ix86_compare_emitted): Declare.
4389         * config/i386/i386.md: Include sync.md
4390         (UNSPECV_CMPXCHG_1, UNSPECV_CMPXCHG_2): New.
4391         (UNSPECV_XCHG, UNSPECV_LOCK): New.
4392         * config/i386/sync.md: New file.
4393
4394 2004-04-14  Richard Henderson  <rth@redhat.com>
4395
4396         PR middle-end/14311
4397         * builtin-types.def (BT_BOOL, BT_VOLATILE_PTR, BT_I1, BT_I2,
4398         BT_I4, BT_I8, BT_FN_VOID_VPTR, BT_FN_I1_VPTR_I1, BT_FN_I2_VPTR_I2,
4399         BT_FN_I4_VPTR_I4, BT_FN_I8_VPTR_I8, BT_FN_BOOL_VPTR_I1_I1,
4400         BT_FN_BOOL_VPTR_I2_I2, BT_FN_BOOL_VPTR_I4_I4, BT_FN_BOOL_VPTR_I8_I8,
4401         BT_FN_I1_VPTR_I1_I1, BT_FN_I2_VPTR_I2_I2, BT_FN_I4_VPTR_I4_I4,
4402         BT_FN_I8_VPTR_I8_I8): New.
4403         * builtins.def (DEF_SYNC_BUILTIN): New.
4404         (BUILT_IN_FETCH_AND_ADD_N, BUILT_IN_FETCH_AND_ADD_1,
4405         BUILT_IN_FETCH_AND_ADD_2, BUILT_IN_FETCH_AND_ADD_4,
4406         BUILT_IN_FETCH_AND_ADD_8, BUILT_IN_FETCH_AND_SUB_N,
4407         BUILT_IN_FETCH_AND_SUB_1, BUILT_IN_FETCH_AND_SUB_2,
4408         BUILT_IN_FETCH_AND_SUB_4, BUILT_IN_FETCH_AND_SUB_8,
4409         BUILT_IN_FETCH_AND_OR_N, BUILT_IN_FETCH_AND_OR_1,
4410         BUILT_IN_FETCH_AND_OR_2, BUILT_IN_FETCH_AND_OR_4,
4411         BUILT_IN_FETCH_AND_OR_8, BUILT_IN_FETCH_AND_AND_N,
4412         BUILT_IN_FETCH_AND_AND_1, BUILT_IN_FETCH_AND_AND_2,
4413         BUILT_IN_FETCH_AND_AND_4, BUILT_IN_FETCH_AND_AND_8,
4414         BUILT_IN_FETCH_AND_XOR_N, BUILT_IN_FETCH_AND_XOR_1,
4415         BUILT_IN_FETCH_AND_XOR_2, BUILT_IN_FETCH_AND_XOR_4,
4416         BUILT_IN_FETCH_AND_XOR_8, BUILT_IN_FETCH_AND_NAND_N,
4417         BUILT_IN_FETCH_AND_NAND_1, BUILT_IN_FETCH_AND_NAND_2,
4418         BUILT_IN_FETCH_AND_NAND_4, BUILT_IN_FETCH_AND_NAND_8,
4419         BUILT_IN_ADD_AND_FETCH_N, BUILT_IN_ADD_AND_FETCH_1,
4420         BUILT_IN_ADD_AND_FETCH_2, BUILT_IN_ADD_AND_FETCH_4,
4421         BUILT_IN_ADD_AND_FETCH_8, BUILT_IN_SUB_AND_FETCH_N,
4422         BUILT_IN_SUB_AND_FETCH_1, BUILT_IN_SUB_AND_FETCH_2,
4423         BUILT_IN_SUB_AND_FETCH_4, BUILT_IN_SUB_AND_FETCH_8,
4424         BUILT_IN_OR_AND_FETCH_N, BUILT_IN_OR_AND_FETCH_1,
4425         BUILT_IN_OR_AND_FETCH_2, BUILT_IN_OR_AND_FETCH_4,
4426         BUILT_IN_OR_AND_FETCH_8, BUILT_IN_AND_AND_FETCH_N,
4427         BUILT_IN_AND_AND_FETCH_1, BUILT_IN_AND_AND_FETCH_2,
4428         BUILT_IN_AND_AND_FETCH_4, BUILT_IN_AND_AND_FETCH_8,
4429         BUILT_IN_XOR_AND_FETCH_N, BUILT_IN_XOR_AND_FETCH_1,
4430         BUILT_IN_XOR_AND_FETCH_2, BUILT_IN_XOR_AND_FETCH_4,
4431         BUILT_IN_XOR_AND_FETCH_8, BUILT_IN_NAND_AND_FETCH_N,
4432         BUILT_IN_NAND_AND_FETCH_1, BUILT_IN_NAND_AND_FETCH_2,
4433         BUILT_IN_NAND_AND_FETCH_4, BUILT_IN_NAND_AND_FETCH_8,
4434         BUILT_IN_BOOL_COMPARE_AND_SWAP_N, BUILT_IN_BOOL_COMPARE_AND_SWAP_1,
4435         BUILT_IN_BOOL_COMPARE_AND_SWAP_2, BUILT_IN_BOOL_COMPARE_AND_SWAP_4,
4436         BUILT_IN_BOOL_COMPARE_AND_SWAP_8, BUILT_IN_VAL_COMPARE_AND_SWAP_N,
4437         BUILT_IN_VAL_COMPARE_AND_SWAP_1, BUILT_IN_VAL_COMPARE_AND_SWAP_2,
4438         BUILT_IN_VAL_COMPARE_AND_SWAP_4, BUILT_IN_VAL_COMPARE_AND_SWAP_8,
4439         BUILT_IN_LOCK_TEST_AND_SET_N, BUILT_IN_LOCK_TEST_AND_SET_1,
4440         BUILT_IN_LOCK_TEST_AND_SET_2, BUILT_IN_LOCK_TEST_AND_SET_4,
4441         BUILT_IN_LOCK_TEST_AND_SET_8, BUILT_IN_LOCK_RELEASE_N,
4442         BUILT_IN_LOCK_RELEASE_1, BUILT_IN_LOCK_RELEASE_2,
4443         BUILT_IN_LOCK_RELEASE_4, BUILT_IN_LOCK_RELEASE_8,
4444         BUILT_IN_SYNCHRONIZE: New.
4445         * builtins.c (called_as_built_in): Rewrite from CALLED_AS_BUILT_IN
4446         as a function.  Accept __sync_ as a prefix as well.
4447         (expand_builtin_sync_operation, expand_builtin_compare_and_swap,
4448         expand_builtin_lock_test_and_set, expand_builtin_synchronize,
4449         expand_builtin_lock_release): New.
4450         (expand_builtin): Call them.
4451         * c-common.c (DEF_BUILTIN): Don't require __builtin_ prefix if
4452         neither BOTH_P nor FALLBACK_P are defined.
4453         (builtin_type_for_size): New.
4454         (sync_resolve_size, sync_resolve_params, sync_resolve_return): New.
4455         (resolve_overloaded_builtin): New.
4456         * c-common.h (resolve_overloaded_builtin): Declare.
4457         (builtin_type_for_size): Declare.
4458         * c-typeck.c (build_function_call): Invoke resolve_overloaded_builtin.
4459         * expr.c (sync_add_optab, sync_sub_optab, sync_ior_optab,
4460         sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab,
4461         sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab,
4462         sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab,
4463         sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab,
4464         sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap,
4465         sync_compare_and_swap_cc, sync_lock_test_and_set,
4466         sync_lock_release): New.
4467         * optabs.h: Declare them.
4468         * expr.h (expand_val_compare_and_swap, expand_bool_compare_and_swap,
4469         expand_sync_operation, expand_sync_fetch_operation,
4470         expand_sync_lock_test_and_set): Declare.
4471         * genopinit.c (optabs): Add sync optabs.
4472         * optabs.c (init_optabs): Initialize sync optabs.
4473         (expand_val_compare_and_swap_1, expand_val_compare_and_swap,
4474         expand_bool_compare_and_swap, expand_compare_and_swap_loop,
4475         expand_sync_operation, expand_sync_fetch_operation,
4476         expand_sync_lock_test_and_set): New.
4477         * doc/extend.texi (Atomic Builtins): New section
4478         * doc/md.texi (Standard Names): Add sync patterns.
4479
4480 2005-04-14  Alexandre Oliva  <aoliva@redhat.com>
4481
4482         * tree-eh.c (lower_try_finally_copy): Generate new code in
4483         response to goto_queue entries as if the queue was sorted by
4484         index, not pointers.
4485         (lower_try_finally_switch): Likewise.
4486
4487 2005-04-14  Richard Henderson  <rth@redhat.com>
4488
4489         * config/i386/i386.c (ix86_expand_sse_cmp): Split out from ...
4490         (ix86_expand_sse_movcc): ... here.  Take cmp as a pre-computed
4491         register.
4492         (ix86_expand_fp_movcc): Update to match.
4493         (ix86_expand_fp_vcond, ix86_expand_int_vcond): New.
4494         * config/i386/i386-protos.h: Update.
4495         * config/i386/sse.md (vcondv4sf, vcondv2df): New.
4496         (vcond<SSEMODE124>, vcondu<SSEMODE12>): New.
4497
4498 2005-04-14  Joseph S. Myers  <joseph@codesourcery.com>
4499
4500         * doc/cpp.texi, doc/install.texi: Change references to GCC 3.5 to
4501         refer to 4.0.
4502
4503 2005-04-14  Julian Brown  <julian@codesourcery.com>
4504
4505         * Revert elfos.h part of my patch from 2005-04-13 for causing libstdc++
4506         link failures on ppc64 Linux.
4507
4508 2005-04-14  Andreas Krebbel  <krebbel1@de.ibm.com>
4509
4510         * config.gcc: Set cpu_type for s390.
4511
4512 2005-04-14  Daniel Berlin  <dberlin@dberlin.org>
4513
4514         Fix PR tree-optimization/20963
4515         * tree-ssa-pre.c (compute_avail): Remove special case for
4516         TREE_INVARIANT.
4517         (create_expression_by_pieces): Add value numbers for forced out
4518         statements.
4519
4520 2005-04-14  Hans-Peter Nilsson  <hp@axis.com>
4521
4522         * config/cris/cris.md: Replace references to (reg:SI 16) with
4523         (reg:SI CRIS_SRP_REGNUM).
4524
4525 2005-04-14  Kazu Hirata  <kazu@cs.umass.edu>
4526
4527         PR tree-optimization/20657
4528         * tree-vrp.c (extract_range_from_expr): Notice INTEGER_CST to
4529         create an appropriate range from it.
4530
4531 2005-04-14  Uros Bizjak  <uros@kss-loka.si>
4532
4533         * reg-stack.c (subst_stack_regs_pat): Handle <UNSPEC_FIST_FLOOR> and
4534         <UNSPEC_FIST_CEIL> case.
4535
4536         * config/i386/i386.md (UNSPEC_FIST_FLOOR, UNSPEC_FIST_CEIL): New.
4537         (*fist<mode>2_floor_1, fistdi2_floor, fistdi2_floor_with_temp)
4538         (fist<mode>2_floor, fist<mode>2_floor_with_temp): New isns patterns
4539         to implement lfloor and llfloor built-ins as x87 intrinsic function.
4540         (fistdi2_floor, fist<mode>2_floor splitters): New splitters.
4541         (lfloor<mode>2): New expanders.
4542         (*fist<mode>2_ceil_1, fistdi2_ceil, fistdi2_ceil_with_temp)
4543         (fist<mode>2_ceil, fist<mode>2_ceil_with_temp): New isns patterns
4544         to implement lceil and llceil built-ins as x87 intrinsic function.
4545         (fistdi2_ceil, fist<mode>2_ceil splitters): New splitters.
4546         (lceil<mode>2): New expanders.
4547
4548 2005-04-14  Uros Bizjak  <uros@kss-loka.si>
4549
4550         * convert.c (convert_to_integer): Convert (long int)trunc{,f,l},
4551         and (long long int)ceil{,f,l} into FIX_TRUNC_EXPR.
4552
4553 2005-04-14  Ulrich Weigand  <uweigand@de.ibm.com>
4554
4555         PR target/20927
4556         * config/s390/s390-modes.def: Define TFmode.
4557
4558 2005-04-13  Richard Sandiford  <rsandifo@redhat.com>
4559
4560         * config/mips/mips.h (ASM_OUTPUT_CASE_LABEL): Delete.
4561         (JUMP_TABLES_IN_TEXT_SECTION): Define.
4562         * config/mips/mips.c (mips16_insn_length): Remove reference to
4563         JUMP_TABLES_IN_TEXT_SECTION.
4564
4565 2005-04-13 Fariborz Jahanian <fjahanian@apple.com>
4566
4567         * simplify-rtx.c (simplify_binary_operation_1): Return
4568         scalar or vector of constant 0, depending on the xor's
4569         mode.
4570
4571 2005-04-13  Dale Johannesen  <dalej@apple.com>
4572
4573         * objc/Make-lang.in (objc-lang.o):  Depend on tree-gimple.h.
4574         (objc-act.o):  Ditto.
4575         * objc/objc-act.c (objc_gimplify_expr):  New.
4576         (objc_get_callee_fndecl):  New.
4577         * objc/objc-act.h:  Include tree-gimple.h.  Declare new functions.
4578         * objc/objc-lang.c (LANG_HOOKS_GIMPLIFY_EXPR):  Define.
4579         (LANG_HOOKS_GET_CALLEE_FNDECL):  Define.
4580
4581 2005-04-13  Devang Patel  <dpatel@apple.com>
4582
4583         * tree-if-conv.c (tree_if_convert_cond_expr): Do not create extra
4584         temp variables.
4585
4586 2005-04-13  Hans-Peter Nilsson  <hp@axis.com>
4587
4588         CRIS prologue as RTL.
4589         * config/cris/cris-protos.h (cris_emit_movem_store)
4590         (cris_expand_prologue): Prototype.
4591         * config/cris/cris.c (struct machine_function): New member
4592         stdarg_regs.
4593         (cfa_label_num, cris_target_asm_function_prologue): Remove.
4594         (TARGET_ASM_FUNCTION_PROLOGUE): Don't override.
4595         (cris_general_operand_or_gotless_symbol): Accept CRIS_UNSPEC_GOT.
4596         (cris_load_multiple_op, cris_return_address_on_stack)
4597         (cris_return_address_on_stack_for_return): ISO-Cify.
4598         (cris_store_multiple_op): New predicate function.
4599         (cris_expand_prologue, cris_emit_movem_store): New functions.
4600         (cris_print_operand) <case 'O'>: Handle modifications other than
4601         post-increment.
4602         (cris_symbol, cris_got_symbol): Return 0 for CRIS_UNSPEC_GOT.
4603         (cris_gotless_symbol): Return 1 for CRIS_UNSPEC_GOT.
4604         (cris_gen_movem_load): Rearrange slightly to make local variable
4605         src a parameter, removing osrc.
4606         (cris_setup_incoming_varargs): Set machine_function member
4607         stdarg_regs to correspond to the number of registers that need to
4608         be saved.
4609         * config/cris/cris.h (EXTRA_CONSTRAINT_S): Accept
4610         CRIS_UNSPEC_GOT.
4611         (PREDICATE_CODES): Add cris_store_multiple_op.  Make
4612         cris_general_operand_or_gotless_symbol accept UNSPEC.
4613         * config/cris/cris.md (CRIS_UNSPEC_GOT): New constant.
4614         ("*movsi_internal") <alternative 8>: Handle CRIS_UNSPEC_GOT.
4615         ("*cris_store_multiple"): New pattern.  Tweak common comment above
4616         this and "*cris_load_multiple".
4617         ("prologue"): New define_expand.
4618
4619         * config/cris/cris.md ("epilogue"): Conditionalize on
4620         TARGET_PROLOGUE_EPILOGUE.
4621
4622 2005-04-13  Steve Ellcey  <sje@cup.hp.com>
4623
4624         PR target/20924
4625         * config/ia64/ia64.md (divsf3_internal_lat): Generate frcpa with
4626         fpsr 0 instead of fpsr 1.
4627         (divsf3_internal_thr): Ditto.
4628         (divdf3_internal_lat): Ditto.
4629         (divdf3_internal_thr): Ditto.
4630         (divxf3_internal_lat): Ditto.
4631         (divxf3_internal_thr): Ditto.
4632
4633 2005-04-13  Kazu Hirata  <kazu@cs.umass.edu>
4634
4635         PR tree-optimization/20913
4636         * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Fold COND_EXPR.
4637
4638         PR tree-optimization/20702
4639         * tree-vrp.c (maybe_add_assert_expr): Recurse into
4640         dominator children that haven't been walked into.
4641
4642 2005-04-13  Julian Brown  <julian@codesourcery.com>
4643
4644         * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK from
4645         being used for symbols with vague linkage when HAVE_GAS_COMDAT_GROUP
4646         is true.
4647
4648 2005-04-13  Kazu Hirata  <kazu@cs.umass.edu>
4649
4650         * basic-block.h, tree-ssa-uncprop.c, varasm.c,
4651         config/i386/sse.md: Fix comment typos.
4652
4653         * genattrtab.c (NULL_ATTR): Remove.
4654         * ifcvt.c (NULL_EDGE): Likewise.
4655
4656         * rtl.h (RTX_EXPR_FIRST, RTX_EXPR_LAST): Remove.
4657
4658         * rtl.h (NOTE_PREDICTION_ALG, NOTE_PREDICTION_FLAGS,
4659         NOTE_PREDICT): Remove.
4660
4661 2005-04-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
4662
4663         * configure.ac (gcc_AC_CHECK_DECLS): Add vsnprintf.
4664         * configure: Regenerate.
4665         * config.in: Likewise.
4666         * system.h: Declare vsnprintf if not already declared.
4667
4668 2005-04-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
4669
4670         * optc-gen.awk: Handle stand-alone Mask records.
4671         * opth-gen.awk: Likewise.
4672         * doc/options.texi (Option file format): Document them.
4673         * config.gcc (sparc-*-netbsdelf*, sparc-*-linux*, sparc64-*-freebsd*,
4674         sparc64-*-linux*, sparc64-*-netbsd*): Add long-double-switch.opt.
4675         (sparc64-*-openbsd*, sparc64-*-elf*): Add little-endian.opt.
4676         * config/sparc/sparc.h (MASK_FPU, MASK_UNALIGNED_DOUBLES,
4677         MASK_V8, MASK_SPARCLITE, MASK_SPARCLET, MASK_V9,
4678         MASK_DEPRECATED_V8_INSNS, MASK_IMPURE_TEXT, MASK_APP_REGS,
4679         MASK_HARD_QUAD, MASK_LITTLE_ENDIAN, MASK_PTR64, MASK_64BIT,
4680         MASK_STACK_BIAS, MASK_FPU_SET, MASK_VIS, MASK_V8PLUS,
4681         MASK_FASTER_STRUCTS, MASK_LONG_DOUBLE_128): Delete.
4682         (TARGET_FPU, TARGET_UNALIGNED_DOUBLES, TARGET_V8, TARGET_SPARCLITE,
4683         TARGET_SPARCLET, TARGET_V9, TARGET_DEPRECATED_V8_INSNS,
4684         TARGET_IMPURE_TEXT, TARGET_APP_REGS, MASK_HARD_QUAD,
4685         TARGET_LITTLE_ENDIAN, TARGET_PTR64, TARGET_64BIT, MASK_STACK_BIAS,
4686         TARGET_FPU_SET, TARGET_VIS, TARGET_V8PLUS, TARGET_FASTER_STRUCTS,
4687         TARGET_LONG_DOUBLE_128): Likewise.
4688         (TARGET_SWITCHES, SUBTARGET_SWITCHES): Likewise.
4689         (TARGET_OPTIONS, SUBTARGET_OPTIONS): Likewise.
4690         * config/sparc/freebsd.h (SUBTARGET_SWITCHES): Likewise.
4691         * config/sparc/linux.h (SUBTARGET_SWITCHES): Likewise.
4692         * config/sparc/linux64.h (SUBTARGET_SWITCHES): Likewise.
4693         * config/sparc/netbsd-elf.h (SUBTARGET_SWITCHES): Likewise.
4694         * config/sparc/sp64-elf.h (SUBTARGET_SWITCHES): Likewise.
4695         * config/sparc/sparc.c (fpu_option_set): New global.
4696         (sparc_handle_option): New function.
4697         (sparc_override_options): Test fpu_option_set.
4698         (TARGET_DEFAULT_TARGET_FLAGS): Set to TARGET_DEFAULT.
4699         (TARGET_HANDLE_OPTION): Set to sparc_handle_option.
4700         * config/sparc/sparc.opt: New file.
4701         * config/sparc/little-endian.opt: Likewise.
4702         * config/sparc/long-double-switch.opt: Likewise.
4703
4704 2005-04-13  Bernd Schmidt  <bernd.schmidt@analog.com>
4705
4706         * config/bfin/bfin.c (bfin_lib_id_given): New static variable.
4707         (bfin_handle_options): Set it if -mshared-library-id= is seen.
4708         * config/bfin/bfin.opt (mshared-library-id=): Lose
4709         Var(bfin_lib_id_given).
4710
4711 2005-04-13  Matt Thomas  <matt@3am-software.com>
4712
4713         * config/rs6000/sysv4.h (NO_IMPLICIT_EXTERN_C): undefine before
4714         defining.
4715
4716 2005-04-13  Kazu Hirata  <kazu@cs.umass.edu>
4717
4718         * rtl.h (CLEAR_RTX_FLAGS): Remove.
4719
4720         * cgraphunit.c (INSNS_PER_CALL): Remove.
4721
4722         * tree-ssa-forwprop.c (vars,
4723         record_single_argument_cond_exprs,
4724         substitute_single_use_vars): Remove.
4725         (forward_propagate_into_cond_1, forward_propagate_into_cond):
4726         New.
4727         (tree_ssa_forward_propagate_single_use_vars): Call
4728         forward_propagate_into_cond for each COND_EXPR.
4729
4730         * tree-inline.c (INSNS_PER_STMT): Remove.
4731
4732 2005-04-12  Richard Henderson  <rth@redhat.com>
4733
4734         * config/i386/i386.c (ix86_prepare_sse_fp_compare_args): Split ...
4735         (ix86_expand_sse_fp_minmax): ... from ...
4736         (ix86_expand_fp_movcc): ... here.
4737         (ix86_expand_sse_movcc): Rewrite from ix86_split_sse_movcc.
4738         * config/i386/i386-protos.h: Update.
4739         * config/i386/i386.md (UNSPEC_IEEE_MIN, UNSPEC_IEEE_MAX): New.
4740         (sse_setccsf, sse_setccdf): Allow before reload.
4741         (movsfcc_1_sse_min, movsfcc_1_sse_max, movsfcc_1_sse): Remove.
4742         (movdfcc_1_sse_min, movdfcc_1_sse_max, movdfcc_1_sse): Remove.
4743         (ieee_sminsf3, ieee_smaxsf3, ieee_smindf3, ieee_smaxdf3): New.
4744         * config/i386/sse.md (andsf3, nandsf3, iorsf3, xorsf3): New.
4745         (anddf3, nanddf3, iordf3, xordf3): New.
4746
4747 2005-04-12  Jeff Law  <law@redhat.com>
4748
4749         * Makefile.in (OBJS-common): Add tree-ssa-uncprop.o.
4750         (tree-ssa-uncprop.o): Add dependencies.
4751         * tree-cfg.c (remove_useless_stmts_bb, remove_useless_stmts): Remove.
4752         * tree-flow.h (remove_useless_stmts): Remove prototype.
4753         * tree-outof-ssa.c (rewrite_out_of_ssa): Remove call to
4754         remove_useless_stmts.
4755         * timevar.def (TV_TREE_SSA_UNCPROP): New timevar.
4756         * tree-optimize.c (init_tree_optimization_passes): Add uncprop pass.
4757         * tree-pass.h (pass_uncprop): Declare.
4758         * tree-ssa-uncprop.c: New file.
4759
4760 2005-04-12  James E. Wilson  <wilson@specifixinc.com>
4761
4762         PR target/20670
4763         * unwind-ia64.c (uw_intall_context): Add missing load of r27.
4764
4765 2005-04-12  Caroline Tice  <ctice@apple.com>
4766
4767         Temporary fix for partitioning problems.
4768         * passes.c (rest_of_handle_final): Remove code that
4769         frees unlikely_text_section_name,
4770         * varasm.c (assemble_start_function): Test for partitioning
4771         flag before writing out section labels.
4772         (assemble_end_function): Test for partitioning flag before
4773         writing out section labels.
4774
4775 2005-04-12  Steven Bosscher  <stevenb@suse.de>
4776             Stuart Hastings <stuart@apple.com>
4777             Jan Hubicka  <jh@suse.cz>
4778
4779         * Makefile.in: Add function.h to BASIC_BLOCK_H.  Remove all
4780         references to gt-tree-cfg.h.
4781         * basic-block.h (struct basic_block_def): Don't skip rbi
4782         for garbage collection.
4783         (struct reorder_block_def): Make GTY-able.
4784         (struct control_flow_graph): New structure.
4785         (n_edges, n_basic_blocks, last_basic_block, basic_block_info,
4786         BASIC_BLOCK, EXIT_BLOCK_PTR, ENTRY_BLOCK_PTR): No longer vars,
4787         but instead defines to the control_flow_graph for cfun.
4788         (label_to_block_map): New define, points to the label map of
4789         the control_flow_graph for cfun.
4790         (n_edges_for_function, n_basic_blocks_for_function,
4791         last_basic_block_for_function, basic_block_info_for_function,
4792         EXIT_BLOCK_PTR_FOR_FUNCTION, ENTRY_BLOCK_PTR_FOR_FUNCTION,
4793         basic_block_info_for_function, label_to_block_map_for_function):
4794         Counterparts for the above, taking a struct function as an extra
4795         argument.
4796         (alloc_rbi_pool, free_rbi_pool): Remove prototypes.
4797         * cfg.c: (n_edges, n_basic_blocks, last_basic_block,
4798         basic_block_info, ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Remove.
4799         (alloc_rbi_pool, free_rbi_pool): Remove.
4800         (initialize_bb_rbi): Use ggc_alloc_cleared instead of pool_alloc.
4801         * cfglayout.c: (cfg_layout_initialize): Don't allocate the rbi pool
4802         here...
4803         (cfg_layout_finalize) ... and don't free it here.
4804         * cfgrtl.c (cfg_layout_delete_block): Zero out rbi so it gets
4805         garbage collected.
4806         * flow.c (free_basic_block_vars): Set label_to_block_map and
4807         n_edges to zero too.
4808         * function.h (struct function): Add cfg field.
4809         * function.c (allocate_struct_function): Allocate the cfg.
4810         * tree-cfg.c (label_to_block_map): Remove.
4811         (build_tree_cfg): Don't allocate the rbi pool here...
4812         (delete_tree_cfg_annotations): ...and don't free it here.
4813         Also don't nullify label_to_block_map for cfun.
4814
4815 2005-04-12  Caroline Tice  <ctice@apple.com>
4816
4817         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
4818         Revert my patch from April 9.
4819         (fix_edges_for_rarely_executed_code): Revert my patch from April 9.
4820         (reorder_basic_blocks): Revert my patch from April 9.
4821         (insert_section_boundary_note): Revert my patch from April 9.
4822         * dbxout.c (dbxout_function_end): Revert my patch from April 9.
4823         * dwarf2out.c (COLD_TEXT_SECTION_LABEL): Revert my patch from April 9.
4824         (COLD_END_LABEL):  Revert my patch from April 9.
4825         (cold_text_section_label):  Revert my patch from April 9.
4826         (cold_end_label): Revert my patch from April 9.
4827         (dwarf2out_switch_text_section): Revert my patch from April 9.
4828         (output_aranges): Revert my patch from April 9.
4829         (output_ranges):  Revert my patch from April 9.
4830         (output_line_info): Revert my patch from April 9.
4831         (add_location_or_const_value_attribute):  Revert my patch from April 9.
4832         (dwarf2out_var_location): Revert my patch from April 9.
4833         (dwarf2out_init):  Revert my patch from April 9.
4834         (dwarf2out_finish): Revert my patch from April 9.
4835         * function.h (struct function): Revert my patch from April 9.
4836         * opts.c (decode_options): Revert my patch from April 9.
4837         * output.h (unlikely_section_label, hot_section_label,
4838         hot_section_end_label, cold_section_end_label,
4839         unlikely_text_section_name): Revert my patch from April 9.
4840         * passes.c (rest_of_handle_final): Revert my patch from April 9.
4841         * varasm.c (unlikely_section_label, hot_section_label,
4842         hot_section_end_label, cold_section_end_label,
4843         unlikely_text_section_name): Revert my patch from April 9.
4844         (initialize_cold_section_name): Revert my patch from April 9.
4845         (unlikely_text_section): Revert my patch from April 9.
4846         (in_unlikely_text_section): Revert my patch from April 9.
4847         (named_section): Revert my patch from April 9.
4848         (function_section): Revert my patch from April 9.
4849         (current_function_section): Revert my patch from April 9.
4850         (assemble_start_function): Revert my patch from April 9.
4851         (assemble_end_function): Revert my patch from April 9.
4852         (default_section_type_flags_1): Revert my patch from April 9.
4853
4854 2005-04-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
4855
4856         * config/sparc/sparc.h (APPLY_RESULT_SIZE): Set to 24 in 64-bit mode.
4857         * config/sparc/sparc.md (untyped_call): Save the registers manually.
4858
4859         * config/sparc/sparc.c (legitimate_address_p): Use TARGET_ARCH32.
4860
4861 2005-04-12  Ulrich Weigand  <uweigand@de.ibm.com>
4862
4863         PR middle-end/20917
4864         * config/s390/s390.md ("*set_tp"): Use SET in pattern.
4865         ("set_tp_64", "set_tp_31"): Adapt expanded pattern.
4866
4867 2004-04-12  Richard Henderson  <rth@redhat.com>
4868
4869         * config/i386/i386.md (UNSPEC_FIX, UNSPEC_MOVA, UNSPEC_SHUFFLE,
4870         UNSPEC_PSHUFLW, UNSPEC_PSHUFHW, UNSPEC_ADDSUB, UNSPEC_HADD,
4871         UNSPEC_HSUB, UNSPEC_MOVSHDUP, UNSPEC_MOVSLDUP, UNSPEC_MOVDDUP): Remove.
4872         (UNSPEC_*, UNSPECV_*): Renumber.
4873
4874 2005-04-12  Frank Ch. Eigler  <fche@redhat.com>
4875
4876         PR mudflap/19266
4877         From Richard Henderson <rth@redhat.com>:
4878         * tree-mudflap.c (mf_build_check_statement_for): Correct block
4879         splitting logic.
4880
4881 2005-04-12  Dorit Naishlos  <dorit@il.ibm.com>
4882
4883         * tree-cfg.c (tree_verify_flow_info): Use LABEL_EXPR_LABEL.
4884
4885 2005-04-12  Bernd Schmidt  <bernd.schmidt@analog.com>
4886
4887         * config/bfin/bfin.c (bfin_library_id_string): Remove.
4888         (bfin_library_id): New variable.
4889         (bfin_expand_prologue): Use bfin_library_id and bfin_lib_id_given
4890         instead of bfin_library_id_string.
4891         (bfin_handle_option): New function.
4892         (override_options): Remove most code to deal with shared library IDs,
4893         just check they aren't used without -mid-shared-library.
4894         (TARGET_HANDLE_OPTION): Define.
4895         * config/bfin/bfin.h (TARGET_OPTIONS): Delete macro.
4896         * config/bfin/bfin.opt (mshared-library-id=): New.
4897
4898 2005-04-12  Kazu Hirata  <kazu@cs.umass.edu>
4899
4900         * tree-vect-transform.c: Fix comment typos.
4901
4902 2005-04-12 Mostafa Hagog <mustafa@il.ibm.com>
4903
4904         * postreload-gcse.c (eliminate_partially_redundant_load): Don't
4905         split critical edges when not possible/profitable.
4906
4907 2005-04-12  Richard Sandiford  <rsandifo@redhat.com>
4908
4909         * config/ns32k/ns32k.h (target_flags, MASK_32081, MASK_RTD)
4910         (MASK_REGPARM, MASK_32532, MASK_32332, MASK_NO_SB, MASK_NO_BITFIELD)
4911         (MASK_HIMEM, MASK_32381, MASK_MULT_ADD, MASK_SRC, MASK_IEEE_COMPARE)
4912         (TARGET_32081, TARGET_32381, TARGET_MULT_ADD, TARGET_RTD)
4913         (TARGET_REGPARM, TARGET_32532, TARGET_32332, TARGET_SB, TARGET_HIMEM)
4914         (TARGET_BITFIELD, TARGET_IEEE_COMPARE, TARGET_SWITCHES): Delete.
4915         (OVERRIDE_OPTIONS): Clear MASK_SB instead of setting MASK_NO_SB.
4916         * config/ns32k/netbsd.h (TARGET_DEFAULT): Remove MASK_NO_SB and
4917         MASK_NO_BITFIELD.
4918         * config/ns32k/ns32k.c (ns32k_handle_option): New function.
4919         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
4920         * config/ns32k/ns32k.opt: New file.
4921
4922 2005-04-12  Richard Sandiford  <rsandifo@redhat.com>
4923
4924         * config.gcc (m68k-*-linux*): Add m68k/ieee.opt to $extra_options.
4925         * config/m68k/m68k.h (target_flags, MASK_68020, TARGET_68020)
4926         (MASK_68030, TARGET_68030, MASK_68040, TARGET_68040, MASK_68040_ONLY)
4927         (TARGET_68040_ONLY, MASK_68060, TARGET_68060, MASK_5200, TARGET_5200)
4928         (MASK_CFV3, TARGET_CFV3, MASK_CFV4, TARGET_CFV4, MASK_528x)
4929         (TARGET_528x, MASK_CF_HWDIV, TARGET_CF_HWDIV, MASK_68881, TARGET_68881)
4930         (MASK_BITFIELD, TARGET_BITFIELD, MASK_SHORT, TARGET_SHORT)
4931         (MASK_ALIGN_INT, TARGET_ALIGN_INT, MASK_PCREL, TARGET_PCREL)
4932         (MASK_NO_STRICT_ALIGNMENT, TARGET_STRICT_ALIGNMENT, MASK_RTD)
4933         (TARGET_RTD, MASK_SEP_DATA, TARGET_SEP_DATA, MASK_ID_SHARED_LIBRARY)
4934         (TARGET_ID_SHARED_LIBRARY, MASK_ALL_CF_BITS, TARGET_SWITCHES)
4935         (TARGET_OPTIONS, SUBTARGET_SWITCHES, SUBTARGET_OPTIONS): Delete.
4936         (MASK_COLDFIRE): Formatting fixes.
4937         (TARGET_COLDFIRE): Turn into a boolean value for consistency.
4938         * config/m68k/linux.h (SUBTARGET_SWITCHES): Delete.
4939         * config/m68k/m68k.c (m68k_library_id_string): Initialize to
4940         "_current_shared_library_a5_offset_".
4941         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
4942         (MASK_ALL_CPU_BITS): New macro.
4943         (m68k_handle_option): New function.
4944         (override_options): Remove handling of m68k_library_id_string.
4945         * config/m68k/m68k.opt: New file.
4946         * config/m68k/ieee.opt: New file.
4947
4948 2005-04-11  Mark Mitchell  <mark@codesourcery.com>
4949
4950         * target-def.h (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
4951         (TARGET_CXX_DETERMINE_CLASS_VISIBILITY): New macro.
4952         (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
4953         (TARGET_CXX): Adjust accordingly.
4954         * target.h (struct gcc_target): Remove epxort_class_data.  Add
4955         determine_class_data_visibility and class_data_always_comdat.
4956         * doc/tm.texi (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
4957         (TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY): Document.
4958         (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
4959         * config/arm/arm.c (arm_cxx_export_class_data): Remove.
4960         (arm_cxx_determine_class_data_visibility): New.
4961         (arm_cxx_class_data_always_comdat): Likewise.
4962         (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
4963         (TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY): Define.
4964         (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
4965         * config/arm/arm.h (TARGET_ARM_DYNAMIC_VAGUE_LINKAGE_P): Define.
4966         * config/arm/symbian.h (TARGET_ARM_DYNAMIC_VAGUE_LINKAGE_P):
4967         Define.
4968
4969 2005-04-11  Devang Patel  <dpatel@apple.com>
4970
4971         * tree-data-ref.c (build_classic_dist_vector,
4972         compute_subscript_distance): Make externally visible.
4973         * tree-data-ref.h (build_classic_dist_vector,
4974         compute_subscript_distance): Same.
4975         * tree-vect-analyze.c (vect_analyze_data_ref_dependence):
4976         Check distance vector against vectorization factor.
4977         (vect_analyze_loop): Determine vectorizaion factor before
4978         analyzing data dependences.
4979         * tree-vectorizer.c (loops_num): Make it externally visible and
4980         rename ...
4981         * tree-vectorizer.c (vect_loops_num): ... new name.
4982         * tree-vectorizer.h  (vect_loops_num): New.
4983
4984 2005-04-11  Devang Patel  <dpatel@apple.com>
4985
4986         * tree-vect-analyze.c (vect_analyze_operations): Check
4987         vectorizable codition.
4988         * tree-vect-transform.c (vect_is_simple_cond): New function.
4989         (vectorizable_condition): New function.
4990         (vect_transform_stmt): Handle condition_vec_info_type.
4991         * tree-vectorizer.h (enum stmt_vec_info_type): Add
4992         condition_vec_info_type.
4993         (vectorizable_condition): New.
4994
4995 2005-04-11  Geoffrey Keating  <geoffk@apple.com>
4996
4997         * config/i386/i386.h (TARGET_FPMATH_DEFAULT): New.
4998         * config/i386/darwin.h (TARGET_FPMATH_DEFAULT): New.
4999         * config/i386/i386.c (override_options): Use TARGET_FPMATH_DEFAULT.
5000
5001         * config/i386/darwin.h (ASM_SPEC): Use -arch i386 not -arch i686.
5002         (SUBTARGET_EXTRA_SPECS): Always 'i386'.
5003
5004         * dwarf2out.c (output_line_info): Don't try to dereference
5005         a NULL current_function_decl.
5006
5007         * config/t-slibgcc-darwin: Don't put shared libraries in
5008         directories other than $(slibdir).
5009         * config/rs6000/darwin.h: Find -m64 libgcc under the name the
5010         OS uses for it.
5011
5012 2005-04-11  Diego Novillo  <dnovillo@redhat.com>
5013
5014         PR tree-optimization/20933
5015         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Move
5016         logic to reject aliases between read-only and writable
5017         variables ...
5018         (may_alias_p): ... here.
5019         (get_tmt_for): Do not associate read-only tags to pointers
5020         whose pointed-to type is not read-only.
5021         * tree-ssa.c (verify_ssa): Check that memory stores have at
5022         least one V_MAY_DEF or V_MUST_DEF.
5023
5024 2005-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5025
5026         PR/17092
5027         * configure.ac (gcc_UNLOCKED_FUNCS): New.
5028         (AC_CHECK_FUNCS, AC_CHECK_DECLS): Check for gcc_UNLOCKED_FUNCS.
5029         * system.h (putchar, getc, getchar, clearerr, feof, fileno,
5030         fflush, fgetc, fgets, ferror, fread): Redefine to the associated
5031         _unlocked function.
5032         (fwrite_unlocked): Fix prototype.
5033
5034         * configure, config.in: Regenerate.
5035
5036 2005-04-11  David Edelsohn  <edelsohn@gnu.org>
5037
5038         * tree-ssa-loop-im.c: Include real.h.
5039         (determine_invariantness_stmt): If real division divisor is
5040         invariant and flag_unsafe_math_optimizations enabled, generate
5041         invariant reciprocal for hoisting.
5042         * Makefile.in (tree-ssa-loop-im.o): Add real.h dependency.
5043
5044 2005-04-11  Daniel Berlin  <dberlin@dberlin.org>
5045
5046         Fix PR tree-optimization/20926
5047
5048         * tree-ssa-alias.c (add_type_alias): Handle subvars.
5049
5050 2005-04-11  Devang Patel  <dpatel@apple.com>
5051
5052         * config/rs6000.c (rs6000_emit_vector_select): Fix vector select
5053         operand ordering.
5054
5055 2005-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
5056
5057         * fold-const.c (fold_binary_op_with_conditional_arg):
5058         use fold_buildN instead of "fold (buildN" in some
5059         non obvious places.
5060         (fold_unary): Likewise.
5061         (fold_binary): Likewise.
5062
5063 2005-04-11  Daniel Berlin  <dberlin@dberlin.org>
5064
5065         Fix PR tree-optimization/20612
5066         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Fix increment
5067         handling
5068         (perfect_nestify): preheaderbb is *not* part of loop of the
5069         old destination.
5070
5071 2005-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
5072
5073         * tree-ssa-alias.c (may_alias_p): If the variable
5074         is a global variable and the pointer is parameter
5075         and -fargument-noalias-global is used, then
5076         the pointer cannot alias the variable.
5077
5078 2005-04-11  James A. Morrison  <phython@gcc.gnu.org>
5079
5080         * config/sparc/sparc.c: Use gcc_assert and gcc_unreachable.
5081         * config/sparc/sparc.h: Likewise.
5082         * config/sparc/sparc.md: Likewise.
5083
5084 2005-04-11  Kazu Hirata  <kazu@cs.umass.edu>
5085
5086         * tree-vrp.c (maybe_add_assert_expr): Move a comment.
5087
5088         * tree-vrp.c: Fix a comment typo.
5089
5090 2005-04-11  Diego Novillo  <dnovillo@redhat.com>
5091
5092         PR tree-optimization/20920
5093         * tree-pretty-print.c (dump_generic_node): Show '(ab)' if an
5094         SSA_NAME flows through an abnormal edge.
5095         * tree-vrp.c (infer_value_range): Ignore SSA names that flow
5096         through abnormal edges.
5097         (maybe_add_assert_expr): Likewise.
5098
5099 2005-04-11  Richard Sandiford  <rsandifo@redhat.com>
5100
5101         * config/s390/s390.h (s390_tune_string, s390_arch_string)
5102         (s390_warn_framesize_string, s390_warn_dynamicstack_string)
5103         (s390_stack_size_string, s390_stack_guard_string, target_flags)
5104         (MASK_HARD_FLOAT, MASK_SMALL_EXEC, MASK_DEBUG_ARG, MASK_64BIT)
5105         (MASK_ZARCH, MASK_MVCLE, MASK_TPF_PROFILING, MASK_NO_FUSED_MADD)
5106         (MASK_BACKCHAIN, MASK_PACKED_STACK, TARGET_HARD_FLOAT)
5107         (TARGET_SOFT_FLOAT, TARGET_SMALL_EXEC, TARGET_DEBUG_ARG)
5108         (TARGET_64BIT, TARGET_ZARCH, TARGET_MVCLE, TARGET_TPF_PROFILING)
5109         (TARGET_NO_FUSED_MADD, TARGET_FUSED_MADD, TARGET_BACKCHAIN)
5110         (TARGET_PACKED_STACK, TARGET_SWITCHES, TARGET_OPTIONS): Delete.
5111         * config/s390/s390.c (TARGET_DEFAULT_TARGET_FLAGS): Override default.
5112         (TARGET_HANDLE_OPTION): Likewise.
5113         (s390_tune): Initialize to PROCESSOR_max.
5114         (s390_arch_string): Make static.
5115         (s390_tune_string, s390_warn_framesize_string): Delete.
5116         (s390_warn_dynamicstack_string, s390_stack_size_string): Delete.
5117         (s390_stack_guard_string, s390_warn_dynamicstack_p): Delete.
5118         (s390_handle_arch_option, s390_handle_option): New functions.
5119         (override_options): Remove parsing of option strings.
5120         * config/s390/s390.opt: New file.
5121
5122 2005-04-11  Paolo Bonzini  <bonzini@gnu.org>
5123
5124         * tree-complex.c (expand_vector_operations): Call
5125         update_stmt_if_modified.
5126
5127 2005-04-11  Paolo Bonzini  <bonzini@gnu.org>
5128
5129         * tree-vect-analyze (vect_determine_vectorization_factor):
5130         Do not use GET_MODE_NUNITS.
5131         * tree-vect-transform.c (vect_get_vec_def_for_operand,
5132         (vectorizable_load, vect_transform_loop): Likewise.
5133
5134 2005-04-11  Uros Bizjak  <uros@kss-loka.si>
5135
5136         * builtins.def (BUILT_IN_LCEIL, BUILT_IN_LCEILF, BUILT_IN_LCEILL)
5137         (BUILT_IN_LLCEIL, BUILT_IN_LLCEILF, BUILT_IN_LLCEILL): New.
5138         * optabs.h (enum optab_index): Add new OTI_lceil.
5139         (lceil_optab): Define corresponding macro.
5140         * optabs.c (init_optabs): Initialize lceil_optab.
5141         * genopinit.c (optabs): Implement lceil_optab using lceilsi2
5142         and lceildi2 patterns.
5143         * builtins.c (expand_builtin_int_roundingfn): Handle
5144         BUILT_IN_LCEIL{,F,L} and BUILT_IN_LLCEIL{,F,L}.
5145         (fold_builtin_int_roundingfn): Handle BUILT_IN_LCEIL{,F,L} and
5146         BUILT_IN_LLCEIL{,F,L}.
5147         (fold_builtin_1): Fold BUILT_IN_LCEIL{,F,L} and
5148         BUILT_IN_LLCEIL{,F,L} using fold_builtin_int_roundingfn.
5149         (mathfn_built_in): Handle BUILT_IN LCEIL and BUILT_IN_LLCEIL.
5150         (expand_builtin): Expand BUILT_IN_LCEIL{,F,L} and
5151         BUILT_IN_LLCEIL{,F,L} using expand_builtin_int_roundingfn.
5152         * convert.c (convert_to_integer): Convert (long int)ceil{,f,l},
5153         into lceil built-in function and (long long int)ceil{,f,l} into
5154         llceil built-in function.
5155         * fold-const.c (tree_expr_nonnegative_p): Add BUILT_IN_LCEIL and
5156         BUILT_IN_LLCEIL.
5157
5158 2005-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5159
5160         * pa/quadlib.c (_U_Qfneg): Toggle sign bit instead of subtracting from
5161         zero.
5162
5163 2005-04-10  Kazu Hirata  <kazu@cs.umass.edu>
5164
5165         * config/arm/arm.c: Fix a comment typo.
5166         * doc/tree-ssa.texi: Fix a typo.
5167
5168 2005-04-10  Steven Bosscher  <stevenb@suse.de>
5169
5170         * cselib.c (clear_table): Rename to cselib_clear_table.
5171         * cselib.h (cselib_clear_table): Add prototype.
5172         * gcse.c (gcse_main): Make 'f' argument unused.
5173         (alloc_gcse_mem): Do not walk the insn chain, walk the contents
5174         of each basic block instead.
5175         (compute_sets, compute_hash_table_work): Likewise.
5176         (constprop_register): Change int 'alter_jumps' argument to bool.
5177         (do_local_cprop): Likewise.
5178         (local_cprop_pass): Likewise.  Also walk basic blocks instead of
5179         the insn chain.  Explicitly clear the cselib tables after finishing
5180         one basic block.  Make sure there are no unterminated libcall blocks.
5181         Update compute_sets call.
5182         (cprop): Walk basic blocks instead of the insn chain.
5183         (one_cprop_pass, compute_ld_motion_mems, compute_store_table):
5184         Likewise.
5185         (bypass_jumps): Update alloc_gcse_mem, compute_sets, and
5186         one_cprop_pass calls.
5187
5188 2005-04-10  Richard Sandiford  <rsandifo@redhat.com>
5189
5190         * combine.c (combine_simplify_rtx): Remove a transformation that
5191         relies on an invalid assumption about rtl sign-extension semantics.
5192
5193 2005-04-10  Richard Sandiford  <rsandifo@redhat.com>
5194
5195         * value-prof.c (tree_divmod_fixed_value_transform): Fix arguments
5196         to build_int_cst_wide.
5197
5198 2005-04-09  Alexandre Oliva  <aoliva@redhat.com>
5199
5200         PR target/20126
5201         * loop.c (loop_givs_rescan): If replacement of DEST_ADDR failed,
5202         set the original address pseudo to the correct value before the
5203         original insn, if possible, and leave the insn alone, otherwise
5204         create a new pseudo, set it and replace it in the insn.
5205         * recog.c (validate_change_maybe_volatile): New.
5206         * recog.h (validate_change_maybe_volatile): Declare.
5207
5208 2005-04-09  Caroline Tice  <ctice@apple.com>
5209
5210         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
5211         Remove targetm.have_named_sections test.
5212         (fix_edges_for_rarely_executed_code): Likewise.
5213         (insert_section_boundary_note): Likewise.
5214         (reorder_basic_blocks): Check partitioning flag before calling
5215         verify_hot_cold_block_grouping.
5216         * dbxout.c (dbxout_function_end): Get hot/cold section labels from
5217         the function struct rather than global variables.
5218         * dwarf2out.c (COLD_TEXT_SECTION_LABEL): New macro.
5219         (COLD_END_LABEL): Likewise
5220         (cold_text_section_label): New static global variable.
5221         (cold_end_label): Likewise.
5222         (dwarf2out_switch_text_section): Get hot/cold section labels from
5223         the function struct rather than global variables.
5224         (output_aranges): Use cold_text_section_label and cold_end_label;
5225         check partitioning flag before putting out delta.
5226         (output_ranges): Remove incorrect code attempting to use
5227         hot/cold labels.
5228         (output_line_info): Get cold section label from function struct.
5229         (add_location_or_const_value_attribute): Likewise.
5230         (get_subprogram_die): Get hot/cold section labels from function struct.
5231         (dwarf2out_var_location): Likewise.
5232         (dwarf2out_init): Generate cold_text_section_label and cold_end_label;
5233         write out cold_text_section_label if partition flag is set.
5234         (dwarf2out_finish): Write out cold_end_label if partition flag is set;
5235         * function.h (struct function): Add new fields to point to hot/cold
5236         section labels: hot_section_label, cold_section_label,
5237         hot_section_end_label and cold_section_end_label; also add new field
5238         for cold text section name, unlikely_text_section_name.
5239         * opts.c (decode_options): Turn off partitioning flag if
5240         !targetm.have_named_sections.
5241         * output.h (hot_section_label): Remove.
5242         (hot_section_end_label): Remove.
5243         (cold_section_end_label): Remove.
5244         (unlikely_section_label): Remove.
5245         (unlikely_text_section_name): Remove.
5246         * passes.c (rest_of_handle_final):  Remove code that frees
5247         unlikely_text_section_name.
5248         * varasm.c (unlikely_section_label): Remove.
5249         (hot_section_label): Remove.
5250         (hot_section_end_label): Remove.
5251         (cold_section_end_label): Remove.
5252         (unlikely_text_section_name):  Remove.
5253         (initialize_cold_section_name): Modify to call
5254         targetm.strip_name_encoding; to store cold section name in current
5255         function struct, if it exists; and to only use the decl_section_name
5256         if flag_named_sections is true.
5257         (unlikely_text_section): Modify to get section name out of current
5258         function struct, if there is one; otherwise build it from
5259         UNLIKELY_EXECUTED_TEXT_SECTION_NAME.
5260         (in_unlikely_text_section): Likewise.
5261         (named_section): Modify to get/put cold section name in current function
5262         struct, if there is one.
5263         (function_section):  Change 'bool unlikely' to 'int reloc'; check
5264         targetm.have_named_sections before calling named_section.
5265         (current_function_section): Likewise.
5266         (assemble_start_function): Modify to get/put unlikely_text_section_name
5267         in current function struct; modify to get hot/cold section labels
5268         from function struct; initialize labels using
5269         ASM_GENERATE_INTERNAL_LABEL;
5270         test partitioning flag before writing out hot section label.
5271         (assemble_end_function): Test partitioning flag before writing out
5272         hot/cold section labels.
5273         (default_section_type_flags_1):  Modify to use array instead of
5274          char* for unlikely_text_section_name; set flags correctly for
5275          cold text section if there is not a current function decl.
5276
5277 2005-04-09  Jakub Jelinek  <jakub@redhat.com>
5278
5279         * tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD
5280         and TI_VA_LIST_FPR_COUNTER_FIELD.
5281         (va_list_gpr_counter_field, va_list_fpr_counter_field): Define.
5282         * tree-pass.h (pass_stdarg): Add.
5283         * tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg.
5284         * tree-stdarg.c: New file.
5285         * tree-stdarg.h: New file.
5286         * Makefile.in (OBJS-common): Add tree-stdarg.o.
5287         (tree-stdarg.o): Add dependencies.
5288         * function.h (struct function): Add va_list_gpr_size and
5289         va_list_fpr_size fields.
5290         * function.c (allocate_struct_function): Initialize them.
5291         * target.h (struct gcc_target): Add stdarg_optimize_hook.
5292         * target-def.h (TARGET_STDARG_OPTIMIZE_HOOK): Define.
5293         (TARGET_INITIALIZER): Add it.
5294
5295         * config/i386/i386.c (ix86_build_builtin_va_list): Initialize
5296         va_list_{g,f}pr_counter_field.
5297         (ix86_setup_incoming_varargs): Don't do anything if reg_save
5298         area will not be used.  Only save registers that tree-stdarg.c
5299         detected they need saving.
5300         (ix86_va_start): Don't set up fields that won't be used.
5301
5302         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize
5303         va_list_{g,f}pr_counter_field.
5304         (setup_incoming_varargs): Don't do anything if reg_save
5305         area will not be used.  Only save registers that tree-stdarg.c
5306         detected they need saving.
5307         (rs6000_va_start): Don't set up fields that won't be used.
5308
5309         * config/alpha/alpha.c: Include tree-flow.h and tree-stdarg.h.
5310         (alpha_build_builtin_va_list): Initialize va_list_gpr_counter_field.
5311         (va_list_skip_additions, alpha_stdarg_optimize_hook): New functions.
5312         (TARGET_STDARG_OPTIMIZE_HOOK): Define.
5313
5314 2005-04-09  Jakub Jelinek  <jakub@redhat.com>
5315
5316         PR target/20795
5317         * config/i386/i386.c (construct_container): Pass empty aligned
5318         struct, union or class in memory.
5319
5320 2005-04-09  Kazu Hirata  <kazu@cs.umass.edu>
5321
5322         * dominance.c, gthr-win32.h, reg-stack.c, tree-ssa-copy.c,
5323         tree-ssa-operands.c, tree-ssa.c, tree-vrp.c, varasm.c,
5324         config/alpha/alpha.c, config/arm/arm.c, config/m32r/m32r.h,
5325         config/rs6000/predicates.md: Fix comment typos.
5326
5327         * sched-int.h (haifa_insn_data): Remove blockage and units.
5328         (INSN_UNIT, INSN_BLOCKAGE, UNIT_BITS, BLOCKAGE_MASK,
5329         ENCODE_BLOCKAGE, UNIT_BLOCKED, BLOCKAGE_RANGE,
5330         MIN_BLOCKAGE_COST, MAX_BLOCKAGE_COST): Remove.
5331
5332 2005-04-09  Jan Hubicka  <jh@suse.cz>
5333             Steven Bosscher  <stevenb@suse.de>
5334
5335         * cfglayout.c (copy_bbs): Rename n_edges to num_edges.
5336         * cfgloop.c (get_loop_exit_edges): Likewise.
5337         * cfgloopmanip.c (fix_irreducible_loops): Likewise.
5338         (unloop): Likewise.
5339         * loop-unroll.c (analyze_insns_in_loop): Likewise.
5340         * tree-cfg.c (dump_cfg_status): Likewise.
5341
5342 2005-04-09  David Edelsohn  <edelsohn@gnu.org>
5343
5344         * config/rs6000/predicates.md (altivec_register_operand): Remove
5345         redundant match_code test.
5346         (gpc_reg_operand): Same.
5347         (cc_reg_operand): Same.
5348         (cc_reg_not_cr0_operand): Same.
5349
5350 2005-04-09  Jan Hubicka  <jh@suse.cz>
5351
5352         Forgotten hunk from my last merge patch:
5353         * final.c (output_addr_const): Do not call mark_referenced.
5354
5355 2005-04-09  Andrew MacLeod  <amacleod@redhat.com>
5356
5357         * doc/tree-ssa.texi: Add immediate use documentation.
5358
5359 2005-04-09  Richard Earnshaw <richard.earnshaw@arm.com>
5360
5361         * arm.c (FL_WBUF): Define.
5362         (arm_tune_strongarm): Renamed from arm_is_strong.  All uses changed.
5363         (arm_is_6_or_7): Delete.
5364         (arm_tune_wbuf): New.
5365         (arm_override_options): Set arm_tune_wbuf.
5366         * arm.h (arm_tune_strongarm): Renamed from arm_is_strong.
5367         (arm_is_6_or_7): Delete declaration.
5368         (arm_tune_wbuf): New declartion.
5369         * arm.md (is_strongarm): Derive from arm_tune_strongarm.
5370         (model_wbuf): Derive from arm_tune_wbuf.
5371         * arm-cores.def (arm600, arm610, arm620, arm700, arm700i, arm710)
5372         (arm720, arm710c, arm7100, arm7500, arm7500fe, arm710t, arm720t)
5373         (arm740t): Mark CPUs as having a write buffer.
5374
5375 2005-04-09  Uros Bizjak  <uros@kss-loka.si>
5376
5377         * config/i386/i386.md (*fp_jcc_7_387): Use 'const0_operand' instead
5378         of 'const_double_operand' in operand 2 constraints.  Update enable
5379         condition.
5380
5381 2005-04-09  Uros Bizjak  <uros@kss-loka.si>
5382
5383         * builtins.def (BUILT_IN_LFLOOR, BUILT_IN_LFLOORF, BUILT_IN_LFLOORL)
5384         (BUILT_IN_LLFLOOR, BUILT_IN_LLFLOORF, BUILT_IN_LLFLOORL): New.
5385         * optabs.h (enum optab_index): Add new OTI_lfloor.
5386         (lfloor_optab): Define corresponding macro.
5387         * optabs.c (init_optabs): Initialize lfloor_optab.
5388         * genopinit.c (optabs): Implement lfloor_optab using lfloorsi2
5389         and lfloordi2 patterns.
5390         * builtins.c (expand_builtin_int_roundingfn): New prototype.
5391         (expand_builtin_int_roundingfn): New function.
5392         (fold_builtin_int_roundingfn): New prototype.
5393         (fold_builtin_int_roundingfn): New function, renamed from
5394         fold_builtin_lround.
5395         Handle BUILT_IN_LROUND{,F,L}, BUILT_IN_LLROUND{,F,L} and
5396         BUILT_IN_LFLOOR{,F,L}, BUILT_IN_LLFLOOR{,F,L}.
5397         (fold_builtin_1): Fold BUILT_IN_LFLOOR{,F,L} and
5398         BUILT_IN_LLFLOOR{,F,L} using fold_builtin_int_roundingfn.
5399         (mathfn_built_in): Handle BUILT_IN LFLOOR and BUILT_IN_LLFLOOR.
5400         (expand_builtin): Expand BUILT_IN_LFLOOR{,F,L} and
5401         BUILT_IN_LLFLOOR{,F,L} using expand_builtin_int_roundingfn.
5402         * convert.c (convert_to_integer): Convert (long int)floor{,f,l},
5403         into lfloor built-in function and (long long int)floor{,f,l} into
5404         llfloor built-in function.
5405         * fold-const.c (tree_expr_nonnegative_p): Add BUILT_IN_LFLOOR and
5406         BUILT_IN_LLFLOOR.
5407
5408 2005-04-08  Ian Lance Taylor  <ian@airs.com>
5409
5410         * c-common.def: Move FOR_STMT, WHILE_STMT, DO_STMT, BREAK_STMT,
5411         CONTINUE_STMT, and SWITCH_STMT to cp/cp-tree.def.
5412         * c-common.h (WHILE_COND, WHILE_BODY): Move to cp/cp-tree.h.
5413         (DO_COND, DO_BODY): Likewise.
5414         (FOR_INIT_STMT, FOR_COND, FOR_EXPR, FOR_BODY): Likewise.
5415         (SWITCH_STMT_COND, SWITCH_STMT_BODY, SWITCH_STMT_TYPE): Likewise.
5416         (c_common_stmt_codes): Remove FOR_STMT, WHILE_STMT, DO_STMT,
5417         BREAK_STMT, CONTINUE_STMT, and SWITCH_STMT.
5418         (build_continue_stmt, build_break_stmt): Don't declare.
5419         (c_do_switch_warnings): Update declaration.
5420         * c-gimplify.c (enum bc_t): Remove.
5421         (struct c_gimplify_ctx, ctxp): Remove.
5422         (push_context, pop_context): Remove static functions.
5423         (c_genericize): Don't call push_context or pop_context.
5424         (begin_bc_block, finish_bc_block): Remove static functions.
5425         (build_bc_goto): Likewise.
5426         (gimplify_c_loop): Likewise.
5427         (gimplify_for_stmt, gimplify_while_stmt): Likewise.
5428         (gimplify_do_stmt, gimplify_switch_stmt): Likewise.
5429         (c_gimplify_expr): Remove handling of FOR_STMT, WHILE_STMT,
5430         DO_STMT, SWITCH_STMT, CONTINUE_STMT, BREAK_STMT.
5431         * c-common.c (c_do_switch_warnings): Rename from
5432         c_do_switch_warnings_1.
5433         (c_do_switch_warnings) [old version]: Remove.
5434         (c_do_switch_expr_warnings): Remove.
5435         * c-typeck.c (c_finish_case): Call new c_do_switch_warnings
5436         function instead of c_do_switch_expr_warnings.
5437         * c-dump.c (c_dump_tree): Remove handling of BREAK_STMT,
5438         CONTINUE_STMT, DO_STMT, FOR_STMT, SWITCH_STMT, and WHILE_STMT.
5439         * c-pretty-print.c (pp_c_statement): Likewise.
5440         * c-semantics.c (build_break_stmt, build_continue_stmt): Remove.
5441
5442 2005-04-08  Devang Patel  <dpatel@apple.com>
5443
5444         * tree-if-conv.c (find_phi_replacement_condition): New parameter, loop.
5445         While selecting replacement condition pay attention to loop header.
5446
5447 2005-04-08  Diego Novillo  <dnovillo@redhat.com>
5448
5449         Merge from tree-cleanup-branch: VRP, store CCP, store
5450             copy-prop, incremental SSA updating of FUD chains and
5451             newly exposed symbols.
5452
5453         * Makefile.in (tree-ssa-copy.o): Depend on tree-ssa-propagate.h.
5454         (OBJS-common): Add tree-vrp.o.
5455         (tree-vrp.o): New rule.
5456         * basic-block.h (nearest_common_dominator_for_set): Declare.
5457         * common.opt (ftree-store-ccp): New flag.
5458         (ftree-copy-prop): New flag.
5459         (ftree-vrp): New flag.
5460         (ftree-store-copy-prop): New flag.
5461         * dominance.c (nearest_common_dominator_for_set): New.
5462         * domwalk.c (walk_dominator_tree): Only traverse
5463         statements in blocks marked in walk_data->interesting_blocks.
5464         * domwalk.h (struct dom_walk_data): Add field interesting_blocks.
5465         * fold-const.c (fold): Handle ASSERT_EXPR.
5466         * opts.c (decode_options): Set flag_tree_copy_prop at -O1.
5467         Set flag_tree_store_ccp, flag_tree_store_copy_prop and
5468         flag_tree_vrp at -O2.
5469         * timevar.def (TV_TREE_VRP): Define.
5470         (TV_TREE_COPY_PROP): Define.
5471         (TV_TREE_STORE_COPY_PROP): Define.
5472         (TV_TREE_SSA_INCREMENTAL): Define.
5473         (TV_TREE_STORE_CCP): Define.
5474         * tree-cfg.c (tree_can_merge_blocks_p): Remove reference
5475         to kill_redundant_phi_nodes from comment.
5476         (verify_expr): Handle ASSERT_EXPR.
5477         * tree-dfa.c (mark_new_vars_to_rename): Remove second
5478         argument.  Update all users.
5479         (mark_call_clobbered_vars_to_rename): Remove.  Update all
5480         users.
5481         * tree-flow-inline.h (unmodifiable_var_p): New.
5482         * tree-flow.h (enum value_range_type): Declare.
5483         (struct value_range_def): Declare.
5484         (value_range): Declare.
5485         (remove_all_phi_nodes_for): Remove.  Update all users.
5486         (find_phi_node_for): Declare.
5487         (add_type_alias): Declare.
5488         (count_uses_and_derefs): Declare.
5489         (kill_redundant_phi_nodes): Remove.
5490         (rewrite_into_ssa): Remove.
5491         (rewrite_def_def_chains): Remove.
5492         (update_ssa, register_new_name_mapping, create_new_def_for,
5493         need_ssa_update_p, name_registered_for_update_p,
5494         release_ssa_name_after_update_ssa, dump_repl_tbl,
5495         debug_repl_tbl, dump_names_replaced_by,
5496         debug_names_replaced_by, mark_sym_for_renaming,
5497         mark_set_for_renaming, get_current_def, set_current_def,
5498         get_value_range, dump_value_range, debug_value_range,
5499         dump_all_value_ranges, debug_all_value_ranges,
5500         expr_computes_nonzero, loop_depth_of_name,
5501         unmodifiable_var_p): Declare.
5502         * tree-gimple.c (is_gimple_formal_tmp_rhs): Handle
5503         ASSERT_EXPR.
5504         * tree-into-ssa.c (block_defs_stack): Update comment.
5505         (old_ssa_names, new_ssa_names, old_virtual_ssa_names,
5506         syms_to_rename, names_to_release, repl_tbl,
5507         need_to_initialize_update_ssa_p, need_to_update_vops_p,
5508         need_to_replace_names_p): New locals.
5509         (NAME_SETS_GROWTH_FACTOR): Define.
5510         (struct repl_map_d): Declare.
5511         (struct mark_def_sites_global_data): Add field
5512         interesting_blocks.
5513         (enum rewrite_mode): Declare.
5514         (REGISTER_DEFS_IN_THIS_STMT): Define.
5515         (compute_global_livein): Use last_basic_block instead of
5516         n_basic_blocks.
5517         (set_def_block): Remove last argument.  Update all callers.
5518         (prepare_use_operand_for_rename): Remove.  Update all callers.
5519         (prepare_def_operand_for_rename): Remove.  Update all callers.
5520         (symbol_marked_for_renaming): New.
5521         (is_old_name): New.
5522         (is_new_name): New.
5523         (repl_map_hash): New.
5524         (repl_map_eq): New.
5525         (repl_map_free): New.
5526         (names_replaced_by): New.
5527         (add_to_repl_tbl): New.
5528         (add_new_name_mapping): New.
5529         (mark_def_sites): Assume that all the operands in the
5530         statement are in normal form.
5531         (find_idf): Assert that the block in the stack is valid.
5532         (get_default_def_for): New.
5533         (insert_phi_nodes_for): Add new argument 'update_p'.
5534         Add documentation.
5535         If update_p is true, add a new mapping between the LHS of
5536         each new PHI and the name that it replaces.
5537         (insert_phi_nodes_1): Only call find_idf if needed.
5538         (get_reaching_def): Call get_default_def_for.
5539         (rewrite_operand): Remove.
5540         (rewrite_stmt): Do nothing if REGISTER_DEFS_IN_THIS_STMT
5541         and REWRITE_THIS_STMT are false.
5542         Assume that all the operands in the statement are in
5543         normal form.
5544         (rewrite_add_phi_arguments): Don't use PHI_REWRITTEN.
5545         (rewrite_virtual_phi_arguments): Remove.
5546         (invalidate_name_tags): Remove.
5547         (register_new_update_single, register_new_update_set,
5548         rewrite_update_init_block, replace_use,
5549         rewrite_update_fini_block, rewrite_update_stmt,
5550         rewrite_update_phi_arguments): New.
5551         rewrite_blocks): Remove argument 'fix_virtual_phis'.
5552         Add arguments 'entry', 'what' and 'blocks'.
5553         Initialize the dominator walker according to 'what' and
5554         'blocks'.
5555         Start the dominator walk at 'entry'.
5556         (mark_def_site_blocks): Add argument 'interesting_blocks'.
5557         Use it to configure the dominator walker.
5558         (rewrite_into_ssa): Remove argument 'all'.
5559         Make internal.
5560         (rewrite_all_into_ssa): Remove.
5561         (rewrite_def_def_chains): Remove.
5562         (mark_def_interesting, mark_use_interesting,
5563         prepare_phi_args_for_update, prepare_block_for_update,
5564         prepare_def_site_for, prepare_def_sites,
5565         dump_names_replaced_by, debug_names_replaced_by,
5566         dump_repl_tbl, debug_repl_tbl, init_update_ssa,
5567         delete_update_ssa, create_new_def_for,
5568         register_new_name_mapping, mark_sym_for_renaming,
5569         mark_set_for_renaming, need_ssa_update_p,
5570         name_registered_for_update_p, ssa_names_to_replace,
5571         release_ssa_name_after_update_ssa,
5572         insert_updated_phi_nodes_for, update_ssa): New.
5573         * tree-loop-linear.c (linear_transform_loops): Call
5574         update_ssa instead of rewrite_into_ssa.
5575         * tree-optimize.c (vars_to_rename): Remove.
5576         Update all users.
5577         (init_tree_optimization_passes): Replace
5578         pass_redundant_phi with pass_copy_prop.
5579         Add pass_vrp.
5580         Replace pass_ccp with pass_store_ccp.
5581         Add pass_store_copy_prop after pass_store_ccp.
5582         (execute_todo): If the TODO_ flags don't include updating
5583         the SSA form, assert that it does not need to be updated.
5584         Call update_ssa instead of rewrite_into_ssa and
5585         rewrite_def_def_chains.
5586         If TODO_verify_loops is set, call verify_loop_closed_ssa.
5587         (tree_rest_of_compilation):
5588         * tree-pass.h (TODO_dump_func, TODO_ggc_collect,
5589         TODO_verify_ssa, TODO_verify_flow, TODO_verify_stmts,
5590         TODO_cleanup_cfg): Renumber.
5591         (TODO_verify_loops, TODO_update_ssa,
5592         TODO_update_ssa_no_phi, TODO_update_ssa_full_phi,
5593         TODO_update_ssa_only_virtuals): Define.
5594         (pass_copy_prop, pass_store_ccp, pass_store_copy_prop, pass_vrp):
5595         Declare.
5596         * tree-phinodes.c (make_phi_node): Update documentation.
5597         (remove_all_phi_nodes_for): Remove.
5598         (find_phi_node_for): New.
5599         * tree-pretty-print.c (dump_generic_node): Handle ASSERT_EXPR.
5600         * tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Likewise.
5601         (interpret_rhs_modify_expr): Likewise.
5602         * tree-sra.c (decide_instantiations): Mark all symbols in
5603         SRA_CANDIDATES for renaming.
5604         (mark_all_v_defs_1): Rename from mark_all_v_defs.
5605         (mark_all_v_defs): New function.  Update all users to call it
5606         with the whole list of scalarized statements, not just the
5607         first one.
5608         * tree-ssa-alias.c (count_ptr_derefs): Make extern.
5609         (compute_flow_insensitive_aliasing): If the tag is
5610         unmodifiable and the variable isn't or vice-versa, don't
5611         make them alias of each other.
5612         (setup_pointers_and_addressables): If the type tag for
5613         VAR is about to change, mark the old one for renaming.
5614         (add_type_alias): New.
5615         * tree-ssa-ccp.c: Document SSA-CCP and STORE-CCP.
5616         (ccp_lattice_t): Rename from latticevalue.
5617         (value): Remove.  Update all users.
5618         (const_val): New local variable.
5619         (do_store_ccp): New local variable.
5620         (dump_lattice_value): Handle UNINITIALIZED.
5621         (debug_lattice_value): New.
5622         (get_default_value): Re-write.
5623         (set_lattice_value): Re-write.
5624         (def_to_varying): Remove.  Update all users.
5625         (likely_value): Return VARYING for statements that make
5626         stores when STORE_CCP is false.
5627         Return VARYING for any statement other than MODIFY_EXPR,
5628         COND_EXPR and SWITCH_EXPR.
5629         (ccp_initialize): Re-write.
5630         (replace_uses_in, replace_vuse_in, substitute_and_fold):
5631         Move to tree-ssa-propagate.c.
5632         (ccp_lattice_meet): Handle memory stores when
5633         DO_STORE_CCP is true.
5634         (ccp_visit_phi_node): Likewise.
5635         (ccp_fold): Likewise.
5636         (evaluate_stmt): Likewise.
5637         (visit_assignment): Likewise.
5638         (ccp_visit_stmt): Likewise.
5639         (execute_ssa_ccp): Add argument 'store_ccp'.  Copy it
5640         into DO_STORE_CCP.
5641         (do_ssa_ccp): New.
5642         (pass_ccp): Use it.
5643         (do_ssa_store_ccp): New.
5644         (gate_store_ccp): New.
5645         (pass_store_ccp): Declare.
5646         * tree-ssa-copy.c: Include tree-ssa-propagate.h.
5647         (may_propagate_copy): Reformat.
5648         Don't abort if ORIG is a virtual and DEST isn't.
5649         If NEW does not have alias information but DEST does,
5650         copy it.
5651         (copy_of, cached_last_copy_of, do_store_copy_prop, enum
5652         copy_prop_kind, which_copy_prop): Declare.
5653         (stmt_may_generate_copy, get_copy_of_val,
5654         get_last_copy_of, set_copy_of_val, dump_copy_of,
5655         copy_prop_visit_assignment, copy_prop_visit_cond_stmt,
5656         copy_prop_visit_stmt, copy_prop_visit_phi_node,
5657         init_copy_prop, fini_copy_prop, execute_copy_prop,
5658         gate_copy_prop, do_copy_prop, gate_store_copy_prop,
5659         store_copy_prop): New.
5660         (pass_copy_prop, pass_store_copy_prop): Declare.
5661         * tree-ssa-dom.c (struct opt_stats_d): Add fields
5662         'num_const_prop' and 'num_copy_prop'.
5663         (cprop_operand): Update them.
5664         (dump_dominator_optimization_stats): Dump them.
5665         (tree_ssa_dominator_optimize): Call update_ssa instead of
5666         rewrite_into_ssa.
5667         (loop_depth_of_name): Declare extern.
5668         (simplify_cond_and_lookup_avail_expr): Guard against NULL
5669         values for LOW or HIGH.
5670         (cprop_into_successor_phis): Only propagate if NEW != ORIG.
5671         (record_equivalences_from_stmt): Call expr_computes_nonzero.
5672         (cprop_operand): Only propagate if VAL != OP.
5673         * tree-ssa-dse.c (dse_optimize_stmt): Mark symbols in removed
5674         statement for renaming.
5675         * tree-ssa-loop-im.c (move_computations): Call update_ssa.
5676         * tree-ssa-loop-ivopts.c (rewrite_address_base): Call
5677         add_type_alias if necessary.
5678         Call mark_new_vars_to_rename.
5679         (tree_ssa_iv_optimize): If new symbols need to be renamed,
5680         mark every statement updated, call update_ssa and
5681         rewrite_into_loop_closed_ssa.
5682         * tree-ssa-loop-manip.c (add_exit_phis): Do not remove DEF_BB
5683         from LIVEIN if VAR is a virtual.
5684         * tree-ssa-loop.c (tree_loop_optimizer_init): Call update_ssa.
5685         * tree-ssa-operands.c (get_expr_operands): Handle ASSERT_EXPR.
5686         (get_call_expr_operands): Reformat statement.
5687         (add_stmt_operand): Don't create V_MAY_DEFs for read-only
5688         symbols.
5689         * tree-ssa-propagate.c (ssa_prop_init): Initialize
5690         SSA_NAME_VALUE for every name.
5691         (first_vdef, stmt_makes_single_load, stmt_makes_single_store,
5692         get_value_loaded_by): New.
5693         (replace_uses_in, replace_vuses_in, replace_phi_args_in,
5694         substitute_and_fold): Move from tree-ssa-ccp.c.
5695         * tree-ssa-propagate.h (struct prop_value_d, prop_value_t,
5696         first_vdef, stmt_makes_single_load, stmt_makes_single_store,
5697         get_value_loaded_by, replace_uses_in, substitute_and_fold):
5698         Declare.
5699         * tree-ssa.c (verify_use): Fix error message.
5700         (propagate_into_addr, replace_immediate_uses, get_eq_name,
5701         check_phi_redundancy, kill_redundant_phi_nodes,
5702         pass_redundant_phi): Remove.  Update all users.
5703         * tree-vect-transform.c (vect_create_data_ref_ptr): Call
5704         add_type_alias, if necessary.
5705         * tree-vectorizer.h (struct _stmt_vect_info): Update
5706         documentation for field 'memtag'.
5707         * tree-vrp.c: New file.
5708         * tree.def (ASSERT_EXPR): Define.
5709         * tree.h (ASSERT_EXPR_VAR): Define.
5710         (ASSERT_EXPR_COND): Define.
5711         (SSA_NAME_VALUE_RANGE): Define.
5712         (struct tree_ssa_name): Add field 'value_range'.
5713         (PHI_REWRITTEN): Remove.
5714         (struct tree_phi_node): Remove field 'rewritten'.
5715         * doc/invoke.texi (-fdump-tree-storeccp, -ftree-copy-prop,
5716         -ftree-store-copy-prop): Document.
5717         * doc/tree-ssa.texi: Remove broken link to McCAT's compiler.
5718         Document usage of update_ssa.
5719
5720 2005-04-08  David Edelsohn  <edelsohn@gnu.org>
5721
5722         PR target/20814
5723         * config/rs6000/predicates.md (altivec_register_operand): Accept
5724         SUBREG.
5725         (and64_operand): Do not limit CONST_INT to mask64_operand.
5726         (and64_2_operand): Do not limit CONST_INT to mask64_1or2_operand.
5727         (and_operand): Do not limit CONST_INT to mask_operand.
5728
5729 2005-04-09  Hans-Peter Nilsson  <hp@axis.com>
5730
5731         PR rtl-optimization/20466
5732         * flow.c (invalidate_mems_from_set): Handle a MEM by checking it
5733         for overlap of the address of each list member.
5734         (mark_set_1): Call invalidate_mems_from_set for MEMs too.
5735
5736 2005-04-08  Mike Stump  <mrs@apple.com>
5737
5738         * config/darwin.c (indirect_data): Fix typo in strncmp logic.
5739
5740         * config/rs6000/rs6000.c (rs6000_emit_prologue): Use 5 nops,
5741         instead of 4.
5742
5743 2005-04-08  Kazu Hirata  <kazu@cs.umass.edu>
5744
5745         * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Remove.
5746
5747         * function.c (push_function_context_to): Don't set
5748         contains_functions.
5749         * function.h (function): Remove contains_functions.
5750         (current_function_contains_functions): Remove.
5751
5752         * function.h (function): Remove instrument_entry_exit.
5753         (current_function_instrument_entry_exit): Remove.
5754
5755         * function.h (nonlocal_labels): Remove.
5756
5757         * tree.h (STRIP_MAIN_TYPE_NOPS): Remove.
5758
5759         * genattrtab.c (attr_desc): Remove negative_ok and unsigned_p.
5760         (check_attr_value, write_attr_get, write_expr_attr_cache,
5761         find_attr, make_internal_attr): Don't reference negative_ok or
5762         unsigned_p.
5763         * genattrtab.h (ATTR_NEGATIVE_OK, ATTR_UNSIGNED,
5764         ATTR_FUNC_UNITS, ATTR_BLOCKAGE): Remove.
5765         (ATTR_STATIC): Adjust the value.
5766
5767         * c-common.h (C_ARTIFICIAL_STRING_P): Remove.
5768
5769 2005-04-08  Ulrich Weigand  <uweigand@de.ibm.com>
5770
5771         * config/s390/tpf.h (ASM_SPEC): Define.
5772
5773 2005-04-08  Kazu Hirata  <kazu@cs.umass.edu>
5774
5775         * tree-flow.h: Remove the prototype for
5776         redirect_immediate_uses.
5777         (TDFA_USE_OPS, TDFA_USE_VOPS): Remove.
5778
5779 2005-04-08  Richard Earnshaw  <richard.earnshaw@arm.com>
5780
5781         * arm.c (arm_const_double_by_parts): New function.
5782         * arm-protos.h (arm_const_double_by_parts): Add prototype.
5783         * arm.md (define_split for 64-bit constants): Add another one.
5784
5785 2005-04-08  Andrew MacLeod  <amacleod@redhat.com>
5786
5787         * tree-ssa-operands.c (correct_use_link): Remove linear scan.
5788
5789 2005-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5790
5791         * system.h: Revert last change.
5792
5793 2005-04-08  Richard Sandiford  <rsandifo@redhat.com>
5794
5795         * config/xtensa/xtensa.h (target_flags, MASK_NO_FUSED_MADD)
5796         (MASK_CONST16, TARGET_NO_FUSED_MADD, TARGET_CONST16)
5797         (TARGET_SWITCHES): Delete.
5798         * config/xtensa/xtensa.c (TARGET_DEFAULT_TARGET_FLAGS): Define.
5799         * config/xtensa/xtensa.md (muladdsf3, mulsubsf3): Check
5800         TARGET_FUSED_MADD instead of !TARGET_NO_FUSED_MADD.
5801         * config/xtensa/xtensa.opt: New file.
5802
5803 2005-04-08  Ben Elliston  <bje@au.ibm.com>
5804
5805         * config/fp-bit.c: Include L_mul_tf in #endif comment.
5806         * config/fp-bit.h: Tidy comments.
5807
5808 2005-04-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5809
5810         * system.h: Poison PARAMS.
5811
5812 2005-04-07  Richard Sandiford  <rsandifo@redhat.com>
5813
5814         * config/vax/vax.h (target_flags, MASK_UNIX_ASM, MASK_VAXC_ALIGNMENT)
5815         (MASK_G_FLOAT, TARGET_UNIX_ASM, TARGET_VAXC_ALIGNMENT, TARGET_G_FLOAT)
5816         (TARGET_SWITCHES): Delete.
5817         * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Override default.
5818         * config/vax/vax.opt: New file.
5819
5820 2005-04-07  Daniel Berlin  <dberlin@dberlin.org>
5821
5822         * tree-ssa-dse.c (dse_optimize_stmt): Fix incorrect comment.
5823
5824 2005-04-07  Ian Lance Taylor  <ian@airs.com>
5825
5826         * config/iq2000/iq2000.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Don't
5827         define.
5828         * config/mips/mips.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Likewise.
5829         * config/sparc/sparc.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE):
5830         Likewise.
5831
5832 2005-04-07  Kazu Hirata  <kazu@cs.umass.edu>
5833
5834         * tree-ssa-sink.c (nearest_common_dominator_of_uses): Consider
5835         all immediate uses in PHI nodes.
5836
5837 2005-04-07  Richard Earnshaw  <richard.earnshaw@arm.com>
5838
5839         * arm.c (arm_const_double_inline_cost): Handle any constant by
5840         using gen_lowpart and gen_highpart_mode.
5841         (note_invalid_constants): All constants in an RTX with a constraint
5842         that permits memory are now pushed to the constant pool.
5843         (output_move_double): Delete code to handle reg to reg and
5844         constant to reg moves.
5845         (const_double_needs_minipool, output_mov_immediate): Delete.
5846         * arm.h (EXTRA_CONSTRAINT_STR_ARM): All 'D' variants now handle
5847         CONST_INT and CONST_VECTOR.
5848         * arm.md (ANY64): New mode macro.
5849         (arm_movdi): Split reg-reg and const-reg moves.  Simplify constraints.
5850         (movdf_soft_insn): Split reg-reg and const-reg moves.
5851         (split patterns for 64-bit constant and register moves): New.
5852         * cirrus.md (cirrus_arm_movdi): Split reg-reg and const-reg moves.
5853         (cirrus_movdf_hard_insn): Likewise.
5854         * fpa.md (movdf_fpa): Likewise.
5855         * iwmmxt.md (iwmmxt_arm_movdi): Likewise.
5856         (movv8qi_internal, movv4hi_internal, movv2si_internal): Fix
5857         constraints.
5858         (movv2si_internal_2): Likewise.
5859         * vfp.md (arm_movdi_vfp): Split reg-reg and const-reg moves.
5860         (movdf_vfp): Likewise.
5861         * arm-protos.h (output_mov_immediate): Delete prototype.
5862
5863 2005-04-07  Joseph S. Myers  <joseph@codesourcery.com>
5864
5865         PR target/20093
5866         * simplify-rtx.c (simplify_unary_operation_1): Check
5867         SUBREG_PROMOTED_UNSIGNED_P (op) > 0 for zero-extension.
5868
5869 2005-04-06  James E Wilson  <wilson@specifixinc.com>
5870
5871         PR target/20717
5872         * cgraphunit.c (record_call_1, case FDESC_EXPR): Handle same as
5873         ADDR_EXPR.
5874
5875 2004-04-06  Richard Sandiford  <rsandifo@redhat.com>
5876
5877         * coverage.h (GCOV_TYPE_NODE): Delete.
5878         * coverage.c (coverage_counter_alloc, tree_coverage_counter_ref)
5879         (build_ctr_info_type): Use get_gcov_type () instead of GCOV_TYPE_NODE.
5880         * tree-profile.c (tree_gen_edge_profiler, tree_gen_interval_profiler)
5881         (tree_gen_pow2_profiler, tree_gen_one_value_profiler): Likewise.
5882         * value-prof.c (tree_divmod_fixed_value_transform): Delete.
5883
5884 2004-04-06  Richard Sandiford  <rsandifo@redhat.com>
5885
5886         PR other/20792
5887         * Makefile.in (gcc.pot): Remove options.c dependency.
5888         * optc-gen.awk: Don't quote help strings with N_().
5889
5890 2005-04-06  James A. Morrison  <phython@gcc.gnu.org>
5891
5892         * c-common.c (handle_malloc_atttribute): Only set DECL_IS_MALLOC if
5893         the function returns a pointer type.
5894
5895 2005-04-06  Daniel Berlin  <dberlin@dberlin.org>
5896
5897         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): New
5898         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): New
5899         * doc/invoke.texi: Documnet salias-max-implicit-fields.
5900         * tree-ssa-alias.c (struct used_part): Add implicit_uses and
5901         explicit_uses members.
5902         (get_or_create_used_part_for): Initialize new fields.
5903         (fieldoff_compare): New function.
5904         (create_overlap_variables_for): Count number of fields, use
5905         heuristic to determine whether to create subvars for vars with
5906         only implicit uses.
5907         Sort the field list by offset and avoid creating duplicate SFT's.
5908
5909 2005-04-06  Richard Sandiford  <rsandifo@redhat.com>
5910
5911         * c.opt (-F): Remove trailing whitespace from help string.
5912         (-finput-charset): Use a tab to separate the switch name and help
5913         string.
5914         * common.opt (-fsched-stalled-insns, -fsched-stalled-insns-dep)
5915         (-ftree-vectorizer-verbose): Likewise.
5916
5917 2005-04-06  Kazu Hirata  <kazu@cs.umass.edu>
5918
5919         * tree-ssa-sink.c (nearest_common_dominator_of_uses): Look at
5920         a PHI argument where a use occurs instead of all PHI arguments.
5921
5922 2005-04-06  Joseph S. Myers  <joseph@codesourcery.com>
5923
5924         * c-decl.c (finish_decl): Apply pending #pragma weak regardless of
5925         scope.
5926
5927 2005-04-06  Kazu Hirata  <kazu@cs.umass.edu>
5928
5929         * cse.c, tree-flow-inline.h, tree-flow.h, tree-ssa-operands.c,
5930         tree-ssa-sink.c, tree.h, config/bfin/bfin.c,
5931         config/bfin/bfin.h: Fix comment typos.
5932
5933 2005-04-06  Ranjit Mathew  <rmathew@hotmail.com>
5934
5935         * doc/install.texi: Update the URL for Jacks.
5936         * doc/sourcebuild.texi: Likewise.
5937
5938 2005-04-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
5939
5940         PR target/17245
5941         * config/sparc/sparc.c (legitimate_address_p): Remove 'imm2'.
5942         Revert 2004-10-08 patch.  Reject TFmode LO_SUM in 32-bit mode.
5943
5944 2005-04-06  Kelley Cook  <kcook@gcc.gnu.org>
5945
5946         * Makefile.in (LIBGCC2_CFLAGS): Revert -pipe change.
5947
5948 2005-04-06  Richard Sandiford  <rsandifo@redhat.com>
5949
5950         * config/v850/v850-protos.h (override_options): Delete.
5951         * config/v850/v850.h (target_flags, MASK_GHS, MASK_LONG_CALLS, MASK_EP)
5952         (MASK_PROLOG_FUNCTION, MASK_DEBUG, MASK_V850, MASK_V850E)
5953         (MASK_SMALL_SLD, MASK_BIG_SWITCH, MASK_NO_APP_REGS, MASK_DISABLE_CALLT)
5954         (MASK_STRICT_ALIGN, MASK_US_BIT_SET, MASK_US_MASK_SET, TARGET_GHS)
5955         (TARGET_LONG_CALLS, TARGET_EP, TARGET_PROLOG_FUNCTION, TARGET_V850)
5956         (TARGET_BIG_SWITCH, TARGET_DEBUG, TARGET_V850E, TARGET_US_BIT_SET)
5957         (TARGET_SMALL_SLD, TARGET_DISABLE_CALLT, TARGET_NO_APP_REGS)
5958         (TARGET_STRICT_ALIGN, TARGET_SWITCHES, TARGET_OPTIONS)
5959         (OVERRIDE_OPTIONS): Delete.
5960         (MASK_CPU): Redefine as MASK_V850 | MASK_V850E.
5961         (small_memory_info): Remove the value field.
5962         (CONDITIONAL_REGISTER_USAGE): Check !TARGET_APP_REGS rather than
5963         TARGET_NO_APP_REGS.
5964         * config/v850/v850.c (small_memory): Remove the value field.
5965         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
5966         (override_options): Delete.
5967         (v850_handle_memory_option, v850_handle_option): New functions.
5968         * config/v850/v850.opt: New file.
5969
5970 2005-04-06  Geoffrey Keating  <geoffk@apple.com>
5971
5972         * config.host: Add a section for generic hosts, and a subsection
5973         for Darwin.  Add a case for x86-darwin.  Update ppc-darwin case.
5974         * config/host-darwin.c: New, split out of config/rs6000/host-darwin.c.
5975         * config/host-darwin.h: New.
5976         * config/x-darwin: New.
5977         * config/i386/host-i386-darwin.c: New.
5978         * config/i386/x-darwin: New.
5979         * config/rs6000/host-darwin.c: Include host-darwin.h.
5980         (darwin_rs6000_gt_pch_get_address): Move to config/host-darwin.c.
5981         (darwin_rs6000_gt_pch_use_address): Likewise.
5982         * config/rs6000/x-darwin: Change name of .o built, update
5983         dependencies for changes to rs6000/host-darwin.c.
5984
5985 2005-04-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
5986
5987         PR target/17824
5988         * config/c4x/c4x.h (ASM_PROG, LD_PROG): Remove.
5989
5990 2005-04-06  Dorit Naishlos  <dorit@il.ibm.com>
5991
5992         * tree-vect-analyze.c (vect_analyze_loop_form): Call
5993         split_loop_exit_edge instead of loop_split_edge_with.
5994
5995 2005-04-06  Paolo Bonzini  <bonzini@gnu.org>
5996
5997         * config/rs6000/altivec.md (UNSPEC_VSLW, UNSPEC_SUBS,
5998         UNSPEC_SET_VSCR): New constants, used throughout.
5999         (*andc3_v4sf): New.
6000         (altivec_vspltisb, altivec_vsplitish, altivec_vsplitisw):
6001         Replace with...
6002         (altivec_vspltis<VI_char>): ... this pattern, using
6003         a QImode const_int_operand for the immediate.
6004         (abs<mode>2, absv4sf2, altivec_abss_<mode>): Rewrite as
6005         define_expands.
6006
6007 2005-04-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
6008
6009         PR target/17822
6010         * config/avr/t-avr (AR_FOR_TARGET,RANLIB_FOR_TARGET): Remove.
6011
6012 2005-04-06  Kelley Cook  <kcook@gcc.gnu.org>
6013
6014         * Makefile.in (LIBGCC2_CFLAGS): Compile with -pipe.
6015
6016 2005-04-06  Ben Elliston  <bje@au.ibm.com>
6017
6018         * gcc.c: Correct comment about DEFAULT_SWITCH_TAKES_ARG and
6019         DEFAULT_WORD_SWITCH_TAKES_ARG which incorrectly reported these
6020         macros as living in "this file" and not gcc.h.
6021
6022 2005-04-06  Ben Elliston  <bje@au.ibm.com>
6023
6024         * doc/invoke.texi (Optimize Options): Mention -ftree-lrs, not
6025         -ftree-live_range_split.  Perhaps renamed at some point?
6026
6027 2005-04-06  Zdenek Dvorak  <dvorakz@suse.cz>
6028
6029         PR target/20625
6030         * tree-ssa-loop-ivopts.c (generic_type_for): New function.
6031         (add_candidate_1): Use generic_type_for instead of unsigned_type_for.
6032
6033 2005-04-06  Zdenek Dvorak  <dvorakz@suse.cz>
6034
6035         * tree-flow.h (number_of_iterations_cond): Declaration removed.
6036         * tree-ssa-loop-niter.c (number_of_iterations_cond): Made static.
6037         (number_of_iterations_special): New function.
6038         (number_of_iterations_exit): Use number_of_iterations_special.
6039         Use simplify_using_outer_evolutions only at -O3.
6040         (number_of_iterations_cond, tree_simplify_using_condition,
6041         simplify_using_initial_conditions, loop_niter_by_eval,
6042         compare_trees, can_count_iv_in_wider_type_bound,
6043         simplify_using_outer_evolutions): Use fold_build.
6044
6045 2005-04-05  Thomas Fitzsimmons  <fitzsim@redhat.com>
6046
6047         * doc/install.texi (Configuration): Document --with-java-home.
6048
6049 2005-04-05  Richard Henderson  <rth@redhat.com>
6050
6051         PR target/20342
6052         PR target/20447
6053         * config/i386/i386.c (print_operand): Handle vector zeros.
6054         (ix86_split_to_parts): Handle CONST_VECTOR.
6055         (ix86_hard_regno_mode_ok): Allow MMX modes in general regs.
6056         (ix86_modes_tieable_p): Use ix86_hard_regno_mode_ok to decide
6057         what modes to tie for MMX and SSE registers.
6058         * config/i386/i386.h (MMX_REG_MODE_P): Remove.
6059         * config/i386/i386.md: Extend move 0 -> xor peephole to apply
6060         to vector modes as well.
6061         * config/i386/predicates.md (const0_operand): Handle VOIDmode
6062         properly as an input mode.
6063
6064 2005-04-05  Andrew MacLeod  <amacleod@redhat.com>
6065
6066         * tree-ssa-operands.c (verify_abort): Use %p for pointers.
6067
6068 2005-04-05  Andrew MacLeod  <amacleod@redhat.com>
6069
6070         * tree-pretty-print.c (dump_generic_node): Use %p for pointer.
6071
6072 2005-04-05  Jakub Jelinek  <jakub@redhat.com>
6073
6074         * config/i386/i386.c (init_cumulative_args): For -m32 -mfpmath=sse
6075         and local functions, set sse_nregs to 8 and float_in_sse.
6076         (function_arg_advance, function_arg): If float_in_sse, pass
6077         SFmode and DFmode arguments in SSE registers.
6078         * config/i386/i386.h (CUMULATIVE_ARGS): Add float_in_sse field.
6079
6080         * config/i386/i386.c (ix86_value_regno): Only optimize local functions
6081         of -funit-at-a-time.
6082
6083 2005-04-05  Paolo Bonzini  <bonzini@gnu.org>
6084
6085         * config/i386/i386-protos.h (ix86_function_value): Accept two
6086         arguments, like the target macro.
6087         * config/i386/i386.h (FUNCTION_VALUE): Pass both arguments.
6088         * config/i386/i386.c (ix86_function_value): Accept the second
6089         argument of the target macro.
6090         (ix86_function_ok_for_sibcall): Pass a function pointer to
6091         ix86_function_value.
6092         (ix86_function_value, ix86_libcall_value) [!TARGET_64BIT]: Adjust
6093         call to ix86_value_regno).
6094         (ix86_value_regno): Add support for returning floating point values
6095         in SSE registers.
6096
6097 2005-04-05  Jakub Jelinek  <jakub@redhat.com>
6098
6099         PR tree-optimization/20076
6100         * tree-inline.c (inline_forbidden_p_1): Prevent inlining functions
6101         that call __builtin_return or __builtin_apply_args.
6102
6103 2005-04-05  Andrew MacLeod  <amacleod@redhat.com>
6104
6105         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use update_stmt.
6106         Use immediate use iterator.
6107         (stmt_is_bumper_for_loop): Use immediate use iterator.
6108         * predict.c (strip_builtin_expect): Use update_stmt.
6109         * tree-cfg.c (update_modified_stmts): New. Call update_stmt_if_modified
6110         on all elements of a STATEMENT_LIST.
6111         (bsi_insert_before, bsi_insert_after): Call update_modified_stmts.
6112         (bsi_remove): Remove imm_use links and mark the stmt as modified.
6113         (bsi_replace): Mark stmt as modified and the update it.
6114         * tree-complex.c (update_complex_assignment): Call mark_stmt_modified.
6115         (expand_complex_libcal): Call update_stmt.
6116         (expand_complex_comparison): Call mark_stmt_modified.
6117         (expand_complex_operations_1): Call update_stmt_if_modified.
6118         (expand_vector_operations_1): Call mark_stmt_modified.
6119         * tree-dfa.c (compute_immediate_uses, free_df_for_stmt, free_df,
6120         compute_immediate_uses_for_phi, compute_immediate_uses_for_stmt,
6121         add_immediate_use, redirect_immediate_use,
6122         redirect_immediate_uses, dump_immediate_uses, debug_immediate_uses,
6123         dump_immediate_uses_for, debug_immediate_uses_for): Delete.
6124         (mark_new_vars_to_rename): Call update_stmt.
6125         * tree-dump.c (dump_option_value_in): Add "stmtaddr".
6126         * tree-flow-inline.h (modify_stmt): Rename to mark_stmt_modified.
6127         Ignore PHI nodes.
6128         (unmodify_stmt): Delete.
6129         (update_stmt): New.  Force an update of a stmt.
6130         (update_stmt_if_modified): update a stmt if it is out of date.
6131         (get_stmt_operands): Verify stmt is NOT modified.
6132         (stmt_modified_p): Update comment.
6133         (delink_imm_use): Remove a use node from its immuse list.
6134         (link_imm_use_to_list): Link a use node to a specific list.
6135         (link_imm_use): Link a node to the correct list.
6136         (set_ssa_use_from_ptr): Set a use node to a specific value, and insert
6137         it in the correct list, if appropriate.
6138         (link_imm_use_stmt): Link a use node, and set the stmt pointer.
6139         (relink_imm_use): Link a use node in place of another node in a list.
6140         (relink_imm_use_stmt): LInk a node in place of another node, and set
6141         the stmt pointer.
6142         (end_safe_imm_use_traverse): New.  Terminate a safe immuse iterator.
6143         (end_safe_imm_use_p): New.  Check for the end of a safe immuse iterator.
6144         (first_safe_imm_use): New.  Initialize a safe immuse iterator.
6145         (next_safe_imm_use): New.  Proceed to next safe immuse iterator value.
6146         (end_readonly_imm_use_p): New.  Check for end of a fast immuse iterator.
6147         (first_readonly_imm_use): New.  Initialize a fast immuse iterator.
6148         (next_readonly_imm_use): New.  Get the next fast immuse iterator value.
6149         (has_zero_uses): New.  Return true if there are no uses of a var.
6150         (has_single_use): New.  Return true if there is only a single use of a
6151         variable.
6152         (single_imm_use): New.  Return the simgle immediate use.
6153         (num_imm_uses): New.  Return the number of immediate uses.
6154         (get_v_must_def_ops): Use is now a pointer.
6155         (use_operand_p, get_v_may_def_op_ptr, get_vuse_op_ptr,
6156         get_v_must_def_kill_ptr, get_phi_arg_def_ptr): Return the address of
6157         the use node.
6158         (get_immediate_uses, num_immediate_uses, immediate_use): Delete.
6159         (delink_stmt_imm_use): Delink all immuses from a stmt.
6160         (phi_arg_index_from_use): New.  Return a phi arg index for a use.
6161         * tree-flow.h (struct dataflow_d): Delete.
6162         (immediate_use_iterator_d): New.  Immediate use iterator struct.
6163         (FOR_EACH_IMM_USE_FAST): New.  Macro for read only immuse iteration.
6164         (FOR_EACH_IMM_USE_SAFE): New.  Macro for write-safe immuse iteration.
6165         (BREAK_FROM_SAFE_IMM_USE): New.  Macro for earlyu exit from write-safe
6166         iteration.
6167         (struct stmt_ann_d): Remove dataflow_t from struct.
6168         * tree-if-conv.c (tree_if_conversion).  Don't call free_df.
6169         (if_convertible_phi_p): Use FAST immuse iterator.
6170         (if_convertible_loop_p): Don't call compute_immediate_uses.
6171         (replace_phi_with_cond_modify_expr): Call update_stmt.
6172         * tree-into-ssa.c (mark_def_sites, ssa_mark_def_sites): Call
6173         update_stmt_if_modified.
6174         (rewrite_all_into_ssa): Initialize ssa operands.
6175         * tree-loop-linear.c (linear_transform_loops): Don't call free_df or
6176         compute_immediate_uses.
6177         * tree-optimize.c (execute_todo): Call verify_ssa whenever the
6178         ssa_property is available.
6179         (execute_one_pass):  Change parameters passed to execute_todo.
6180         * tree-outof-ssa.c (rewrite_trees): Don't call modify_stmt.
6181         (remove_ssa_form): Call fini_ssa_operands.
6182         (insert_backedge_copies): Delete call to modify_stmt.
6183         * tree-phinodes.c (make_phi_node): Initialize use nodes.
6184         (release_phi_node): Delink any use nodes before releasing.
6185         (resize_phi_node): Relink any use nodes.
6186         (remove_phi_arg_num): Delink the use node.
6187         (remove_phi_node): Release the ssa_name AFTER releasing the phi node.
6188         (remove_all_phi_nodes_for): Release phi node first.
6189         * tree-pretty-print.c (dump_generic_node): Print stmt address.
6190         * tree-sra.c (mark_all_v_defs): Call update_stmt_if_modified.
6191         (scalarize_use, scalarize_copy): Call update_stmt.
6192         * tree-ssa-alias.c (compute_may_aliases): Update all modified stmts.
6193         (compute_points_to_and_addr_escape): Call mark_stmt_modified.
6194         * tree-ssa-cpp.c (need_imm_uses_for): Delete.
6195         (ccp_initialize): Remove call to compute_immediate_uses.
6196         (substitute_and_fold, execute_fold_all_builtins): Call update_stmt.
6197         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Update all modified
6198         stmts.
6199         (simplify_cond_and_lookup_avail_expr): Call mark_stmt_modified.
6200         (simplify_switch_and_lookup_avail_expr): Call mark_stmt_modified.
6201         (eliminate_redundant_computations): Call mark_stmt_modified.
6202         (cprop_operand): Call mark_stmt_modified.
6203         (optimize_stmt): Call update_stmt_if_modified and mark_stmt_modified.
6204         * tree-ssa-dse.c (fix_phi_uses, fix_stmt_v_may_defs): Delete.
6205         (dse_optimize_stmt): Use new immuse interface.
6206         (tree_ssa_dse): Remove calls to compute_immediate_uses and free_df.
6207         * tree-ssa-forwprop.c (need_imm_uses_for): Delete.
6208         (substitute_single_use_vars): Use new immuse interface.
6209         (tree_ssa_forward_propagate_single_use_vars): Remove calls to free_df
6210         and compute_immediate_uses.
6211         * tree-ssa-loop-im.c (single_reachable_address): Use new immuse
6212         interface.
6213         (rewrite_mem_refs): Call update_stmt.
6214         (determine_lsm): Remove call to compute_imm_uses and free_df.
6215         * tree-ssa-loop-ivcanon.c (create_canonical_iv): Call update_stmt.
6216         (try_unroll_loop_completely): Call update_stmt.
6217         * tree-ssa-loop-ivopts.c (rewrite_address_base): Call update_stmt.
6218         (rewrite_use_compare): Call update_stmt.
6219         (compute_phi_arg_on_exit): Insert each stmt before trying to process.
6220         (rewrite_use) : Call update_stmt.
6221         * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Add arg to call.
6222         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Call
6223         update_stmt.
6224         * tree-ssa-operands.c (NULL_USE_OPERAND_P): Remove declaration.
6225         (allocate_use_optype, allocate_vuse_optype): Adjust allocation size.
6226         (free_uses, free_vuses, free_v_may_defs, free_v_must_defs): Delink
6227         use nodes.
6228         (initialize_vuse_operand): New.  Initialize a vuse operand.
6229         (initialize_v_may_def_operand): New.  Initialize a maydef operand.
6230         (initialize_v_must_def_operand): New.  Initialize a mustdef operand.
6231         (finalize_ssa_defs): Use stmt parameter.
6232         (correct_use_link): Ensure a use node is in the correct list, and has
6233         the correct stmt pointer.
6234         (finalize_ssa_uses, finalize_ssa_v_may_defs, finalize_ssa_vuses,
6235         finalize_ssa_v_must_defs): Also initialize use nodes.
6236         (finalize_ssa_stmt_operands): Pass extra stmt operands.
6237         (build_ssa_operands): Seperate parsing from final operand construction.
6238         (parse_ssa_operands): New.  Parse entry point for operand building.
6239         (swap_tree_operands): New.  Swap 2 tree operands.
6240         (update_stmt_operands): Ranamed from get_stmt_operands.  Always builds
6241         operands.
6242         (get_expr_operands): Call swap_tree_operands when needed.
6243         (copy_virtual_operands): Use initialize routines for virtual use ops.
6244         (create_ssa_artficial_load_stmt): Add extra stmt parameter.
6245         (verify_abort): New.  Issue imm_use error.
6246         (verify_imm_links): New Verify imm_use links for a var.
6247         (dump_immediate_uses_for): New.  Dump imm_uses for a var to file.
6248         (dump_immediate_uses): New.  Dump imm_uses for all vars to file.
6249         (debug_immediate_uses): New.  Dump imm_uses for all vars to stderr.
6250         (debug_immediate_uses_for): New.  Dump imm_uses for a var to stderr.
6251         * tree-ssa-operands.h (struct use_operand_ptr): Delete.
6252         (NULL_USE_OPERAND_P) Define.
6253         (use_optype_d, v_def_use_operand_type, vuse_optype_d): Add immediate
6254         use node.
6255         (struct vuse_operand_type): New struct.
6256         (SET_USE): Call set_ssa_use_from_ptr.
6257         (USE_STMT): Define.
6258         (PHI_ARG_INDEX_FROM_USE): Define.
6259         * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Set the phi
6260         argument via SET_USE, not PHI_ARG_DEF_TREE.
6261         * tree-ssa-pre.c (eliminate): Call update_stmt.
6262         * tree-ssa-propagate.c (cfg_blocks_get): Use imm_use iterators.  Don't
6263         call free_df.
6264         * tree-ssa-sink.c (all_immediate_uses_same_place): Use imm_use iterator.
6265         (nearest_common_dominator_of_uses): Use imm_use iterator.
6266         (statement_sink_location): Use imm_use iterator and interface.
6267         (execute_sink_code): Don't call compute_immediate_uses or free-df.
6268         * tree-ssa-threadupdate.c (create_edge_and_update_destination_phis): Use
6269         PHI_ARG_DEF, not PHI_ARG_DEF_TREE.
6270         * tree-ssa.c (verify_use, verify_phi_args): Verify some imm_use info.
6271         (verify_ssa): Ensure no stmt is marked modify after optimization pass
6272         if new parameter is true.
6273         (init_tree_ssa): Don't initialize operand cache here.
6274         (delete_tree_ssa): Don't destroy operand cache here.
6275         (propagate_into_addr): Pass in a use pointer, return true if anything
6276         was changed.
6277         (replace_immediate_uses): Use imm_use iterator, call update_stmt.
6278         (check_phi_redundancy): Use imm_use iterator.
6279         (kill_redundant_phi_nodes): Don't call compute_immediate_uses or
6280         free_df.
6281         * tree-ssanames.c (make_ssa_name): Initialize imm_use node.
6282         (release_ssa_name): Delink node and all elements in its imm_use list.
6283         * tree-tailcall.c (adjust_return_value): Call update_stmt.
6284         * tree-vect-analyze.c (vect_stmt_relevant_p): Use imm_use iterator.
6285         * tree-vectorizer.c (need_imm_uses_for): Delete.
6286         (vectorize_loops): Dont call compute_immediate_uses or free_df.
6287         * tree.h (struct ssa_imm_use_d): Define.
6288         (SSA_NAME_IMM_USE_NODE): Define.
6289         (struct tree_ssa_name): Add imm_use node.
6290         (PHI_DF): Delete.
6291         (PHI_ARG_IMM_USE_NODE): Define.
6292         (struct phi_arg_d): Add imm_use node.
6293         (struct tree_phi_node): Remove struct dataflow_d element.
6294         (TDF_STMTADDR): Define.
6295
6296 2005-04-05  Dale Johannesen  <dalej@apple.com>
6297
6298         * doc/invoke.texi (Optimization Options):  Remove
6299         duplicate -fcse-follow-jumps.  Add -fweb.
6300         (-ftree-lim):  Fix spelling (-ftree-loop-im, invariants).
6301         (-fivcanon):  Fix spelling (-ftree-loop-ivcanon).
6302
6303 2005-04-05  Per Bothner  <per@bothner.com>
6304
6305         * tree-ssa.c (execute_early_warn_uninitialized): Pass context node
6306         to talk_tree as 'data' parameter, rather than EXPR_LOCUS.
6307         (warn_uninit): Get EXPR_LOCUS from context now instead.
6308         This fixes a USE_MAPPED_LOCATION testsuite failure.
6309
6310         * tree-ssa.c (warn_uninitialized_var): Remove useless local.
6311
6312 2005-04-05  Per Bothner  <per@bothner.com>
6313
6314         * c-decl.c (finish_function): If USE_MAPPED_LOCATION set the location
6315         of the artification 'return 0' in main() to BUILTINS_LOCATION.
6316         * tree-cfg.c (remove_bb): Check that location isn't BUILTINS_LOCATION
6317         before warning.
6318
6319 2004-04-05  Devang Patel  <dpatel@apple.com>
6320
6321         * config/rs600/altivec.md (altivec_vsr<VI_char>): Rename to ..
6322         (lhsr<mode>3): ... new name.
6323         (altivec_vsra<VI_char>): Rename to ..
6324         (ashr<mode>3): ... new name.
6325         * config/rs6000/rs6000.c (builtin_description): Rename shift
6326         operations.
6327
6328 2004-04-05  Paolo Bonzini  <bonzini@gnu.org>
6329
6330         * combine.c (RTL_HOOKS_GEN_LOWPART_NO_EMIT): Use
6331         gen_lowpart_for_combine.
6332         * cse.c (gen_lowpart_if_possible): Move...
6333         * rtlhooks.c (gen_lowpart_if_possible): ... here.  Also try
6334         gen_lowpart_SUBREG.
6335         (gen_lowpart_no_emit_general): Use it.
6336
6337 2005-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
6338
6339         * config/sparc/sparc.c (TARGET_ASM_FILE_END): Undefine before
6340         overriding.
6341
6342 2005-04-05  Paolo Bonzini  <bonzini@gnu.org>
6343
6344         * system.h: Fix typo.
6345
6346 2005-04-05  Bernd Schmidt  <bernd.schmidt@analog.com>
6347
6348         * config/bfin/bfin-modes.def: New file.
6349         * config/bfin/bfin-protos.h: New file.
6350         * config/bfin/bfin.c: New file.
6351         * config/bfin/bfin.h: New file.
6352         * config/bfin/bfin.md: New file.
6353         * config/bfin/bfin.opt: New file.
6354         * config/bfin/crti.s: New file.
6355         * config/bfin/crtn.s: New file.
6356         * config/bfin/elf.h: New file.
6357         * config/bfin/lib1funcs.asm: New file.
6358         * config/bfin/predicates.md: New file.
6359         * config/bfin/t-bfin: New file.
6360         * config/bfin/t-bfin-elf: New file.
6361         * doc/extend.texi (exception_handler, kspisusp, nesting, nmi_handler):
6362         Document new attributes.
6363         (interrupt, interrupt_handler, saveall): Update documentation for
6364         these attributes.
6365         * doc/install.texi (Specific): Add entry for the Blackfin.
6366         * doc/invoke.texi (Blackfin Options): New section.
6367         * doc/md.texi (Blackfin family): New section to document constraints.
6368         * config.gcc: Add bfin*-* and bfin*-elf configurations.
6369
6370 2005-04-05  Olivier Hainque  <hainque@adacore.com>
6371
6372         * config/mips/iris6.h (DWARF_FRAME_RETURN_COLUMN): Redefine to
6373         match what the system unwinder expects.
6374         * config/mips/mips.c (mips_frame_set): If we're saving the return
6375         address register and the dwarf return address column number differs
6376         from the hard register number, adjust the note reg to refer to the
6377         former.
6378
6379 2004-04-05  Richard Sandiford  <rsandifo@redhat.com>
6380
6381         * config/mn10300/mn10300-protos.h (mn10300_override_options): Declare.
6382         * config/mn10300/mn10300.h (target_flags, TARGET_MULT_BUG)
6383         (TARGET_SWITCHES, TARGET_DEFAULT): Delete.
6384         (processor_type): New enum.
6385         (mn10300_processor): New variable.
6386         (TARGET_AM33, TARGET_AM33_2): Redefine in terms of mn10300_processor.
6387         (PROCESSOR_DEFAULT, OVERRIDE_OPTIONS): New macros.
6388         * config/mn10300/linux.h (TARGET_SWITCHES, TARGET_DEFAULT): Delete.
6389         (PROCESSOR_DEFAULT): New macro.
6390         * config/mn10300/mn10300.c (mn10300_processor): New variable.
6391         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
6392         (mn10300_handle_option, mn10300_override_options): New functions.
6393         * config/mn10300/mn10300.opt: New file.
6394
6395 2005-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
6396             Sebastian Pop <sebastian.pop@cri.ensmp.fr>
6397
6398         PR tree-optimization/19903
6399         * tree-chrec.c (chrec_convert): Return chrec_dont_know for constants
6400         that don't fit in their type after conversion.
6401
6402 2005-04-05  Uros Bizjak <uros@kss-loka.si>
6403
6404         PR target/20421
6405         * config/i386/i386.md (frndintxf2_floor, frndintxf2_ceil)
6406         (frndintxf2_trunc, frndintxf2_mask_pm): Add FLAGS_REG clobber.
6407         Allocate local stack slots here.  Set ix86_optimize_mode_switching.
6408         flag here. Implement using define_insn_and_split.
6409         (frndintxf2_floor_i387, frndintxf2_ceil_i387, frndintxf2_trunc_i387)
6410         (frndintxf2_mask_pm_i387): New insn patterns.
6411         (floorsf2, floordf2, floorxf2): Remove local stack slot allocations.
6412         Do not set ix86_optimize_mode_switching flag.
6413         (ceilsf2, ceildf2, ceilxf2): Same.
6414         (btruncsf2, btruncdf2, btruncxf2): Same.
6415         (nearbyintsf2, nearbyintdf2, nearbyintxf2): Same.
6416
6417 2005-04-05  Ian Lance Taylor  <ian@airs.com>
6418
6419         PR debug/9963
6420         * config/i386/cygming.h (ASM_OUTPUT_EXTERNAL): Pass DECL to
6421         i386_pe_record_external_function.
6422         (i386_pe_record_external_function): Update declaration.
6423         * config/i386/winnt.c (struct extern_list): Add decl field.
6424         (i386_pe_record_external_function): Add decl parameter.
6425         (i386_pe_file_end): Check TREE_ASM_WRITTEN on decl, not
6426         identifier.
6427         * config/i386/i386-protos.h (i386_pe_record_external_function):
6428         Update declaration.
6429
6430 2005-04-05  Kazu Hirata  <kazu@cs.umass.edu>
6431
6432         * config/m68k/m68k-protos.h: Add a prototype for
6433         valid_dbcc_comparison_p_2.
6434         * config/m68k/m68k.c (not_sp_operand, symbolic_operand,
6435         extend_operator, const_uint32_operand, const_sint32_operand,
6436         general_src_operand, nonimmediate_src_operand,
6437         memory_src_operand, post_inc_operand, pre_dec_operand,
6438         pcrel_address): Move to predicates to predicates.md.
6439         * config/m68k/m68k.h (PREDICATE_CODES): Remove.
6440         * config/m68k/m68k.md: Include predicates.md.
6441         * config/m68k/predicates.md: New.
6442
6443 2005-04-04  Roger Sayle  <roger@eyesopen.com>
6444
6445         * config/i386/i386.md (*truncdfsf2_i387_1): New pattern.
6446
6447         * fold-const.c (maybe_lvalue_p): Delete orphaned comment.
6448
6449 2005-04-04  Ian Lance Taylor  <ian@airs.com>
6450
6451         * c-typeck.c (struct c_switch): Rename switch_stmt field to
6452         switch_expr.
6453         (c_start_case): Build SWITCH_EXPR, not SWITCH_STMT.
6454         (do_case): Use SWITCH_COND rather than SWITCH_STMT_COND.
6455         (c_finish_case): Use SWITCH_BODY rather than SWITCH_STMT_BODY.
6456         Call c_do_switch_expr_warnings rather than c_do_switch_warnings.
6457         * c-common.c (c_do_switch_warnings_1): New static function broken
6458         out of c_do_switch_warnings.
6459         (c_do_switch_warnings): Call c_do_switch_warnings_1.
6460         (c_do_switch_expr_warnings): New function.
6461         * c-common.h (c_do_switch_expr_warnings): Declare.
6462
6463 2005-04-04  David Edelsohn  <edelsohn@gnu.org>
6464             Daniel Jacobowitz  <dan@codesourcery.com>
6465
6466         * tree-eh.c (tree_could_trap_p): Allow non-constant floating point
6467         trapping divide.
6468         * rtlanal.c (may_trap_p): Same.
6469
6470 2005-04-04  Dale Johannesen  <dalej@apple.com>
6471
6472         * ChangeLog:  remove reference to ChangeLog.12.
6473
6474 2005-04-05  Hans-Peter Nilsson  <hp@axis.com>
6475
6476         CRIS epilogue as RTL.
6477         * config/cris/cris.md: Change all 0 in unspec 0 to
6478         CRIS_UNSPEC_PLT.
6479         (CRIS_UNSPEC_PLT, CRIS_UNSPEC_FRAME_DEALLOC): New constants.
6480         ("*cris_load_multiple", "cris_frame_deallocated_barrier"): New
6481         patterns.
6482         ("return"): Change to define_expand.  Call cris_expand_return for
6483         actual expansion.
6484         ("*return_expanded"): New pattern.
6485         ("epilogue"): New define_expand.
6486         * config/cris/cris.h (PREDICATE_CODES): Add
6487         cris_load_multiple_op.
6488         * config/cris/cris.c (ASSERT_PLT_UNSPEC): Correct test for unspec
6489         type.
6490         (enum cris_retinsn_type): New.
6491         (struct machine_function): New member return_type.
6492         (TARGET_ASM_FUNCTION_EPILOGUE): Don't override.
6493         (cris_target_asm_function_epilogue): Remove, moving RTLified
6494         contents to...
6495         (cris_expand_epilogue): New function.
6496         (cris_reg_saved_in_regsave_area, cris_movem_load_rest_p,
6497         (cris_gen_movem_load, cris_load_multiple_op)
6498         (cris_return_address_on_stack_for_return, cris_expand_return): New
6499         functions.
6500         (cris_target_asm_function_prologue)
6501         (cris_initial_frame_pointer_offset): Call
6502         cris_reg_saved_in_regsave_area instead of complicated expression.
6503         Call cris_return_address_on_stack instead of an expression.
6504         (cris_print_operand) <case 'o', case 'O'>: New cases.
6505         (cris_return_address_on_stack): Change return-type to bool.
6506         (cris_simple_epilogue): Ditto.  Return false if registers are
6507         saved.
6508         * config/cris/cris-protos.h (cris_simple_epilogue)
6509         (cris_return_address_on_stack): Adjust prototype return type.
6510         (cris_gen_movem_load, cris_expand_epilogue, cris_expand_return)
6511         (cris_return_address_on_stack_for_return): New prototypes.
6512
6513 2005-04-04  Kazu Hirata  <kazu@cs.umass.edu>
6514
6515         * config/frv/frv.h (PREDICATE_CODES): Add CONST to
6516         gpr_or_int12_operand.
6517
6518         * config/frv/frv-protos.h: Add a prototype to
6519         frv_legitimate_memory_operand and frv_const_unspec_p.
6520         (frv_unspec): Move from frv.c.
6521         * config/frv/frv.c (frv_unspec): Move to frv-protos.h.
6522         (frv_const_unspec_p, frv_legitimate_memory_operand_): Export.
6523         (ldd_address_operand, fdpic_fptr_operand, frv_load_operand,
6524         gpr_or_fpr_operand, gpr_or_int12_operand,
6525         gpr_fpr_or_int12_operand, fpr_or_int6_operand,
6526         gpr_or_int10_operand, gpr_or_int_operand, int12_operand,
6527         int6_operand, int5_operand, uint5_operand, uint4_operand,
6528         uint1_operand, int_2word_operand, uint16_operand,
6529         upper_int16_operand, integer_register_operand,
6530         gpr_no_subreg_operand, fpr_operand, even_reg_operand,
6531         odd_reg_operand, even_gpr_operand, odd_gpr_operand,
6532         quad_fpr_operand, even_fpr_operand, odd_fpr_operand,
6533         dbl_memory_one_insn_operand, dbl_memory_two_insn_operand,
6534         move_destination_operand, movcc_fp_destination_operand,
6535         frv_function_symbol_referenced_p, move_source_operand,
6536         condexec_dest_operand, condexec_source_operand,
6537         reg_or_0_operand, lr_operand, fdpic_operand, got12_operand,
6538         const_unspec_operand, gpr_or_memory_operand,
6539         gpr_or_memory_operand_with_scratch, fpr_or_memory_operand,
6540         icc_operand, fcc_operand, cc_operand, icr_operand,
6541         fcr_operand, cr_operand, call_operand, sibcall_operand,
6542         symbolic_operand, relational_operator,
6543         integer_relational_operator, float_relational_operator,
6544         ccr_eqne_operator, minmax_operator,
6545         condexec_si_binary_operator, condexec_si_media_operator,
6546         condexec_si_divide_operator, condexec_si_unary_operator,
6547         condexec_sf_conv_operator, condexec_sf_add_operator,
6548         condexec_memory_operand, intop_compare_operator, acc_operand,
6549         even_acc_operand, quad_acc_operand, accg_operand: Move to
6550         predicates.md.
6551         * config/frv/frv.h (PREDICATE_CODES): Remove.
6552         * config/frv/frv.md: Include predicates.md.
6553         * config/frv/predicates.md: New.
6554
6555 2004-04-04  Richard Sandiford  <rsandifo@redhat.com>
6556
6557         PR target/19537
6558         * Makefile.in (tree-ssa-loop-ivopts.o): Depend on langhooks.h.
6559         * tree-ssa-loop-ivopts.c: Include langhooks.h.
6560         (add_standard_iv_candidates_for_size): New function, extracting code
6561         from add_standard_iv_candidates and parameterizing it by type size.
6562         (add_standard_iv_candidates): Use add_standard_iv_candidates_for_size.
6563
6564 2004-04-04  Richard Sandiford  <rsandifo@redhat.com>
6565
6566         * system.h (GCOV_SIZE_TYPE): Unposion.
6567         * gcov-io.h (GCOV_TYPE_NODE): Delete, replacing with...
6568         (GCOV_TYPE_SIZE): ...this new macro.
6569         * coverage.h (get_gcov_type, GCOV_TYPE_NODE): Declare.
6570         * coverage.c (get_gcov_type, get_gcov_unsigned_t): New functions.
6571         (rtl_coverage_counter_ref): Use GCOV_TYPE_SIZE.
6572         (build_fn_info_type, build_fn_info_value, build_ctr_info_type)
6573         (build_ctr_info_value, build_gcov_info): Use get_gcov_unsigned_t
6574         instead of unsigned_intSI_type_node.
6575         * rtl-profile.c (rtl_gen_interval_profiler, rtl_gen_pow2_profiler)
6576         (rtl_gen_one_value_profiler_no_edge_manipulation)
6577         (rtl_gen_const_delta_profiler): Use GCOV_TYPE_SIZE.
6578         * value-prof.c: Include coverage.h.
6579
6580 2005-04-02  Daniel Berlin  <dberlin@dberlin.org>
6581             Diego Novillo <dnovillo@redhat.com>
6582
6583         Fix PR tree-optimization/20703
6584         Fix PR tree-optimization/20725
6585
6586         * tree-ssa-pre.c (phi_translate): Handle tcc_comparison.
6587         (create_expression_by_pieces): Ditto.
6588         (valid_in_set): Ditto. Also handle tcc_declaration.
6589         (find_or_generate_expression): Handle comparison class.
6590         (insert_into_preds_of_block): Ditto.
6591         (insert_aux): Ditto.
6592         (create_value_expr_from): Handle comparison class, recursively
6593         handle reference nodes.
6594         (compute_avail): Handle comparison classes, rewrite a little cleaner.
6595         (execute_pre): Fix spacing.
6596         (do_fre): Renamed to execute_fre.
6597
6598 2005-04-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
6599
6600         * doc/invoke.texi (SPARC options): Document that
6601         -mlittle-endian is not supported on Linux either.
6602
6603 2005-04-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
6604
6605         PR target/4198
6606         PR target/12027
6607         * config.gcc (Obsolete configurations): Remove
6608         sparclite-*-coff*, sparclite-*-elf* and sparc86x-*-elf*.
6609         (sparclite-*-coff*): Delete.
6610         (sparclite-*-elf*): Likewise.
6611         (sparc86x-*-elf*): Likewise.
6612         (target_cpu_default) <sparc*-*-*>: Remove sparc86x.
6613         * config/sparc/lite.h: Delete.
6614         * config/sparc/litecoff.h: Likewise.
6615         * config/sparc/liteelf.h: Likewise.
6616         * config/sparc/sp86x-elf.h: Likewise.
6617         * config/sparc/t-sparclite: Likewise.
6618         * config/sparc/t-sp86x: Likewise.
6619
6620 2005-04-04  Adrian Straetling  <straetling@de.ibm.com>
6621
6622         * config/s390/s390-protos.h: (s390_comparison,
6623         s390_alc_comparison, s390_slb_comparison, const0_operand,
6624         consttable_operand, larl_operand, s_operand,
6625         shift_count_operand, bras_sym_operand, load_multiple_operation,
6626         store_multiple_operation, s390_plus_operand): Remove prototypes.
6627         (s390_legitimate_address_without_index_p): New prototype.
6628         * config/s390/s390.c: (SYMBOL_FLAG_ALIGN1, DISP_IN_RANGE): Move
6629         to s390.h.
6630         (s390_comparison, s390_alc_comparison, s390_slb_comparison,
6631         const0_operand, consttable_operand, larl_operand, s_operand,
6632         shift_count_operand, bras_sym_operand, load_multiple_operation,
6633         store_multiple_operation, s390_plus_operand): Move to
6634         predicates.md.
6635         (check_mode): Remove.
6636         (s390_branch_condition_mask): Remove 'static'. Move prototype to
6637         s390-protos.h.
6638         (s390_legitimate_address_without_index_p): New.
6639         * config/s390/s390.h (PREDICATE_CODES): Remove.
6640         * config/s390/s390.md: Include predicates.md.
6641         * config/s390/predicates.md: New.
6642
6643 2005-04-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
6644
6645         PR target/20446
6646         * config/sparc/sparc.h (NEED_INDICATE_EXEC_STACK): Define to 0.
6647         * config/sparc/linux.h (TARGET_ASM_FILE_END): Delete.
6648         (NEED_INDICATE_EXEC_STACK): Define to 1.
6649         * config/sparc/linux64.h (TARGET_ASM_FILE_END): Delete.
6650         (NEED_INDICATE_EXEC_STACK): Define to 1.
6651         * config/sparc/sparc.c (TARGET_ASM_FILE_END): Set to sparc_file_end.
6652         (add_pc_to_pic_symbol): Rename into pic_helper_symbol.
6653         (add_pc_to_pic_symbol_name): Rename into pic_helper_symbol_name.
6654         (pic_helper_emitted_p): New global.
6655         (emit_pic_helper): New function extracted from...
6656         (load_pic_register): ...here.  Add 'delay_pic_helper' parameter.
6657         Do not call emit_pic_helper if delay_pic_helper is true.
6658         (sparc_expand_prologue): Pass 'false' to load_pic_register.
6659         (sparc_output_mi_thunk): Pass 'true' to load_pic_register.
6660         (sparc_file_end): New function.
6661
6662 2005-04-04  Kazu Hirata  <kazu@cs.umass.edu>
6663
6664         * config/mcore/mcore-protos.h: Remove the prototypes for
6665         mcore_arith_reg_operand, mcore_general_movsrc_operand,
6666         mcore_general_movdst_operand, mcore_reload_operand,
6667         mcore_arith_J_operand, mcore_arith_K_operand,
6668         mcore_arith_K_operand_not_0, mcore_arith_M_operand,
6669         mcore_arith_K_S_operand, mcore_arith_imm_operand,
6670         mcore_arith_any_imm_operand, mcore_arith_O_operand,
6671         mcore_literal_K_operand, mcore_addsub_operand,
6672         mcore_compare_operand, mcore_load_multiple_operation,
6673         mcore_store_multiple_operation, mcore_call_address_operand.
6674         Add a prototype for const_ok_for_mcore.
6675         * config/mcore/mcore.c (mcore_call_address_operand,
6676         mcore_general_movsrc_operand, mcore_general_movdst_operand,
6677         mcore_arith_reg_operand, mcore_reload_operand,
6678         mcore_arith_J_operand, mcore_arith_K_operand,
6679         mcore_arith_K_operand_not_0, mcore_arith_K_S_operand,
6680         mcore_arith_M_operand, mcore_arith_imm_operand,
6681         mcore_arith_any_imm_operand, mcore_arith_O_operand,
6682         mcore_literal_K_operand, mcore_addsub_operand,
6683         mcore_compare_operand, mcore_load_multiple_operation,
6684         mcore_store_multiple_operation): Move to predicates.md.
6685         (const_ok_for_mcore): Export.
6686         * config/mcore/mcore.h (PREDICATE_CODES): Remove.
6687         * config/mcore/mcore.md: Include predicates.md.
6688         * config/mcore/predicates.md: New.
6689
6690         * config/mcore/predicates.md: Fix a comment typo.
6691
6692 2005-04-04  Andreas Krebbel  <krebbel1@de.ibm.com>
6693             Adrian Straetling  <straetling@de.ibm.com>
6694
6695         * config/s390/2064.md ("z_mul", "z_inf"): New insn reservations.
6696         * config/s390/2084.md ("x_mul_hi", "x_mul_sidi", "x_div"): Likewise.
6697         * config/s390/s390.md ("imulhi", "imulsi", "imuldi"): Added to "type"
6698         attribute.
6699         ("imul"): Removed from "type" attribute.
6700         ("*muldi3_sign", "muldi3"): Changed type to imuldi.
6701         ("mulsi3/1", "mulsi3/3", "mulsi/4", "mulsidi3", "umulsidi3"):
6702         Changed type to imulsi.
6703         ("*mulsi3_sign", "mulsi3/2"): Changed type to imulhi.
6704
6705 2005-04-04  Richard Sandiford  <rsandifo@redhat.com>
6706
6707         * config/mcore/mcore.h (target_flags, HARDLIT_BIT, ALIGN8_BIT, DIV_BIT)
6708         (RELAX_IMM_BIT, W_FIELD_BIT, OVERALIGN_FUNC_BIT, CGDATA_BIT)
6709         (SLOW_BYTES_BIT, LITTLE_END_BIT, M340_BIT, TARGET_HARDLIT)
6710         (TARGET_DIV, TARGET_RELAX_IMM, TARGET_W_FIELD, TARGET_OVERALIGN_FUNC)
6711         (TARGET_CG_DATA, TARGET_SLOW_BYTES, TARGET_LITTLE_END, TARGET_M340)
6712         (TARGET_SWITCHES, mcore_stack_increment_string)
6713         (TARGET_OPTIONS): Delete.
6714         (TARGET_DEFAULT, OPTIMIZATION_OPTIONS): Use MASK_* constants rather
6715         than *_BIT constants.
6716         (TARGET_8ALIGN): #undef old definition before redefining to 1.
6717         * config/mcore/mcore.c (mcore_stack_increment_string): Delete.
6718         (TARGET_DEFAULT_TARGET_FLAGS): Override default to TARGET_DEFAULT.
6719         (mcore_override_options): Delete mcore_stack_increment code.
6720         Change use of M340_BIT to MASK_M340.
6721         * config/mcore/mcore.opt: New file.
6722
6723 2005-04-04  Ian Lance Taylor  <ian@airs.com>
6724
6725         * config/arm/arm.c (replace_symbols_in_block): Remove static
6726         function.
6727
6728 2005-04-04  Kazu Hirata  <kazu@cs.umass.edu>
6729
6730         * config/fr30/fr30-protos.h: Remove the prototypes for
6731         stack_add_operand, add_immediate_operand,
6732         high_register_operand, low_register_operand, call_operand,
6733         di_operand, and nonimmediate_di_operand.
6734         * config/fr30/fr30.c (stack_add_operand,
6735         add_immediate_operand, high_register_operand,
6736         low_register_operand, call_operand, di_operand,
6737         nonimmediate_di_operand): Move to predicates.md.
6738         * config/fr30/fr30.h (PREDICATE_CODES): Remove.
6739         * config/fr30/fr30.md: Include predicates.md.
6740         * config/fr30/predicates.md: New.
6741
6742         * config/mcore/mcore.h (PREDICATE_CODES): Add SYMBOL_REF and
6743         LABEL_REF to mcore_general_movsrc_operand.  Add SYMBOL_REF to
6744         mcore_call_address_operand.
6745
6746         * config/sh/sh.h (PREDICATE_CODES): Add CONST to
6747         general_movsrc_operand.
6748
6749 2005-04-04  Alan Modra  <amodra@bigpond.net.au>
6750
6751         * passes.c (rest_of_handle_final): NULL unlikely_text_section_name
6752         after freeing.
6753
6754 2005-04-04  Richard Earnshaw  <richard.earnshaw@arm.com>
6755
6756         PR target/14812
6757         * arm.c (arm_select_cc_mode): Return CC_Zmode when comparing against
6758         a negated value.
6759
6760 2005-04-04  Richard Henderson  <rth@redhat.com>
6761             Jakub Jelinek  <jakub@redhat.com>
6762
6763         PR rtl-optimization/16104
6764         * fold-const.c (fold_unary): Fix folding of vector conversions.
6765
6766 2005-04-04  Richard Sandiford  <rsandifo@redhat.com>
6767
6768         * config.gcc (xstormy16-*-elf): Set extra_options.
6769         * config/stormy16/stormy16.h (target_flags, TARGET_SWITCHES): Delete.
6770         * config/stormy16/stormy16.opt: New file.
6771
6772 2005-04-04  Richard Sandiford  <rsandifo@redhat.com>
6773
6774         * config/pdp11/pdp11.h (target_flags, TARGET_SWITCHES, TARGET_DEFAULT)
6775         (TARGET_FPU, TARGET_SOFT_FLOAT, TARGET_AC0, TARGET_NO_AC0, TARGET_45)
6776         (TARGET_BCOPY_BUILTIN, TARGET_INT16, TARGET_INT32, TARGET_FLOAT32)
6777         (TARGET_FLOAT64, TARGET_ABSHI_BUILTIN, TARGET_BRANCH_EXPENSIVE)
6778         (TARGET_BRANCH_CHEAP, TARGET_SPLIT, TARGET_NOSPLIT)
6779         (TARGET_UNIX_ASM): Delete.
6780         (TARGET_40_PLUS): Redefine in terms of TARGET_40 and TARGET_45.
6781         * config/pdp11/2bsd.h (TARGET_UNIX_ASM_DEFAULT): Use MASK_UNIX_ASM.
6782         * config/pdp11/pdp11.c (pdp11_handle_option): New function.
6783         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
6784         * config/pdp11/pdp11.opt: New file.
6785
6786 2005-04-03  Roger Sayle  <roger@eyesopen.com>
6787             Alexandre Oliva  <aoliva@redhat.com>
6788
6789         PR c++/19199
6790         * fold-const.c (non_lvalue): Split tests into...
6791         (maybe_lvalue_p): New function.
6792         (fold_cond_expr_with_comparison): Preserve lvalue-ness for the
6793         C++ front-end prior to lowering into gimple form.
6794
6795 2005-04-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6796
6797         * builtins.def (BUILT_IN_STPNCPY, BUILT_IN_STRCASECMP,
6798         BUILT_IN_STRNCASECMP): New.
6799         * doc/extend.texi: Document stpncpy, strcasecmp, strncasecmp
6800         and strndup.
6801
6802 2005-04-03  Richard Earnshaw  <richard.earnshaw@arm.com>
6803
6804         PR target/14812
6805         * arm.md (addsi3_compare0_for_combiner): Delete.
6806         (addsi3_compare0_scratch_for_combiner): Delete.
6807         (cmpsi_neg_shiftsi): Delete.
6808         (compare_negsi_si): New pattern.
6809         (cmpsi_negshiftsi_si): New pattern.
6810         (negated_cbranchsi4): Restrict to equality_operator.
6811
6812         * arm.md (movhi_insn_arch4): delete trailing white space from assembler
6813         template.
6814
6815 2005-04-03  Kazu Hirata  <kazu@cs.umass.edu>
6816
6817         * cfghooks.c, cfgrtl.c, modulo-sched.c, config/i386/winnt.c:
6818         Fix comment typos.
6819
6820         * doc/install.texi: Fix a typo.
6821
6822 2005-04-03  Steven Bosscher  <stevenb@suse.de>
6823
6824         PR middle-end/20648
6825         * bb-reorder.c (duplicate_computed_gotos): Do not unfactor
6826         a computed goto if the edge to the computed goto block has
6827         incoming abnormal edges.  Clarify how the function works.
6828
6829 2005-04-03  Nathan Sidwell  <nathan@codesourcery.com>
6830
6831         * params.c (set_param_value): Use gcc_assert & gcc_unreachable.
6832         * passes.c (open_dump_file, rest_of_handle_final): Likewise.
6833         * postreload-gcse.c (expr_equiv_p, oprs_unchanged_p,
6834         hash_scan_set, reg_set_between_after_reload_p,
6835         reg_used_between_after_reload_p, get_avail_load_store_reg,
6836         eliminate_partially_redundant_load): Likewise.
6837         * postreload.c (reload_cse_simplify_set,
6838         reload_combine_note_use): Likewise.
6839         * predict.c (predict_insn, expected_value_to_br_prob,
6840         propagate_freq, expensive_function_p): Likewise.
6841         * print-rtl.c (print_rtx): Likewise.
6842         * profile.c (instrument_edges, instrument_values,
6843         compute_branch_probabilities, branch_prob, union_groups,
6844         tree_register_profile_hooks, rtl_register_profile_hooks): Likewise.
6845         * protoize.c (in_system_include_dir, file_could_be_converted,
6846         file_normally_convertible, gen_aux_info_file, seek_to_line,
6847         do_cleaning): Likewise.
6848         * tree-ssa-alias.c (collect_points_to_info_r): Likewise.
6849         * tree-ssa-ccp.c (execute_fold_all_builtins): Likewise.
6850         * tree-ssa-loop-ivopts.c (produce_memory_decl_rtl): Likewise.
6851
6852 2005-04-03 Mostafa Hagog <mustafa@il.ibm.com>
6853
6854         * cfg.c (clear_bb_flags): Don't clear BB_DISABLE_SCHEDULE.
6855         * modulo-sched.c (undo_replace_buff_elem): New structure.
6856         (kernel_number_of_cycles, ps_unschedule_node,
6857         undo_generate_reg_moves,free_undo_replace_buff,
6858         undo_permute_partial_schedule,  loop_single_full_bb_p,
6859         SIMPLE_SMS_LOOP_P, loop_canon_p, canon_loop,
6860         build_loops_structure, get_sched_window): New.
6861         (generate_reg_moves): Return undo_replace_buff_elem and other
6862         fixes.
6863         (generate_prolog_epilog): Remove old loop versioning.
6864         (sms_schedule): Use loop information and loop_version.
6865         (sms_schedule_by_order): Split part of it to get_sched_window.
6866         * passes.c (rest_of_handle_sms): call cfg_layout_initialize
6867         cfg_layout_finalize and free_dominance_info before/after SMS.
6868
6869 2005-04-03 Mostafa Hagog <mustafa@il.ibm.com>
6870
6871         * cfghooks.c (lv_flush_pending_stmts,
6872         cfg_hook_duplicate_loop_to_header_edge, extract_cond_bb_edges,
6873         lv_adjust_loop_header_phi, lv_add_condition_to_bb): New.
6874         * cfghooks.h (cfg_hook_duplicate_loop_to_header_edge,
6875         lv_add_condition_to_bb,
6876         lv_adjust_loop_header_phi, extract_cond_bb_edges,
6877         flush_pending_stmts): New in cfg_hooks structure.
6878         (cfg_hook_duplicate_loop_to_header_edge, lv_flush_pending_stmts,
6879         extract_cond_bb_edges, lv_adjust_loop_header_phi,
6880         lv_add_condition_to_bb): New declarations.
6881         * cfgloop.h (duplicate_loop_to_header_edge): Change return type to
6882         bool.
6883         (loop_version): Declare.
6884         * cfgloopmanip.c (cfghooks.h): Include.
6885         (duplicate_loop_to_header_edge): Change return type to bool.
6886         (loop_version, lv_adjust_loop_entry_edge): Move here.
6887         * cfgrtl.c (cfgloop.h): Include.
6888         (rtl_verify_flow_info_1): Fix.
6889         (rtl_lv_add_condition_to_bb, rtl_extract_cond_bb_edges): New.
6890         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Add hooks to
6891         initialization.
6892         * tree-cfg.c (tree_lv_adjust_loop_header_phi,
6893         tree_lv_add_condition_to_bb): New.
6894         (tree_cfg_hooks): Add new hooks to initialization.
6895         * tree-ssa-loop-manip.c (lv_adjust_loop_header_phi,
6896         lv_adjust_loop_entry_edge, tree_ssa_loop_version): Remove.
6897
6898 2005-04-03  Kazu Hirata  <kazu@cs.umass.edu>
6899
6900         * config/stormy16/stormy16.h (PREDICATE_CODES): Add SUBREG to
6901         xstormy16_below100_or_register,
6902         xstormy16_splittable_below100_or_register, and
6903         nonimmediate_nonstack_operand.
6904
6905         * config/stormy16/stormy16-protos.h: Remove the prototypes for
6906         xstormy16_ineqsi_operator, equality_operator,
6907         inequality_operator, shift_operator,
6908         xstormy16_below100_operand, xstormy16_below100_or_register,
6909         xstormy16_splittable_below100_or_register,
6910         xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand.
6911         * config/stormy16/stormy16.c (xstormy16_ineqsi_operator,
6912         equality_operator, inequality_operator,
6913         xstormy16_below100_operand, xstormy16_below100_or_register,
6914         xstormy16_splittable_below100_or_register,
6915         xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand,
6916         nonimmediate_nonstack_operand, shift_operator): Move to
6917         predicates.md.
6918         * config/stormy16/stormy16.h (PREDICATE_CODES): Remove.
6919         * config/stormy16/stormy16.md: Include predicates.md.
6920         * config/stormy16/predicates.md: New.
6921
6922 2005-04-02  Kazu Hirata  <kazu@cs.umass.edu>
6923
6924         * config/iq2000/iq2000.c (uns_arith_operand, arith_operand,
6925         small_int, large_int, reg_or_0_operand, simple_memory_operand,
6926         equality_op, cmp_op, pc_or_label_operand, call_insn_operand,
6927         move_operand, power_of_2_operand): Move to predicates.md.
6928         * config/iq2000/iq2000.h (SPECIAL_MODE_PREDICATES,
6929         PREDICATE_CODE): Remove.
6930         * config/iq2000/iq2000.md: Include predicates.md.
6931         * config/iq2000/predicates.md: New.
6932
6933 2005-04-02  Richard Sandiford  <rsandifo@redhat.com>
6934
6935         * config/m68hc11/m68hc11.h (target_flags, MASK_SHORT)
6936         (MASK_AUTO_INC_DEC, MASK_M6811, MASK_M6812, MASK_M68S12)
6937         (MASK_NO_DIRECT_MODE, MASK_MIN_MAX, MASK_LONG_CALLS)
6938         (TARGET_SHORT, TARGET_M6811, TARGET_M6812, TARGET_M68S12)
6939         (TARGET_AUTO_INC_DEC, TARGET_MIN_MAX, TARGET_NO_DIRECT_MODE)
6940         (TARGET_LONG_CALLS, TARGET_SWITCHES, TARGET_OPTIONS)
6941         (SUBTARGET_SWITCHES, SUBTARGET_OPTIONS, m68hc11_regparm_string)
6942         (m68hc11_reg_alloc_order, m68hc11_soft_reg_count)
6943         (TARGET_M68HC11): Delete.
6944         (TARGET_DEFAULT): Change the default setting from MASK_M6811 to 0.
6945         * config/m68hc11/m68hc12.h (TARGET_M68HC12): Delete.
6946         * config/m68hc11/m68hc11.c (m68hc11_regparm_string)
6947         (m68hc11_reg_alloc_order, m68hc11_soft_reg_count)
6948         (nb_soft_regs): Delete.
6949         (TARGET_DEFAULT_TARGET_FLAGS): Override default with TARGET_DEFAULT.
6950         (m68hc11_override_options): Remove the code that caters for MASK_M6811
6951         and MASK_M6812 being set simultaneously.  Change the code that sets
6952         the default m68hc11_soft_reg_count to use integers instead of strings.
6953         (m68hc11_conditional_register_usage, hard_regno_mode_ok): Use
6954         m68hc11_soft_reg_count (which now has an int type) as the number
6955         of soft registers.
6956         * config/m68hc11/m68hc11.opt: New file.
6957
6958 2005-04-02  Kazu Hirata  <kazu@cs.umass.edu>
6959
6960         * config/fr30/fr30.h (PREDICATE_CODES): Remove
6961         fp_displacement_operand, sp_displacement_operand.
6962
6963         * config/m68hc11/m68hc11-protos.h: Add a prototype for
6964         m68hcc_auto_inc_p.
6965         Remove the prototypes for tst_operand, cmp_operand,
6966         stack_register_operand, d_register_operand,
6967         hard_addr_reg_operand, splitable_operand,
6968         m68hc11_logical_operator, m68hc11_arith_operator,
6969         m68hc11_non_shift_operator, m68hc11_shift_operator,
6970         m68hc11_unary_operator, m68hc11_eq_compare_operator,
6971         non_push_operand, hard_reg_operand, and
6972         reg_or_some_mem_operand.
6973         * config/m68hc11/m68hc11.c (m68hcc_auto_inc_p): Make it
6974         extern.
6975         (tst_operand, cmp_operand, non_push_operand,
6976         splitable_operand, reg_or_some_mem_operand,
6977         stack_register_operand, d_register_operand,
6978         hard_addr_reg_operand, hard_reg_operand,
6979         m68hc11_eq_compare_operator, m68hc11_logical_operator,
6980         m68hc11_arith_operator, m68hc11_non_shift_operator,
6981         m68hc11_shift_operator, m68hc11_unary_operator): Move to
6982         predicates.md.
6983         * config/m68hc11/m68hc11.h (PREDICATE_CODES): Remove.
6984         * config/m68hc11/m68hc11.md: Include predicates.md.
6985         * config/m68hc11/predicates.md: New.
6986
6987 2005-04-02  Alexandre Oliva  <aoliva@redhat.com>
6988
6989         PR debug/19345
6990         * dwarf2out.c (add_abstract_origin_attribute): Revert accidental
6991         change checked in along with 2005-03-03's patch for debug/20253.
6992         * tree-inline.c (remap_type): Remap TYPE_STUB_DECL.
6993         (remap_decl): Insert type decl in map earlier.
6994
6995 2005-04-02  Alexandre Oliva  <aoliva@redhat.com>
6996
6997         PR tree-optimization/20640
6998         * tree-ssa-dce.c (remove_dead_stmt): Don't redirect edge to
6999         post-dominator if it has phi nodes.
7000         (eliminate_unnecessary_stmts): Remove dead phis in all blocks
7001         before dead statements.
7002
7003 2005-04-02  Alexandre Oliva  <aoliva@redhat.com>
7004
7005         PR middle-end/20491
7006         * final.c (alter_subreg): Don't call subreg_regno for a non-REG.
7007
7008 2005-04-02  Alexandre Oliva  <aoliva@redhat.com>
7009
7010         PR rtl-optimization/20290
7011         * loop.c (for_each_insn_in_loop): Don't assume the loop body runs
7012         in every iteration if the entry point is the exit test.
7013
7014 2005-04-02  Hans-Peter Nilsson  <hp@axis.com>
7015
7016         * config/cris/cris.md (attribute "length"): Define.
7017
7018 2005-04-02  Geoffrey Keating  <geoffk@apple.com>
7019
7020         * config/rs6000/predicates.md (indexed_or_indirect_operand): New.
7021         (word_offset_memref_operand): New.
7022         * config/rs6000/rs6000-protos.h (word_offset_memref_operand): Delete.
7023         (indexed_or_indirect_operand): Delete.
7024         * config/rs6000/rs6000.c (word_offset_memref_operand): Delete.
7025         (indexed_or_indirect_operand): Delete.
7026
7027         * config/rs6000/t-darwin8: Comment out ppc64 multilib.
7028
7029         PR 20650
7030         * config/rs6000/rs6000.md (fix_truncdfsi2): Make destination
7031         a register.
7032
7033         * config/rs6000/t-darwin (TARGET_LIBGCC2_CFLAGS): Add -pipe.
7034         * config/t-darwin (TARGET_LIBGCC2_CFLAGS): Likewise.
7035
7036 2005-04-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
7037
7038         * gcc/config/vax/vax.md: Spellcheck, fix whitespace.
7039
7040 2005-04-01  Ian Lance Taylor  <ian@airs.com>
7041
7042         * gcc.c: Don't include <sys/resource.h> or declare getrusage.
7043         (rus, prus): Remove static variables.
7044         (execute): Use pex_run/pex_get_status rather than pexecute/pwait.
7045         (process_command): Permit report_times and use_pipes together.
7046
7047 2005-04-01  Joseph S. Myers  <joseph@codesourcery.com>
7048
7049         * c-decl.c (validate_proto_after_old_defn): Look at
7050         TYPE_MAIN_VARIANT of argument types.
7051
7052 2005-04-01  Paul Brook  <paul@codesourcery.com>
7053
7054         * config/arm/arm.c (thumb_call_via_label): Include space for SP.
7055         (arm_output_function_epilogue): Allow call_via_SP.
7056         (thumb_call_via_reg, arm_file_end): Ditto.
7057         * config/arm/arm.h (struct machine_function): Include space for SP.
7058         (thumb_call_via_label): Update declaration.
7059
7060 2005-04-01  Ian Lance Taylor  <ian@airs.com>
7061
7062         * final.c (final_scan_insn): Revert part of 2005-03-30 patch: when
7063         doing a peephole optimization, once again put any notes in the
7064         proper position.
7065
7066 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
7067
7068         * bb-reorder.c, fold-const.c, varasm.c: Fix comment typos.
7069
7070 2005-04-01  Nathan Sidwell  <nathan@codesourcery.com>
7071
7072         * local-alloc.c (update_equiv_regs): Use gcc_assert, gcc_unreachable.
7073         (block_alloc, find_free_reg): Likewise.
7074         * loop-doloop.c (doloop_modify): Likewise.
7075         * loop-invariant.c (record_use): Likewise.
7076         * loop-iv.c (get_biv_step_1, get_biv_step, iv_analyze,
7077         get_iv_value, canon_condition, eliminate_implied_condition,
7078         eliminate_implied_condition, simplify_using_initial_values,
7079         shorten_into_mode, canonicalize_iv_subregs,
7080         iv_number_of_iterations): Likewise.
7081         * loop-unroll.c (expand_var_during_unrolling): Likewise.
7082         * loop-unswitch.c (compare_and_jump_seq, unswitch_single_loop,
7083         unswitch_loop): Likewise.
7084         * loop.c (INSN_LUID, loop_optimize, rtx_equal_for_loop_p,
7085         move_movables, replace_call_address, find_and_verify_loops,
7086         rtx_equal_for_prefetch_p, fold_rtx_mult_add, loop_iterations,
7087         record_giv, final_giv_value, general_induction_var,
7088         simplify_giv_expr, extension_within_bounds_p, try_copy_prop,
7089         loop_giv_dump): Likewise.
7090
7091         * gcov-io.h (GCOV_CHECK, GCOV_CHECK_READING,
7092         GCOV_CHECK_WRITING): Remove.
7093         (gcov_position, gcov_rewrite): Use gcc_assert.
7094         * gcov-io.c (gcov_open, gcov_write_words, gcov_write_length,
7095         gcov_read_words, gcov_sync, gcov_seek): Use gcc_assert.
7096         * libgcov.c (__gcov_merge_single, __gcov_merge_delta): Use
7097         gcc_assert.
7098
7099 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
7100
7101         * tree-inline.c: Fix a typo.
7102
7103 2005-04-01  Nathan Sidwell  <nathan@codesourcery.com>
7104
7105         * configure.ac (enable-checking): Explicitly set all variables for
7106         collective switch values.  Alphabetize variables. Rename
7107         ac_checking_valgrind to ac_valgrind_checking.  Allow 'none' as
7108         synonym for 'no'.
7109         * doc/install.texi (enable-checking): Update documentation.
7110         * configure: Rebuilt.
7111
7112 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
7113
7114         * tree-inline.c (copy_body_r): Use CONSTANT_CLASS_P where
7115         possible.
7116
7117 2005-04-01  Richard Earnshaw  <richard.earnshaw@arm.com>
7118
7119         * arm.c (adjacent_mem_locations): Reject volatile memory refs.
7120         Also reject cases where this pattern will cause load delay stalls
7121         unless optimizing for size and it will produce a shorter sequence.
7122         * arm.md (arith_adjacent_mem): Make better use of ldm addressing
7123         variants to avoid pre-adjusting the base when possible.
7124
7125 2005-04-01  Richard Earnshaw  <richard.earnshaw@arm.com>
7126
7127         * arm.md (minmax_arithsi): Reject all eliminable registers, not just
7128         the frame and argument pointers.
7129         (strqi_preinc, strqi_predec, loadqi_preinc, loadqi_predec): Likewise.
7130         (loadqisi_preinc, loadqisi_predec, strsi_preinc): Likewise.
7131         (strsi_predec, loadsi_preinc, loadsi_predec): Likewise.
7132         (strqi_shiftpreinc, strqi_shiftpredec, loadqi_shiftpreinc): Likewise.
7133         (loadqi_shiftpredec, strsi_shiftpreinc, strsi_shiftpredec): Likewise.
7134         (loadsi_shiftpreinc, loadsi_shiftpredec): Likewise.
7135
7136 2005-04-01  Danny Smith  <dannysmith@users.sourceforge.net>
7137
7138         * config/i386/cygming.h (SUBTARGET_ATTRIBUTE_TABLE): Define,
7139         with entry for selectany attribute.
7140         * config/i386/i386-protos.h (ix86_handle_selectany_attribute):
7141         Declare.
7142         * config/i386/winnt.c (ix86_handle_selectany_attribute): Define.
7143         (i386_pe_asm_named_section): Handle sections generated by
7144         selectany attribute.
7145         * doc/extend.texi (selectany): Document attribute.
7146
7147 2005-04-01  Paolo Bonzini  <bonzini@gnu.org>
7148             Jan Hubicka  <jh@suse.cz>
7149
7150         * config/i386/i386.c (ix86_decompose_address): Look inside SUBREGs
7151         to fix addresses involving EBP and ESP.
7152         (aligned_operand, legitimate_address_p, ix86_address_cost): Be prepared
7153         for SUBREGed registers.
7154         (legitimate_address_p): Accept SUBREGed registers.
7155
7156 2005-04-01  Jakub Jelinek  <jakub@redhat.com>
7157
7158         PR c++/19406
7159         * dwarf2out.c (gen_type_die_for_member): Handle FIELD_DECL.
7160         (dwarf2out_imported_module_or_decl): Use gen_type_die_for_member
7161         for FIELD_DECLs.
7162
7163 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
7164
7165         * doc/contrib.texi, doc/invoke.texi, doc/tm.texi: Fix typos.
7166
7167 2005-04-01  James E Wilson  <wilson@specifixinc.com>
7168
7169         PR c++/20505
7170         * dwarf2out.c (rtl_for_decl_init): New function.
7171         (rtl_for_decl_location): Extracted from here.
7172         (tree_add_const_value_attribute): Call rtl_for_decl_init and
7173         add_const_value_attribute.  Delete initializer_constant_valid_p call.
7174
7175 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
7176
7177         * cgraphunit.c, dbxout.c, flow.c, gcse.c, gimplify.c,
7178         lambda-code.c, loop.c, machmode.def, mips-tfile.c,
7179         modulo-sched.c, passes.c, postreload-gcse.c, tree-eh.c,
7180         tree-ssa-ccp.c, varasm.c, config/frv/frv.c, config/frv/frv.h,
7181         config/frv/frv.md, config/i386/i386.c, config/i386/i386.h,
7182         config/i386/i386.md, config/rs6000/predicates.md,
7183         config/rs6000/rs6000.c, config/s390/fixdfdi.h,
7184         config/s390/s390.c, config/stormy16/stormy16.c,
7185         config/stormy16/stormy16.md, config/vax/vax.md: Fix comment
7186         typos.
7187
7188 2005-04-01  Joseph S. Myers  <joseph@codesourcery.com>
7189
7190         PR c/17855
7191         * gimplify.c (gimplify_expr): Create a temporary for lvalue
7192         COND_EXPR and CALL_EXPR.
7193
7194 2005-03-31  Vladimir Makarov  <vmakarov@redhat.com>
7195
7196         PR target/20632
7197         * genautomata.c (first_cycle_unit_presence): Check all alternative
7198         states for unit presence.
7199
7200         * doc/md.texi: Remove remark about impossibility to query unit
7201         presence in non nondeterministic automaton state.
7202
7203         * config/ia64/ia64.c (get_template): Change order of unit querying.
7204
7205 2005-03-31  Kazu Hirata  <kazu@cs.umass.edu>
7206
7207         * tree-ssa-dom.c (cprop_into_successor_phis): Remove an
7208         obsolete comment.
7209
7210 2005-03-31  Zdenek Dvorak  <dvorakz@suse.cz>
7211
7212         * cfgloopanal.c (mark_loop_exit_edges): Clean EDGE_LOOP_EXIT
7213         flag for edges outside any loops.
7214
7215 2005-03-31  Janis Johnson  <janis187@us.ibm.com>
7216
7217         * doc/sourcebuild.texi (Test Directives): Describe cleanup-* procs.
7218
7219 2005-03-31  Kazu Hirata  <kazu@cs.umass.edu>
7220
7221         * tree-ssa-alias.c: Follow spelling conventions.
7222         * doc/tree-ssa.texi: Fix a typo.
7223
7224 2005-03-31  J"orn Rennecke <joern.rennecke@st.com>
7225
7226         * postreload-gcse.c: Include target.h.
7227         (gcse_after_reload_main): Return early if we cannot modify jumps.
7228         * Makefile.in (postreload-gcse.o): Depend on $(TARGET_H).
7229
7230 2005-03-31  David Edelsohn  <edelsohn@gnu.org>
7231
7232         * tree-ssa-loop-im.c (stmt_cost): Add RDIV_EXPR to list of
7233         expensive operations.
7234
7235 2005-03-31  Ian Lance Taylor  <ian@airs.com>
7236
7237         * collect2.c (lderrout): New variable.
7238         (collect_exit): Dump ldout to stdout.  Dump and unlink lderrout,
7239         if it is set, to stderr.
7240         (handler): Unlink lderrout if it is set.
7241         (dump_file): Add "to" parameter.  Change all callers.
7242         (main): Initialize lderrout.
7243         (collect_execute): Add errname parameter.  Change all callers.
7244         Rename redir parameter to outname.  Never pass
7245         PEX_STDERR_TO_STDOUT to pex_run.
7246         * collect2.h (collect_execute, dump_file): Update declarations.
7247         * tlink.c (tlink_execute): Add errname parameter.  Change all
7248         callers.
7249         (do_tlink): Check lderrout as well as ldout.
7250
7251 2005-03-31  Caroline Tice  <ctice@apple.com>
7252
7253         * Makefile.in (varasm.o): Add basic-block.h to list of requirements.
7254         (bb-reorder.o): Add errors.h to list of requirements.
7255         (STAGEFEEDBACK_FLAGS_TO_PASS): Add -freorder-blocks-and-partition to
7256         profiledbootstrap flags.
7257         * bb-reorder.c (errors.h): Add new include.
7258         (struct bbro_basic_block_data_def): Add new field, in_trace.
7259         (add_unlikely_executed_notes):  Remove function.
7260         (mark_bb_for_unlikely_executed_section): Remove function.
7261         (insert_section_boundary_note): New function.
7262         (verify_hot_cold_block_grouping): New function.
7263         (push_to_next_round_p): Remove variables and tests that push all
7264         cold blocks to last round.
7265         (find_traces): Remove code that added extra round of trace finding
7266         when doing partitioning.
7267         (find_traces_1_round) :  Remove variable last_round;  add code to
7268         update new struct field, in_trace; correct trace_length where it was
7269         incorrect before (after call to copy_bb); change code that pushed all
7270         cold blocks to last round. Instead verify that all blocks going into
7271         a trace belong in the same partition.
7272         (connect_traces): Modify to connect the traces in two passes, if the
7273         function contains both hot and cold blocks.  The first pass connects
7274         all the traces for blocks in the partition that the first block in
7275         the function belongs to; the second pass connnects all the traces
7276         containing blocks that belong in the other partition.
7277         (find_rarely_executed_basic_blocks_and_crossing_edges):  Remove
7278         code that automatically put the first block in a function into the
7279         hot partition if the function had any hot blocks.
7280         (fix_crossing_unconditional_branches): Check number of succ edges
7281         before attempting to get one.
7282         (fix_edges_for_rarely_executed_code):  Update comment describing
7283         function.
7284         (reorder_basic_blocks):  Add code to initialize new field (in_trace);
7285         remove call to add_unlikely_executed_notes; add call to
7286         verify_hot_cold_block_grouping.
7287         (duplicate_computed_gotos): Don't change computed goto if it's a
7288         crossing edge.
7289         (partition_hot_cold_basic_blocks):  Update function comment.
7290         * cfgcleanup.c (try_simplify_condjump): Remove redundacy from
7291         condition.
7292         (try_forward_edges): Likewise.
7293         (merge_blocks_move_predecessor_nojumps): Likewise.
7294         (merge_blocks_move_successor_nojumps): Likewise.
7295         (merge_blocks_move): Likewise.
7296         (try_crossjump_bb): Likewise.
7297         * cfglayout.c (update_unlikely_executed_notes): Remove function.
7298         (fixup_reorder_chain): Remove code for adding UNLIKELY_EXECUTED_CODE
7299         notes to cold bb's; remove call to update_unlikely_executed_notes.
7300         (duplicate_insn_chain):  change NOTE_INSN_UNLIKELY_EXECUTED_CODE to
7301         NOTE_INSN_SWITCH_TEXT_SECTIONS.
7302         * cfglayout.h (scan_ahead_for_unlikely_executed_note): Remove
7303         function declaration.
7304         * cfgrtl.c (can_delete_note_p): Remove UNLIKELY_EXECUTED_CODE note
7305         from consideration.
7306         (rtl_can_merge_blocks): Remove redundancy from condition.
7307         (try_redirect_by_replacing_jump): Likewise.
7308         (force_nonfallthru_and_redirect): Remove code for adding
7309         UNLIKELY_EXECUTED_CODE notes to cold bb's.
7310         (commit_one_edge_insertion): Likewise.
7311         (cfg_layout_can_merge_blocks_p): Remove redundancy from condition.
7312         * dbxout.c (FORCE_TEXT): Replace function_section with
7313         current_function_section.
7314         (struct dbx_debug_h): Add do_nothing function for new debug_hooks
7315         function, switch_text_section.
7316         (struct xcoff_debug): Likewise.
7317         (dbxout_function_end): Add code to put out label diffs for both
7318         hot and cold sections.
7319         * debug.c (struct do_nothing_debug_hooks): Add do_nothing function
7320         for new debug_hooks funciton, switch_text_section..
7321         * debug.h (struct gcc_debug_hooks):  Add new function to debug_hooks,
7322         switch_text_section.
7323         * dwarf2out.c (struct dw_fde_struct):  Add five new fields:
7324         dw_fde_hot_section_label, dw_fde_hot_section_end_label,
7325         dw_fde_unlikely_section_label, dw_fde_unlikely_section_end_label and
7326         dw_fde_switched_sections.
7327         (output_call_frame_info):  Add test to see if function switches text
7328         sections in the middle; if so, use appropriate extra hot and cold
7329         section labels to compute size deltas for the hot and cold sections.
7330         (dwarf2out_begin_prologue): Add code to initialize new fields in
7331         dw_fde_struct.
7332         (dwarf2out_switch_text_section): New function (invoked through
7333         debug_hook); updates new fields in dw_fde_struct appropriately and
7334         increments separate_line_info_table_in_use.
7335         (dwarf2_debug_hooks): Initialize switch_text_section function to be
7336         dwarf2out_switch_text_section.
7337         (struct var_loc_node): Add new field, section_label.
7338         (output_aranges): Add code to check whether in hot or cold section and
7339         use the appropriate label in calculating deltas.
7340         (output_ranges): Likewise.
7341         (output_line_info): Add code to check which section we're in and
7342         use appropriate hot/cold label.
7343         (add_location_or_constant_value_attribute): Likewise.
7344         (gen_subprogam_die): Modify arange attributes to use correct labels.
7345         (dwarf2out_begin_block): Change call to function_section into call to
7346         current_function_section.
7347         (dwarf2out_end_block): Likewise.
7348         (dwarf2out_source_line): Likewise.
7349         (dwarf2out_var_location): Add code to check whether in hot or cold
7350         section and use the appropriate label.
7351         * except.c (output_function_exception_table): Change call to
7352         function_section into call to current_function_section.
7353         * final.c (profile_function): Likewise.
7354         (scan_ahead_for_unlikely_executed_note): Remove function.
7355         (final_scan_insn):  Remove calls to
7356         scan_ahead_for_unlikely_executed_note, and related code for switching
7357         to cold section, except for the single time
7358         NOTE_INSN_SWITCH_TEXT_SECTIONS may be encountered;  add calls to
7359         debug_hooks->switch_text_sections; replace appropriate calls to
7360         function_section with calls to current_function_section.
7361         * ifcvt.c (find_if_case_1): Remove redundancy from condition, add
7362         test_bb to condition.
7363         (find_if_case_2): Likewise.
7364         * insn-notes.def: Change NOTE_INSN_UNLIKELY_EXECUTED_CODE to
7365         NOTE_INSN_SWITCH_TEXT_SECTIONS.  Update comment appropriately.
7366         * opts.c (decode_options): Change warning about hot/cold partitioning
7367         with exceptionss to inform (so as not to cause bootstrap failures);
7368         remove warning about partitioning with DWARF debug info.
7369         * output.h (current_function_section): Add new function decl.
7370         (insert_section_boundary_note): Likewise.
7371         (enum in_section): Move this declaration here from varasm.c.
7372         (unlikely_section_label): Likewise.
7373         (unlikely_text_section_name): Likewise.
7374         (last_text_section_name): New global variable.
7375         (last_text_section): Likewise.
7376         (hot_section_label): Likewise.
7377         (hot_section_end_label): Likewise.
7378         (cold_section_end_label): Likewise.
7379         * passes.c (rest_of_handle_final): Free unlikely_text_section_name.
7380         * print-rtl.c (print_rtx): Change NOTE_INSN_UNLIKELY_EXECUTED_CODE
7381         to NOTE_INSN_SWITCH_TEXT_SECTIONS.
7382         * reg-stack.c (emit_swap_insn): Remove UNLIKELY_EXECUTED_CODE note
7383         insn from consideration.
7384         * sdbout.c (sdb_debug_hooks): Add do_nothing for new function,
7385         switch_text_section.
7386         * varasm.c (basic-block.h): Add new include.
7387         (unlikely_section_label_printed): Remove global variable.
7388         (unlikely_section_label): Make global variable not be static any more.
7389         (unlikely_text_section_name): Likewise.
7390         (hot_section_end_label): New global variable (not static)
7391         (first_function_block_is_cold): Likewise.
7392         (hot_section_label): Likewise.
7393         (cold_section_end_label): Likewise..
7394         (last_text_section): New global variable, not static.
7395         (last_text_section_name): New global variable, not static.
7396         (initialize_cold_section_name): New function.
7397         (enum in_section): Move declaration to output.h.
7398         (text_section): Update last_text_section.
7399         (unlikely_text_section): Replace code to determine cold section name
7400         with call to initialize_cold_section_name; Add code to update
7401         last_text_section; remove code for printing out label.
7402         (named_section_real): Add code to update last_text_section and
7403         last_text_section_name as appropriate.
7404         (function_section): Change test for 'unlikely' to depend on
7405         first_function_block_is_cold (moved old test to
7406         current_function_section).
7407         (current_function_section): New function.
7408         (assemble_start_function): Move code that frees
7409         unlikely_text_section_name; initialize hot_section_end_label;
7410         print hot and cold section labels at the start of the function;
7411         set first_function_block_is_cold, if appropriate; initialize l
7412         ast_text_section; add call to insert_section_boundary_note.
7413         (assemble_end_function):  Add code to write out hot and cold section
7414         end labels.
7415         *vmsdbgout.c (vmsdbg_debug_hooks): Add do_nothing for new function,
7416         switch_text_section.
7417         * config/darwin.c (machopic_select_section): Replace incorrect
7418         function in base_funs; update reloc for cold sections if necessary.
7419         * config/darwin.h (SECTION_FUNCTION):  Add code to update
7420         last_text_section if appropriate.
7421         (text_unlikely_section): Remove.
7422         * config/sparc/sparc.c (sparc_output_deferred_case_vectors): Likewise.
7423         * config/stormy16/stormy16.c (stormy_16_output_addr_vec): Likewise.
7424         * config/xtensa/xtensa.c (override_options): Turn off hot/cold
7425         partitioning for this architecture.
7426
7427 2005-03-31  Olivier Hainque  <hainque@adacore.com>
7428
7429         * dwarf2out.c (dwarf2out_frame_finish): Honor DWARF2_FRAME_INFO
7430         defined and non-zero.
7431
7432 2005-03-31  Gabriel Dos Reis  <gdr@integrable-solutions.net>
7433
7434         PR c++/18644
7435         * doc/invoke.texi (-Wsynth): Don't document, as it now is void of
7436         semantics.
7437
7438 2005-03-31  Alan Modra  <amodra@bigpond.net.au>
7439
7440         PR target/20611
7441         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Remove inline
7442         label operand.  Remove (use (unspec..)).  Don't emit a label on
7443         the offset word.
7444         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Don't
7445         generate inline label for load_toc_v4_PIC_1b.
7446         (rs6000_emit_load_toc_table): Likewise.
7447
7448 2005-03-31  Kazu Hirata  <kazu@cs.umass.edu>
7449
7450         * config.gcc: Obsolete i860-*-sysv4*, ip2k-*-elf,
7451         ns32k-*-netbsdelf*, and ns32k-*-netbsd*.
7452
7453 2005-03-29  Devang Patel  <dpatel@apple.com>
7454
7455         * tree-sra.c (decide_block_copy): Disable scalarization of
7456         sub-elements.
7457
7458 2005-03-30  Stuart Hastings  <stuart@apple.com>
7459             Dale Johannesen  <dalej@apple.com>
7460
7461         * Makefile.in (print-tree.o):  Depend on tree-iterator.h.
7462         * print-tree.c (print_node):  Add case STATEMENT_LIST.
7463
7464 2005-03-31  Alan Modra  <amodra@bigpond.net.au>
7465
7466         * config.gcc (cpu_is_64bit): Set for 64-bit powerpc cpus.
7467         (powerpc64-*-linux*): Use it.  Rearrange tm_file assignment.
7468         (powerpc-*-linux*): Build a biarch compiler when --enable-targets
7469         is given with "powerpc64*" or "all", or when --with-cpu chooses
7470         a 64-bit cpu.
7471
7472 2005-03-30  James E. Wilson  <wilson@specifixinc.com>
7473
7474         PR debug/20268
7475         * dwarf2out.c (add_high_low_attributes): New function, extracted from
7476         gen_lexical_block_die.
7477         (gen_lexical_block_die, gen_inlined_subroutine_die): Call it.
7478
7479 2005-03-31  Jan Hubicka  <jh@suse.cz>
7480
7481         2004-11-02  Jan Hubicka  <jh@suse.cz>
7482
7483         * cgraph.c (cgraph_varpool_node_name): New function.
7484         (dump_cgraph_varpool_node): New function.
7485         (dump_varpool): New function.
7486         * cgraphunit.c (cgraph_optimize): Dump varpool.
7487
7488         2004-10-16  Jan Hubicka  <jh@suse.cz>
7489
7490         * cgraph.c (decide_is_variable_needed): New function.
7491         (cgraph_varpool_finalize_decl): Use it.
7492         * cgraphunit.c (cgraph_optimize): Assemble_pending_decls when not doing
7493         unit-at-a-time.
7494         * final.c (output_addr_const): Do not call mark_referenced.
7495         * passes.c (rest_of_decl_compilation): ifdef out DECL_RTL_SET_P hack;
7496         always go via cgraph.
7497         * toplev.c (wrapup_global_declarations): Kill non-unit-at-a-time code.
7498         (check_global_declarations): Ifdef out code clearing DECL_RTL.
7499         * tree-optimize.c (execute_inline): Mark functions called.
7500         * i386.c (output_pic_addr_const): Do not call mark_decl_referenced.
7501
7502         2004-10-11  Jan Hubicka  <jh@suse.cz>
7503
7504         * cgraph.c (cgraph_varpool_first_unanalyzed_node): New global voriable
7505         (cgraph_varpool_last_needed_node): New static variable.
7506         (enqueue_needed_varpool_node): Break out from ...; add items to the
7507         end of queue; update first pointers.
7508         (cgraph_varpool_mark_needed_node): ... here.
7509         (cgraph_varpool_finalize_decl): Use enqueue_needed_varpool_node.
7510         (cgraph_varpool_assemble_pending_decls): Move to cgraphunit.c
7511         * cgraph.h (cgraph_varpool_node): Add analyzed field.
7512         (cgraph_varpool_first_unanalyzed_node): Declare.
7513         * cgraphunit.c: Include output.h.
7514         (cgraph_varpool_analyze_pending_decls): New function.
7515         (cgraph_varpool_assemble_pending_decls): Move from cgraph.c; bail out
7516         for errors, analyze pending decls.
7517         (cgraph_finalize_compilation_unit): Only analyze decls.
7518         (cgraph_optimize): Assemble the decls after expanding.
7519
7520 2005-03-30  Daniel Berlin  <dberlin@dberlin.org>
7521
7522         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Make sure
7523         subvars get marked properly in tags for grouping.
7524         (add_pointed_to_var): Mark only actual pointed to
7525         variables/subvars in addresses needed.
7526         (create_overlap_variables_for): Clear call clobbered on original
7527         variable.
7528         * tree-ssa-operands.c (get_asm_expr_operands): Don't let regular
7529         addresable vars with subvars into list.
7530         * tree-ssa.c (verify_ssa_name): Verify original is not used where
7531         subvar should be.
7532
7533 2005-03-30  Richard Henderson  <rth@redhat.com>
7534
7535         * cgraph.h (struct cgraph_node): Add alias.
7536         * varasm.c (assemble_alias): Set it.
7537         * cgraphunit.c (cgraph_assemble_pending_functions): Check it and
7538         avoid calling cgraph_expand_function.
7539
7540 2005-03-30  Tom Tromey  <tromey@redhat.com>
7541
7542         * tree.def (FILE_TYPE): Removed.
7543         * typeclass.h (enum type_class): Removed file_type_class.
7544         * dwarf2out.c (is_base_type): Updated.
7545         (gen_type_die): Likewise.
7546         * dbxout.c (dbxout_type): Updated.
7547         * builtins.c (type_to_class): Updated.
7548         * tree.c (type_contains_placeholder_1): Updated.
7549         * config/sparc/sparc.c (sparc_type_code): Updated.
7550         * config/ia64/ia64.c (hfa_element_mode): Updated.
7551         * expr.c (count_type_elements): Updated.
7552         * stor-layout.c (layout_type): Updated.
7553         * tree-inline.c (remap_type): Updated.
7554         * tree-pretty-print.c (dump_generic_node): Updated.
7555
7556 2005-03-30 Fariborz Jahanian <fjahanian@apple.com>
7557
7558         * builtins.c (expand_builtin_powi): Fix mode of
7559         2nd argument to match int.
7560         * libgcc2.h (__powisf2, __powidf2, __powixf2, __powitf2): Change
7561         2nd argument type to int.
7562         * libgcc2.c: Change prototype of __powi* functions to use
7563         int.
7564
7565 2005-03-30  Dale Johannesen  <dalej@apple.com>
7566
7567         PR middle-end/19225
7568         * calls.c (expand_call):  Flush pending deferrals before
7569         throwing call.
7570
7571 2005-03-30  Joseph S. Myers  <joseph@codesourcery.com>
7572
7573         PR c/772
7574         PR c/17913
7575         * c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR,
7576         C_DECL_UNDEFINABLE_STMT_EXPR, struct c_label_list, struct
7577         c_label_context, label_context_stack): New.
7578         * c-decl.c (define_label): Check for jumps into statement
7579         expressions.  Add label to list of defined labels.
7580         (start_function): Push context on label_context_stack.
7581         (finish_function): Pop context from label_context_stack.
7582         * c-typeck.c (label_context_stack): New.
7583         (c_finish_goto_label): Check for jumps into statement
7584         expressions.  Add label to list of jumped to labels.
7585         (struct c_switch): Add blocked_stmt_expr.
7586         (c_start_case): Initialize it.
7587         (do_case): Check it.
7588         (c_finish_case): Verify !blocked_stmt_expr.
7589         (c_begin_stmt_expr):  Push context on label_context_stack.
7590         Increment blocked_stmt_expr.  Mark labels jumped to from outside
7591         as undefinable.
7592         (c_finish_stmt_expr): December blocked_stmt_expr.  Mark labels
7593         defined in the statement expression and no longer jumpable to.
7594         Mark labels jumped to from just outside the statement expression
7595         as again definable.  Pop context from label_context_stack.
7596         * doc/extend.texi (Statement Exprs): Update.
7597
7598 2005-03-30  Joseph S. Myers  <joseph@codesourcery.com>
7599
7600         PR c/20368
7601         * c-decl.c (start_function): Check for old_decl being
7602         error_mark_node.
7603
7604 2005-03-30  Ian Lance Taylor  <ian@airs.com>
7605
7606         * final.c (final): Remove prescan parameter.  Change all callers.
7607         (final_scan_insn): Remove prescan parameter.  Change all callers.
7608
7609 2005-03-30  Kazu Hirata  <kazu@cs.umass.edu>
7610
7611         * tree-vectorizer.c: Fix comment typos.
7612
7613 2005-03-30  Sebastian Pop  <pop@cri.ensmp.fr>
7614
7615         * tree-scalar-evolution.c (instantiate_parameters_1): Return
7616         as soon as a chrec_dont_know is detected.
7617
7618 2005-03-31  Danny Smith  <dannysmith@users.sourceforge.net>
7619
7620         Merge from csl-arm-branch.
7621         2004-02-12  Mark Mitchell  <mark@codesourcery.com>
7622
7623         * tlink.c (recompile_files): Do not assume that "rename" can
7624         overwrite an existing file.
7625
7626 2005-03-31  Paolo Bonzini  <bonzini@gnu.org>
7627
7628         * gcc/configure.ac (TL_AC_GNU_MAKE_GCC_LIB_PATH): Remove.
7629         * gcc/configure: Regenerate.
7630
7631 2005-03-30  Alan Modra  <amodra@bigpond.net.au>
7632
7633         * doc/install.texi: Update binutils requirement for powerpc*-linux.
7634
7635         * config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Update comments.
7636
7637         * calls.c (struct arg_data): Update "partial" comment.
7638         (load_register_parameters): Update "nregs" comment.
7639
7640 2005-03-30  Richard Sandiford  <rsandifo@redhat.com>
7641
7642         * config/iq2000/iq2000.h (target_flags, MASK_GPOPT, MASK_EMBEDDED_DATA)
7643         (MASK_UNINIT_CONST_IN_RODATA, TARGET_EMBEDDED_DATA, TARGET_SWITCHES)
7644         (TARGET_DEFAULT, TARGET_CPU_DEFAULT, SUBTARGET_TARGET_OPTIONS)
7645         (TARGET_OPTIONS, iq2000_cpu_string, iq2000_arch_string): Delete.
7646         (TARGET_DEBUG_MODE, TARGET_DEBUG_A_MODE, TARGET_DEBUG_B_MODE)
7647         (TARGET_DEBUG_C_MODE, TARGET_DEBUG_D_MODE): Define to 0 rather
7648         than target_flags & 0.
7649         * config/iq2000/iq2000.c (iq2000_cpu_string, iq2000_arch_string)
7650         (iq2000_arch, iq2000_parse_cpu): Delete.
7651         (TARGET_HANDLE_OPTION): Override default.
7652         (iq2000_handle_option): New function.
7653         (override_options): Remove -march= and -mcpu= handling.
7654         * config/iq2000/iq2000.opt: New file.
7655
7656 2005-03-30  Richard Sandiford  <rsandifo@redhat.com>
7657
7658         * config/c4x/c4x-protos.h (c4x_rpts_cycles, c4x_cpu_version): Delete.
7659         * config/c4x/c4x.h (SMALL_MEMORY_FLAG, MPYI_FLAG, FAST_FIX_FLAG)
7660         (RPTS_FLAG, C3X_FLAG, TI_FLAG, PARANOID_FLAG, MEMPARM_FLAG, DEVEL_FLAG)
7661         (RPTB_FLAG, BK_FLAG, DB_FLAG, DEBUG_FLAG, HOIST_FLAG)
7662         (LOOP_UNSIGNED_FLAG, FORCE_FLAG, PRESERVE_FLOAT_FLAG)
7663         (PARALLEL_INSN_FLAG, PARALLEL_MPY_FLAG, ALIASES_FLAG, C30_FLAG)
7664         (C31_FLAG, C32_FLAG, C33_FLAG, C40_FLAG, C44_FLAG, TARGET_SWITCHES)
7665         (TARGET_DEFAULT, TARGET_SMALL, TARGET_MPYI, TARGET_FAST_FIX)
7666         (TARGET_RPTS, TARGET_TI, TARGET_PARANOID, TARGET_MEMPARM, TARGET_DEVEL)
7667         (TARGET_RPTB, TARGET_BK, TARGET_DB, TARGET_DEBUG, TARGET_HOIST)
7668         (TARGET_LOOP_UNSIGNED, TARGET_FORCE, TARGET_PRESERVE_FLOAT)
7669         (TARGET_PARALLEL, TARGET_PARALLEL_MPY, TARGET_ALIASES)
7670         (c4x_rpts_cycles_string, c4x_cpu_version_string)
7671         (TARGET_OPTIONS): Delete.
7672         (c4x_rpts_cycles, c4x_cpu_version): Declare.
7673         (TARGET_C3X, TARGET_C30, TARGET_C31, TARGET_C32, TARGET_C33)
7674         (TARGET_C40, TARGET_C44): Redefine in terms of c4x_cpu_version.
7675         * config/c4x/c4x.c (c4x_rpts_cycles_string): Delete.
7676         (c4x_cpu_version_string): Delete.
7677         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
7678         (c4x_handle_option): New function.  Map -m3x and -m4x options to the
7679         equivalent -mcpu= option.
7680         (c4x_override_options): Remove -mrpts= and -mcpu= handling from here.
7681         Deal with the extra conditions in the old TARGET_MPYI, TARGET_RPTB,
7682         TARGET_DB, TARGET_PARALLEL and TARGET_PARALLEL_MPY macros by setting
7683         or clearing the appropriate MASK_* bit.
7684         (c4x_file_start): Use c4x_cpu_version.
7685         * config/c4x/c4x.opt: New file.
7686
7687 2005-03-30  Richard Sandiford  <rsandifo@redhat.com>
7688
7689         * doc/options.texi: Document the new MaskExists flag.
7690         * opth-gen.awk: Don't output MASK and TARGET macros for Mask(...)
7691         if the option has the MaskExists flag.
7692
7693 2005-03-30  Richard Sandiford  <rsandifo@redhat.com>
7694
7695         * opt-functions.awk (flag_set_p, test_flag): New functions.
7696         (switch_flags): Use them.
7697         * opth-gen.awk: Use flag_set_p to check for flags.
7698         * optc-gen.awk: Likewise.  Use opt_args to check for Init(...) flags.
7699
7700 2005-03-30  Ian Lance Taylor  <ian@airs.com>
7701
7702         * config.host (i[34567]86-*-mingw32*): Don't set
7703         host_can_use_collect2 to no.
7704
7705 2005-03-30  Alan Modra  <amodra@bigpond.net.au>
7706
7707         PR target/20203
7708         * builtins.c (get_memory_rtx): Expand address exp using EXPAND_NORMAL.
7709         Remove convert_memory_address call duplicating that in memory_address.
7710
7711 2005-03-29  Richard Henderson  <rth@redhat.com>
7712
7713         PR c/20519
7714         * c-decl.c (c_finish_incomplete_decl): Update complete_array_type call.
7715         (build_compound_literal): Likewise.  Propagate decl type into the
7716         initializer.
7717         (finish_decl): Likewise.  Use new return value from complete_array_type
7718         for zero sized arrays.
7719         (complete_array_type): Move ...
7720         * c-common.c (complete_array_type): ... here.  Change first argument
7721         to pointer-to-type-node.  Consistently use sizetype for the index
7722         except for zero sized arrays.  Detect zero sized arrays for pedantic
7723         mode diagnostics.  Create a new type node instead of modifying the
7724         old node in place.
7725         * c-tree.h (complete_array_type): Move decl ...
7726         * c-common.h (complete_array_type): ... here.
7727
7728 2005-03-29  Richard Henderson  <rth@redhat.com>
7729
7730         PR tree-opt/19108
7731         * tree-sra.c (generate_element_init_1): Handle RANGE_EXPR.
7732
7733 2005-03-29  Kazu Hirata  <kazu@cs.umass.edu>
7734
7735         * builtin-types.def, c-convert.c, c-format.c, ddg.c, debug.c,
7736         debug.h, et-forest.c, et-forest.h, gcov.c, rtl-profile.c,
7737         rtlhooks-def.h, rtlhooks.c, sdbout.c, tree-inline.h,
7738         tree-profile.c, tsystem.h, value-prof.h: Update copyright.
7739
7740 2005-03-29  Eric Christopher  <echristo@redhat.com>
7741
7742         * config/mips/mips.c (mips_gimplify_va_arg_expr): Update for
7743         truthvalue conversion removal.
7744
7745 2005-03-29  Ian Lance Taylor  <ian@airs.com>
7746
7747         PR bootstrap/14316
7748         * collect2.c: Never include <vfork.h>.
7749         (VFORK_STRING, vfork): Don't define.
7750         (pid): Remove global variable.
7751         (handler): Call raise instead of kill (getpid(), ...).
7752         (collect_wait): Add pex parameter.  Change all callers.  Use
7753         pex_get_status rather than pwait.
7754         (do_wait): Add pex parameter.  Change all callers.
7755         (collect_execute): Return struct pex_obj * rather than void.  Use
7756         pex routines rather than pexecute.
7757         (fork_execute): Get pex_obj from collect_execute, and pass it to
7758         do_wait.
7759         (scan_prog_file): Use pex routines rather than pipe/vfork/exec.
7760         Only declare quit_handler if SIGQUIT is defined.
7761         (scan_libraries): Likewise.
7762         * collect2.h (collect_execute): Update declaration.
7763         (collect_wait): Update declaration.
7764         * tlink.c (tlink_execute): Get pex_obj from collect_execute, and
7765         pass it to collect_wait.
7766
7767 2005-03-29  Joseph S. Myers  <joseph@codesourcery.com>
7768
7769         PR c/20672
7770         * c-parser.c (c_parser_compound_statement_nostart): Give error
7771         message for EOF instead of just setting parser->error.
7772
7773 2005-03-29  Dorit Naishlos  <dorit@il.ibm.com>
7774
7775         * tree-vectorizer.c (slpeel_update_phi_nodes_for_guard): Removed.
7776         (slpeel_update_phi_nodes_for_guard1): New function.
7777         (slpeel_update_phi_nodes_for_guard2): New function.
7778         (slpeel_tree_peel_loop_to_edge): Call above new functions instead
7779         of slpeel_update_phi_nodes_for_guard.
7780         (vectorize_loops): Remove call to loop_closed_rewrite.
7781         * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Remove
7782         assertion.
7783
7784 2005-03-29  Richard Sandiford  <rsandifo@redhat.com>
7785
7786         * config/m32r/little.h (TARGET_ENDIAN_DEFAULT): Delete.
7787         (TARGET_LITTLE_ENDIAN): New macro.
7788         * config/m32r/m32r.h (SUBTARGET_SWITCHES, target_flags)
7789         (TARGET_RELAX_MASK, TARGET_DEBUG_MASK, TARGET_DEBUG)
7790         (TARGET_ALIGN_LOOPS_MASK, TARGET_ALIGN_LOOPS)
7791         (TARGET_LOW_ISSUE_RATE_MASK, TARGET_LOW_ISSUE_RATE)
7792         (TARGET_BRANCH_COST_MASK, TARGET_BRANCH_COST, TARGET_M32RX_MASK)
7793         (TARGET_M32RX, TARGET_M32R2_MASK, TARGET_M32R2, LITTLE_ENDIAN_BIT)
7794         (TARGET_ENDIAN_DEFAULT, SUBTARGET_SWITCHES, TARGET_DEFAULT)
7795         (TARGET_SWITCHES, m32r_model_string, m32r_sdata_string)
7796         (m32r_cache_flush_trap_string, SUBTARGET_OPTIONS)
7797         (TARGET_OPTIONS): Delete.
7798         (M32R_MODEL_DEFAULT, M32R_SDATA_DEFAULT): Turn into enums.
7799         (CACHE_FLUSH_TRAP): Turn into an integer.
7800         (TARGET_LITTLE_ENDIAN): Define to 0 by default.
7801         (INITIALIZE_TRAMPOLINE): Check m32r_cache_trap >= 0 to see if
7802         -mflush-trap is in use.
7803         * config/m32r/m32r.c (m32r_model_string, m32r_sdata_string)
7804         (m32r_cache_flush_trap_string): Delete.
7805         (m32r_model) Initialize to M32R_MODEL_DEFAULT.
7806         (m32r_sdata): Likewise M32R_SDATA_DEFAULT.
7807         (m32r_cache_trap): Likewise CACHE_FLUSH_TRAP.
7808         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
7809         (m32r_handle_option): New function.  Move -mflush-trap=, -mflush-func=,
7810         -mmodel= and -msdata= handling from...
7811         (m32r_init): ...here.
7812         * config/m32r/m32r.opt: New file.
7813
7814 2005-03-29  Keith Besaw  <kbesaw@us.ibm.com>
7815
7816         * tree-ssanames.c (duplicate_ssa_name_ptr_info): New function.
7817         (duplicate_ssa_name): Call duplicate_ssa_name_ptr_info.
7818         * tree-vect-analyze.c (vect_object_analysis): additional parm
7819         pass back a "struct ptr_info_def *" with the points-to info.
7820         (vect_analyze_data_refs): set the STMT_VINFO_PTR_INFO for the
7821         statement using info returned from vect_object_analysis.
7822         * tree-vect-transform.c (update_vuses_to_preheader): New function.
7823         (vect_create_data_ref_ptr): Remove updates to vars_to_rename
7824         for virtual uses and defs when creating a replacement vector
7825         reference.  Call duplicate_ssa_name_ptr_info to define points-to
7826         info for vector pointer replacement using STMT_VINFO_PTR_INFO.
7827         (vectorizable_store): copy_virtual_operands and update
7828         definition statements.
7829         (vectorizable_load): copy_virtual_operands.  Remove call to
7830         mark_call_clobbered_vars_to_rename for call to "const" builtin.
7831         * tree-vectorizer.c (vectorize_loops): Remove calls to
7832         rewrite_into_ssa and bitmap_clear (vars_to_rename).
7833         (new_stmt_vec_info): initialize STMT_VINFO_PTR_INFO for stmt.
7834         * tree-vectorizer.h (_stmt_vec_info): add field ptr_info and
7835         define macro STMT_VINFO_PTR_INFO for use in accessing.
7836         * tree.h add export of duplicate_ssa_name_ptr_info.
7837         * rs6000.c (altivec_init_builtins): Declare builtin function
7838         __builtin_altivec_mask_for_load to be "const".
7839
7840 2005-03-29  Jakub Jelinek  <jakub@redhat.com>
7841
7842         PR middle-end/20622
7843         * cgraph.h (struct cgraph_varpool_node): Add alias field.
7844         * cgraph.c (cgraph_varpool_assemble_pending_decls): Don't call
7845         assemble_variable on aliases.
7846         * varasm.c (assemble_alias): Set node->alias.
7847         * toplev.c (wrapup_global_declarations): Don't call
7848         rest_of_decl_compilation on aliases again.
7849
7850 2005-03-29  Paul Brook  <paul@codesourcery.com>
7851
7852         * config/arm/arm-protos.h (arm_dbx_register_number): Add prototype.
7853         * config/arm/arm.c (arm_dbx_register_number): New function.
7854         * config/arm/arm.h (IS_FPA_REGNUM, DBX_REGISTER_NUMBER): Define.
7855
7856 2005-03-29  Eric Botcazou  <ebotcazou@libertysurf.fr>
7857
7858         PR middle-end/20263
7859         * varasm.c (make_decl_rtl) [ASM_DECLARE_REGISTER_GLOBAL]: Use
7860         the DECL_NAME, not the DECL_ASSEMBLER_NAME.
7861
7862 2005-03-29  Dale Johannesen <dalej@apple.com>
7863
7864         * Makefile.in (value-prof.o): New dependencies on $(DIAGNOSTIC_H)
7865         $(TREE_H) and $(COVERAGE_H).
7866         * coverage.c (compute_checksum): Use DECL_NAME not DECL_ASSEMBLER_NAME.
7867         * opts.c (common_handle_option): Enable tree-based value transforms.
7868         * toplev.c (process_options): Ditto.
7869         * value-prof.h (struct histogram_value_t): Redefine. "Adjust" below
7870         refers to references to this type.
7871         * tree-flow.h: (struct stmt_ann_d): Add histograms field.
7872         * rtl-profile.c (rtl_gen_interval_profiler): Adjust. Remove checks
7873         for may_be_more, may_be_less.
7874         (rtl_gen_pow2_profiler): Adjust.
7875         (rtl_gen_one_value_profiler_no_edge_manip): Adjust.
7876         (rtl_gen_one_value_profiler): Adjust.
7877         (rtl_gen_const_delta_profiler): Adjust.
7878         * tree-profile.c (tree_gen_interval_profiler): Implement.
7879         (tree_gen_pow2_profiler): Ditto.
7880         (tree_gen_one_value_profiler): Ditto.
7881         (tree_profiling): New.
7882         (pass_tree_profile): Reference it.
7883         * value-prof.c: Include tree-flow.h, tree-flow-inline.h, diagnostic.h,
7884         tree.h, gcov-io.h.
7885         (insn_divmod_values_to_profile): Rename to
7886         rtl_divmod_values_to_profile. Adjust.
7887         (insn_values_to_profile): Rename to rtl_values_to_profile. Adjust.
7888         (insn_prefetch_values_to_profile): Adjust.
7889         (rtl_value_profile_transformations): Adjust.
7890         (gen_divmod_fixed_value): Rename to rtl_divmod_fixed_value.
7891         (gen_mod_pow2): Rename to rtl_mod_pow2.
7892         (gen_mod_subtract): Rename to rtl_mod_subtract.
7893         (divmod_fixed_value_transform): Rename to
7894         rtl_divmod_fixed_value_transform.
7895         (mod_pow2_value_transform): Rename to rtl_mod_pow2_value_transform.
7896         (mod_subtract_transform): Rename to rtl_mod_subtract_transform.
7897         (rtl_find_values_to_profile): Adjust.
7898         (tree_value_profile_transformations): Implement.
7899         (tree_divmod_values_to_profile): New.
7900         (tree_values_to_profile): New.
7901         (tree_divmod_fixed_value): New.
7902         (tree_mod_pow2): New.
7903         (tree_mod_subtract): New.
7904         (tree_divmod_fixed_value_transform): New.
7905         (tree_mod_pow2_value_transform): New.
7906         (tree_mod_subtract_transform): New.
7907         (tree_find_values_to_profile): Implement.
7908         * profile.c (instrument_values):  Free histograms.
7909         (compute_value_histograms): Adjust. Implement tree version.
7910
7911 2005-03-29  Uros Bizjak  <uros@kss-loka.si>
7912
7913         * reg-stack.c (subst_stack_regs_pat): Handle <UNSPEC_FIST> case.
7914         * config/i386/i386.c (output_fix_trunc): Add new round_mode
7915         variable.  Output "fldcw" depending on round_mode.
7916         * config/i386/i386.md (UNSPEC_FIST): New.
7917         (fistdi2, fistdi2_with_temp, fist<mode>2, fist<mode>2_with_temp):
7918         New isns patterns to implement lrint and llrint built-ins as x87
7919         intrinsic function.
7920         (fistdi2, fist<mode>2 splitters): New splitters.
7921         (lrint<mode>2): New expanders.
7922
7923 2005-03-28  Ian Lance Taylor  <ian@airs.com>
7924
7925         * config/arc/arc.c (arc_output_function_epilogue): Pass prescan as
7926         0 when calling final_scan_insn.
7927
7928 2005-03-28  Jan Hubicka  <jh@suse.cz>
7929
7930         PR middle-end/20635
7931         * varasm.c (mark_decl_referenced): Do not mark extern inline functions
7932         as needed.
7933
7934         * tree-inline.c (estimate_num_insns_1): Use declaration to discover argument
7935         types where possible.
7936
7937 2005-03-26  Per Bothner  <per@bothner.com>
7938
7939         Make -f[no-]show-column also control non-cpp diagnostics.
7940         * c.opt (fshow-column): Move option from here ...
7941         * common.opt (fshow-column): ... to here.
7942         * diagnostic.c (diagnostic_build_prefix): Only print column number
7943         if flag_show_column.
7944
7945 2005-03-27  Steven Bosscher  <stevenb@suse.de>
7946
7947         * vax-protos.h (vax_output_int_move, vax_output_int_add,
7948         vax_output_conditional_branch): New prototypes.
7949         * vax.c (vax_output_int_move, vax_output_int_add): New functions,
7950         extracted from vax.md mov and add patterns.
7951         (vax_output_conditional_branch): New function to output conditional
7952         branch instructions.
7953         * vax.md: Use mode macros for arithmetic and mov patterns.
7954         Use code macros for the jump patterns.
7955
7956 2005-03-26  Andrew Pinski  <pinskia@physics.uc.edu>
7957
7958         * Makefile.in (libbackend.o): Depend on version files;
7959         add custom generation command.
7960
7961 2005-03-26  Andrew Pinski  <pinskia@physics.uc.edu>
7962
7963         PR target/20636
7964         * config/rs6000/rs6000.md (extendsfdf2_fpr): Check to make
7965         sure that we have a REG before getting its REGNO.
7966
7967 2005-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7968
7969         * builtin-types.def (BT_FN_STRING_CONST_STRING_SIZE): New.
7970         * builtins.def (BUILT_IN_STRNDUP): New.
7971
7972 2005-03-25  Pat Haugen  <pthaugen@us.ibm.com>
7973
7974         PR tree-optimization/20470
7975         * fold-const.c (fold_cond_expr_with_comparison): Recognize/fold
7976         ABS(x-y).
7977
7978 2005-03-25  Mike Stump  <mrs@apple.com>
7979
7980         * config/darwin.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Don't allow 0
7981         sized objects.
7982
7983 2005-03-25  Geoffrey Keating  <geoffk@apple.com>
7984
7985         * config/rs6000/darwin-fallback.c: Don't include <ucontext.h>.
7986         Use our own structure definitions.
7987
7988         * config/rs6000/rs6000.md (UNSPEC constants): Add UNSPEC_STFIWX.
7989         (fix_truncdfsi2): Allow registers or memory as destination.
7990         When TARGET_PPC_GFXOPT, generate simplified pattern.
7991         (fix_truncdfsi2_internal): Use define_insn_and_split.
7992         (fix_truncdfsi2_internal_gfxopt): New.
7993         (fctiwz): Don't confuse register allocation by giving it no choices.
7994         (stfiwx): New.
7995         * config/rs6000/rs6000.h (EXTRA_CONSTRAINT): Add 'Z'.
7996         (EXTRA_MEMORY_CONSTRAINT): Likewise.
7997         * config/rs6000/rs6000.c (indexed_or_indirect_operand): New.
7998         * config/rs6000/rs6000-protos.h (indexed_or_indirect_operand): New.
7999
8000 2005-03-25  Kazu Hirata  <kazu@cs.umass.edu>
8001
8002         * dominance.c (free_dominance_info): Speed up by freeing et
8003         data structures without maintaining other nodes.
8004         * et-forest.c (et_free_tree_force): New.
8005         * et-forest.h: Add a prototype for et_free_tree_force.
8006
8007         * tree.c (get_set_constructor_bits,
8008         get_set_constructor_bytes): Remove.
8009         * tree.h: Remove the corresponding prototypes.
8010
8011 2005-03-25  John David Anglin  <dave.anglin@nrc-crnc.gc.ca>
8012
8013         PR target/15491
8014         * vax.c (vax_rtx_costs_1): Merge with vax_rtx_costs.
8015         (vax_rtx_costs): Return false when passed unsupported rtx's.  Handle
8016         FLOAT_EXTEND, FLOAT_TRUNCATE and TRUNCATE.  Fix costs for POST_INC,
8017         PRE_DEC, NEG and NOT.
8018
8019 2005-03-25  Kazu Hirata  <kazu@cs.umass.edu>
8020
8021         * fold-const.c: Convert uses of fold (build (...)) to
8022         fold_buildN.
8023
8024 2005-03-25  Zdenek Dvorak  <dvorakz@suse.cz>
8025
8026         PR rtl-optimization/20249
8027         * cse.c (insert_regs): Do not record equivalence of registers in
8028         different modes.
8029
8030 2005-03-24  Kazu Hirata  <kazu@cs.umass.edu>
8031
8032         * emit-rtl.c (reverse_comparison): Remove.
8033         * rtl.h: Remove the corresponding prototype.
8034
8035 2005-03-24  James E Wilson  <wilson@specifixinc.com>
8036
8037         * doc/install.texi (--enable-altivec): Delete docs.
8038
8039 2005-03-24  David Edelsohn  <edelsohn@gnu.org>
8040
8041         * config/rs6000/predicates.md (easy_fp_constant): Return 0 for
8042         SFmode and DFmode before reload when
8043         flag_unsafe_math_optimizations not enabled.
8044
8045 2005-03-24  Geoffrey Keating  <geoffk@apple.com>
8046
8047         * c.opt (fvisibility-inlines-hidden): Allow for ObjC++.
8048
8049         * config/i386/darwin.h (TARGET_SUBTARGET_DEFAULT): Add
8050         MASK_128BIT_LONG_DOUBLE, MASK_ALIGN_DOUBLE.
8051
8052 2005-03-24  Nathan Sidwell  <nathan@codesourcery.com>
8053
8054         * configure.ac (enable-checking): Add 'runtime' option.
8055         * doc/install.texi (enable-checking): Document 'runtime' checking.
8056         * tsystem.h (gcc_assert, gcc_unreachable): Define.
8057         * config.in: Regenerated.
8058         * configure: Regenerated.
8059
8060 2005-03-23  Uros Bizjak  <uros@kss-loka.si>
8061
8062         * optabs.h (enum optab_index): Remove OTI_llrint.
8063         (llrint_optab): Remove macro.
8064         * optabs.c (init_optabs): Remove llrint_optab initialization.
8065         * genopinit.c (optabs): Remove llrint_optab implementation.
8066         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LLRINT{,F,L}
8067         using lrint_optab.
8068
8069 2005-03-24  Alexandre Oliva  <aoliva@redhat.com>
8070
8071         PR rtl-optimization/20532
8072         * simplify-rtx.c (simplify_binary_operation_1): Protect from
8073         overflow when adding coefficients for PLUS or MINUS.
8074         (simplify_binary_operation_1): Handle CONST_DOUBLE exact power of
8075         two as multiplier.
8076
8077 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
8078
8079         * langhooks.h (truthvalue_conversion): Remove.
8080         * langhooks-def.h (LANG_HOOKS_INITIALIZER): Remove
8081         LANG_HOOKS_TRUTHVALUE_CONVERSION.
8082         * system.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Poison.
8083         * gimplify.c (gimple_boolify): Don't use truthvalue_conversion.
8084         * c-objc-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
8085
8086 2005-03-23  Kazu Hirata  <kazu@cs.umass.edu>
8087
8088         * params.def: Fix a typo.
8089         * config/mips/mips.c: Follow the spelling convensions.
8090         * doc/invoke.texi: Fix typos.
8091
8092 2005-03-23  Daniel Berlin  <dberlin@dberlin.org>
8093
8094         Fix PR tree-optimization/20601
8095
8096         * tree-ssa-pre.c (insert_aux): Add missing condition to
8097         constification.
8098
8099 2005-03-23  Ian Lance Taylor  <ian@airs.com>
8100
8101         * final.c (final_scan_insn): Don't remove no-op instructions.
8102         * reload1.c (reload): Remove simple no-op instructions even when
8103         not optimizing.
8104
8105 2005-03-23  Dorit Naishlos  <dorit@il.ib.com>
8106
8107         PR tree-optimization/20501
8108         * tree-vect-analyze.c (vect_enhance_data_refs_alignment): Debug print
8109         reporting that peeling for alignment is applied moved to...
8110         * (vect_analyze_data_refs_alignment): Here.
8111
8112 2005-03-23  Ian Lance Taylor  <ian@airs.com>
8113
8114         * reorg.c (dbr_schedule): Remove #if 0 code to call final.
8115
8116 2005-03-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8117
8118         * config.gcc (alpha*-dec-osf[45]*): Remove target_cpu_default.
8119         Define TARGET_SUPPORT_ARCH except on Tru64 UNIX V4.0A.
8120
8121 2005-03-23  Hans-Peter Nilsson  <hp@axis.com>
8122
8123         * doc/tm.texi (TARGET_MD_ASM_CLOBBERS): Adjust wording to not
8124         imply that this is called once, independent of asms in code.
8125         Adjust to now being pased output and input lists.  Mention helper
8126         function decl_overlaps_hard_reg_set_p.
8127         * hooks.c (hook_tree_tree_tree_tree_3rd_identity): Rename from
8128         hook_tree_tree_identity and to take three trees, returning third.
8129         * hooks.h (hook_tree_tree_tree_tree_3rd_identity): Adjust the
8130         prototype.
8131         * stmt.c: include hard-reg-set.h before tree.h.
8132         (decl_overlaps_hard_reg_set_p): New function, broken out from...
8133         (decl_conflicts_with_clobbers_p): Call
8134         decl_overlaps_hard_reg_set_p.
8135         (expand_asm_operands): Pass output and input lists in call to
8136         targetm.md_asm_clobbers.
8137         * target-def.h (TARGET_MD_ASM_CLOBBERS): Define as
8138         hook_tree_tree_tree_tree_3rd_identity.
8139         * target.h (struct gcc_target.md_asm_clobbers): Take three tree
8140         parameters.
8141         * tree.h [HARD_CONST] (decl_overlaps_hard_reg_set_p): Prototype.
8142         * config/i386/i386.c (ix86_md_asm_clobbers): Adjust to three
8143         parameters, first two unused.
8144         * config/cris/cris.c (cris_md_asm_clobbers): Adjust to added
8145         parameters.  Only add MOF to clobbers if there's no 'h' mentioned
8146         in constraint letters and MOF is not mentioned as a asm-declared
8147         register in neither of the input and output lists.
8148
8149 2005-03-23  DJ Delorie  <dj@redhat.com>
8150
8151         * optabs.c (expand_binop): Make sure the first subword's result
8152         gets stored.
8153
8154 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
8155
8156         * c-common.c (c_common_truthvalue_conversion): Adjust comment.
8157         Call c_common_truthvalue_conversion rather than
8158         lang_hooks.truthvalue_conversion.
8159         * c-convert.c (convert): Call c_objc_common_truthvalue_conversion.
8160         * c-objc-common.c (c_objc_common_truthvalue_conversion): Move to
8161         c-typeck.c.
8162         * c-objc-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Change to
8163         c_common_truthvalue_conversion.
8164         * c-parser.c (c_parser_paren_condition, c_parser_for_statement,
8165         c_parser_conditional_expression, c_parser_binary_expression): Call
8166         c_objc_common_truthvalue_conversion.
8167         * c-typeck.c (build_unary_op): Call
8168         c_objc_common_truthvalue_conversion.
8169         (build_conditional_expr): Do not call
8170         lang_hooks.truthvalue_conversion.
8171         (build_binary_op): Call c_common_truthvalue_conversion.
8172         (c_objc_common_truthvalue_conversion): Moved from
8173         c-objc-common.c.  Call default_function_array_conversion instead
8174         of default_conversion.
8175
8176 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
8177
8178         * c-common.h (default_conversion): Remove.
8179         (perform_integral_promotions): Add.
8180         * c-tree.h (default_conversion): Add.
8181         * c-typeck.c (perform_integral_promotions): New, split out from
8182         default_conversion.
8183         * c-common.c (check_case_value): Use perform_integral_promotions,
8184         not default_conversion.
8185         (c_add_case_label): Don't continue processing case label after
8186         found to be pointer.
8187
8188 2005-03-23  Mark Mitchell  <mark@codesourcery.com>
8189
8190         * gcc.c (do_spec_1): Do not add a -L path for a directory in
8191         the prefix list if we have already added a multilib directory
8192         based on that path.
8193         (main): Do not add MD_EXEC_PREFIX to the list of directories to
8194         search with -L.
8195
8196 2005-03-22  Kazu Hirata  <kazu@cs.umass.edu>
8197
8198         * reload1.c (indirect_symref_ok, reload_obstack): Make them
8199         static.
8200         * reload.h: Remove the prototype for indirect_symref_ok.
8201
8202         * reload1.c (indirect_symref_ok): Make it global.
8203         * reload.h: Add a prototype for indirect_symref_ok.
8204
8205 2005-03-22  Kaz Kojima  <kkojima@gcc.gnu.org>
8206
8207         * config/sh/sh.md (ashlhi3): Rename to *ashlhi3_n and add a new
8208         ashlhi3 expander.
8209
8210 2005-03-22  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
8211
8212         * tree.h (DECL_IGNORED_P, DECL_IN_SYSTEM_HEADER): Clarify comments.
8213
8214 2005-03-22  Daniel Berlin  <dberlin@dberlin.org>
8215
8216         * c-opts.c (c_common_parse_file): Only start/end main source file
8217         if debug hooks says the writer wants it.
8218         * dbxout.c (dbx_debug_hooks): Add start_end_main_source_file
8219         member.
8220         (xcoff_debug_hooks): Ditto.
8221         * debug.c (do_nothing_hooks): Ditto.
8222         * debug.h (gcc_debug_hooks): Ditto.
8223         * dwarf2out.c (dwarf2_debug_hooks): Ditto.
8224         * sdbout.c (sdb_debug_hooks): Ditto.
8225         * vmsdbgout.c (vmsdbg_debug_hooks): Ditto.
8226
8227 2005-03-22  Mark Mitchell  <mark@codesourcery.com>
8228
8229         * doc/extend.texi: Deprecate C++ min/max operators.
8230
8231 2005-03-22  Zdenek Dvorak  <dvorakz@suse.cz>
8232
8233         * tree-ssa-loop-ivopts.c (determine_iv_cost): Do not try to preserve
8234         artificial original candidates.
8235
8236 2005-03-22  Richard Guenther <rguenth@tat.physik.uni-tuebingen.de>
8237             Jan Hubicka  <jh@suse.cz>
8238             Steven Bosscher <stevenb@suse.de>
8239
8240         * cgraphunit.c (cgraph_estimate_size_after_inlining): Compute
8241         call cost based on argument sizes.
8242         (cgraph_mark_inline_edge): Avoid inline unit from shrinking by
8243         inlining.
8244         * params.def: (max-inline-inssn-single): Set to 450.
8245         (max-inline-insns-auto): Set to 90.
8246         (max-inline-insns-recursive): Set to 450
8247         (max-inline-insns-recursive-auto): Set to 450.
8248         (large-function-insns): Set to 2700.
8249         (inline-call-cost): New parameter.
8250         * tree-inline.c (estimate_move_cost): New function.
8251         (estimate_num_insns_1): Compute move sizes costs by estimate_move_cost
8252         for non-gimple-regs, set cost to 0 for gimple-regs.  Compute call size
8253         based on arguments.
8254         * tree-inline.h (estimate_move_cost): Declare.
8255         * invoke.texi: (max-inline-inssn-single): Change default to 450.
8256         (max-inline-insns-auto): Change default to 90.
8257         (max-inline-insns-recursive): Change default to 450
8258         (max-inline-insns-recursive-auto): Change default to 450.
8259         (large-function-insns): Change default to 2700.
8260         (inline-call-cost): Document new parameter.
8261
8262 2005-03-22  Richard Sandiford  <rsandifo@redhat.com>
8263
8264         * config/i860/i860.h (target_flags, TARGET_XP, TARGET_SWITCHES)
8265         (TARGET_DEFAULT): Delete.
8266         * config/i860/i860.opt: New file.
8267
8268 2005-03-22  Richard Sandiford  <rsandifo@redhat.com>
8269
8270         * config/frv/frv-protos.h (frv_branch_cost_string, frv_branch_cost_int)
8271         (frv_cpu_string, frv_condexec_insns_str, frv_condexec_insns)
8272         (frv_condexec_temps_str, frv_condexec_temps, frv_sched_lookahead_str)
8273         (frv_sched_lookahead): Delete.
8274         * config/frv/frv.h (MASK_DEFAULT_ALLOC_CC): Move to frv.c.
8275         (target_flags, MASK_GPR_32, MASK_FPR_32, MASK_SOFT_FLOAT)
8276         (MASK_ALLOC_CC, MASK_DWORD, MASK_DOUBLE, MASK_MEDIA, MASK_MULADD)
8277         (MASK_LIBPIC, MASK_ACC_4,  MASK_PACK, MASK_LONG_CALLS)
8278         (MASK_ALIGN_LABELS, MASK_LINKED_FP, MASK_BIG_TLS, MASK_DEBUG_ARG)
8279         (MASK_DEBUG_ADDR, MASK_DEBUG_STACK, MASK_DEBUG, MASK_DEBUG_LOC)
8280         (MASK_DEBUG_COND_EXEC, MASK_NO_COND_MOVE, MASK_NO_SCC)
8281         (MASK_NO_COND_EXEC, MASK_NO_VLIW_BRANCH, MASK_NO_MULTI_CE)
8282         (MASK_FDPIC, MASK_INLINE_PLT, MASK_GPREL_RO, MASK_DEFAULT)
8283         (TARGET_GPR_32, TARGET_FPR_32, TARGET_SOFT_FLOAT, TARGET_ALLOC_CC)
8284         (TARGET_DWORD, TARGET_DOUBLE, TARGET_MEDIA, TARGET_MULADD)
8285         (TARGET_LIBPIC, TARGET_ACC_4, TARGET_DEBUG_ARG, TARGET_DEBUG_ADDR)
8286         (TARGET_DEBUG_STACK, TARGET_DEBUG, TARGET_DEBUG_LOC)
8287         (TARGET_DEBUG_COND_EXEC, TARGET_NO_COND_MOVE, TARGET_NO_SCC)
8288         (TARGET_NO_COND_EXEC, TARGET_NO_VLIW_BRANCH, TARGET_NO_MULTI_CE)
8289         (TARGET_NO_NESTED_CE, TARGET_FDPIC, TARGET_INLINE_PLT, TARGET_BIG_TLS)
8290         (TARGET_GPREL_RO, TARGET_PACK, TARGET_LONG_CALLS, TARGET_ALIGN_LABELS)
8291         (TARGET_LINKED_FP, TARGET_GPR_64, TARGET_FPR_64, TARGET_HARD_FLOAT)
8292         (TARGET_FIXED_CC, TARGET_COND_MOVE, TARGET_SCC, TARGET_COND_EXEC)
8293         (TARGET_VLIW_BRANCH, TARGET_MULTI_CE, TARGET_NESTED_CE, TARGET_ACC_8)
8294         (TARGET_SWITCHES, TARGET_OPTIONS, DEFAULT_CONDEXEC_TEMPS)
8295         (DEFAULT_BRANCH_COST, DEFAULT_CONDEXEC_INSNS): Delete.
8296         * config/frv/frv.c (frv_branch_cost_string, frv_branch_cost_int)
8297         (frv_cpu_string, frv_condexec_insns_str, frv_condexec_insns)
8298         (frv_condexec_temps_str, frv_condexec_temps, frv_sched_lookahead_str)
8299         (frv_sched_lookahead): Delete.
8300         (MASK_DEFAULT_ALLOC_CC): Moved from frv.h.
8301         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
8302         (frv_handle_option): New function.  Move -mcpu= handling from...
8303         (frv_override_options): ...here.  Remove handling of other
8304         TARGET_OPTIONS.
8305         (frv_ifcvt_modify_tests): Check !TARGET_COND_EXEC instead of
8306         TARGET_NO_COND_EXEC and !TARGET_NESTED_CE to TARGET_NO_NESTED_CE.
8307         (frv_ifcvt_modify_multiple_tests): Likewise !TARGET_MULTI_CE
8308         and TARGET_NO_MULTI_CE.
8309         (frv_for_each_packet): Likewise TARGET_NO_VLIW_BRANCH and
8310         !TARGET_VLIW_BRANCH.
8311         * config/frv/frv.opt: New file.
8312
8313 2005-03-22  Kazu Hirata  <kazu@cs.umass.edu>
8314
8315         * fold-const.c (fold_ternary): Take decomposed arguments of
8316         CALL_EXPR.
8317         (fold): Update a call to fold_ternary.
8318
8319         * fold-const.c (fold_build1, fold_build2, fold_build3): New.
8320         * tree.h: Add corresponding prototypes.
8321
8322 2005-03-22  Jakub Jelinek  <jakub@redhat.com>
8323
8324         PR target/20561
8325         * cfglayout.c (reemit_insn_block_notes): Don't put block notes in
8326         between jump table and its label.
8327         * final.c (shorten_branches): Handle notes in between ADDR_VEC
8328         resp. ADDR_DIFF_VEC and the label preceeding it.
8329         (final_scan_insn): Likewise.  Ensure ADDR_VEC resp. ADDR_DIFF_VEC
8330         is emitted in the right section.
8331
8332 2005-03-22  Kazu Hirata  <kazu@cs.umass.edu>
8333
8334         * fold-const.c (fold_unary, fold_binary): Update comments
8335         about arguments.
8336
8337 2005-03-22  Hans-Peter Nilsson  <hp@axis.com>
8338
8339         PR rtl-optimization/20527
8340         * combine.c (can_combine_p) [AUTO_INC_DEC]: When INSN has an
8341         REG_INC note, test that the register also isn't mentioned in PRED
8342         or SUCC.
8343
8344 2005-03-22  Ben Elliston  <bje@au.ibm.com>
8345
8346         * dwarf2out.c (dwarf_type_encoding_name): Remove unused prototype
8347         and definition.
8348
8349 2005-03-21  Mike Stump  <mrs@apple.com>
8350
8351         * varasm.c (default_assemble_visibility): Remove extra ().
8352
8353 2005-03-21  Roger Sayle  <roger@eyesopen.com>
8354
8355         PR middle-end/20557
8356         * bb-reorder.c (duplicate_computed_gotos): Use can_duplicate_block_p
8357         to determine whether a block can be duplicated, rather than test
8358         whether the block contains noncopyable insns ourselves.
8359
8360 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
8361
8362         * config/i860/i860.h (PREDICATE_CODES): Remove nonexistent
8363         predicates.
8364
8365 2005-03-21  Richard Sandiford  <rsandifo@redhat.com>
8366
8367         * config/ip2k/ip2k.h (target_flags, TARGET_SWITCHES): Delete.
8368
8369 2005-03-21  Richard Sandiford  <rsandifo@redhat.com>
8370
8371         * config/fr30/fr30.h (TARGET_SMALL_MODEL_MASK, TARGET_SMALL_MODEL)
8372         (TARGET_DEFAULT, target_flags, TARGET_SWITCHES): Delete.
8373         * config/fr30/fr30.opt: New file.
8374
8375 2005-03-18  Daniel Berlin  <dberlin@dberlin.org>
8376
8377         Fix PR tree-optimization/20542
8378
8379         * tree-flow-inline.h (overlap_subvar): Move to here.
8380         * tree-ssa-operands.c: From here.
8381         * tree-flow.h (overlap_subvar): Declare.
8382         * tree-ssa-alias.c (add_pointed_to_var): Use overlap_subvar here.
8383         * tree-ssa-loop-im.c (is_call_clobbered_ref): Return proper answer
8384         for variables with subvars.
8385
8386 2005-03-21 Mostafa Hagog <mustafa@il.ibm.com>
8387
8388         PR middle-end/20177
8389         * ddg.c (create_ddg_dependence): Ignore reg-anti dependency.
8390         * modulo-sched.c (const_iteration_count): Return on NULL
8391         pre-header.
8392         (print_node_sched_params): Return on NULL dump_file.
8393         (generate_reg_moves): Handle reg-anti dependencies and disregard
8394         closing branch when generating register moves.
8395         (sms_schedule): Mark the SMSed block dirty.
8396         * passes.c (rest_of_handle_sms): Call update_life_info for all
8397         basic-blocks.
8398         * testsuite/gcc.dg/20050321-1.c: New test.
8399
8400 2005-03-21  Bob Wilson  <bob.wilson@acm.org>
8401
8402         * config/xtensa/lib1funcs.asm (__mulsi3): Use symbolic name for ACCLO.
8403         * config/xtensa/xtensa.md (movsi_internal, movhi_internal,
8404         movqi_internal): Likewise.
8405
8406 2005-03-21  Bob Wilson  <bob.wilson@acm.org>
8407
8408         * config/xtensa/xtensa-protos.h: (xtensa_simm7, xtensa_uimm8,
8409         xtensa_uimm8x2, xtensa_uimm8x4, xtensa_ai4const, xtensa_lsi4x4,
8410         xtensa_b4const): Delete prototypes.
8411         (xtensa_simm8, xtensa_simm8x256, xtensa_simm12b, xtensa_b4constu,
8412         xtensa_mask_immediate, xtensa_mem_offset): Update prototypes.
8413         (xtensa_b4const_or_zero, xtensa_const_ok_for_letter_p,
8414         xtensa_extra_constraint): New prototypes.
8415         (add_operand, arith_operand, nonimmed_operand, mem_operand,
8416         mask_operand, extui_fldsz_operand, sext_operand, sext_fldsz_operand,
8417         lsbitnum_operand, branch_operand, ubranch_operand, call_insn_operand,
8418         move_operand, const_float_1_operand, fpmem_offset_operand,
8419         branch_operator, ubranch_operator, boolean_operator): Delete prototypes.
8420         * config/xtensa/xtensa.c (b4const_or_zero): Rename to ...
8421         (xtensa_b4const_or_zero): ...this.  Change return type to bool and
8422         argument type to HOST_WIDE_INT.
8423         (xtensa_simm8, xtensa_simm8x256, xtensa_simm12b,
8424         xtensa_mask_immediate): Likewise.
8425         (xtensa_uimm8, xtensa_uimm8x2, xtensa_uimm8x4, xtensa_b4const):
8426         Likewise.  Also make these functions static.
8427         (xtensa_simm7, xtensa_ai4const, xtensa_lsi4x4): Delete.
8428         (xtensa_const_ok_for_letter_p): New.
8429         (add_operand, arith_operand, nonimmed_operand, mem_operand,
8430         mask_operand, extui_fldsz_operand, sext_operand, sext_fldsz_operand,
8431         lsbitnum_operand, branch_operand, ubranch_operand, call_insn_operand,
8432         move_operand, const_float_1_operand, fpmem_offset_operand,
8433         branch_operator, ubranch_operator, boolean_operator): Move to
8434         predicates.md.
8435         (smalloffset_mem_p): Inline code from xtensa_lsi4x4.
8436         (xtensa_mem_offset): Change return type to bool.
8437         (xtensa_extra_constraint): New.
8438         (gen_int_relational): Update type of const_range_p function pointer.
8439         Use xtensa_b4const_or_zero.
8440         * config/xtensa/xtensa.h (CONST_OK_FOR_LETTER_P): Define to
8441         xtensa_const_ok_for_letter_p.  Update comments.
8442         (EXTRA_CONSTRAINT): Define to xtensa_extra_constraint.
8443         (PREDICATE_CODES): Delete.
8444         * config/xtensa/xtensa.md: Include predicates.md.
8445         * config/xtensa/predicates.md: New file.
8446
8447 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
8448
8449         * config/v850/v850-protos.h: Remove the prototypes for
8450         reg_or_int9_operand, reg_or_const_operand,
8451         pattern_is_ok_for_prepare, pattern_is_ok_for_dispose,
8452         reg_or_0_operand, reg_or_int5_operand, call_address_operand,
8453         movsi_source_operand, power_of_two_operand,
8454         not_power_of_two_operand, special_symbolref_operand,
8455         pattern_is_ok_for_prologue, pattern_is_ok_for_epilogue, and
8456         register_is_ok_for_epilogue.
8457         * config/v850/v850.c (reg_or_0_operand, reg_or_int5_operand,
8458         reg_or_int9_operand, reg_or_const_operand,
8459         call_address_operand, special_symbolref_operand,
8460         movsi_source_operand, power_of_two_operand,
8461         not_power_of_two_operand, register_is_ok_for_epilogue,
8462         pattern_is_ok_for_epilogue, pattern_is_ok_for_prologue,
8463         pattern_is_ok_for_dispose, pattern_is_ok_for_prepare): Move to
8464         predicates.md.
8465         * config/v850/v850.h (PREDICATE_CODES): Remove.
8466         * config/v850/v850.md: Include predicates.md.
8467         * config/v850/predicates.md: New.
8468
8469 2005-03-21  Zack Weinberg  <zack@codesourcery.com>
8470
8471         * Makefile.in (BASEVER, DEVPHASE, DATESTAMP)
8472         (BASEVER_c, DEVPHASE_c, DATESTAMP_c)
8473         (BASEVER_s, DEVPHASE_s, DATESTAMP_s, version): Set with :=.
8474         (itoolsdir, itoolsdatadir): Move definition above new first use.
8475         (install-itoolsdirs): New rule.
8476         (install-mkheaders): Depend on install-itoolsdirs, not
8477         install-include-dir.
8478
8479 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
8480
8481         * tree-into-ssa.c: Remove obsolete comments.
8482
8483 2005-03-21  Richard Guenther  <rguenth@gcc.gnu.org>
8484
8485         * tree-ssa-loop.c (gate_tree_complete_unroll): Run complete
8486         unrolling if -fpeel-loops is specified, too.
8487         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
8488         Remove superfluous check for flag_unroll_loops.
8489
8490 2005-03-21  Uros Bizjak  <uros@kss-loka.si>
8491
8492         * optabs.h (enum optab_index): Add new OTI_lrint and OTI_llrint.
8493         (lrint_optab, llrint_optab): Define corresponding macros.
8494         * optabs.c (init_optabs): Initialize lrint_optab and llrint_optab.
8495         * genopinit.c (optabs): Implement lrint_optab using lrintsi2
8496         pattern and llrint_optab using llrintdi2 patterns.
8497         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LRINT{,F,L}
8498         using lrint_optab and BUILT_IN_LLRINT{,F,L} using llrint_optab.
8499         (expand_builtin): Expand BUILT_IN_LRINT{,F,L} and
8500         BUILT_IN_LLRINT{,F,L} using expand_builtin_mathfn if
8501         flag_unsafe_math_optimizations is set.
8502
8503 2005-03-21  Paolo Bonzini  <bonzini@gnu.org>
8504
8505         * combine.c (combine_simplify_rtx, simplify_if_then_else,
8506         simplify_logical, if_then_else_cond, known_cond,
8507         simplify_comparison): Adjust calls to reverse_comparison.
8508         Don't use combine_reversed_comparison_code).
8509         (combine_reversed_comparison_code): Remove.
8510         (reversed_comparison): Using reversed_comparison_code, move it...
8511         * jump.c (reversed_comparison): ... here.
8512         * rtl.h (reversed_comparison): Add prototype.
8513
8514 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
8515
8516         * builtins.c (fold_builtin): Take decomposed arguments of
8517         CALL_EXPR.
8518         * fold-const.c (fold_ternary): Update a call to fold_builtin.
8519         * gimplify.c (gimplify_call_expr): Likewise.
8520         * tree-ssa-ccp.c (ccp_fold, ccp_fold_builtin): Likewise.
8521         * tree.h: Update the prototype of fold_builtin.
8522
8523 2005-03-21  Paolo Bonzini  <bonzini@gnu.org>
8524
8525         * rtl.h (struct rtx_hooks): Add gen_lowpart_no_emit.
8526         * rtlhooks.c (gen_lowpart_no_emit_general): New.
8527         * rtlhooks-def.h (gen_lowpart_no_emit_general): Declare.
8528         (RTL_HOOKS_GEN_LOWPART_NO_EMIT): New.
8529         * simplify-rtx.c (simplify_binary_operation_1): Use it.
8530
8531 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
8532
8533         * builtins.c (fold_builtin_1): Take decomposed arguments of
8534         CALL_EXPR.
8535         (fold_builtin): Update a call to fold_builtin_1.
8536
8537 2005-03-21  Nathan Sidwell  <nathan@codesourcery.com>
8538
8539         PR other/20564
8540         * gcov.c (output_lines): Only output function block summary when
8541         outputting branch information.
8542         * doc/gcov.texi: Document format of preamble and additional block
8543         information lines.
8544
8545 2005-03-21  Richard Sandiford  <rsandifo@redhat.com>
8546
8547         * libgcc2.h (LIBGCC2_HAS_SF_MODE): New macro.
8548         (LIBGCC2_HAS_DF_MODE, LIBGCC2_HAS_TF_MODE, LIBGCC2_HAS_XF_MODE): Make
8549         the defaults false if BITS_PER_UNIT != 8.
8550         (SFtype, SCtype, __fixsfdi, __floatdisf, __fixunssfSI, __fixunssfDI)
8551         (__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE rather
8552         than BITS_PER_UNIT != 8.
8553         (L_fixdfdi, L_fixsfdi, L_fixtfdi, L_fixunsdfdi, L_fixunsdfsi)
8554         (L_fixunssfdi, L_fixunssfsi, L_fixunstfdi, L_fixunsxfdi, L_fixunsxfsi)
8555         (L_fixxfdi, L_floatdidf, L_floatdisf, L_floatditf, L_floatdixf): Remove
8556         #undefs.
8557         * libgcc2.c (__fixunssfDI, __fixsfdi, __floatdisf, __fixunssfSI)
8558         (__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE.
8559
8560 2005-03-20  Roger Sayle  <roger@eyesopen.com>
8561
8562         PR middle-end/20539
8563         * fold-const.c (fold_binary): Fix type mismatch between
8564         TRUTH_{AND,OR,XOR}_EXPR nodes an their operands' types.
8565         (fold_binary) <TRUTH_XOR_EXPR>: Avoid calling invert_truthvalue
8566         for non-truth-valued expressions.
8567
8568         * c-common.c (c_common_truthvalue_conversion): Handle ERROR_MARK
8569         and FUNCTION_DECL in the main switch.
8570         <TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
8571         TRUTH_XOR_EXPR>: When changing the result type of these tree nodes,
8572         we also need to convert their operands to match.
8573         <TRUTH_NOT_EXPR>: Likewise.
8574
8575 2005-03-21  Joseph S. Myers  <joseph@codesourcery.com>
8576
8577         * c-common.c (lvalue_or_else): Replace by lvalue_error; only give
8578         diagnostic without checking whether an lvalue.
8579         * c-common.h (lvalue_p): Remove.
8580         (enum lvalue_use): Update comment.
8581         (lvalue_or_else): Replace by lvalue_error.
8582         * c-typeck.c (lvalue_p): Make static.
8583         (lvalue_or_else): New.  Call lvalue_error.
8584
8585 2005-03-21  Alan Modra  <amodra@bigpond.net.au>
8586
8587         * config/rs6000/rs6000.c (rs6000_parm_start): New function.
8588         (function_arg_advance): Use rs6000_parm_start.
8589         (function_arg, rs6000_arg_partial_bytes): Likewise.
8590
8591 2005-03-20  Joseph S. Myers  <joseph@codesourcery.com>
8592
8593         * c-common.c (check_case_value): Adjust comment about stripping
8594         NOPs.
8595         (handle_vector_size_attribute): Don't strip NON_LVALUE_EXPR.
8596         * c-typeck.c (default_conversion, convert_arguments,
8597         build_modify_expr, convert_for_assignment, store_init_value,
8598         digest_init): Use STRIP_TYPE_NOPS instead of stripping nops
8599         manually.  Remove inaccurate comments.
8600
8601 2005-03-20  Roger Sayle  <roger@eyesopen.com>
8602             Joseph S. Myers  <joseph@codesourcery.com>
8603
8604         * varasm.c (do_assemble_alias): Restore comment describing function.
8605         Annotate the target parameter as potentially unused.
8606
8607 2005-03-20  Marek Michalkiewicz  <marekm@amelek.gda.pl>
8608
8609         PR target/18551
8610         * config/avr/avr.c (avr_output_function_prologue): Do not use
8611         current_function_name() in a label, use a local label instead.
8612
8613 2005-03-20  David Edelsohn  <edelsohn@gnu.org>
8614
8615         * config/rs6000/rs6000.c (rs6000_generate_compare): Test
8616         flag_finite_math_only, not flag_unsafe_math_optimizations.
8617
8618 2005-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8619
8620         * builtins.c (fold_builtin_1): Update a call to
8621         targetm.fold_builtin.
8622         * hooks.c (hook_tree_tree_bool_null): Rename to
8623         hook_tree_tree_tree_bool_null.  Take one more argument of type
8624         tree.
8625         * hooks.h: Update the prototype of hook_tree_tree_bool_null.
8626         * target-def.h (TARGET_FOLD_BUILTIN): Define it as
8627         hook_tree_tree_tree_bool_null.
8628         * target.h (gcc_target): Update the prototype of fold_builtin.
8629         * config/alpha/alpha.c (alpha_fold_builtin): Take decomposed
8630         arguments of CALL_EXPR.
8631         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update.  Mention the
8632         new prototype.
8633
8634 2005-03-20  Jan Hubicka  <jh@suse.cz>
8635
8636         * cgraph.h (cgraph_node): Add prev_clone pointer.
8637         * cgraph.c (cgraph_remove_node): Remove from doubly linked chain.
8638         (cgraph_clone_node): Produce doubly linked chain.
8639
8640 2005-03-20  Joseph S. Myers  <joseph@codesourcery.com>
8641
8642         * c-common.c (handle_aligned_attribute, check_function_sentinel,
8643         get_nonnull_operand, handle_sentinel_attribute,
8644         check_function_arguments_recurse): Do not strip NOPS from
8645         INTEGER_CSTs.
8646         * c-decl.c (check_bitfield_type_and_width, build_enumerator):
8647         Likewise.
8648         * c-format.c (get_constant): Likewise.
8649         * c-parser.c (c_parser_postfix_expression): Likewise.
8650         * c-typeck.c (set_init_index): Likewise.
8651         (convert_arguments): Don't check for NOP_EXPR containing integer
8652         constant.
8653
8654 2005-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8655
8656         * builtins.c (fold_fixed_mathfn, fold_builtin_trunc,
8657         fold_builtin_floor, fold_builtin_ceil, fold_builtin_lround):
8658         Take decomposed arguments of CALL_EXPR.
8659         (fold_builtin_1): Update calls to the functions mentioned
8660         above.
8661
8662 2005-03-20  Joseph S. Myers  <joseph@codesourcery.com>
8663
8664         * c-decl.c (check_bitfield_type_and_width): Require bit-field
8665         width to have integer type.
8666         (build_enumerator): Require enumerator value to have integer type.
8667
8668 2005-03-19  Joseph S. Myers  <joseph@codesourcery.com>
8669
8670         * doc/extend.texi (__builtin_inf): Move statement about INFINITY
8671         to __builtin_inff.
8672
8673 2005-03-19  Joseph S. Myers  <joseph@codesourcery.com>
8674
8675         * c.opt (ansi, std=iso9899:1990, std=iso9899:1999,
8676         std=iso9899:199x): Correct descriptions.
8677
8678 2005-03-19  Joseph S. Myers  <joseph@codesourcery.com>
8679
8680         * config.gcc: Consistently use solaris2.1[0-9]* instead of
8681         solaris2.1[0-9].
8682
8683 2005-03-19  Kazu Hirata  <kazu@cs.umass.edu>
8684
8685         * builtins.c (fold_builtin_memcpy): Take decomposed arguments
8686         of CALL_EXPR.
8687         (expand_builtin_memcpy, fold_builtin_1): Update calls to
8688         fold_builtin_memcpy.
8689
8690         * builtins.c (fold_trunc_transparent_mathfn): Take decomposed
8691         arguments of CALL_EXPR.
8692         (fold_builtin_trunc, fold_builtin_floor, fold_builtin_ceil,
8693         fold_builtin_found, fold_builtin_1): Update calls to
8694         fold_trunc_transparent_mathfn.
8695
8696 2005-03-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8697
8698         PR middle-end/20493
8699         * fold-const.c (fold_widened_comparison): Don't optimize casts of
8700         function pointers on targets that require function pointer
8701         canonicalization.
8702         (fold_sign_changed_comparison): Likewise.
8703
8704 2005-03-19  Bernd Schmidt  <bernd.schmidt@analog.com>
8705
8706         * combine.c (try_combine): When changing the mode of a hard reg, make
8707         sure that doing so is valid.
8708
8709 2005-03-19  Richard Sandiford  <rsandifo@redhat.com>
8710
8711         * config/avr/avr.c (avr_init_stack, avr_mcu_name): Make static.
8712         (TARGET_HANDLE_OPTION): Override default.
8713         (avr_handle_option): New function.
8714         * config/avr/avr.h (MASK_ALL_DEBUG, MASK_ORDER_1, MASK_INSN_SIZE_DUMP)
8715         (MASK_ORDER_2, MASK_NO_TABLEJUMP, MASK_INT8, MASK_NO_INTERRUPTS)
8716         (MASK_CALL_PROLOGUES, MASK_TINY_STACK, MASK_SHORT_CALLS)
8717         (TARGET_ORDER_1, TARGET_ORDER_2, TARGET_INT8, TARGET_NO_INTERRUPTS)
8718         (TARGET_INSN_SIZE_DUMP, TARGET_CALL_PROLOGUES, TARGET_TINY_STACK)
8719         (TARGET_NO_TABLEJUMP, TARGET_SHORT_CALLS, TARGET_ALL_DEBUG)
8720         (TARGET_SWITCHES, avr_init_stack, avr_mcu_name)
8721         (TARGET_OPTIONS): Delete.
8722         * config/avr/avr.opt: New file.
8723
8724 2005-03-18  2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
8725
8726         * config/m32r/m32r-protos.h: Remove the prototypes for
8727         call_address_operand, symbolic_operand, seth_add3_operand,
8728         cmp_int16_operand, uint16_operand, reg_or_int16_operand,
8729         reg_or_uint16_operand, reg_or_cmp_int16_operand,
8730         two_insn_const_operand, move_src_operand,
8731         move_double_src_operand, move_dest_operand,
8732         eqne_comparison_operator, signed_comparison_operator,
8733         large_insn_p, conditional_move_operand, carry_compare_operand,
8734         m32r_block_immediate_operand, extend_operand,
8735         reg_or_eq_int16_operand, int8_operand, and
8736         reg_or_zero_operand.
8737         * config/m32r/m32r.c (call_address_operand, symbolic_operand,
8738         seth_add3_operand, int8_operand, cmp_int16_operand,
8739         uint16_operand, reg_or_int16_operand, reg_or_uint16_operand,
8740         reg_or_eq_int16_operand, reg_or_cmp_int16_operand,
8741         reg_or_zero_operand, two_insn_const_operand, move_src_operand,
8742         move_double_src_operand, move_dest_operand,
8743         eqne_comparison_operator, signed_comparison_operator,
8744         extend_operand, small_insn_p, large_insn_p,
8745         conditional_move_operand, carry_compare_operand,
8746         m32r_block_immediate_operand): Move to predicates.md.
8747         (MAX_MOVE_BYTES): Move to m32r.h.
8748         * config/m32r/m32r.h (PREDICATE_CODES): Remove.
8749         * config/m32r/m32r.md: Include predicates.md.
8750         * config/m32r/predicates.md: New.
8751
8752 2005-03-18  James E Wilson  <wilson@specifixinc.com>
8753
8754         PR c++/19769
8755         * dwarf2out.c (declare_in_namespace): Ignore decls with an abstract
8756         origin.
8757
8758 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
8759
8760         * config/mn10300/mn10300-protos.h: Remove the prototypes for
8761         call_address_operand, const_8bit_operand.
8762         * config/mn10300/mn10300.c (call_address_operand,
8763         const_8bit_operand, const_1f_operand): Move to predicates.md.
8764         * config/mn10300/mn10300.h (PREDICATE_CODES): Remove.
8765         * config/mn10300/mn10300.md: Include predicates.md.
8766         * config/mn10300/predicates.md: New.
8767
8768 2005-03-18  Joseph S. Myers  <joseph@codesourcery.com>
8769
8770         * c-common.c, c-decl.c, c-format.c, c-typeck.c: Use %D for
8771         declarations in diagnostics and %E for identifiers, not %s.
8772
8773 2005-03-18  Jan Hubicka  <jh@suse.cz>
8774             Dale Johannesen  <dalej@apple.com>
8775
8776         * basic-block.h (scale_bbs_frequencies_int,
8777         scale_bbs_frequencies_gcov_type): Declare.
8778         * cfg.c (RDIV): New macro.
8779         (update_bb_frequency_for_threading): Fix.
8780         * basic-block.h (scale_bbs_frequencies_int,
8781         scale_bbs_frequencies_gcov_type): New.
8782         * cfgloopmanip.c (scale_bbs_frequencies): Kill.
8783         (scale_loop_frequencies, duplicate_loop_to_header_edge): Use
8784         scale_bbs_frequencies_int.
8785         * tree-ssa-loop-ch.c (copy_loop_headers): Fix profiling info.
8786
8787 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
8788
8789         * config/m32r/m32r-protos.h: Remove the prototypes for
8790         call_address_operand, symbolic_operand, seth_add3_operand,
8791         cmp_int16_operand, uint16_operand, reg_or_int16_operand,
8792         reg_or_uint16_operand, reg_or_cmp_int16_operand,
8793         two_insn_const_operand, move_src_operand,
8794         move_double_src_operand, move_dest_operand,
8795         eqne_comparison_operator, signed_comparison_operator,
8796         large_insn_p, conditional_move_operand, carry_compare_operand,
8797         m32r_block_immediate_operand, extend_operand,
8798         reg_or_eq_int16_operand, int8_operand, and
8799         reg_or_zero_operand.
8800         * config/m32r/m32r.c (call_address_operand, symbolic_operand,
8801         seth_add3_operand, int8_operand, cmp_int16_operand,
8802         uint16_operand, reg_or_int16_operand, reg_or_uint16_operand,
8803         reg_or_eq_int16_operand, reg_or_cmp_int16_operand,
8804         reg_or_zero_operand, two_insn_const_operand, move_src_operand,
8805         move_double_src_operand, move_dest_operand,
8806         eqne_comparison_operator, signed_comparison_operator,
8807         extend_operand, small_insn_p, large_insn_p,
8808         conditional_move_operand, carry_compare_operand,
8809         m32r_block_immediate_operand): Move to predicates.md.
8810         (MAX_MOVE_BYTES): Move to m32r.h.
8811         * config/m32r/m32r.h (PREDICATE_CODES): Remove.
8812         * config/m32r/m32r.md: Include predicates.md.
8813         * config/m32r/predicates.md: New.
8814
8815         * config/pa/pa-protos.h: Add prototypes for magic_milli and
8816         shadd_constant_p.
8817         * config/pa/pa.c (reg_or_0_operand, call_operand_address,
8818         symbolic_operand, symbolic_memory_operand,
8819         reg_or_0_or_nonsymb_mem_operand, reg_before_reload_operand,
8820         indexed_memory_operand, move_dest_operand, move_src_operand,
8821         prefetch_cc_operand, prefetch_nocc_operand,
8822         reg_or_cint_move_operand, pic_label_operand, fp_reg_operand,
8823         arith_operand, arith11_operand, pre_cint_operand,
8824         post_cint_operan, arith_double_operand, ireg_or_int5_operand,
8825         ireg_operand, int5_operand, uint5_operand, int11_operand,
8826         uint32_operand, arith5_operand, and_operand, ior_operand,
8827         lhs_lshift_operand, lhs_lshift_cint_operand, arith32_operand,
8828         pc_or_label_operand, div_operand, plus_xor_ior_operator,
8829         shadd_operand, movb_comparison_operator,
8830         cmpib_comparison_operator): Move to predicates.md.
8831         (magic_milli, shadd_constant_p): Make it extern.
8832         * config/pa/pa.h (PREDICATE_CODES): Remove.
8833         * config/pa/pa.md: Include predicates.md.
8834         * config/pa/predicates.md: New.
8835
8836         * config/v850/v850.h (PREDICATE_CODES): Remove a nonexistent
8837         predicate.
8838
8839 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
8840
8841         * hooks.c, hooks.h, intl.c, opts.h, prefix.c, tree-gimple.c,
8842         config/alpha/ev4.md, config/alpha/ev5.md, config/alpha/ev6.md,
8843         config/alpha/freebsd.h, config/alpha/linux.h,
8844         config/alpha/netbsd.h, config/alpha/osf5.h,
8845         config/alpha/vms.h, config/arc/arc.c, config/arc/arc.h,
8846         config/h8300/h8300-protos.h, config/h8300/h8300.c,
8847         config/h8300/h8300.h, config/ia64/unwind-ia64.c,
8848         doc/cppopts.texi: Update copyright.
8849
8850 2005-03-18  Jan Hubicka  <jh@suse.cz>
8851
8852         PR middle-end/20225
8853         * cgraph.c (cgraph_mark_reachable_node): Assert that it is not called
8854         too late.
8855         * varasm.c (find_decl_and_mark_needed): Mark needed only when not
8856         called too late.
8857
8858 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
8859
8860         * tree-into-ssa.c (find_idf): Use VEC_quick_push instead of
8861         VEC_safe_push.
8862
8863 2005-03-18  Paolo Bonzini  <bonzini@gnu.org>
8864
8865         * combine.c (gen_binary): Remove.
8866         (known_cond, simplify_shift_const, find_split_point,
8867         combine_simplify_rtx, simplify_if_then_else, simplify_set,
8868         simplify_logical, expand_field_assignment, extract_left_shift,
8869         force_to_mode, if_then_else_cond, apply_distributive_law,
8870         simplify_and_const_int, simplify_shift_const, gen_lowpart_for_combine,
8871         simplify_comparison, reversed_comparison): Replace with
8872         simplify_gen_binary, simplify_gen_relational or
8873         distribute_and_simplify_rtx.
8874         (distribute_and_simplify_rtx): New function.
8875
8876 2005-03-18  Alexey Neyman  <alex.neyman@auriga.ru>
8877             Paolo Bonzini  <gcc.gnu.org>
8878
8879         * calls.c (setjmp_call_p, special_function_p): Update comments
8880         at the head of the functions.
8881
8882 2005-03-18  Jan Hubicka  <jh@suse.cz>
8883
8884         * tree-cfg.c (fold_cond_expr_cond): Use boolean types for condition.
8885
8886         * cgraph.c (cgraph_remove_node): Avoid loop in code deciding whether
8887         function body should be released; do not proactively release function
8888         bodies in non-unit-at-a-time mode.
8889
8890 2005-03-18  Ralf Corsepius  <ralf.corsepius@rtems.org>
8891
8892         * config/i386/t-rtems-i386 (MULTILIBS): Remove k6, athlon,
8893         mno-fp-ret-in-387 multilib variants.
8894
8895 2005-03-18  Richard Sandiford  <rsandifo@redhat.com>
8896
8897         * common.opt (m): Remove.
8898         * opts.c (handle_option): Pass 'm' options to set_target_switch if
8899         table lookup fails.
8900         (common_handle_option): Remove OPT_m case.
8901
8902 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
8903
8904         * builtins.c (fold_builtin_bitop): Take decomposed arguments
8905         of CALL_EXPR.
8906         (fold_builtin_1): Update a call to fold_builtin_bitop.
8907
8908         * builtins.c (fold_builtin_signbit): Take decomposed arguments
8909         of CALL_EXPR.
8910         (fold_builtin_1): Update a call to fold_builtin_signbit.
8911
8912 2005-03-17  Dorit Naishlos  <dorit@il.ibm.com>
8913
8914         PR tree-optimization/20474
8915         * tree-vect-analyze.c (vect_analyze_pointer_ref_access): Check the
8916         size_type of the relevant pointer. Check for COMPLETE_TYPE_P.
8917
8918 2005-03-17  Kazu Hirata  <kazu@cs.umass.edu>
8919
8920         * config/h8300/h8300-protos.h: Remove prototypes for
8921         general_operand_src, general_operand_dst, single_one_operand,
8922         single_zero_operand, call_insn_operand,
8923         two_insn_adds_subs_operand, small_call_insn_operand,
8924         jump_address_operand, bit_operand, bit_memory_operand,
8925         stack_pointer_operand, const_int_gt_2_operand,
8926         const_int_ge_8_operand, const_int_qi_operand,
8927         const_int_hi_operand, incdec_operand, bit_operator,
8928         nshift_operator, eqne_operator, gtle_operator,
8929         gtuleu_operator, iorxor_operator.
8930         Add prototypes for h8sx_shift_type h8sx_classify_shift and
8931         h8300_ldm_stm_parallel.
8932         * config/h8300/h8300.c (h8sx_shift_type,): Move to
8933         h8300-protos.h.
8934         (SYMBOL_FLAG_FUNCVEC_FUNCTION, SYMBOL_FLAG_EIGHTBIT_DATA,
8935         SYMBOL_FLAG_TINY_DATA): Move to h8300.h.
8936         (h8300_ldm_stm_parallel): Make it extern.
8937         (h8300_ldm_parallel, h8300_stm_parallel,
8938         h8300_return_parallel, general_operand_src,
8939         general_operand_dst, h8300_dst_operand, h8300_src_operand,
8940         nibble_operand, reg_or_nibble_operand, single_one_operand,
8941         single_zero_operand, call_insn_operand,
8942         two_insn_adds_subs_operand, small_call_insn_operand,
8943         jump_address_operand, bit_operand, bit_memory_operand,
8944         stack_pointer_operand, const_int_gt_2_operand,
8945         const_int_ge_8_operand, const_int_qi_operand,
8946         const_int_hi_operand, incdec_operand, eqne_operator,
8947         gtle_operator, gtuleu_operator, iorxor_operator, bit_operator,
8948         h8sx_binary_memory_operator, h8sx_unary_memory_operator,
8949         h8sx_unary_shift_operator, h8sx_binary_shift_operator,
8950         nshift_operator): Move to predicates.md.
8951         * config/h8300/h8300.h (PREDICATE_CODES): Remove.
8952         * config/h8300/h8300.md: Include predicates.md.
8953         * config/h8300/predicates.md: New.
8954
8955 2005-03-17  Richard Henderson  <rth@redhat.com>
8956
8957         * config.gcc (ia64*-*-hpux*): Add extra_options.
8958         * config/ia64/hpux.h (SUBTARGET_SWITCHES): Remove.
8959         (TARGET_DEFAULT): Remove MASK_INLINE_FLOAT_DIV_THR.
8960         * config/ia64/ia64.c (ia64_fixed_range_string): Remove.
8961         (ia64_tls_size_string, ia64_tune_string): Remove.
8962         (ia64_tune): Init to PROCESSOR_ITANIUM2.
8963         (TARGET_DEFAULT_TARGET_FLAGS): New.
8964         (TARGET_HANDLE_OPTION): New.
8965         (ia64_override_options): Move options parsing ...
8966         (ia64_handle_option): ... here.  New.
8967         * config/ia64/ia64.h (target_flags, MASK_BIG_ENDIAN, MASK_GNU_AS,
8968         MASK_GNU_LD, MASK_NO_PIC, MASK_VOL_ASM_STOP, MASK_ILP32,
8969         MASK_REG_NAMES, MASK_NO_SDATA, MASK_CONST_GP, MASK_AUTO_PIC,
8970         MASK_INLINE_FLOAT_DIV_LAT, MASK_INLINE_FLOAT_DIV_THR,
8971         MASK_INLINE_INT_DIV_LAT, MASK_INLINE_INT_DIV_THR,
8972         MASK_INLINE_SQRT_LAT, MASK_INLINE_SQRT_THR, MASK_DWARF2_ASM,
8973         MASK_EARLY_STOP_BITS, TARGET_BIG_ENDIAN, TARGET_GNU_AS, TARGET_GNU_LD,
8974         TARGET_NO_PIC, TARGET_VOL_ASM_STOP, TARGET_ILP32, TARGET_REG_NAMES,
8975         TARGET_NO_SDATA, TARGET_CONST_GP, TARGET_AUTO_PIC,
8976         TARGET_INLINE_FLOAT_DIV_LAT, TARGET_INLINE_FLOAT_DIV_THR,
8977         TARGET_INLINE_INT_DIV_LAT, TARGET_INLINE_INT_DIV_THR,
8978         TARGET_INLINE_FLOAT_DIV, TARGET_INLINE_INT_DIV, TARGET_INLINE_SQRT_LAT,
8979         TARGET_INLINE_SQRT_THR, TARGET_INLINE_SQRT, TARGET_DWARF2_ASM,
8980         TARGET_EARLY_STOP_BITS): Remove.
8981         (TARGET_ILP32): Default false.
8982         (TARGET_SWITCHES, SUBTARGET_SWITCHES, TARGET_OPTIONS): Remove.
8983         (enum ia64_inline_type): New.
8984         (TARGET_DEFAULT): Remove MASK_INLINE_FLOAT_DIV_THR.
8985         * config/ia64/ia64.md: Update for new definitions of
8986         TARGET_INLINE_INT_DIV, TARGET_INLINE_FLOAT_DIV, TARGET_INLINE_SQRT.
8987         * config/ia64/ia64.opt: New file.
8988         * config/ia64/ilp32.opt: New file.
8989
8990 2005-03-17  H.J. Lu  <hongjiu.lu@intel.com>
8991
8992         PR target/18380
8993         * config/ia64/unwind-ia64.c (_Unwind_FindTableEntry): Removed.
8994
8995 2005-03-17  Kazu Hirata  <kazu@cs.umass.edu>
8996
8997         * config/h8300/h8300.c (h8300_init_once): Use MASK_H8300S_1
8998         instead of MASK_H8300S.
8999         * config/h8300/h8300.h (target_flags, MASK_H8300S, MASK_MAC,
9000         MASK_INT32, MASK_ADDRESSES, MASK_QUICKCALL, MASK_SLOWBYTE,
9001         MASK_NORMAL_MODE, MASK_RELAX, MASK_H8300H, MASK_ALIGN_300,
9002         MASK_H8300SX, TARGET_INT32, TARGET_ADDRESSES,
9003         TARGET_QUICKCALL, TARGET_SLOWBYTE, TARGET_H8300H,
9004         TARGET_H8300XS, TARGET_NORMAL_MODE, TARGET_ALIGN_300,
9005         TARGET_SWITCHES): Remove.
9006         (TARGET_H8300S): Redefine interms of TARGET_H8300S_1 and
9007         TARGET_H8300SX.
9008         * config/h8300/h8300.opt: New.
9009
9010         * config/alpha/alpha.opt, config/arc/arc.opt,
9011         config/h8300/h8300.opt, config/mips/mips.opt: Add copyright
9012         notices.
9013
9014 2005-03-17  Ian Lance Taylor  <ian@airs.com>
9015
9016         * gmon.c: Remove.
9017
9018 2005-03-17  Richard Sandiford  <rsandifo@redhat.com>
9019
9020         * config/arc/arc.c (arc_cpu_string): Make static.  Default to "base"
9021         (arc_text_string, arc_data_string, arc_rodata_string): Make static.
9022         (TARGET_HANDLE_OPTION): Override default.
9023         (arc_handle_option): New function.
9024         (arc_init): Remove code to set arch_cpu_string.
9025         * config/arc/arc.h (target_flags, TARGET_MASK_MANGLE_CPU)
9026         (TARGET_MANGLE_CPU, TARGET_MASK_MANGLE_CPU_LIBGCC)
9027         (TARGET_MANGLE_CPU_LIBGCC, TARGET_MASK_ALIGN_LOOPS, TARGET_ALIGN_LOOPS)
9028         (TARGET_MASK_BIG_ENDIAN, TARGET_BIG_ENDIAN, TARGET_MASK_NO_COND_EXEC)
9029         (TARGET_NO_COND_EXEC, TARGET_SWITCHES, TARGET_DEFAULT)
9030         (SUBTARGET_SWITCHES, arc_cpu_string, arc_text_string, arc_data_string)
9031         (arc_rodata_string, TARGET_OPTIONS): Delete.
9032         * config/arc/arc.opt: New file.
9033
9034 2005-03-17  Richard Henderson  <rth@redhat.com>
9035
9036         * doc/extend.texi (Weak Pragmas): New section.
9037         (attribute alias): Clarify that target must be in the same
9038         translation unit.
9039
9040 2005-03-17  Richard Henderson  <rth@redhat.com>
9041
9042         * config/alpha/alpha.opt: New file.
9043         * config/alpha/alpha.c (alpha_tune): New.  Rename all existing uses
9044         of alpha_cpu.
9045         (alpha_cpu_string, alpha_tune_string, alpha_tp_string,
9046         alpha_fprm_string, alpha_fptm_string): Make static.
9047         (alpha_tls_size_string): Remove.
9048         (alpha_handle_option): New.
9049         (override_options): Update for alpha_cpu/alpha_tune split.
9050         (alpha_file_start): Likewise.
9051         (TARGET_DEFAULT_TARGET_FLAGS): New.
9052         (TARGET_HANDLE_OPTION): New.
9053         * config/alpha/alpha.h (alpha_tune): Declare.
9054         (MASK_FP, MASK_FPREGS, TARGET_FPREGS, MASK_GAS, TARGET_GAS,
9055         MASK_IEEE_CONFORMANT, TARGET_IEEE_CONFORMANT, MASK_IEEE, TARGET_IEEE,
9056         MASK_IEEE_WITH_INEXACT, TARGET_IEEE_WITH_INEXACT, MASK_BUILD_CONSTANTS,
9057         TARGET_BUILD_CONSTANTS, MASK_FLOAT_VAX, TARGET_FLOAT_VAX, MASK_BWX,
9058         TARGET_BWX, MASK_MAX, TARGET_MAX, MASK_FIX, TARGET_FIX, MASK_CIX,
9059         TARGET_CIX, MASK_EXPLICIT_RELOCS, TARGET_EXPLICIT_RELOCS,
9060         MASK_SMALL_DATA, TARGET_SMALL_DATA, MASK_TLS_KERNEL, TARGET_TLS_KERNEL,
9061         MASK_SMALL_TEXT, TARGET_SMALL_TEXT, MASK_LONG_DOUBLE_128,
9062         TARGET_LONG_DOUBLE_128, MASK_CPU_EV5, TARGET_CPU_EV5, MASK_CPU_EV6,
9063         TARGET_CPU_EV6, MASK_SUPPORT_ARCH): Remove.
9064         (TARGET_SWITCHES, TARGET_OPTIONS): Remove.
9065         (TARGET_DEFAULT): Remove MASK_FP.
9066         (TARGET_FP): Redefined based on TARGET_SOFT_FP.
9067         (TARGET_SUPPORT_ARCH): Default on if HAVE_AS_EXPLICIT_RELOCS.
9068         (alpha_cpu_string, alpha_tune_string, alpha_fprm_string,
9069         alpha_fptm_string, alpha_tp_string, alpha_mlat_string,
9070         alpha_tls_size_string): Remove.
9071         * config/alpha/alpha.md (prefetch): Use alpha_cpu.
9072         (attribute tune): Rename from attribute cpu.
9073         * config/alpha/ev4.md: Update to match.
9074         * config/alpha/ev5.md, config/alpha/ev6.md: Likewise.
9075         * config/alpha/freebsd.h (TARGET_DEFAULT): Remove MASK_FP.
9076         * config/alpha/linux.h (TARGET_DEFAULT): Likewise.
9077         * config/alpha/netbsd.h (TARGET_DEFAULT): Likewise.
9078         * config/alpha/osf5.h (TARGET_DEFAULT): Likewise.
9079         * config/alpha/vms.h (TARGET_DEFAULT): Likewise.
9080
9081 2005-03-16  James E. Wilson  <wilson@specifixinc.com>
9082
9083         * config/ia64/ia64.c (issue_nops_and_insn): Check first_insn attribute,
9084         and return without creating new state if before_nops_num is nonzero.
9085         * config/ia64/ia64.md (first_insn): New attribute.
9086         (alloc): Set it to yes.
9087
9088 2005-03-16  Daniel Berlin  <dberlin@dberlin.org>
9089
9090         * tree-vectorizer.c (new_vec_stmt_info): Initialize
9091         STMT_VINFO_SUBVARS to NULL.
9092         * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
9093
9094 2005-03-16 Dale Johannesen  <dalej@apple.com>
9095
9096         * rtlanal.c (find_first_parameter_load):  Rewrite to
9097         return actual first param load or the call if none,
9098         instead of first in block, when not all loads exist.
9099
9100 2005-03-16  Roger Sayle  <roger@eyesopen.com>
9101
9102         * optabs.c (expand_copysign_absneg): Make static.
9103         * optabs.h (expand_copysign_absneg): Delete prototype.
9104         * config/rs6000/rs6000.md (copysigntf3): Delete pattern.
9105
9106 2005-03-16  Richard Henderson  <rth@redhat.com>
9107
9108         PR middle-end/15700
9109         * varasm.c (struct alias_pair): Rename from struct output_def_pair.
9110         (alias_pairs): Rename from output_defs.
9111         (find_decl_and_mark_needed): Split out from assemble_alias.
9112         (do_assemble_alias): New.
9113         (assemble_output_def): Remove.
9114         (finish_aliases_1, finish_aliases_2): New.
9115         (process_pending_assemble_output_defs): Remove.
9116         (assemble_alias): Defer aliases for which we don't yet have a
9117         non-external decl for the target symbol.
9118         * passes.c (rest_of_decl_compilation): Register variables with cgraph.
9119         * cgraphunit.c (cgraph_finalize_compilation_unit): Use finish_aliases_1.
9120         * toplev.c (compile_file): Use finish_aliases_2 instead of
9121         process_pending_assemble_output_defs.
9122         * tree.h (finish_aliases_1, finish_aliases_2): Declare.
9123         (process_pending_assemble_output_defs): Remove.
9124
9125 2005-03-16  Daniel Berlin  <dberlin@dberlin.org>
9126
9127         Fix PR tree-optimization/20489
9128
9129         * tree-ssa-alias.c (push_fields_onto_fieldstack): DTRT
9130         for empty structures.
9131
9132 2005-03-16  Daniel Berlin  <dberlin@dberlin.org>
9133
9134         Fix PR tree-optimization/20490
9135
9136         * tree-ssa-pre.c (create_expression_by_pieces): Use
9137         force_gimple_operand on result of fold.
9138
9139 2005-03-16  Andrew Pinski  <pinskia@physics.uc.edu>
9140
9141         * config/i386/emmintrin.h (_mm_extract_epi16): Correct the number
9142         of closing parenthesis.
9143
9144 2005-03-16  Kazu Hirata  <kazu@cs.umass.edu>
9145
9146         * builtins.c (expand_movstr): Update a call to
9147         fold_builtin_strcpy.
9148         (expand_builtin_strncpy): Update a call to
9149         fold_builtin_strncpy.
9150         (fold_builtin_strcpy, fold_builtin_strncpy): Take decomosed
9151         arguments of CALL_EXPR.
9152         (fold_builtin_1): Update calls to fold_builtin_strcpy and
9153         fold_builtin_strncpy.
9154         * tree-ssa-ccp.c (ccp_fold_builtin): Likewise.
9155         * tree.h: Update the prototypes of fold_builtin_strcpy and
9156         fold_builtin_strncpy.
9157
9158 2005-03-16  Steven Bosscher  <stevenb@suse.de>
9159             Dorit Naishlos  <dorit@il.ibm.com>
9160
9161         * tree-vect-analyze.c (vect_enhance_data_refs_alignment): Copy
9162         UNITS_PER_SIMD_WORD to a local variable to avoid a "division by zero"
9163         error.
9164
9165 2005-03-16  Steven Bosscher  <stevenb@suse.de>
9166
9167         * tree-inline.c (walk_type_fields, walk_tree,
9168         walk_tree_without_duplicates): Move from here...
9169         * tree.c: ...to here.
9170
9171 2005-03-15  Zack Weinberg  <zack@codesourcery.com>
9172
9173         * BASE-VER, DATESTAMP, DEV-PHASE: New files.
9174         * Makefile.in (gcc_version, gcc_version_trigger, ): Delete.
9175         (BASEVER, DEVPHASE, DATESTAMP, BASEVER_c, DEVPHASE_c, DATESTAMP_c)
9176         (BASEVER_s, DEVPHASE_s, DATESTAMP_s): New variables.
9177         (version): Define using $(BASEVER_c).
9178         (Makefile, config.status, build/gcov-iov.o): No longer depends on
9179         version.c.
9180         (version.o): Depend on version files; add custom generation command.
9181         (prefix.o): Define BASEVER on command line.
9182         (s-iov): Depend on version files; adjust command.
9183         (TEXI_CPP_FILES, TEX_IGCC_FILES, TEXI_GCCINT_FILES, TEXI_CPPINT_FILES):
9184         Add gcc-vers.texi.
9185         (gcc-vers.texi): New rule.
9186         (doc/%.info, doc/%.dvi): Add -I . to command line.
9187         (doc/gccinstall.dvi): Likewise.
9188         (PACKAGE): Delete.  All uses replaced with "gcc".
9189         * aclocal.m4: Do not include gcc-version.m4.
9190         * configure.ac: Do not invoke TL_AC_GCC_VERSION.
9191         Do not AC_SUBST nor AC_DEFINE PACKAGE or VERSION.
9192         Set is_release based on contents of DEV-PHASE.
9193         Set gcc_version based on contents of BASE-VER.
9194         Define WIN32_REGISTRY_KEY only if the user overrode the default.
9195         * config.in, configure: Regenerate.
9196         * gccbug.in: Determine version of GCC in use at runtime.
9197         * gcov-iov.c: Get version number and development phase from
9198         command line, not by including version.c.
9199         * intl.c: Replace all uses of PACKAGE with "gcc".
9200         * libada-mk.in: Delete unused "gcc_version" variable.
9201         * prefix.c: Default WIN32_REGISTRY_KEY to BASEVER.
9202         * version.c: (VERSUFFIX): New hook for redistributors; adjust
9203         commentary to match.
9204         (version_string): Put together from pieces.
9205         * config/alpha/x-vms: Do not use $(gcc_version).
9206         * config/i386/t-nwld: Likewise.
9207         * doc/include/gcc-common.texi: Include gcc-vers.texi for
9208         version-GCC and DEVELOPMENT.
9209
9210 2005-03-15  Roger Sayle  <roger@eyesopen.com>
9211
9212         PR tree-optimization/17454
9213         * tree.c (tree_size): Add case for TREE_BINFO.
9214         * fold-const.c (fold_checksum_tree): Only clear the overloaded
9215         field TYPE_CACHED_VALUES if TYPE_CACHED_VALUES_P is set.
9216
9217 2005-03-15  Roger Sayle  <roger@eyesopen.com>
9218
9219         * optabs.c (expand_doubleword_mult): Avoid clobbering op0 and
9220         op1 whilst expanding the signed widenening multiply variant.
9221
9222 2005-03-15  Richard Sandiford  <rsandifo@redhat.com>
9223
9224         * toplev.c (display_target_options): Avoid unused variable warning if
9225         TARGET_SWITCHES and TARGET_OPTIONS are both undefined.
9226         * config/mips/mips.c (mips_arch_string, mips_tune_string): Make static.
9227         (mips_isa_string, mips_abi_string, mips_fix_vr4130_string): Delete.
9228         (mips_isa): Initialize to MIPS_ABI_DEFAULT.
9229         (mips_isa_info): New variable.
9230         (mips_parse_cpu): Remove the first argument and leave the caller
9231         to report errors.
9232         (TARGET_HANDLE_OPTION): Override default.
9233         (mips_handle_option): New function.  Move option validation code from...
9234         (override_options): ...here.  Update calls to mips_parse_cpu.
9235         * config/mips/mips.h (mips_arch_string, mips_tune_string)
9236         (mips_isa_string, mips_abi_string, TARGET_OPTIONS)
9237         (SUBTARGET_TARGET_OPTIONS): Delete.
9238         * config/mips/mips.opt (mabi=, march=, mflush-func=, mips)
9239         (mno-flush-func, mtune=): New options.
9240
9241 2005-03-15  Roger Sayle  <roger@eyesopen.com>
9242             Richard Henderson  <rth@redhat.com>
9243
9244         * real.c (c4x_single_format, c4x_extended_format): Provide values
9245         for signbit_ro for c4x's single and extended floating point formats.
9246         * optabs.c (expand_copysign): Use the floating point format's
9247         signbit_ro for expanding via expand_copysign_absneg, and it's
9248         signbit_rw field for expanding via expand_copysign_bit.
9249
9250 2005-03-15  Dorit Naishlos  <dorit@il.ibm.com>
9251
9252         * tree-vectorizer.h (unknown_alignment_for_access_p): Replaced by
9253         known_alignment_for_access_p.
9254         (known_alignment_for_access_p): New.
9255         (do_peeling_for_alignment): Field made int instead of bool and renamed
9256         to peeling_for_alignment.
9257         (LOOP_DO_PEELING_FOR_ALIGNMENT): Renamed to LOOP_PEELING_FOR_ALIGNMENT.
9258         * tree-vect-analyze.c (vect_determine_vectorization_factor): New. This
9259         functionality used to be in vect_analyze_operations.
9260         (vect_analyze_operations): Code to determine vectorization factor was
9261         moved to vect_determine_vectorization_factor.
9262         (vect_enhance_data_refs_alignment): Update to correct alignment when it
9263         is known instead of -1.  Set LOOP_PEELING_FOR_ALIGNMENT to peeling
9264         factor.
9265         (vect_analyze_loop): Call vect_determine_vectorization_factor (used to
9266         be part of vect_analyze_operations).
9267         * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Use fold when
9268         creating the guard condition, as the number of iterations may be
9269         constant.
9270         (slpeel_tree_peel_loop_to_edge): Use new name of
9271         LOOP_DO_PEELING_FOR_ALIGNMENT. Set it to 0 instead of false.
9272         * tree-vect-transform.c (vect_gen_niters_for_prolog_loop): Handle known
9273         alignment case more efficiently. Use LOOP_PEELING_FOR_ALIGNMENT.
9274         (vect_do_peeling_for_alignment): Use fold.
9275         (vect_transform_loop): Use new name of LOOP_DO_PEELING_FOR_ALIGNMENT.
9276
9277         (vect_update_inits_of_dr): Renamed to
9278         vect_update_init_of_dr.
9279         (vect_update_inits_of_drs): Use new name of vect_update_inits_of_dr.
9280         (vectorizable_store): Fix assertion to use == instead of =.
9281
9282 2005-03-15  Daniel Jacobowitz  <dan@codesourcery.com>
9283
9284         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't clear
9285         call_used_regs for wCG registers.
9286
9287 2005-03-15  Ulrich Weigand  <uweigand@de.ibm.com>
9288
9289         * config/s390/s390.c (s390_secondary_output_reload_class): Adapt check
9290         for non-offsettable memory references to cope with outstanding reload
9291         replacements, take 2.
9292
9293 2005-03-15  Uros Bizjak  <uros@kss-loka.si>
9294
9295         PR target/18668
9296         * config/i386/i386.h (x86_fisttp): New.
9297         (TARGET_FISTTP): New macro.
9298         * config/i386/i386.c (x86_fisttp): Set for NOCONA.
9299         (output_fix_trunc): Add fisttp parameter.  Generate fisttp x87
9300         instruction when fisttp flag is set.
9301         * config/i386/i386-protos.h (output_fix_trunc): Change declaration.
9302
9303         * config/i386/i386.md (type attribute): Add fisttp.
9304         (unit attribute): Set to i387 for fisttp type.
9305         (X87MODEF, X87MODEI, SSEMODEF, SSEMODEI24): New mode macros.
9306         (fix_truncxfdi2, fix_truncxfsi2): Generate fisttp patterns for
9307         TARGET_FISTTP.
9308         (fix_truncdfdi2, fix_truncsfdi2, fix_truncdfsi2, fix_truncsfsi2):
9309         Generate fisttp patterns for TARGET_FISTTP. Implement using mode
9310         macros.
9311         (fix_truncxfhi2, fix_truncdfhi2, fix_truncsfhi2): Generate fisttp
9312         patterns for TARGET_FISTTP.  Enable patterns for
9313         (TARGET_FISTTP && !TARGET_SSE_MATH). Implement using mode macros.
9314         (fix_trunc<mode>_i387_fisttp_1, fix_trunc<mode>_i387_fisttp,
9315         fix_trunc<mode>_i387_fisttp_with_temp): New instruction patterns to
9316         implement fisttp x87 insn.
9317         (fix_trunc*_i387_fisttp splitters): New patterns.
9318         (*fix_truncdi_i387, *fix_truncsi_i387, *fix_trunchi_i387):
9319         Rename to *fix_trunc<mode>_i387_1.  Implement using mode macros.
9320         Disable patterns for TARGET_FISTTP.  Add comment about FLAGS_REG
9321         clobber.
9322         (fix_truncdi_memory, fix_truncdi_nomemory, fix_trunchi_nomemory):
9323         Rename to fix_trunc<mode>_i387 and fix_trunc<mode>_i387_with_temp.
9324         Implement using mode macros. Disable patterns for TARGET_FISTTP.
9325         (fix_truncsi_memory, fix_truncsi_nomemory, fix_trunchi_memory,
9326         fix_trunchi_nomemory): Rename to fix_trunc<mode>_i387 and
9327         fix_trunc<mode>_i387_with_temp. Implement using mode macros.
9328         Disable patterns for TARGET_FISTTP.
9329         (fix_trunc*_i387 splitters): Implement usign mode macros.
9330         (fix_truncdfdi_sse, fix_truncsfdi_sse, fix_truncdfsi_sse,
9331         fix_truncsfsi_sse): Disable for (TARGET_FISTTP && !TARGET_SSE_MATH).
9332         (fix_trunx*_sse peephole2s): Implement using mode macros.
9333
9334 2005-03-15  J"orn Rennecke <joern.rennecke@st.com>
9335
9336         PR rtl-optimization/20291
9337         * combine.c (try_combine): If splitting fails, re-try with
9338         original combined pattern, i.e. before clobber stripping.
9339
9340 2005-03-14  Eric Christopher  <echristo@redhat.com>
9341
9342         * config/mips/mips.h (DWARF_CIE_DATA_ALIGNMENT): Change for
9343         STACK_GROWS_DOWNWARD.
9344
9345 2005-03-14  Roger Sayle  <roger@eyesopen.com>
9346
9347         * real.h (struct real_format): Split the signbit field into two
9348         two fields, signbit_ro and signbit_rw.
9349         * real.c (ieee_single_format, mips_single_format, ieee_double_format,
9350         mips_double_format, ieee_extended_motorola_format,
9351         ieee_extended_intel_96_format, ieee_extended_intel_96_round_53_format,
9352         ieee_extended_intel_128_format, ibm_extended_format,
9353         mips_extended_format, ieee_quad_format, mips_quad_format,
9354         vax_f_format, vax_d_format, vax_g_format, i370_single_format,
9355         i370_double_format, c4x_single_format, c4x_extended_format,
9356         real_internal_format): Update initializers for new field.
9357         * builtins.c (expand_builtin_signbit): Use signbit_ro field of the
9358         real_format structure.
9359         * optabs.c (expand_absneg_bit, expand_copysign): Use signbit_rw
9360         field of the real_format structure.
9361
9362 2005-03-14  Daniel Berlin <dberlin@dberlin.org>
9363
9364         Fix PR tree-optimization/20458
9365
9366         * tree-flow-inline.h (mark_call_clobbered): Don't fiddle
9367         DECL_EXTERNAL on STRUCT_FIELD tags.
9368         (clear_call_clobbered): Ditto.
9369         * tree-ssa-operands.c (note_addressable): Make sure the original
9370         variable doesn't slip into the addressable list if we have
9371         subvars.
9372         * tree-tailcall.c (suitable_for_tail_opt_p): Look at STRUCT_FIELD
9373         tags too.
9374
9375 2005-03-14  Geoffrey Keating  <geoffk@apple.com>
9376
9377         * doc/cppopts.texi (-fexec-charset): Add concept index entry.
9378         (-fwide-exec-charset): Likewise.
9379         (-finput-charset): Likewise.
9380         * doc/invoke.texi (Warning Options): Document -Wnormalized=.
9381         * c-opts.c (c_common_handle_option): Handle -Wnormalized=.
9382         * c.opt (Wnormalized): New.
9383
9384 2005-03-14  Devang Patel  <dpatel@apple.com>
9385
9386         * doc/invoke.texi: Add reference to Visibility document.
9387
9388 2005-03-14  Richard Sandiford  <rsandifo@redhat.com>
9389
9390         * config.gcc (mips*-*-*): Rename MASK_SPLIT_ADDRS to
9391         MASK_SPLIT_ADDRESSES.
9392         * config/mips/mips.h (target_flags, mips_fix_vr4130_string): Delete.
9393         (MASK_INT64, MASK_LONG64, MASK_SPLIT_ADDR, MASK_NO_FUSED_MADD)
9394         (MASK_EXPLICIT_RELOCS, MASK_MEMCPY, MASK_SOFT_FLOAT)
9395         (MASK_FLOAT64, MASK_ABICALLS, MASK_XGOT, MASK_LONG_CALLS)
9396         (MASK_64BIT, MASK_EMBEDDED_DATA, MASK_BIG_ENDIAN)
9397         (MASK_SINGLE_FLOAT, MASK_MAD, MASK_4300_MUL_FIX, MASK_MIPS16)
9398         (MASK_NO_CHECK_ZERO_DIV, MASK_BRANCHLIKELY)
9399         (MASK_UNINIT_CONST_IN_RODATA, MASK_FIX_R4000, MASK_FIX_R4400)
9400         (MASK_FIX_SB1, MASK_FIX_VR4120, MASK_VR4130_ALIGN)
9401         (MASK_FP_EXCEPTIONS, MASK_DIVIDE_BREAKS, MASK_PAIRED_SINGLE)
9402         (MASK_MIPS3D, MASK_SYM32, MASK_DEBUG, MASK_DEBUG_D)
9403         (MASK_MIPS_TFILE, TARGET_INT64, TARGET_LONG64, TARGET_FLOAT64)
9404         (TARGET_64BIT, TARGET_SPLIT_ADDRESSES, TARGET_DEBUG_MODE)
9405         (TARGET_DEBUG_D_MODE, TARGET_MEMCPY, TARGET_ABICALLS)
9406         (TARGET_XGOT, TARGET_SOFT_FLOAT, TARGET_HARD_FLOAT)
9407         (TARGET_LONG_CALLS, TARGET_EMBEDDED_DATA)
9408         (TARGET_UNINIT_CONST_IN_RODATA, TARGET_BIG_ENDIAN)
9409         (TARGET_SINGLE_FLOAT, TARGET_DOUBLE_FLOAT, TARGET_MAD)
9410         (TARGET_FUSED_MADD, TARGET_4300_MUL_FIX, TARGET_CHECK_ZERO_DIV)
9411         (TARGET_DIVIDE_TRAPS, TARGET_BRANCHLIKELY, TARGET_FIX_SB1)
9412         (TARGET_FIX_R4000, TARGET_FIX_R4400, TARGET_FIX_VR4120)
9413         (TARGET_FIX_VR4130, TARGET_VR4130_ALIGN, TARGET_FP_EXCEPTIONS)
9414         (TARGET_PAIRED_SINGLE_FLOAT, TARGET_MIPS3D, TARGET_SYM32)
9415         (TARGET_EXPLICIT_RELOCS): Delete.
9416         (TARGET_SWITCHES, SUBTARGET_TARGET_SWITCHES): Delete.
9417         (TARGET_OPTIONS): Remove entry for -mfix-vr4130.
9418         * config/mips/mips.c (TARGET_DEFAULT_TARGET_FLAGS): Define.
9419         (override_options): Set MASK_LONG64 if -mint64 is given and no
9420         -mlongXX option is.  Complain about -mint64 -mlong32.
9421         (override_options, CMP_BUILTINS, mips_bdesc, sb1_desc): Rename
9422         MASK_PAIRED_SINGLE to MASK_PAIRED_SINGLE_FLOAT.
9423         * config/mips/mips.opt: New file.
9424
9425 2005-03-14  Richard Sandiford  <rsandifo@redhat.com>
9426
9427         * config.gcc (extra_options): New variable for listing option files.
9428         Add ${cpu_type}/${cpu_type}.opt to it if that file exists.
9429         * configure.ac (extra_opt_files): New AC_SUBST variable.
9430         (tm_file_list, tm_include_list): Include options.h first.
9431         * configure: Regenerate.
9432         * Makefile.in (extra_opt_files, ALL_OPT_FILES): New variables.
9433         (s-options): Use $(ALL_OPT_FILES) instead of $(lang_opt_files)
9434         (s-options-h): New rule.
9435         (options.h): Depend on it.
9436         (TEXI_GCCINT_FILES): Add options.texi.
9437         * hooks.h (hook_bool_size_t_constcharptr_int_true): Declare.
9438         * hooks.c (hook_bool_size_t_constcharptr_int_true): New function.
9439         * target.h (gcc_target): Add default_target_flags and handle_option.
9440         * target-def.h (TARGET_DEFAULT_TARGET_FLAGS)
9441         (TARGET_HANDLE_OPTION): New macros.
9442         (TARGET_INITIALIZER): Include them.
9443         * opt-functions.awk (opt_args, nth_arg): New functions.
9444         (switch_flags): Handle the "Target" flag.
9445         (var_args): Delete.
9446         (var_name): Use opt_args and nth_arg.
9447         (var_set, var_ref): Likewise.  Handle "Mask" and "InverseMask".
9448         * opth-gen.awk: Declare target_flags.  Declare MASK_* and TARGET_*
9449         macros for the "Mask" and "InverseMask" options.
9450         * opts.h (cl_var_cond): New enum.
9451         (cl_option): Replace the "has_set_value" and "set_value" fields with
9452         "var_cond" and "var_value".
9453         (CL_TARGET): New macro.
9454         (option_enabled, print_filtered_help): Declare.
9455         (decode_options): Move definition.
9456         * opts.c (handle_option): Search for the original option before
9457         removing any "no-" prefix.  Handle CL_TARGET.  Adjust for the new
9458         var_cond and var_value fields.  Use targetm.handle_option to handle
9459         target options.
9460         (decode_options): Set target_flags to targetm.default_target_flags.
9461         (print_filtered_help): Make global.  Handle CL_TARGET.
9462         (option_enabled): New function.
9463         * toplev.c (target_switches): Guard with #ifdef TARGET_SWITCHES.
9464         (display_target_options, set_target_switch, print_switch_values)
9465         (default_pch_valid_p): Guard uses of target_switches with
9466         #ifdef TARGET_SWITCHES.  Also...
9467         (display_target_options): Display the CL_TARGET entries in cl_options.
9468         (set_target_option): Don't complain about the "" option when
9469         TARGET_SWITCHES is undefined.
9470         (print_switch_values): Use option_enabled.
9471         (default_pch_valid_p): Check cl_options[] when looking for something
9472         that has changed the value of target_flags.
9473         * c.opt: Remove documentation from top of file.
9474         * doc/gccint.texi: Add an "Options" chapter.  Include options.texi.
9475         * doc/sourecebuild.texi: Refer to the new options documentation
9476         instead of c.opt.  Document machine-specific .opt files.
9477         * doc/tm.texi (target_flags): Say that this variable is declared
9478         by options.h.
9479         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Document.
9480         (TARGET_SWITCHES, TARGET_OPTIONS): Refer to the option files as
9481         an alternative.
9482         * doc/options.texi: New file.
9483
9484 2005-03-14  Alexandre Oliva  <aoliva@redhat.com>
9485
9486         PR middle-end/18628
9487         * cse.c (fold_rtx_mem): Don't fold a load from a jumptable into a
9488         register.
9489
9490 2005-03-14  Alexandre Oliva  <aoliva@redhat.com>
9491
9492         PR c++/20280
9493         * gimplify.c (gimplify_cond_expr): Add fallback argument.  Use a
9494         temporary variable of pointer type if an lvalues is required.
9495         (gimplify_modify_expr_rhs): Request an rvalue from it.
9496         (gimplify_expr): Pass fallback on.
9497
9498 2005-03-14  Kazu Hirata  <kazu@cs.umass.edu>
9499
9500         * cfgbuild.c: Update comments.
9501
9502 2005-03-14  Roger Sayle  <roger@eyesopen.com>
9503
9504         PR rtl-optimization/17236
9505         * optabs.c (expand_doubleword_mult): New helper function split out
9506         from expand_binop.  Permute the order in which instructions are
9507         emitted to minimize the number of simultaneously live registers.
9508         (expand_binop): Call expand_doubleword_mult to synthesize a double
9509         word multiplication.
9510
9511 2005-03-14  Kazu Hirata  <kazu@cs.umass.edu>
9512
9513         * basic-block.h: Update the prototypes of cached_make_edge and
9514         rtl_make_eh_edge.
9515         * cfg.c (cached_make_edge): Take edge_cache representing one
9516         row of the adjacency matrix of edges.
9517         * cfgbuild.c (make_label_edge, rtl_make_eh_edge): Likewise.
9518         (make_edges): Initialize edge_cache to represent one row of
9519         the adjacency matrix of edges.
9520
9521 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
9522
9523         * tree-ssa-phiopt.c (minmax_replacement, blocks_in_phiopt_order):
9524         New functions.
9525         (tree_ssa_phiopt): Use blocks_in_phiopt_order and minmax_replacement.
9526         Remove unused removed_phis variable.
9527         (conditional_replacement): Use build1/build2.
9528         (abs_replacement): Use last_and_only_stmt and build1/build2.
9529
9530 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
9531
9532         * builtin-attrs.def (ATTR_NOVOPS, ATTR_NOVOPS_LIST,
9533         ATTR_PURE_NOTHROW_NOVOPS_LIST): New.
9534         * builtins.def (ATTR_MATHFN_FPROUNDING): Use NOVOPS.
9535         (BUILT_IN_PREFETCH): Set the NOVOPS attribute.
9536         * c-common.c (handle_novops_attribute): New function.
9537         (c_common_attribute_table): Add "no vops" entry.
9538         * c-decl.c (merge_decls): Copy DECL_IS_NOVOPS.
9539         * calls.c (flags_from_decl_or_type): Set ECF_NOVOPS.
9540         * tree-ssa-operands.c (get_call_expr_operands): Do not
9541         create virtual operands for calls with ECF_NOVOPS flag.
9542         * tree.h (DECL_IS_NOVOPS): New macro.
9543         (struct tree_decl): Add novops_flag.
9544         (ECF_NOVOPS): New constant.
9545
9546 2005-03-14  Uros Bizjak  <uros@kss-loka.si>
9547
9548         PR target/17688
9549         * config/i386/i386.c (x86_use_himode_fiop): New.
9550         (x86_use_simode_fiop): Rename from x86_use_fiop.
9551         * config/i386/i386.h (x86_use_himode_fiop): Declare.
9552         (TARGET_USE_HIMODE_FIOP): New.
9553         (x86_use_simode_fiop): Rename from x86_use_fiop.
9554         (TARGET_USE_SIMODE_FIOP): Rename from TARGET_USE_FIOP.
9555
9556         * config/i386/i386.md (X87MODEI12): New mode macro define.
9557         (*cmpfp_<mode>): Rename from *cmpfp_si.  Use X87MODEI12 mode macro
9558         to implement x87 FP compare with HImode input operands.
9559         (*fp_jcc_8<mode>_387, splitter): Rename from *fp_jcc_8_387.
9560         Use X87MODEI12 mode macro to handle HImode input operands.
9561         (*fop_sf_2<mode>_i387, *fop_sf_3<mode>_i387, *fop_df_2<mode>_i387,
9562         *fop_df_3<mode>_i387, *fop_xf_2<mode>_i387, *fop_xf_3<mode>_i387):
9563         Renamed from *fop_sf_2_i387, *fop_sf_3_i387, *fop_df_2_i387,
9564         *fop_df_3_i387, *fop_xf_2_i387, *fop_xf_3_i387. Use X87MODEI12 mode
9565         macro to implement x87 operators with HImode input operands.
9566         (fop splitters): Use X87MODEI12 mode macro to handle HImode
9567         input operands.
9568
9569 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
9570
9571         * tree-cfg.c (find_taken_edge_cond_expr): Use zero_p instead of
9572         integer_zerop.
9573         * tree-gimple.c (is_gimple_min_invariant): Consider overflowed
9574         constants invariant.
9575
9576 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
9577
9578         * basic-block.h (BB_VISITED): Removed.
9579         * cfganal.c (dfs_enumerate_from): Do not use BB_VISITED flag.
9580
9581 2005-03-14  Falk Hueffner  <falk@debian.org>
9582
9583         PR bootstrap/20424
9584         * config/alpha/alpha.c (alpha_fold_builtin_cmpbge): Fix typo.
9585
9586 2005-03-14  Kazu Hirata  <kazu@cs.umass.edu>
9587
9588         * ggc-zone.c: Fix comment typos.
9589
9590         * alloc-pool.c, except.h, ggc-common.c, ggc-zone.c, ggc.h,
9591         stringpool.c, config/mips/mips-protos.h: Update copyright.
9592
9593 2005-03-14  Alan Modra  <amodra@bigpond.net.au>
9594
9595         * config/rs6000/rs6000-protos.h: Replace "struct rtx_def *"
9596         throughout with its typedef, "rtx".
9597         * config/rs6000/rs6000.c: Likewise.  Formatting fixes.
9598         (rs6000_tls_symbol_ref_1): Remove inline keyword.
9599         * config/rs6000/rs6000.h (REG_ALLOC_ORDER): Formatting.  Reorder
9600         regs in comment to match code.
9601
9602 2005-03-14  Kazu Hirata  <kazu@cs.umass.edu>
9603
9604         * except.c (check_handled): Make it static.
9605         * except.h: Remove the corresponding prototype.
9606
9607         * function.c (get_func_frame_size): Make it static.
9608         * function.h: Remove the corresponding type.
9609
9610         * regclass.c (reg_class_superclasses, reg_class_subclasses):
9611         Make them static.
9612         * hard-reg-set.h: Remove the corresponding declarations.
9613
9614         * tree-cfg.c (verify_stmts): Check that
9615         bb_for_stmt (stmt) == bb for every PHI node and statement.
9616
9617 2005-03-14  Alan Modra  <amodra@bigpond.net.au>
9618
9619         * config.gcc: Remove excess indentation.
9620         (powerpc*-*-*, rs6000-*-*): Accept --with-cpu/tune power5 and 8548.
9621
9622 2005-03-13  Roger Sayle  <roger@eyesopen.com>
9623
9624         PR middle-end/19331
9625         * tree.c (get_unwidened): Treat CONVERT_EXPR and NOP_EXPR identically.
9626         * fold-const.c (fold_sign_changed_comparison): Likewise.
9627         (fold_binary): Optimize comparisons against widened operands if
9628         the extension is represented by a CONVERT_EXPR, same as a NOP_EXPR.
9629
9630 2005-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
9631
9632         * config/sparc/sparc.c (struct_value_alias_set): New global variable.
9633         (sparc_override_options): Initialize it.
9634         (sparc_struct_value_rtx): Set it on the MEM to be returned.
9635
9636 2005-03-13  David Edelsohn  <edelsohn@gnu.org>
9637
9638         * config/rs6000/predicates.md (mem_or_easy_const_operand): Delete.
9639         (reg_or_none500mem_operand): New predicate.
9640         (zero_reg_mem_operand): New predicate.
9641         * config/rs6000/rs6000.md (extendsfdf2): Change operand1 predicate
9642         to reg_or_none500mem_operand.
9643         (extendsfdf2_fpr): Add MEM alternative.
9644         (extenddftf2_internal): Change operand2 predicate to
9645         zero_reg_mem_operand.
9646
9647 2005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>
9648
9649         * ggc-zone.c: Rewritten.
9650
9651         * alloc-pool.c (dump_alloc_pool_statistics): Don't print statistics
9652         if there are none.
9653         * configure.ac: Define GGC_ZONE for --with-gc=zone.
9654         * config.in: Regenerated.
9655         * configure: Regenerated.
9656         * gengtype.c (write_types_process_field, write_func_for_structure):
9657         Pass new argument to gt_pch_note_object.
9658         * ggc-common.c (struct ptr_data): Add TYPE.
9659         (gt_pch_note_object): Take TYPE argument and save it.
9660         (call_count): Update call to ggc_pch_count_object.
9661         (call_alloc): Update call to ggc_pch_alloc_object.
9662         (gt_pch_save): Call ggc_pch_prepare_write after paddng the PCH
9663         file.
9664         * ggc-none.c (rtl_zone, garbage_zone, ggc_alloc_zone_stat): Delete.
9665         * ggc-page.c (rtl_zone, tree_zone, garbage_zone)
9666         (ggc_alloc_zone_stat): Delete.
9667         (ggc_pch_count_object, ggc_pch_alloc_object): Add TYPE argument.
9668         * ggc.h (gt_pch_note_object, ggc_pch_count_object)
9669         (ggc_pch_alloc_object): Update prototypes.
9670         (garbage_zone): Delete.
9671         (tree_zone, rtl_zone, ggc_alloc_zone_stat, ggc_alloc_zone): Move to
9672         GGC_ZONE conditional.  Update.  Change tree_zone and rtl_zone into
9673         pointers.
9674         (tree_id_zone): New variable.
9675         (ggc_alloc_cleared_zone): Remove unused.
9676         (ggc_alloc_zone): Define.
9677         (ggc_alloc_rtvec, ggc_alloc_tree): Update to use ggc_alloc_zone.
9678         * rtl.c (rtx_alloc_stat, shallow_copy_rtx_stat): Use
9679         ggc_alloc_zone_stat.
9680         * stringpool.c (gt_pch_n_S): Update call to gt_pch_note_object.
9681         * tree.c (copy_node_stat, make_tree_binfo_stat, make_tree_vec_stat)
9682         (tree_cons_stat, build1_stat): Update call to ggc_alloc_zone_stat.
9683         (make_node_stat): Likewise.  Use tree_id_zone.
9684
9685 2005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>
9686             Joseph S. Myers  <joseph@codesourcery.com>
9687
9688         * configure.ac: Check for MIPS TLS.
9689         * configure: Regenerated.
9690         * config/mips/mips-protos.h (enum mips_symbol_type): Add
9691         SYMBOL_TLS, SYMBOL_TLSGD, SYMBOL_TLSLDM, SYMBOL_DTPREL,
9692         SYMBOL_GOTTPREL, and SYMBOL_TPREL.
9693         * config/mips/mips.c (mips_regno_to_class): Handle V1_REG.
9694         (TARGET_HAVE_TLS, TARGET_CANNOT_FORCE_CONST_MEM): Define.
9695         (mips_classify_symbol, mips_symbolic_constant_p)
9696         (mips_symbolic_address_p, mips_symbol_insns): Handle TLS symbols.
9697         (mips_tls_operand_p, mips_call_tls_get_addr)
9698         (mips_legitimize_tls_address, mips_cannot_force_const_mem)
9699         (mips_tls_symbol_ref_1): New functions.
9700         (mips_legitimize_address, mips_legitimize_const_move): Call
9701         mips_legitimize_tls_address.
9702         (override_options): Handle V1_REG and TLS symbols.  Disable TLS
9703         for MIPS16.
9704         * config/mips/mips.h (enum reg_class, REG_CLASS_NAMES)
9705         (REG_CLASS_CONTENTS, GR_REG_CLASS_P): Include V1_REG.
9706         (mips_char_to_class): Document V1_REG.
9707         (HAVE_AS_TLS): Provide default.
9708         * config/mips/mips.md (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): New
9709         constants.
9710         (load_got<mode>): Renamed from *load_got<mode>.  Allow when
9711         !TARGET_ABICALLS.
9712         (tls_get_tp_<mode>): New instruction.
9713
9714 2005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>
9715
9716         * configure.ac: Update checks for target tools.
9717         * configure: Regenerated.
9718
9719 2005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>
9720
9721         * varasm.c (decl_tls_model): Check flag_shlib instead of flag_pic.
9722
9723 2005-03-13  Roger Sayle  <roger@eyesopen.com>
9724
9725         * expmed.c (expand_mult): Use synthetic multiplication sequences for
9726         more classes of DImode multiplication by constant.  Allow both
9727         multiplication by small negative constants (by performing a
9728         multiplication by a positive constant and negating the result) and
9729         multiplications by large powers of two, by using a left shift.
9730
9731 2005-03-13  Kazu Hirata  <kazu@cs.umass.edu>
9732
9733         * tree-into-ssa.c (find_idf): Speed up by putting the indexes
9734         of basic blocks into work_stack.
9735
9736         * builtin-attrs.def, c-lex.c, c-pragma.h, reg-stack.c,
9737         config/mips/vr.h: Update copyright.
9738
9739         * c-decl.c (c_init_decl_processing): Remove useless calls to
9740         build_function_type.
9741
9742         * builtins.c (fold_trunc_transparent_mathfn,
9743         fold_fixed_mathfn, fold_builtin_atan, fold_builtin_trunc,
9744         fold_builtin_floor, fold_builtin_ceil, fold_builtin_round,
9745         fold_builtin_lround, fold_builtin_bitop, fold_builtin_memcpy,
9746         fold_builtin_strcpy, fold_builtin_strncpy,
9747         fold_builtin_signbit): Use TYPE (TYPE (fndecl)) instead of
9748         TREE_TYPE (exp).
9749
9750         * builtins.c (expand_builtin_mathfn_3): Remove local variable
9751         before_call.
9752
9753         * lambda-code.c (lambda_compute_auxillary_space): Remove local
9754         variable determinant.
9755
9756         * tree-cfg.c (group_case_labels): Remove local variable type.
9757
9758         * tree-ssa-live.c (build_tree_conflict_graph): Remove local
9759         variable ann.
9760
9761         * tree-ssa-phiopt.c (value_replacement): Remove local variable
9762         result.
9763
9764 2005-03-13  Andy Hutchinson  <HutchinsonAndy@netscape.net>
9765
9766         PR target/18251
9767         * config/avr/avr.md (movmemhi): Rewrite as RTL loop.
9768         (*movmemqi_insn): Delete.
9769         (*movmemhi): Delete.
9770
9771 2005-03-13  Kazu Hirata  <kazu@cs.umass.edu>
9772
9773         * builtins.c (fold_builtin_classify): Take decomposed
9774         arguments of CALL_EXPR.
9775         (fold_builtin_1): Update a call to fold_builtin_classify.
9776
9777 2005-03-13  Joseph S. Myers  <joseph@codesourcery.com>
9778
9779         PR c/20402
9780         * c-parser.c (c_parser_struct_or_union_specifier): Don't fall
9781         through into call to parser_xref_tag after parse error.
9782         (c_parser_struct_declaration): Consistently return NULL_TREE on
9783         error.
9784
9785 2005-03-12  Daniel Berlin  <dberlin@dberlin.org>
9786
9787         * tree-flow-inline.h (ref_contains_array_ref): New function.
9788         (lookup_subvars_for_var): Ditto.
9789         (get_subvars_for_var): Ditto.
9790         (var_can_have_subvars): Ditto.
9791
9792         * tree-flow.h (mem_tag_kind): Add STRUCT_FIELD.
9793         (struct subvar): New type.
9794
9795         * tree-dfa.c (okay_component_ref_for_subvars): New function.
9796
9797         * tree-optimize.c (init_tree_optimization_passes): Call
9798         pass_create_structure_vars.
9799
9800         * tree-ssa-alias.c: Include vec.h.
9801         (init_alias_info): Don't auto-clear call clobbered on struct-field
9802         tags.
9803         (compute_flow_insensitive_aliasing): Handle subvars.
9804         (group_aliases): Handle STRUCT_FIELD aliases.
9805         (setup_pointers_and_addressables): Ditto.
9806         Don't mark variables non-addressable if they still have
9807         addressable subvars.
9808         Also mark subvars addressable when the real variable is marked
9809         addressable.
9810         (add_pointed_to_var): Try to prune the pointed-to set by only
9811         pointing to subvars when possible.
9812         Otherwise, make sure we set addresses_needed and pt_vars to
9813         properly include subvars.
9814         (bitpos_of_field): New function.
9815         (push_fields_onto_fieldstack): Ditto.
9816         (get_or_create_used_part_for): Ditto.
9817         (create_overlap_variables_for): Ditto.
9818         (find_used_portions): Ditto.
9819         (create_structure_vars): Ditto.
9820         (pass_create_structure_vars): New structure.
9821
9822         * tree-ssa-operands.c (finalize_ssa_v_must_defs): Remove assert.
9823         (get_expr_operands): Handle subvars.  Also try to turn
9824         COMPONENT_REF accesses into must-defs now that we can accurately
9825         portray it.
9826         (note_addressable): Try to only mark as addressable those subvars
9827         we know a COMPONENT_REF touches.
9828         (overlap_subvar): New function.
9829
9830         * tree-vect-analyze.c (vect_object_analysis): Add new parameter.
9831         Handle subvar storing.
9832         (vect_address_analysis): Update caller of vect_object_analysis.
9833
9834         * tree-vect-transform.c (vect_create_data_ref_ptr): Copy subvars.
9835
9836         * tree-vectorizer.h (struct _stmt_vec_info): Add subvars member.
9837         (STMT_VINFO_SUBVARS): New macro.
9838
9839         * common.opts: add flag_tree_salias.
9840
9841         * opts.c (decode_options): flag_tree_salias defaults to on.
9842
9843         * doc/invoke.texi: Document fdump-tree-svars and -ftree-salias.
9844
9845         * doc/tree-ssa.texi: Document structural alias analysis.
9846
9847 2005-03-12  Steven Bosscher  <stevenb@suse.de>
9848
9849         * tree-cfg.c (make_goto_expr_edges): Don't use error_mark_node.
9850         * tree-ssa-dce.c (mark_stmt_necessary): Don't check for it.
9851         * tree-ssa-operands.c (get_expr_operands): Likewise.
9852         (get_expr_operands): Likewise for ERROR_MARK.
9853
9854 2005-03-12  Kazu Hirata  <kazu@cs.umass.edu>
9855
9856         * tree-ssa.c (kill_redundant_phi_nodes): Remove local variable
9857         var.
9858
9859         * tree-ssa-phiopt.c (tree_ssa_phiopt): Remove local variable
9860         removed_phis.
9861
9862         * tree-ssa-pre.c (compute_avail): Remove local variable val.
9863         (mark_operand_necessary): Remove local variable ver.
9864
9865         * tree-vect-transform.c (vect_get_new_vect_var): Remove local
9866         variable prefix_len.
9867
9868         * value-prof.c (mod_subtract_transform): Remove local variable
9869         value.
9870
9871         * builtins.c (fold_builtin_exponent): Take decomposed
9872         arguments of CALL_EXPR.
9873         (fold_builtin_1): Update a call to fold_builtin_exponent.
9874
9875         * builtins.c (fold_builtin_logarithm): Take decomposed
9876         arguments of CALL_EXPR.
9877         (fold_builtin_1): Update a call to fold_builtin_logarithm.
9878
9879         * c-decl.c (c_init_decl_processing): Remove local variables
9880         ptr_ftype_void and ptr_ftype_ptr.
9881
9882         * gimplify.c (gimplify_expr): Remove local variables r0 and
9883         r1.
9884
9885         * reg-stack.c (move_for_stack_reg): Remove local variable
9886         push_insn.
9887         (compare_for_stack_reg): Remove local variable flags_user.
9888         (convert_regs_1): Remove local variable deleted.
9889
9890         * tree-if-conv.c (tree_if_convert_cond_expr): Remove local
9891         variable new_cond.
9892         (combine_blocks): Remove local variables exits and new_e.
9893
9894         * tree-inline.c (expand_call_inline): Remove local variable
9895         decl.
9896
9897         * tree-ssa-live.c (create_ssa_var_map,
9898         calculate_live_on_entry): Remove local variable snn.
9899
9900 2005-03-12  Geoffrey Keating  <geoffk@apple.com>
9901
9902         * c-lex.c (c_lex_with_flags): Add parameter to call to
9903         cpp_spell_token.
9904
9905 2005-03-11  Per Bothner  <per@bothner.com>
9906
9907         * c-tree.h (struct c_declarator): New id_loc field.
9908         * c-pragma.h (c_lex_with_flags): Take position reference.
9909         * c-lex.c (c_lex_with_flags): Set passed-in location from cpp token,
9910         iff USE_MAPPED_LOCATION. (Type doesn't match otherwise.)
9911         (c_lex): Pass dummy location to c_lex_with_flags.
9912         * c-parser.c (c_lex_one_token): Set c_token's location using
9913         c_lex_with_flags, instead of input_location, which might be "ahead".
9914         (c_parser_direct_declarator): Set declarator's id_loc from
9915         c_token's id_loc.
9916         * c-decl.c (grokdeclarator): Set DECL_SOURCE_LOCATION from
9917         declarator's id_loc, rather than probably-imprecise input_location.
9918         (build_id_declarator): Initialize c_declarator's id_loc field.
9919
9920 2005-03-11  Roger Sayle  <roger@eyesopen.com>
9921
9922         PR middle-end/20419
9923         * builtins.c (expand_builtin_signbit): Force the signbit's word
9924         into an integer register to avoid SUBREGs of floating point modes.
9925
9926 2005-03-12  Kazu Hirata  <kazu@cs.umass.edu>
9927
9928         * cfglayout.c, loop-doloop.c, profile.c, target-def.h,
9929         target.h, targhooks.c, tracer.c, tree-ssa-loop-ch.c,
9930         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, vec.c, vmsdbgout.c,
9931         config/m32r/m32r.md, config/xtensa/xtensa.h: Update copyright.
9932
9933 2005-03-11  David Edelsohn  <edelsohn@gnu.org>
9934
9935         PR rtl-optimization/20306
9936         * expr.c (emit_move_complex): Set try_int false if mode is
9937         MODE_COMPLEX_FLOAT and mov_optab exists for inner mode.  Only try
9938         emit_block_move if try_int is true.
9939
9940 2005-03-11  Richard Henderson  <rth@redhat.com>
9941
9942         PR target/20415
9943         * config/i386/mmx.md (vec_dupv4hi): Fix predicate.
9944         * config/i386/i386.c (ix86_expand_vector_init_duplicate): Update
9945         to match.
9946
9947 2005-03-11  Richard Sandiford  <rsandifo@redhat.com>
9948
9949         * config/mips/mips.h (mips_fix_vr4130_string): Declare.
9950         (TARGET_FIX_VR4130): New macro.
9951         (TARGET_OPTIONS): Add -mfix-vr4130.
9952         (ISA_HAS_MACCHI): New macro.
9953         (ASM_SPEC): Add -mfix-vr4130.
9954         * config/mips/mips.c (mips_fix_vr4130_string): New variable.
9955         (override_options): Handle mips_fix_vr4130_string.
9956         (mips_avoid_hazards): Clear all_noreorder_p
9957         if we're working around VR4130 errata and the macc alternatives
9958         are not available.
9959         * config/mips/mips.md (mfhilo_<mode>): Turn into a define_expand.
9960         (*mfhilo_<mode>, *mfhilo_<mode>_macc): New insns.
9961         * config/mips/vr.h (DEFAULT_VR_ARCH): Set to mfix-vr4130.
9962         (MULTILIB_DEFAULTS): Remove leading "march=".
9963         (DRIVER_SELF_SPECS): Likewise.  Make -mfix-vr4130 imply -march=vr4130
9964         if no architecture option is given.
9965         * config/mips/t-vr (MULTILIB_OPTIONS): Use -mfix-vr4130 for the
9966         VR4130 multilibs.
9967         (MULTILIB_MATCHES): Map -march=vr4130 to the -mfix-vr4130 multilibs.
9968         * doc/invoke.texi: Document -mfix-vr4130.
9969
9970 2005-03-11  Richard Sandiford  <rsandifo@redhat.com>
9971
9972         * config/mips/mips.c (override_options): Only warn about -mint64
9973         deprecation if TARGET_INT64.
9974
9975 2005-03-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9976
9977         * builtin-attrs.def (ATTR_NONNULL_LIST, ATTR_NOTHROW_NONNULL,
9978         ATTR_CONST_NOTHROW_NONNULL, ATTR_PURE_NOTHROW_NONNULL,
9979         ATTR_MALLOC_NOTHROW_NONNULL): New "nonnull" attribute lists which
9980         are non-specific regarding the nonnull parameter positions.
9981         (ATTR_NONNULL_1_2, ATTR_NONNULL_1_4, ATTR_NOTHROW_NONNULL_1_2,
9982         ATTR_NOTHROW_NONNULL_1_4, ATTR_CONST_NOTHROW_NONNULL_1,
9983         ATTR_PURE_NOTHROW_NONNULL_1, ATTR_PURE_NOTHROW_NONNULL_1_2,
9984         ATTR_MALLOC_NOTHROW_NONNULL_1): Delete.
9985
9986         * builtins.def: Use the non-specific "nonnull" attibute lists.
9987
9988 2005-03-11  Zdenek Dvorak  <dvorakz@suse.cz>
9989
9990         * basic-block.h (single_succ_p, single_pred_p, single_succ_edge,
9991         single_pred_edge, single_succ, single_pred): Improve comments.
9992
9993 2005-03-11  Zdenek Dvorak  <dvorakz@suse.cz>
9994
9995         * basic-block.h (single_succ_p, single_pred_p, single_succ_edge,
9996         single_pred_edge, single_succ, single_pred): New inline functions.
9997         * bb-reorder.c (rotate_loop, find_traces_1_round,
9998         add_labels_and_missing_jumps, fix_up_fall_thru_edges,
9999         duplicate_computed_gotos): Use the single_succ/pred functions.
10000         * cfganal.c (forwarder_block_p): Ditto.
10001         * cfgbuild.c (compute_outgoing_frequencies): Ditto.
10002         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
10003         outgoing_edges_match, try_crossjump_to_edge, try_optimize_cfg,
10004         merge_seq_blocks): Ditto.
10005         * cfghooks.c (split_edge, tidy_fallthru_edges): Ditto.
10006         * cfglayout.c (fixup_reorder_chain): Ditto.
10007         * cfgloop.c (mark_single_exit_loops, update_latch_info,
10008         canonicalize_loop_headers, verify_loop_structure): Ditto.
10009         * cfgloopmanip.c (remove_path, unloop, loop_delete_branch_edge,
10010         mfb_update_loops, create_preheader, force_single_succ_latches,
10011         create_loop_notes): Ditto.
10012         * cfgrtl.c (rtl_can_merge_blocks, try_redirect_by_replacing_jump,
10013         force_nonfallthru_and_redirect, rtl_tidy_fallthru_edge,
10014         commit_one_edge_insertion, purge_dead_edges,
10015         cfg_layout_can_merge_blocks_p): Ditto.
10016         * except.c (sjlj_emit_function_enter): Ditto.
10017         * flow.c (init_propagate_block_info): Ditto.
10018         * function.c (thread_prologue_and_epilogue_insns): Ditto.
10019         * gcse.c (find_implicit_sets, bypass_conditional_jumps,
10020         insert_insn_end_bb): Ditto.
10021         * ifcvt.c (merge_if_block, find_if_block, find_if_case_1,
10022         find_if_case_2): Ditto.
10023         * lambda-code.c (perfect_nestify): Ditto.
10024         * lcm.c (optimize_mode_switching): Ditto.
10025         * loop-doloop.c (doloop_modify): Ditto.
10026         * loop-init.c (loop_optimizer_init): Ditto.
10027         * loop-iv.c (simplify_using_initial_values): Ditto.
10028         * loop-unroll.c (unroll_loop_runtime_iterations): Ditto.
10029         * loop-unswitch.c (unswitch_loop): Ditto.
10030         * modulo-sched.c (generate_prolog_epilog): Ditto.
10031         * predict.c (combine_predictions_for_insn, estimate_probability,
10032         tree_estimate_probability, last_basic_block_p,
10033         estimate_bb_frequencies): Ditto.
10034         * profile.c (branch_prob): Ditto.
10035         * regrename.c (copyprop_hardreg_forward): Ditto.
10036         * sched-rgn.c (is_cfg_nonregular, find_rgns, update_live): Ditto.
10037         * tracer.c (layout_superblocks): Ditto.
10038         * tree-cfg.c (tree_can_merge_blocks_p, tree_merge_blocks,
10039         cfg_remove_useless_stmts_bb, cleanup_control_flow,
10040         cleanup_control_expr_graph, disband_implicit_edges,
10041         tree_find_edge_insert_loc, bsi_commit_edge_inserts,
10042         tree_verify_flow_info, tree_make_forwarder_block,
10043         tree_forwarder_block_p, remove_forwarder_block,
10044         remove_forwarder_block_with_phi, merge_phi_nodes): Ditto.
10045         * tree-if-conv.c (tree_if_conversion): Ditto.
10046         * tree-mudflap.c (mf_build_check_statement_for): Ditto.
10047         * tree-ssa-dce.c (remove_dead_stmt): Ditto.
10048         * tree-ssa-dom.c (dom_opt_finalize_block): Ditto.
10049         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p,
10050         copy_loop_headers): Ditto.
10051         * tree-ssa-loop-im.c (loop_commit_inserts): Ditto.
10052         * tree-ssa-loop-ivopts.c (compute_phi_arg_on_exit): Ditto.
10053         * tree-ssa-loop-manip.c (split_loop_exit_edge, ip_normal_pos,
10054         lv_adjust_loop_entry_edge, tree_ssa_loop_version): Ditto.
10055         * tree-ssa-loop-niter.c (simplify_using_initial_conditions): Ditto.
10056         * tree-ssa-loop-unswitch.c (simplify_using_entry_checks): Ditto.
10057         * tree-ssa-phiopt.c (tree_ssa_phiopt, value_replacement): Ditto.
10058         * tree-ssa-pre.c (compute_antic_aux, insert_aux, init_pre): Ditto.
10059         * tree-ssa-threadupdate.c (redirect_edges): Ditto.
10060         * tree-tailcall.c (independent_of_stmt_p, find_tail_calls,
10061         eliminate_tail_call, tree_optimize_tail_calls_1): Ditto.
10062         * tree-vect-analyze.c (vect_analyze_loop_form): Ditto.
10063         * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Ditto.
10064         * tree-vectorizer.c (slpeel_update_phi_nodes_for_guard,
10065         slpeel_add_loop_guard): Ditto.
10066
10067 2005-03-11  James A. Morrison  <phython@gcc.gnu.org>
10068
10069         PR tree-optimization/15784
10070         * fold-const.c (fold): Fold ~A + 1 to -A.  Fold -A - 1
10071         and -1 - A to ~A.
10072
10073         * stmt.c (expand_case): Don't change index_type.  Convert minval
10074         to the proper type.
10075
10076         PR tree-optimization/20130
10077         * fold-const.c (fold): Fold x * -1 into -x.
10078
10079 2005-03-11  Kaz Kojima  <kkojima@gcc.gnu.org>
10080
10081         PR rtl-optimization/20331
10082         * rtlanal.c (modified_between_p): Check its address first for MEM.
10083         (modified_in_p): Likewise.
10084
10085 2005-03-11  Joseph S. Myers  <joseph@codesourcery.com>
10086
10087         * config.gcc (hppa*64*-*-hpux11*): Use pa/t-hpux-shlib.
10088
10089 2005-03-10  Steven Bosscher  <stevenb@suse.de>
10090
10091         * expr.c (expand_expr_real_1): If possible, use a conditional
10092         move for expanding MIN_EXPR and MAX_EXPR.
10093         Use temp for moving around rtx-en.
10094
10095 2005-03-10  Andrew Pinski  <pinskia@physics.uc.edu>
10096
10097         PR rtl-opt/20412
10098         * simplify-rtx.c (simplify_relational_operation_1): Fix typo - check the
10099         correct mode.
10100
10101 2005-03-10  Roger Sayle  <roger@eyesopen.com>
10102
10103         * builtins.c (expand_builtin_signbit): Extend to handle floating
10104         point modes wider than the largest integer type, using the
10105         operand_subword_force function to obtain the signbit's word.
10106
10107 2005-03-10  Jakub Jelinek  <jakub@redhat.com>
10108
10109         PR target/20322
10110         * combine.c (try_combine): If recog_for_combine added CLOBBERs
10111         to NEWI2PAT, fail to combine if they are used by NEWPAT.
10112
10113 2005-03-10  Aldy Hernandez  <aldyh@redhat.com>
10114
10115         * doc/invoke.texi: Add 8540 to list of cpus in rs6000 cpu section.
10116
10117 2005-03-10  Kazu Hirata  <kazu@cs.umass.edu>
10118
10119         * tree-outof-ssa.c (analyze_edges_for_bb): Make the return
10120         type void.
10121         (perform_edge_inserts): Unconditionally call
10122         free_dominator_info.
10123
10124         * tree-outof-ssa.c (analyze_edges_for_bb): Update a comment.
10125
10126 2005-03-10  Bob Wilson  <bob.wilson@acm.org>
10127
10128         * config/xtensa/xtensa.h (MEMBER_TYPE_FORCES_BLK): Define.
10129
10130 2005-03-10  Nathan Sidwell  <nathan@codesourcery.com>
10131
10132         * bitmap.c (bitmap_copy): Remove manual loop unrolling.
10133
10134         * value-prof.c (rtl_find_values_to_profile): Use gcc_assert and
10135         gcc_unreachable.
10136         (rtl_register_value_prof_hooks,
10137         tree_value_profile_transformations,
10138         tree_register_value_prof_hooks): Likewise.
10139         * var-tracking.c (stack_adjust_offset_pre_post,
10140         variable_htab_free, variable_union, dataflow_set_different_2,
10141         count_uses, variable_was_changed, set_frame_base_location,
10142         set_variable_part, emit_note_insn_var_location, vt_emit_notes,
10143         vt_add_function_parameters): Likewise.
10144         * varasm.c (named_section_real, named_section, make_decl_rtl,
10145         asm_emit_uninitialised, assemble_integer, decode_addr_const,
10146         const_hash_1, compare_constant, copy_constant, force_const_mem,
10147         output_constant_pool_2, output_constant_pool_1, output_constant,
10148         output_constructor, make_decl_one_only, decl_tls_model,
10149         default_no_named_section, default_elf_select_section_1,
10150         default_unique_section_1): Likewise.
10151         * vec.c (vec_gc_o_reserve, vec_heap_o_reserve): Likewise.
10152         * vmsdbgout.c (addr_const_to_string): Likewise.
10153
10154         PR c++/20375
10155         * function.c (struct assign_parm_data_one): Remove last_named
10156         field.
10157         (assign_parm_find_data_types): Don't determine last_named.
10158         Reorder named_parm determination.
10159         (assign_parms): Only setup varargs on the last non-varadic
10160         parameter.
10161
10162 2005-03-10  Kazuhiro Inaoka  <inaoka.lazuhiro@renesas.com>
10163
10164         * config/m32r/m32r.md (load_sda_base_32): New pattern.  Loads
10165         sda base address on medium model.
10166
10167 2005-03-10  Zdenek Dvorak  <dvorakz@suse.cz>
10168
10169         * Makefile.in (tree-optimize.o): Add CFGLOOP_H dependence.
10170         * cfgloop.c (flow_loop_nodes_find): Export.
10171         * cfgloop.h (flow_loop_nodes_find, fix_loop_structure):
10172         Declare.
10173         * cfgloopmanip.c (fix_loop_structure): New function.
10174         * predict.c (predict_loops): Clean up the loops information.
10175         * tree-cfg.c (cleanup_tree_cfg_loop): New function.
10176         (tree_can_merge_blocks_p, remove_bb, tree_forwarder_block_p): Respect
10177         loop structure.
10178         * tree-flow.h (cleanup_tree_cfg_loop): Declare.
10179         (rewrite_into_loop_closed_ssa): Declaration changed.
10180         * tree-loop-linear.c (linear_transform_loops): Add argument to
10181         rewrite_into_loop_closed_ssa call.
10182         * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
10183         * tree-ssa-loop-im.c (move_computations): Ditto.
10184         * tree-ssa-loop.c (tree_loop_optimizer_init): Ditto.
10185         * tree-vectorizer.c (vectorize_loops): Ditto.
10186         * tree-optimize.c: Include cfgloop.h.
10187         (execute_todo): Choose whether to call cleanup_tree_cfg or
10188         cleanup_tree_cfg_loop.
10189         * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables,
10190         (tree_unroll_loops_completely): Enable cleanup_tree_cfg_loop call.
10191         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Enable
10192         cleanup_tree_cfg_loop call.
10193         * tree-ssa-loop-manip.c (find_uses_to_rename_bb): New function.
10194         (find_uses_to_rename, rewrite_into_loop_closed_ssa): Support
10195         work on part of cfg.
10196
10197 2005-03-10  Jakub Jelinek  <jakub@redhat.com>
10198
10199         PR inline-asm/20314
10200         * gimplify.c (gimplify_asm_expr): Handle input/output constraints
10201         with multiple alternatives.
10202
10203         * stmt.c (parse_output_constraint): Fix a typo.
10204
10205 2005-03-09  Bob Wilson  <bob.wilson@acm.org>
10206
10207         * config/xtensa/xtensa.h (TRAMPOLINE_TEMPLATE): Use "no-transform"
10208         assembly directive instead of deprecated "no-generics".
10209
10210 2005-03-09  Ulrich Weigand  <uweigand@de.ibm.com>
10211
10212         * config/s390/s390.c (s390_secondary_output_reload_class): Adapt check
10213         for non-offsettable memory references to cope with outstanding reload
10214         replacements.
10215         * config/s390/s390.md ("reload_outti"): Call find_replacement to
10216         avoid losing outstanding address reloads.
10217         ("reload_outdi", "reload_outdf"): Likewise.
10218
10219 2005-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10220
10221         * builtins.c (fold_builtin_cbrt, fold_builtin_pow): Rearrange
10222         code.  Add more cbrt transformations.
10223
10224 2005-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10225
10226         * fold-const.c (fold_unary_to_constant): Add FIX_ROUND_EXPR case.
10227
10228 2005-03-09  Kazu Hirata  <kazu@cs.umass.edu>
10229
10230         * fold-const.c (fold_unary, fold_binary, fold_ternary): Return
10231         NULL_TREE when a given tree is not simplified.
10232         (fold): Return the original tree when any of the functions
10233         mentioned above NULL_TREE.
10234
10235         * fold-const.c (fold_unary, fold_binary): Take decomposed
10236         arguments, code, type, op0, and op1 in case of fold_binary.
10237         (fold): Update calls to fold_unary and fold_binary.
10238
10239 2005-03-09  Roger Sayle  <roger@eyesopen.com>
10240
10241         * builtins.c (fold_builtin_unordered_cmp): Change prototype to take
10242         a fndecl and an arglist instead of a CALL_EXPR, exp.
10243
10244 2005-03-09  Kazu Hirata  <kazu@cs.umass.edu>
10245
10246         * cfglayout.c (fixup_reorder_chain): Remove old_bb.
10247
10248         * cfgrtl.c (cfg_layout_merge_blocks): Remove new_e.
10249
10250         * expr.c (expand_assignment): Remove orig_to_rtx.
10251
10252         * fold-const.c (int_const_binop): Remove no_overflow.
10253
10254         * ifcvt.c (noce_emit_move_insn): Remove inmode.
10255
10256         * loop-iv.c (get_biv_step_1): Remove lhs.
10257
10258         * loop-unroll.c (analyze_insns_in_loop): Remove preheader.
10259
10260         * real.c (real_nan): Remove neg.
10261
10262         * function.c (thread_prologue_and_epilogue_insns): Remove i
10263         and newinsn.
10264
10265         * tree-data-ref.c (array_base_name_differ_p): Remove ta and
10266         tb.
10267
10268         * tree-eh.c (tree_could_trap_p): Remove idx.
10269
10270         * tree-into-ssa.c (ann): Remove ann.
10271
10272         * tree-outof-ssa.c (num_nodes): Remove num_nodes.
10273
10274         * tree-sra.c (decide_block_copy): Remove inst_count.
10275
10276         * tree-ssa-alias.c (may_alias_p): Remove v_ann.
10277
10278         * tree-ssa-loop-im.c (lhs): Remove.
10279
10280         * cfgbuild.c (state, STATE, SET_STATE,
10281         BLOCK_USED_BY_TABLEJUMP, FULL_STATE): Move just before
10282         make_edges.
10283         (make_edges): Speed up by skipping blocks with BLOCK_ORIGINAL.
10284         (find_basic_blocks): Set the state of each basic block to
10285         BLOCK_NEW.
10286
10287 2005-03-08  Jeff Law  <law@redhat.com>
10288
10289         * tree-cfg.c (cleanup_control_flow): If removal of a computed
10290         goto results in the removal of edges in the CFG, then we need
10291         to recompute dominators.
10292
10293 2005-03-09  Ben Elliston  <bje@au.ibm.com>
10294
10295         * c-common.c (c_do_switch_warnings): Comment fix.
10296
10297 2005-03-08  Julian Brown  <julian@codesourcery.com>
10298
10299         * Patch from 2005-03-08 reverted for causing regressions and
10300         ppc-darwin bootstrap failure.
10301
10302 2005-03-08  Fariborz Jahanian <fjahanian@apple.com>
10303
10304         * config/rs6000/rs6000.c (invalid_arg_for_unprototyped_fn):
10305         Define the real function for ppc-darwin.
10306         * c-typeck.c (convert_arguments): Check for target-specific
10307         invalid argument call to unprototyped function.
10308         * target-def.h (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
10309         New Macro.
10310         * target.h (invalid_arg_for_unprototyped_fn): New field
10311         in struct calls.
10312         * targhooks.c (hook_invalid_arg_for_unprototyped_fn): New
10313         default target hook.
10314         * targhooks.h (hook_invalid_arg_for_unprototyped_fn):
10315         Declare.
10316
10317 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
10318
10319         * c-typeck.c (constructor_stack, constructor_range_stack,
10320         initializer_stack): Make them static.
10321
10322         * cfg.c (rbi_pool): Make it static.
10323
10324         * gimple-low.c (lower_stmt_body): Make it static.
10325         * tree-flow.h: Remove the corresponding prototype.  Don't
10326         declare lower_data.
10327
10328         * sched-deps.c (cache_size): Make it static.
10329
10330         * stor-layout.c (lang_adjust_rli): Make it static.
10331
10332 2005-03-08  Julian Brown  <julian@codesourcery.com>
10333
10334         * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK
10335         from being used for symbols with vague linkage when
10336         HAVE_GAS_COMDAT_GROUP is true.
10337
10338 2005-03-08  J"orn Rennecke <joern.rennecke@st.com>
10339
10340         * jump.c (invert_jump_1): Don't call redirect_jump_1 with
10341         nlabel == JUMP_LABEL (jump).
10342
10343 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
10344
10345         * c-common.c, c-opts.c, combine.c, cse.c, dojump.c,
10346         gimplify.c, tree-dfa.c, tree-ssa-loop-ivopts.c,
10347         tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-sink.c,
10348         tree-vect-analyze.c, tree.def, tree.h: Fix comment formatting.
10349
10350 2005-03-08  Alexey Neyman  <alex.neyman@auriga.ru>
10351
10352         PR c/14411
10353         * calls.c (flags_from_decl_or_type): Handle eturns_twice' attribute.
10354         * c-common.c (handle_returns_twice): New function.
10355         (c_common_attribute_table): Declare eturns_twice' attribute.
10356         * doc/extend.texi: Document eturns_twice' attribute.
10357         * tree.h (DECL_IS_RETURNS_TWICE): New macro.
10358         (struct tree_decl): Add returns_twice_flag.
10359
10360 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
10361
10362         * tree-ssa-phiopt.c: Fix a comment typo.
10363
10364         * c-semantics.c, cfghooks.c, diagnostic.h, loop-iv.c,
10365         loop-unswitch.c, modulo-sched.c, stor-layout.c, tree-gimple.h,
10366         config/i386/cygwin1.c, doc/cfg.texi, doc/objc.texi: Update
10367         copyright.
10368
10369 2005-03-08  Richard Henderson  <rth@redhat.com>
10370
10371         * config/alpha/alpha.c (code_for_builtin): Replace special-case
10372         builtin codes with ctzdi2, clzdi2, popcountdi2.
10373         (struct alpha_builtin_def): Add is_const.
10374         (zero_arg_builtins, one_arg_builtins, two_arg_builtins): Init it.
10375         (alpha_v8qi_u, alpha_v8qi_s, alpha_v4hi_u, alpha_v4hi_s): New.
10376         (alpha_init_builtins): Init them.  Set nothrow and const attributes
10377         on builtins.
10378         (alpha_fold_builtin_cmpbge, alpha_fold_builtin_zapnot,
10379         alpha_fold_builtin_extxx, alpha_fold_builtin_insxx,
10380         alpha_fold_builtin_mskxx, alpha_fold_builtin_umulh,
10381         alpha_fold_vector_minmax, alpha_fold_builtin_perr,
10382         alpha_fold_builtin_pklb, alpha_fold_builtin_pkwb,
10383         alpha_fold_builtin_unpkbl, alpha_fold_builtin_unpkbw,
10384         alpha_fold_builtin_cttz, alpha_fold_builtin_ctlz,
10385         alpha_fold_builtin_ctpop, alpha_fold_builtin): New.
10386         (TARGET_FOLD_BUILTIN): New.
10387         * config/alpha/alpha.md (UNSPEC_CTTZ): Remove.
10388         (UNSPEC_CTLZ, UNSPEC_CTPOP): Remove.
10389         (ffsdi2): Use ctz.
10390         (cttz, builtin_cttz, builtin_ctlz, builtin_ctpop): Remove.
10391
10392 2005-03-08  Ira Rosen  <irar@il.ibm.com>
10393
10394         PR tree-optimization/20122
10395         * tree-vect-analyze.c (vect_object_analysis): Analyze initial
10396         condition of access function instead of base.
10397
10398 2005-03-07  Jeff Law  <law@redhat.com>
10399             Steven Bosscher  <stevenb@suse.de>
10400
10401         * tree-cfg.c (find_taken_edge_computed_goto): New function.
10402         (find_taken_edge): Call find_taken_edge_computed_goto as
10403         appropriate.  Allow any gimple invariant rather than just
10404         INTEGER_CST for VAL.
10405         (cleanup_control_flow): Cleanup a computed goto which has turned
10406         into a simple goto.
10407         (tree_merge_blocks): If block B has any forced labels, move
10408         them to the start of block A.
10409         * tree-ssa-dom.c (thread_across_edge): Allow threading across
10410         computed gotos as well.
10411         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Handle
10412         removal of unnecessary computed gotos too.
10413         (lookup_redirection_data): Fix type of INSERT argument.  Callers
10414         updated.
10415
10416 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
10417
10418         * tree-ssa-phiopt.c: Update copyright.  Fix indentations.
10419         Remove trailing spaces.
10420
10421         * gimplify.c (gimple_push_bind_expr, gimple_pop_bind_expr,
10422         unshare_all_trees): Make them static.
10423         * tree-gimple.h: Remove the corresponding prototypes.
10424
10425         * diagnostic.h: Remove unused prototype
10426         debug_output_buffer.
10427         * modulo-sched.c: Remove unused prototype
10428         set_row_column_for_ps.
10429
10430         * tree-ssa-phiopt.c (tree_ssa_phiopt,
10431         replace_phi_edge_with_variable): Remove unused variable i.
10432
10433 2005-03-07  Per Bothner  <per@bothner.com>
10434
10435         * tree.h (DECL_IS_BUILTIN): Reverted my patch from earlier today.
10436
10437 2005-03-06  Andrew Pinski  <pinskia@physics.uc.edu>
10438
10439         PR tree-opt/17671
10440         * tree-ssa-phiopt.c (tree_ssa_phiopt): Rewrite so we base the
10441         bbs on the COND_EXPR instead of the PHI_NODEs.
10442         (candidate_bb_for_phi_optimization): Remove.
10443         (replace_phi_with_stmt): Rename to ...
10444         (replace_phi_edge_with_variable): this and change so that we
10445         replace the phi argument instead of removing the PHI.
10446         (conditional_replacement): Change so we deal with PHI with more
10447         than two arguments.
10448         (value_replacement): Likewise.
10449         (abs_replacement): Likewise.
10450
10451 2005-03-07  Aldy Hernandez  <aldyh@redhat.com>
10452
10453         * config/rs6000/rs6000-protos.h: Rename output_e500_flip_eq_bit to
10454         output_e500_flip_gt_bit.
10455
10456         * config/rs6000/rs6000.c (print_operand): case D: Print out bit 31
10457         as bit 31.
10458         (rs6000_generate_compare): Fix logic to look at the correct bits.
10459         (output_e500_flip_eq_bit): Rename to output_e500_flip_gt_bit.
10460         Look at GT bit.
10461         (rs6000_emit_sCOND): Rename gen_e500_flip_eq_bit to
10462         gen_e500_flip_gt_bit.  Rename gen_move_from_CR_eq_bit to
10463         gen_move_from_CR_gt_bit.
10464
10465         * config/rs6000/rs6000.md ("move_from_CR_eq_bit"): Change bit
10466         ("move_from_CR_eq_bit"): Rename to move_from_CR_gt_bit.
10467         (UNSPEC_MV_CR_EQ): Rename to UNSPEC_MV_CR_GT.
10468
10469         * config/rs6000/spe.md ("e500_cr_ior_compare"): New.
10470         (E500_CR_IOR_COMPARE): New constant.
10471
10472 2005-03-08  Earl Chew <earl_chew@agilent.com>
10473             David Billinghurst <David.Billinghurst@riotinto.com>
10474
10475         * config/i386/host-cygwin.c: New file to support precompiled
10476         headers on cygwin
10477         * config/i386/x-cygwin: Use host-cygwin.c on cygwin host
10478         * config.host: Use above files for cygwin host.
10479
10480 2005-03-07  David Edelsohn  <edelsohn@gnu.org>
10481
10482         * fold-const.c (fold_binary_op_with_conditional_arg): Fix typo
10483         ordering ops from earlier change.
10484
10485 2005-03-07  Per Bothner  <per@bothner.com>
10486
10487         Various fixes to allow us to again build if --enable-mapped-location:
10488         * c-decl.c (finish_function): Use SET_EXPR_LOCATION instead of
10489         unavailable annotate_with_file_line, if USE_MAPPED_LOCATION.
10490         * tree-cfg.c (remove_bb): If USE_MAPPED_LOCATION, change type of
10491         local variable loc. Change logic appropriately.
10492         * tree-vect-transform.c (vect_finish_stmt_generation): Use
10493         EXPR_LOCATION rather than EXPR_LOCUS if USE_MAPPED_LOCATION.
10494         * c-parser.c (c_parser_for_statement): Initialize loc variable.
10495         * tree.h (DECL_IS_BUILTIN): Temporarily revert definition of
10496         DECL_IS_BUILTIN in the USE_MAPPED_LOCATION because of jc1 issues.
10497
10498 2005-03-07  Richard Sandiford  <rsandifo@redhat.com>
10499
10500         PR rtl-optimization/19683
10501         * reload1.c (choose_reload_regs): Pass the number of bits, not the
10502         number of bytes, to smallest_int_for_mode.  Fix arguments to
10503         REG_CANNOT_CHANGE_MODE_P.
10504
10505 2005-03-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
10506
10507         * reorg.c (relax_delay_slots): Check that the jump is
10508         conditional before trying to invert it.
10509
10510 2005-03-07  Kazu Hirata  <kazu@cs.umass.edu>
10511
10512         * bb-reorder.c (max_entry_frequency, max_entry_frequency):
10513         Make them static.
10514
10515         * calls (stack_arg_under_construction): Make it static.
10516
10517         * flow.c (regs_live_at_setjmp): Make it static.
10518         * flow.h: Remove the corresponding prototype.
10519
10520         * reload1.c (reload_startobj, reload_firstobj,
10521         something_needs_operands_changed, reload_inherited,
10522         reload_inheritance_insn, reload_override_in,
10523         reload_spill_index): Make them static.
10524
10525         * recog.c (verify_changes): Make it static.
10526         * recog.h: Remove the corresponding prototype.
10527
10528         * cfgbuild.c (find_sub_basic_blocks): Remove.
10529         * basic-block.h: Remove the corresponding prototype.
10530         * cfgexpand.c, cfgrtl.c: Don't mention find_sub_basic_blocks
10531         in comments.
10532         * doc/cfg.texi: Don't mention find_sub_basic_blocks.
10533
10534         * tree-ssa-operands.c (check_build_stmt): Remove.
10535
10536         * stor-layout.c (set_alignment): Remove.
10537         * tree.h: Remove the corresponding prototype.
10538
10539         * tree-ssa-pre.c (has_abnormal_preds): Make it static.
10540
10541         * tree-ssa-dce.c (control_dependence_map,
10542         visited_control_parents): Make them static.
10543
10544         * cfghooks.c (verify_flow_info): Remove local variable
10545         num_bb_notes.
10546
10547         * cfgrtl.c (rtl_verify_flow_info_1): Remove local variable
10548         last_bb_seen.
10549
10550         * loop-unswitch.c (unswitch_loop): Remove local variable src.
10551
10552 2005-03-07  David Billinghurst <David.Billinghurst@riotinto.com>
10553
10554         * config/i386/cygwin1.c(mingw_scan): Use xstrdup in calls to putenv.
10555
10556 2005-03-07  Joseph S. Myers  <joseph@codesourcery.com>
10557
10558         * config/ia64/hpux.h (LINK_SPEC): Add -z.
10559         * config/ia64/ia64.c (ia64_function_value): Return a REG not a
10560         PARALLEL for an empty structure.
10561
10562 2005-03-07  Kazu Hirata  <kazu@cs.umass.edu>
10563
10564         * fold-const.c (fold_binary): Remove handling of RANGE_EXPR.
10565
10566         * fold-const.c (fold_binary): Unroll the very first "for"
10567         loop.
10568
10569 2005-03-06  David Edelsohn  <edelsohn@gnu.org>
10570
10571         * config/rs6000/predicates.md (branch_comparison_operator): Remove
10572         redundant match_code test.
10573         (scc_comparison_operator): Swap match_operand and match_code
10574         tests.
10575         (branch_positive_comparison_operator): Same.
10576         (trap_comparison_operator): Use comparison_operator and swap with
10577         match_code test.
10578
10579 2005-03-06  Marek Michalkiewicz  <marekm@amelek.gda.pl>
10580
10581         PR target/20288
10582         * config/avr/avr.c (print_operand): Add 'p' and 'r'.
10583         (out_movhi_r_mr): Read low byte of volatile MEM first.
10584         (out_movhi_mr_r): Write high byte of volatile MEM first.
10585
10586 2005-03-05  Kazu Hirata  <kazu@cs.umass.edu>
10587
10588         * cselib.c (reg_values, reg_values_size): Make them static.
10589
10590         * cse.c (cse_reg_info_table): Make it static.
10591
10592         * fold-const.c (fold_unary): Use build1 instead of copy_node.
10593
10594 2005-03-06  Zdenek Dvorak  <dvorakz@suse.cz>
10595
10596         * cse.c (find_best_addr): Use canon_for_address.
10597
10598 2005-03-06  Kazu Hirata  <kazu@cs.umass.edu>
10599
10600         * cse.c (fold_rtx_subreg, fold_rtx_mem): New.
10601         (fold_rtx): Call fold_rtx_subreg and fold_rtx_mem to handle
10602         SUBREG and MEM, respectively.
10603
10604         * fold-const.c (fold_binary): Use code instead of t.
10605
10606         * fold-const.c (optimize_minmax_comparison): Take decomposed
10607         arguments code, type, op0, and op1 instead of t.
10608         (fold_binary): Update a call to optimize_minmax_comparison.
10609
10610         * fold-const.c (fold_range_test): Take decomposed arguments
10611         code, type, op0, and op1 instead of t.
10612         (fold_binary): Update a call to fold_range_test.
10613
10614         * fold-const.c (fold_binary_op_with_conditional_arg): Take
10615         decomposed arguments code, type, op0, and op1 instead of t.
10616         (fold_binary): Update a call to fold_range_test.
10617
10618 2005-03-06  Kazu Hirata  <kazu@cs.umass.edu>
10619
10620         * fold-const.c (fold_binary): Avoid directly using the original
10621         expression t as much as possible.
10622
10623 2005-03-05  Kazu Hirata  <kazu@cs.umass.edu>
10624
10625         * c-semantics.c (build_stmt): Use TYPE_P instead of
10626         IS_NON_TYPE_CODE_CLASS.
10627         * tree.h (IS_NON_TYPE_CODE_CLASS): Remove.
10628         (NON_TYPE_CHECK): Use TYPE_P instead of
10629         IS_NON_TYPE_CODE_CLASS.
10630
10631         * fold-const.c (fold): Remove handling of binary expressions.
10632
10633 2005-03-05  James A. Morrison  <phython@gcc.gnu.org>
10634
10635         * doc/c-tree.texi: Wrap comments in @r{}.
10636         * doc/cpp.texi: Likewise.
10637         * doc/cppinternals.texi: Likewise.
10638         * doc/extend.texi: Likewise.
10639         * doc/md.texi: Likewise.
10640         * doc/objc.texi: Likewise.
10641         * doc/sourcebuild.texi: Likewise.
10642         * doc/tm.texi: Likewise.
10643         * doc/tree-ssa.texi
10644
10645 2005-03-05  Kazu Hirata  <kazu@cs.umass.edu>
10646
10647         * predict.c (apply_return_prediction): Standardize PHI chain
10648         walking.
10649         * tree-ssa.c (ssa_redirect_edge): Likewise.
10650
10651         * genattrtab.c, genemit.c, genoutput.c, genrecog.c,
10652         gensupport.c, jump.c, tree-phinodes.c, unwind-dw2-fde-glibc.c:
10653         Update copyright.
10654
10655         * tree-phinodes.c (remove_phi_node): Drop the last argument.
10656         * tree-flow.h: Adjust the prototype for remove_phi_node.
10657         * lambda-code.c (perfect_nestify): Adjust a call to
10658         remove_phi_node.
10659         * tree-cfg.c
10660         (remove_phi_nodes_and_edges_for_unreachable_block): Likewise.
10661         * tree-outof-ssa.c (eliminate_virtual_phis, remove_ssa_form):
10662         Likewise.
10663         * tree-ssa-dce.c (remove_dead_phis): Likewise.
10664         * tree-ssa-loop-ivopts.c (remove_statement): Likewise.
10665         * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
10666         * tree-ssa.c (kill_redundant_phi_nodes): Likewise.
10667
10668         * combine.c (simplify_and_const_int): Use gen_int_mode instead
10669         of GEN_INT (trunc_int_for_mode (...)).
10670         * loop-iv.c (iv_number_of_iterations): Likewise.
10671         * postreload.c (reload_cse_move2add): Likewise.
10672         * simplify-rtx.c (simplify_const_unary_operation,
10673         simplify_const_binary_operation): Likewise.
10674         * stor-layout.c (get_mode_bounds): Likewise.
10675
10676         * fold-const.c (fold_binary): New.
10677         (fold): Call fold_binary on binary expressions.
10678
10679 2005-03-05  Richard Sandiford  <rsandifo@redhat.com>
10680
10681         * doc/invoke.texi: Document new MIPS -msym32 and -mno-sym32 options.
10682         * config/mips/mips.h (MASK_SYM32, TARGET_SYM32): New macros.
10683         (TARGET_SWITCHES): Add -msym32 and -mno-sym32.
10684         (ABI_HAS_64BIT_SYMBOLS): Set to false if TARGET_SYM32.
10685         (ASM_SPEC): Pass down -msym32 and -mno-sym32.
10686
10687 2005-03-04  Devang Patel  <dpatel@apple.com>
10688
10689         PR tree-optimization/18815
10690         * tree-if-conv.c (combine_blocks): Adjust loop header edges for
10691         loops with zero exit edges.
10692
10693 2005-03-04  Devang Patel  <dpatel@apple.com>
10694
10695         * doc/invoke.texi: Remove reference to webpage that does not exist.
10696
10697 2005-03-04  John David Anglin  <dave.danglin@nrc-cnrc.gc.ca>
10698             Joseph S. Myers  <joseph@codesourcery.com>
10699
10700         PR c++/19797
10701         * pa/elf.h, pa64-hpux.h, som.h (ASM_OUTPUT_EXTERNAL_REAL): Define.
10702         (ASM_OUTPUT_EXTERNAL): Call pa_hpux_asm_output_external.
10703         * pa-protos.h (pa_hpux_asm_output_external): Add prototype.
10704         * pa.c (get_plabel): Change argument to symbol_ref.  Call
10705         maybe_get_identifier instead of get_identifier.
10706         (pa_hpux_asm_output_external, pa_hpux_file_end): New functions.
10707         (struct deferred_plabel): Replace name field with symbol field.
10708         (TARGET_ASM_FILE_END): Define as pa_hpux_file_end if
10709         ASM_OUTPUT_EXTERNAL_REAL is defined.
10710         (output_global_address): Use output_addr_const for output of all
10711         symbol_refs.
10712         (output_deferred_plabels): Use symbol_ref instead of name for address
10713         output.
10714         * pa.h (SYMBOL_FLAG_REFERENCED, SYMBOL_REF_REFERENCED_P,
10715         ASM_OUTPUT_SYMBOL_REF): New macros.
10716         * som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Use assemble_name_raw.  Update
10717         comment.
10718         (ASM_WEAKEN_LABEL): Use targetm.asm_out.globalize_label to globalize
10719         label.
10720
10721 2005-03-05  Joseph S. Myers  <joseph@codesourcery.com>
10722
10723         * config.gcc (hppa*64*-*-hpux11*): Use pa/pa-hpux1111.h for
10724         *-*-hpux11.[1-9]*, not just for *-*-hpux11.11.
10725
10726 2005-03-04  Jeff Law  <law@redhat.com>
10727
10728         * basic-block.h (rediscover_loops_after_threading): Declare.
10729         * tree-ssa-dom.c: Include cfgloop.h.
10730         (tree_ssa_dominator_optimize): Discover loops and some basic
10731         properties.  Remove forwarder blocks recreated by loop header
10732         canonicalization.  Also mark backedges in the CFG.
10733         * tree-ssa-threadupdate.c: Include cfgloop.h
10734         (rediscover_loops_after_threading): Define.
10735         (struct local_info): New field, JUMP_THREADED.
10736         (prune_undesirable_thread_requests): New function.
10737         (redirect_edges): Clear EDGE_ABNORMAL.  If edges were threaded
10738         then record that fact for the callers of redirct_edges.
10739         (thread_block): If BB has incoming backedges, then call
10740         prune_undesirable_thraed_requests.    Note when we are
10741         going to have to rediscover loop information.  Return a
10742         boolean indicating if any jumps were threaded.
10743         (thread_through_all_blocks): Bubble up boolean indicating
10744         if any jumps were threaded.
10745         * Makefile.in (tree-ssa-dom.o): Depend on cfgloop.h
10746         (tree-ssa-threadupdate.o): Similarly.
10747
10748 2005-03-04  Kazu Hirata  <kazu@cs.umass.edu>
10749
10750         * fold-const.c (fold_ternary): Unroll the "for" loop to
10751         extract operands.
10752
10753 2005-03-04  Andrew Haley  <aph@redhat.com>
10754
10755         * unwind-dw2-fde-glibc.c (struct
10756         unw_eh_callback_data.check_cache): New field.
10757         (frame_hdr_cache): New.
10758         (_Unwind_IteratePhdrCallback): Add ext_dl_phdr_info.
10759         Cache frame header info.
10760
10761 2005-03-04  Richard Sandiford  <rsandifo@redhat.com>
10762
10763         * rtl.h (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
10764         (print_c_condition): Declare.
10765         * read-rtl.c (ptr_loc): New structure.
10766         (ptr_locs, ptr_loc_obstack, joined_conditions)
10767         (joined_conditions_obstack): New variables.
10768         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc)
10769         (get_rtx_ptr_loc, copy_rtx_ptr_loc, print_rtx_ptr_loc)
10770         (join_c_conditions, print_c_condition): New functions.
10771         (apply_macro_to_string): Associate the new string with the same
10772         source location as the old one.
10773         (add_condition_to_string): Use join_c_conditions.
10774         (read_string): Use set_rtx_ptr_loc to record a filename and line
10775         number for the string.
10776         (read_rtx): Initialize the new variables above.
10777         * genattrtab.c (write_test_expr, write_attr_value): Use
10778         print_c_condition.
10779         * genconditions.c (write_header): Don't define MAYBE_EVAL.  Move its
10780         comment above the GCC_VERSION check.
10781         (write_one_condition): Use print_rtx_ptr_loc and print_c_condition.
10782         Inline the definition of MAYBE_EVAL.
10783         * genemit.c (gen_expand, gen_split): Use print_rtx_ptr_loc.
10784         * genoutput.c (process_template): Likewise.
10785         * genpreds.c (write_predicate_subfunction): Likewise.
10786         (write_predicate_expr): Use print_c_condition.
10787         * genrecog.c (write_cond): Likewise.
10788         * gensupport.c (process_rtx): Use join_c_conditions to join the
10789         conditions of a define_insn_and_split.  Record a source location
10790         for the string after the "&&".
10791         (alter_test_for_insn): Use join_c_conditions.
10792
10793 2005-03-04  Andrew Pinski  <pinskia@physics.uc.edu>
10794
10795         Revert for now:
10796         2005-03-03  James A. Morrison  <phython@gcc.gnu.org>
10797         PR tree-optimization/15784
10798         * fold-const.c (fold): Fold ~A + 1 to -A.  Fold -A - 1
10799         and -1 - A to ~A.
10800
10801 2005-03-04  Ben Elliston  <bje@au.ibm.com>
10802
10803         * gcc.c (option_map): Add --coverage.
10804         (LINK_COMMAND_SPEC): Pass -lgcov for `coverage'.
10805         (cc1_options): Pass -fprofile-arcs -ftest-coverage for `coverage'.
10806         * config/darwin.h: Pass -lgcov for `coverage'.
10807         * doc/invoke.texi (Debugging Options): Document --coverage.
10808
10809 2005-03-04  Kazu Hirata  <kazu@cs.umass.edu>
10810
10811         * gcse.c (bypass_block): Use find_edge wherever possible.
10812
10813 2005-03-03  Daniel Berlin <dberlin@dbrelin.org>
10814
10815         Fix PR debug/20253
10816
10817         * c-opts.c (c_common_parse_file): Call start_source_file
10818         and end_source_file at the approriate times.
10819
10820         * dwarf2out.c (dwarf2out_finish): Don't auto-end
10821         the main file, it will be done for us now.
10822
10823 2005-03-04  Kazu Hirata  <kazu@cs.umass.edu>
10824
10825         * fold-const.c (fold_ternary): New.
10826         (fold): Call fold_ternary on ternary expressions.  Remove
10827         handling of ternary expressions.
10828
10829 2005-03-03  James A. Morrison  <phython@gcc.gnu.org>
10830
10831         PR tree-optimization/15784
10832         * fold-const.c (fold): Fold ~A + 1 to -A.  Fold -A - 1
10833         and -1 - A to ~A.
10834
10835 2005-03-03  David Edelsohn  <edelsohn@gnu.org>
10836
10837         * config/rs6000/predicates.md (branch_comparison_operator):
10838         Convert from C block to conditional format.
10839
10840 2005-03-03  Jan Hubicka  <jh@suse.cz>
10841
10842         * tree-dfa.c (add_referenced_var): Don't walk initializer of external
10843         and non-constant public variables.
10844
10845 2005-03-03  Kazu Hirata  <kazu@cs.umass.edu>
10846
10847         * tree-cfg.c (stmt_starts_bb_p): Clean up by replacing code
10848         with LABEL_EXPR.
10849
10850         * cfgexpand.c (construct_exit_block): Use EDGE_PRED instead of
10851         EDGE_I.
10852
10853         * tree-phinodes.c (remove_phi_node): Clean up by factoring out
10854         calls to release_ssa_name and release_phi_node.
10855
10856         * fold-const.c (fold): Remove handling of unary expressions.
10857
10858         * fold-const.c (fold_unary): Avoid directly using the original
10859         expression t as much as possible.
10860
10861 2005-03-03  Roger Sayle  <roger@eyesopen.com>
10862             Andrew Pinski  <pinskia@physics.uc.edu>
10863
10864         * jump.c (redirect_exp_1): If nlabel is a NULL pointer create a
10865         RETURN rtx, and not a LABEL_REF containing a NULL pointer.
10866
10867 2005-03-03  Hans-Peter Nilsson  <hp@axis.com>
10868
10869         Describe special registers SRP and MOF as allocatable registers.
10870         * config/cris/cris.c (cris_md_asm_clobbers): New function.
10871         (TARGET_MD_ASM_CLOBBERS): Define to cris_md_asm_clobbers.
10872         (cris_conditional_register_usage): Enable CRIS_MOF_REGNUM if
10873         TARGET_HAS_MUL_INSNS.
10874         (cris_print_operand) <case 'd'>: New case.
10875         <case REG>: Allow CRIS_MOF_REGNUM and CRIS_SRP_REGNUM.
10876         * config/cris/cris.h (CRIS_PC_REGNUM, CRIS_SRP_REGNUM): Don't
10877         define.
10878         (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS)
10879         (REG_ALLOC_ORDER): Update for MOF.
10880         (enum reg_class): New members MOF_REGS, GENERAL_REGS and
10881         SPECIAL_REGS.
10882         (GENERAL_REGS): No longer a define of ALL_REGS.
10883         (REGNO_REG_CLASS, REG_CLASS_CONTENTS, REG_CLASS_NAMES)
10884         (PREFERRED_RELOAD_CLASS, REGISTER_NAMES, DBX_REGISTER_NUMBER):
10885         Adjust accordingly.
10886         (CRIS_SPECIAL_REGS_CONTENTS): New macro.
10887         (REG_CLASS_FROM_LETTER): Allocate 'h' and 'x'.
10888         (SECONDARY_RELOAD_CLASS): Define.
10889         (STACK_POINTER_REGNUM): Define as CRIS_SP_REGNUM.
10890         (FRAME_POINTER_REGNUM): Define as CRIS_FP_REGNUM.
10891         (ARG_POINTER_REGNUM): Define as CRIS_AP_REGNUM.
10892         (STATIC_CHAIN_REGNUM): Define as CRIS_STATIC_CHAIN_REGNUM.
10893         (REGISTER_MOVE_COST): Define.
10894         (PIC_OFFSET_TABLE_REGNUM): Define in terms of CRIS_GOT_REGNUM.
10895         * config/cris/cris.md (CRIS_GOT_REGNUM, CRIS_STATIC_CHAIN_REGNUM)
10896         (CRIS_FP_REGNUM, CRIS_SP_REGNUM, CRIS_SRP_REGNUM, CRIS_AP_REGNUM)
10897         (CRIS_MOF_REGNUM): New define_constants.
10898         ("*movsi_internal", "movhi", "movqi", "movsf"): Add alternatives for
10899         special registers.
10900         ("reload_inhi", "reload_outhi", "reload_inqi", "reload_outqi"):
10901         New patterns.
10902         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3")
10903         ("mulsidi3", "umulsidi3", "smulsi3_highpart", "umulsi3_highpart"):
10904         Adjust for MOF being properly described as a register.
10905         (indir_to_reg_split): Name this split.  Conditionalize on the
10906         destination register being a general register.
10907         (movei): Conditionalize on on operands 0 and 1 having the same
10908         register class.
10909
10910 2005-03-03  Alan Modra  <amodra@bigpond.net.au>
10911
10912         PR target/20277
10913         * config/rs6000/rs6000.c (rs6000_override_options): Don't allow
10914         -mcpu to override any other explicitly given flags.
10915
10916 2005-03-02  J"orn Rennecke <joern.rennecke@st.com>
10917
10918         * recog.c (verify_changes, confirm_change_group): New functions,
10919         broken out of apply_change_group.
10920         (apply_change_group): Use them.
10921         * recog.h (verify_change, confirm_change_group): Declare.
10922         * rtl.h (redirect_jump_2): Declare.
10923         * jump.c (redirect_exp, invert_exp): Delete.
10924         (invert_exp_1): Take second parameter.  Return value.  Changed caller.
10925         (redirect_jump_2): New function, broken out of redirect_jump.
10926         (redirect_jump): Use redirect_jump_1 and redirect_jump_2.
10927         (invert_jump): Use invert_jump_1 and redirect_jump_2.
10928         * ifcvt.c (dead_or_predicable): Use redirect_jump_2.
10929
10930 2005-03-02  Geoffrey Keating  <geoffk@apple.com>
10931
10932         * varasm.c (named_section): Use xstrdup rather than doing it by
10933         hand.
10934
10935         * config/darwin8.h (LIB_SPEC): Switch -lmx and -lSystem.
10936
10937 2005-03-02  Devang Patel  <dpatel@apple.com>
10938
10939         Undo PR tree-optimization/18815 fix.
10940
10941 2005-03-02  Devang Patel  <dpatel@apple.com>
10942
10943         PR tree-optimization/18815
10944         * tree-if-conv.c (combine_blocks): Adjust loop header edges for
10945         loops with zero exit edges.
10946
10947 2005-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10948
10949         * cfg.c (connect_src, connect_dest, disconnect_src,
10950         disconnct_dest): New.
10951         (unchecked_make_edge, remove_edge, redirect_edge_succ,
10952         redirect_edge_pred): Use the new functions.
10953
10954         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
10955         free_dominance_info only when needed.
10956
10957 2005-03-02  David Edelsohn  <edelsohn@gnu.org>
10958
10959         PR target/20276
10960         * config/rs6000/predicates.md (reg_or_cint64_operand): Fix typo.
10961         (reg_or_sub_cint64_operand): Same.
10962
10963 2005-03-02  Jeff Law  <law@redhat.com>
10964
10965         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Fix setting of
10966         CFG_ALTERED in the main DOM iteration loop.
10967
10968 2005-03-02  Mark Mitchell  <mark@codesourcery.com>
10969
10970         PR c++/19916
10971         * varasm.c (initializer_constant_valid_p): Allow conversions
10972         between OFFSET_TYPEs.  Tidy.
10973
10974 2005-03-02  Hans-Peter Nilsson  <hp@axis.com>
10975
10976         * config/cris/cris.md ("return"): Remove epilogue delay list
10977         sanity check.
10978
10979 2005-03-02  Daniel Jacobowitz  <dan@codesourcery.com>
10980
10981         * config/arm/linux-elf.h (ARM_FUNCTION_PROFILER): Do not use (PLT)
10982         for Thumb.
10983         * config/arm/netbsd-elf.h (ARM_FUNCTION_PROFILER): Likewise.
10984
10985 2005-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10986
10987         * cfgloop.h, cfgloopanal.c, cfgloopmanip.c, conflict.c,
10988         loop-init.c, loop-unroll.c, print-tree.c, reg-notes.def,
10989         config/m68k/m68k.c, config/mips/mips.h,
10990         config/rs6000/rs6000-protos.h, doc/contrib.texi,
10991         doc/include/gcc-common.texi: Update copyright.
10992
10993         PR middle-end/18029 and PR middle-end/18030
10994         * expr.c (optimize_bitfield_assignment_op): Add a special case
10995         to handle BIT_IOR_EXPR and BIT_XOR_EXPR.
10996
10997         * fold-const.c (fold_unary): New.
10998         (fold): Call fold_unary on unary expressions.
10999
11000 2005-03-02  Richard Guenther  <rguenth@gcc.gnu.org>
11001
11002         * cgraph.h (struct cgraph_edge): Add prev_caller and
11003         prev_callee fields.
11004         (cgraph_node_remove_callees): Export.
11005         * cgraph.c (cgraph_create_edge): Initialize prev_caller
11006         and prev_callee.
11007         (cgraph_edge_remove_callee): New function.
11008         (cgraph_edge_remove_caller): Likewise.
11009         (cgraph_remove_edge): Use.
11010         (cgraph_redirect_edge_callee): Likewise.
11011         (cgraph_node_remove_callees): New function.
11012         (cgraph_node_remove_callers): Likewise.
11013         (cgraph_remove_node): Use.
11014         * tree-optimize.c (tree_rest_of_compilation): Use
11015         cgraph_node_remove_callees instead of manual loop.
11016         * cgraphunit.c (cgraph_finalize_function): Likewise.
11017         (cgraph_expand_function): Likewise.
11018         (cgraph_remove_unreachable_nodes): Likewise.
11019
11020 2005-03-02  Joseph S. Myers  <joseph@codesourcery.com>
11021
11022         PR c/8927
11023         * c-tree.h (undeclared_variable, build_external_ref): Add extra
11024         argument.
11025         * c-decl.c (undeclared_variable): Take location as argument.
11026         * c-typeck.c (build_external_ref): Likewise.
11027         * c-parser.c (c_parser_postfix_expression): Pass location of
11028         identifier to build_external_ref.
11029
11030 2005-03-01  David Edelsohn  <edelsohn@gnu.org>
11031
11032         * config/rs6000/rs6000.md (cceq splitter): Use operand mode, not
11033         CCEQ mode for branch_positive_comparison_operator test.
11034         * config/rs6000/predicates (branch_comparison_operator): Revert to
11035         define_predicate.
11036         (scc_comparison_operator): Same.
11037         (branch_positive_comparison_operator): Same.
11038
11039 2005-03-01  Hans-Peter Nilsson  <hp@axis.com>
11040
11041         * config/cris/cris.c (cris_eligible_for_epilogue_delay)
11042         (cris_delay_slots_for_epilogue): Remove.
11043         (save_last): Move into cris_target_asm_function_epilogue.
11044         (cris_target_asm_function_epilogue): Remove tests for file being
11045         NULL.
11046         * config/cris/cris-protos.h (cris_eligible_for_epilogue_delay)
11047         (cris_delay_slots_for_epilogue): Remove prototypes.
11048         * config/cris/cris.h (DELAY_SLOTS_FOR_EPILOGUE)
11049         (ELIGIBLE_FOR_EPILOGUE_DELAY): Do not define.
11050
11051 2005-03-01  David Edelsohn  <edelsohn@gnu.org>
11052
11053         * config/rs6000/predicates.md (branch_comparison_operator): Change
11054         to define_special_predicate.
11055         (scc_comparison_operator): Same.
11056         (branch_positive_comparison_operator): Same.
11057
11058 2005-03-01  Daniel Berlin <dberlin@dberlin.org>
11059
11060         * Makefile.in (tree-ssa-sink.o): New.
11061         (OBJS-common): Add tree-ssa-sink.o.
11062         * common.opt: Add -ftree-sink
11063         * opts.c (decode_options): flag_tree_sink is set at O1 or higher.
11064         * timevar.def (TV_TREE_SINK): new timevar.
11065         * tree-flow.h (is_hidden_global_store): Prototype.
11066         * tree-optimize.c (init_tree_optimization_passes): Add
11067         pass_sink_code.
11068         * tree-pass.h (pass_sink_code): New.
11069         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Move checking
11070         for non-obvious global store store to is_hidden_global_store, and
11071         call that new function.
11072         * tree-ssa-sink.c: New file.
11073         * doc/invoke.texi: Document -fdump-tree-sink and -ftree-sink.
11074         * doc/passes.texi: Document forward store motion.
11075         * testsuite/gcc.dg/tree-ssa/ssa-sink-1.c: New test
11076         * testsuite/gcc.dg/tree-ssa/ssa-sink-2.c: New test
11077         * testsuite/gcc.dg/tree-ssa/ssa-sink-3.c: New test
11078         * testsuite/gcc.dg/tree-ssa/ssa-sink-4.c: New test
11079
11080 2005-03-01  Per Bothner  <per@bothner.com>
11081
11082         * diagnostic.c (diagnostic_build_prefix): If USE_MAPPED_LOCATION
11083         and we have a non-zero column-number, add it to the message.
11084         Also factor out the diagnostic_kind_text.
11085
11086 2005-03-01  Zdenek Dvorak  <dvorakz@suse.cz>
11087
11088         * cfgloop.c (flow_loop_entry_edges_find, flow_loop_exit_edges_find,
11089         flow_loop_pre_header_scan, flow_loop_pre_header_find,
11090         flow_loop_scan): Removed.
11091         (flow_loop_dump): Do not dump removed fields.
11092         (flow_loop_free): Do not free removed fields.
11093         (flow_loops_find): Flags argument removed.  Do not call flow_loop_scan.
11094         (loop_exit_edge_p): New function.
11095         * cfgloop.h (struct loop): Removed fields pre_header, pre_header_edges,
11096         num_pre_header_edges, entry_edges, num_entries, exit_edges,
11097         num_exits, exits_doms.
11098         (LOOP_TREE, LOOP_PRE_HEADER, LOOP_ENTRY_EDGES, LOOP_EXIT_EDGES,
11099         LOOP_EDGES, LOOP_ALL): Removed.
11100         (flow_loop_scan): Declaration removed.
11101         (loop_exit_edge_p, mark_loop_exit_edges): Declare.
11102         * cfgloopmanip.c (create_loop_notes): Do not pass flags to
11103         flow_loops_find.
11104         * ifcvt.c (mark_loop_exit_edges): Moved to cfgloopanal.c.
11105         (if_convert): Call flow_loops_find and flow_loops_free
11106         when calling mark_loop_exit_edges.
11107         * cfgloopanal.c (mark_loop_exit_edges): Moved from
11108         ifcvt.c.  Removed the flow_loops_find, flow_loops_free and
11109         free_dominance_info calls.
11110         * loop-init.c (flow_loops_find): Ditto.
11111         * passes.c (rest_of_handle_branch_prob): Ditto.
11112         * lambda-code.c (perfect_nestify): Do not call flow_loops_find.
11113         * loop-unroll.c (analyze_insns_in_loop): Do not use
11114         EDGE_LOOP_EXIT.
11115         * predict.c (predict_loops): Do not call flow_loop_scan.
11116         Use get_loop_exit_edges.
11117         (tree_estimate_probability): Do not pass flags to flow_loops_find.
11118         * tree-if-conv.c (bb_with_exit_edge_p): Take loop as argument.
11119         Do not use EDGE_LOOP_EXIT.
11120         (tree_if_convert_cond_expr, if_convertible_modify_expr_p): Pass loop
11121         to bb_with_exit_edge_p.
11122         (if_convertible_loop_p): Do not call flow_loop_scan.  Use
11123         loop->single_exit.  Do not use EDGE_LOOP_EXIT.  Pass loop
11124         to bb_with_exit_edge_p.
11125         (combine_blocks): Pass loop to bb_with_exit_edge_p.  Do not use
11126         EDGE_LOOP_EXIT.
11127         * tree-loop-linear.c (linear_transform_loops): Do not call
11128         flow_loop_scan.  Use loop->single_exit.
11129         * tree-vect-analyze.c (vect_analyze_operations): Use loop->single_exit.
11130         (vect_analyze_loop_form): Do not call flow_loop_scan.
11131         * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Use
11132         loop->single_exit.
11133         (vect_do_peeling_for_loop_bound): Use loop_preheader_edge and
11134         loop->single_exit.
11135         * tree-vectorizer.c (slpeel_update_phis_for_duplicate_loop,
11136         slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
11137         slpeel_tree_duplicate_loop_to_edge_cfg,
11138         slpeel_verify_cfg_after_peeling, slpeel_tree_peel_loop_to_edge):
11139         Use loop_preheader_edge and loop->single_exit.  Do not call
11140         flow_loop_scan.
11141
11142 2005-03-01  Nick Clifton  <nickc@redhat.com>
11143
11144         * config/arm/arm.c (thumb_find_work_register): Check all of the
11145         argument registers to see if they are free, and a couple of
11146         special cases where the last argument register but can be proved
11147         to be available during the function's prologue.
11148         (print_multi_reg, arm_compute_save_reg0_reg12_mask,
11149         output_return_instruction, emit_multi_reg_push, thumb_pushpop,
11150         thumb_unexpanded_epilogue): Use unsigned long as the type for the
11151         register bit-mask.
11152         (thumb_compute_save_reg_mask): Likewise.  Also use
11153         thumb_find_work_register() to ensure that there is agreement about
11154         which work register is going to be used in the prologue.
11155         (thumb_output_function_prologue): Use unsigned long as the type
11156         for the register bit-mask.  Also delay pushing the link register if
11157         other high registers are going to be pushed.
11158         (thumb_compute_save_reg_mask, emit_multi_reg_push,
11159         print_multi-reg, number_of_first_bit_set, thumb_pushpop): Remove
11160         redundant prototypes.
11161
11162 2005-02-28  John David Anglin  <dave.anglin#nrc-cnrc.gc.ca>
11163
11164         PR target/19819
11165         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow allow hard registers during
11166         and after reload in REG+REG indexed addresses without REG_POINTER
11167         set in the base and not set in the index.
11168
11169 2005-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
11170
11171         * config/sh/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
11172         Don't undefine here.
11173         (HANDLE_PRAGMA_PACK_PUSH_POP): Delete.
11174         (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC): Likewise.
11175         (TARGET_OS_CPP_BUILTINS): Use LINUX_TARGET_OS_CPP_BUILTINS.
11176         (LIB_SPEC, LINK_EH_SPEC, STARTFILE_SPEC, ENDFILE_SPEC,
11177         LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED, TARGET_C99_FUNCTIONS):
11178         Delete.
11179         * config.gcc (sh*-*-linux*): Use config/linux.h.
11180
11181 2005-02-28  Dale Johannesen  <dalej@apple.com>
11182             Stan Shebs  <shebs@apple.com>
11183
11184         Rewrite of 64-bit Darwin structure-by-value pass/return.
11185         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): New fields
11186         intoffset, use_stack, named.
11187         * config/rs6000/rs6000.c (rs6000_darwin64_function_arg):  Remove.
11188         (rs6000_darwin64_record_arg_advance_flush):  New.
11189         (rs6000_darwin64_record_arg_advance_recurse): New.
11190         (rs6000_darwin64_record_arg_flush):  New.
11191         (rs6000_darwin64_record_arg_recurse):  New.
11192         (rs6000_darwin64_record_arg):  New.
11193         (rs6000_return_in_memory):  Remove AGGREGATE_TYPE_P check.
11194         (function_arg_boundary):  Handle 128-bit aligned structs.
11195         (function_arg_advance):  Rewrite darwin64 struct handling.
11196         (function_arg):  Call rs6000_darwin64_record_arg.
11197         (function_arg_partial_nregs):  Handle darwin64 structs.
11198         (rs6000_darwin64_function_value):  Remove.
11199         (rs6000_function_value):  Call rs6000_darwin64_record_arg.
11200
11201 2005-02-28  Roger Sayle  <roger@eyesopen.com>
11202
11203         PR tree-optimization/20216
11204         * tree-chrec.c (tree_fold_factorial): Delete.
11205         (tree_fold_binomial): Change argument list to take a return type
11206         and change the type of K to unsigned int.  Rewrite to avoid explicit
11207         evaluation of factorials, and (recursively) calling fold to perform
11208         compile-time arithmetic.  Return NULL on (internal) overflow.
11209         (chrec_evaluate): Change type of K to an unsigned int.  Avoid
11210         calling tree_fold_binomial unnecessarily.  Return chrec_dont_know
11211         if any intermediate calculation overflows.
11212         (chrec_apply): Update call to chrec_evaluate.
11213
11214 2005-02-28  James E Wilson  <wilson@specifixinc.com>
11215
11216         * config/mips/mips.h (NO_PROFILE_COUNTERS): Define.
11217
11218 2005-02-28  Joseph S. Myers  <joseph@codesourcery.com>
11219
11220         PR c/20245
11221         * c-parser.c (c_parser_compound_statement): Return error_mark_node
11222         instead of NULL_TREE on error.
11223
11224 2005-02-28  David Edelsohn  <edelsohn@gnu.org>
11225
11226         * config/rs6000/rs6000.c (EASY_VECTOR_15): Remove.
11227         (EASY_VECTOR_15_ADD_SELF): Remove.
11228         (num_insns_constant_wide): Not static.
11229         (validate_condition_mode): Not static.
11230         (toc_relative_expr_p): Not static.
11231         (legitimate_indirect_address_p): Not static.
11232         (macho_lo_sum_memory_operand): Not static.
11233         (invalid_e500_subreg): Not static.
11234         (easy_vector_same): Not static.
11235         (easy_vector_splat_const): Not static.
11236         (RS6000_SYMBOL_REF_TLS_P): Remove.
11237         (any_operand): Delete.
11238         (any_parallel_operand): Delete.
11239         (count_register_operand): Delete.
11240         (altivec_register_operand): Delete.
11241         (xer_operand): Delete.
11242         (s8bit_cint_operand): Delete.
11243         (short_cint_operand): Delete.
11244         (u_short_cint_operand): Delete.
11245         (non_short_cint_operand): Delete.
11246         (exact_log2_cint_operand): Delete.
11247         (gpc_reg_operand): Delete.
11248         (cc_reg_operand): Delete.
11249         (cc_reg_not_cr0_operand): Delete.
11250         (reg_or_short_operand): Delete.
11251         (reg_or_neg_short_operand): Delete.
11252         (reg_or_aligned_short_operand): Delete.
11253         (reg_or_u_short_operand): Delete.
11254         (reg_or_cint_operand): Delete.
11255         (reg_or_arith_cint_operand): Delete.
11256         (reg_or_add_cint64_operand): Delete.
11257         (reg_or_sub_cint64_operand): Delete.
11258         (reg_or_logical_cint_operand): Delete.
11259         (got_operand): Delete.
11260         (got_no_const_operand): Delete.
11261         (easy_fp_constant): Delete.
11262         (easy_vector_constant): Delete.
11263         (easy_vector_constant_add_self): Delete.
11264         (zero_constant): Delete.
11265         (zero_fp_constant): Delete.
11266         (volatile_mem_operand): Delete.
11267         (offsettable_mem_operand): Delete.
11268         (mem_or_easy_const_operand): Delete.
11269         (add_operand): Delete.
11270         (non_add_cint_operand): Delete.
11271         (logical_operand): Delete.
11272         (non_logical_cint_operand): Delete.
11273         (mask_operand): Delete.
11274         (mask_operand_wrap): Delete.
11275         (mask64_operand): Delete.
11276         (mask64_2_operand): Delete.
11277         (and64_operand): Delete.
11278         (and64_2_operand): Delete.
11279         (and_operand): Delete.
11280         (reg_or_mem_operand): Delete.
11281         (lwa_operand): Delete.
11282         (symbol_ref_operand): Delete.
11283         (call_operand): Delete.
11284         (current_file_function_operand): Delete.
11285         (input_operand): Delete.
11286         (rs6000_nonimmediate_operand): Delete.
11287         (rs6000_tls_symbol_ref): Delete.
11288         (save_world_operation): Delete.
11289         (restore_world_operation): Delete.
11290         (load_multiple_operation): Delete.
11291         (store_multiple_operation): Delete.
11292         (vrsave_operation): Delete.
11293         (mfcr_operation): Delete.
11294         (mtcrf_operation): Delete.
11295         (lmw_operation): Delete.
11296         (stmw_operation): Delete.
11297         (branch_comparison_operator): Delete.
11298         (branch_positive_comparison_operator): Delete.
11299         (scc_comparison_operator): Delete.
11300         (trap_comparison_operator): Delete.
11301         (boolean_operator): Delete.
11302         (boolean_or_operator): Delete.
11303         (min_max_operator): Delete.
11304         * config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Move to here.
11305         (EASY_VECTOR_15): Moved to here.
11306         (EASY_VECTOR_15_ADD_SELF): Move to here.
11307         (PREDICATE_CODES): Delete.
11308         * config/rs6000/rs6000-protos.h: Delete predicate functions.
11309         Declare functions no longer static.
11310         * config/rs6000/predicates.md: New.
11311         * config/rs6000/rs6000.md: Include predicates.md
11312
11313 2005-02-28  Kazu Hirata  <kazu@cs.umass.edu>
11314
11315         * calls.c (emit_call_1): Don't use  REG_ALWAYS_RETURN.
11316         (emit_library_call_value_1): Don't use LCT_ALWAYS_RETURN and
11317         REG_ALWAYS_RETURN.
11318         * cfgrtl.c (need_fake_edge_p): Likewise.
11319         * combine.c (distribute_notes): Likewise.
11320         * emit-rtl.c (try_split): Likewise.
11321         * recog.c (peephole2_opimize): Likewise.
11322         * reg-notes.def (ALWAYS_RETURN): Remove.
11323         * rtl.h (LCT_ALWAYS_RETURN): Remove.
11324         * tree-cfg.c (need_fake_edge_p): Don't use ECF_ALWAYS_RETURN.
11325         * tree.h (ECF_ALWAYS_RETURN): Remove.
11326
11327 2005-02-28  Roger Sayle  <roger@eyesopen.com>
11328
11329         PR middle-end/19874
11330         * tree-ssa.c (tree_ssa_useless_type_conversion_1): A conversion
11331         between different machine modes is never a "useless" conversion.
11332
11333 2005-02-28  Geert Bosch  <bosch@gnat.com>
11334
11335         PR ada/15977
11336         * doc/contrib.texi: List contributors for Ada front end
11337
11338 2005-02-28 Paolo Bonzini <bonzini@gnu.org>
11339
11340         * simplify-rtx.c (simplify_unary_operation_1,
11341         simplify_const_unary_operation): New, extracted from...
11342         (simplify_unary_operation): ... this one.
11343         (simplify_binary_operation_1,
11344         simplify_const_binary_operation): New, extracted from...
11345         (simplify_binary_operation): ... this one.
11346         * rtl.h (simplify_const_unary_operation,
11347         simplify_const_binary_operation): Add prototypes.
11348
11349 2005-02-28  Julian Brown  <julian@codesourcery.com>
11350
11351         * config/elfos.h: Revert my patch from 2005-02-25 since it broke
11352         building libjava and caused PR regression/20228.
11353
11354 2005-02-28  Paolo Bonzini  <bonzini@gnu.org>
11355
11356         PR bootstrap/17383
11357         * Makefile.in (host_subdir): New.
11358         (build_objdir): New.  Replace ../$(build_subdir) with it throughout.
11359         * configure: Regenerate.
11360
11361 2005-02-27  Zack Weinberg  <zack@codesourcery.com>
11362
11363         * config/alpha/t-osf4, config/arm/t-netbsd, config/ia64/t-hpux
11364         * config/pa/t-hpux-shlib (SHLIB_INSTALL): Create the
11365         installation directory first.
11366
11367 2005-02-28  Hans-Peter Nilsson  <hp@axis.com>
11368
11369         PR target/19065.
11370         * config/cris/cris.h (EXTRA_CONSTRAINT_Q): Accept only (mem (reg)),
11371         not including (reg). Do not check for reg being CRIS_PC_REGNUM.
11372         (EXTRA_MEMORY_CONSTRAINT): Define as 'Q'.
11373         * config/cris/cris.md: Tweak comments referring to Q.
11374         ("cmpsi", "cmphi", "cmpqi", "*movsi_internal", "movhi")
11375         ("movstricthi", "movqi", "movstrictqi", "movsf", "addsi3")
11376         ("addhi3", "addqi3", "subsi3", "subhi3", "subqi3")
11377         ("*expanded_andsi", "*expanded_andhi", "*andhi_lowpart", "andqi3")
11378         ("*andqi_lowpart", "iorsi3", "iorhi3", "iorqi3", "uminsi3"):
11379         Insert spaces in constraints to align alternatives vertically for
11380         readability.
11381         ("cmphi"): Ditto.  Add separate alternative for operand 0 "r",
11382         operand 1: "M".
11383
11384 2005-02-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11385
11386         PR rtl-optimization/17728
11387         * pa.md (mulsi3, divsi3, udivsi3, modsi3): Change predicate for
11388         operand 0 from general_operand to move_dest_operand.
11389
11390 2005-02-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11391
11392         * pa/elf.h, pa/som.h (ASM_OUTPUT_EXTERNAL): Use assemble_name_raw
11393         instead of trying to save and restore TREE_SYMBOL_REFERENCED.
11394         * pa/pa64-hpux.h (ASM_OUTPUT_TYPE_DIRECTIVE): Define.
11395         (ASM_OUTPUT_EXTERNAL): Don't save and restore TREE_SYMBOL_REFERENCED.
11396
11397 2005-02-26  Nathanael Nerode  <neroden@gcc.gnu.org>
11398
11399         * configure.ac: Rename cc_for_cross_gnattools to host_cc_for_libada.
11400         * configure: Regenerate.
11401         * libada-mk.in: Remove CC; rename
11402         cc_for_cross_gnattools / cc_set_by_configure to host_cc_for_libada.
11403
11404 2005-02-26  Andrew Pinski  <pinskia@physics.uc.edu>
11405
11406         PR tree-opt/20188
11407         * tree-ssa-alias.c (count_uses_and_derefs): If we have TREE_LIST
11408         for the lhs, also walk over the tree.  Likewise for rhs.
11409
11410 2005-02-26  Zdenek Dvorak  <dvorakz@suse.cz>
11411
11412         * tree-ssa-dom.c (simple_iv_increment_p): New function.
11413         (simplify_rhs_and_lookup_avail_expr, eliminate_redundant_computations):
11414         Do not propagate value of iv before increment over the increment.
11415
11416 2005-02-25  Joseph S. Myers  <joseph@codesourcery.com>
11417
11418         * c-parser.c: New file.
11419         * c-parse.in: Remove.
11420         * Makefile.in (c-parse.o-warn, c-parse.o, c-parse.c, c-parse.y):
11421         Remove.
11422         (c-parser.o): Add dependencies.
11423         (C_AND_OBJC_OBJC, C_OBJS, gcc.srcextra, GTFILES, distclean,
11424         maintainer-clean, TAGS): Update.
11425         * c-config-lang.in (gtfiles): Update.
11426         * gengtype-lex.l: Don't handle "@@".
11427         * stub-objc.c (objc_get_class_ivars, objc_build_throw_stmt,
11428         objc_build_synchronized, objc_begin_try_stmt,
11429         objc_begin_catch_clause, objc_finish_catch_clause,
11430         objc_build_finally_clause, objc_finish_try_stmt): New.
11431         * c-tree.h (struct c_declspecs): Add declspecs_seen_p and
11432         type_seen_p.
11433         (c_parse_init): Update comment.
11434         * c-decl.c (c_init_decl_processing): Update comment.
11435         (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
11436         declspecs_add_scspec, declspecs_add_attrs): Initialize and update
11437         new c_declspecs members.
11438
11439 2005-02-25  Julian Brown  <julian@codesourcery.com>
11440
11441         * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK
11442         from being used for symbols with vague linkage when
11443         HAVE_GAS_COMDAT_GROUP is true.
11444
11445 2005-02-25  Mark Mitchell  <mark@codesourcery.com>
11446
11447         * doc/include/gcc-common.texi (version-GCC): Update to 4.1.
11448
11449 2005-02-25  Steve Ellcey  <sje@cup.hp.com>
11450
11451         PR target/19930
11452         * doc/tm.texi (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Document.
11453         (LIBGCC2_HAS_DF_MODE): New.
11454         (LIBGCC2_HAS_XF_MODE): New.
11455         (LIBGCC2_HAS_TF_MODE): New.
11456         * libgcc2.h (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
11457         (LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
11458         * libgcc2.c (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
11459         (LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
11460         (LIBGCC2_HAS_DF_MODE): New name for HAVE_DFMODE.
11461         * config/ia64/t-ia64 (LIB1ASMFUNCS): Remove __compat
11462         and add _fixtfdi, _fixunstfdi, _floatditf
11463         * lib1funcs.asm: Remove L__compat. Add L_fixtfdi,
11464         L_fixunstfdi, L_floatditf.
11465         * config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE): Define.
11466         (LIBGCC2_HAS_TF_MODE): Define.
11467
11468 2005-02-25  Diego Novillo  <dnovillo@redhat.com>
11469
11470         PR tree-optimization/20204
11471         * tree-into-ssa.c (insert_phi_nodes_for): Do not use
11472         REWRITE_THIS_STMT markers on PHI nodes.
11473         (rewrite_initialize_block): Likewise.
11474
11475 2005-02-25  Mark Mitchell  <mark@codesourcery.com>
11476
11477         * version.c (version_string): Update to 4.1.
11478
11479 2005-02-25  Paolo Carlini  <pcarlini@suse.de>
11480
11481         * doc/extend.texi (5.24 Declaring Attributes of Functions)<noreturn>:
11482         Clarify that the alternative way doesn't work in GNU C++.
11483
11484 2005-02-25  Zdenek Dvorak  <dvorakz@suse.cz>
11485
11486         PR tree-optimization/19937
11487         * tree-ssa-loop-ivopts.c (rewrite_use_compare): Cast the final value
11488         to the type of the induction variable.
11489
11490 2005-02-25  Kaz Kojima  <kkojima@gcc.gnu.org>
11491
11492         PR rtl-optimization/20117
11493         * bb-reorder.c (duplicate_computed_gotos): Don't duplicate
11494         the block including noncopyable insn.
11495
11496 2005-02-24  Kazu Hirata  <kazu@cs.umass.edu>
11497
11498         * cse.c (delete_trivially_dead_insns): Speed up by minimizing
11499         calls to find_reg_note.
11500
11501 2005-02-24  Richard Henderson  <rth@redhat.com>
11502
11503         PR tree-opt/20127
11504         * tree-sra.c (instantiate_element): Copy TREE_THIS_VOLATILE from
11505         the type.
11506
11507 2005-02-24  Fariborz Jahanian <fjahanian@apple.com>
11508
11509         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Check for
11510         vector types if to use base reg for misaligned non-word ld/std.
11511
11512 2005-02-24  Hans-Peter Nilsson  <hp@axis.com>
11513
11514         PR target/14619
11515         * config/cris/cris.c (cris_target_asm_function_prologue): Create
11516         dwarf2 label manually and put it after, not before the prologue.
11517
11518 2005-02-24  David Edelsohn  <edelsohn@gnu.org>
11519
11520         PR target/19019
11521         * reload.c (operands_match_p): Only increment register number for
11522         SCALAR_INT_MODE_P modes in multiple hard registers.
11523
11524         * config/rs6000/rs6000.md (trunctfdf2): Remove register constraints.
11525         Fix formatting.
11526
11527 2005-02-24  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
11528
11529         * ChangeLog.5: Fix log message typo(s).
11530         * ChangeLog.7: Likewise.
11531         * ChangeLog.tree-ssa: Likewise.
11532         * cfgexpand.c: Fix comment typo(s).
11533         * conflict.c: Likewise.
11534         * defaults.h: Likewise.
11535         * dwarf2out.c: Likewise.
11536         * gcse.c: Likewise.
11537         * ggc-page.c: Likewise.
11538         * tree-eh.c: Likewise.
11539         * tree-ssa-dom.c: Likewise.
11540
11541 2005-02-24  Jakub Jelinek  <jakub@redhat.com>
11542
11543         PR target/19019
11544         * mklibgcc.in: Pass -DSHARED when compiling all *_s${objext} objects.
11545         * config/rs6000/darwin-ldouble.c: Only use the .symver directives
11546         if SHARED is defined.
11547
11548         PR target/20196
11549         * config/rs6000/rs6000.md (LTU, GTU sCC splitters): Add earlyclobber,
11550         allow splitting only if operands 0 and 3 don't overlap.
11551
11552 2005-02-24  Richard Henderson  <rth@redhat.com>
11553
11554         PR middle-end/19953
11555         * builtins.c (fold_builtin_complex_mul, fold_builtin_complex_div): New.
11556         (fold_builtin_1): Call them.
11557         * fold-const.c (fold_complex_mult_parts): Split out from ...
11558         (fold_complex_mult): ... here.  Fix typo in both imaginary case.
11559         (fold_complex_div_parts, fold_complex_div): New.
11560         (fold): Use them.
11561         * tree.h (fold_complex_mult_parts, fold_complex_div_parts): Declare.
11562
11563 2005-02-24  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11564
11565         * tree-ssa-ccp.c (visit_assignment): Verify that result of
11566         VIEW_CONVERT_EXPR is_gimple_min_invariant.
11567
11568         * print-tree.c (print_node_brief): Print LABEL_DECL_UID.
11569         (print_node): Likewise.
11570         Print TYPE_SIZES_GIMPLIFIED.
11571
11572 2005-02-24  Hans-Peter Nilsson  <hp@axis.com>
11573
11574         * config/cris/cris.md ("umulhisi3", "umulqihi3", "mulsi3")
11575         ("mulqihi3", "mulhisi3", "mulsidi3", "umulsidi3"): Mark input
11576         operands as commutative in constraints.
11577
11578 2005-02-24  Diego Novillo  <dnovillo@redhat.com>
11579
11580         * tree-into-ssa.c: Re-organize internal functions.
11581
11582 2005-02-24  Richard Henderson  <rth@redhat.com>
11583
11584         PR middle-end/18902
11585         * c-opts.c (c_common_post_options): Set flag_complex_method to 2
11586         for c99.
11587         * common.opt (fcx-limited-range): New.
11588         * opts.c (set_fast_math_flags): Set flag_cx_limited_range.
11589         * toplev.c (flag_complex_method): Initialize to 1.
11590         (process_options): Set flag_complex_method to 0 if
11591         flag_cx_limited_range.
11592         * doc/invoke.texi (-fcx-limited-range): New.
11593
11594 2005-02-24  Kazu Hirata  <kazu@cs.umass.edu>
11595
11596         * cse.c (delete_trivially_dead_insns): Speed up by using
11597         NEXT_INSN and PREV_INSN directly instead of next_real_insn and
11598         prev_real_insn.
11599
11600 2005-02-24  Andrea Tarani  <andrea.tarani@gilbarco.com>
11601
11602         * config/m68k/m68k.c (m68k_save_reg): Also save A5 for non-leaf
11603         functions when -mid-shared-library is being used.
11604
11605 2005-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
11606
11607         * doc/tm.texi (LINK_LIBGCC_SPECIAL): Remove.
11608         (LINK_LIBGCC_SPECIAL_1): Don't mention it.
11609         * gcc.c: Don't check for LINK_LIBGCC_SPECIAL.
11610         * system.h: Poison LINK_LIBGCC_SPECIAL.
11611
11612 2005-02-23  James E Wilson  <wilson@specifixinc.com>
11613
11614         * gengtype.c (note_insn_name): Make 1 element larger.
11615
11616 2005-02-23  Roger Sayle  <roger@eyesopen.com>
11617
11618         PR target/20018
11619         PR rtl-optimization/20097
11620         * simplify-rtx.c (simplify_relational_operation_1): Avoid creating
11621         BImode SUBREGs of SImode registers which confuse the ia64 backend.
11622
11623 2005-02-23  David Edelsohn  <edelsohn@gnu.org>
11624
11625         * t-aix43 (SHLIB_INSTALL): Create directory for shared library.
11626         * t-aix52 (SHLIB_INSTALL): Same.
11627
11628 2005-02-23  Kazu Hirata  <kazu@cs.umass.edu>
11629
11630         * genpreds.c: Update copyright.
11631
11632 2005-02-23  Michael Beach  <michaelb@ieee.org>
11633
11634         PR target/20159
11635         * config/sparc/t-elf (startup files): Assemble with CPP.
11636
11637 2005-02-23  Paolo Bonzini  <bonzini@gnu.org>
11638
11639         * genpreds.c (mark_mode_tests): Handle non-VOIDmode match_operands.
11640         (write_predicate_expr): Likewise.
11641
11642 2005-02-22  Diego Novillo  <dnovillo@redhat.com>
11643
11644         PR tree-optimization/20100
11645         PR tree-optimization/20115
11646         * tree-optimize.c (init_tree_optimization_passes): Remove
11647         pass_maybe_create_global_var.
11648         * tree-pass.h (pass_maybe_create_global_var): Remove.
11649         * tree-ssa-alias.c (aliases_computed_p): Declare.
11650         (struct alias_info): Add field NUM_PURE_CONST_CALLS_FOUND.
11651         (count_calls_and_maybe_create_global_var): Remove.
11652         (pass_maybe_create_global_var): Remove.
11653         (init_alias_info): Do not declare aliases_computed_p.
11654         (maybe_create_global_var): If the function contains no
11655         call-clobbered variables and a mix of pure/const and regular
11656         function calls, create .GLOBAL_VAR.
11657         Mark all call-clobbered variables for renaming.
11658         (merge_pointed_to_info): Update comment.
11659         (add_pointed_to_var): Likewise.
11660         (is_escape_site): Likewise.
11661         Accept struct alias_info * instead of size_t *.
11662         Update all users.
11663         Update AI->NUM_CALLS_FOUND and AI->NUM_PURE_CONST_CALLS_FOUND
11664         as necessary.
11665         * tree-ssa-operands.c (get_call_expr_operands): If
11666         ALIASES_COMPUTED_P is false, do not add call-clobbering
11667         operands.
11668         * tree-ssa.c (init_tree_ssa): Set ALIASES_COMPUTED_P to false.
11669         (delete_tree_ssa): Likewise.
11670
11671 2005-02-22  James E Wilson  <wilson@specifixinc.com>
11672
11673         * toplev.c (backend_init): Don't call init_adjust_machine_modes here.
11674         (do_compile): Do call it here.
11675
11676 2005-02-22  Kazu Hirata  <kazu@cs.umass.edu>
11677
11678         PR rtl-optimization/20017.
11679         * passes.c (rest_of_handle_combine, rest_of_handle_cse,
11680         rest_of_handle_cse2, rest_of_handle_gcse): Call
11681         delete_dead_jumptables immediately before calling cleanup_cfg.
11682
11683 2005-02-22  Devang Patel  <dpatel@apple.com>
11684
11685         PR 19952
11686         * tree-if-conv.c (process_phi_nodes): Use bsi_after_labels and skip
11687         all labels
11688
11689 2005-02-22  David Edelsohn  <edelsohn@gnu.org>
11690
11691         * config/rs6000/aix.h (WINT_TYPE): Define.
11692
11693 2005-02-22  Stan Shebs  <shebs@apple.com>
11694
11695         * config/rs6000/rs6000.c (rs6000_override_options): Default to
11696         natural alignment for 64-bit Darwin.
11697         (rs6000_parse_alignment_option): Warn about uses of -malign-power
11698         on 64-bit Darwin.
11699         * doc/invoke.texi: Document this.
11700
11701 2005-02-22  DJ Delorie  <dj@redhat.com>
11702
11703         * c-common.c (c_common_type_for_mode): Pass the mode's precision
11704         to make_[un]signed_type, not the mode itself.
11705
11706 2005-02-22  Kazu Hirata  <kazu@cs.umass.edu>
11707
11708         * cfg.c (cached_make_edge): Call make_edge if edge cache is
11709         not available.  Use tail calls wherever possible.
11710         (make_edge): Call unchecked_make_edge to create an edge.
11711
11712         * tree-outof-ssa.c (SSANORM_USE_COALESCE_LIST): Remove.
11713         (coalesce_ssa_name): Don't check for
11714         SSANORM_USE_COALESCE_LIST.
11715         (rewrite_out_of_ssa): Don't use SSANORM_USE_COALESCE_LIST.
11716
11717 2005-02-22  Diego Novillo  <dnovillo@redhat.com>
11718
11719         * tree-into-ssa.c (rewrite_blocks): Move debug dumps from ...
11720         (rewrite_into_ssa): ... here.
11721
11722 2005-02-21  Alexandre Oliva  <aoliva@redhat.com>
11723
11724         PR tree-optimization/19786
11725         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add one
11726         tag to another's may-alias bitmap when adding to the other's list.
11727
11728 2005-02-21  DJ Delorie  <dj@redhat.com>
11729
11730         * tree-ssa-loop-ivopts.c (computation_cost): Start register
11731         numbering at LAST_VIRTUAL_REGISTER+1 to avoid possibly using hard
11732         registers in unsupported ways.
11733         * expmed.c (init_expmed): Likewise.
11734
11735 2005-02-21  Stan Cox  <scox@redhat.com>
11736
11737         * config/iq2000/iq2000.h (DWARF_FRAME_RETURN_COLUMN): Change to 31.
11738
11739 2005-02-21  Kazu Hirata  <kazu@cs.umass.edu>
11740
11741         * tree-cfg.c (fold_cond_expr_cond): New.
11742         (make_edges): Call fold_cond_expr_cond.
11743         (find_taken_edge): Accept nothing but INTEGER_CST.
11744         (find_taken_edge_cond_expr): Reject INTEGER_CST other than 0
11745         and 1.
11746         (find_taken_edge_switch_expr): Remove a check for INTEGER_CST.
11747
11748         * flow.c (delete_dead_jumptables): Speed up by scanning insns
11749         that do not belong to any basic block.
11750
11751 2005-02-21  Jeff Law  <law@redhat.com>
11752
11753         * cfganal.c (find_unreachable_blocks): Manually CSE load of
11754         e->dest.
11755
11756 2005-02-21  Kazu Hirata  <kazu@cs.umass.edu>
11757
11758         * tree-outof-ssa.c (SSANORM_REMOVE_ALL_PHIS): Remove.
11759         (SSANORM_COALESCE_PARTITIONS, SSANORM_USE_COALESCE_LIST):
11760         Adjust their definitions.
11761         (remove_ssa_form): Don't check for SSANORM_REMOVE_ALL_PHIS.
11762         (rewrite_out_of_ssa): Don't use SSANORM_REMOVE_ALL_PHIS.
11763
11764         * c-objc-common.h, c-pretty-print.c, cgraphunit.c, except.c,
11765         genautomata.c, langhooks.c, langhooks.h, system.h,
11766         config/arm/lib1funcs.asm: Update copyright.
11767
11768 2005-02-21  Ulrich Weigand  <uweigand@de.ibm.com>
11769
11770         * dbxout.c (dbxout_function_end): Emit Lscope label always.
11771
11772 2005-02-21  Richard Guenther  <rguenth@gcc.gnu.org>
11773
11774         PR bootstrap/13770
11775         * doc/install.texi: Document --with-gc.
11776
11777 2005-02-21  Paolo Bonzini  <bonzini@gnu.org>
11778
11779         * simplify-rtx.c (simplify_unary_operation): Add a missing
11780         "break" statement.
11781
11782 2005-02-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
11783
11784         PR tree-optimization/18663
11785         * tree-ssa-dom.c (extract_range_from_cond): Return 0
11786         if the type has variable bounds.
11787
11788 2005-02-20  Kazu Hirata  <kazu@cs.umass.edu>
11789
11790         * gcse.c: Remove an obsolete comment.
11791
11792         * cse.c (init_cse_reg_info): Use xmalloc instead of xrealloc.
11793
11794 2005-02-20  Hans-Peter Nilsson  <hp@axis.com>
11795
11796         * doc/extend.texi (Function Attributes) <Attribute const>: The
11797         attribute "pure" is below this text, not above.
11798
11799 2005-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11800
11801         * pa.c (pa_assemble_integer, get_plabel): Small cleanups.
11802         (pa_asm_output_mi_thunk): Use asm_output_insn instead of fprintf.
11803         * som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Small cleanup.
11804
11805 2005-02-20  Zack Weinberg  <zack@codesourcery.com>
11806
11807         PR 18785
11808         * langhooks.h (struct lang_hooks): Add to_target_charset.
11809         * langhooks.c (lhd_to_target_charset): New function.
11810         * langhooks-def.h: Declare lhd_to_target_charset.
11811         (LANG_HOOKS_TO_TARGET_CHARSET): New macro.
11812         (LANG_HOOKS_INITIALIZER): Update.
11813         * c-common.c (c_common_to_target_charset): New function.
11814         * c-common.h: Declare it.
11815         * c-objc-common.h (LANG_HOOKS_TO_TARGET_CHARSET): Set to
11816         c_common_to_target_charset.
11817
11818         * defaults.c (TARGET_BELL, TARGET_BS, TARGET_CR, TARGET_DIGIT0)
11819         (TARGET_ESC, TARGET_FF, TARGET_NEWLINE, TARGET_TAB, TARGET_VT):
11820         Delete definitions.
11821         * system.h: Poison them.
11822         * doc/tm.texi: Don't discuss them.
11823         * builtins.c (fold_builtin_isdigit): Use lang_hooks.to_target_charset.
11824         * c-pretty-print.c (pp_c_integer_constant): Don't use pp_c_char.
11825         (pp_c_char): Do not attempt to generate letter escapes for
11826         newline, tab, etc.
11827         * config/arm/arm.c (output_ascii_pseudo_op): Likewise.
11828         * config/mips/mips.c (mips_output_ascii): Likewise.
11829
11830 2005-02-20  Dorit Naishlos  <dorit@il.ibm.com>
11831
11832         PR tree-optimization/19951
11833         * tree-vect-analyze.c (vect_analyze_loop_form): Check if loop exit edge
11834         is abnormal.
11835
11836 2005-02-19  Steven Bosscher  <stevenb@suse.de>
11837
11838         PR middle-end/19698
11839         * function.h (struct function): New field `max_loop_depth'.
11840         * cfgloop.c (establish_preds): Update maximum loop depth seen so far.
11841         (flow_loops_find): Reset the max loop depth count before finding loops.
11842         * flow.c (MAX_LIVENESS_ROUNDS): New constant.
11843         (update_life_info_in_dirty_blocks): Remove 2002-05-28 workaround.
11844         (calculate_global_regs_live): Make sure the loop will terminate
11845         when the initial sets are not empty.
11846
11847 2005-02-19  Zack Weinberg  <zack@codesourcery.com>
11848
11849         * mklibgcc.in: If libgcc_eh.a would be empty, put a dummy
11850         object inside.
11851         * config/ia64/hpux.h: Don't define LIBGCC_SPEC.
11852
11853 2005-02-19  Richard Sandiford  <rsandifo@redhat.com>
11854
11855         PR other/19525
11856         * doc/invoke.texi: Remove documentation of %M spec.
11857         * gcc.c: Likewise.
11858         (init_spec): Remove %M suffix from -lgcc_s.
11859         (do_spec_1): Remove 'M' case.
11860         * mklibgcc.in: Remove SHLIB_MULTILIB handling.  Expect SHLIB_LINK
11861         to put shared libraries in the multilib directory.  Remove the
11862         shlib_so_soname substitution variable.  Don't add a multilib encoding
11863         to shlib_base_name.  Set shlib_slibdir_qual to the full pathname
11864         reported by -print-multi-os-directory.  Pass @multilib_dir@ to
11865         SHLIB_INSTALL as well as SHLIB_LINK.
11866         * config/t-slibgcc-elf-ver (SHLIB_SONAME): Use @shlib_base_name@.
11867         (SHLIB_NAME): Delete.
11868         (SHLIB_DIR): New macro.
11869         (SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_SOLINK) in $(SHLIB_DIR).
11870         (SHLIB_INSTALL): Adjust accordingly.
11871         * config/t-slibgcc-darwin: As for t-slibgcc-elf-ver.
11872         * config/t-slibgcc-sld: Likewise.
11873         * config/t-libunwind-elf (SHLIBUNWIND_NAME): Delete.
11874         (SHLIBUNWIND_SONAME): Use @shlib_base_name@.
11875         (SHLIBUNWIND_LINK): Put $(SHLIBUNWIND_SONAME) and $(SHLIB_SOLINK)
11876         in $(SHLIB_DIR).
11877         (SHLIBUNWIND_INSTALL): Adjust accordingly.
11878         * config/i386/t-nwld (SHLIB_SONAME): Delete.
11879         (SHLIB_LINK, SHLIB_INSTALL): Use SHLIB_NAME instead of SHLIB_SONAME.
11880         Use @shlib_base_name@ instead of @shlib_so_name@.
11881         * config/ia64/t-hpux (SHLIB_LINK): Put @shlib_base_name@.so.0
11882         and @shlib_base_name@.so in @multilib_dir@.
11883         (SHLIB_INSTALL): Adjust accordingly.  Add @shlib_slibdir_qual@
11884         to the install path.
11885         * config/mips/t-slibgcc-irix: As for t-slibgcc-elf-ver.
11886         (SHLIB_LINK): Remove previous workaround.
11887         * config/pa/t-hpux-shlib (SHLIB_DIR, SHLIB_SLIBDIR_QUAL): New macros.
11888         (SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_NAME) in $(SHLIB_DIR).
11889         (SHLIB_INSTALL): Adjust accordingly.  Add $(SHLIB_SLIBDIR_QUAL) to
11890         the install path.
11891         * config/rs6000/t-aix43 (SHLIB_LINK): Put @shlib_base_name@.a in
11892         @multilib_dir@.  Use @multilib_dir@ to check for threading libraries.
11893         (SHLIB_INSTALL): Adjust accordingly.
11894         (SHLIB_LIBS): Use @multilib_dir@ to check for threading libraries.
11895         * config/rs6000/t-aix52: As for config/rs6000/t-aix43.
11896         * config/sh/t-linux (SHLIB_LINK, SHLIB_INSTALL): As for
11897         config/t-slibgcc-elf-ver.
11898
11899 2005-02-19  Zdenek Dvorak  <dvorakz@suse.cz>
11900             Jakub Jelinek  <jakub@redhat.com>
11901
11902         PR tree-optimization/19828
11903         * tree-ssa-loop-im.c: Add a TODO comment.
11904         (movement_possibility): Return MOVE_PRESERVE_EXECUTION for calls
11905         without side-effects.
11906
11907 2005-02-18  James A. Morrison  <phython@gcc.gnu.org>
11908
11909         * tree-ssa-ccp.c (widen_bitfield): Pass type to build_int_cst and don't
11910         call fold_convert.
11911
11912 2005-02-18  James E. Wilson  <wilson@specifixinc.com>
11913
11914         * doc/invoke.texi (IA-64 Options): Delete -mb-step.
11915         * config/ia64/ia64.c (last_group, group_idx): Delete variables.
11916         (errata_find_address_regs, errata_emit_nops, fixup_errata): Delete
11917         functions.
11918         (ia64_reorg): Delete fixup_errata call.
11919         * config/ia64/ia64.h (MASK_B_STEP, TARGET_B_STEP): Delete.
11920         (TARGET_SWITCHES): Delete -mb-step entry.
11921
11922 2005-02-19  Jakub Jelinek  <jakub@redhat.com>
11923
11924         PR c/20043
11925         * c-typeck.c (composite_type): Handle quals in transparent unions.
11926         (type_lists_compatible_p): Likewise.
11927
11928 2005-02-18  Stan Shebs  <shebs@apple.com>
11929
11930         * config/darwin.c (machopic_select_rtx_section): Don't put relocatable
11931         expressions in the .literal8 section.
11932
11933 2005-02-18  Geoffrey Keating  <geoffk@apple.com>
11934
11935         * config/rs6000/darwin-tramp.asm: Remove stray 'APPLE LOCAL' marker.
11936
11937 2005-02-18  Roger Sayle  <roger@eyesopen.com>
11938
11939         * fold-const.c (constant_boolean_node): Always create values of the
11940         specified type, don't bother calling truthvalue_conversion.
11941
11942 2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
11943
11944         * except.c (output_function_exception_table): Call
11945         assemble_external_libcall (eh_personality_libfunc).
11946
11947 2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
11948
11949         PR target/19886
11950         * config/ia64/ia64.h (struct machine_function): Add state_num.
11951         * config/ia64/ia64.c (process_epilogue,
11952         process_for_unwind_directive): Use new unwind state numbers each
11953         time rather than state 1.
11954
11955 2005-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
11956
11957         PR target/20054
11958         * config/s390/s390.md ("*llgt_sidi", "*llgt_sidi_split"): Move to
11959         before the "*llgt_didi" pattern.
11960
11961 2005-02-18  Jason Merrill  <jason@redhat.com>
11962
11963         * gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Revert again.
11964
11965 2005-02-18  Richard Earnshaw  <rearnsha@arm.com>
11966
11967         * arm/lib1funcs.asm (FUNC_ALIAS): New macro.
11968         (div0): Use it in place of ARM_FUNC_ALIAS.
11969         (lshrdi3, ashrdi3, ashlrdi3): Likewise.
11970
11971 2005-02-18  Andrew Pinski  <pinskia@physics.uc.edu>
11972
11973         PR middle-end/20030
11974         * fold-const.c (fold_indirect_ref_1): Use the correct index for zero
11975         access, the lower bound of the array type if it exists.
11976
11977 2005-02-18  Alexandre Oliva  <aoliva@redhat.com>
11978
11979         PR c++/20008
11980         * stmt.c (expand_case): Don't assume cleanup_tree_cfg will remove
11981         cases that are out-of-range for the index type.
11982
11983 2005-02-18  James A. Morrison  <phython@gcc.gnu.org>
11984
11985         * stmt.c (emit_case_bit_tests): Call fold_convert instead of convert.
11986         (estimate_case_costs): Don't call convert.
11987         * expmed.c (expand_shift): Likewise.
11988         (make_tree): Call fold_convert instead of convert.
11989
11990 2005-02-18  Jakub Jelinek  <jakub@redhat.com>
11991
11992         PR c++/19813
11993         * emit-rtl.c (set_mem_attributes_minus_bitpos): Add assertion
11994         that ref to be marked MEM_READONLY_P doesn't have base that needs
11995         constructing.
11996
11997 2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
11998
11999         * genautomata.c (output_get_cpu_unit_code_func,
12000         output_cpu_unit_reservation_p): Don't generate old-style function
12001         definitions.
12002
12003 2005-02-18  Jakub Jelinek  <jakub@redhat.com>
12004
12005         PR c++/20023
12006         PR tree-optimization/20009
12007         * convert.c (convert_to_integer): Revert 2005-02-16 change.
12008
12009         PR tree-optimization/18947
12010         * cgraphunit.c (cgraph_finalize_function): When redefining an extern
12011         inline, remove all nodes that are inlined into the extern inline
12012         being redefined.
12013
12014 2005-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12015
12016         * bt-load.c, cfgloop.c, convert.c, dominance.c, global.c,
12017         loop-invariant.c, stmt.c, tree-ssa-forwprop.c,
12018         tree-ssa-live.c, tree-ssanames.c, tree-vn.c,
12019         config/host-linux.c, config/arm/fpa.md, config/avr/avr.h:
12020         Update copyright.
12021
12022 2005-02-17  Roger Sayle  <roger@eyesopen.com>
12023
12024         PR tree-optimization/19917
12025         * tree-eh.c (tree_could_trap_p): Consider calls to weak functions
12026         to be potentially trapping.
12027
12028 2005-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12029
12030         * libgcc2.c, tree-vect-analyze.c: Fix comment typos.
12031
12032 2005-02-17  Andreas Krebbel  <krebbel1@de.ibm.com>
12033
12034         * builtins.c (expand_builtin_return_addr): Remove tem parameter.
12035         tem becomes a local variable which is set to the value of the
12036         back end defined INITIAL_FRAME_ADDRESS macro.
12037         (expand_builtin_frame_address): Omit the base parameter to
12038         expand_builtin_return_addr.
12039         (expand_builtin_profile_func): Likewise.
12040         * config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Define new macro.
12041         (DYNAMIC_CHAIN_ADDRESS): Remove the case for the initial frame.
12042         * doc/tm.texi: Documentation for INITIAL_FRAME_ADDRESS_RTX added.
12043
12044 2005-02-17  Jakub Jelinek  <jakub@redhat.com>
12045
12046         * config/s390/s390.c (s390_alloc_pool, s390_free_pool,
12047         s390_chunkify_start): Use BITMAP_ALLOC and BITMAP_FREE.
12048         * config/frv/frv.c (frv_function_epilogue): Likewise.
12049
12050 2005-02-17  Daniel Berlin  <dberlin@dberlin.org>
12051
12052         * lambda-code (perfect_nestify): Remove mark/unmark
12053         for rewriting hack.
12054         * tree-loop-linear.c (linear_transform_loops): Add
12055         rewrite_into_ssa call so that ssa is correct for
12056         rewriting into loop closed.
12057
12058 2005-02-17  Nathan Sidwell  <nathan@codesourcery.com>
12059
12060         * bitmap.h (BITMAP_XMALLOC, BITMAP_XFREE): Remove.
12061         * bb-reorder.c (duplicate_computed_gotos): Use BITMAP_ALLOC and
12062         BITMAP_FREE.
12063         * bt-load.c (btr_def_live_range, combine_btr_defs,
12064         migrate_btr_def, migrate_btr_defs): Likewise.
12065         * cfgcleanup.c (thread_jump): Likewise.
12066         * cfgloop.c (get_loop_body_in_bfs_order): Likewise.
12067         * df.c (df_insn_table_realloc, df_bitmaps_alloc, df_bitmaps_free,
12068         df_alloc, df_free, df_du_chain_create, df_bb_rd_local_compute,
12069         df_rd_local_compute, df_reg_info_compute): Likewise.
12070         * dominance.c (init_dom_info, free_dom_info): Likewise.
12071         * flow.c (init_propagate_block_info,
12072         free_propagate_block_info): Likewise.
12073         * gcse.c (alloc_gcse_mem, free_gcse_mem): Likewise.
12074         * global.c (allocate_bb_info, free_bb_info, calculate_reg_pav,
12075         modify_reg_pav): Likewise.
12076         * loop-invariant.c (find_defs, find_invariant_insn,
12077         find_invariants, free_inv_motion_data): Likewise.
12078         * predict.c (tree_predict_by_opcode,
12079         estimate_bb_frequencies): Likewise.
12080         * stmt.c (expand_case): Likewise.
12081         * tree-cfg.c (tree_duplicate_sese_region): Likewise.
12082         * tree-dfa.c (mark_new_vars_to_rename): Likewise.
12083         * tree-if-conv.c (get_loop_body_in_if_conv_order): Likewise.
12084         * tree-into-ssa.c (insert_phi_nodes_for, def_blocks_free,
12085         get_def_blocks_for, mark_def_site_blocks, rewrite_into_ssa,
12086         rewrite_ssa_into_ssa): Likewise.
12087         * tree-optimize.c (tree_rest_of_compilation): Likewise.
12088         * tree-outof-ssa.c (new_temp_expr_table, free_temp_expr_table,
12089         analyze_edges_for_bb, perform_edge_inserts): Likewise.
12090         * tree-scalar-evolution.c (scev_initialize, scev_finalize): Likewise.
12091         * tree-sra.c (tree_sra): Likewise.
12092         * tree-ssa-alias.c (init_alias_info, delete_alias_info): Likewise.
12093         * tree-ssa-ccp.c (ccp_fold_builtin): Likewise.
12094         * tree-ssa-dce.c (tree_dce_init, tree_dce_done): Likewise.
12095         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
12096         * tree-ssa-dse.c (tree_ssa_dse): Likewise.
12097         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_var):
12098         Likewise.
12099         * tree-ssa-live.c (new_tree_live_info, delete_tree_live_info,
12100         calculate_live_on_entry, calculate_live_on_exit,
12101         build_tree_conflict_graph): Likewise.
12102         * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize_init, record_use,
12103         record_important_candidates, set_use_iv_cost, find_depends,
12104         determine_use_iv_costs, iv_ca_new, iv_ca_free, free_loop_data,
12105         tree_ssa_iv_optimize_finalize): Likewise.
12106         * tree-ssa-loop-manip.c (add_exit_phis_var, get_loops_exit,
12107         find_uses_to_rename_use, rewrite_into_loop_closed_ssa,
12108         tree_duplicate_loop_to_header_edge): Likewise.
12109         * tree-ssa-pre.c (init_pre, fini_pre): Likewise.
12110         * tree-ssa.c (verify_flow_insensitive_alias_info,
12111         verify_name_tags, verify_ssa, init_tree_ssa,
12112         delete_tree_ssa): Likewise.
12113         * tree-ssanames.c (marked_ssa_names, init_ssanames,
12114         fini_ssanames): Likewise.
12115         * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Likewise.
12116
12117 2005-02-17  Ralf Corsepius  <ralf.corsepius@rtems.org>
12118
12119         * config/rs6000/t-rtems: Completely reworked.
12120
12121 2005-02-17  Ira Rosen  <irar@il.ibm.com>
12122
12123         * tree-data-ref.c (array_base_name_differ_p): Remove gcc_assert.
12124
12125 2005-02-17  Ira Rosen  <irar@il.ibm.com>
12126
12127         * tree-vect-analyze.c (vect_analyze_pointer_ref_access): Use
12128         POINTER_TYPE_P when checking that type is a pointer.
12129         (vect_get_memtag): Remove.
12130         (vect_address_analysis): Use POINTER_TYPE_P. Call
12131         vect_object_analysis with dummy parameter for memtag.
12132         (vect_object_analysis): Extract memtag (functionality that
12133         used to be in vect_get_memtag and moved here). Fix printings.
12134         (vect_analyze_data_refs): Fix comment. Call vect_object_analysis
12135         with correct parameters. Remove call to vect_get_memtag.
12136
12137 2005-02-17  Dorit Naishlos  <dorit@il.ibm.com>
12138
12139         * Makefile.in (tree-vect-analyze.o, tree-vect-transform.o): New.
12140         (tree-vectorizer.o): Added missing dependencies.
12141
12142         * tree-vectorizer.h (vect_dump, vect_verbosity_level): Added extern
12143         decleration.
12144         (slpeel_tree_peel_loop_to_edge): Function externalized (had a static
12145         declaration in tree-vectorizer.c, now has an extern declaration in
12146         tree-vectorizer.h).
12147         (slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
12148         slpeel_verify_cfg_after_peeling, vect_strip_conversion,
12149         get_vectype_for_scalar_type, vect_is_simple_use,
12150         vect_is_simple_iv_evolution, vect_can_force_dr_alignment_p,
12151         vect_supportable_dr_alignment, new_loop_vec_info, destroy_loop_vec_info,
12152         new_stmt_vec_info, vect_analyze_loop, vectorizable_load,
12153         vectorizable_store, vectorizable_operation, vectorizable_assignment,
12154         vect_transform_loop, vect_print_dump_info, vect_set_verbosity_level,
12155         find_loop_location): Likewise.
12156
12157         * tree-vectorizer.c (langhooks.h): #include removed.
12158         (slpeel_tree_peel_loop_to_edge): Function externalized. Declaration
12159         moved to tree-vectorized.h.
12160         (slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
12161         slpeel_verify_cfg_after_peeling, vect_strip_conversion,
12162         get_vectype_for_scalar_type, vect_is_simple_use,
12163         vect_is_simple_iv_evolution, vect_can_force_dr_alignment_p,
12164         vect_supportable_dr_alignment, new_loop_vec_info,
12165         destroy_loop_vec_info, new_stmt_vec_info, vect_print_dump_info,
12166         vect_set_verbosity_level, find_loop_location): Likewise.
12167
12168         (vect_analyze_loop): Function externalized. Declaration moved to
12169         tree-vectorized.h. Function definition moved to tree-vect-analyze.c.
12170         (vect_analyze_loop_form): Moved to tree-vect-analyze.c.
12171         (vect_mark_stmts_to_be_vectorized, vect_analyze_scalar_cycles,
12172         vect_analyze_data_ref_accesses, vect_analyze_data_ref_dependences,
12173         vect_analyze_data_refs_alignment, vect_compute_data_refs_alignment,
12174         vect_enhance_data_refs_alignment, vect_analyze_operations,
12175         exist_non_indexing_operands_for_use_p, vect_mark_relevant,
12176         vect_stmt_relevant_p, vect_get_loop_niters,
12177         vect_analyze_data_ref_dependence, vect_compute_data_ref_alignment,
12178         vect_analyze_data_ref_access, vect_analyze_pointer_ref_access,
12179         vect_can_advance_ivs_p, vect_get_ptr_offset, vect_analyze_offset_expr,
12180         vect_base_addr_differ_p, vect_object_analysis, vect_address_analysis,
12181         vect_get_memtag): Likewise.
12182
12183         (vectorizable_load): Function externalized. Declaration moved to
12184         tree-vectorized.h. Function definition moved to tree-vect-transform.c.
12185         (vectorizable_store, vectorizable_operation, vectorizable_assignment,
12186         vect_transform_loop): Likewise.
12187         (vect_transform_stmt): Moved to tree-vect-transform.c.
12188         (vect_align_data_ref, vect_create_destination_var,
12189         vect_create_data_ref_ptr, vect_create_index_for_vector_ref,
12190         vect_create_addr_base_for_vector_ref, vect_get_new_vect_var,
12191         vect_get_vec_def_for_operand, vect_init_vector,
12192         vect_finish_stmt_generation, vect_generate_tmps_on_preheader,
12193         vect_build_loop_niters, vect_update_ivs_after_vectorizer,
12194         vect_gen_niters_for_prolog_loop, vect_update_inits_of_dr,
12195         vect_update_inits_of_drs, vect_do_peeling_for_alignment,
12196         vect_do_peeling_for_loop_bound): Likewise.
12197
12198         * tree-vect-analyze.c: New file.
12199         * tree-vect-transform.c: New file.
12200
12201 2005-02-17  Jason Merrill  <jason@redhat.com>
12202
12203         PR mudflap/19319, c++/19317
12204         * gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Make return
12205         slot explicit.
12206
12207 2005-02-17  Gerald Pfeifer  <gerald@pfeifer.com>
12208
12209         * doc/install.texi (Specific): Update link for Darwin-specific
12210         tool binary site.
12211
12212 2005-02-16  James A. Morrison  <phython@gcc.gnu.org>
12213
12214         * fold-const.c (invert_truthvalue): <INTEGER_CST>: Call
12215         constant_boolean_node.
12216
12217 2005-02-16  David Edelsohn  <edelsohn@gnu.org>
12218
12219         PR target/19019
12220         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
12221         * config/rs6000/t-aix52 (SHLIB_MAPFILES): Same.
12222
12223 2005-02-16  Richard Henderson  <rth@redhat.com>
12224
12225         PR 19920
12226         * libgcc2.c (WORD_SIZE): Remove all definitions; replace uses
12227         with W_TYPE_SIZE.
12228         (HIGH_WORD_COEFF, HIGH_HALFWORD_COEFF): Remove all definitions;
12229         replace uses with Wtype_MAXp1_F.
12230         (L_fixunstfdi, L_fixtfdi, L_floatditf, L_fixunsxfdi, L_fixxfdi,
12231         L_floatdixf, L_fixunsxfsi, L_fixunsdfdi, L_floatdidf, L_fixunsdfsi,
12232         L_powidf2, L_powixf2, L_powitf2, L_muldc3, L_divdc3, L_mulxc3,
12233         L_divxc3, L_multc3, L_divtc3): Protect with HAVE_DFMODE, HAVE_XFMODE,
12234         and HAVE_TFMODE as appropriate.
12235         (__fixunssfDI): Provide an implementation that doesn't need DFmode.
12236         (__floatdisf): Likewise.
12237         * libgcc2.h (LIBGCC2_DOUBLE_TYPE_SIZE): New.
12238         (HAVE_DFMODE, HAVE_XFMODE, HAVE_TFMODE): New.
12239         (Wtype_MAXp1_F): New.
12240         (DFtype, DCtype, __fixdfdi, __floatdidf, __fixunsdfSI, __fixunsdfDI,
12241         __powidf2, __divdc3, __muldc3): Protect with HAVE_DFMODE.
12242
12243 2005-02-16  Richard Earnshaw  <rearnsha@arm.com>
12244
12245         * PR target/19162
12246         * arm.c (arm_apply_result_size): New function.
12247         * arm.h (APPLY_RESULT_SIZE): Define.
12248         * arm-protos.h (arm_apply_result_size): Add prototype.
12249         * arm.md (RO_REGNUM, FPA_F0_REGNUM, FPA_F7_REGNUM): New constants.
12250         (movxf): New expand.
12251         (ldmsi_postinc4_thumb, stmsi_postinc4_thumb): New patterns for Thumb.
12252         (call_value_symbol): Remove predicate for operand 0.
12253         (call_value_insn, sibcall_value, sibcall_value_insn): Likewise.
12254         (untyped_call): Rework to correclty return values for any type.
12255         (untyped_return): New expand.
12256         * fpa.md (movxf_fpa): Simplify and use sfm/lfm when appropriate.
12257
12258 2005-02-16  Stan Shebs  <shebs@apple.com>
12259
12260         * config.gcc (powerpc-*-darwin*): Use fragment for Darwin 8 or later.
12261         * config/rs6000/t-darwin8: New, for 64-bit multilib.
12262
12263 2005-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
12264
12265         * doc/install.texi (sparc-sun-solaris2*): Document required GMP
12266         configure settings on Solaris 7 and later.
12267
12268 2005-02-16  Diego Novillo  <dnovillo@redhat.com>
12269
12270         PR tree-optimization/19865
12271         * tree-optimize.c (init_tree_optimization_passes): Run
12272         pass_may_alias after pass_sra.
12273
12274 2005-02-16  Richard Henderson  <rth@redhat.com>
12275             Stuart Hastings  <stuart@apple.com>
12276
12277         PR debug/19521
12278         * dbxout.c (dbxout_function_end): Take decl parameter; update callers.
12279         Do nothing if debug info suppressed for this function.
12280         (dbxout_begin_function): Early exit if debug info suppressed for
12281         this function.
12282
12283 2005-02-16  Kazu Hirata  <kazu@cs.umass.edu>
12284
12285         PR target/20007
12286         * config/ip2k/ip2k.c (ip2k_reorg): Adjust calls to
12287         find_basic_blocks.
12288         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
12289
12290         PR tree-optimization/19967
12291         * builtins.c (expand_builtin_strstr, expand_builtin_strpbrk,
12292         expand_builtin_strchr, expand_builtin_strrchr): Take a new
12293         argument TYPE.  Adjust calls to fold_builtin_XXX.
12294         (expand_builtin, fold_builtin_1): Adjust calls to
12295         expand_builtin_XXX.
12296         (fold_builtin_strchr, fold_builtin_strpbrk,
12297         fold_builtin_strstr, fold_builtin_strrchr): Convert the folded
12298         result to a requested type TYPE.
12299
12300 2005-02-16  Jakub Jelinek  <jakub@redhat.com>
12301
12302         PR middle-end/19857
12303         * fold-const.c (fold): Don't optimize (T)(x & cst) to
12304         (T)x & (T)cst if (T)cst overflows.
12305         * convert.c (convert_to_integer) <case POINTER_TYPE>: Pass
12306         TYPE_UNSIGNED (type) as type_for_size's UNSIGNEDP argument.
12307
12308 2005-02-15  Jeff Law  <law@redhat.com>
12309
12310         * gcse.c (blocks_with_calls): New bitmap.
12311         (alloc_gcse_mem): Allocate it.
12312         (free_gcse_mem): Free it.
12313         (clear_modifY_mem_tables): Clear it.
12314         (record_last_mem_set_info): Set the proper bit in BLOCK_WITH_CALLS
12315         when we encounter CALL_INSNs.
12316         (compute_transp, case MEM): Handle blocks with calls separate
12317         from blocks without calls.  Use bitmap iterators rather than
12318         FOR_EACH_BB.
12319
12320 2005-02-15  Peter O'Gorman  <peter@pogma.com>
12321
12322         PR bootstrap/18810
12323         * mklibgcc.in (vis_hide): Use a temporary object file, not
12324         -o /dev/null.
12325
12326 2005-02-15  Andy Hutchinson  <HutchinsonAndy@netscape.net>
12327
12328         PR target/19924
12329         * config/avr/avr.h (MODES_TIEABLE_P): Define to 1 to allow subreg
12330         access optimization.
12331
12332 2005-02-15  David Edelsohn  <edelsohn@gnu.org>
12333             Alan Modra  <amodra@bigpond.net.au>
12334
12335         PR target/19019
12336         * config/rs6000/darwin-ldouble.c (_xlqadd): Rename to __gcc_qadd.
12337         (_xlqsub): Rename to __gcc_qsub.
12338         (_xlqmul): Rename to __gcc_qmul.
12339         (_xlqdiv): Rename to __gcc_qdiv.
12340         Provide versioned symbol aliases with old names.
12341         * config/rs6000/libgcc-ppc64.ver: Rename symbols.
12342         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Rename symbols.
12343         * config/rs6000/t-aix43 (LIB2FUNCS_EXTRA): New.
12344         * config/rs6000/t-aix52 (LIB2FUNCS_EXTRA): New.
12345         * config/rs6000/t-newas (LIB2FUNCS_EXTRA): New.
12346
12347 2005-02-15  James A. Morrison  <phython@gcc.gnu.org>
12348
12349         * fold-const.c (fold): Fold -(~A) to A + 1.  Fold ~(-A) to A - 1.
12350         Fold ~(A - 1) and ~(A + -1) to -A.
12351
12352 2005-02-15  James A. Morrison  <phython@gcc.gnu.org>
12353
12354         PR pch/14940
12355         PR target/19300
12356         * config/host-linux.c (linux_gt_pch_use_address): Copy from
12357         config/pa/pa-host.c:pa_gt_pch_use_address.
12358
12359 2005-02-15  Daniel Berlin  <dberlin@dberlin.org>
12360
12361         * tree-vn.c (get_value_handle): Make sure that given an
12362         is_gimple_min_invariant expression, we always return it.
12363
12364 2005-02-15  Kazu Hirata  <kazu@cs.umass.edu>
12365
12366         * passes.c (rest_of_handle_gcse): Fix a comment.
12367
12368 2005-02-15  Jeff Law  <law@redhat.com>
12369
12370         * gcse.c (canon_modify_mem_set_list_set): Kill unnecessary
12371         bitmap.
12372         (alloc_gcse_mem, free_gcse_mem): Corresponding changes.
12373         (canon_list_insert, record_last_mem_set_info): Similarly.
12374         (clear_modify_mem_tables): Similarly.
12375
12376 2005-02-15  Kazu Hirata  <kazu@cs.umass.edu>
12377
12378         * bitmap.c, bitmap.h, lambda-code.c, tree-dfa.c, tree-dump.c,
12379         tree-dump.h, tree-ssa-loop-manip.c, value-prof.c,
12380         config/mips/mips.md, config/rs6000/aix.h,
12381         config/rs6000/beos.h, config/rs6000/sysv4.h: Update copyright.
12382
12383 2005-02-15  Richard Henderson  <rth@redhat.com>
12384
12385         * bb-reorder.c (find_traces_1_round): Force fallthru edge from a
12386         call to be best_edge.
12387
12388 2005-02-14  Kazu Hirata  <kazu@cs.umass.edu>
12389
12390         * basic-block.h: Adjust the prototype for find_basic_blocks.
12391         * cfgbuild.c (find_basic_blocks): Remove unused arguments.
12392         * passes.c (rest_of_handle_loop_optimize): Adjust the call to
12393         find_basic_blocks.
12394
12395         * flow.c (recompute_reg_usage): Remove all arguments.
12396         * passes.c (rest_of_compilation): Adjust the call to
12397         recompute_reg_usage.
12398         * rtl.h: Adjust the prototype for recompute_reg_usage.
12399
12400 2005-02-14  Daniel Berlin  <dberlin@dberlin.org>
12401
12402         * tree-dump.c (dump_files): Update to reflect new member
12403         of dump_file_info.
12404         (dump_register): Add new argument.
12405         Set glob name.
12406         (dump_switch_p_1): Check against glob name if doglob was passed.
12407         (dump_switch_p): Check against regular first, then glob if
12408         we didn't have any hits on the dump name.
12409         * tree-optimize.c (register_one_dump_file):
12410         Pass in glob name as well.
12411         * tree-pass.h (struct dump_file_info): Add glob
12412         member.
12413
12414 2005-02-14  Joseph S. Myers  <joseph@codesourcery.com>
12415
12416         PR preprocessor/16323
12417         * doc/invoke.texi: Document that -Wendif-labels is on by default.
12418
12419 2005-02-14  David Edelsohn  <edelsohn@gnu.org>
12420
12421         PR target/19019
12422         * config/rs6000/rs6000.md (trunctfdf2): Change to define_expand.
12423         (trunctfdf2_internal1): New.
12424         (trunctfdf2_internal2): Renamed from trunctfdf2.
12425
12426 2005-02-14  Diego Novillo  <dnovillo@redhat.com>
12427
12428         PR tree-optimization/19853
12429         * tree-dfa.c (add_referenced_var): Always examine DECL_INITIAL.
12430
12431 2005-02-14  Kazu Hirata  <kazu@cs.umass.edu>
12432
12433         * passes.c (rest_of_handle_loop_optimize): Remove calls to
12434         delete_dead_jumptables and cleanup_cfg.
12435
12436 2005-02-14  Ulrich Weigand  <uweigand@de.ibm.com>
12437
12438         * reload.c (find_reloads): Swap address_reloaded flags when
12439         swapping commutative operands.
12440
12441 2005-02-14  Sebastian Pop  <pop@cri.ensmp.fr>
12442
12443         * lambda-code.c (lambda_loopnest_to_gcc_loopnest, perfect_nestify):
12444         Use standard_iv_increment_position for computing the bsi position
12445         for create_iv.
12446         * tree-ssa-loop-manip.c (create_iv): Add a comment on how to compute
12447         the bsi position.
12448
12449 2005-02-13  Zdenek Dvorak  <dvorakz@suse.cz>
12450
12451         PR target/17428
12452         * cfgrtl.c (safe_insert_insn_on_edge): Avoid extending
12453         life range of hard registers.
12454         * value-prof.c (insn_prefetch_values_to_profile): Only
12455         scan normal insns.
12456
12457         * value-prof.c (rtl_find_values_to_profile): Do not look for values to
12458         profile in libcalls.
12459
12460 2005-02-13  Nathan Sidwell  <nathan@codesourcery.com>
12461
12462         * bitmap.h (bitmap_and_compl_into): Return bool.
12463         * bitmap.c (bitmap_and_compl_into): Return changed flag.
12464
12465 2005-02-13  James A. Morrison  <phython@gcc.gnu.org>
12466
12467         PR tree-optimization/19944
12468         * fold-const.c (fold): Re-add ABS_EXPR folding.
12469
12470 2005-02-13  David Edelsohn  <edelsohn@gnu.org>
12471
12472         PR target/19019
12473         * config/rs6000/aix.h ({TARGET,MASK}_XL_CALL): Rename to
12474         {TARGET,MASK}_XL_COMPAT.
12475         (SUBTARGET_SWITCHES): Rename xl-call to xl-compat.  Use
12476         MASK_XL_COMPAT.
12477         * config/rs6000/beos.h ({TARGET,MASK}_XL_CALL): Remove.
12478         * config/rs6000/rs6000.c (function_arg): Change TARGET_XL_CALL to
12479         TARGET_XL_COMPAT.
12480         (rs6000_arg_partial_bytes): Same.
12481         (rs6000_generate_compare): Generate PARALLEL for compare if TFmode
12482         and XL compatibility enabled.
12483         * config/rs6000/rs6000.h (TARGET_XL_CALL): Rename to TARGET_XL_COMPAT.
12484         * config/rs6000/rs6000.md (cmptf_internal1): Add !TARGET_XL_COMPAT
12485         test to final condition.
12486         (cmptf_internal2): New.
12487         * doc/invoke.texi (RS/6000 Subtarget Options): Change xl-call to
12488         xl-compat.  Add TFmode information to description.
12489
12490 2005-02-13  Kazu Hirata  <kazu@cs.umass.edu>
12491
12492         * flags.h, read-rtl.c, tree-ssa-live.h: Update copyright.
12493
12494 2005-02-13  Jason Merrill  <jason@redhat.com>
12495
12496         PR c++/16405
12497         * fold-const.c (fold_indirect_ref_1): Split out from...
12498         (build_fold_indirect_ref): Here.
12499         (fold_indirect_ref): New fn.
12500         * tree.h: Declare it.
12501         * gimplify.c (gimplify_compound_lval): Call fold_indirect_ref.
12502         (gimplify_modify_expr_rhs): Likewise.
12503         (gimplify_expr): Likewise.
12504
12505 2005-02-13  James A. Morrison  <phython@gcc.gnu.org>
12506
12507         PR tree-optimization/14303
12508         PR tree-optimization/15784
12509         * fold-const.c (fold): Fold ABS_EXPR<x> >= 0 to true, when possible.
12510         Fold ABS_EXPR<x> < 0 to false.  Fold ABS_EXPR<x> == 0 to x == 0 and
12511         ABS_EXPR<x> != 0 to x != 0.
12512
12513 2005-02-12  Kazu Hirata  <kazu@cs.umass.edu>
12514
12515         * c-tree.h, combine.c, expmed.c, flow.c, libgcc2.c,
12516         simplify-rtx.c, tree-ssa-live.h: Fix comment typos.  Follow
12517         spelling conventions.
12518
12519         * passes.c (rest_of_handle_gcse): Don't run cse_main and
12520         delete_trivially_dead_insns too many times.
12521
12522         * passes.c (rest_of_handle_gcse): Remove dead assignments to
12523         tem and tem2.
12524
12525 2005-02-12  Ira Rosen  <irar@il.ibm.com>
12526
12527         * tree-vectorizer.c (vect_get_base_and_offset): Remove.
12528         (vect_is_simple_iv_evolution): Remove redundant parameter
12529         and step check.
12530         (vect_analyze_scalar_cycles): Call vect_is_simple_iv_evolution
12531         without last parameter.
12532         (vect_analyze_pointer_ref_access): Get access_fn as parameter.
12533         Return pointer step. Call vect_is_simple_iv_evolution without
12534         last parameter. Check only that the step is multiple of size
12535         type. Remove stmt_vinfo updates.
12536         (vect_get_memtag_and_dr): Remove.
12537         (vect_get_memtag): New function.
12538         (vect_address_analysis): New function.
12539         (vect_object_analysis): New function.
12540         (vect_analyze_data_refs): Call vect_object_analysis and
12541         vect_get_memtag. Update stmt_vinfo fields.
12542
12543 2005-02-12  Ira Rosen  <irar@il.ibm.com>
12544
12545         * tree-data-ref.c (array_base_name_differ_p): Check that the bases
12546         exist and are objects. Remove checks for pointer.
12547         * tree-vectorizer.c (vect_create_addr_base_for_vector_ref): Use
12548         STMT_VINFO_VECT_DR_BASE_ADDRESS instead of DR_BASE_NAME.
12549         (vect_create_data_ref_ptr): Likewise.
12550         (vect_base_addr_differ_p): New function.
12551         (vect_analyze_data_ref_dependence): Call vect_base_addr_differ_p.
12552         (vect_analyze_pointer_ref_access): Add output parameter - ptr_init.
12553         Don't set the DR_BASE_NAME field of data-ref.
12554         (vect_get_memtag_and_dr): Use ptr_init instead of DR_BASE_NAME.
12555
12556 2005-02-12  Uros Bizjak  <uros@kss-loka.si>
12557
12558         * optabs.h (enum optab_index): Add new OTI_ldexp.
12559         (ldexp_optab): Define corresponding macro.
12560         * optabs.c (init_optabs): Initialize ldexp_optab.
12561         * genopinit.c (optabs): Implement ldexp_optab using ldexp?f3
12562         patterns.
12563         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_LDEXP{,F,L}
12564         using ldexp_optab.
12565         (expand_builtin): Expand BUILT_IN_LDEXP{,F,L} using
12566         expand_builtin_mathfn_2 if flag_unsafe_math_optimizations is set.
12567
12568         * config/i386/i386.md (ldexpsf3, ldexpdf3, ldexpxf3): New expanders
12569         to implement ldexpf, ldexp and ldexpl built-ins as inline x87
12570         intrinsics.
12571
12572 2005-02-12  Ira Rosen  <irar@il.ibm.com>
12573
12574         * tree-vectorizer.h (struct _stmt_vec_info): Rename a field: base
12575         to base_address.
12576         * tree-vectorizer.c (new_stmt_vec_info): Rename the above field of
12577         stmt_vec_info.
12578         (vect_get_base_and_offset): Always return an address.
12579         (vect_create_addr_base_for_vector_ref): Remove treatment for
12580         different data reference types.
12581         (vect_compute_data_ref_alignment): Rename base to base_address in
12582         stmt_vec_info. Get the object in order to force its alignment.
12583         (vect_get_memtag_and_dr): Rename base to base_address in
12584         stmt_vec_info. Extract the object for memtag analysis.
12585
12586 2005-02-12  Hans-Peter Nilsson  <hp@axis.com>
12587
12588         PR regression/19898.
12589         * config/cris/cris.c (cris_notice_update_cc): When testing if insn
12590         changes cc_status, use apply modified_in_p to part of cc_status
12591         and insn, not cris_reg_overlap_mentioned_p on SET_DEST of insn
12592         body.
12593
12594 2005-02-11  Richard Henderson  <rth@redhat.com>
12595
12596         * tree-complex.c (expand_complex_libcall): New.
12597         (expand_complex_multiplication): Use it for c99 compliance.
12598         (expand_complex_division): Likewise.
12599         * fold-const.c (fold_complex_add, fold_complex_mult): New.
12600         (fold): Call them.
12601         * builtins.c (built_in_names): Remove const.
12602         * tree.c (build_common_builtin_nodes): Build complex arithmetic
12603         builtins.
12604         * tree.h (BUILT_IN_COMPLEX_MUL_MIN, BUILT_IN_COMPLEX_MUL_MAX): New.
12605         (BUILT_IN_COMPLEX_DIV_MIN, BUILT_IN_COMPLEX_DIV_MAX): New.
12606         (built_in_names): Remove const.
12607         * c-common.c (c_common_type_for_mode): Handle complex modes.
12608         * flags.h, toplev.c (flag_complex_method): Rename from
12609         flag_complex_divide_method.
12610         * libgcc2.c (__divsc3, __divdc3, __divxc3, __divtc3,
12611         __mulsc3, __muldc3, __mulxc3, __multc3): New.
12612         * libgcc2.h: Declare them.
12613         * libgcc-std.ver: Export them.
12614         * mklibgcc.in (lib2funcs): Build them.
12615
12616 2005-02-11  Steven Bosscher  <stevenb@suse.de>
12617
12618         PR tree-optimization/19876
12619         Partially revert my change from 2005-01-14
12620         * tree-ssa-pre.c (compute_antic_aux): Make recursive once again...
12621         (compute_antic): ...and remove the loop here.
12622
12623 2005-02-11  Jakub Jelinek  <jakub@redhat.com>
12624
12625         PR middle-end/19858
12626         * fold-const.c (make_bit_field_ref): If bitpos == 0 and bitsize
12627         is number of inner's bits, avoid creating a BIT_FIELD_REF.
12628
12629         * config/rs6000/sysv4.h (ENDFILE_LINUX_SPEC): Use crtendS.o instead of
12630         crtend.o if -pie.  Use %{x:a;:b} spec syntax.
12631
12632 2005-02-11  Daniel Jacobowitz  <dan@codesourcery.com>
12633
12634         * config/mips/linux-unwind.h (mips_fallback_frame_state): Adjust
12635         offsets for the big-endian 32-bit case.
12636
12637 2005-02-11  Joseph S. Myers  <joseph@codesourcery.com>
12638
12639         * config/ia64/hpux.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
12640
12641 2005-02-11  Dale Johannesen  <dalej@apple.com>
12642
12643         * cselib.c (cselib_process_insn):  Clear out regs where
12644         HARD_REGNO_CALL_PART_CLOBBERED is true at a call.
12645         * reload.c (find_equiv_reg): Ditto.
12646
12647 2005-02-11  Ian Lance Taylor  <ian@airs.com>
12648
12649         * read-rtl.c (read_rtx_1): Give fatal error if we see a vector
12650         with no elements.
12651
12652         * tree.c (build_function_type_list): Work correctly if there are
12653         no arguments.
12654
12655 2005-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
12656
12657         * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccs",
12658         "*cmpsi_ccs"): Use %h instead of %c to print immediate operand.
12659         ("*zero_extendhisi2_64", "*zero_extendhisi2_31"): Choose based on
12660         TARGET_ZARCH instead of TARGET_64BIT.
12661
12662 2005-02-11  Ralf Corsepius  <ralf.corsepius@rtems.org>
12663
12664         * config/rs6000/t-rtems:
12665         (MULTILIB_OPTIONS): Remove mcpu=602.
12666         (MUTLILIB_DIRNAMES): Remove m602.
12667         (MULTILIB_MATCHES): Add ${MULTILIB_MATCHES_FLOAT}.
12668         Let mcpu=602 match mcpu=603.
12669         (MULTILIB_NEW_EXCEPTIONS_ONLY): Add mcpu=601, mcpu=602, mcpu=m603.
12670
12671 2005-02-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12672
12673         * pa/linux-unwind.h (pa32_fallback_frame_state): Handle misaligned
12674         signal trampolines.
12675
12676 2005-02-10  David Daney  <ddaney@avtrex.com>
12677
12678         * config/alpha/linux-unwind.h: Add exception clause to copyright.
12679         * config/i386/linux-unwind.h: Likewise.
12680         * config/ia64/linux-unwind.h: Likewise.
12681         * config/mips/linux-unwind.h: Likewise.
12682         * config/pa/linux-unwind.h: Likewise.
12683         * config/rs6000/linux-unwind.h: Likewise.
12684         * config/s390/linux-unwind.h: Likewise.
12685         * config/sh/linux-unwind.h: Likewise.
12686         * config/sparc/linux-unwind.h: Likewise.
12687
12688 2005-02-10  Steven Bosscher  <stevenb@suse.de>
12689
12690         PR tree-optimization/17549
12691         * tree-outof-ssa.c (find_replaceable_in_bb): Do not allow
12692         TER to replace a DEF with its expression if the DEF and the
12693         rhs of the expression we replace into have the same root
12694         variable.
12695
12696 2005-02-10  Richard Sandiford  <rsandifo@redhat.com>
12697
12698         * config/mips/mips.md: Fix the placement of the match_scratch in the
12699         lea64 peephole2.
12700
12701 2005-02-10  Kazu Hirata  <kazu@cs.umass.edu>
12702
12703         * cse.c, tree-ssa-loop-ivopts.c, config/rs6000/linux-unwind.h:
12704         Fix comment typos.
12705
12706 2005-02-10  Zdenek Dvorak  <dvorakz@suse.cz>
12707
12708         * tree-ssa-loop-ivopts.c (determine_base_object): Ignore casts.
12709         (strip_offset): Handle addresses.
12710         (add_address_candidates): Use strip_offset.
12711         (difference_cost): Reflect strip_offset change.
12712         (force_var_cost, difference_cost): Strip nops.
12713
12714 2005-02-10  Kazu Hirata  <kazu@cs.umass.edu>
12715
12716         * df.h (DF_REF_MODE_CHANGE, DF_REF_MEM_OK): Remove.
12717
12718         * builtins.def, haifa-sched.c, libgcc2.c, libgcc2.h,
12719         tree-ssa-loop-ivcanon.c, tree-ssa-loop-niter.c,
12720         config/cris/cris-protos.h, config/cris/cris.c: Update
12721         copyright.
12722
12723 2005-02-10  Jeff Law  <law@redhat.com>
12724
12725         * tree-ssa-dom.c (thread_across_edge): Use xmalloc, not xcalloc.
12726         (lookup_avail_expr): Similarly.
12727
12728 2005-02-10  Richard Guenther  <rguenth@gcc.gnu.org>
12729
12730         * builtins.c (fold_builtin_powi): New function.
12731         (fold_builtin_1): Call it.
12732
12733 2005-02-10  Steven Bosscher  <stevenb@suse.de>
12734
12735         PR documentation/19309
12736         * doc/cpp.texi: The __GNUC__ and related predefined macros
12737         are also defined for the "standalone" cpp.
12738         Some non-GCC compilers may also define __GNUC__.
12739
12740 2005-02-10  Jakub Jelinek  <jakub@redhat.com>
12741
12742         PR c/19342
12743         * c-typeck.c (common_type): New routine.  Old common_type renamed
12744         to...
12745         (c_common_type): ...this.
12746         (build_conditional_expr, build_binary_op): Use c_common_type instead
12747         of common_type.
12748
12749 2005-02-10  Steven Bosscher  <stevenb@suse.de>
12750
12751         * doc/md.texi: Replace @samp{length} with @code{length}.
12752
12753 2005-02-09  Zdenek Dvorak  <dvorakz@suse.cz>
12754
12755         PR tree-optimization/18687
12756         * tree-flow.h (find_loop_niter): Declare.
12757         * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables):
12758         Try using scev even for loops with more than one exit.
12759         * tree-ssa-loop-ivopts.c (struct loop_data): Removed niter field.
12760         (struct ivopts_data): Added niters field.
12761         (struct nfe_cache_elt): New.
12762         (nfe_hash, nfe_eq, niter_for_exit, niter_for_single_dom_exit): New
12763         functions.
12764         (tree_ssa_iv_optimize_init): Initialize niters cache.
12765         (determine_number_of_iterations): Removed.
12766         (find_induction_variables): Do not call determine_number_of_iterations.
12767         Access niters for single exit through niter_for_single_dom_exit.
12768         (add_iv_outer_candidates): Access niters for single exit through
12769         niter_for_single_dom_exit.
12770         (may_eliminate_iv): Take data argument.  Use niter_for_exit.  Do not use
12771         number_of_iterations_cond.
12772         (iv_period): New function.
12773         (determine_use_iv_cost_condition): Pass data to may_eliminate_iv.
12774         (may_replace_final_value): Take data argument.  Use
12775         niter_for_single_dom_exit.
12776         (determine_use_iv_cost_outer): Pass data to may_replace_final_value.
12777         (rewrite_use_compare): Pass data to may_eliminate_iv.
12778         (rewrite_use_outer): Pass data to may_replace_final_value.
12779         (free_loop_data): Clean up the niters cache.
12780         (tree_ssa_iv_optimize_finalize): Free the niters cache.
12781         (tree_ssa_iv_optimize_loop): Do not call loop_commit_inserts.
12782         * tree-ssa-loop-niter.c (find_loop_niter): New function.
12783         (find_loop_niter_by_eval): Use tree_int_cst_lt.
12784         (num_ending_zeros): Moved to tree.c.
12785         * tree.h (num_ending_zeros): Declare.
12786         * tree.c (num_ending_zeros): Moved from tree.c.
12787
12788 2005-02-09  Richard Henderson  <rth@redhat.com>
12789
12790         * builtins.c (DEF_BUILTIN): Add COND argument.
12791         * tree.h (DEF_BUILTIN): Likewise.
12792         * builtins.def (DEF_GCC_BUILTIN, DEF_LIB_BUILTIN, DEF_EXT_LIB_BUILTIN,
12793         DEF_C94_BUILTIN, DEF_C99_BUILTIN, DEF_C99_C90RES_BUILTIN): Update to
12794         match.
12795         (DEF_BUILTIN_STUB): New.
12796         (BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE, BUILT_IN_INIT_TRAMPOLINE,
12797         BUILT_IN_ADJUST_TRAMPOLINE, BUILT_IN_NONLOCAL_GOTO,
12798         BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT): Use it.
12799         * c-common.c (DEF_BUILTIN): Add COND argument.
12800         * tree.c (local_define_builtin): New.
12801         (build_common_builtin_nodes): New.
12802
12803 2005-02-09  Roger Sayle  <roger@eyesopen.com>
12804
12805         * fold-const.c (fold_strip_sign_ops): New function to simplify a
12806         floating point expression ignoring the sign of the result.
12807         (fold) <ABS_EXPR>: Use it to simplify fabs(x).
12808         (fold) <MULT_EXPR>: Use it to simplify x*x.
12809         * tree.h (fold_strip_sign_ops): Prototype here.
12810         * builtins.c (fold_builtin_copysign): Take an additional FNDECL
12811         argument.  Use fold_strip_sign_ops to simplify the first argument.
12812         (fold_builtin_pow):  Use fold_strip_sign_ops to simplify the
12813         first argument when the second argument is an even integer
12814         constant, but only with -funsafe_math_optimizations.
12815         (fold_builtin_1): Update call to fold_builtin_copysign.
12816
12817 2005-02-09  Ian Lance Taylor  <ian@airs.com>
12818
12819         PR middle-end/19583
12820         * gimple-low.c (try_catch_may_fallthru): In EH_FILTER_EXPR case,
12821         just check whether EH_FILTER_FAILURE falls through.
12822
12823 2005-02-09  Andreas Krebbel  <krebbel1@de.ibm.com>
12824
12825         * gcc/haifa-sched.c (schedule_block): Make queued sched group
12826         insns return to ready list in the next turn.
12827
12828 2005-02-09  Richard Guenther  <rguenth@gcc.gnu.org>
12829
12830         PR middle-end/19402
12831         * builtins.def: New __builtin_powi[lf].
12832         * builtins.c (mathfn_built_in): Handle BUILT_IN_POWI.
12833         (expand_builtin_powi): New function.
12834         (expand_builtin): Dispatch to expand_builtin_powi.
12835         * libgcc2.h: Add prototypes for __builtin_powi[lf].
12836         * libgcc2.c: Add __builtin_powi[lf] implementation.
12837         * mklibgcc.in: Add __builtin_powi[lf] to lib2funcs.
12838         * optabs.h: Add powi_optab.
12839         * optabs.c (init_optabs): Initialize powi_optab.
12840         * doc/extend.texi: Document __builtin_powi[lf].
12841
12842 2005-02-09  Dorit Naishlos  <dorit@il.ibm.com>
12843
12844         * tree-vectorizer.c (vect_set_dump_settings): Check that dump_file
12845         exists.
12846
12847 2005-02-09  Richard Guenther  <rguenth@gcc.gnu.org>
12848
12849         PR middle-end/19854
12850         * fold-const.c (try_move_mult_to_index): Remove redundant
12851         type argument.  Create ADDR_EXPR with correct type.
12852         (fold): Update callers of try_move_mult_to_index.  Convert
12853         result to the appropriate type.
12854
12855 2005-02-09  Roger Sayle  <roger@eyesopen.com>
12856
12857         PR target/19597
12858         * config/avr/avr.c (default_rtx_costs): Delete.
12859         (avr_operand_rtx_cost): New function.
12860         (avr_rtx_costs): Completely rewrite.
12861
12862 2005-02-08  Hans-Peter Nilsson  <hp@axis.com>
12863
12864         PR target/19806
12865         * config/cris/cris.c (in_code): New variable.
12866         (cris_output_addr_const): Now a static function, a wrapper for
12867         output_addr_const.
12868         (cris_asm_output_symbol_ref): New function, broken out SYMBOL_REF
12869         case from old cris_output_addr_const.
12870         (cris_asm_output_label_ref): Similar for LABEL_REF.
12871         (cris_output_addr_const_extra): Similar for UNSPEC.
12872         * config/cris/cris.h (OUTPUT_ADDR_CONST_EXTRA)
12873         (ASM_OUTPUT_SYMBOL_REF, ASM_OUTPUT_LABEL_REF): Define.
12874         * config/cris/cris-protos.h (cris_output_addr_const): Remove
12875         declaration.
12876         (cris_asm_output_symbol_ref, cris_output_addr_const_extra)
12877         (cris_asm_output_label_ref): Declare.
12878
12879 2005-02-08  Paolo Bonzini  <bonzini@gnu.org>
12880
12881         PR preprocessor/19801
12882         * doc/cppinternals.texi (Conventions, Lexer, Files): Adjust
12883         filenames that changed when libcpp was moved to the toplevel.
12884
12885 2005-02-07  Roger Sayle  <roger@eyesopen.com>
12886
12887         * simplify-rtx.c (simplify_relational_operation_1): Avoid creating
12888         zero extensions of BImode operands.  Call lowpart_subreg instead
12889         of gen_lowpart_common and gen_lowpart_SUBREG.
12890
12891 2005-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
12892
12893         PR ada/19489
12894         * libada-mk.in: Use cc_for_cross_gnattools, not cc_set_by_configure.
12895         * configure.ac: Set cc_for_cross_gnattools.
12896         * configure: Regenerate.
12897
12898 2005-02-08  Alan Modra  <amodra@bigpond.net.au>
12899
12900         PR target/19803
12901         * predict.c (PROB_VERY_UNLIKELY): Use 1% instead of 10%.
12902
12903 2005-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
12904
12905         PR debug/19327
12906         * dbxout.c (dbxout_symbol) <FUNCTION_DECL>: Skip inline instance
12907         of nested functions.
12908
12909 2005-02-07  Jonathan Wakely  <redi@gcc.gnu.org>
12910
12911         * doc/extend.texi: Document deprecated extensions allowing
12912         static floating-point members to have initializers and allowing
12913         floating-point literals in integral constant expressions.
12914
12915 2005-02-07  Kazu Hirata  <kazu@cs.umass.edu>
12916
12917         * cfgcleanup.c, df.h, diagnostic.c, rtl.c, tree-vectorizer.h,
12918         config/darwin7.h, config/mips/mips.c,
12919         config/rs6000/altivec.md, config/rs6000/darwin-tramp.asm:
12920         Update copyright.
12921
12922         * cse.c: Update comments.
12923
12924 2005-02-07  Richard Guenther  <rguenth@gcc.gnu.org>
12925
12926         PR middle-end/19775
12927         * builtins.c (fold_builtin_sqrt): Transform
12928         sqrt(pow(x,y)) to pow(fabs(x),y*0.5), not
12929         pow(x,y*0.5).
12930
12931 2005-02-07  Leehod Baruch  <leehod@il.ibm.com>
12932             Dorit Naishlos  <dorit@il.ibm.com>
12933
12934         * doc/invoke.texi (ftree-vectorizer-verbose): New.
12935         * opts.c (OPT_ftree_vectorizer_verbose_): New case for switch.
12936         * common.opt (ftree-vectorizer-verbose): New Flag for the vectorizer
12937         was added.
12938         * tree.h (vect_set_verbosity_level): New extern function declaration
12939         added.
12940         * tree-vectorizer.h (verbosity_levels): New enum type.
12941         * tree-vectorizer.c (vect_debug_stats): Function removed.
12942         (vect_debug_details): Likewise.
12943         (vect_verbosity_level): Global variable was defined and initialized.
12944         (vect_dump): Global variable definition.
12945         (vect_print_dump_info): New function.
12946         (vect_set_dump_settings): New function.
12947         (vect_set_verbosity_level): New function.
12948         (vectorize_loops): Add call to vect_set_dump_settings.
12949
12950         (slpeel_make_loop_iterate_ntimes): Dump condition was changed.
12951         (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
12952         (slpeel_tree_peel_loop_to_edge): Likewise.
12953
12954         (vect_analyze_offset_expr): Call to vect_print_dump_info with
12955         appropriate verbosity level instead of call to vect_debug_details
12956         or vect_debug_stats.
12957         (vect_get_base_and_offset):
12958         (vect_create_addr_base_for_vector_ref):
12959         (get_vectype_for_scalar_type):
12960         (vect_create_data_ref_ptr):
12961         (vect_init_vector):
12962         (vect_get_vec_def_for_operand):
12963         (vect_finish_stmt_generation):
12964         (vectorizable_assignment):
12965         (vectorizable_operation):
12966         (vectorizable_store):
12967         (vectorizable_load):
12968         (vect_transform_stmt):
12969         (vect_update_ivs_after_vectorizer):
12970         (vect_do_peeling_for_loop_bound):
12971         (vect_update_inits_of_drs):
12972         (vect_do_peeling_for_alignment):
12973         (vect_transform_loop):
12974         (vect_is_simple_use):
12975         (vect_analyze_operations):
12976         (vect_is_simple_iv_evolution):
12977         (vect_analyze_scalar_cycles):
12978         (vect_analyze_data_ref_dependence):
12979         (vect_analyze_data_ref_dependences):
12980         (vect_compute_data_ref_alignment):
12981         (vect_enhance_data_refs_alignment):
12982         (vect_analyze_data_refs_alignment):
12983         (vect_analyze_data_ref_access):
12984         (vect_analyze_data_ref_accesses):
12985         (vect_analyze_pointer_ref_access):
12986         (vect_get_memtag_and_dr):
12987         (vect_analyze_data_refs):
12988         (vect_mark_relevant):
12989         (vect_stmt_relevant_p):
12990         (vect_mark_stmts_to_be_vectorized):
12991         (vect_can_advance_ivs_p):
12992         (vect_get_loop_niters):
12993         (vect_analyze_loop_form):
12994         (vect_analyze_loop):
12995         (vectorize_loops): Likewise.
12996
12997         (vect_do_peeling_for_loop_bound): Dump format slightly changed.
12998         (vect_update_inits_of_drs):
12999         (vect_do_peeling_for_alignment):
13000         (vect_transform_loop):
13001         (vect_analyze_operations):
13002         (vect_analyze_scalar_cycles):
13003         (vect_analyze_data_ref_dependences):
13004         (vect_analyze_data_refs_alignment):
13005         (vect_analyze_data_ref_accesses):
13006         (vect_analyze_data_refs):
13007         (vect_mark_stmts_to_be_vectorized):
13008         (vect_get_loop_niters):
13009         (vect_analyze_loop_form):
13010         (vect_analyze_loop): Likewise.
13011         (vect_mark_stmts_to_be_vectorized): Add call to print_generic_expr.
13012
13013 2005-02-07  Richard Sandiford  <rsandifo@redhat.com>
13014
13015         PR bootstrap/19796
13016         Revert:
13017         2005-01-26  Richard Sandiford  <rsandifo@redhat.com>
13018         * config/mips/iris6.h (ENDFILE_SPEC): Don't link in irix-csr.o if
13019         either -ffast-math or -funsafe-math-optimizations is in use.
13020
13021         2005-01-24  Richard Sandiford  <rsandifo@redhat.com>
13022         * config/mips/irix-csr.c: New file.
13023         * config/mips/t-iris6 (irix-csr.o): New rule to build it.
13024         (EXTRA_MULTILIB_PARTS): Add irix-csr.o.
13025         * config/mips/iris6.h (ENDFILE_SPEC): Include it in n32 and n64
13026         executables.
13027
13028 2005-02-07  Alexandre Oliva  <aoliva@redhat.com>
13029
13030         * config/mn10300/linux.h (LIB_SPEC, STARTFILE_SPEC): Remove
13031         redundant, incorrect definitions.
13032
13033         * config/frv/frv.md ("tls_indirect_call"): Turn into libcall-like
13034         expand.
13035         ("*tls_indirect_call"): New, reference hard regs directly.
13036         * config/frv/frv.c (gen_inlined_tls_plt): Adjust.
13037
13038 2005-02-07  Ralf Corsepius  <ralf.corsepius@rtems.org>
13039
13040         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC):
13041         Let !-mhard-float !-msoft-float imply -mfpu=softfpa.
13042
13043 2005-02-06  Roger Sayle  <roger@eyesopen.com>
13044
13045         PR rtl-optimization/19800
13046         * simplify_rtx.c (simplify_relational_operation_1): Explicitly
13047         call gen_lowpart_common and gen_lowpart_SUBREG instead of calling
13048         gen_lowpart.
13049
13050 2005-02-07  Ralf Corsepius  <ralf.corsepius@rtems.org>
13051
13052         * config/m68k/t-rtems (MULTILIB_MATCHES): Let m528x match m5200.
13053
13054 2005-02-07  Joseph S. Myers  <joseph@codesourcery.com>
13055
13056         PR other/17135
13057         * doc/invoke.texi: Correct documentation of -freorder-functions.
13058
13059 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
13060
13061         PR other/14402
13062         * doc/invoke.texi: Don't mention gccbug.
13063
13064 2005-02-06  Roger Sayle  <roger@eyesopen.com>
13065             Andrew Pinski  <pinskia@physics.uc.edu>
13066             Paolo Bonzini  <paolo.bonzini@lu.unisi.ch>
13067
13068         * simplify-rtx.c (simplify_relational_operation_1): Simplify
13069         (ne:SI (zero_extract:SI FOO (const_int 1) BAR) (const_int 0))
13070         into just (zero_extract:SI FOO (const_int 1) BAR).
13071
13072 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
13073
13074         * doc/cpp.texi: Include gcc-common.texi.  Don't define gcctabopt
13075         macro locally.  Don't give last revision date.  Use GCC version
13076         number from gcc-common.texi.
13077         * doc/cppinternals.texi: Include gcc-common.texi.  Don't give last
13078         revision date.  Use GCC version number from gcc-common.texi.
13079         Describe being a library as current state rather than as 3.x
13080         history.
13081         * doc/gcc.texi: Remove last update date.
13082         * doc/gccint.texi: Likewise.  Update copyright dates.
13083         * doc/install.texi: Update copyright dates.
13084
13085 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
13086
13087         PR other/7549
13088         * doc/invoke.texi: Mention for each option included in -Wall that
13089         it is included in -Wall.
13090         * doc/gcc.texi: Update copyright and last modification date.
13091
13092 2005-02-06  Zdenek Dvorak  <dvorakz@suse.cz>
13093
13094         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Do not add
13095         unnecessary cast to original induction variable increments.
13096
13097 2005-02-06  Zdenek Dvorak  <dvorakz@suse.cz>
13098
13099         PR tree-optimization/18219
13100         * tree-ssa-loop-ivopts.c (get_computation_at): Produce computations
13101         in distributed form.
13102
13103 2005-02-06  Richard Sandiford  <rsandifo@redhat.com>
13104
13105         * expmed.c (store_bit_field): Make the SUBREG code adjust bitnum.
13106         Set bitpos and offset later in the function.  Do nothing if the
13107         target is a register and if the bitfield lies completely outside
13108         that register.
13109         (extract_bit_field): Make the same SUBREG, bitpos and offset changes
13110         here.  Return an uninitialised register if the source value is stored
13111         in a register and the bitfield lies completely outside that register.
13112
13113 2005-02-06  Steven Bosscher  <stevenb@suse.de>
13114
13115         * df.c (df_insn_refs_record): Use XEXP to get the operand of a USE,
13116         not SET_DEST.
13117
13118 2005-02-06  Marcin Dalecki  <martin@dalecki.de>
13119
13120         * diagnostic.c (default_diagnostic_finalizer): Fix use of attribute.
13121
13122 2005-02-06  Geoffrey Keating  <geoffk@apple.com>
13123
13124         * config.gcc (*-*-darwin*): Separate darwin7 and darwin8 configs.
13125         * config/darwin8.h: New.
13126         * config/darwin7.h: Update comment.
13127
13128 2005-02-03  Leehod Baruch  <leehod@il.ibm.com>
13129             Dorit Naishlos  <dorit@il.ibm.com>
13130
13131         * tree-vectorizer.h (LOC): New type.
13132         (UNKNOWN_LOC, EXPR_LOC, LOC_FILE, LOC_LINE): New macros.
13133         (loop_line_number): New field in struct _loop_vec_info.
13134         (LOOP_VINFO_LOC, LOOP_LOC): New macros.
13135
13136         * tree-vectorizer.c (input.h): Included.
13137         (find_loop_location): New function.
13138         (vect_debug_stats): Argument changed from loop to LOC. Computation of
13139         loop line number removed.
13140         (vect_debug_details): Likewise.
13141         (new_loop_vec_info): Initialize new field LOOP_VINFO_LOC.
13142
13143         (slpeel_make_loop_iterate_ntimes): Call find_loop_location. Argument in
13144         call to vect_debug_details/stats changed from loop to loop_loc.
13145         (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
13146         (slpeel_tree_peel_loop_to_edge): Likewise.
13147
13148         (vect_analyze_offset_expr): Argument in call to vect_debug_details/stats
13149         changed from NULL to UNKNOWN_LOC.
13150         (vect_get_base_and_offset):
13151         (vect_create_addr_base_for_vector_ref):
13152         (get_vectype_for_scalar_type):
13153         (vect_create_data_ref_ptr):
13154         (vect_init_vector):
13155         (vect_get_vec_def_for_operand):
13156         (vect_finish_stmt_generation):
13157         (vectorizable_assignment):
13158         (vectorizable_operation):
13159         (vectorizable_store):
13160         (vectorizable_load):
13161         (vect_transform_stmt):
13162         (vect_update_ivs_after_vectorizer):
13163         (vect_do_peeling_for_loop_bound):
13164         (vect_do_peeling_for_alignment):
13165         (vect_transform_loop):
13166         (vect_is_simple_use):
13167         (vect_analyze_operations):
13168         (vect_is_simple_iv_evolution):
13169         (vect_analyze_scalar_cycles):
13170         (vect_analyze_data_ref_dependences):
13171         (vect_compute_data_ref_alignment):
13172         (vect_enhance_data_refs_alignment):
13173         (vect_analyze_data_ref_access):
13174         (vect_analyze_data_ref_accesses):
13175         (vect_analyze_pointer_ref_access):
13176         (vect_get_memtag_and_dr):
13177         (vect_analyze_data_refs):
13178         (vect_mark_relevant):
13179         (vect_stmt_relevant_p):
13180         (vect_mark_stmts_to_be_vectorized):
13181         (vect_can_advance_ivs_p):
13182         (vect_get_loop_niters):
13183         (vect_analyze_loop):
13184         (vectorize_loops): Likewise.
13185
13186         (vectorizable_load): Argument in call to vect_debug_details/stats
13187         changed from loop to LOOP_LOC (loop_vinfo).
13188         (vect_transform_loop):
13189         (vect_analyze_operations):
13190         (vect_analyze_scalar_cycles):
13191         (vect_analyze_data_ref_dependence):
13192         (vect_enhance_data_refs_alignment):
13193         (vect_analyze_data_ref_accesses):
13194         (vect_analyze_pointer_ref_access):
13195         (vect_analyze_data_refs):
13196         (vect_analyze_loop): Likewise.
13197
13198         (vect_analyze_loop_form): Argument in call to vect_debug_details/stats
13199         changed from loop to loop_loc.
13200
13201         (vect_enhance_data_refs_alignment): Removed unused variable loop.
13202
13203 2005-02-03  Leehod Baruch  <leehod@il.ibm.com>
13204             Dorit Naishlos  <dorit@il.ibm.com>
13205
13206         * tree-vectorizer.c (vect_analyze_data_ref_dependence): Function
13207         declaration added.
13208         (vect_analyze_data_ref_dependences): Likewise.
13209
13210         (vect_is_simple_use): Argument changed from loop structure to
13211         loop_vect_info structure.
13212         (vect_can_advance_ivs_p): Likewise.
13213         (vect_create_index_for_vector_ref): Likewise.
13214         (vect_update_ivs_after_vectorizer): Likewise.
13215         (new_stmt_vec_info): Likewise.
13216
13217         (new_loop_vec_info): Second argument in call to new_stmt_vec_info was
13218         changed from loop to loop_vinfo.
13219         (vect_create_data_ref_ptr): First argument in call to
13220         vect_create_index_for_vector_ref was changed from loop to loop_vinfo.
13221         (vectorizable_assignment): Second argument in call to vect_is_simple_use
13222         was changed from loop to loop_vinfo.
13223         (vectorizable_operation): Likewise.
13224         (vectorizable_store): Likewise.
13225         (vect_mark_stmts_to_be_vectorized): Likewise.
13226         (vect_do_peeling_for_loop_bound): First argument in call to
13227         vect_update_ivs_after_vectorizer was changed from loop to loop_vinfo.
13228         (vect_analyze_operations): Argument in call to vect_can_advance_ivs_p
13229         was changed from loop to loop_vinfo.
13230         (vect_analyze_data_ref_dependences): Third argument in call to
13231         vect_analyze_data_ref_dependence was changed from loop to loop_vinfo.
13232
13233         (vect_create_index_for_vector_ref): Get the loop from loop_vinfo.
13234         (vect_create_data_ref_ptr): Likewise.
13235         (vect_init_vector): Likewise.
13236         (vect_get_vec_def_for_operand): Likewise.
13237         (vectorizable_assignment): Likewise.
13238         (vectorizable_operation): Likewise.
13239         (vectorizable_store): Likewise.
13240         (vectorizable_load): Likewise.
13241         (vect_update_ivs_after_vectorizer): Likewise.
13242         (vect_is_simple_use): Likewise.
13243         (vect_analyze_data_ref_dependence): Likewise.
13244         (vect_analyze_pointer_ref_access): Likewise.
13245         (vect_can_advance_ivs_p): Likewise.
13246
13247         * tree-vectorizer.h: (_loop_vec_info): Definition and macros moved
13248         before _stmt_vec_info.
13249         (_stmt_vec_info): Loop field replaced by loop_vec_info.
13250         (STMT_VINFO_LOOP): Replaced with STMT_VINFO_LOOP_VINFO.
13251         (new_stmt_vec_info): Argument changed from loop structure to
13252         loop_vect_info structure
13253
13254         (vect_analyze_data_ref_dependences): Unnecessary line was removed.
13255         (vect_analyze_offset_expr): Avoid 80 columns overflow.
13256         (vect_create_addr_base_for_vector_ref): Likewise.
13257         (vect_analyze_pointer_ref_access): Likewise.
13258
13259 2005-02-03  Andrew Pinski  <pinskia@physics.uc.edu>
13260
13261         PR tree-opt/19768
13262         * tree-ssa-dse.c (fix_phi_uses): Update the occurs in abnormal
13263         phi flag if the phi is abnormal.
13264
13265 2005-02-03  Andrew Pinski  <pinskia@physics.uc.edu>
13266
13267         PR tree-opt/19736
13268         * tree-ssa.c (replace_immediate_uses): Update the immediate_uses
13269         information for the new statement.
13270
13271 2005-02-03  Joseph S. Myers  <joseph@codesourcery.com>
13272
13273         PR driver/19117
13274         * gcc.c (main): Include the target in -v output.
13275
13276 2005-02-03  Alexandre Oliva  <aoliva@redhat.com>
13277
13278         * combine.c (simplify_comparison, case SIGN_EXTEND, ZERO_EXTEND):
13279         Do not drop the extend if we'd have to add a paradoxical subreg
13280         later.  Include optabs.h and insn-codes.h.
13281         * Makefile.in (combine.o): Depend on $(OPTABS_H).
13282
13283 2005-02-02  Roger Sayle  <roger@eyesopen.com>
13284
13285         PR middle-end/19405
13286         * real.h (REAL_MODE_FORMAT_COMPOSITE_P): New macro.
13287         * fold-const.c (const_binop): Avoid constant folding floating
13288         point operations in modes that use composite representations.
13289         * simplify-rtx.c (simplify_binary_operation): Likewise.
13290
13291 2005-02-02  Geoffrey Keating  <geoffk@apple.com>
13292
13293         * config/rs6000/altivec.md (altivec_dst): Make the first operand
13294         a REG, not a MEM.
13295         (altivec_dstt): Likewise.
13296         (altivec_dstst): Likewise.
13297         (altivec_dststt): Likewise.
13298         * config/rs6000/rs6000.c (altivec_expand_dst_builtin): Adjust creation
13299         of first operand.
13300
13301 2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>
13302
13303         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Copy
13304         EXPR_LOCUS from orig_cond to the new cond_stmt.
13305         (vect_finish_stmt_generation): Copy EXPR_LOCUS from stmt to
13306         the new vec_stmt.
13307
13308 2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>
13309
13310         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Call
13311         standard_iv_increment_position. Remove call to bsi_next
13312         (no need to bump the iterator anymore).
13313         (vect_create_index_for_vector_ref): Call
13314         standard_iv_increment_position. Remove second function argument.
13315         (vect_finish_stmt_generation): Remove call to bsi_next
13316         (no need to bump the iterator anymore).
13317         (vect_create_data_ref_ptr): Remove second argument (bsi) in call
13318         to vect_create_index_for_vector_ref.
13319
13320 2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>
13321
13322         * tree-vectorizer.c (vect_mark_stmts_to_be_vectorized): Check if
13323         phis are used out of the loop.
13324
13325 2005-02-03  Joseph S. Myers  <joseph@codesourcery.com>
13326
13327         PR c/17807
13328         * c-decl.c (undef_nested_function): New variable.
13329         (pop_scope): Diagnose undefined nested functions.
13330         (finish_function): Don't attempt cgraph processing or genericizing
13331         if current top-level function contained an undefined nested
13332         function.  Reset undef_nested_function at the end of a top-level
13333         function.
13334
13335 2005-02-02  Zdenek Dvorak  <dvorakz@suse.cz>
13336
13337         * tree.c (build_int_cst_type): Take sign of the value into account
13338         when deciding whether sign extend the value.
13339
13340 2005-02-02  Joseph S. Myers  <joseph@codesourcery.com>
13341
13342         PR c/18502
13343         * gcc.c (cpp_unique_options): Remove %{trigraphs}.
13344         (cpp_options, cc1_options): Change %{std*&ansi} to
13345         %{std*&ansi&trigraphs}.
13346
13347 2005-02-02  Kazu Hirata  <kazu@cs.umass.edu>
13348
13349         * cse.c: Update comments.
13350
13351 2005-02-02  Aldy Hernandez  <aldyh@redhat.com>
13352
13353         * config/rs6000/rs6000.c (rs6000_spe_function_arg): Multi-reg
13354         arguments go on the stack.  Do not put complex doubles in odd/even
13355         pairs.
13356
13357 2005-02-02  Steven Bosscher  <stevenb@suse.de>
13358
13359         * doc/invoke.texi: Update the options enabled at -O1, -O2,
13360         and -O3.  Update the documentation for -fgcse-sm, -fgcse-las,
13361         -ftree-pre, and -fthread-jumps.
13362
13363 2005-02-02  Richard Sandiford  <rsandifo@redhat.com>
13364
13365         PR tree-optimization/19578
13366         * tree-flow.h (modified_noreturn_calls): Declare.
13367         (noreturn_call_p): Declare.
13368         * tree-flow-inline.h (noreturn_call_p): New function.
13369         (modify_stmt): Add modified noreturn calls to modified_noreturn_calls.
13370         * tree-cfg.c (modified_noreturn_calls): New variable.
13371         (cleanup_control_flow): Use noreturn_call_p.  Split basic blocks
13372         that contain a mid-block noreturn call.
13373         * tree-ssa.c (delete_tree_ssa): Clear modified_noreturn_calls.
13374
13375 2005-02-02  Kazu Hirata  <kazu@cs.umass.edu>
13376
13377         * df.c (df_def_record_1, df_uses_record): Don't use
13378         DF_FOR_REGALLOC.
13379         * df.h (DF_FOR_REGALLOC): Remove.
13380
13381 2005-02-02  Joseph S. Myers  <joseph@codesourcery.com>
13382
13383         PR c/19435
13384         * c-typeck.c (really_start_incremental_init): Reset
13385         constructor_max_index for arrays of incomplete type.
13386
13387 2005-02-02  Jeff Law  <law@redhat.com>
13388
13389         * gcse.c (struct reg_set): Store the block index where the register
13390         was set rather than the setting insn.
13391         (record_one_set, compute_transp): Corresponding changes.
13392         (pre_insert_copy_insn): Do not call replace_one_set.
13393         (replace_one_set): Remove.
13394
13395 2005-02-02  Joseph S. Myers  <joseph@codesourcery.com>
13396
13397         PR other/15514
13398         * doc/gcov.texi: Fix typo.
13399
13400 2005-02-01  Richard Henderson  <rth@redhat.com
13401
13402         PR target/19680
13403         * config/i386/i386.h (MODES_TIEABLE_P): Use ix86_modes_tieable_p.
13404         * config/i386/i386.c (ix86_hard_regno_mode_ok): Change return
13405         type to bool.
13406         (ix86_tieable_integer_mode_p, ix86_modes_tieable_p): New.
13407         * config/i386/i386-protos.h: Update.
13408
13409 2005-02-01  Steven Bosscher  <stevenb@suse.de>
13410
13411         PR tree-optimization/19217
13412         * tree-cfg.c (verify_expr): Use the data field to see if TP was
13413         seen inside a PHI node.  Do not do the ADDR_EXPR check if it was.
13414         (verify_stmts): Pass (void*)1 as data to verify_expr to signal
13415         that it is walking a PHI node.
13416
13417 2005-02-01  Joseph S. Myers  <joseph@codesourcery.com>
13418
13419         * doc/extend.texi (Nested Functions): Update.
13420
13421 2005-02-01  Richard Henderson  <rth@redhat.com>
13422
13423         PR 19696
13424         * optabs.c (expand_copysign_absneg): Export.
13425         * optabs.h (expand_copysign_absneg): Declare.
13426         * config/rs6000/rs6000.md (copysigntf3): New.
13427
13428 2005-02-01  Diego Novillo  <dnovillo@redhat.com>
13429
13430         PR tree-optimization/19633
13431         * tree-flow.h (struct ptr_info_def): Add field 'pt_null'.
13432         * tree-ssa-alias.c (init_alias_info): Initialize.
13433         (merge_pointed_to_info): Set.
13434         (add_pointed_to_expr): Set pt_null if EXPR is a NULL pointer.
13435         (dump_points_to_info_for): Show value of pt_null.
13436         (struct count_ptr_d): Declare.
13437         (find_ptr_dereference): Remove.
13438         (ptr_is_dereferenced_by): Remove.
13439         (count_ptr_derefs): New local function.
13440         (count_uses_and_derefs): New local function.
13441         (compute_points_to_and_addr_escape): Call it.  If the number
13442         of dereferences is greater than zero, mark the pointer as
13443         dereferenced.  If there are fewer dereferences than uses of
13444         the pointer, the pointer's value escapes.
13445
13446 2005-02-01  Diego Novillo  <dnovillo@redhat.com>
13447
13448         PR tree-optimization/19670
13449         * tree-ssa.c (verify_ssa_name): Don't set TREE_VISITED
13450         here...
13451         (verify_use): ... set it here, instead.
13452
13453 2005-02-01  Janis Johnson  <janis187@us.ibm.com>
13454
13455         * doc/sourcebuild.texi (Test directives): Fix formatting.
13456
13457         * doc/sourcebuild.texi (Test directives): Describe selector
13458         expressions.
13459
13460 2005-02-01  Segher Boessenkool  <segher@kernel.crashing.org>
13461
13462         * config.gcc (powerpc64-*-linux*): Default to -m64 also for
13463         specific 64-bit CPUs.
13464
13465 2005-02-01  Richard Earnshaw  <rearnsha@arm.com>
13466
13467         PR target/16201
13468         * arm.c (arm_eliminable_register): New function.
13469         (adjacent_mem_locations): Don't allow eliminable registers.  Use
13470         HOST_WIDE_INT for address offsets.
13471         * arm-protos.h (arm_eliminable_register): Add prototype.
13472
13473 2005-02-01  Steven Bosscher  <stevenb@suse.de>
13474
13475         PR optimization/15242
13476         * params.def (PARAM_MAX_GOTO_DUPLICATION_INSNS): New param.
13477         * basic-block.h (duplicate_computed_gotos): Add prototype.
13478         * bb-reorder.c (duplicate_computed_gotos): New function to
13479         duplicate sufficiently small blocks ending in a computed jump.
13480         * passes.c (rest_of_compilation): Call duplicate_computed_gotos
13481         if not optimizing for size.
13482         * cfgcleanup.c (try_crossjump_bb): If not optimizing for size,
13483         never do tail merging for blocks ending in a computed jump.
13484         * doc/invoke.texi: Document the max-goto-duplication-insns param.
13485
13486 2005-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
13487
13488         Patch from Richard Sandiford <rsandifo@redhat.com>
13489         * reload1.c (choose_reload_regs): Prevent the find_equiv_reg() code
13490         from inheriting a subreg equivalence with a non-spill register.
13491
13492         * tree.h (DECL_FUNCTION_CODE): Document that it is overloaded.
13493
13494 2005-02-01  Alexandre Oliva  <aoliva@redhat.com>
13495
13496         * config/frv/frv.c (movcc_fp_destination_operand): New.
13497         (gpr_or_memory_operand): Fix typo in comment.
13498         (gpr_or_memory_operand_with_scratch): New.
13499         * config/frv/frv.h (PREDICATE_CODES): Add the two new predicates.
13500         * config/frv/frv.md (movcc_fp, movcc_fp_internal): Use
13501         movcc_fp_destination_operand.
13502         (reload_incc_fp): Use gpr_or_memory_operand_with_scratch.
13503         Legitimize memory addresses using a scratch register.
13504
13505 2005-01-31  Jeff Law  <law@redhat.com>
13506
13507         * tree-into-ssa.c (mark_def_sites_global_data): Make KILLS
13508         bitmap a sparse bitmap instead of a simple bitmap.
13509         (mark_def_sites_initialize_block):  Corresponding changes.
13510         (ssa_mark_def_sites_initialize_block): Likewise.
13511         (ssa_mark_phi_uses): Likewise.
13512         (mark_def_site, ssa_mark_def_sites): Likewise.
13513         (mark_def_site_blocks): Likewise.
13514         (rewrite_ssa_into_ssa): Likewise.
13515
13516         * tree-ssa-dom.c (record_cond): Pass correct variable type
13517         for last argument to htab_find_slot_with_hash.
13518
13519         * fold-const.c (fold, case CEIL_MOD_EXPR): Do not lose side
13520         effects when optimizing 0 % X.  Do not try to optimize X % 0.
13521
13522 2005-01-31  James E. Wilson  <wilson@specifixinc.com>
13523
13524         * config/ia64/itanium1.md (1_scall bypass): Change 2_mmalua to
13525         1_mmalua.
13526
13527 2005-02-01  Eric Christopher  <echristo@redhat.com>
13528
13529         * config/mips/mips.c (override_options): Warn if -mint64
13530         is used.
13531         * doc/invoke.texi (MIPS Options): Document that -mint64 is
13532         deprecated.
13533
13534 2005-02-01  Kazu Hirata  <kazu@cs.umass.edu>
13535
13536         * cse.c (cse_reg_info): Remove hash_next, next, regno.  Add
13537         timestamp.
13538         (cse_reg_info_list, cse_reg_info_list_free, REGHASH_SHIFT,
13539         REGHASH_SIZE, REGHASH_MASK, reg_hash, REGHASH_FN,
13540         cached_cse_reg_info, GET_CSE_REG_INFO): Remove.
13541         (cached_regno): Initialize to INVALID_REGNUM.
13542         (cse_reg_info_table_size,
13543         cse_reg_info_table_first_uninitialized,
13544         cse_reg_info_timestamp): New.
13545         (REG_TICK, REG_IN_TABLE, SUBREG_TICKED, REG_QTY): Use
13546         get_cse_reg_info.
13547         (init_cse_reg_info, get_cse_reg_info_1): New.
13548         (get_cse_reg_info): Cache the last look-up.
13549         (new_basic_block): Update the code to clear mappings from
13550         registers to cse_reg_info entries.
13551         (cse_main): Call init_cse_reg_info.
13552
13553         * cse.c (get_cse_reg_info): Update a comment.
13554
13555 2005-01-31  Steven Bosscher  <stevenb@suse.de>
13556
13557         PR c/19333
13558         * c-decl.c (start_decl): Do not warn about arrays of elements with
13559         an incomplete type here.
13560         (grokdeclarator): Do it here by making a pedwarn an error.
13561         * c-typeck.c (push_init_level): If there were previous errors with
13562         the constructor type, do not warn about braces for initializers.
13563         (process_init_element): Likewise for excess initializer elements.
13564
13565 2005-01-31  Kazu Hirata  <kazu@cs.umass.edu>
13566
13567         * cse.c (delete_trivially_dead_insn): Don't iterate.
13568
13569 2005-01-31  Andrew Pinski  <pinskia@physics.uc.edu>
13570
13571         * config/rs6000/rs6000.md (copysignsf3): New expand.
13572         (copysigndf3): Likewise.
13573
13574 2005-01-31  Steven Bosscher  <stevenb@suse.de>
13575
13576         * recog.c (constrain_operands): Only look for earlyclobber operand
13577         conflicts if an '&' constraint was seen.
13578
13579 2005-01-31  Marc Espie <espie@openbsd.org>
13580
13581         * config.gcc: Don't include embedded systems fragment, switches default
13582         debugging format to ELF.
13583         * config/i386/openbsdelf.h: Add DBX_REGISTER_NUMBER since we no
13584         longer pick it up there.
13585
13586 2005-01-31  Dale Johannesen  <dalej@apple.com>
13587
13588         * doc/extend.texi (nested functions): Fix linkage description.
13589         Clarify that static is not allowed.
13590
13591 2005-01-31  Dale Johannesen  <dalej@apple.com>
13592
13593         * config/rs6000/darwin.md (movsf_low_di):  Make work.
13594         (movdf_low_di):  Make work.
13595
13596 2005-01-31  Dale Johannesen  <dalej@apple.com>
13597
13598         * config/rs6000/darwin-tramp.asm (__trampoline_setup):
13599         Make work for 64 bit.
13600
13601 2005-01-31  Roger Sayle  <roger@eyesopen.com>
13602             Dale Johannesen  <dalej@apple.com>
13603
13604         PR middle-end/19650
13605         * fold-const.c (fold_binary_op_with_conditional_arg):
13606         Make types match original operands, before STRIP_NOPS.
13607
13608 2005-01-31  Alan Modra  <amodra@bigpond.net.au>
13609
13610         * config/rs6000/linux-unwind.h (struct gcc_vregs): New.
13611         (struct gcc_regs): Rename from gcc_pt_regs.  Add more regs.
13612         (struct gcc_sigcontext): Delete.  Merge contents to..
13613         (struct gcc_ucontext): ..here.
13614         (get_sigcontext): Delete.
13615         (get_regs): New function, like get_sigcontext but return regs ptr.
13616         64-bit version finds regs from r1 to support vdso.
13617         (ppc_linux_aux_vector): New function.
13618         (ppc_fallback_frame_state): Modify for get_regs.  Restore fprs
13619         and vector regs.
13620
13621 2005-01-31  Ira Rosen  <irar@il.ibm.com>
13622
13623         * tree-vectorizer.c (vect_analyze_offset_expr): Use ssizetype instead
13624         sizetype.
13625         (vect_get_base_and_offset): Use ssizetype instead sizetype. Remove
13626         redundant fold. Fix misalignment for MINUS_EXPR.
13627         (vect_compute_data_ref_alignment): Use ssizetype instead sizetype.
13628         (vect_analyze_pointer_ref_access): Likewise.
13629         (vect_get_memtag_and_dr): Likewise.
13630
13631 2005-01-31  Richard Henderson  <rth@redhat.com>
13632
13633         * config/i386/i386.c (absnegsf2_mixed): Remove all of the # hackery.
13634         (absnegsf2_sse, absnegsf2_i387, absnegdf2_mixed, absnegdf2_sse,
13635         absnegdf2_i387, absnegxf2_i387): Likewise.
13636
13637 2005-01-31  Richard Henderson  <rth@redhat.com>
13638
13639         PR 19696
13640         * optabs.c (expand_copysign_absneg): New.
13641         (expand_copysign_bit): Split out from ...
13642         (expand_copysign): ... here.  Use expand_copysign_absneg.
13643
13644 2005-01-30  Roger Sayle  <roger@eyesopen.com>
13645
13646         PR middle-end/19697
13647         * config/pa/pa.md (anddi3, iordi3): On HPPA64, disallow an integer
13648         constant as the second operand and a register as the third.
13649
13650 2005-01-31  Danny Smith  <dannysmith@users.sourceforge.net>
13651
13652         PR target/19704
13653         * config/i386/i386.c (ix86_function_ok_for_sibcall):  Also check
13654         that dllimport'd functions do not use all call-clobbered registers
13655         to pass parameters.
13656
13657 2005-01-30  Richard Henderson  <rth@redhat.com>
13658
13659         PR 19696
13660         * optabs.c (expand_absneg_bit): Split out from expand_unop and
13661         expand_abs_nojump and generalize.  Use operand_subword and
13662         emit_no_conflict_block.  Support large modes.
13663         (expand_abs_nojump): Use it.  Use HONOR_SIGNED_ZEROS to fall
13664         back to maximum.
13665         (expand_unop): Likewise.  Use HONOR_SIGNED_ZEROS to fall back
13666         negation to subtraction.
13667         (expand_copysign): Check that the format has signed zeros.
13668         Use operand_subword and emit_no_conflict_block.  Support large modes.
13669
13670 2005-01-30  Daniel Berlin  <dberlin@dberlin.org>
13671
13672         Fix PR tree-optimization/19624
13673
13674         * Makefile.in (tree-ssa-pre.o): Add CFGLOOP_H.
13675         * tree-ssa-pre.c: Add cfgloop.h.
13676         Update comment.
13677         (pre_stats): New member, constified.
13678         (inserted_exprs): New static variable.
13679         (NECESSARY): New macro.
13680         (create_expression_by_pieces): Fold the expression, and
13681         mark it as defaulting to not necessary. Also put in
13682         inserted_exprs.
13683         (fully_constant_expression): New function.
13684         (insert_into_preds_of_block): Modify to not insert phis when we
13685         are playing with induction variables.
13686         Push phis onto the inserted_exprs vector, and mark them as not
13687         necessary by default.
13688         (insert_aux): Call fully_constant_expression on eprime.
13689         If all edges produce the same value, mark it constant.
13690         (mark_operand_necessary): New function.
13691         (remove_dead_inserted_code): New function.
13692         (init_pre): Init loop optimizer to get loop info.
13693         (fini_pre): Free loop_optimizer, and inserted_exprs vec.
13694         (execute_pre): Commit edge inserts, then remove dead code.
13695
13696 2005-01-30  Richard Henderson  <rth@redhat.com>
13697
13698         * rtl.c (rtx_equal_p): No early exit for CONST_VECTOR.
13699         * varasm.c (const_rtx_hash_1): Handle CONST_VECTOR.
13700
13701 2005-01-30  Richard Henderson  <rth@redhat.com>
13702
13703         PR target/19700
13704         * config/i386/i386.c (ix86_expand_copysign): New.
13705         (ix86_split_copysign_const): New.
13706         (ix86_split_copysign_var): Rename from ix86_split_copysign,
13707         rearrange op1/nmask operands.
13708         * config/i386/i386-protos.h: Update.
13709         * config/i386/i386.md (copysignsf3): Use ix86_expand_copysign.
13710         (copysigndf3): Likewise.
13711         (copysignsf3_const, copysigndf3_const): New.
13712         (copysignsf3_var): Rename from copysignsf3, split out splitter
13713         and fix split predicate for X constraint.
13714         (copysigndf3_var): Similarly.
13715
13716 2005-01-30  Kazu Hirata  <kazu@cs.umass.edu>
13717
13718         * optabs.c, doc/c-tree.texi, doc/install.texi, doc/md.texi,
13719         doc/passes.texi, doc/rtl.texi, doc/sourcebuild.texi,
13720         doc/tm.texi, doc/tree-ssa.texi: Update copyright.
13721
13722 2005-01-29  Richard Henderson  <rth@redhat.com>
13723
13724         PR target/19690
13725         * config/i386/i386.md (movdf_nointeger, movdf_integer): Fix ordering
13726         of # and * in constraints.
13727
13728 2005-01-29  Richard Henderson  <rth@redhat.com>
13729
13730         PR middle-end/19689
13731         * expr.c (store_field): Don't strip sub-mode cast when the input
13732         data is even smaller.
13733
13734 2005-01-29  Richard Henderson  <rth@redhat.com>
13735
13736         PR middle-end/19687
13737         * expr.c (categorize_ctor_elements_1): Check for CONSTRUCTOR of a
13738         union being empty.
13739
13740 2005-01-29  Richard Henderson  <rth@redhat.com>
13741
13742         * combine.c (make_field_assignment): Fix argument order
13743         to gen_int_mode.
13744
13745 2005-01-29  Richard Guenther <richard.guenther@uni-tuebingen.de>
13746
13747         PR tree-optimization/15791
13748         * fold-const.c (extract_array_ref): New function.
13749         (fold): Fold comparisons between &a[i] and &a[j] or
13750         semantically equivalent trees.
13751
13752 2005-01-29  Jeff Law  <law@redhat.com>
13753
13754         * gcse.c (insert_expr_in_table): Revamp handling of available
13755         and anticipatable occurrence lists to avoid unnecessary list
13756         walking.
13757         (insert_set_in_table): Similarly.
13758
13759 2005-01-29  Joseph S. Myers  <joseph@codesourcery.com>
13760
13761         * c-common.c (fix_string_type): Just use c_build_qualified_type to
13762         build string type.
13763         (c_build_qualified_type): Build qualified array types with
13764         TYPE_MAIN_VARIANT pointing to corresponding unqualified type.
13765         * c-decl.c (c_make_fname_decl): Build unqualified array type
13766         before qualified type.
13767         (grokdeclarator): Use TYPE_MAIN_VARIANT of typedef type if element
13768         type is qualified, not just if type itself is.  Don't apply
13769         qualifiers to array type when declarator is processed.  Apply
13770         qualifiers to field type whether or not it is an array type.
13771         Don't handle array types specially for applying qualifiers to
13772         variables.
13773         * c-typeck.c (composite_type): Build unqualified element type and
13774         array type when forming composite of array types.
13775         (common_pointer_type, comptypes, comp_target_types,
13776         type_lists_compatible_p, build_indirect_ref, build_array_ref,
13777         convert_for_assignment): Don't apply TYPE_MAIN_VARIANT to array
13778         types.
13779         (type_lists_compatible_p): Cache TREE_VALUE (args1) and TREE_VALUE
13780         (args2) in variables a1 and a2.
13781
13782 2005-01-29  Kazu Hirata  <kazu@cs.umass.edu>
13783
13784         * cse.c (n_elements_made, max_elements_made): Remove.
13785         (insert): Don't touch n_elements_made.
13786         (cse_main): Don't touch n_elements_made or max_elements_made.
13787
13788 2005-01-28  Stephane Carrez  <stcarrez@nerim.fr>
13789
13790         PR target/15384
13791         * config/m68hc11/t-m68hc11-gas (dp-bit.c): Fix typo causing a
13792         configuration part of dp-bit.c to be lost.
13793
13794 2005-01-28  Roger Sayle  <roger@eyesopen.com>
13795
13796         * expmed.c (expand_mult_highpart_optab): When attempting to use
13797         a non-widening multiplication in a wider mode, the operands need
13798         to be converted (zero or sign extended) to that mode.
13799
13800 2005-01-28  Ian Lance Taylor  <ian@airs.com>
13801
13802         PR middle-end/16558
13803         PR middle-end/19583
13804         * gimple-low.c (block_may_fallthru): TRY_FINALLY_EXPR only falls
13805         through if both operands fall through.
13806
13807 2005-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13808
13809         * cse.c (fold_rtx) <PC>: Don't optimize.
13810
13811 2005-01-28  Jeff Law  <law@redhat.com>
13812
13813         * fold-const.c (fold, case CEIL_MOD_EXPR): Optimize 0 % X.
13814         (case FLOOR_MOD_EXPR, ROUND_MOD_EXPR, TRUNC_MOD_EXPR): Similarly.
13815
13816 2005-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13817
13818         * cse.c (cse_reg_info_free_list, cse_reg_info_used_list,
13819         cse_reg_info_used_list_end): Remove.
13820         (cse_reg_info_list, cse_reg_info_list_free): New.
13821         (get_cse_reg_info): When allocating an instance of
13822         cse_reg_info, add it to the beginning of the cse_reg_info_list
13823         list.  Remove code to maintain cse_reg_info_used_list.
13824         (new_basic_block): Reset the free list to the beginning of
13825         cse_reg_info_list.
13826
13827 2005-01-28  Richard Sandiford  <rsandifo@redhat.com>
13828
13829         * config/frv/frv.c (bdesc_2arg): Remove __MDPACKH.
13830         (frv_init_builtins): Change its prototype to take 4 uhalf arguments.
13831         (frv_expand_mdpackh_builtin): New function.
13832         (frv_expand_builtin): Use it to expand __MDPACKH.
13833         * doc/extend.texi (__MDPACKH): Update documentation.
13834
13835 2005-01-28  Uros Bizjak  <uros@kss-loka.si>
13836
13837         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Use
13838         SSE_FLOAT_MODE_P for use_sse computation.
13839
13840 2005-01-28  Ralf Corsepius  <ralf.corsepius@rtems.org>
13841
13842         PR target/19663
13843         * config/sparc/rtemself.h (LINK_GCC_C_SEQUENCE_SPEC): undefine.
13844
13845 2005-01-27  Richard Henderson  <rth@redhat.com>
13846
13847         * builtins.c (expand_builtin_copysign): New.
13848         (expand_builtin): Call it.
13849         * genopinit.c (optabs): Add copysign_optab.
13850         * optabs.c (init_optabs): Initialize it.
13851         (expand_copysign): New.
13852         * optabs.h (OTI_copysign, copysign_optab): New.
13853         (expand_copysign): Declare.
13854
13855         * config/alpha/alpha.md (UNSPEC_COPYSIGN): New.
13856         (copysignsf3, ncopysignsf3, copysigndf3, ncopysigndf3): New.
13857
13858         * config/i386/i386.c (ix86_build_signbit_mask): Split from ...
13859         (ix86_expand_fp_absneg_operator): ... here.
13860         (ix86_split_copysign): New.
13861         * config/i386/i386-protos.h: Update.
13862         * config/i386/i386.md (UNSPEC_COPYSIGN): New.
13863         (copysignsf3, copysigndf3): New.
13864
13865         * config/ia64/ia64.md (UNSPEC_COPYSIGN): New.
13866         (copysignsf3, ncopysignsf3): New.
13867         (copysigndf3, ncopysigndf3): New.
13868         (copysignxf3, ncopysignxf3): New.
13869         * config/ia64/ia64.c (rtx_needs_barrier): Handle UNSPEC_COPYSIGN.
13870
13871 2005-01-27  Arend Bayer  <arend.bayer@web.de>
13872             Kazu Hirata  <kazu@cs.umass.edu>
13873
13874         * cse.c: (find_best_addr): Don't call copy_rtx before calling
13875         fold_rtx.  Save cost recomputation if fold_rtx did nothing.
13876         (fold_rtx) <ASM_OPERANDS>: Don't do anything if INSN is
13877         NULL_RTX.
13878
13879 2005-01-27  Jeff Law  <law@redhat.com>
13880
13881         * tree-into-ssa.c (ssa_rewrite_initialize_block): Do not register
13882         definitions of SSA_NAMEs which are not being rewritten.
13883         (rewrite_ssa_into_ssa): Only initialize the current definition
13884         of an SSA_NAME if that SSA_NAME has been marked for rewriting.
13885         If checking is enabled, assert that SSA_NAME_AUX is clear for all
13886         SSA_NAMEs before returning.
13887
13888 2005-01-27  Kazu Hirata  <kazu@cs.umass.edu>
13889
13890         * c-common.def, c-dump.c, c-gimplify.c, c-objc-common.c,
13891         cfgexpand.c, dbxout.c, function.h, opts.c, tree-flow-inline.h,
13892         tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-tailcall.c,
13893         config/avr/avr.md, config/cris/aout.h, config/cris/cris.h,
13894         config/mips/iris6.h, config/sh/sh.c: Update copyright.
13895
13896 2005-01-27  Steven Bosscher  <stevenb@suse.de>
13897
13898         PR middle-end/17278
13899         * opts.c (decode_options): Move flag_thread_jumps from -O1 and
13900         higher to -O2 and higher.  Likewise for tree PRE.
13901         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only iterate at -O2
13902         and better.
13903
13904 2005-01-27  Ian Lance Taylor  <ian@airs.com>
13905
13906         PR middle-end/19583
13907         * gimple-low.c (try_catch_may_fallthru): New static function.
13908         (block_may_fallthru): Handle TRY_CATCH_EXPR.
13909         * tree-inline.c (expand_call_inline): Don't warn about reaching
13910         the end of a non-void function being inlined if the function uses
13911         a return slot.
13912
13913 2005-01-27  Jakub Jelinek  <jakub@redhat.com>
13914
13915         * config/i386/i386.h (CALL_USED_REGISTERS): Fix comment pastos.
13916
13917         PR c/18946
13918         * c-decl.c (warn_if_shadowing): Handle old_decl error_mark_node.
13919         (pushdecl): Only use DECL_FILE_SCOPE_P if DECL_P.
13920         (implicitly_declare): Handle error_mark_node.
13921
13922 2005-01-27  Richard Henderson  <rth@redhat.com>
13923
13924         PR tree-opt/14329
13925         * tree.h (struct tree_decl): Add debug_expr_is_from.
13926         (DECL_DEBUG_EXPR_IS_FROM): New.
13927         (DECL_DEBUG_EXPR): Rename from DECL_DEBUG_ALIAS_OF.
13928         * dwarf2out.c (dwarf2out_var_location): Update to match.
13929         * tree-outof-ssa.c (create_temp): Likewise.
13930         * var-tracking.c (track_expr_p): Likewise.
13931         * tree-sra.c (instantiate_element): Set DECL_DEBUG_EXPR.
13932         * c-objc-common.c (c_tree_printer) <'D'>: Handle DECL_DEBUG_EXPR.
13933         * toplev.c (default_tree_printer): Likewise.
13934
13935 2005-01-27  Alexandre Oliva  <aoliva@redhat.com>
13936
13937         * config/frv/frv.c (frv_class_likely_spilled_p): Add GR8_REGS,
13938         GR9_REGS, GR89_REGS, FDPIC_FPTR_REGS, FDPIC_REGS.
13939
13940 2005-01-27  Steven Bosscher  <stevenb@suse.de>
13941
13942         * tree.h (SWITCH_COND, SWITCH_BODY, SWITCH_LABELS, CASE_LOW,
13943         CASE_HIGH, CASE_LABEL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
13944         ASM_CLOBBERS): Add tree checks.
13945
13946         * c-common.h (SWITCH_TYPE): Rename to SWITCH_STMT_TYPE.
13947         (SWITCH_STMT_COND, SWITCH_STMT_BODY): New.
13948         * c-common.def (SWITCH_STMT): Update to match.
13949         * c-common.c (c_do_switch_warnings): Use SWITCH_STMT accessor
13950         macros instead of SWITCH_EXPR ones.
13951         * c-dump.c (c_dump_tree): Likewise.
13952         * c-gimplify.c (gimplify_switch_stmt): Likewise.
13953         * c-typeck.c (c_start_case, do_case, c_finish_case): Likewise.
13954
13955         * doc/c-tree.texi (SWITCH_STMT): Update accessor macro names.
13956
13957 2005-01-27  Alan Modra  <amodra@bigpond.net.au>
13958
13959         * unwind-dw2.c (execute_stack_op): Add missing cases for
13960         DW_OP_shl, DW_OP_shr, DW_OP_shra, DW_OP_xor.
13961
13962 2005-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
13963
13964         * config.gcc (Obsolete configurations): Remove 'dummy', add
13965         sparclite-*-coff*, sparclite-*-elf*, sparc86x-*-elf* and
13966         sparc-*-openbsd*.
13967
13968 2005-01-26  Diego Novillo  <dnovillo@redhat.com>
13969
13970         PR tree-optimization/19633
13971         * tree-ssa-alias.c (ptr_is_dereferenced_by): Also handle
13972         CALL_EXPRs.
13973         (maybe_create_global_var): Do not create .GLOBAL_VAR if there
13974         are no call-clobbered variables.
13975         * tree-outof-ssa.c (check_replaceable): Return false for calls
13976         with side-effects.
13977
13978 2005-01-26  Ulrich Weigand  <uweigand@de.ibm.com>
13979
13980         * dbxout.c (dbxout_symbol_location): Resolve constant pool references
13981         even for variables with NULL DECL_INITIAL.
13982
13983 2005-01-26  Stuart Hastings  <stuart@apple.com>
13984
13985         * gimplify.c (shortcut_cond_expr): Re-compute side-effects.
13986
13987 2005-01-26  Richard Henderson  <rth@redhat.com>
13988
13989         PR middle-end/18008
13990         * c-decl.c (finish_struct): Set DECL_MODE after resetting a
13991         field's type.
13992         * expr.c (store_field): Strip conversions to odd-bit-sized types
13993         if the destination field width matches.
13994
13995 2005-01-26  Richard Henderson  <rth@redhat.com>
13996
13997         * c-decl.c, expmed.c, expr.c: Revert last change.
13998
13999 2005-01-26  Richard Henderson  <rth@redhat.com>
14000
14001         PR middle-end/18008
14002         * c-decl.c (finish_struct): Set DECL_MODE after resetting a
14003         field's type.
14004         * expmed.c (store_fixed_bit_field): Create a paradoxical subreg
14005         if we don't need the bits above those present in the current mode.
14006         * expr.c (store_field): Strip conversions to odd-bit-sized types
14007         if the destination field width matches.
14008
14009 2005-01-26  Richard Sandiford  <rsandifo@redhat.com>
14010
14011         * config/mips/iris6.h (ENDFILE_SPEC): Don't link in irix-csr.o if
14012         either -ffast-math or -funsafe-math-optimizations is in use.
14013
14014 2005-01-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>
14015
14016         PR target/19293
14017         PR target/19329
14018         * config/avr/avr.c (notice_update_cc): Only set condition code for
14019         ashrqi3 if shift count > 0.
14020         (out_shift_with_cnt): Handle shift count <= 0 as a no-op.
14021         (ashlqi3_out, ashlhi3_out, ashlsi3_out, ashrqi3_out, ashrhi3_out,
14022         ashrsi3_out, lshrqi3_out, lshrhi3_out, lshrsi3_out): Handle shift
14023         count <= 0 as a no-op, and shift count >= width by copying zero
14024         or sign bit to all bits of the result.
14025         * config/avr/avr.md (all shifts): Add alternatives for zero shift
14026         count, with attribute "length" set to 0 and "cc" set to "none".
14027
14028 2005-01-26  Aldy Hernandez  <aldyh@redhat.com>
14029
14030         * doc/invoke.texi: Document -mTLS.
14031
14032         * testsuite/gcc.target/frv/all-tls-global-dynamic.c: New.
14033         * testsuite/gcc.target/frv/all-tls-initial-exec.c: New.
14034         * testsuite/gcc.target/frv/all-tls-initial-exec-pic.c: New.
14035         * testsuite/gcc.target/frv/all-tls-local-dynamic.c: New.
14036         * testsuite/gcc.target/frv/all-tls-local-dynamic-plt.c: New.
14037         * testsuite/gcc.target/frv/all-tls-local-dynamic-plt-pic.c: New.
14038         * testsuite/gcc.target/frv/all-tls-local-exec.c: New.
14039         * testsuite/gcc.target/frv/all-tls-local-exec-TLS.c: New.
14040
14041         * configure.ac: Check for a TLS capable gas.
14042
14043         * configure: Regenerate.
14044
14045 2005-01-26  Richard Henderson  <rth@redhat.com>
14046
14047         PR middle-end/18008
14048         * combine.c (make_field_assignment): Simplify store to zero_extract
14049         from a source with an overlapping mask.
14050
14051 2005-01-26  Aldy Hernandez  <aldyh@redhat.com>
14052
14053         2004-11-11  Eric Christopher  <echristo@redhat.com>
14054
14055         * config/frv/frv.md: Add fr400_integer automaton. Don't
14056         allow TYPE_MUL, TYPE_MACC, or TYPE_CUT to issue in parallel
14057         to TYPE_MACC.
14058
14059 2005-01-26  Steven Bosscher  <stevenb@suse.de>
14060
14061         PR middle-end/16585
14062         * cfgbuild.c (make_edges): Do not clear or set
14063         current_function_has_computed_jump.
14064         * function.h (struct function): Remove the has_computed_jump field.
14065         (current_function_has_computed_jump): Do not define.
14066         * sched-rgn.c (is_cfg_nonregular): Return true if a basic block ends
14067         in a computed jump.  Ignore current_function_has_computed_jump.
14068
14069 2005-01-26  Richard Henderson  <rth@redhat.com>
14070
14071         PR middle-end/19515
14072         * expr.c (categorize_ctor_elements): New argument p_must_clear.
14073         (categorize_ctor_elements_1): Likewise.  Detect a union that isn't
14074         fully initialized.
14075         (mostly_zeros_p): Update for new categorize_ctor_elements argument.
14076         * gimplify.c (gimplify_init_constructor): Likewise.  Only shove
14077         objects into static storage if they have more than one non-zero value.
14078         * tree.h (categorize_ctor_elements): Update decl.
14079
14080 2005-01-26  Steven Bosscher  <stevenb@suse.de>
14081
14082         PR middle-end/19616
14083         * tree.h (CALL_EXPR_TAILCALL): Add comment.
14084         * calls.c (check_sibcall_argument_overlap_1): Revert the change
14085         to this function from 2004-07-10.
14086         * tree-tailcall.c (suitable_for_tail_opt_p): Do not consider the
14087         the current function for tail call optimizations if the address
14088         of one of it its arguments is taken.
14089
14090 2005-01-26  Kazu Hirata  <kazu@cs.umass.edu>
14091
14092         * cse.c (fold_rtx): Call equiv_constant only when necessary.
14093
14094 2005-01-26  Bernd Schmidt  <bernd.schmidt@analog.com>
14095
14096         * function.c (expand_function_end): If current_function_calls_alloca,
14097         emit stack restore in a place that is reached when the function falls
14098         through at the end.
14099
14100 2005-01-26  Alexandre Oliva  <aoliva@redhat.com>
14101
14102         * Makefile.in (../$(build_subdir)/fixincludes/fixincl): Add dummy
14103         rule to avoid matching inappropriate suffix rule.
14104
14105 2005-01-26  Jan Hubicka  <jh@suse.cz>
14106
14107         PR tree-optimization/19241
14108         * tree-inline.c (copy_body_r): Do not walk subtrees after substituting.
14109
14110 2005-01-26  Hans-Peter Nilsson  <hp@axis.com>
14111
14112         * config/cris/cris.h (LIB_SPEC) <sim*>: Use -lsyslinux, not
14113         -lsyssim.  Wrap -lc -lsyssim in --start-group --end-group instead
14114         of doubling.
14115         (STARTFILE_SPEC): Add crti.o, before crtbegin.o.
14116         <sim*>: Always use crt1.o, regardless of N in simN.
14117         <!sim>: Drop support for -pg and -p variants; always use crt0.o.
14118         (ENDFILE_SPEC): Add crtn.o, after crtend.o.
14119         (CRT_CALL_STATIC_FUNCTION): Remove.
14120         * config/cris/aout.h (STARTFILE_SPEC): <!melinux && sim*>: Always
14121         use crt1.o, regardless of N in simN.
14122         <!sim>: Drop support for -pg and -p variants; always use crt0.o.
14123         (LIB_SPEC): Do not define; default to the one in config/cris/cris.h.
14124         (CRIS_CPP_SUBTARGET_SPEC) <melinux && !nostdinc>: Remove special
14125         case isystem setting.
14126         (MAX_OFILE_ALIGNMENT): Correct to 32, not 16.
14127
14128 2005-01-25  Ian Lance Taylor  <ian@airs.com>
14129
14130         * gimple-low.c (block_may_fallthru): Correct handling of
14131         SWITCH_EXPR--may fall through if SWITCH_LABELS is NULL.
14132
14133 2005-01-26  Hans-Peter Nilsson  <hp@axis.com>
14134
14135         * config/cris/cris.h (CPP_SPEC): Adjust the various mtune=
14136         handlers to match indentation; nested under the mtune=* handler.
14137         Similar for mcpu= and march=.
14138
14139 2005-01-25  Daniel Jacobowitz  <dan@codesourcery.com>
14140
14141         * config/mips/linux.h (LIB_SPEC): Remove -rpath-link.
14142         * config/mips/linux64.h (LIB_SPEC): Likewise.
14143         * config/mn10300/linux.h (LIB_SPEC): Likewise.
14144         * config/sh/linux.h (LIB_SPEC): Likewise.
14145
14146 2005-01-25  Aldy Hernandez  <aldyh@redhat.com>
14147
14148         * config/frv/frv.c (frv_legitimize_tls_address): New.
14149         (TARGET_HAVE_TLS): Define.
14150         (FRV_SYMBOL_REF_TLS_P): Define.
14151         (frv_override_options): Handle new register classes.
14152         (frv_legitimate_address_p): Reject tls addresses.
14153         (frv_legitimize_address): Handle TLS addresses.
14154         (gen_inlined_tls_plt): New.
14155         (gen_tlsmoff): New.
14156         (frv_legitimize_tls_address): New.
14157         (unspec_got_name): Add TLS entries.
14158         (got12_operand): Add R_FRV_TLSMOFF12 case.
14159         (frv_emit_move): Fixup TLS addresses.
14160         (frv_emit_movsi): Legitimize TLS addresses.
14161
14162         * config/frv/frv.h (MASK_BIG_TLS): New.
14163         (TARGET_BIG_TLS): New.
14164         (HAVE_AS_TLS): Define.
14165         (TARGET_SWITCHES): Add -mTLS and -mtls options.
14166         (enum reg_class): Add GR8_REGS, GR9_REGS, GR89_REGS.
14167         (REG_CLASS_NAMES): Same.
14168         (REG_CLASS_CONTENTS): Same.
14169         (CONSTRAINT_LEN): New.
14170         (REG_CLASS_FROM_CONSTRAINT): New.
14171         (PREDICATE_CODES): Add symbolic_operand.
14172
14173         * config/frv/frv.md (define_constants): Add UNSPEC_GETTLSOFF,
14174         UNSPEC_TLS_LOAD_GOTTLSOFF12, UNSPEC_TLS_INDIRECT_CALL,
14175         UNSPEC_TLS_TLSDESC_LDD, UNSPEC_TLS_TLSDESC_LDD_AUX,
14176         UNSPEC_TLS_TLSOFF_LD, UNSPEC_TLS_LDDI, UNSPEC_TLSOFF_HILO,
14177         R_FRV_GOTTLSOFF_HI, R_FRV_GOTTLSOFF_LO, R_FRV_TLSMOFFHI,
14178         R_FRV_TLSMOFFLO, R_FRV_TLSMOFF12, R_FRV_TLSDESCHI,
14179         R_FRV_TLSDESCLO, R_FRV_GOTTLSDESCHI, R_FRV_GOTTLSDESCLO, GR8_REG,
14180         GR9_REG, GR14_REG, LRREG.
14181         (type): Add load_or_call attribute.
14182         ("load_or_call"): New reservation.
14183         ("call_gettlsoff"): New.
14184         ("tls_indirect_call"): New.
14185         ("tls_load_gottlsoff12"): New.
14186         ("tlsoff_hilo"): New.
14187         ("tls_tlsdesc_ldd"): New.
14188         ("tls_tlsoff_ld"): New.
14189         ("tls_lddi"): New.
14190
14191         * config/frv/frv-protos.h (symbolic_operand): Protoize.
14192
14193         2005-01-25  Alexandre Oliva  <aoliva@redhat.com>
14194
14195         * config/frv/frv.h (ASM_OUTPUT_DWARF_DTPREL): Define.
14196         * config/frv/frv-protos.h (frv_output_dwarf_dtprel): Declare.
14197         * config/frv/frv.c (TLS_BIAS): Define.
14198         (frv_output_dwarf_dtprel): New.
14199
14200 2005-01-26  Jakub Jelinek  <jakub@redhat.com>
14201
14202         PR rtl-optimization/19579
14203         * ifcvt.c (noce_try_cmove_arith): If emitting instructions to set up
14204         both A and B, see if they don't clobber registers the other expr uses.
14205
14206 2005-01-25  J"orn Rennecke <joern.rennecke@st.com>
14207
14208         * real.c (do_add): Initialize signalling and canonical members.
14209
14210         * real.c (real_from_integer): Zero out destination.
14211
14212 2005-01-18  Jan Hubicka  <jh@suse.cz>
14213
14214         PR tree-optimize/19337
14215         * tree-inline.c (initialize_inlined_parameters): Copy
14216         saved_static_chain_decl only.
14217
14218 2005-01-25  Richard Henderson  <rth@redhat.com>
14219
14220         PR target/19556
14221         PR target/19584
14222         * config/i386/i386.c (x86_inter_unit_moves): Zero.
14223         (ix86_preferred_reload_class): Rewrite fp-constant section, with
14224         80387 enabled, to return a proper subclass.  Return the subset that
14225         overlaps with GENERAL_REGS for PLUS.
14226         * config/i386/i386.md (movsi_1, movdi_2): Set type to "mmx" for pxor.
14227
14228 2005-01-25  Richard Henderson  <rth@redhat.com>
14229
14230         PR middle-end/19609
14231         * tree-complex.c (expand_complex_div_wide): Use the correct formulae.
14232
14233 2005-01-25  Roger Sayle  <roger@eyesopen.com>
14234
14235         * expmed.c (choose_multiplier): Change interface to return the
14236         multiplier lowpart as an rtx instead of an unsigned HOST_WIDE_INT.
14237         (expand_divmod): Update calls to choose_multiplier.
14238
14239 2005-01-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14240
14241         PR middle-end/19330
14242         * expmed.c (extract_bit_field): Use adjust_address instead of
14243         gen_lowpart when op0 is a MEM.
14244
14245 2005-01-24  Steven Bosscher  <stevenb@suse.de>
14246
14247         * cfgexpand.c (expand_gimple_tailcall): Fix typo.
14248
14249 2005-01-24  Richard Sandiford  <rsandifo@redhat.com>
14250
14251         * config/mips/irix-csr.c: New file.
14252         * config/mips/t-iris6 (irix-csr.o): New rule to build it.
14253         (EXTRA_MULTILIB_PARTS): Add irix-csr.o.
14254         * config/mips/iris6.h (ENDFILE_SPEC): Include it in n32 and n64
14255         executables.
14256
14257 2005-01-24  Eric Botcazou  <ebotcazou@libertysurf.fr>
14258
14259         PR bootstrap/19364
14260         * config.gcc (sparc-*-elf*): Remove sol2.h, sparc/sol2.h and
14261         sparc/elf.h, add sparc/sp-elf.h.
14262         (sparc-*-rtems*): Likewise.
14263         (sparclite-*-elf*): Remove sol2.h, sparc/sol2.h, sparc/elf.h and
14264         tm-dwarf2.h, add sparc/sp-elf.h.
14265         (sparc86x-*-elf): Likewise.
14266         (sparc64-*-elf*): Remove sol2.h, sparc/sol2.h and tm-dwarf2.h.
14267         * config/sparc/liteelf.h (TARGET_SUB_OS_CPP_BUILTINS): Rename into
14268         TARGET_OS_CPP_BUILTINS.
14269         * config/sparc/sp86x-elf (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
14270         * config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
14271         Undefine it.
14272         * config/sparc/openbsd64.h (NO_IMPLICIT_EXTERN_C): Undefine.
14273         * config/sparc/sp64-elf.h (NO_IMPLICIT_EXTERN_C): New macro.
14274         (SWITCH_TAKES_ARG): Likewise.
14275         (LOCAL_LABEL_PREFIX): Likewise.
14276         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
14277         (TARGET_N_FORMAT_TYPES): Delete.
14278         (TARGET_FORMAT_TYPES): Likewise.
14279         (ASM_DECLARE_FUNCTION_SIZE): Likewise.
14280         * config/sparc/elf.h: Delete.
14281         * config/sparc/sp-elf.h: New file.
14282
14283 2005-01-24  Kazu Hirata  <kazu@cs.umass.edu>
14284
14285         * tree-flow-inline.h (phi_arg_from_edge): Remove.
14286         * tree-flow.h: Remove the corresponding prototype.
14287         * tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-ssa.c,
14288         tree-vectorizer.c: Use dest_idx instead of phi_arg_from_edge.
14289
14290 2005-01-24  Jakub Jelinek  <jakub@redhat.com>
14291
14292         PR target/17751
14293         * config/rs6000/rs6000.c (rs6000_file_start): Create toc section
14294         for AIX ABI or ELF -fPIC.
14295         (rs6000_emit_load_toc_table): Don't create toc_section here.
14296         (rs6000_xcoff_file_start): Nor here.
14297
14298 2005-01-24  J"orn Rennecke <joern.rennecke@st.com>
14299
14300         * sh.c (ra.h): Don't #include.
14301         (hard_regs_intersect_p): New function, resurrected from ra.c.
14302
14303         * sh.c: Fix 1996 Copyright.
14304
14305 2005-01-24  Richard Henderson  <rth@redhat.com>
14306             Aldy Hernandez  <aldyh@redhat.com>
14307
14308         * regrename.c (note_sets): Handle subregs.
14309
14310 2005-01-24  Joseph S. Myers  <joseph@codesourcery.com>
14311
14312         PR bootstrap/18058
14313         * genconditions.c (write_header, write_conditions): Elide file if
14314         not GCC >= 3.0.1.
14315
14316 2005-01-24  Kazu Hirata  <kazu@cs.umass.edu>
14317
14318         * c-opts.c, expmed.c, gengtype.c, tree-complex.c,
14319         config/arm/iwmmxt.md, config/avr/avr.c, config/s390/s390.h:
14320         Update copyright.
14321
14322 2005-01-24  Jakub Jelinek  <jakub@redhat.com>
14323
14324         * builtins.c (get_pointer_alignment, gimplify_va_arg_expr,
14325         expand_builtin_printf, expand_builtin_fprintf,
14326         expand_builtin_sprintf): Use POINTER_TYPE_P instead TREE_CODE
14327         checking against POINTER_TYPE.
14328         (validate_arglist): Handle POINTER_TYPE code by checking
14329         POINTER_TYPE_P.
14330
14331 2005-01-24  Paolo Bonzini  <bonzini@gnu.org>
14332
14333         * rtlanal.c (non_rtx_starting_operands, for_each_rtx_1,
14334         init_rtlanal): New.
14335         (for_each_rtx): Call for_each_rtx_1.
14336         * rtl.h (init_rtlanal): Declare.
14337         * toplev.c (backend_init): Call init_rtlanal.
14338
14339 2005-01-24  Jakub Jelinek  <jakub@redhat.com>
14340
14341         * flow.c (propagate_one_insn): Formatting.
14342
14343         PR middle-end/19551
14344         * flow.c (libcall_dead_p): Be more conservative if unsure.
14345         If there are any instructions between insn and call, see if they are
14346         all dead before saying the libcall is dead.
14347
14348 2005-01-24  Uros Bizjak  <uros@kss-loka.si>
14349
14350         * config/i386/i386.md (*extendsfdf2_sse): Use "nonimmediate_operand"
14351         operand constraint for operand 0.
14352
14353 2005-01-23  Richard Henderson  <rth@redhat.com>
14354
14355         PR 19486
14356         * tree-complex.c (expand_complex_div_wide): Set EDGE_FALLTHRU on
14357         edges leading to join block.
14358
14359 2005-01-23  Roger Sayle  <roger@eyesopen.com>
14360
14361         * expmed.c (expand_mult_highpart): Make static.  Change type of
14362         constant multiplier argument from unsigned HOST_WIDE_INT to rtx.
14363         (expand_divmod): Updates calls to expand_mult_highpart by using
14364         gen_int_mode to pass a CONST_INT rtx.
14365         * rtl.h (expand_mult_highpart): Remove prototype.
14366
14367 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
14368
14369         * flow.c (regset_bytes, regset_size): Remove.
14370
14371         * cfganal.c: Fix a reference to Harvey's paper.
14372
14373 2005-01-23  Steven Bosscher  <stevenb@suse.de>
14374
14375         PR rtl-optimization/19464
14376         * tree-optimize.c (init_tree_optimization_passes): Add one more
14377         copyrename pass just before out-of-ssa.
14378
14379 2005-01-23  Joseph S. Myers  <joseph@codesourcery.com>
14380
14381         PR bootstrap/18058
14382         * recog.c (recog_memoized): Don't define if GENERATOR_FILE.
14383         * ggc-none.c (ggc_free): Define.
14384
14385 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
14386
14387         * cse.c (max_reg, max_insn_uid): Remove.
14388         (cse_main): Don't access max_reg or max_insn_uid.
14389
14390         * c-common.c (explicit_flag_signed_bitfields,
14391         lang_statement_code_p, lang_expand_function_end): Remove.
14392         * c-common.h: Remove the corresponding declarations.
14393         * c-opts.c (c_common_handle_option): Remove all write access
14394         to explicit_flag_signed_bitfields.
14395
14396         * cgraph.c (cgraph_varpool_n_nodes): Remove.
14397         (cgraph_varpool_node): Don't access cgraph_varpool_n_nodes.
14398         * cgraph.h: Remove the corresponding declaration.
14399
14400         * gcse.c (null_pointer_info): Remove.
14401
14402 2005-01-23  Roger Sayle  <roger@eyesopen.com>
14403             Eric Botcazou  <ebotcazou@libertysurf.fr>
14404
14405         * combine.c (simplify_logical): Only simplify logical expressions
14406         of the form ior(and(x,y),z) by the inverse distributive law if the
14407         result is cheaper than the original.
14408
14409 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
14410
14411         * alias.c, c-common.h, c-incpath.c, c-incpath.h, expr.c,
14412         fold-const.c, gimplify.c, params.h, tree-data-ref.c,
14413         tree-if-conv.c, tree-nested.c, tree-outof-ssa.c,
14414         tree-ssa-dom.c, tree-vectorizer.c, tree.def, config/darwin.c,
14415         config/freebsd-spec.h, config/arm/arm.h,
14416         config/h8300/h8300.md, config/i386/i386.md,
14417         config/i386/predicates.md, config/i386/sse.md,
14418         config/ia64/ia64.c, config/ip2k/ip2k.c, config/s390/s390.c,
14419         config/vax/vax.md: Fix comment typos.  Follow spelling
14420         conventions.
14421
14422 2005-01-23  Steven Bosscher  <stevenb@suse.de>
14423
14424         * gengtype.c (walk_type): Produce `not equal to' compares for loop
14425         tests, instead of `less than'.
14426
14427 2005-01-23  Richard Sandiford  <rsandifo@redhat.com>
14428
14429         * function.c (assign_parm_setup_block): When creating a new stack slot
14430         for a parameter, get its alignment from the parameter's DECL_ALIGN
14431         rather than the type's TYPE_ALIGN.  Make sure that the parameter
14432         is at least word aligned.
14433
14434 2005-01-22  Roger Sayle  <roger@eyesopen.com>
14435
14436         PR middle-end/19378
14437         * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
14438
14439 2005-01-22  Richard Henderson  <rth@redhat.com>
14440
14441         PR target/19506
14442         * config/i386/i386.md (movsfcc_1_sse_max): Use nonimmediate_operand
14443         in both compare operands.
14444         (movdfcc_1_sse_max): Likewise.
14445         (movsfcc_1_sse): Likewise.  Add earlyclobber for scratch.
14446         (movdfcc_1_sse): Likewise.
14447         * config/i386/i386.c (ix86_split_sse_movcc): Emit copies into the
14448         scratch register as needed.
14449
14450 2005-01-22  Richard Henderson  <rth@redhat.com>
14451
14452         * config/i386/i386.md (smaxsf3): Fix mnemonic typo.
14453
14454         * config/i386/i386.c (ix86_prepare_fp_compare_args): Fix is_sse test.
14455
14456 2005-01-22  Richard Henderson  <rth@redhat.com>
14457
14458         * genopinit.c (optabs): Use smin/smax for floating point too.
14459         * doc/md.texi: Update to match.  Clarify that floating point
14460         results are undefined for +0/-0 and NaN.
14461         * doc/rtl.texi: Likewise.
14462         * rtl.def (SMIN, SMAX): Likewise
14463         * tree.def (MIN_EXPR, MAX_EXPR): Likewise.
14464
14465         * config/alpha/alpha.md (smaxdf3, smindf3, smaxsf3, sminsf3): Add
14466         leading 's' to the name.
14467         * config/ia64/ia64.md (smaxsf3, sminsf3, smaxdf3, smindf3,
14468         smaxxf3, sminxf3): Likewise.
14469         * config/rs6000/rs6000.md (smaxdf3, smindf3, smaxsf3, sminsf3):
14470         Likewise.
14471
14472 2005-01-22  Paul Brook  <paul@codesourcery.com>
14473
14474         * config/arm/arm.md: Use "Uy" constraint for wcgr load/stores.
14475
14476 2005-01-21  Mark Dettinger  <dettinge@de.ibm.com>
14477
14478         * config/s390/s390.c (struct processor_costs): New fields
14479         dlgr, dlr, dr, dsgfr, dsgr.
14480         (z900_cost, z990_cost): Values for new fields.
14481         (s390_rtx_costs): New cases MEM und COMPARE in switch
14482         statement. Modified handling of SIGN_EXTEND, ZERO_EXTEND,
14483         DIV, MOD, UDIV, UMOD.
14484
14485 2005-01-21  Ulrich Weigand  <uweigand@de.ibm.com>
14486
14487         * config/s390/s390.md ("doloop_si64"): Reload input value directly
14488         into the register being decremented.
14489         ("doloop_si31", "doloop_di"): Likewise.
14490         ("*doloop_si_long"): Adapt pattern.
14491
14492 2005-01-21  Ulrich Weigand  <uweigand@de.ibm.com>
14493
14494         * config/s390/s390.h (HARD_REGNO_NREGS): Fix computation for
14495         access registers.
14496         (CLASS_MAX_NREGS): Likewise.
14497
14498 2005-01-21  Daniel Berlin  <dberlin@dberlin.org>
14499
14500         * doc/tree-ssa.texi (Statement Operands): Add example for new
14501         must-def macro. Note deprecation of old operands interface.
14502
14503 2005-01-22  Richard Sandiford  <rsandifo@redhat.com>
14504
14505         PR tree-optimization/19484
14506         * tree-cfg.c (remove_fallthru_edge): New function.
14507         (cleanup_control_flow): Remove fallthru edges from calls that are
14508         now known not to return.
14509
14510 2005-01-20  Daniel Berlin  <dberlin@dberlin.org>
14511
14512         Fix PR tree-optimization/19038
14513         * tree-ssa-dom.c (cprop_operand): Don't replace loop invaeriant
14514         copies with loop variant ones.
14515
14516 2005-01-22  Kazu Hirata  <kazu@cs.umass.edu>
14517
14518         * cfganal.c, real.h, reorg.c, timevar.def, tree-ssa-ccp.c,
14519         config/alpha/alpha-protos.h, config/alpha/alpha.h,
14520         config/alpha/alpha.md, config/alpha/predicates.md,
14521         config/sparc/freebsd.h, config/sparc/netbsd-elf.h,
14522         config/sparc/sol2.h: Update copyright.
14523
14524         * tree-cfg.c (remove_forwarder_block_with_phi): Look at the
14525         first label to see if it is a nonlocal label.
14526
14527 2005-01-22  David Edelsohn  <edelsohn@gnu.org>
14528             Andrew Pinski  <pinskia@physics.uc.edu>
14529
14530         PR target/19491
14531         * config/rs6000/rs6000.c (rs6000_va_start): Saturate n_gpr at
14532         maximum number of GPRs.  Saturate n_fpr at maximum number of FPRs.
14533
14534 2005-01-22  Ralf Corsepius  <ralf.corsepius@rtems.org>
14535
14536         * config/rs6000/rtems.h: Update copyright.
14537
14538 2005-01-22  Ralf Corsepius  <ralf.corsepius@rtems.org>
14539
14540         PR target/19548
14541         * config/rs6000/rtems.h: Resurrect cpp_os_rtems_spec from gcc < 3.4.
14542         (CPP_OS_RTEMS_SPEC): New (From gcc-3.3's config/rs6000/sys4.h).
14543         (SUBSUBTARGET_EXTRA_SPECS): Use CPP_OS_RTEMS_SPEC.
14544
14545 2005-01-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
14546
14547         PR c/18809
14548         * c-typeck.c (convert_arguments): Check for error_mark_node.
14549
14550 2005-01-21  Ian Lance Taylor  <ian@airs.com>
14551
14552         PR tree-optimization/13000
14553         * tree-inline.c: Include "tree-flow.h".
14554         (expand_call_inline): If warn_return_type, warn if non-void inline
14555         function falls through.
14556         * tree-cfg.c (execute_warn_function_return): Don't warn about
14557         control reaching end if TREE_NO_WARNING is set.  Set
14558         TREE_NO_WARNING.
14559         * gimple-low.c (block_may_fallthru): Don't assume that SWITCH_EXPR
14560         has been lowered.
14561         * gimplify.c (shortcut_cond_expr): Don't emit a jump over the else
14562         branch if we don't need one.
14563         * c-typeck.c: Include "tree-flow.h"
14564         (c_finish_bc_stmt): Don't add a goto if the current statement
14565         list doesn't fall through to the current point.
14566
14567 2005-01-21  Roger Sayle  <roger@eyesopen.com>
14568
14569         PR rtl-optimization/576
14570         * real.c (real_arithmetic): Change return type from void to bool
14571         to return an indication that the result may be inexact.
14572         * real.h (real_arithmeric): Update prototype.
14573         * fold-const.c (const_binop):  Don't constant fold floating
14574         point expressions when the user specifies -frounding-math and
14575         the result may depend upon the run-time rounding mode.
14576         (fold_convert_const_real_from_real): Clean-up.
14577         (fold_initializer): Ignore flag_rounding_math for initializers.
14578         * simplify-rtx.c (simplify_binary_operation): Likewise, don't
14579         constant fold FP operations with flag_rounding_math if the
14580         result may depend upon the run-time rounding mode.
14581
14582 2005-01-21  Tom Tromey  <tromey@redhat.com>
14583
14584         * c-cppbuiltin.c (define__GNUC__): Correct assertion.
14585
14586 2005-01-21  Kazu Hirata  <kazu@cs.umass.edu>
14587
14588         * tree-cfg.c: Fix comment typos.
14589
14590 2005-01-21  J"orn Rennecke <joern.rennecke@st.com>
14591
14592         * passes.c (rest_of_handle_flow2): Close / open the flow2 dump file
14593         around the call to rest_of_handle_branch_target_load_optimize.
14594
14595 2005-01-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
14596
14597         * config.gcc (sparc-*-netbsdelf*): Include dbxelf.h
14598         (sparc64-*-openbsd*): Likewise.
14599         (sparclite-*-elf*): Include tm-dwarf2.h.
14600         (sparc86x-*-elf*): Likewise.
14601         (sparc64-*-elf*): Likewise.
14602         * config/sparc/linux64.h (DWARF2_DEBUGGING_INFO): Delete.
14603         (DBX_DEBUGGING_INFO): Likewise.
14604         * config/sparc/liteelf.h (DWARF2_DEBUGGING_INFO): Likewise.
14605         (PREFERRED_DEBUGGING_TYPE): Likewise.
14606         * config/sparc/netbsd-elf.h (PREFERRED_DEBUGGING_TYPE): Likewise.
14607         * config/sparc/sp64-elf.h (DBX_DEBUGGING_INFO): Likewise.
14608         (PREFERRED_DEBUGGING_TYPE): Likewise.
14609         * config/sparc/sp86x-elf.h (DWARF2_DEBUGGING_INFO): Likewise.
14610         (PREFERRED_DEBUGGING_TYPE): Likewise.
14611         * config/sparc/sparc.h (DBX_DEBUGGING_INFO): Likewise.
14612
14613 2005-01-21  Hans-Peter Nilsson  <hp@bitrange.com>
14614
14615         PR target/18701
14616         * combine.c (combine_simplify_rtx): Revert change of 2004-12-31.
14617
14618 2005-01-20  Paul Brook  <paul@codesourcery.com>
14619
14620         * doc/rtl.texi: Document value extension requirements for CONST_INT.
14621
14622 2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
14623
14624         * tree-cfg.c (tree_verify_flow_info): Check that a nonlocal
14625         label is first in a sequence of labels.
14626
14627         * tree-cfg.c (tree_verify_flow_info): Fix a typo.
14628
14629 2005-01-20  Janis Johnson  <janis187@us.ibm.com>
14630             Giovanni Bajo  <giovannibajo@gcc.gnu.org>
14631
14632         * doc/sourcebuild.texi (Test Directives): New.
14633
14634 2005-01-20  Roger Sayle  <roger@eyesopen.com>
14635
14636         * real.c (real_floor): Don't leave the result uninitialized when
14637         mode is VOIDMode, but return the unrounded intermediate value.
14638         (real_ceil): Likewise.
14639
14640 2005-01-20  Paul Brook  <paul@codesourcery.com>
14641
14642         * config/arm/arm.md (insv): Use gen_int_mode.
14643
14644 2005-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
14645
14646         * config/sparc/freebsd.h (ASM_OUTPUT_INTERNAL_LABELREF): Delete.
14647         * config/sparc/linux.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
14648         * config/sparc/linux64.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
14649         * config/sparc/netbsd-elf.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
14650         * config/sparc/sol2.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
14651
14652 2005-01-20  Daniel Berlin  <dberlin@dberlin.org>
14653
14654         Fix PR debug/19124
14655         * dwarf2out.c (concat_loc_descriptor): We don't know we can use
14656         fbreg, so we have to assume we can't.
14657         (loc_descriptor_from_tree_1): Ditto.
14658         (containing_function_has_frame_base): New function.
14659         (add_location_or_const_value_attribute): Use it.
14660         Also try to generate a frame_base from a single element location
14661         list.
14662
14663 2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
14664
14665         PR tree-optimization/15349
14666         * timevar.def (TV_TREE_MERGE_PHI): New.
14667         * tree-cfg.c (tree_forwarder_block_p): Add a new argument
14668         PHI_WANTED.
14669         (remove_forwarder_block, cleanup_forwarder_blocks): Adjust the
14670         calls to tree_forwarder_block_p.
14671         (remove_forwarder_block_with_phi, merge_phi_nodes,
14672         gate_merge_phi, pass_merge_phi): New.
14673         * tree-optimize.c (init_tree_optimization_passes): Add
14674         pass_merge_phi.
14675         * tree-pass.h: Add an extern for pass_merge_phi;
14676
14677 2005-01-20  Richard Henderson  <rth@redhat.com>
14678
14679         PR target/19418
14680         * config/i386/emmintrin.h (_mm_castpd_ps, _mm_castpd_si128): New.
14681         (_mm_castps_pd, _mm_castps_si128): New.
14682         (_mm_castsi128_ps, _mm_castsi128_pd): New.
14683
14684 2005-01-20  Richard Henderson  <rth@redhat.com>
14685
14686         PR target/19530
14687         * config/i386/mmintrin.h (_mm_cvtsi32_si64): Use
14688         __builtin_ia32_vec_init_v2si.
14689         (_mm_cvtsi64_si32): Use __builtin_ia32_vec_ext_v2si.
14690         * config/i386/i386.c (IX86_BUILTIN_VEC_EXT_V2SI): New.
14691         (ix86_init_mmx_sse_builtins): Create it.
14692         (ix86_expand_builtin): Expand it.
14693         (ix86_expand_vector_set): Handle V2SFmode and V2SImode.
14694         * config/i386/mmx.md (vec_extractv2sf_0, vec_extractv2sf_1): New.
14695         (vec_extractv2si_0, vec_extractv2si_1): New.
14696
14697 2005-01-20  Richard Henderson  <rth@redhat.com>
14698
14699         PR target/16533
14700         * config/i386/i386.c (ix86_expand_push): New.
14701         * config/i386/mmx.md (push<MMXMODE>1): New.
14702         * config/i386/sse.md (push<SSEMODE>1): New.
14703         * config/i386/i386-protos.h: Update.
14704
14705 2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
14706
14707         * params.def, params.h, predict.c, tree-ssa-loop-im.c: Update
14708         copyright.
14709
14710 2005-01-20  Richard Henderson  <rth@redhat.com>
14711
14712         * rtl.def (CONST_VECTOR): Use RTX_CONST_OBJ.
14713         * rtl.h (CONSTANT_P): Don't special case CONST_VECTOR.
14714
14715 2005-01-19  Richard Henderson  <rth@redhat.com>
14716
14717         PR target/19350
14718         * config/i386/i386.c (ix86_expand_vector_move_misalign): Convert
14719         to V4SFmode in SSE1 fallback load path.
14720
14721 2005-01-19  Richard Henderson  <rth@redhat.com>
14722
14723         * config/i386/i386.c (ix86_expand_vector_init_one_var): Fix typo
14724         in QImode expansion to ix86_expand_vector_set.
14725         (ix86_expand_vector_init_general): Fix typo in V8HImode recursive call.
14726
14727 2005-01-19  Richard Henderson  <rth@redhat.com>
14728
14729         PR target/19511
14730         * config/i386/i386.c (ix86_preferred_reload_class): Return a proper
14731         subclass of the input class.
14732         (ix86_secondary_memory_needed): Always true for cross-MMX classes.
14733         Always true for cross-SSE1 classes.  Rationalize conditionals.
14734         * config/i386/i386.h (SSE_CLASS_P, MMX_CLASS_P): Use straight equality.
14735         * config/i386/i386.md (movsi_1): Add MMX/SSE zeros.  Fix alternatives
14736         for SSE1.  Don't check TARGET_INTER_UNIT_MOVES.
14737         (movdi_2): Add MMX/SSE zeros.
14738         (movdi_1_rex64): Likewise.  Don't check TARGET_INTER_UNIT_MOVES.
14739         (movsf_1): Don't check TARGET_INTER_UNIT_MOVES.
14740         (zero_extendsidi2_32, zero_extendsidi2_rex64): Likewise.
14741         (movsi_1_nointernunit, movdi_1_rex64_nointerunit): Remove.
14742         (movsf_1_nointerunit, zero_extendsidi2_32_1): Remove.
14743         (zero_extendsidi2_rex64_1): Remove.
14744         (MOV0 peephole): Check GENERAL_REG_P.
14745
14746 2005-01-19  Richard Henderson  <rth@redhat.com>
14747
14748         PR target/19427
14749         * config/i386/i386.c (ix86_expand_vector_set): Fix third and fourth
14750         shufps elements.
14751         (ix86_expand_vector_extract): Likewise.
14752
14753 2005-01-19  Richard Henderson  <rth@redhat.com>
14754
14755         PR middle-end/19304
14756         * expr.c (emit_move_change_mode): New argument force; use
14757         simplify_gen_subreg if true.
14758         (emit_move_via_alt_mode): Merge into ...
14759         (emit_move_via_integer): ... here.
14760         (emit_move_ccmode): Use emit_move_change_mode directly.
14761
14762 2005-01-19  Richard Henderson  <rth@redhat.com>
14763
14764         PR target/19518
14765         * config/alpha/alpha.c (alpha_rtx_costs): Handle HIGH.
14766         (alpha_preferred_reload_class): Handle CONST_VECTOR.
14767         (alpha_emit_set_const_1): Add no_output parameter; don't emit
14768         rtl if true.
14769         (alpha_emit_set_const): Likewise.  Make static.
14770         (alpha_emit_set_long_const): Make static.
14771         (alpha_extract_integer): Split out from alpha_expand_mov.
14772         (alpha_split_const_mov): Likewise.
14773         (alpha_expand_mov): Use them.  Handle CONST_VECTOR.
14774         (alpha_legitimate_constant_p): New.
14775         * config/alpha/alpha-protos.h: Update.
14776         * config/alpha/alpha.h (REGISTER_MOVE_COST): Correct fp<->gp cost.
14777         (LEGITIMATE_CONSTANT_P): Re-implement with a function.
14778         * config/alpha/alpha.md (movsi): Add n alternative.
14779         (movsi_nt_vms, movdi_er_nofix, movdi_er_fix, movdi_fix): Likewise.
14780         (mov<VEC>_fix, mov<VEC>_nofix): Add i alternative.
14781         (splitters for all of the above): Use alpha_split_const_mov.
14782         * config/alpha/predicates.md (non_add_const_operand): New.
14783         (non_zero_const_operand): New.
14784         (input_operand): Use alpha_legitimate_constant_p after reload.
14785
14786 2005-01-19  Zdenek Dvorak  <dvorakz@suse.cz>
14787
14788         PR tree-optimization/19038
14789         * tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): New function.
14790         (add_candidate): Add ivs with increment in latch only if
14791         allow_ip_end_pos_p is true.
14792         (determine_iv_cost): Use empty_block_p.
14793
14794 2005-01-19  Daniel Berlin  <dberlin@dberlin.org>
14795
14796         * cfganal.c (compute_dominance_frontiers_1): Replace with new algorithm
14797         (compute_dominance_frontiers): Ditto.
14798
14799 2005-01-19  Ralf Corsepius  <ralf.corsepius@rtems.org>
14800
14801         PR target/19529
14802         * config/sh/t-rtems: New.
14803         * config.gcc (sh-*-rtems*): Reflect having added config/sh/t-rtems.
14804
14805 2005-01-19  Zdenek Dvorak  <dvorakz@suse.cz>
14806
14807         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Always subtract
14808         the offset of the selected field.
14809
14810 2005-01-19  Kazu Hirata  <kazu@cs.umass.edu>
14811
14812         * tree-cfg.c (remove_forwarder_block): Fix the check to
14813         prevent a nonlocal label from appearing in the middle of a
14814         basic block.
14815
14816 2005-01-19  Hans-Peter Nilsson  <hp@axis.com>
14817
14818         PR rtl-optimization/19462
14819         * reorg.c (find_end_label): Create return insn only if
14820         current_function_epilogue_delay_list is empty.
14821
14822 2005-01-19  Paolo Bonzini  <bonzini@gnu.org>
14823
14824         * doc/passes.texi: Remove paragraph mentioning new-ra.
14825
14826 2005-01-19  Jakub Jelinek  <jakub@redhat.com>
14827
14828         PR rtl-optimization/15139
14829         * combine.c: Include params.h.
14830         (count_rtxs): New function.
14831         (record_value_for_reg): If replace_rtx would replace at least
14832         2 occurrences of REG in VALUE and TEM is really large, replace REG with
14833         (clobber (const_int 0)) instead of TEM.
14834         * params.def (PARAM_MAX_LAST_VALUE_RTL): New.
14835         * params.h (MAX_LAST_VALUE_RTL): New.
14836         * Makefile.in (combine.o): Depend on $(PARAMS_H).
14837         * doc/invoke.texi (--param max-last-value-rtl=N): Document.
14838
14839         PR c/17297
14840         * c-typeck.c (digest_init): Only call build_vector if all constructor
14841         elements are *_CST nodes.
14842         * gimplify.c (gimplify_init_constructor): Likewise.
14843
14844         PR middle-end/19164
14845         * c-typeck.c (digest_init): Only call build_vector if inside_init
14846         is a CONSTRUCTOR.
14847
14848 2005-01-18  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
14849
14850         * toplev.c (init_asm_output): Remove dead #ifdef.
14851
14852 2005-01-18  Kaz Kojima  <kkojima@gcc.gnu.org>
14853
14854         * config/sh/linux.h (TARGET_C99_FUNCTIONS): Define.
14855
14856 2005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
14857
14858         * calls.c (expand_call): Check DECL_BUILT_IN_CLASS before
14859         accessing DECL_FUNCTION_CODE.
14860         * dojump.c (do_jump): Likewise.
14861         * gimplify.c (gimplify_call_expr): Likewise.
14862         * predict.c (expr_expected_value): Likewise.
14863         (strip_builtin_expect): Likewise.
14864         * tree-inline.c (estimate_num_insns_1): Likewise.
14865         * tree-ssa-loop-im.c (stmt_cost): Likewise
14866         * fold-const.c (fold): Test for BUILT_IN_NORMAL.
14867         (tree_expr_nonnegative_p): Likewise.
14868
14869 2005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
14870
14871         * config/sparc/sparc.c (load_pic_register): Emit the appropriate
14872         variant of the load_pcrel_sym pattern.
14873         * config/sparc/sparc.md (P macro): Move to the top.
14874         (load_pcrel_sym): Macroize using P.
14875         (save_register_window): Likewise.
14876
14877 2005-01-18  Aldy Hernandez  <aldyh@redhat.com>
14878
14879         * config/rs6000/rs6000.md ("sunordered"): Disable for e500.
14880         ("sordered"): Same.
14881
14882 2005-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
14883
14884         PR C/19472
14885         * c-typeck.c (build_asm_expr): Strip nops off
14886         input memory operands.
14887
14888 2005-01-18  David Edelsohn  <edelsohn@gnu.org>
14889
14890         * config/rs6000/aix43.h (CPLUSPLUS_CPP_SPEC): Delete
14891         _XOPEN_SOURCE, _XOPEN_SOURCE_EXTENDED, _LARGE_FILE_API.
14892         * config/rs6000/aix51.h (CPLUSPLUS_CPP_SPEC): Same.
14893         * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Same.
14894
14895 2005-01-18  Joel Sherrill <joel.sherrill@oarcorp.com>
14896
14897         PR target/19379
14898         * config/i386/i386.c (override_options): If the 80387 is disabled,
14899         then do not return FP values using FP registers.
14900
14901 2005-01-18  Kazu Hirata  <kazu@cs.umass.edu>
14902
14903         * basic-block.h, c-common.c, c-cppbuiltin.c, c-lang.c,
14904         c-tree.h, cfgbuild.c, cgraph.c, cgraph.h, collect2.c,
14905         combine.c, config.gcc, coverage.h, cse.c, cselib.c,
14906         defaults.h, df.c, dwarf2asm.c, dwarf2out.c, explow.c, expr.c,
14907         flow.c, fold-const.c, gcse.c, ggc-page.c, gimple-low.c,
14908         gimplify.c, ifcvt.c, langhooks-def.h, lcm.c, optabs.h,
14909         output.h, postreload-gcse.c, postreload.c, recog.c,
14910         resource.c, rtl.def, rtlanal.c, sched-deps.c, sched-rgn.c,
14911         targhooks.h, toplev.c, tree-data-ref.c, tree-eh.c,
14912         tree-flow.h, tree-loop-linear.c, tree-mudflap.h, tree-nrv.c,
14913         tree-optimize.c, tree-outof-ssa.c, tree-pass.h,
14914         tree-scalar-evolution.c, tree-ssa-copy.c, tree-ssa-dce.c,
14915         tree-ssa-dse.c, tree-ssa-loop-ivopts.c, tree-ssa-operands.c,
14916         tree-ssa-pre.c, tree-ssa.c, tree-vectorizer.c, tree.def,
14917         unwind-dw2-fde-darwin.c, var-tracking.c: Update copyright.
14918
14919         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
14920         config/alpha/alpha.c, config/arm/vfp.md,
14921         config/i386/emmintrin.h, config/i386/i386-modes.def,
14922         config/i386/i386-protos.h, config/i386/i386.h,
14923         config/i386/pmmintrin.h, config/i386/ppro.md,
14924         config/i386/predicates.md, config/i386/xmmintrin.h,
14925         config/i860/i860.c, config/ia64/ia64-modes.def,
14926         config/ia64/ia64-protos.h, config/ia64/ia64.h,
14927         config/ia64/ia64.md, config/ia64/itanium1.md,
14928         config/ia64/itanium2.md, config/ia64/predicates.md,
14929         config/iq2000/iq2000.h, config/mips/linux64.h,
14930         config/rs6000/aix41.h, config/rs6000/aix43.h,
14931         config/rs6000/aix52.h, config/rs6000/darwin-fallback.c,
14932         config/rs6000/rs6000.c, config/rs6000/rs6000.h,
14933         config/rs6000/spe.md, config/sh/sh.md, config/sparc/linux.h,
14934         config/sparc/linux64.h, config/sparc/litecoff.h,
14935         config/sparc/sp64-elf.h, config/sparc/sparc.c,
14936         config/sparc/sparc.h, config/sparc/sparc.md,
14937         config/sparc/sysv4-only.h: Update copyright.
14938
14939 2005-01-18  Richard Henderson  <rth@redhat.com>
14940
14941         PR target/19496
14942         * config/i386/i386.c (ix86_expand_fp_movcc): Fail for LTGT and UNEQ.
14943
14944 2005-01-18  Marc Espie  <espie@openbsd.org>
14945         * config/i386/openbsdelf.h: Typo.
14946
14947 2005-01-18  Richard Henderson  <rth@redhat.com>
14948
14949         * config/i386/i386.c (ix86_expand_fp_movcc): Remove TARGET_IEEE_FP
14950         special case for sse.
14951         * config/i386/predicates.md (sse_comparison_operator): Likewise.
14952
14953 2005-01-18  Dorit Naishlos  <dorit@il.ibm.com>
14954
14955         * tree-inline.c (estimate_num_insns_1): Added cases for
14956         ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF, and REALIGN_LOAD_EXPR.
14957
14958 2005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
14959
14960         PR rtl-optimization/19296
14961         * combine.c (simplify_comparison): Rewrite the condition under
14962         which a non-paradoxical SUBREG of a PLUS can be lifted when
14963         compared against a constant.
14964
14965 2005-01-18  Andi Kleen <ak@muc.de>
14966
14967         * c-typeck.c: (convert_for_assignment): Check warn_pointer_sign.
14968         * c.opt (-Wpointer-sign): Add.
14969         * doc/invoke.texi: (-Wpointer-sign): Add.
14970
14971 2005-01-18  Uros Bizjak  <uros@kss-loka.si>
14972
14973         * config/i386/i386.c (override_options): Revert 2004-11-24 change.
14974         * config/i386/i386.md (fmodsf3, dremsf3, *sinsf2, *cossf2, sincossf3,
14975         *tansf3_1, tansf2, atan2sf3_1, atan2sf3, atansf2, asinsf2, acossf2,
14976         logsf2, log10sf2, log2sf2, log1psf2, logbsf2, ilogbsf2, expsf2,
14977         exp10sf2, exp2sf2, expm1sf2, rintsf2, floorsf2, ceilsf2, btruncsf2,
14978         nearbyintsf2): Disable for TARGET_SSE_MATH.  Leave patterns enabled
14979         for TARGET_MIX_SSE_I387.
14980         (fmoddf3, dremdf3, *sindf2, *sinextendsfdf2, *cosdf2, *cosextendsfdf2,
14981         sincosdf3, *sincosextendsfdf3, *tandf3_1, tandf2, atan2df3_1,
14982         atan2df3, atandf2, asindf2, acosdf2, logdf2, log10df2, log2df2,
14983         log1pdf2, logbdf2, expdf2, exp10df2, exp2df2, expm1df2, rintdf2,
14984         floordf2, ceildf2, btruncdf2, nearbyintdf2): Disable for
14985         (TARGET_SSE2 && TARGET_SSE_MATH).  Leave patterns enabled for
14986         TARGET_MIX_SSE_I387.
14987         (atan2sf3, atan2df3, atan2xf3): Remove register constraints
14988         from expander.
14989
14990 2005-01-18  Uros Bizjak  <uros@kss-loka.si>
14991
14992         PR target/19424
14993         * config/i386/mmx.md (*movv2sf_internal_rex64, *movv2sf_internal):
14994         Add movaps alternative for xmm reg->reg move.
14995
14996 2005-01-17  Jeff Law  <law@redhat.com>
14997
14998         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Clear SSA_NAME_VALUE
14999         at the end of the main DOM loop rather than just before DOM exits.
15000
15001 2005-01-17  Diego Novillo  <dnovillo@redhat.com>
15002
15003         PR tree-optimization/19121
15004         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): When
15005         adding aliases to a name tag, also add them to the pointer's
15006         type tag.
15007         * tree-ssa-copy.c (merge_alias_info): Do not merge flow
15008         sensitive alias info at all.  Only check that the two pointers
15009         have compatible pointed-to sets.
15010         * tree-ssa.c (verify_name_tags): Verify that the alias set of
15011         a pointer's type tag is a superset of the alias set of the
15012         pointer's name tag.
15013
15014 2005-01-17  James E Wilson  <wilson@specifixinc.com>
15015
15016         PR target/19357
15017         * config/ia64/ia64.md (movxf): Handle general register source.  Adjust
15018         comment to document why.
15019
15020 2005-01-17  Richard Henderson  <rth@redhat.com>
15021
15022         * config/i386/sse.md (smaxv4sf3_finite, sse_vmsmaxv4sf3_finite,
15023         sminv4sf3_finite, sse_vmsminv4sf3_finite, smaxv2df3_finite,
15024         sse2_vmsmaxv2df3_finite, sminv2df3_finite,
15025         sse2_vmsminv2df3_finite): New.
15026         (smaxv4sf3, sse_vmsmaxv4sf3, sminv4sf3, sse_vmsminv4sf3, smaxv2df3,
15027         sse2_vmsmaxv2df3, sminv2df3, sse2_vmsminv2df3): Remove commutative.
15028         Force op1 into register.
15029
15030 2005-01-17  Kelley Cook  <kcook@gcc.gnu.org>
15031
15032         * Makefile.in (STAGEMOVESTUFF): Stage all the stamp files to prevent
15033         bubblestrap from always rebuilding build directory.
15034
15035 2005-01-17  Ulrich Weigand  <uweigand@de.ibm.com>
15036
15037         * config/s390/s390.md ("*clc"): Remove incorrect '='.
15038         ("*cmpmem_short"): Likewise.
15039
15040 2005-01-17  Steven Bosscher  <stevenb@suse.de>
15041
15042         * basic-block.h: Document BB_* flags.
15043         * regrename.c (copyprop_hardreg_forward): Don't use BB_VISITED,
15044         use an sbitmap instead.
15045         * sched-rgn.c (compute_trg_info): Likewise.
15046
15047 2005-01-17  Richard Sandiford  <rsandifo@redhat.com>
15048
15049         * config.gcc (mips64*-*-linux*): Set the default abi to n32.  Remove
15050         redundant target_cpu_default and extra_parts lines.  Use the default
15051         "from-abi" ISA.
15052         * config/mips/linux64.h (DRIVER_DEFAULT_ABI_SELF_SPEC): Delete.
15053         (SUBTARGET_EXTRA_SPECS): Delete.
15054         (DRIVER_SELF_SPECS): Remove architecture lines.  Set the ABI directly.
15055         (SUBTARGET_ASM_SPEC): Remove -mabi=n32 and -mabi=64 mappings.
15056         * config/mips/t-linux64 (MULTILIB_DIRNAMES): Use "32" for -mabi=32
15057         and "n32" for -mabi=n32.
15058
15059 2005-01-17  Ian Lance Taylor  <ian@airs.com>
15060
15061         PR c/5675
15062         * c-typeck.c (build_c_cast): Revert patch of 2003-02-16: don't
15063         fold constant variables into initial values.
15064
15065 2005-01-17  Kazu Hirata  <kazu@cs.umass.edu>
15066
15067         * tree-cfg.c (tree_can_merge_blocks_p): Reorder two checks.
15068
15069         * tree-cfg.c (tree_forwarder_block_p): Speed up by walking
15070         through the statements backward.
15071
15072 2005-01-17  Ian Lance Taylor  <ian@airs.com>
15073
15074         PR middle-end/13127:
15075         * tree-inline.c (expand_call_inline): Set TREE_NO_WARNING on
15076         a variable set to the return value of the inlined function.
15077
15078 2005-01-17  Mark Dettinger  <dettinge@de.ibm.com>
15079
15080         * rtlanal.c (rtx_cost): Assign cost of 0 to a SUBREG
15081         when modes are tieable.
15082
15083 2005-01-17  Ranjit Mathew  <rmathew@hotmail.com>
15084
15085         * gthr-posix.h (__gthread_active_p): Use pthread_cancel instead
15086         of pthread_create to find out if threads are enabled.
15087         * gthr-posix95.h (__gthread_active_p): Likewise.
15088
15089 2005-01-17  Paolo Bonzini  <bonzini@gnu.org>
15090
15091         * common.opt (-fnew-ra): Remove.
15092         * ra*.*: Remove.
15093         * toplev.h (flag_new_regalloc): Remove.
15094         * Makefile.in (ra*.*): Don't mention.
15095         * passes.c (rest_of_handle_new_regalloc): Remove.
15096         (rest_of_handle_combine, rest_of_compilation): Always consider
15097         flag_new_regalloc as false.
15098         * doc/invoke.texi: Don't document -fnew-ra.
15099
15100 2005-01-17  Paolo Bonzini <bonzini@gnu.org>
15101
15102         * bb-reorder.c (fix_edges_for_rarely_executed_code): Remove
15103         last parameter to reg_scan.
15104         * loop.c (loop_optimize): Likewise.
15105         * passes.c (rest_of_handle_tracer, rest_of_handle_if_conversion,
15106         rest_of_handle_web, rest_of_handle_cfg, rest_of_handle_jump_bypass,
15107         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
15108         rest_of_handle_gcse, rest_of_handle_loop_optimize,
15109         rest_of_handle_loop2, rest_of_handle_jump2): Likewise.
15110         * regclass.c (reg_scan): Likewise, for the declaration.
15111         * rtl.h (reg_scan): Likewise, for the prototype.
15112
15113 2005-01-17  Kazu Hirata  <kazu@cs.umass.edu>
15114
15115         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Don't call
15116         mark_dfs_back_edges.
15117
15118 2005-01-16  Daniel Berlin  <dberlin@dberlin.org>
15119
15120         * tree-ssa-pre.c (add_to_sets): s1 may be NULL.
15121         (compute_avail): Uses don't go in tmp_gen.
15122
15123 2005-01-16  Steven Bosscher  <stevenb@suse.de>
15124
15125         * ggc-page.c (ggc_alloc_stat): Use __builtin_ctzl instead of a
15126         loop to look for a free slot in a page entry.
15127
15128 2005-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15129
15130         PR target/16304
15131         * defaults.h (TARGET_DEFERRED_OUTPUT_DEFS): Provide default.
15132         * toplev.c (compile_file): Call process_pending_assemble_output_defs
15133         just before targetm.asm_out.file_end.
15134         * tree.h (process_pending_assemble_output_defs): Declare.
15135         * varasm.c (assemble_output_def, process_pending_assemble_output_defs):
15136         New functions.
15137         (assemble_alias): Defer generation of assembly code for defines when
15138         TARGET_DEFERRED_OUTPUT_DEFS is true.
15139         * config/rs6000/aix41.h (TARGET_DEFERRED_OUTPUT_DEFS): Define.
15140         * config/rs6000/aix43.h (TARGET_DEFERRED_OUTPUT_DEFS): Define.
15141         * doc/tm.texi (TARGET_DEFERRED_OUTPUT_DEFS): document.
15142
15143 2005-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15144
15145         PR target/19336
15146         * pa.c (pa_scalar_mode_supported_p): New function.
15147         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
15148         * pa.h (MIN_UNITS_PER_WORD): Add comment.
15149
15150         * pa-protos.h (prefetch_operand): Delete.
15151         (prefetch_cc_operand, prefetch_nocc_operand): New declations.
15152         * pa.c (prefetch_operand): Delete.
15153         (prefetch_cc_operand, prefetch_nocc_operand): New functions.
15154         * pa.h (EXTRA_CONSTRAINT): Add `W' constraint.
15155         (PREDICATE_CODES): Delete prefetch_operand.  Add prefetch_cc_operand
15156         and prefetch_nocc_operand.
15157         * pa.md (prefetch): Rework to avoid reload problems handling short
15158         displacements when a cache control completer needs to be provided.
15159         (prefetch_32, prefetch_64): Delete.
15160         (prefetch_cc, prefetch_nocc): New patterns.
15161
15162 2005-01-15  David Edelsohn  <edelsohn@gnu.org>
15163
15164         * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Revert previous change.
15165
15166 2005-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15167
15168         PR ada/19388
15169         * pa.c (pa_asm_output_aligned_common): Warn if specified alignment
15170         exceeds maximum alignment for global common data.
15171         * pa64-hpux.h (MAX_OFILE_ALIGNMENT): Define to 32768.
15172         * som.h (MAX_OFILE_ALIGNMENT): Likewise.
15173
15174 2004-01-15  Roger Sayle  <roger@eyesopen.com>
15175
15176         * tree-ssa-dom.c (extract_range_from_cond): Correct condition.
15177
15178 2004-01-15  Roger Sayle  <roger@eyesopen.com>
15179
15180         * harg-reg-set.h (reg_class_names): Prototype global array.
15181         * regclass.c (reg_class_names): Declare here and initialize to
15182         REG_CLASS_NAMES.
15183         (dump_regclass): Remove local declaration of reg_class_names.
15184         (regclass): Likewise.
15185         * cfg.c (dump_flow_info): Likewise.
15186         * ra-debug.c (reg_class_names): Likewise.
15187         * regrename.c (reg_class_names): Likewise.
15188         * reload.c (reg_class_names): Likewise.
15189         * reload1.c (spill_failure): Likewise.
15190         * config/m68hc11/m68hc11.c (reg_class_names): Likewise.
15191
15192 2005-01-15  Ulrich Weigand  <uweigand@de.ibm.com>
15193
15194         * config/s390/s390.md ("reload_outti"): Remove predicate for
15195         output operand.  Abort if operand is not a MEM.
15196         ("reload_outdi", "reload_outdf"): Likewise.
15197
15198 2005-01-15  Marc Espie  <espie@openbsd.org>
15199
15200         * config.gcc (*-*-openbsd*): Set HAS_LIBC_R for OpenBSD <= 3.2.
15201         (i[34567]86-*-openbsd*): Switch to ELF for OpenBSD >= 3.4.
15202         * config/openbsd.h:  Fix C++ includes for native configurations.
15203         Add proper OS_CPP_BUILTINS.  Fix libspec for recent OpenBSD.
15204         Add trampoline support.
15205         * config/i386/openbsdelf.h: New.
15206
15207 2005-01-15  Marc Espie  <espie@openbsd.org>
15208
15209         * collect2.c (main): Explicitly parse -dynamic-linker option.
15210
15211 2005-01-15  Jakub Jelinek  <jakub@redhat.com>
15212
15213         PR tree-optimization/19060
15214         * tree-ssa-dom.c (extract_range_from_cond) <case LT_EXPR, GT_EXPR>:
15215         Return 0 if op1 <= TYPE_MIN_VALUE () resp. op1 >= TYPE_MAX_VALUE ().
15216         (simplify_cond_and_lookup_avail_expr): Add assert for dummy == 0
15217         and handle extract_range_from_cond returning false.
15218         * fold-const.c (fold): Optimize comparisons with min/max even for
15219         width > HOST_BITS_PER_WIDE_INT.
15220
15221 2005-01-15  Ralf Corsepius  <ralf.corsepius@rtems.org>
15222
15223         * config/mips/rtems.h (MIPS_DEFAULT_GVALUE): Set to 0.
15224         * config/mips/t-rtems (MULTILIBS_DIRNAMES,MULTILIB_OPTIONS):
15225         Remove little endian multilib variants.
15226         Add mips32 multilib variant.
15227
15228 2005-01-15  Kazu Hirata  <kazu@cs.umass.edu>
15229
15230         * explow.c (copy_all_reg, stabilize): Remove.
15231         * expr.h: Remove the corresponding prototypes.
15232
15233         * rtlanal.c (regs_set_between_p): Remove.
15234         * rtl.h: Remove the corresponding prototype.
15235
15236 2005-01-14  David Edelsohn  <edelsohn@gnu.org>
15237
15238         * config/rs6000/rs6000.c (rs6k_nonimmediate_operand): Rename
15239         to rs6000_nonimmediate_operand.
15240         * config/rs6000/rs6000.h (PREDICATE_CODES): Rename
15241         rs6k_nonimmediate_operand to rs6000_nonimmediate_operand.
15242         * config/rs6000/rs6000.md (movsi_internal1): Rename predicate to
15243         rs6000_nonimmediate_operand.
15244         * config/rs6000/spe.md (movdf_e500_double): Rename predicate to
15245         rs6000_nonimmediate_operand.
15246
15247 2005-01-14  Andrew Pinski  <pinskia@physics.uc.edu>
15248
15249         * tree-ssa-alias.c (pass_may_alias): Add TODO_verify_stmts.
15250
15251 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
15252
15253         * config/rs6000/rs6000.h (CLASS_MAX_NREGS): DF goes in 1 register
15254         on e500v2.
15255         (CANNOT_CHANGE_MODE_CLASS): Restrict DI mode changes on e500v2.
15256         (PREDICATE_CODES): Add rs6k_nonimmediate_operand.
15257
15258         * config/rs6000/rs6000.c (invalid_e500_subreg): New.
15259         (rs6k_nonimmediate_operand): New.
15260         (rs6000_legitimate_offset_address_p): Handle DI modes on e500v2
15261         correctly.
15262         (legitimate_lo_sum_address_p): Same.
15263         (rs6000_legitimize_address): Same.
15264         (rs6000_legitimize_reload_address): Same.
15265         (rs6000_legitimate_address): Same.
15266         (spe_build_register_parallel): Pass DF and DC modes in a DI
15267         register.
15268
15269         * config/rs6000/rs6000.md ("*movsi_internal1"): Change predicate
15270         to rs6k_nonimmediate_operand.
15271
15272         * config/rs6000/spe.md ("*frob_df_di"): New.
15273         ("*frob_di_df"): New.
15274         ("*frob_di_df_2"): New.
15275         ("*mov_sidf_e500_subreg0"): New.
15276         ("*mov_sidf_e500_subreg4"): New.
15277         ("*movdf_e500_double"): Change predicate to
15278         rs6k_nonimmediate_operand.
15279
15280 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
15281
15282         * postreload.c (move2add_note_store): Only call
15283         trunc_int_for_mode on scalar integers.
15284
15285 2005-01-14  Steven Bosscher  <stevenb@suse.de>
15286
15287         * tree-ssa-dce.c (visited_control_parents): New sbitmap to
15288         replace BB_VISITED uses.
15289         (find_obviously_necessary_stmts): Don't clear BB_VISITED.
15290         (propagate_necessity): Check the bitmap instead of BB_VISITED.
15291         (tree_dce_done): Free visited_control_parents.
15292         (perform_tree_ssa_dce): Allocate and clear it.
15293         * tree-ssa-pre.c (compute_antic_aux): Make non-recursive.
15294         (compute_antic): Iterate from here using a DFS.  Use an sbitmap
15295         instead of BB_VISITED.
15296
15297 2005-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15298
15299         * c-tree.h, coverage.h, langhooks-def.h, optabs.h, output.h,
15300         rtl.h, targhooks.h, tree-flow.h, tree-mudflap.h, tree.h:
15301         Remove unused prototypes.
15302
15303 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
15304
15305         * config/rs6000/rs6000.c (rs6000_stack_info): Fix caching of SPE
15306         64-bit register usage.
15307         (spe_func_has_64bit_regs_p): Add FIXME note.
15308
15309 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
15310
15311         * config/rs6000/rs6000.c (rs6000_generate_compare): Replace
15312         flag_finite_math_only with flag_unsafe_math_optimizations.
15313
15314 2005-01-14  J. D. Johnston  <jjohnst@us.ibm.com>
15315
15316         * config/s390/tpf-unwind.h (s390_fallback_frame_state): Correct
15317         end-of-stack check.
15318         (__tpf_eh_return): Copy TPF private stack area from the module
15319         boundary stack frame.  Add check for when module addresses are
15320         equal, but no stub address is found.
15321
15322 2005-01-14  Richard Earnshaw  <rearnsha@arm.com>
15323
15324         PR target/7525
15325         * arm.h (struct machine_function): Add call_via field.
15326         (thumb_call_via_label): Declare.
15327         * arm.c (thumb_call_via_label): New variable.
15328         (thumb_call_reg_needed): New variable.
15329         (arm_output_function_epilogue): For Thumb code, output any per-function
15330         call-indirect trampolines.
15331         (thumb_call_via_reg): New function.
15332         (arm_file_end): New function.
15333         (TARGET_ASM_FILE_END): Call arm_file_end.
15334         (aof_file_end): Likewise.
15335         * arm-protos.h (thumb_call_via_reg): Declare.
15336         * arm.md (call_reg_thumb, call_value_reg_thumb): Call
15337         thumb_call_via_reg in normal case.
15338
15339 2005-01-14  Jakub Jelinek  <jakub@redhat.com>
15340
15341         PR middle-end/19084
15342         PR rtl-optimization/19348
15343         * recog.c (peephole2_optimize): Do global life update if some peephole
15344         decides it doesn't need at least one of its inputs and that change
15345         influences liveness at the start of the basic block.
15346
15347         * basic-block.h (EXECUTE_IF_AND_COMPL_IN_REG_SET): Needs 2 REGSET
15348         arguments instead of 1.
15349
15350 2005-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
15351
15352         PR middle-end/18820
15353         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Return
15354         zero for nested functions needing a static chain or functions
15355         with a non-constant address.
15356
15357 2005-01-13  Roger Sayle  <roger@eyesopen.com>
15358
15359         * simplify-rtx.c (simplify_binary_operation) <AND>: Optimize
15360         (and (sign_extend X) C) into (zero_extend (and X C)).
15361
15362 2005-01-13  David O'Brien  <obrien@FreeBSD.org>
15363
15364         * config/freebsd-spec.h:  Make KSE pthread lib logic the default.
15365
15366 2005-01-13  Richard Henderson  <rth@redhat.com>
15367
15368         PR target/19009
15369         PR target/19250
15370         PR target/19252
15371         * config/i386/i386.md (cmpdf, cmpsf, bunordered, bordered, buneq,
15372         bunge, bungt, bunle, bunlt, bltgt): Enable for TARGET_SSE_MATH,
15373         not just TARGET_SSE.
15374         (cmpfp_i_387): Rename from cmpfp_i.  Move after sse patterns.
15375         (cmpfp_i_mixed): Rename from cmpfp_i_sse; use for TARGET_MIX_SSE_I387.
15376         (cmpfp_i_sse): Rename from cmpfp_i_sse_only; use for TARGET_SSE_MATH.
15377         (cmpfp_iu_mixed, cmpfp_iu_sse, cmpfp_iu_387): Similarly.
15378         (fp_jcc_1_mixed, fp_jcc_1_sse, fp_jcc_1_387): Similarly.
15379         (fp_jcc_2_mixed, fp_jcc_2_sse, fp_jcc_2_387): Similarly.
15380         (fp_jcc_3_387, fp_jcc_4_387, fp_jcc_5_387, fp_jcc_6_387,
15381         fp_jcc_7_387, fp_jcc_8_387): Rename from fp_jcc_N.
15382         (movdicc_c_rex64): Rename with '*'.
15383         (movsfcc, movdfcc): Add checks for 387 and sse math to condition.
15384         (movsfcc_1_sse_min, movsfcc_1_sse_max, movsfcc_1_sse): New.
15385         (movsfcc_1_387): Rename from movsfcc_1.
15386         (movdfcc_1_sse_min, movdfcc_1_sse_max, movdfcc_1_sse): New.
15387         (movdfcc_1, movdfcc_1_rex64): Add check for 387.
15388         (sminsf3, smaxsf3, smindf3, smaxdf3): New.
15389         (minsf3, minsf, minsf_nonieee, minsf_sse, mindf3, mindf,
15390         mindf_nonieee, mindf_sse, maxsf3, maxsf, maxsf_nonieee, maxsf_sse,
15391         maxdf3, maxdf, maxdf_nonieee, maxdf_sse, sse_movsfcc, sse_movsfcc_eq,
15392         sse_movdfcc, sse_movdfcc_eq, sse_movsfcc_const0_1,
15393         sse_movsfcc_const0_2, sse_movsfcc_const0_3, sse_movsfcc_const0_4,
15394         sse_movdfcc_const0_1, sse_movdfcc_const0_2, sse_movdfcc_const0_3,
15395         sse_movdfcc_const0_4): Remove.
15396         * config/i386/i386.c (ix86_expand_fp_movcc): For TARGET_SSE_MATH,
15397         recognize min/max early.  Update for changed sse cmove patterns.
15398         (ix86_split_sse_movcc): New.
15399         * config/i386/i386-protos.h: Update.
15400
15401 2005-01-13  Steven Bosscher  <stevenb@suse.de>
15402
15403         * tree-ssa-dse.c (fix_phi_uses): Use SSA operand iterators.
15404         (fix_stmt_v_may_defs): Likewise.
15405
15406 2005-01-13  Richard Henderson  <rth@redhat.com>
15407
15408         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Use elt_mode
15409         for converting the mask.
15410
15411 2005-01-13  David Edelsohn  <edelsohn@gnu.org>
15412
15413         * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Change _XOPEN_SOURCE
15414         definition to 600.
15415
15416 2005-01-13  Richard Henderson  <rth@redhat.com>
15417
15418         * config/i386/i386.c (IX86_BUILTIN_MOVQ, IX86_BUILTIN_LOADD,
15419         IX86_BUILTIN_STORED, IX86_BUILTIN_MOVQ2DQ,
15420         IX86_BUILTIN_MOVDQ2Q): Remove.
15421         (IX86_BUILTIN_VEC_EXT_V4SI): New.
15422         (ix86_init_mmx_sse_builtins, ix86_expand_builtin): Update to match.
15423         (ix86_expand_vector_extract): For V4S[FI], extract element 0 after
15424         shuffling.
15425         * config/i386/sse.md (sse_concatv2sf): Accept zero operand 2.
15426         (sse2_pextrw): Fix immediate constraint.
15427         (sse2_loadq, sse2_loadq_rex64): Remove.
15428         * config/i386/emmintrin.h (_mm_cvtsi128_si32, _mm_cvtsi128_si64x):
15429         Use __builtin_ia32_vec_ext_<size>.
15430         (_mm_cvtsi32_si128, _mm_cvtsi64x_si128): Use _mm_set_epi<size>.
15431
15432 2005-01-13  Aldy Hernandez  <aldyh@redhat.com>
15433
15434         * function.c (assign_parm_setup_block): Look inside original
15435         entry_parm when inspecting PARALLEL.
15436
15437 2005-01-13  Ralf Corsepius  <ralf.corsepius@rtems.org>
15438             Joel Sherrill  <joel@oarcorp.com>
15439
15440         PR target/19399
15441         * gthr-rtems.h (__gthread_recursive_mutex_t): New type.
15442         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Define to
15443         rtems_gxx_recursive_mutex_init.
15444         (__gthread_recursive_mutex_lock): New function.
15445         (__gthread_recursive_mutex_trylock): Likewise.
15446         (__gthread_recursive_mutex_unlock): Likewise.
15447
15448 2005-01-13  Ralf Corsepius <ralf.corsepius@rtems.org>
15449
15450         * config/i386/t-rtems-i386: Multilib on -mtune instead of -mcpu.
15451
15452 2005-01-13  Jan Beulich  <jbeulich@novell.com>
15453
15454         * config/ia64/ia64.md (ashlti3, ashlti3_internal): New.
15455         (ashrti3_internal): Indicate output is early clobber. Generate result
15456         into output rather than first input. Use move for low word of output
15457         if shift count is exactly 64.
15458         (lshrti3_internal): Likewise.
15459
15460 2005-01-13  Hans-Peter Nilsson  <hp@bitrange.com>
15461
15462         PR target/18329
15463         PR target/18330
15464         * reload1.c (delete_output_reload): Don't delete an output reload
15465         if the pseudo lives longer than a single basic block.  Adjust and
15466         improve wording of comment.
15467
15468 2005-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
15469
15470         PR target/19334
15471         * config/darwin.c (machopic_select_section): Use TYPE_SIZE_UNIT instead
15472         of TYPE_SIZE where we mean the number of bytes.
15473
15474 2005-01-12  Aldy Hernandez  <aldyh@redhat.com>
15475
15476         * function.c (assign_parm_setup_block): Relax condition on
15477         multi-register optimization.
15478
15479 2005-01-12  Nick Clifton  <nickc@redhat.com>
15480
15481         * config/sh/sh.md (udivsi3_sh2a, divsi3_sh2a): Give these patterns
15482         an "in_delay_slot" attribute of "no" to prevent them being used in
15483         delay slots.  This is forbidden because they might generate
15484         exceptions.
15485
15486 2005-01-12  Alan Modra  <amodra@bigpond.net.au>
15487
15488         PR target/19389
15489         * config/rs6000/rs6000.md (movtf_internal): Replace r->o and m->r
15490         with r->Y and Y->r.
15491
15492 2005-01-12  Nick Clifton  <nickc@redhat.com>
15493
15494         * config/iq2000/iq2000.h (ASM_SPEC): Undefine (to stop -Qy being
15495         passed on to GAS) but do not define, as GAS no longer supports or
15496         needs the -m2000 option.
15497
15498 2005-01-11  Roger Sayle  <roger@eyesopen.com>
15499
15500         * builtins.c (fold_builtin_fabs): Convert argument to the appropriate
15501         type as args of unprototyped builtins aren't automatically promoted.
15502         (fold_builtin_abs): Likewise.
15503
15504 2005-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15505
15506         * Makefile.in: Set a `build-warn' variable.
15507
15508 2005-01-11  Zdenek Dvorak  <dvorakz@suse.cz>
15509
15510         PR tree-optimization/17949
15511         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): New function.
15512         (find_interesting_uses_address): Use it.
15513
15514 2005-01-11  Aldy Hernandez  <aldyh@redhat.com>
15515
15516         * regrename.c (kill_value): Handle subreg's that won't simplify.
15517
15518 2005-01-11  Richard Henderson  <rth@redhat.com>
15519
15520         PR target/13366
15521         * config/i386/i386.h (enum ix86_builtins): Move ...
15522         * config/i386/i386.c: ... here.
15523         (IX86_BUILTIN_MOVDDUP, IX86_BUILTIN_MMX_ZERO, IX86_BUILTIN_PEXTRW,
15524         IX86_BUILTIN_PINSRW, IX86_BUILTIN_LOADAPS, IX86_BUILTIN_LOADSS,
15525         IX86_BUILTIN_STORESS, IX86_BUILTIN_SSE_ZERO, IX86_BUILTIN_PEXTRW128,
15526         IX86_BUILTIN_PINSRW128, IX86_BUILTIN_LOADAPD, IX86_BUILTIN_LOADSD,
15527         IX86_BUILTIN_STOREAPD, IX86_BUILTIN_STORESD,  IX86_BUILTIN_STOREHPD,
15528         IX86_BUILTIN_STORELPD, IX86_BUILTIN_SETPD1, IX86_BUILTIN_SETPD,
15529         IX86_BUILTIN_CLRPD, IX86_BUILTIN_LOADPD1, IX86_BUILTIN_LOADRPD,
15530         IX86_BUILTIN_STOREPD1, IX86_BUILTIN_STORERPD, IX86_BUILTIN_LOADDQA,
15531         IX86_BUILTIN_STOREDQA, IX86_BUILTIN_CLRTI,
15532         IX86_BUILTIN_LOADDDUP): Remove.
15533         (IX86_BUILTIN_VEC_INIT_V2SI, IX86_BUILTIN_VEC_INIT_V4HI,
15534         IX86_BUILTIN_VEC_INIT_V8QI, IX86_BUILTIN_VEC_EXT_V2DF,
15535         IX86_BUILTIN_VEC_EXT_V2DI, IX86_BUILTIN_VEC_EXT_V4SF,
15536         IX86_BUILTIN_VEC_EXT_V8HI, IX86_BUILTIN_VEC_EXT_V4HI,
15537         IX86_BUILTIN_VEC_SET_V8HI, IX86_BUILTIN_VEC_SET_V4HI): New.
15538         (ix86_init_builtins): Make static.
15539         (ix86_init_mmx_sse_builtins): Update for changed builtins.
15540         (ix86_expand_binop_builtin): Only use ix86_fixup_binary_operands
15541         if all the modes match.  Otherwise, fake it.
15542         (get_element_number, ix86_expand_vec_init_builtin,
15543         ix86_expand_vec_ext_builtin, ix86_expand_vec_set_builtin): New.
15544         (ix86_expand_builtin): Make static.  Update for changed builtins.
15545         (ix86_expand_vector_move_misalign): Use sse2_loadlpd with zero
15546         operand instead of sse2_loadsd.  Cast sse1 fallback to V4SFmode.
15547         (ix86_expand_vector_init_duplicate): New.
15548         (ix86_expand_vector_init_low_nonzero): New.
15549         (ix86_expand_vector_init_one_var, ix86_expand_vector_init_general):
15550         Split out from ix86_expand_vector_init; handle integer modes.
15551         (ix86_expand_vector_init): Use them.
15552         (ix86_expand_vector_set, ix86_expand_vector_extract): New.
15553         * config/i386/i386-protos.h: Update.
15554         * config/i386/predicates.md (reg_or_0_operand): New.
15555         * config/i386/mmx.md (mov<MMXMODEI>_internal): Add 'r' variants.
15556         (movv2sf_internal): Likewise.  And a splitter to match them all.
15557         (vec_dupv2sf, mmx_concatv2sf, vec_setv2sf, vec_extractv2sf,
15558         vec_initv2sf, vec_dupv4hi, vec_dupv2si, mmx_concatv2si, vec_setv2si,
15559         vec_extractv2si, vec_initv2si, vec_setv4hi, vec_extractv4hi,
15560         vec_initv4hi, vec_setv8qi, vec_extractv8qi, vec_initv8qi): New.
15561         (mmx_pinsrw): Fix operand ordering.
15562         * config/i386/sse.md (movv4sf splitter): Use direct pattern,
15563         rather than sse_loadss expander.
15564         (movv2df splitter): Similarly.
15565         (sse_loadss, sse_loadlss): Remove.
15566         (vec_dupv4sf, sse_concatv2sf, sse_concatv4sf, vec_extractv4sf_0): New.
15567         (vec_setv4sf, vec_setv2df): Use ix86_expand_vector_set.
15568         (vec_extractv4sf, vec_extractv2df): Use ix86_expand_vector_extract.
15569         (sse3_movddup): Rename with '*'.
15570         (sse3_movddup splitter): Use gen_rtx_REG instead of gen_lowpart.
15571         (sse2_loadsd): Remove.
15572         (vec_dupv2df_sse3): Rename from sse3_loadddup.
15573         (vec_dupv2df, vec_concatv2df_sse3, vec_concatv2df): New.
15574         (sse2_pinsrw): Fix argument ordering.
15575         (sse2_loadld, sse2_loadq): Add sse1 alternatives.
15576         (sse2_stored): Remove 'r' destination.
15577         (vec_dupv4si, vec_dupv2di, sse2_concatv2si, sse1_concatv2si,
15578         vec_concatv4si_1, vec_concatv2di, vec_setv2di, vec_extractv2di,
15579         vec_initv2di, vec_setv4si, vec_extractv4si, vec_initv4si,
15580         vec_setv8hi, vec_extractv8hi, vec_initv8hi, vec_setv16qi,
15581         vec_extractv16qi, vec_initv16qi): New.
15582
15583         * config/i386/emmintrin.h (__m128i, __m128d): Use typedef, not define.
15584         (_mm_set_sd, _mm_set1_pd, _mm_setzero_pd, _mm_set_epi64x,
15585         _mm_set_epi32, _mm_set_epi16, _mm_set_epi8, _mm_setzero_si128): Use
15586         constructor form.
15587         (_mm_load_pd, _mm_store_pd): Use plain dereference.
15588         (_mm_load_si128, _mm_store_si128): Likewise.
15589         (_mm_load1_pd): Use _mm_set1_pd.
15590         (_mm_load_sd): Use _mm_set_sd.
15591         (_mm_store_sd, _mm_storeh_pd): Use __builtin_ia32_vec_ext_v2df.
15592         (_mm_store1_pd, _mm_storer_pd): Use _mm_store_pd.
15593         (_mm_set_epi64): Use _mm_set_epi64x.
15594         (_mm_set1_epi64x, _mm_set1_epi64, _mm_set1_epi32, _mm_set_epi16,
15595         _mm_set1_epi8, _mm_setr_epi64, _mm_setr_epi32, _mm_setr_epi16,
15596         _mm_setr_epi8): Use _mm_set_foo form.
15597         (_mm_loadl_epi64, _mm_movpi64_epi64, _mm_move_epi64): Use _mm_set_epi64.
15598         (_mm_storel_epi64, _mm_movepi64_pi64): Use __builtin_ia32_vec_ext_v2di.
15599         (_mm_extract_epi16): Use __builtin_ia32_vec_ext_v8hi.
15600         (_mm_insert_epi16): Use __builtin_ia32_vec_set_v8hi.
15601         * config/i386/mmintrin.h (_mm_setzero_si64): Use plain cast.
15602         (_mm_set_pi32): Use __builtin_ia32_vec_init_v2si.
15603         (_mm_set_pi16): Use __builtin_ia32_vec_init_v4hi.
15604         (_mm_set_pi8): Use __builtin_ia32_vec_init_v8qi.
15605         (_mm_set1_pi16, _mm_set1_pi8): Use _mm_set_piN variant.
15606         * config/i386/pmmintrin.h (_mm_loaddup_pd): Use _mm_load1_pd.
15607         (_mm_movedup_pd): Use _mm_shuffle_pd.
15608         * config/i386/xmmintrin.h (_mm_setzero_ps, _mm_set_ss,
15609         _mm_set1_ps, _mm_set_ps, _mm_setr_ps): Use constructor form.
15610         (_mm_cvtpi16_ps, _mm_cvtpu16_ps, _mm_cvtpi8_ps, _mm_cvtpu8_ps,
15611         _mm_cvtps_pi8, _mm_cvtpi32x2_ps): Avoid __builtin_ia32_mmx_zero;
15612         Use _mm_setzero_ps.
15613         (_mm_load_ss, _mm_load1_ps): Use _mm_set* form.
15614         (_mm_load_ps, _mm_loadr_ps): Use raw dereference.
15615         (_mm_store_ss): Use __builtin_ia32_vec_ext_v4sf.
15616         (_mm_store_ps): Use raw dereference.
15617         (_mm_store1_ps): Use _mm_storeu_ps.
15618         (_mm_storer_ps): Use _mm_store_ps.
15619         (_mm_extract_pi16): Use __builtin_ia32_vec_ext_v4hi.
15620         (_mm_insert_pi16): Use __builtin_ia32_vec_set_v4hi.
15621
15622 2005-01-11  Stan Shebs  <shebs@apple.com>
15623
15624         * config/rs6000/rs6000.c (machopic_output_stub): Issue
15625         ldu instead of lwzu if 64-bit -mdynamic-no-pic.
15626
15627 2005-01-11  Andrew Pinski  <pinskia@physics.uc.edu>
15628
15629         PR target/18761
15630         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
15631         Skip all DECLs except for FIELD_DECLs.
15632
15633 2005-01-11  Andreas Krebbel  <krebbel1@de.ibm.com>
15634
15635         * config/s390/s390.c (override_options): Return error if
15636         -mbackchain, -mpacked-stack and -mhard-float are used together.
15637         (s390_va_start): Remove the backchain && packed-stack special case.
15638         (s390_gimplify_va_arg): Likewise.
15639         * doc/invoke.texi: Remove the ABI incompatibility note.
15640
15641 2005-01-11  Andreas Krebbel  <krebbel1@de.ibm.com>
15642
15643         * config/s390/s390.c (struct s390_frame_layout): Remove
15644         save_backchain_p.
15645         (s390_frame_info, s390_emit_prologue): Replace occurrences of
15646         save_backchain_p with TARGET_BACKCHAIN.
15647
15648 2005-01-11  Alan Modra  <amodra@bigpond.net.au>
15649
15650         PR target/18916
15651         * builtins.c (std_gimplify_va_arg_expr): Adjust alignment of *ap.
15652         * expr.h (struct locate_and_pad_arg_data): Add "boundary".
15653         * function.c (locate_and_pad_parm): Set new field.
15654         (assign_parm_find_stack_rtl): Use it instead of FUNCTION_ARG_BOUNDARY.
15655         Tweak where_pad test to include "none".  Always set mem align for
15656         stack_parm.
15657         (assign_parm_adjust_stack_rtl): Discard stack_parm if alignment
15658         not sufficient for type.
15659         (assign_parm_setup_block): If stack_parm is zero on entry, always
15660         make a new stack local.  Block move old stack parm if necessary
15661         to new aligned stack local.
15662         (assign_parm_setup_stack): Use a block move to handle
15663         potentially misaligned entry_parm.
15664         (assign_parms_unsplit_complex): Specify required alignment when
15665         creating stack local.
15666         * calls.c (compute_argument_addresses): Override alignment of stack
15667         arg calculated from its type with the alignment given by
15668         FUNCTION_ARG_BOUNDARY.
15669         (store_one_arg): Likewise.
15670
15671 2005-01-11  Jan Beulich  <jbeulich@novell.com>
15672
15673         * config/ia64/ia64.md (zero_extendsidi2): Replace zxt4 by addp4.
15674         Change respective itanium_class attribute to ialu.
15675         (shladdp4_internal): New.
15676         * config/ia64/predicates.md (shladd_log2_operand): New.
15677
15678 2005-01-11  Richard Henderson  <rth@redhat.com>
15679
15680         * expr.c (store_constructor): Use rtvec_alloc instead of
15681         alloca+gen_rtvec_v, and an incorrect number passed to alloca.
15682
15683 2005-01-11  Kazu Hirata  <kazu@cs.umass.edu>
15684
15685         * config/alpha/alpha.c, config/i386/mmx.md: Fix comment typos.
15686
15687 2005-01-11  Alan Modra  <amodra@bigpond.net.au>
15688
15689         * varasm.c (default_section_type_flags_1): Don't set SECTION_SMALL.
15690         * config/ia64/ia64.c (TARGET_SECTION_TYPE_FLAGS): Define.
15691         (TARGET_RWRELOC): Define.
15692         (ia64_rwreloc_section_type_flags): Delete.
15693         (ia64_section_type_flags): New function.
15694         * config/ia64/hpux.h (TARGET_SECTION_TYPE_FLAGS): Don't define.
15695         (TARGET_RWRELOC): Define.
15696
15697 2005-01-10  David Mosberger  <davidm@hpl.hp.com>
15698
15699         PR target/18987
15700         * config/ia64/ia64.c (process_set): For alloc insn, only call
15701         process_epilogue is !frame_pointer_needed.
15702
15703 2005-01-10  Roger Sayle  <roger@eyesopen.com>
15704
15705         PR c++/19355
15706         * c-common.c (c_common_truthvalue_conversion): TRUTH_NOT_EXPR is a
15707         unary operator and can't be treated as a binary/comparison operator.
15708
15709 2005-01-10  Richard Henderson  <rth@redhat.com>
15710
15711         * config/i386/i386.c (ix86_function_value): Use type_natural_mode.
15712         (ix86_return_in_memory): Likewise.
15713         (function_arg_advance):  Likewise.  Mirror structure in function_arg
15714         for choosing register to advance.
15715
15716 2005-01-10  Kazu Hirata  <kazu@cs.umass.edu>
15717
15718         * tree-vectorizer.c, tree.def: Fix comment typos.
15719
15720 2005-01-10  Mark Dettinger  <dettinge@de.ibm.com>
15721
15722         * config/s390/s390.c (struct processor_costs): 4 new fields:
15723         ddbr, ddr, debr, der.
15724         (s390_rtx_costs): More precise handling of divide instructions.
15725
15726 2005-01-10  David Edelsohn  <edelsohn@gnu.org>
15727
15728         * config/rs6000/t-aix43 (BOOT_LDFLAGS): Define.
15729
15730 2005-01-10  Jan Beulich  <jbeulich@novell.com>
15731
15732         * config/ia64/ia64.c (ia64_in_small_data_p): Also handle the section
15733         names resulting from -ffunction-sections/-fdata-sections and linkonce
15734         ones.
15735         * varasm.c (default_section_type_flags_1): Also set SECTION_SMALL
15736         based on the section name. Rearrange the section name comparison logic
15737         slightly so that each section name is compared against at most once.
15738
15739 2005-01-10  Ben Elliston  <bje@au.ibm.com>
15740
15741         * doc/invoke.texi (Code Gen Options): Add PowerPC to the list of
15742         targets for which -fPIC reduces limitations on the GOT size.
15743
15744 2005-01-09  Falk Hueffner  <falk@debian.org>
15745
15746         * fold-const.c (fold): Also handle EXACT_DIV_EXPR when folding
15747         X/C1 cmpop C2.
15748
15749 2005-01-09  David Edelsohn  <edelsohn@gnu.org>
15750
15751         PR target/18720
15752         * collect2.c (main): Set aixrtl_flag for -brtl option.
15753         (resolve_lib_name): Search for .so file extension before .a
15754         if aixrtl_flag set.
15755
15756 2005-01-09  Dorit Naishlos  <dorit@il.ibm.com>
15757
15758         * tree-vectorizer.c (vect_enhance_data_refs_alignment): Add dump prints.
15759         (vect_analyze_data_refs_alignment): Add dump prints.
15760
15761 2005-01-09  Ira Rosen  <irar@il.ibm.com>
15762
15763         * tree-vectorizer.c (vect_analyze_offset_expr): Use
15764         expr_invariant_in_loop_p.
15765         Initialize outputs first thing in the function.
15766         (vect_update_ivs_after_vectorizer): Call initial_condition_in_loop_num.
15767         (vect_is_simple_iv_evolution): Call initial_condition_in_loop_num.
15768         (vect_analyze_pointer_ref_access): Check that the initial condition of
15769         the access function is loop invariant.
15770
15771 2005-01-09  Richard Henderson  <rth@redhat.com>
15772
15773         * config/i386/i386.c (bdesc_2arg): Update names for mmx_ prefixes.
15774         (ix86_expand_builtin): Likewise.  Frob MASKMOVQ wrt the input mem
15775         just like MASKMOVDQU.  Return plain zero for MMX_ZERO.
15776         * config/i386/i386.md (MMXMODEI, mov<MMXMODEI>,
15777         mov<MMXMODEI>_internal_rex64, mov<MMXMODEI>_internal, movv2sf,
15778         movv2sf_internal_rex64, movv2sf_internal, MMXMODE,
15779         movmisalign<MMXMODE>, mmx_pmovmskb, mmx_maskmovq, mmx_maskmovq_rex,
15780         sse_movntdi, addv8qi3, addv4hi3, addv2si3, mmx_adddi3, ssaddv8qi3,
15781         ssaddv4hi3, usaddv8qi3, usaddv4hi3, subv8qi3, subv4hi3, subv2si3,
15782         mmx_subdi3, sssubv8qi3, sssubv4hi3, ussubv8qi3, ussubv4hi3,
15783         mulv4hi3, smulv4hi3_highpart, umulv4hi3_highpart, mmx_pmaddwd,
15784         sse2_umulsidi3, mmx_iordi3, mmx_xordi3, mmx_anddi3, mmx_nanddi3,
15785         mmx_uavgv8qi3, mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pinsrw,
15786         mmx_pextrw, mmx_pshufw, eqv8qi3, eqv4hi3, eqv2si3, gtv8qi3, gtv4hi3,
15787         gtv2si3, umaxv8qi3, smaxv4hi3, uminv8qi3, sminv4hi3, ashrv4hi3,
15788         ashrv2si3, lshrv4hi3, lshrv2si3, mmx_lshrdi3, ashlv4hi3, ashlv2si3,
15789         mmx_ashldi3, mmx_packsswb, mmx_packssdw, mmx_packuswb, mmx_punpckhbw,
15790         mmx_punpckhwd, mmx_punpckhdq, mmx_punpcklbw, mmx_punpcklwd,
15791         mmx_punpckldq, emms, addv2sf3, subv2sf3, subrv2sf3, gtv2sf3, gev2sf3,
15792         eqv2sf3, pfmaxv2sf3, pfminv2sf3, mulv2sf3, femms, pf2id, pf2iw,
15793         pfacc, pfnacc, pfpnacc, pi2fw, floatv2si2, pfrcpv2sf2, pfrcpit1v2sf3,
15794         pfrcpit2v2sf3, pfrsqrtv2sf2, pfrsqit1v2sf3, pmulhrwv4hi3, pswapdv2si2,
15795         pswapdv2sf2): Move to mmx.md; rename as necessary with leading
15796         mmx_ prefix.
15797         (mmx_clrdi, pavgusb): Remove.
15798         (ldmxcsr, stmxcsr, sfence, sfence_insn): Move to sse.md; rename
15799         with leading sse_ prefix.
15800         * config/i386/sse.md: Receive them.
15801         * config/i386/mmx.md: New file.
15802         (MMXMODE12, MMXMODE24, mmxvecsize): New.
15803         (subrv2sf3): Turn into expander for normal subtraction.
15804         (mmx_addv2sf3, mmx_mulv2sf3, mmx_smaxv2sf3, mmx_sminv2sf3,
15805         mmx_eqv2sf3, mmx_mulv4hi3, mmx_smulv4hi3_highpart,
15806         mmx_umulv4hi3_highpart, mmx_pmaddwd, mmx_pmulhrwv4hi3, sse2_umulsidi3,
15807         mmx_umaxv8qi3, mmx_smaxv4hi3, mmx_uminv8qi3, mmx_sminv4hi3): Mark
15808         commutative; use ix86_binary_operator_ok.
15809         (mmx_add<MMXMODEI>3, mmx_ssadd<MMXMODE12>3, mmx_usadd<MMXMODE12>3,
15810         mmx_sub<MMXMODEI>3, mmx_sssub<MMXMODE12>3, mmx_ussub<MMXMODE12>3
15811         mmx_ashr<MMXMODE24>3, mmx_lshr<MMXMODE23>3, mmx_ashl<MMXMODE24>3
15812         mmx_eq<MMXMODEI>3, mmx_gt<MMXMODEI>3, mmx_and<MMXMODEI>3,
15813         mmx_nand<MMXMODEI>3, mmx_ior<MMXMODEI>3, mmx_xor<MMXMODEI>3):
15814         Macroize from existing patterns; use ix86_binary_operator_ok.
15815         (mmx_packsswb, mmx_packssdw, mmx_packuswb): Add memory alternative.
15816         (mmx_punpckhbw, mmx_punpcklbw, mmx_punpckhwd, mmx_punpcklwd,
15817         mmx_punpckhdq, mmx_punpckhdq, mmx_punpckldq): Likewise.  Model
15818         with vec_select+vec_concat.
15819         (mmx_pshufw, mmx_pshufw_1): Likewise.
15820         (mmx_uavgv8qi3): Merge pavgusb.  Model correcty.
15821         (mmx_uavgv4hi3): Model correctly.
15822         * config/i386/mmintrin.h (_mm_and_si64, _mm_andnot_si64, _mm_or_si64,
15823         _mm_xor_si64): Remove casts.
15824
15825 2005-01-09  Zdenek Dvorak  <dvorakz@suse.cz>
15826
15827         PR tree-optimization/19224
15828         * tree-scalar-evolution.c (get_instantiated_value,
15829         set_instantiated_value): New functions.
15830         (instantiate_parameters_1): Cache the results.
15831         (instantiate_parameters, resolve_mixers): Initialize and free
15832         the cache.
15833
15834 2005-01-08  David Edelsohn  <edelsohn@gnu.org>
15835
15836         * config/i386/i386.md (addhi_4): Correct reference in comment.
15837         (addqi_4): Same.
15838
15839 2005-01-08  Richard Henderson  <rth@redhat.com>
15840
15841         * config/i386/emmintrin.h (_mm_cvtsi128_si32): Move earlier.
15842         (_mm_cvtsi128_si64x): Likewise.
15843         (_mm_srl_epi64, _mm_srl_epi32, _mm_srl_epi16, _mm_sra_epi32,
15844         _mm_sra_epi16, _mm_sll_epi64, _mm_sll_epi32, _mm_sll_epi16): Use
15845         the _mm_{srl,sll}i_foo counterpart, and _mm_cvtsi128_si32.
15846         * config/i386/i386-modes.def: Add V16HI, V32QI, V4DF, V8SF.
15847         * config/i386/i386-protos.h: Update.
15848         * config/i386/i386.c (print_operand): Add 'H'.
15849         (ix86_fixup_binary_operands): Split out from ...
15850         (ix86_expand_binary_operator): ... here.
15851         (ix86_fixup_binary_operands_no_copy): New.
15852         (ix86_expand_fp_absneg_operator): Handle vector mode results.
15853         (bdesc_2arg): Update names for sse{,2,3}_ prefixes.
15854         (ix86_init_mmx_sse_builtins): Remove *maskncmp* special cases.
15855         (safe_vector_operand): Use CONST0_RTX.
15856         (ix86_expand_binop_builtin): Use ix86_fixup_binary_operands.
15857         (ix86_expand_builtin): Merge CODE_FOR_sse2_maskmovdqu_rex64 and
15858         CODE_FOR_sse2_maskmovdqu.  Special case SSE version of MASKMOVDQU
15859         expansion.  Update names for sse{,2,3}_ prefixes.  Remove *maskncmp*
15860         special cases.
15861         * config/i386/i386.h (IX86_BUILTIN_CMPNGTSS): New.
15862         (IX86_BUILTIN_CMPNGESS): New.
15863         * config/i386/i386.md (UNSPEC_FIX_NOTRUNC): New.
15864         (attr type): Add sselog1.
15865         (attr unit, attr memory): Handle it.
15866         (movti, movti_internal, movti_rex64): Move near other integer moves.
15867         (movtf, movtf_internal): Move near other fp moves.
15868         (SSEMODE, SSEMODEI, vec_setv2df, vec_extractv2df, vec_initv2df,
15869         vec_setv4sf, vec_extractv4sf, vec_initv4sf, movv4sf, movv4sf_internal,
15870         movv2df, movv2df_internal, mov<SSEMODEI>, mov<SSEMODEI>_internal,
15871         movmisalign<SSEMODE>, sse_movups_1, sse_movmskps, sse_movntv4sf,
15872         sse_movhlps, sse_movlhps, sse_storehps, sse_loadhps, sse_storelps,
15873         sse_loadlps, sse_loadss, sse_loadss_1, sse_movss, sse_storess,
15874         sse_shufps, addv4sf3, vmaddv4sf3, subv4sf3, vmsubv4sf3, negv4sf2,
15875         mulv4sf3, vmmulv4sf3, divv4sf3, vmdivv4sf3, rcpv4sf2, vmrcpv4sf2,
15876         rsqrtv4sf2, vmrsqrtv4sf2, sqrtv4sf2, vmsqrtv4sf2, sse_andv4sf3,
15877         sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3, sse2_andv2df3,
15878         sse2_nandv2df3, sse2_iorv2df3, sse2_xorv2df3, sse2_andv2di3,
15879         sse2_nandv2di3, sse2_iorv2di3, sse2_xorv2di3, maskcmpv4sf3,
15880         vmmaskcmpv4sf3, sse_comi, sse_ucomi, sse_unpckhps, sse_unpcklps,
15881         smaxv4sf3, vmsmaxv4sf3, sminv4sf3, vmsminv4sf3, cvtpi2ps, cvtps2pi,
15882         cvttps2pi, cvtsi2ss, cvtsi2ssq, cvtss2si, cvtss2siq, cvttss2si,
15883         cvttss2siq, addv2df3, vmaddv2df3, subv2df3, vmsubv2df3, mulv2df3,
15884         vmmulv2df3, divv2df3, vmdivv2df3, smaxv2df3, vmsmaxv2df3, sminv2df3,
15885         vmsminv2df3, sqrtv2df2, vmsqrtv2df2, maskcmpv2df3, vmmaskcmpv2df3,
15886         sse2_comi, sse2_ucomi, sse2_movmskpd, sse2_pmovmskb, sse2_maskmovdqu,
15887         sse2_maskmovdqu_rex64, sse2_movntv2df, sse2_movntv2di, sse2_movntsi,
15888         cvtdq2ps, cvtps2dq, cvttps2dq, cvtdq2pd, cvtpd2dq, cvttpd2dq,
15889         cvtpd2pi, cvttpd2pi, cvtpi2pd, cvtsd2si, cvtsd2siq, cvttsd2si,
15890         cvttsd2siq, cvtsi2sd, cvtsi2sdq, cvtsd2ss, cvtss2sd, cvtpd2ps,
15891         cvtps2pd, addv16qi3, addv8hi3, addv4si3, addv2di3, ssaddv16qi3,
15892         ssaddv8hi3, usaddv16qi3, usaddv8hi3, subv16qi3, subv8hi3, subv4si3,
15893         subv2di3, sssubv16qi3, sssubv8hi3, ussubv16qi3, ussubv8hi3, mulv8hi3,
15894         smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3,
15895         sse2_umulv2siv2di3, sse2_pmaddwd, sse2_uavgv16qi3, sse2_uavgv8hi3,
15896         sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd, sse2_pshuflw,
15897         sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3, gtv8hi3,
15898         gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3, ashrv8hi3,
15899         ashrv4si3, lshrv8hi3, lshrv4si3, lshrv2di3, ashlv8hi3, ashlv4si3,
15900         ashlv2di3, sse2_ashlti3, sse2_lshrti3, sse2_unpckhpd, sse2_unpcklpd,
15901         sse2_packsswb, sse2_packssdw, sse2_packuswb, sse2_punpckhbw,
15902         sse2_punpckhwd, sse2_punpckhdq, sse2_punpcklbw, sse2_punpcklwd,
15903         sse2_punpckldq, sse2_punpcklqdq, sse2_punpckhqdq, sse2_movupd,
15904         sse2_movdqu, sse2_movdq2q, sse2_movdq2q_rex64, sse2_movq2dq,
15905         sse2_movq2dq_rex64, sse2_loadd, sse2_stored, sse2_storehpd,
15906         sse2_loadhpd, sse2_storelpd, sse2_loadlpd, sse2_movsd, sse2_loadsd,
15907         sse2_loadsd_1, sse2_storesd, sse2_shufpd, sse2_clflush, sse2_mfence,
15908         mfence_insn, sse2_lfence, lfence_insn, mwait, monitor, addsubv4sf3,
15909         addsubv2df3, haddv4sf3, haddv2df3, hsubv4sf3, hsubv2df3, movshdup,
15910         movsldup, lddqu, loadddup, movddup): Move to sse.md.  Any with
15911         non-optabs meanings renamed with an "sse{,2,3}_" prefix at the
15912         same time.
15913         (SSEPUSH, push<SSEPUSH>): Remove.
15914         (MMXPUSH, push<MMXPUSH>): Remove.
15915         (sse_movaps, sse_movaps_1, sse_movups): Remove.
15916         (sse2_movapd, sse2_movdqa, sse2_movq): Remove.
15917         (sse2_andti3, sse2_nandti3, sse2_iorti3, sse2_xorti3): Remove.
15918         (sse_clrv4sf, sse_clrv2df, sse2_clrti): Remove.
15919         (maskncmpv4sf3, vmmaskncmpv4sf3): Remove.
15920         (maskncmpv2df3, vmmaskncmpv2df3): Remove.
15921         (ashrv8hi3_ti, ashrv4si3_ti, lshrv8hi3_ti, lshrv4si3_ti): Remove.
15922         (lshrv2di3_ti, ashlv8hi3_ti, ashlv4si3_ti, ashlv2di3_ti): Remove.
15923         * config/i386/athlon.md (athlon_sselog_load): Handle sselog1.
15924         (athlon_sselog_load_k8, athlon_sselog, athlon_sselog_k8): Likewise.
15925         * config/i386/ppro.md (ppro_sse_div_V4SF_load): Fix memory attr.
15926         (ppro_sse_log_V4SF_load): Similarly.  Handle sselog1.
15927         (ppro_sse_log_V4SF): Handle sselog1.
15928         * config/i386/predicates.md (const_0_to_1_operand): New.
15929         (const_0_to_255_mul_8_operand): New.
15930         (const_1_to_31_operand): Rename from const_int_1_31_operand.
15931         (const_2_to_3_operand, const_4_to_7_operand): New.
15932         * config/i386/sse.md: New file.
15933         (SSEMODE12, SSEMODE24, SSEMODE124, SSEMODE248, ssevecsize): New.
15934         (sse_movups): Rename from sse_movups_1.
15935         (sse_loadlss): Rename from sse_loadss_1.
15936         (andv4sf3, iorv4sf3, xorv4sf3, andv2df3): Remove the sse prefix
15937         from the name.
15938         (negv4sf2): Use ix86_expand_fp_absneg_operator.
15939         (absv4sf2, negv2df, absv2df): New.
15940         (addv4sf3): Add expander to call ix86_fixup_binary_operands_no_copy.
15941         (subv4sf3, mulv4sf3, divv4sf3, smaxv4sf3, sminv4sf3, andv4sf3,
15942         iorv4sf3, xorv4sf3, addv2df3, subv2df3, mulv2df3, divv2df3,
15943         smaxv2df3, sminv2df3, andv2df3, iorv2df3, xorv2df3, mulv8hi3,
15944         umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3): Likewise.
15945         (sse3_addsubv4sf3): Model correctly.
15946         sse3_haddv4sf3, sse3_hsubv4sf3, sse3_addsubv2df3, sse3_haddv2df3,
15947         sse3_hsubv2df3, sse2_ashlti3, sse2_lshrti3): Likewise.
15948         (sse_movhlps): Model with vec_select+vec_concat.
15949         (sse_movlhps, sse_unpckhps, sse_unpcklps, sse3_movshdup,
15950         sse3_movsldup, sse_shufps, sse_shufps_1, sse2_unpckhpd, sse3_movddup,
15951         sse2_unpcklpd, sse2_shufpd, sse2_shufpd_1, sse2_punpckhbw,
15952         sse2_punpcklbw, sse2_punpckhwd, sse2_punpcklwd, sse2_punpckhdq,
15953         sse2_punpckldq, sse2_punpckhqdq, sse2_punpcklqdq, sse2_pshufd,
15954         sse2_pshufd_1, sse2_pshuflw, sse2_pshuflw_1, sse2_pshufhw,
15955         sse2_pshufhw_1): Likewise.
15956         (neg<SSEMODEI>2, one_cmpl<SSEMODEI>2): New.
15957         (add<SSEMODEI>3, sse2_ssadd<SSEMODE12>3, sse2_usadd<SSEMODE12>3,
15958         sub<SSEMODEI>3, sse2_sssub<SSEMODE12>3, sse2_ussub<SSEMODE12>3,
15959         ashr<SSEMODE24>3, lshr<SSEMODE248>3, sse2_eq<SSEMODE124>3,
15960         sse2_gt<SSEMODDE124>3, and<SSEMODEI>3, sse_nand<SSEMODEI>3,
15961         ior<SSEMODEI>3, xor<SSEMODEI>3): Macroize from existing patterns.
15962         (addv4sf3, sse_vmaddv4sf3, mulv4sf3, sse_vmmulv4sf3, smaxv4sf3,
15963         sse_vmsmaxv4sf3, sminv4sf3, sse_vmsminv4sf3, addv2df3, sse2_vmaddv2df3,
15964         mulv2df3, sse2_vmmulv2df3, smaxv2df3, sse2_vmsmaxv2df3, sminv2df3,
15965         sse2_vmsminv2df3, umaxv16qi3, smaxv8hi3, uminv16qi3
15966         sminv8hi3): Mark commutative
15967         operands.  Use ix86_binary_operator_ok.
15968         (sse_unpckhps, sse_unpcklps, sse2_packsswb, sse2_packssdw,
15969         sse2_packuswb, sse2_punpckhbw, sse2_punpcklbw, sse2_punpckhwd,
15970         sse2_punpcklwd, sse2_punpckhdq, sse2_punpckldq, sse2_punpckhqdq,
15971         sse2_punpcklqdq): Allow operand2 in memory.
15972         (sse_movhlps, sse_movlhps, sse2_unpckhpd, sse2_unpcklpd
15973         sse2_movsd): Add memory alternatives.
15974         (sse_storelps): Turn expander into an insn; split after reload.
15975         (sse_storess, sse2_loadhpd, sse2_loadlpd): Add non-xmm inputs.
15976         (sse2_storehpd, sse2_storelpd): Add non-xmm outputs.
15977
15978 2005-01-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
15979
15980         * configure.ac (DWARF-2 debug_line): Use objdump.
15981         * configure: Regenerate.
15982
15983 2005-01-08  Jeff Law  <law@redhat.com>
15984             Diego Novillo  <dnovillo@redhat.com>
15985
15986         PR tree-optimization/18241
15987         * tree-nrv.c (tree_nrv): Ignore volatile return values.
15988         * tree-ssa-dse.c (dse_optimize_stmt): Do not optimize
15989         statements with volatile operands.
15990         * tree-ssa-operands.c (add_stmt_operand): Do add volatile
15991         operands after marking a statement with has_volatile_ops.
15992
15993 2005-01-08  Roger Sayle  <roger@eyesopen.com>
15994
15995         * tree.c (int_fits_type_p): Always honor integer constant
15996         TYPE_MIN_VALUE and TYPE_MAX_VALUE if they exist.
15997
15998 2005-01-08  Roger Sayle  <roger@eyesopen.com>
15999
16000         * ifcvt.c (find_if_case_1): Reinstate 2005-01-04 change, now that
16001         the latent bug in rtl_delete_block has been resolved.
16002
16003 2005-01-08  Richard Sandiford  <rsandifo@redhat.com>
16004
16005         * config/mips/t-iris6 (MULTILIB_DIRNAMES): Use -mabi argument values.
16006         (MULTILIB_OSDIRNAMES): Use the standard lib, lib32 and lib64.
16007
16008 2005-01-08  Richard Sandiford  <rsandifo@redhat.com>
16009
16010         * config/mips/t-slibgcc-irix (SHLIB_LINK): Install a copy of the
16011         library as @multilib_dir@/$(SHLIB_SONAME).
16012
16013 2005-01-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
16014
16015         * configure.ac (HAVE_AS_OFFSETABLE_LO10): Fix typo.
16016         * configure: Regenerate.
16017
16018 2005-01-07  Jakub Jelinek  <jakub@redhat.com>
16019
16020         * c-common.c (handle_mode_attribute): For ENUMERAL_TYPE, also copy
16021         TYPE_MODE.
16022
16023 2005-01-07  David Edelsohn  <edelsohn@gnu.org>
16024
16025         PR target/13674
16026         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
16027         Convert non-word aligned offset address using ld/std into
16028         indirect address.
16029
16030 2005-01-07  Richard Henderson  <rth@redhat.com>
16031
16032         * config/i386/i386.md (sse_loadhps splitter): Fix operand number typo.
16033
16034 2005-01-07  Richard SAndiford  <rsandifo@redhat.com>
16035
16036         * tree.h (IS_EXPR_CODE_CLASS): Use a straight-forward range check.
16037
16038 2005-01-07  Jakub Jelinek  <jakub@redhat.com>
16039
16040         PR tree-optimization/19283
16041         * fold-const.c (fold_widened_comparison): Return NULL if shorter_type
16042         is not shorter than the original type.
16043
16044         PR rtl-optimization/19012
16045         * config/i386/i386.md (addqi_1_slp): Set memory attribute.
16046
16047         PR rtl-optimization/18861
16048         * cfgbuild.c (BLOCK_USED_BY_TABLEJUMP): Define.
16049         (FULL_STATE): Define.
16050         (mark_tablejump_edge): New function.
16051         (purge_dead_tablejump_edges): New function.
16052         (find_bb_boundaries): Use it.
16053
16054         PR tree-optimization/18828
16055         * builtins.c (expand_builtin_next_arg): Remove argument and all
16056         the argument checking.
16057         (expand_builtin): Adjust caller.
16058         (expand_builtin_va_start): Likewise.  Remove error for too many
16059         arguments.
16060         (fold_builtin_next_arg): Issue error for too many arguments.
16061         After checking arguments, replace them with magic arguments that
16062         prevent further checking of the args.
16063
16064 2005-01-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16065
16066         * pa64-hpux.h (STARTFILE_SPEC): Fix typo in spec.
16067
16068 2005-01-06  Roger Sayle  <roger@eyesopen.com>
16069
16070         PR target/6077
16071         * gcc.c (input_suffix_matches): Tweak the semantics of %{.s:...}
16072         and %{.S:...} (and their negative variants) to test whether the
16073         input file is assembler or pre-processed-assembler independent of
16074         the actual filename extension.
16075
16076 2005-01-06  Roger Sayle  <roger@eyesopen.com>
16077
16078         * simplify-rtx.c (simplify_subreg): Simplify truncations of shifts
16079         of sign or zero extended values.
16080
16081 2005-01-06  Geoffrey Keating  <geoffk@apple.com>
16082
16083         * c-cppbuiltin.c (builtin_define_float_constants): Set __*_EPSILON__
16084         for IBM long double format correctly.
16085
16086 2005-01-06  Daniel Berlin <dberlin@dberlin.org>
16087
16088         Fix PR tree-optimization/18792
16089
16090         * tree-data-ref.c (build_classic_dist_vector): Change first_loop
16091         to first_loop_depth, and use loop depth instead of loop number.
16092         (build_classic_dir_vector): Ditto.
16093         (compute_data_dependences_for_loop): Use depth, not loop number.
16094         * tree-loop-linear.c (try_interchange_loops): Use loop depth, not loop
16095         number. Pass in loops, instead of loop numbers.
16096         (gather_interchange_stats): Ditto.
16097         (linear_transform_loops): Ditto.
16098
16099 2005-01-06  Richard Sandiford  <rsandifo@redhat.com>
16100
16101         PR rtl-opt/13299
16102         * loop.c (get_monotonic_increment, biased_biv_fits_mode_p,
16103         biv_fits_mode_p, extension_within_bounds_p): New functions.
16104         (check_ext_dependent_givs): Use them.
16105
16106 2005-01-06  Roger Sayle  <roger@eyesopen.com>
16107
16108         * cfgrtl.c (rtl_delete_block): A basic block may be followed by
16109         more than one barrier, in which case we should delete them all.
16110
16111 2005-01-06  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
16112
16113         * gcc.c (process_command): Change year in 'gcc --version' to 2005.
16114
16115 2005-01-05  Daniel Berlin  <dberlin@dberlin.org>
16116
16117         Fix PR middle-end/19286
16118         Fix PR debug/19267
16119         * dwarf2out.c (gen_subprogram_die): If we've already tried to
16120         output this subprogram, simply ignore this attempt to do it again.
16121         (add_abstract_origin_attribute): Don't abort trying to add the abstract
16122         origin attribute if it's not possible.
16123         (gen_block_die): Don't ignore subblocks of "unused" blocks.
16124         (decls_for_scope): Ditto.
16125         * gimple-low.c (mark_blocks_with_used_subblocks): Remove.
16126         (mark_used_blocks): Don't call mark_blocks_with_used_subblocks.
16127
16128 2005-01-05  Richard Henderson  <rth@redhat.com>
16129
16130         PR target/11327
16131         * config/i386/i386.c (BUILTIN_DESC_SWAP_OPERANDS): New.
16132         (bdesc_2arg): Use it.
16133         (ix86_expand_binop_builtin): Force operands into registers
16134         when optimizing.
16135         (ix86_expand_unop_builtin, ix86_expand_unop1_builtin,
16136         ix86_expand_sse_compare, ix86_expand_sse_comi,
16137         ix86_expand_builtin): Likewise.
16138
16139 2005-01-05  Richard Henderson  <rth@redhat.com>
16140
16141         * config/ia64/ia64.c (rtx_needs_barrier): Handle CONST_VECTOR
16142         and VEC_SELECT.
16143         * config/ia64/vect.md (mulv8qi3): Re-implement with mix_[rl].
16144         (mulv4hi3): Set itanium_class mmmul.
16145         (fpack_sfxf, fpack_xfsf, fpack_xfxf): Remove.
16146         (fpack): Rename from fpack_sfsf.
16147
16148 2005-01-05  Richard Henderson  <rth@redhat.com>
16149
16150         PR rtl-opt/10692
16151         * reload1.c (do_input_reload): Restrict the optimization deleteing
16152         a previous output reload to RELOAD_FOR_INPUT.
16153
16154 2005-01-05  Steven Bosscher  <stevenb@suse.de>
16155
16156         * combine.c (expand_compound_operation)  <ZERO_EXTRACT>: Add
16157         comment that we fall through after case.
16158         (mark_used_regs_combine): Don't expect a SIGN_EXTRACT in a SET_DEST.
16159         (distribute_links): Likewise.
16160         * cse.c (cse_insn): Likewise.
16161         * cselib.c (cselib_invalidate_mem): Likewise.
16162         * df.c: Update comments at the top of the file.
16163         (read_modify_subreg_p): Update comments here too.
16164         (df_def_record_1): Don't expect a SIGN_EXTRACT in a SET_DEST.
16165         * flow.c (mark_set_1): Likewise.
16166         (mark_used_regs): Likewise.
16167         * gcse.c (mems_conflict_for_gcse_p): Likewise.
16168         (canon_list_insert): Likewise.
16169         (mark_set): Likewise.
16170         (try_replace_reg): Likewise.
16171         (store_killed_in_insn): Likewise.
16172         * loop.c (count_one_set): Likewise.
16173         (basic_induction_var): Likewise.
16174         * postreload-gcse.c (find_mem_conflicts): Likewise.
16175         * postreload.c (reload_combine_note_store): Likewise.
16176         (move2add_note_store): Likewise.
16177         * reload.c (find_equiv_reg): Likewise.
16178         (mark_referenced_resources): Likewise.
16179         * rtlanal.c (set_noop_p): Likewise.
16180         (note_stores): Likewise.
16181         (note_uses): Likewise.
16182         * sched-deps.c (sched_analyze_1): Likewise.
16183         * sched-rgn.c (check_live_1): Likewise.
16184         (update_live_1): Likewise.
16185         * config/i860/i860.c: Likewise.
16186
16187         * rtl.dec (SIGN_EXTRACT): Document that this cannot appear as
16188         an lvalue.
16189         (ZERO_EXTRACT): Mention that this one can be an lvalue.
16190
16191         * doc/rtl.texi: Update documentation for bit-fields and SET.
16192
16193 2005-01-05  Roger Sayle  <roger@eyesopen.com>
16194
16195         * ifcvt.c (find_if_case_1): Revert 2005-01-04 change.
16196
16197 2005-01-05  Jan Hubicka  <jh@suse.cz>
16198             Richard Henderson  <rth@redhat.com>
16199
16200         PR target/18910
16201         * config/i386/i386.c (ix86_expand_move): Handle tls symbols
16202         with an offset.
16203
16204 2005-01-05  Richard Henderson  <rth@redhat.com>
16205
16206         PR target/12902
16207         * config/i386/i386.md (sse_movhps, sse_movlps): Remove.
16208         (sse_shufps): Change operand 3 to const_int_operand.
16209         (sse2_storelps): Fix typo in template.
16210         (sse_storehps, sse_loadhps, sse_storelps, sse_loadlps): New.
16211         * config/i386/i386.c (ix86_expand_vector_move_misalign): Use them.
16212         (ix86_expand_builtin): Likewise.
16213
16214 2005-01-05  Julian Brown  <julian@codesourcery.com>
16215
16216         * config/arm/arm.c (arm_return_in_memory): Treat complex types
16217         as aggregates for AAPCS ABIs.
16218
16219 2005-01-05  Stan Shebs  <shebs@apple.com>
16220
16221         * unwind-dw2-fde-darwin.c (examine_objects): Use 64-bit
16222         Mach-O getters if ppc64.
16223         * config/darwin.c (darwin_asm_output_dwarf_delta): Obey
16224         size argument.
16225         * config/darwin.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
16226         signed four-byte field for global code case.
16227         (STARTFILE_SPEC): Avoid crt2.o for 64-bit compilation.
16228
16229 2005-01-05  Roger Sayle  <roger@eyesopen.com>
16230
16231         PR middle-end/19100
16232         * c-common.c: Include real.h.
16233         (c_common_truthvalue_conversion): Avoid destructively modifying expr.
16234         Correctly handle TREE_CONSTANT_OVERFLOW for INTEGER_CST.
16235         Correctly handle TREE_CONSTANT_OVERFLOW and NaNs for REAL_CST.
16236         * Makefile.in (c-common.o): Update dependencies.
16237
16238 2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
16239
16240         * c-parse.in (asm_string): Add trailing semicolon.
16241
16242 2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
16243
16244         * c-parse.in (asm_string): New.  Don't allow wide strings in
16245         'asm'.
16246         (simple_asm_expr, asm_argument, asm_operand, asm_clobbers): Use
16247         asm_string instead of STRING.
16248
16249 2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
16250
16251         * c-typeck.c (constructor_no_implicit): Remove.
16252         (set_designator, process_init_element): Don't check
16253         constructor_no_implicit.
16254
16255 2005-01-05  J"orn Rennecke <joern.rennecke@st.com>
16256             Kaz Kojima  <kkojima@gcc.gnu.org>
16257
16258         PR target/16482
16259         * lcm.c (create_pre_exit): New.
16260         (optimize_mode_switching): In MODE_ENTRY / MODE_EXIT case, set
16261         ENTRY_EXIT_EXTRA to 3.  Use create_pre_exit.
16262
16263 2004-01-05  Richard Earnshaw  <rearnsha@arm.com>
16264
16265         * arm.h (TARGET_OPTIONS): Correctly record -mhard-float and
16266         -msoft-float in target_float_switch.
16267         * arm.c (arm_override_options): Fix processing of target_float_switch.
16268
16269 2004-01-05  Richard Earnshaw  <rearnsha@arm.com>
16270
16271         * arm/vfp.md (arm_movsi_vfp): Hide VFP register classes from register
16272         preferencing.
16273
16274 2004-01-05  Uros Bizjak  <uros@kss-loka.si>
16275
16276         * doc/invoke.texi (Intel 386 and AMD x86-64 Options):
16277         Replace i387 with 'i386 compiler' in -mfpmath=sse option.
16278
16279 2005-01-04  Roger Sayle  <roger@eyesopen.com>
16280
16281         * ifcvt.c (find_if_case_1): Avoid creating an empty forwarder block,
16282         if deleting the then-block allows the test-block to fallthru to the
16283         else-block.
16284
16285 2005-01-04  Andrew Pinski  <pinskia@physics.uc.edu>
16286
16287         PR c/19152
16288         * c-decl.c (diagnose_mismatched_decls): Accept "extern inline" declared
16289         after the full declaration if the are in two different TUs.
16290
16291 2005-01-04  Richard Henderson  <rth@redhat.com>
16292
16293         PR tree-opt/19158
16294         * tree-sra.c (generate_one_element_init): Just
16295         call gimplify_and_add.
16296         (generate_element_init): Record the
16297         new referenced variables and mark them for renaming
16298         and split out to ...
16299         (generate_element_init_1): This.
16300         (scalarize_init): Don't call push_gimplify_context/
16301         pop_gimplify_context.
16302
16303 2005-01-04  Geoffrey Keating  <geoffk@apple.com>
16304
16305         * toplev.c (get_src_pwd): Handle failure of getpwd().
16306
16307 2005-01-04  Roger Sayle  <roger@eyesopen.com>
16308
16309         * fold-const.c (fold_single_bit_test): Delete unreachable handling
16310         of TRUTH_NOT_EXPR.
16311         (fold): Don't call fold_single_bit_test with a TRUTH_NOT_EXPR, as
16312         all the cases handled by it are inverted by invert_truthvalue.
16313
16314 2005-01-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
16315
16316         * config/sparc/sparc.md (save_register_windowdi): Add missing mode.
16317         (save_register_windowsi): Likewise.
16318
16319 2005-01-04  Richard Henderson  <rth@redhat.com>
16320
16321         * tree-mudflap.c (mf_varname_tree): Fix thinko setting declname.
16322
16323 2005-01-04  Uros Bizjak  <uros@kss-loka.si>
16324
16325         PR middle-end/17767
16326         * cse.c (fold_rtx) [RTX_COMPARE, RTX_COMM_COMPARE]: Don't attempt
16327         any simplifications of vector mode comparison operators.
16328         * simplify-rtx.c (simplify_relational_operation): Fix variable name.
16329
16330 2005-01-04  Paolo Bonzini  <bonzini@gnu.org>
16331             Devang Patel  <dpatel@apple.com>
16332
16333         PR tree-optimization/18308
16334         * tree-if-conv.c (add_to_dst_predicate_list): Gimplify
16335         the operands before creating a new expression.
16336         * dojump.c (do_jump): Make drop_through_label available
16337         for all cases.  Add expansion of COND_EXPR.
16338
16339 2005-01-04  Ira Rosen  <irar@il.ibm.com>
16340
16341         * tree-vectorizer.c (vect_analyze_offset_expr): Test for
16342         INTEGER_CST instead of TREE_CONSTANT.
16343         (vect_gen_niters_for_prolog_loop): Test for INTEGER_CST
16344         instead of TREE_CONSTANT.
16345         (vect_analyze_pointer_ref_access): Test for INTEGER_CST
16346         instead of TREE_CONSTANT.
16347
16348 2005-01-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
16349
16350         * tree-eh.c (replace_goto_queue): Return early if the queue is empty.
16351
16352 2005-01-04  Uros Bizjak  <uros@kss-loka.si>
16353
16354         PR target/19240
16355         * config/i386/i386.md (*fop_df_1_i387): Disable for TARGET_SSE_MATH.
16356         (*fop_df_1_i387): Disable for (TARGET_SSE2 && TARGET_SSE_MATH).
16357
16358 2005-01-03  Richard Henderson  <rth@redhat.com>
16359
16360         * fold-const.c (force_fit_type): Cope with types larger than 2 HWI.
16361         (fold_convert_const_int_from_int, fold_convert_const_int_from_real,
16362         fold_convert_const_real_from_real): Split out from ...
16363         (fold_convert_const): ... here.
16364
16365 2005-01-03  Richard Henderson  <rth@redhat.com>
16366
16367         PR target/19235
16368         * config/i386/i386.md (movdi_2): Separate SSE1 and SSE2 alternatives.
16369         (mov<MMXMODEI>_internal): Likewise.
16370         (movdf_nointeger): Prefer Y while not preferring, but allowing, x.
16371         Add V2SF case; use it for SSE1; don't use TI.
16372         (movdf_integer): Likewise.
16373         (mov<SSEMODEI>_internal, movti_internal): Force V4SF for SSE1.
16374
16375 2005-01-03  Ira Rosen  <irar@il.ibm.com>
16376
16377         * tree-vectorizer.c (vect_strip_conversions): New function.
16378         (vect_analyze_offset_expr): Call vect_strip_conversions. Add
16379         check for binary class.
16380
16381 2005-01-03  Daniel Berlin  <dberlin@dberlin.org>
16382
16383         Fix PR debug/17924
16384         Fix PR debug/19191
16385         * dwarf2out.c (block_ultimate_origin): Follow decl origin if origin
16386         is a decl.
16387         * gimple-low.c (mark_blocks_with_used_vars): New function.
16388         (mark_blocks_with_used_subblocks): Ditto.
16389         (mark_used_blocks): Ditto.
16390         (pass_mark_used_blocks): New pass.
16391         * tree-inline.c: Include debug.h.
16392         (expand_call_inline): Call outlining_inline_function here.
16393         * tree-optimize.c (init_tree_optimization_passes): Add
16394         pass_mark_used_blocks.
16395         * tree-pass.h (pass_mark_used_blocks): New.
16396         * Makefile.in (tree-inline.o): Add debug.h dependency.
16397
16398 2005-01-03  Geoffrey Keating  <geoffk@apple.com>
16399
16400         * config/darwin.c (darwin_handle_weak_import_attribute): Permit
16401         VAR_DECLs to have weak_import attribute.
16402
16403         * config/rs6000/darwin-fallback.c: Use 'ucontext_t' rather than
16404         'struct ucontext'.
16405
16406 2004-01-03  Steven Bosscher  <stevenb@suse.de>
16407
16408         * passes.c (rest_of_compilation): Don't run regmove if only
16409         flag_expensive_optimizations, require flag_regmove instead.
16410
16411 2005-01-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
16412
16413         * config/sparc/litecoff.h (TARGET_OS_CPP_BUILTINS): Do not
16414         register "sparc".
16415         * config/sparc/sysv4-only.h (TARGET_OS_CPP_BUILTINS): Likewise.
16416         * config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
16417         * config/sparc/sol2-64.h (TARGET_SUB_OS_CPP_BUILTINS): Delete.
16418         * config/sparc/sp64-elf.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
16419
16420 2005-01-03  Richard Henderson  <rth@redhat.com>
16421
16422         * config/ia64/ia64.c (TARGET_VECTOR_MODE_SUPPORTED_P): New.
16423         (ia64_const_ok_for_letter_p): New.
16424         (ia64_const_double_ok_for_letter_p): New.
16425         (ia64_extra_constraint): New.
16426         (ia64_expand_vecint_compare): New.
16427         (ia64_expand_vcondu_v2si): New.
16428         (ia64_expand_vecint_cmov): New.
16429         (ia64_expand_vecint_minmax): New.
16430         (ia64_print_operand): Add 'v'.
16431         (ia64_preferred_reload_class): New.
16432         (ia64_vector_mode_supported_p): New.
16433         * config/ia64/ia64.h (UNITS_PER_SIMD_WORD): New.
16434         (PREFERRED_RELOAD_CLASS): Move to function.
16435         (CONST_OK_FOR_LETTER_P): Move to function.
16436         (CONST_DOUBLE_OK_FOR_LETTER_P): Move to function.
16437         (CONSTRAINT_OK_FOR_Q, CONSTRAINT_OK_FOR_R): Remove.
16438         (CONSTRAINT_OK_FOR_S, CONSTRAINT_OK_FOR_T): Remove.
16439         (EXTRA_CONSTRAINT): Move to function.
16440         * config/ia64/ia64.md: Include vect.md.
16441         (itanium_class): Add mmalua.
16442         (type): Handle it.
16443         * config/ia64/itanium1.md (1_mmalua): New.  Add it to bypasses.
16444         (1b_mmalua): New.
16445         * config/ia64/itanium2.md (2_mmalua, 2b_mmalua): Similarly.
16446         * config/ia64/predicates.md (gr_reg_or_0_operand): Accept any
16447         CONST0_RTX.
16448         (const_int_2bit_operand): New.
16449         (fr_reg_or_0_operand): New.
16450         * config/ia64/ia64-modes.def: Add vector modes.
16451         * config/ia64/ia64-protos.h: Update.
16452         * config/ia64/vect.md: New file.
16453
16454 2005-01-03  Richard Henderson  <rth@redhat.com>
16455
16456         * simplify-rtx.c (simplify_binary_operation): Handle VEC_CONCAT.
16457
16458 2005-01-03  Uros Bizjak  <uros@kss-loka.si>
16459
16460         PR target/19236
16461         * config/i386/i386.c (log1psf2): Change mode of operands[0,1]
16462         to SFmode.
16463         (log1pdf2): Change mode of operands[0,1] to DFmode.
16464
16465 2005-01-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
16466
16467         * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Define to false.
16468         * config/sparc/linux.h (SPARC_RELAXED_ORDERING): Define to true.
16469         * config/sparc/linux64.h (SPARC_RELAXED_ORDERING): Likewise.
16470         * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Define to
16471         SPARC_RELAXED_ORDERING.
16472
16473 2005-01-03  Richard Henderson  <rth@redhat.com>
16474             Uros Bizjak  <uros@kss-loka.si>
16475
16476         PR target/14631
16477         * config/i386/i386.c (ix86_expand_builtin): [IX86_BUILTIN_PINSRW,
16478         IX86_BUILTIN_PINSRW128]: Fix wrong selector range in error message.
16479         * config/i386/i386.md (mmx_pinsrw, sse2_pinsrw): Fix selector
16480         handling.
16481         (*mmx_pinsrw, *sse2_pinsrw): New patterns.
16482         * config/i386/i386/predicates.md (const_pow2_1_to_8_operand,
16483         const_pow2_1_to_128_operand): New predicates.
16484
16485 2005-01-02  Greg McGary  <greg@mcgary.org>
16486
16487         * tree-mudflap.c (mf_varname_tree): decl_printable_name handles
16488         anonymous decls.
16489         (mf_xform_derefs_1) [RESULT_DECL, STRING_CST]: Handle as innermost
16490         object.  [ptr_type]: Remove unused variable.
16491         Remember nearest addressable array-element or record-component
16492         when checking bitfield components.  Tolerate empty BIND_EXPR.
16493
16494 2005-01-01  Richard Henderson  <rth@redhat.com>
16495
16496         * tree-vectorizer.c (vect_analyze_offset_expr): Strip conversions
16497         that don't narrow the value.  Fail for other conversions.
16498
16499 2005-01-01  Richard Henderson  <rth@redhat.com>
16500
16501         PR c/19031
16502         * c-decl.c (pop_file_scope): Call maybe_apply_pending_pragma_weaks.
16503         * c-lang.c (finish_file): Don't do it here.
16504         * objc/objc-act.c (objc_finish_file): Likewise.
16505
16506         * cgraph.c (decl_assembler_name_equal): New.
16507         (cgraph_node_for_asm, cgraph_varpool_node_for_asm): New.
16508         (cgraph_varpool_node): Actually link up cgraph_varpool_nodes.
16509         * cgraph.h (struct cgraph_varpool_node): Add next.
16510         (cgraph_node_for_asm, cgraph_varpool_node_for_asm): Declare.
16511         * varasm.c (assemble_alias): Mark the target as needed.
16512
16513 2005-01-01  Andrew Pinski  <pinskia@physics.uc.edu>
16514
16515         PR middle-end/19221
16516         * function.c (get_arg_pointer_save_area): Use entry_of_function
16517         instead of get_insns.
16518
16519 2005-01-01  Roger Sayle  <roger@eyesopen.com>
16520             Andrew Pinski  <pinskia@physics.uc.edu>
16521             James E. Wilson  <wilson@specifixinc.com>
16522
16523         PR rtl-optimization/12092
16524         * loop.c (emit_prefetch_instructions): Do nothing if PREFETCH_BLOCK
16525         is zero.
16526
16527 2005-01-01  Roger Sayle  <roger@eyesopen.com>
16528             Olivier Hainque  <hainque@act-europe.fr>
16529
16530         * tree.c (int_fits_type_p): A narrower type always fits in a
16531         wider one, except for negative values into unsigned types.
16532
16533 2005-01-01  Roger Sayle  <roger@eyesopen.com>
16534
16535         * tree.c (int_fits_type_p): Compare the result of force_fit_type
16536         with the original constant rather than require TREE_OVERFLOW.
16537
16538 2005-01-01  Steven Bosscher  <stevenb@suse.de>
16539
16540         PR middle-end/17544
16541         * c-decl.c (finish_function): If compiling C99, annotate the
16542         compiler generated return with the current file name and line 0.
16543         * tree-cfg.c (remove_useless_stmts_warn_notreached): Only warn if
16544         the source line is greater than 0.
16545         (remove_bb): Likewise.