OSDN Git Service

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