OSDN Git Service

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