OSDN Git Service

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