OSDN Git Service

761c6d0c1f35c36e4f4b5186e4bafaf456fa540e
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2005-05-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
2
3         * config/sparc/sparc.md (movhi): Do not test constness
4         of operand #1 twice.
5         (movsi): Likewise.
6         (movdi): Unconditionally accept zero as second operand
7         when the first is memory.
8         (movdi_insn_sp32): Handle above case.
9         (DImode splitter): Use predicates.
10         (DImode splitter): Use const_zero_operand predicate.
11         (movsf_insn): Swap 2 alternatives.
12
13 2005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
14
15         * tree-ssa-loop-ivopts.c (find_bivs, find_givs_in_stmt_scev): Apply
16         expand_simple_operations to bases of the ivs.
17         (tree_int_cst_sign_bit): Export.
18         * tree-flow.h (expand_simple_operations): Declare.
19         * tree-ssa-loop-niter.c (number_of_iterations_cond): Use
20         tree_int_cst_sign_bit.
21         (expand_simple_operations): Export.
22         * tree.h (tree_int_cst_sign_bit): Declare.
23
24 2005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
25
26         * tree-cfg.c (tree_can_merge_blocks_p): Allow phi nodes in the
27         merged block.
28         (replace_uses_by): New function.
29         (tree_merge_blocks): Eliminate the phi nodes in the merged block.
30         * tree-flow.h (fold_stmt_inplace): Declare.
31         * tree-ssa-ccp.c (fold_stmt_inplace): New function.
32         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Update dominance
33         info after cfg cleanup.
34
35 2005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
36
37         * cfgloop.h (just_once_each_iteration_p): Declaration changed.
38         * cfgloopanal.c (just_once_each_iteration_p): Make the loop argument
39         const.
40
41 2005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
42
43         * ggc-page.c (ggc_alloc_stat): Record amount of memory allocated.
44         * ggc-zone.c (ggc_alloc_zone_1): Ditto.
45         * timevar.c (timevar_ggc_mem_total): New variable.
46         (GGC_MEM_BOUND): New constant.
47         (get_time): Record ggc memory status.
48         (timevar_accumulate): Accumulate amount of ggc memory.
49         (timevar_print): Print consumption of ggc memory.
50         * timevar.def (TV_FIND_REFERENCED_VARS, TV_TREE_REDPHI,
51         TV_TREE_LOOP_BOUNDS, TV_TREE_LOOP_IVCANON, TV_TREE_VECTORIZATION,
52         TV_TREE_LINEAR_TRANSFORM): Shorten strings to fit in 22 characters.
53         * timevar.h (struct timevar_time_def): Add ggc_mem field.
54         (timevar_ggc_mem_total): Declare.
55
56 2005-05-17  Kazu Hirata  <kazu@cs.umass.edu>
57
58         * tree-into-ssa.c (update_ssa): Clean up by shortening the
59         live range of DFS.
60
61 2005-05-17  Hans-Peter Nilsson  <hp@axis.com>
62
63         * config/cris/cris.md (ncond, ocode, rcond): Remove separate
64         define_code_attr.
65         ("b<ncond:code>", "b<ocond:code>", "b<rcond:code>")
66         ("*b<ncond:code>_reversed", "*b<ocond:code>_reversed")
67         ("*b<rcond:code>_reversed", "s<ncond:code>", "s<rcond:code>")
68         ("s<ocond:code>"): Rename from respectively "b<ncond>",
69         "b<ocond>", "b<rcond>", ("*b<ncond>_reversed",
70         "*b<ocond>_reversed", "*b<rcond>_reversed", "s<ncond>",
71         "s<rcond>" and "s<ocond>".
72         ("b<ocond:code>", "*b<ocond:code>_reversed")
73         ("*b<rcond:code>_reversed"): Remove extraneous backslashes in
74         output statement section.
75
76 2005-05-17  Roger Sayle  <roger@eyesopen.com>
77
78         * c-typeck.c (common_type): Also handle BOOLEAN_TYPEs.
79
80 2005-05-17  Steven Bosscher  <stevenb@suse.de>
81             Stuart Hastings <stuart@apple.com>
82             Jan Hubicka  <jh@suse.cz>
83             Dale Johannesen  <dalej@apple.com>
84
85         * cgraph.h (cgraph_node): Add 'lowered' state.
86         (cgraph_lower_function): Declare.
87         * cgraphunit.c (cgraph_finalize_function): Initialize lowered flag.
88         (cgraph_lower_function): New function.
89         (cgraph_create_edges): Deal with lowered function bodies.
90         (verify_cgraph_node): Likewise.
91         (cgraph_analyze_function): Do lowering job.
92         (cgraph_build_static_cdtor): Likewise.
93         * function.h (struct function): Add saved_eh and saved_cfg.
94         * integrate.c (copy_decl_for_inlining): Kill LABEL_DECL_UID field.
95         * tree-cfg.c (fold_cond_expr_cond): Export.
96         * tree-flow.h (fold_cond_expr_cond): Declare.
97         * tree-inline.c: Include basic-block, ggc, tree-flow, except.h and
98         pointer-set.
99         (struct_inline_data): Kill fnd, first_inlined_fn, ret_label,
100         in_target_cleanup_p, tree_pruner, tsi; add callee, caller and
101         callee_cfun, block, eh_region, eh_region_offset.
102         (inlining_p): New predicate.
103         (remap_decl): Update for new inline_data; declare newly created inline
104         vars in low gimple way.
105         (copy_body_r): Update for new datastructure, simplify some of handling
106         when we are in gimple; remap LABEL_DECLs for EH; copy TREE_BLOCK;
107         deal with RESX_EXPRs.
108         (copy_bb): New.
109         (copy_edges_for_bb): Likewise.
110         (remap_decl_1): New.
111         (copy_cfg_body): New.
112         (copy_generic_body): Rewrite to work on low gimple.
113         (copy_body): Turn into simple wrapper around copy_cfg_body.
114         (setup_one_parameter): Insert new statements into given basic block.
115         (initialize_initialized_parameters): Likewise, reorganize way things are
116         gimplified.
117         (declare_return_variable): Update for new inline data datastructure.
118         (inline_forbidden_p): Work on low gimple.
119         (estimate_num_insns): Likewise.
120         (expand_call_inline): Work on CFG.
121         (push_cfun, pop_cfun): New functions.
122         (cfun_stack): New stack.
123         (add_lexical_block): New function.
124         (gimple_expand_calls_inline): Work on basic block.
125         (optimize_inline_calls): Likewise.
126         (clone_body, save_body, unsave_ewpr_now): Update for new
127         datastructures.
128         (declare_inline_vars): Work on block instead of bind_expr.
129         (inlining_p): New predicate.
130         * tree-inline.h (push_cfun, pop_cfun): Declare.
131         * tree-optimize.c: Include except.h
132         (all_lowering_passes): New variable.
133         (execute_fixup_cfg, pass_fixup_cfg): New pass.
134         (init_tree_optimization_passes): Move some to all_lowering_passes.
135         (tree_lowering_passes): New function.
136         (tree_rest_of_compilation): Register cfg hooks; save/unsave eh.
137
138 2005-05-17  Nathan Sidwell  <nathan@codesourcery.com>
139
140         * unwind-dw2-fde-darwin.c: Include tsystem.h.
141
142 2005-05-17  Jeff Law  <law@redhat.com>
143
144         * Makefile.in (tree-ssa-forwprop.o): Depend on langhooks.h.
145         * tree-ssa-forwprop.c: Include langhooks.h.
146         (forward_propagate_addr_expr_into_variable_array_index): New.
147         (forward_propagate_addr_expr): New.
148         (tree_ssa_forward_propagate_single_use_vars): Loop over all
149         the statements in the block instead of just the last statement.
150         Call forward_propagate_addr_expr as needed.
151         (pass_forwprop): Update the SSA graph after forward propagation is
152         complete.
153
154 2005-05-17  Nathan Sidwell  <nathan@codesourcery.com>
155
156         * unwind-dw2-fde-glibc.c (base_from_cb_data,
157         _Unwind_IteratePhdrCallback): Use gcc_assert and gcc_unreachable as
158         appropriate.
159         * unwind-dw2-fde.c (__deregister_frame_info_bases,
160         base_from_object, fde_split, end_fde_sort): Likewise.
161         * unwind-dw2.c (_Unwind_GetGR, _Unwind_SetGR, execute_stack_op, 
162         execute_cfa_program, _Unwind_SetSpColumn, uw_update_context_1,
163         uw_init_context_1): Likewise.
164         * unwind.inc (_Unwind_RaiseException_Phase2, _Unwind_Resume,
165         _Unwind_Resume_or_Rethrow): Likewise.
166         * unwind-pe.h (__gxx_abort): Do not define.
167         (size_of_encoded_value, base_of_encoded_value,
168         read_encoded_value_with_base): Use gcc_unreachable.
169         * unwind.h (_Unwind_GetTextRelBase): Likewise.
170
171 2005-05-17  Daniel Jacobowitz  <dan@codesourcery.com>
172
173         * config/arm/lib1funcs.asm (cfi_pop, cfi_push, cfi_start)
174         (cfi_end): New macros.
175         (RETLDM): Use cfi_pop.  Expect an eight byte stack frame.
176         (ARM_LDIV0, THUMB_LDIV0, DIV_FUNC_END): Use CFI macros.  Create
177         an eight byte stack frame.
178         (__NR_tkill): Define.
179         (__div0): Use gettid tkill on GNU/Linux.
180         (_arm_return): Add CFI.
181         (Lchange_\register, .Lchange_lr): Create an eight byte stack frame.
182
183 2005-05-17  Daniel Jacobowitz  <dan@codesourcery.com>
184
185         * configure.ac: Remove spaces around assignment to
186         gcc_cv_ld_sysroot.
187         * configure: Regenerated.
188
189 2005-05-17  David Edelsohn  <edelsohn@gnu.org>
190
191         * config/rs6000/aix.h (TARGET_ALTIVEC_VRSAVE): Delete.
192         * config/rs6000/rs6000.c (rs6000_explicit_options): Add
193         aix_struct_ret.
194         (rs6000_override_options): Do not protect TARGET_ALTIVEC_VRSAVE.
195         Modify aix_struct_return variable, not target_flags.
196         (rs6000_handle_option): Do not protect TARGET_ALTIVEC_VRSAVE.
197         (rs6000_return_in_memory): Test aix_struct_return.
198         * config/rs6000/rs6000.opt (maix-struct-return): Convert to
199         independent variable.  Report mxl-compat.
200
201 2005-05-17  Bernd Schmidt  <bernd.schmidt@analog.com>
202
203         * config/bfin/bfin.md (eh_return): Add missing DONE.
204
205 2005-05-17  Ian Lance Taylor  <ian@airs.com>
206
207         * read-rtl.c (struct macro_traverse_data): Add unknown_mode_attr
208         field.
209         (mode_attr_index): Remove check for defined attribute.  Remove
210         infile parameter.  Change all callers.
211         (apply_mode_maps): Add unknown parameter.  Change caller.  Always
212         return after finding attribute.
213         (apply_macro_to_rtx): Add unknown_mode_attr parameter.  Change
214         callers.
215         (apply_macro_traverse): Set mtd->unknown_mode_attr.
216         (read_rtx): Use mtd.unknown_mode_attr to check for an undefined
217         attribute used for a mode.
218
219 2005-05-17  Paolo Bonzini  <bonzini@gnu.org>
220
221         * tree-ssa-math-opts.c: New file.
222
223 2005-05-17  Paolo Bonzini  <bonzini@gnu.org>
224
225         * Makefile.in: Add tree-ssa-math-opts.c.
226         * expr.c (expand_expr_real_1) <case RDIV_EXPR>: Never emit as a*(1/b).
227         * fold-const.c (distribute_real_division): New.
228         (fold_binary) <case PLUS_EXPR, case MINUS_EXPR>: Use it.
229         * tree-pass.h (pass_cse_reciprocals): New.
230         * tree-optimize.c (init_tree_optimization_passes): Run it.
231         * doc/passes.texi: Document the new pass.
232
233 2005-05-17  Richard Guenther  <rguenth@gcc.gnu.org>
234
235         PR middle-end/21595
236         * builtins.c (fold_builtin_constant_p): Handle
237         &"string cst"[0] as constant.
238
239 2005-05-17  Richard Henderson  <rth@redhat.com>
240
241         * config/i386/sse.md (mulv16qi3, mulv2di3): New.
242
243 2005-05-17  Jakub Jelinek  <jakub@redhat.com>
244
245         PR middle-end/21492
246         * cfgcleanup.c (try_crossjump_to_edge): update_forwarder_flag for
247         src2 if src2 has been split.
248
249         PR tree-optimization/21610
250         * c-typeck.c (decl_constant_value_for_broken_optimization): If not
251         returning DECL, call unshare_expr.
252
253 2005-05-17  Hans-Peter Nilsson  <hp@axis.com>
254
255         * config/cris/cris.md: Unquote preparation and output statements.
256         (BWD, WD, BW): New, mode-macros.
257         (S, s, m, mm, nbitsm1): New, mode-attrs.
258         (szext, shift, shiftrt, ncond, ocond, rcond): New, code-macros.
259         (u, su, shlr, slr, ncond, ocond, rcond, rCC, oCC, roCC): New,
260         code-attrs.
261         ("tst<mode>"): Replace "tstqi", "tsthi" and "tstsi".
262         ("*cmp_ext<mode>"): Replace "*cmp_extsi" and "*cmp_exthi".
263         ("*cmp_swapext<mode>"): Replace "*cmp_swapextqi" and
264         "*cmp_swapexthi".
265         ("cmp<mode>"): Replace "cmphi" and "cmpqi".
266         ("movdi"): Move misplaced head comment regarding necessity of
267         movdi from movsi to here.
268         ("*mov_side<mode>_biap"): Replace "*mov_sideqi_biap" and
269         "*mov_sidehi_biap".
270         ("*mov_side<mode>"): Replace "*mov_sideqi" and "*mov_sidehi".
271         ("*mov_side<mode>_biap_mem", "*mov_sidehi_biap_mem"): Replace
272         "*mov_sideqi_biap_mem".
273         ("*mov_side<mode>_mem"): Replace "*mov_sideqi_mem" and
274         "*mov_sidehi_mem".
275         ("*clear_side<mode>_biap"): Replace "*clear_sidesi_biap",
276         "*clear_sidehi_biap" and "*clear_sideqi_biap".
277         ("*clear_side<mode>"): Replace "*clear_sidesi", "*clear_sidehi"
278         and "*clear_sideqi".
279         ("*ext_side<mode>si_biap"): Replace "*ext_sideqisi_biap" and
280         "*ext_sidehisi_biap".
281         ("*ext_side<mode>si"): Replace "*ext_sideqisi" and
282         "*ext_sidehisi".
283         ("reload_in<mode>"): Replace "reload_inhi" and "reload_inqi".
284         ("reload_out<mode>"): Replace "reload_outhi" and "reload_outqi".
285         ("extend<mode>di2"): Replace "extendhidi2" and "extendqidi2".
286         ("extend<mode>si2"): Replace "extendhisi2" and "extendqisi2".
287         ("zero_extend<mode>si2"): Replace "zero_extendhisi2" and
288         "zero_extendqisi2".
289         ("*op_side<mode>_biap"): Replace "*op_sideqi_biap",
290         "*op_sidehi_biap" and "*op_sidesi_biap".
291         ("*op_side<mode>"): Replace "*op_sideqi", "*op_sidehi" and
292         "*op_sidesi".
293         ("*op_swap_side<mode>_biap"): Replace "*op_swap_sideqi_biap",
294         "*op_swap_sidehi_biap" and "*op_swap_sidesi_biap".
295         ("*op_swap_side<mode>"): Replace "*op_swap_sideqi",
296         "*op_swap_sidehi" and "*op_swap_sidesi".
297         ("sub<mode>3"): Replace "subhi3" and "subqi3", correcting a typo
298         in the N alternative of "subqi3".
299         ("*extop<mode>si_side_biap"): Replace "*extopqisi_side_biap" and
300         "*extophisi_side_biap".
301         ("*extop<mode>si_side"): Replace "*extopqisi_side" and
302         "*extophisi_side".
303         ("*extop<mode>si_swap_side_biap"): Replace
304         "*extopqisi_swap_side_biap" and "*extophisi_swap_side_biap".
305         ("*extop<mode>si_swap_side"): Replace "*extopqisi_swap_side" and
306         "*extophisi_swap_side".
307         ("*extop<mode>si"): Replace "*extopqisi" and "*extophisi".
308         ("*extop<mode>si_swap"): Replace "*extopqisi_swap" and
309         "*extophisi_swap".
310         ("<u>mul<s><mode>3"): Replace "umulhisi3", "umulqihi3",
311         "mulqihi3", "mulhisi3" and "mulhisi3".
312         ("<u>mulsidi3"): Replace "mulsidi3" and "umulsidi3".
313         ("<su>mulsi3_highpart"): Replace "smulsi3_highpart" and
314         "umulsi3_highpart".
315         ("xor<mode>3"): Replace "xorhi3" and "xorqi3".
316         ("neg<mode>2"): Replace "negsi2", "neghi2" and "negqi2".
317         ("one_cmpl<mode>2"): Replace "one_cmplhi2" and "one_cmplqi2".
318         ("<shlr>si3"): Replace "ashrsi3", "lshrsi3" and "ashlsi3".
319         ("ashr<mode>3"): Replace "ashrhi3" and "ashrqi3".
320         ("*expanded_<shlr><mode>"): Replace "*expanded_ashrhi",
321         "*expanded_ashrqi", "*expanded_lshrhi" and "*expanded_lshrqi".
322         ("*<shlr><mode>_lowpart"): Replace "*ashrhi_lowpart",
323         "*ashrqi_lowpart", "*lshrhi_lowpart" and "*lshrqi_lowpart".
324         ("lshr<mode>3"): Replace "lshrhi3" and "lshrqi3".
325         ("ashl<mode>3"): Replace "ashlhi3" and "ashlqi3".
326         ("*ashl<mode>_lowpart"): Replace "*ashlqi_lowpart" and
327         "*ashlhi_lowpart".
328         ("abs<mode>2"): Replace "abshi2" and "absqi2".
329         ("b<ncond>"): Replace "beq", "bne", "bgtu", "bltu", "bgeu" and
330         "bleu".
331         ("b<ocond>"): Replace "bgt" and "ble".
332         ("b<rcond>"): Replace "blt" and "bge".
333         ("*b<ncond>_reversed"): Replace "*beq_reversed", "*bne_reversed",
334         "*bgtu_reversed", "*bltu_reversed", "*bgeu_reversed" and
335         "*bleu_reversed".
336         ("*b<ocond>_reversed"): Replace "*bgt_reversed" and
337         "*ble_reversed".
338         ("*b<rcond>_reversed"): Replace "*blt_reversed" and
339         "*blt_reversed".
340         ("s<ncond>"): Replace "sgeu", "sltu", "seq", "sgtu", "sleu" and
341         "sne".
342         ("s<rcond>"): Replace "sge" and "slt".
343         ("s<ocond>"): Replace "sgt" and "sle".
344         ("clear.[bwd] [rx=rx+rz.S2]"): Replace split clear.d
345         [rx=rx+rz.S2], clear.w [rx=rx+rz.S2] and clear.b [rx=rx+rz.S2].
346         ("clear.[bwd] [rx=rx+i]"): Replace splits clear.d [rx=rx+i],
347         clear.w [rx=rx+i] and clear.b [rx=rx+i].
348
349 2005-05-17  Jakub Jelinek  <jakub@redhat.com>
350
351         * varasm.c (struct constant_descriptor_tree): Add hash field.
352         (const_desc_hash): Just return hash field.
353         (const_desc_eq): If hash values are different, return 0 immediately.
354         (output_constant_def): Compute hash field of temporary key, use
355         htab_find_slot_with_hash instead of htab_find_slot.  Set hash in
356         newly built constant descriptor.
357         (lookup_constant_def): Compute hash field of temporary key, use
358         htab_find_with_hash instead of htab_find.
359
360 2005-05-16  Richard Henderson  <rth@redhat.com>
361
362         * config/i386/sse.md (mulv4si3): New.
363
364 2005-05-17  Hans-Peter Nilsson  <hp@axis.com>
365
366         * config/cris/cris.h (EXTRA_CONSTRAINT_T): Remove FIXME and
367         tests for noncanonical versions of reg+constant and
368         reg+reg*{1,2,4}.
369
370 2005-05-16  Richard Henderson  <rth@redhat.com>
371             Steven Bosscher <stevenb@suse.de>
372
373         PR tree-opt/21399
374         * tree-eh.c (maybe_clean_or_replace_eh_stmt): Rename from 
375         maybe_clean_eh_stmt; take old stmt parameter.  Update EH
376         region data structure to match replacement.
377         * tree-flow.h: Update to match.
378         * tree-ssa-ccp.c (execute_fold_all_builtins): Likewise.
379         * tree-ssa-dom.c (optimize_stmt): Likewise.
380         * tree-ssa-pre.c (eliminate): Likewise.
381         * tree-ssa-propagate.c (substitute_and_fold): Likewise.
382
383 2005-05-16  Caroline Tice  <ctice@apple.com>
384
385         * bb-reorder.c (verify_hot_cold_block_grouping):  Replace
386         internal_error with gcc_assert.
387         * dwarf2out.c (dwarf2out_switch_text_section):  Likewise.
388         * function.h (struct function): Remove space between "*" and
389         struct field names.
390         * varasm.c (initialize_cold_section_name):   Add gcc_assert;
391         modify to use alloca.
392         (unlikely_text_section): Add check for flag_function_sections.
393         (assemble_start_function):  Move call to resolve_section, so it
394         comes before first call to unlikely_text_section.
395         (assemble_end_function):  Add test and call to function_section
396         if appropriate.
397         
398 2005-05-16  Roger Sayle  <roger@eyesopen.com>
399
400         * c-common.c (c_common_truthvalue_conversion): Use fold_build2
401         instead of build_binary_op when performing code transformations
402         to avoid error messages about constructs not it the user's code.
403
404 2005-05-16  Kazu Hirata  <kazu@cs.umass.edu>
405
406         * tree-ssa-pre.c: Fix a comment typo.
407
408 2005-05-16  Richard Henderson  <rth@redhat.com>
409
410         PR target/21556
411         * config/ia64/ia64.md (load_dtpmod, load_ltoff_dtpmod, load_dtprel,
412         load_dtprel64, load_dtprel22, load_dtprel_gd, load_ltoff_dtprel,
413         add_dtprel, add_dtprel14, add_dtprel22, load_tprel, load_tprel64,
414         load_tprel22, load_tprel_ie, load_ltoff_tprel, add_tprel, add_tprel14,
415         add_tprel22): Remove mode from symbolic operand.
416
417 2005-05-16  Richard Sandiford  <rsandifo@redhat.com>
418
419         * optc-gen.awk: Include intl.h after the externally-provided files.
420
421 2005-05-16  Kazu Hirata  <kazu@cs.umass.edu>
422
423         * tree-ssa-copy.c (copy_prop_visit_assignment): Clean up by
424         folding a COND_EXPR_COND in a nondestructive manner.
425
426 2005-05-16  Fariborz Jahanian <fjahanian@apple.com>
427
428         * config/rs6000/altivec.md (altivec_vmrghb, altivec_vmrghh, 
429         altivec_vmrghw, altivec_vmrglb, altivec_vmrglh, altivec_vmrglw):
430         New values for vec_select definitions and bitmask for element
431         selection.
432          
433 2005-05-16  Kazu Hirata  <kazu@cs.umass.edu>
434
435         * dwarf2out.c (used_rtx_varray): Rename to used_rtx_array.
436         Change the type to VEC(rtx,gc)*.
437         (mem_loc_descriptor, add_const_value_attributes,
438         dwarf2out_init): Adjust uses of used_rtx_varray.
439
440         * tree-data-ref.c (compute_all_dependences): Change the type
441         of dependence_relations to VEC(ddr_p,heap)**.
442         (compute_data_dependences_for_loop): Change the type of
443         allrelations to VEC(ddr_p,heap)*.
444
445 2005-05-16  Richard Sandiford  <rsandifo@redhat.com>
446
447         * Makefile.in (options.c): Tell optc-gen.awk to include config.h,
448         system.h, coretypes.h and tm.h.
449         (options.o): Update dependencies accordingly.
450         * optc-gen.awk: Allow header_name to be a list of filenames.
451         Handle the "Condition" flag.
452         * opts.h (CL_DISABLED): New flag.
453         * opts.c (handle_option): Print an error for CL_DISABLED options.
454         * doc/options.texi: Document the "Condition" option flag.
455
456 2005-05-16  Paolo Bonzini  <bonzini@gnu.org>
457
458         * tree-inline.c (estimate_num_insns_1): Handle VEC_COND_EXPR.
459
460 2005-05-15  Roger Sayle  <roger@eyesopen.com>
461
462         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Only
463         check for TREE_OVERFLOW on INTEGER_CST trees.
464         * tree-chrec.c (chrec_convert): Only clear TREE_OVERFLOW on
465         CONSTANT_CLASS_P tree nodes.
466
467 2005-05-15  H.J. Lu  <hongjiu.lu@intel.com>
468
469         PR target/21551
470         * config/ia64/ia64.c (ia64_expand_move): Don't add addend twice.
471
472 2005-05-15  Daniel Berlin  <dberlin@dberlin.org>
473             
474         Fix PR tree-optimization/21576
475         
476         * tree-ssa-pre.c (expression_node_pool): New pool.
477         (comparison_node_pool): Ditto.
478         (list_node_pool): Ditto.
479         (pool_copy_list): New function.
480         (phi_translate): Handle CALL_EXPR.
481         (valid_in_set): Ditto.
482         (create_expression_by_pieces): Ditto.
483         (insert_into_preds_of_block): Ditto.
484         (insert_aux): Ditto.
485         (compute_avail): Ditto.
486         (create_value_expr_from): Handle TREE_LIST and CALL_EXPR.
487         (can_value_number_call): New function.
488         (find_leader): Update comment.
489         (init_pre): Create new pools.
490         (fini_pre): Free new pools.
491         (pass_pre): Add TODO_update_ssa for the future when we are going
492         to need vops.
493         * tree-vn.c (expressions_equal_p): Handle TREE_LIST.
494         (set_value_handle): Ditto.
495         (get_value_handle): Ditto.
496
497 2005-05-15  Richard Earnshaw  <richard.earnshaw@arm.com>
498
499         * arm.c (thumb_unexpanded_epilogue): Delete unused variable 'mode'.
500
501 2005-05-15  Andreas Jaeger  <aj@suse.de>
502
503         * gcc.c (pfatal_pexecute): Remove unused local function.
504
505 2005-05-15  Richard Sandiford  <rsandifo@redhat.com>
506
507         * optc-gen.awk: Remove excess indentation.
508         * opth-gen.awk: Likewise.
509
510 2005-05-14  Kaz Kojima  <kkojima@gcc.gnu.org>
511
512         * config/sh/sh.c (sh_output_mi_thunk): Check cfun->cfg instead
513         of basic_block_info.  Call init_flow and find_basic_blocks
514         before dbr_schedule if needed.
515
516 2005-05-14  Kazu Hirata  <kazu@cs.umass.edu>
517
518         * tree-optimize.c (init_tree_optimization_passes): Move
519         pass_cd_dce in place of the last pass_dce.
520
521         PR tree-optimization/21563
522         * tree-vrp.c (compare_value): Return boolean_false_node when
523         SSA_NAME in "if (SSA_NAME == CST)" is strictly smaller than or
524         strictly larger than CST.
525
526 2005-05-14  Nathan Sidwell  <nathan@codesourcery.com>
527             Jan-Benedict Glaw  <jbglaw@lug-owl.de>
528
529         * config/vax/vax.c: (print_operand_address) Use gcc_unreachable() and
530         gcc_assert().
531         (rev_cond_name) Likewise.
532         (vax_float_literal) Likewise.
533         * config/vax/vax.md: Likewise.
534
535 2005-05-14  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
536
537         * config/vax/vax.md: define_constant VAXens AP, FP, SP and PC
538         registers and use them (specifically the stack pointer).
539         * config/vax/vax.h: Use above defines right here.
540
541         * config/vax/vax.c: (override_options) Remove 'register' keyword.
542         (split_quadword_operands) Likewise. (rev_cond_name) Likewise.
543         (vax_float_literal) Likewise. (vax_rtx_costs) Remove trailing
544         whitespace.
545         * config/vax/vax.h: Remove 'register' keyword. Misc. whitespace fixes,
546         mostly removal of trailing spaces...
547         * config/vax/vax-modes.def: Remove trailing whitespace.
548
549         * config/vax/elf.h: Update whitespace.
550
551 2005-05-14  Richard Guenther  <rguenth@gcc.gnu.org>
552
553         Revert
554         2005-05-11  Richard Guenther  <rguenth@gcc.gnu.org>
555         * fold-const.c (fold_indirect_ref_1): Avoid removing
556         NOP_EXPRs with type qualifiers like const.
557
558 2005-05-14  Jan Hubicka  <jh@suse.cz>
559
560         Patch by Richard Henderson:
561         * tree-eh.c (tree_can_throw_internal, tree_can_throw_external):
562         Handle RESX expressions properly.
563
564         * tree-eh.c (record_stmt_eh_region): Use add_stmt_to_eh_region.
565         (add_stmt_to_eh_region_fn): Nest into CALL_EXPR.
566         (remove_stmt_from_eh_region_fn): Likewise.
567
568         * tree-cfg.c (execute_warn_function_return): Break out noreturn
569         warning too..
570         (execute_warn_function_noreturn): ... here.
571         (pass_warn_function_noreturn): New pass.
572         * tree-pass.h (pass_warn_function_noreturn): Declare
573         * tree-optimize.c (init_tree_optimization_passes): Move return
574         warnings early and add noreturn warnings at place of previous
575         return warnings.
576
577 2005-05-14  Kazu Hirata  <kazu@cs.umass.edu>
578
579         * tree-ssa-live.c (tpa_init, tpa_delete, tpa_compact,
580         root_var_init, type_var_init): Use VEC instead of VARRAY.
581         * tree-ssa-live.h (tree_partition_associator_d): Change the
582         type of trees to VEC(tree,heap)*.
583         (tpa_tree): Use VEC instead of VARRAY.
584
585 2005-05-14  Richard Guenther  <rguenth@gcc.gnu.org>
586
587         * fold-const.c (div_if_zero_remainder): New function.
588         (try_move_mult_to_index): Use it.
589
590 2005-05-14  Kazu Hirata  <kazu@cs.umass.edu>
591
592         * tree-eh.c (leh_tf_state): Change the type of dest_array to
593         VEC(tree,heap)*.
594         (maybe_record_in_goto_queue, lower_try_finally_onedest,
595         lower_try_finally_copy, lower_try_finally_switch,
596         lower_try_finally): Use VEC instead of VARRAY.
597
598 2005-05-14  Hans-Peter Nilsson  <hp@axis.com>
599
600         * config/cris/cris.h (Node: Register Classes): Remove obsoleted
601         comment regarding defined register classes.
602         (LEGITIMIZE_RELOAD_ADDRESS): Do not define.
603
604 2005-05-14  Kazu Hirata  <kazu@cs.umass.edu>
605
606         * tree-optimize.c (init_tree_optimization_passes): Move
607         pass_merge_phi before the first pass_dominator.
608
609 2005-05-13  Richard Earnshaw  <richard.earnshaw@arm.com>
610
611         * arm.h (INITIALIZE_TRAMPOLINE): Make the call to __clear_cache
612         unconditional.
613
614 2005-05-13  Josh Conner  <jconner@apple.com>
615
616         * config/arm/arm.c (arm_size_return_regs): New.
617         (thumb_unexpanded_epilogue): replace in-line calculation
618         of return registers with call to arm_size_return_regs.
619         (use_return_insn): Include test of which registers are
620         being used to hold return values, to accommodate
621         vector return values.
622
623 2005-05-11  Aldy Hernandez  <aldyh@redhat.com>
624
625         * config/rs6000/sysv4.opt (mlittle): Handle.
626
627         * config/rs6000/rs6000.c (rs6000_handle_option): Set
628         target_flags_explicit when appropriate.
629
630 2005-05-13  J"orn Rennecke <joern.rennecke@st.com>
631
632         PR middle-end/20714:
633         * optabs.c (no_conflict_data): New struct.
634         (no_conflict_move_test): New function.
635         (emit_no_conflict_block): Use it.
636
637 2005-05-13  Adam Nemet  <anemet@lnxw.com>
638
639         * doc/invoke.texi (Debugging Options): Option
640         -fdump-translation-unit only works with C++ now.
641
642 2005-05-13  Hans-Peter Nilsson  <hp@axis.com>
643
644         Replace calls to abort in CRIS port.
645         * config/cris/cris.h (CRIS_ASSERT): New macro.
646         * config/cris/cris.md ("*movsi_internal"): Use CRIS_ASSERT and
647         internal_error instead of abort.
648         ("movsi"): Ditto.  Unquote preparation statement section.
649         ("call", "call_value"): Ditto, but use gcc_assert where
650         appropriate.  Tweak comments.
651         * config/cris/cris.c (ASSERT_PLT_UNSPEC): Define in terms of
652         CRIS_ASSERT.
653         (cris_op_str): Call internal_error, not abort.
654         (cris_print_operand): Tweak "abort" reference to "die" in comment.
655         (cris_initial_elimination_offset): Call gcc_unreachable, not abort.
656         (cris_notice_update_cc): Call internal_error, not abort.
657         (cris_expand_return, cris_expand_prologue, cris_gen_movem_load)
658         (cris_emit_movem_store, cris_asm_output_symbol_ref)
659         (cris_output_addr_const_extra): Use CRIS_ASSERT, don't call abort.
660         (cris_symbol, cris_got_symbol): Use CRIS_ASSERT instead of
661         ENABLE_CHECKING-guarded abort call.
662         (cris_split_movdx): Use CRIS_ASSERT instead of abort with test.
663         Use internal_error at end of test-chain.
664
665 2005-05-13  J"orn Rennecke <joern.rennecke@st.com>
666
667         PR rtl-optimization/20769:
668         * bt-load.c (compute_defs_uses_and_gen): Check for the blockage
669         pattern emitted by expand_nl_goto_receiver.
670
671         PR middle-end/20793:
672         * integrate.c (allocate_initial_values): Update register liveness
673         information.
674
675 2005-05-13  Josh Conner  <jconner@apple.com>
676
677         * arm.c (arm_return_in_memory): Add handling for vector return types.
678
679 2005-05-13  David Ung  <davidu@mips.com>
680
681         * config/mips/mips.h (processor_type): Add new PROCESSOR_4KP
682         name.
683         * config/mips/mips.c: Add 4km alias.
684         * config/mips/mips.md: Add 4kp to cpu attrib and include 4k.md.
685         * config/mips/4k.md: New file, add 4Kc/4Kp DFA pipeline
686         description.
687
688 2005-05-13  Jan Hubicka  <jh@suse.cz>
689
690         * c-decl.c (finish_function): Suppress "control reaches end of
691         non-void function" when "no return statement in function
692         returning non-void" is issued.
693
694         * tree-inline.c (copy_body_r): Simplify substituted ADDR_EXPRs.
695         * tree-optimize.c (pass_gimple): Kill.
696         (init_tree_optimization_passes): Kill pass_gimple.
697         * tree-cfg.c (build_tree_cfg): Do verify_stmts to check that we are gimple.
698         * tree-dump.c (dump_files): Rename .generic to .gimple.*
699
700 2005-05-13  J"orn Rennecke <joern.rennecke@st.com>
701
702         PR rtl-optimization/20756:
703         * basic-block.h (PROP_DEAD_INSN): Define.
704         * flow.c (propagate_one_insn): Set during mark_set_regs call
705         for a dead insn.
706         (mark_set_1): Emit a clobber when we are about to delete a dead insn
707         that kills a live register.
708
709 2005-05-13  Adrian Straetling  <straetling@de.ibm.com>
710
711         * config/s390/s390.md: ("DBL"): New mode attribute.
712         ("*movmem_long_64", "*movmem_long_31"): Merge to "*movmem_long".
713         ("*clrmem_long_64", "*clrmem_long_31"): Merge to "*clrmem_long".
714         ("*cmpmem_long_64", "*cmpmem_long_31"): Merge to "*cmpmem_long".
715
716 2005-05-13  Richard Guenther  <rguenth@gcc.gnu.org>
717
718         * c-format.c (check_format_arg): Handle string literals of
719         the form &"string"[offset].
720
721         * g++.dg/warn/format4.C: New testcase.
722
723 2005-05-13  Kazu Hirata  <kazu@cs.umass.edu>
724
725         * config/mips/3000.md, config/mips/4000.md,
726         config/mips/4100.md, config/mips/4300.md, config/mips/4600.md,
727         config/mips/5000.md, config/mips/7000.md, config/mips/9000.md,
728         config/mips/generic.md, config/pdp11/pdp11.md,
729         config/sh/crt1.asm, config/sh/lib1funcs.asm,
730         config/sh/sh-modes.def, config/sh/sh-protos.h,
731         config/sh/shmedia.md, config/sh/ushmedia.h: Update copyright.
732
733 2005-05-13  Richard Henderson  <rth@redhat.com>
734
735         * function.c (instantiate_virtual_regs_in_insn): Do not simplify
736         addition to move unless dest is a register.  Do not skip
737         instantiation in dest on addition simplification.
738
739 2005-05-13  Hans-Peter Nilsson  <hp@axis.com>
740
741         * config/cris/cris.c (cris_print_operand) <case 'H'; case
742         CONST_INT>: Use operand_subword and HOST_WIDE_INT_PRINT_DEC for
743         output; don't have special case for HOST_BITS_PER_WIDE_INT == 32.
744
745 2005-05-13  Jan Hubicka  <jh@suse.cz>
746
747         * basic-block.h (FOR_ALL_BB_FN): New macro.
748         (init_flow): Initialize cfg structure.
749         * function.c (allocate_struct_function): Do not initialize cfg structure.
750         * tree-cfg.c (init_empty_tree_cfg): Break out from ...
751         (build_tree_cfg): ... here.
752         * tree-flow.h (init_empty_tree_cfg): Declare.
753
754 2005-05-12  Steven Bosscher <stevenb@suse.de>
755
756         Fix PR tree-optimization/21520
757         * tree-ssa-pre.c (phi_translate): Use fully_constant_expression
758         to attempt to fold constants.
759
760 2005-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
761
762         * config/sh/sh.c: Declare the prototype of sh_adjust_unroll_max
763         only when TARGET_ADJUST_UNROLL_MAX is defined.
764         (general_movsrc_operand): Use the C style comment.
765         (ua_offset): Use prototype.
766
767 2005-05-12  Zdenek Dvorak  <dvorakz@suse.cz>
768
769         * tree-ssa-loop-im.c (struct mem_ref): Add field "next".
770         (struct hmr_data, hoist_memory_reference, memref_del,
771         struct fmrv_data): Removed.
772         (hoist_memory_references, free_mem_ref, free_mem_refs): New functions.
773         (gather_mem_refs, gather_mem_refs_stmt): Add new references to the
774         list.
775         (find_more_ref_vops): Traverse the list of memory references.
776         (determine_lsm_loop): Work with the list of memory references instead
777         of traversing the hashtable.
778
779 2005-05-12  Steven Bosscher  <stevenb@suse.de>
780             Stuart Hastings <stuart@apple.com>
781             Jan Hubicka  <jh@suse.cz>
782
783         * except.c  (duplicate_eh_region_1, duplicate_eh_region_2,
784         duplicate_eh_regions): New functions, based on old
785         implementation removed with RTL inliner.
786         (reachable_next_level): Modify behaviour pre-inline.
787         * except.h (duplicate_eh_regions_map, duplicate_eh_regions):
788         Declare.
789         * function.h (struct function): Add after_inlining flag.
790         * tree-optimize.c (tree_rest_of_compilation): Set it.
791         * tree-eh.c (add_stmt_to_eh_region_fn): Initialize hashtable
792         when needed.
793         * tree-cfg.c (label_to_block_fn): Deal with cases where
794         label was never insterted into code.
795
796 2005-05-12  Zack Weinberg  <zack@codesourcery.com>
797
798         * doc/cpp.texi: Document that #sccs is a synonym for #ident.
799
800 2005-05-12  Daniel Berlin  <dberlin@dberlin.org>
801
802         Fix PR tree-optimization/21532
803         * tree-ssa-pre.c (create_expression_by_pieces): stmt
804         needs to go onto the inserted_exprs list.
805
806 2005-05-12  Ian Lance Taylor  <ian@airs.com>
807
808         * c-common.h (statement_code_p): Don't declare.
809         (STATEMENT_CODE_P): Don't define.
810         (INIT_STATEMENT_CODES): Don't define.
811         * c-common.c (statement_code_p): Don't define.
812
813 2005-05-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
814
815         * config/sparc/sparc.h: Remove dead code.
816         * config/sparc/sparc.c (sparc_compute_frame_size): Use
817         FIRST_PARM_OFFSET for the size of the register window area.
818         (emit_save_regs): Rename into emit_save_or_restore_regs.
819         Add 'action' parameter.  Use 4095 as upper bound for the offset.
820         Pass 'action' to save_or_restore_regs.
821         (emit_restore_regs): Delete.
822         (sparc_expand_prologue): Call emit_save_or_restore_regs.
823         (sparc_expand_epilogue): Likewise.
824         * config/sparc/sparc.md (mode macro P): Move.
825         (movdi_insn_sp32_v9, movdi_insn_sp32): Swap.
826         (mov<V32:mode> expander): Move to the top of the V32 section.
827         (movdf_insn_sp32_v9_no_fpu, movdf_insn_sp32_v9): Swap.
828         (movtf_insn_sp64_hq, movtf_insn_sp64): Swap.
829         (sibcall_epilogue): Move.
830
831 2005-05-12  Richard Earnshaw  <richard.earnshaw@arm.com>
832
833         PR target/21501
834         * arm.c (arm_gen_constant): Sign-extend intermediate values when
835         synthesizing a constant of the difference of two immediates.
836
837 2005-05-12  Richard Earnshaw  <richard.earnshaw@arm.com>
838
839         * arm/vfp.md (negsf2_vfp): Add alternative using integer registers.
840         (negdf2_vfp): Likewise.  Convert to define_insn_and_split and split
841         the alternatives using integer registers into the appropriate
842         primitives.
843
844 2005-05-11 Kenneth Zadeck <zadeck@naturalbridge.com>
845
846         * bitmap.c (bitmap_elmt_to_freelist, bitmap_element_allocate,
847         bitmap_elt_clear_from, bitmap_clear): Changed freelist structure.
848         * bitmap.h: Fixed comments.
849
850 2005-05-11  Richard Henderson  <rth@redhat.com>
851
852         PR target/21412
853         * config/ia64/ia64.c (TARGET_CANNOT_FORCE_CONST_MEM): New.
854         (ia64_cannot_force_const_mem): New.
855         (tls_symbolic_operand_type): New.
856         (ia64_legitimate_constant_p): New.
857         (ia64_expand_load_address): Return true on success.  Improve
858         checks for when we should not split.
859         (ia64_expand_tls_address): New addend operand.  Distribute it
860         as appropriate to the tls_kind.  Delay referencing gp.
861         (ia64_expand_move): Split symbolic addend as necessary.  Handle
862         tls symbols with addends.
863         * config/ia64/ia64-protos.h: Update.
864         * config/ia64/ia64.h (CALL_REALLY_USED_REGISTERS): False for r0,
865         p0, f0, f1, and r13.
866         (LEGITIMATE_CONSTANT_P): Move to ia64_legitimate_constant_p.
867         * config/ia64/ia64.md (UNSPEC_DTPMOD): New.
868         (symbolic_operand splitter): Pass everything through
869         ia64_expand_load_address and FAIL or DONE as appropriate.
870         (load_fptr): Only accept after reload.
871         (load_fptr_internal1, gprel64_offset, load_gprel64, load_symptr_high,
872         load_symptr_low, load_ltoff_dtpmod,
873         (load_dtpmod): New.
874         (load_dtprel): Only accept tls symbols.
875         (load_dtprel64, load_dtprel22): Likewise.
876         (load_tprel, load_tprel64, load_tprel22): Likewise.
877         (load_dtprel_gd, load_ltoff_dtprel, load_tprel_ie): New.
878         (add_dtprel): Only accept tls symbols.  Canonicalize PLUS.
879         (add_dtprel14, add_dtprel22): Likewise.
880         (add_tprel, add_tprel14, add_tprel22): Likewise.
881         * config/ia64/predicates.md (small_addr_symbolic_operand): New.
882         (any_offset_symbol_operand, aligned_offset_symbol_operand): New.
883         (got_symbolic_operand): Check CONST offsets.
884         (tls_symbolic_operand, ld_tls_symbolic_operand): New.
885         (ie_tls_symbolic_operand, le_tls_symbolic_operand): New.
886         (move_operand): Don't handle tls here.  Check CONST offsets.
887
888 2005-05-11  Richard Sandiford  <rsandifo@redhat.com>
889
890         * config/mips/7000.md (rm7_impy_si_mult): Just match imul and imadd.
891         Remove hilo_operand check.
892         (rm7_impy_si_mul): Just match imul3.  Remove hilo_operand check.
893         * config/mips/predicates.md (hilo_operand): Delete.
894
895 2005-05-11  Richard Sandiford  <rsandifo@redhat.com>
896
897         * config/mips/sr71k.md, config/mips/7000.md: Reformat.
898
899 2005-05-11  Kazu Hirata  <kazu@cs.umass.edu>
900
901         PR tree-optimizer/18472
902         * tree-if-conv.c (tree_if_convert_stmt,
903         if_convertible_modify_expr_p): Don't handle GOTO_EXPR.
904
905 2005-05-11  Jan Hubicka  <jh@suse.cz>
906
907         * Makefile.in (tree-eh.o: Kill gt-tree-eh.h dependency.
908         (GTFILES): add except.h.
909         * except.c (eh_status): Add throw_stmt_table.
910         (set_eh_throw_stmt_table, get_eh_throw_stmt_table): New functions.
911         * except.h (add_stmt_to_eh_region_fn, remove_stmt_from_eh_region_fn,
912         lookup_stmt_eh_region_fn): Declare.
913         (throw_stmt_node): New structure.
914         (set_eh_throw_stmt_table, get_eh_throw_stmt_table): New.
915         * gengtype.c (open_base_files): Add except.h to inlines.
916         * tree-eh.c (throw_stmt_node): Kill.
917         (record_stmt_eh_region): Update.
918         (add_stmt_to_eh_region_fn): Break out from ...
919         (add_stmt_to_eh_region): ... here.
920         (remove_stmt_from_eh_region_fn): Break out from ...
921         (remove_stmt_from_eh_region): ... here.
922         (lookup_stmt_eh_region_fn): Break out from ...
923         (lookup_stmt_eh_region): ... here.
924         (honor_protect_cleanup_actions): Use build_resx.
925         (lower_try_finally_onedest): Likewise.
926         (lower_try_finally_copy): Likewise.
927         (lower_try_finally_switch): Likewise.
928         (lower_eh_constructs): Update eh table construction.
929         * tree.c (build_resx): New.
930         * tree.h (build_resx): Declare.
931
932 2005-05-11  H.J. Lu  <hongjiu.lu@intel.com>
933
934         * libgcov.c (gcov_exit): Set prefix_length to 0 if no relocation
935         is needed.
936
937 2005-05-11  Kazu Hirata  <kazu@cs.umass.edu>
938
939         * fold-const.c, libgcov.c: Fix comment typos.
940
941         * tree-ssa-forwprop.c (forward_propagate_into_cond_1): Remove
942         redundant code.
943
944 2005-05-11  Daniel Jacobowitz  <dan@codesourcery.com>
945
946         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
947         * config/arm/arm.h (SUBTARGET_FRAME_POINTER_REQUIRED): Provide
948         default definition.
949         (FRAME_POINTER_REQUIRED): Use SUBTARGET_FRAME_POINTER_REQUIRED.
950
951 2005-05-11  Nathan Sidwell  <nathan@codesourcery.com>
952
953         PR bootstrap/21481
954         * crtstuff.c: Include auto-host.h again, for now.
955
956 2005-05-11  Richard Sandiford  <rsandifo@redhat.com>
957
958         * config/mips/24k.md: Remove trailing whitespace.
959
960 2005-05-11  David Ung  <davidu@mips.com>
961
962         * config/mips/mips.md (type): Add imul3.
963         (length, hazard, may_clobber_hilo): Check for imul3.
964         (mulsi3_mult3, muldi3_mult3, *muls, <su>mulsi3_highpart_mulhi_internal)
965         (*<su>mulsi3_highpart_neg_mulhi_internal): Set attr to imul3.
966         * config/mips/24k.md (r24k_int_mul3): Enable this reservation
967         for a 3 operand mul and its bypasses.
968         * config/mips/3000.md (r3k_imul): Add imul3 to reservations.
969         * config/mips/4000.md (r4k_imul): Likewise.
970         * config/mips/4100.md (r4100_imul_si, r4100_imul_di):  Likewise.
971         * config/mips/4130.md (vr4130_class, vr4130_mulsi)
972         (vr4130_muldi): Likewise.
973         * config/mips/4300.md (r4300_imul_si, r4300_imul_di): Likewise.
974         * config/mips/4600.md (r4600_imul, r4650_imul): Likewise.
975         * config/mips/5000.md (r5k_imul_si, r5k_imul_di): Likewise.
976         * config/mips/5400.md (ir_vr54_imul_si, ir_vr54_imul_di)
977         (ir_vr54_imadd_si): Likewise.
978         * config/mips/5500.md (ir_vr55_imul_si, ir_vr55_imul_di):  Likewise.
979         * config/mips/7000.md (rm7_impy_si_mult, rm7_impy_si_mul)
980         (rm7_impy_di): Likewise.
981         * config/mips/9000.md (rm9k_mulsi, rm9k_muldi):  Likewise.
982         * config/mips/generic.md (generic_imul): Likewise.
983         * config/mips/sb1.md (ir_sb1_mulsi, ir_sb1_muldi): Likewise.
984         * config/mips/sr71k.md (ir_sr70_imul_si, ir_sr70_imul_di):  Likewise.
985
986 2005-05-11  J"orn Rennecke <joern.rennecke@st.com>
987
988         PR middle-end/20371:
989         * tree.h (record_layout_info_s): New member prev_packed.
990         * stor-layout.c (update_alignment_for_field): Fix comment about
991         KNOWN_ALIGN.  For MS bitfields, if we start a new run, make sure
992         we start it properly aligned.
993         (place_field): At the beginning of a record, pass 0 as KNOWN_ALIGN
994         to update_alignment_for_field, and recompute it afterwards using
995         the alignment of the record.
996         When a packed bitfield precedes an MS bitfield, don't add padding
997         at the end of the packed bitfield on behalf of the base type of
998         the packed bit field.
999         Don't adjust rli->bitpos at the end
1000         of an MS bitfield run if we already adjusted bitpos/offset for an
1001         alignment as large or larger than the bitfield type size.
1002         Take possible record alignment > BIGGEST_ALIGNMENT into account
1003         when calculating actual_align.
1004         Only put packed buit fields into rli->prev_field if they end up
1005         suitably aligned.
1006         Also set rli->remaining_in_alignment when we re-set rli->prev_field.
1007         Update rli->remaining_in_alignment when we have already started a
1008         run of bit fields and we process a packed bit field.
1009
1010 2005-05-11  Sebastian Pop  <pop@cri.ensmp.fr>
1011
1012         * tree-data-ref.c (find_data_references_in_loop): Give up when
1013         the body of the loop contains a CALL_EXPR or an ASM_EXPR: they
1014         may embed arbitrary side effects.
1015         Remove the assumption that GIMPLE form contains a single array
1016         access per statement.
1017         When the statement contains virtual operands, fail if it is not
1018         a MODIFY_EXPR or a CALL_EXPR.
1019         Return after the dont know node is inserted.
1020
1021 2005-05-11  Richard Earnshaw  <richard.earnshaw@arm.com>
1022
1023         * arm.md (negsf2, negdf2): Permit these expands when compiling for VFP.
1024
1025 2005-05-11  Richard Guenther  <rguenth@gcc.gnu.org>
1026
1027         PR middle-end/19807
1028         PR tree-optimization/19639
1029         * fold-const.c (try_move_mult_to_index): Handle INTEGER_CST
1030         and generic summands for char* as s * delta, too, folding &a[i]
1031         CODE x to &a[i CODE x/s].  Use tree_int_cst_equal
1032         for comparison of steps.  Convert types for index addition.
1033         (fold_binary): Adjust the callers to always dispatch to
1034         try_move_mult_to_index.
1035         * tree-ssa-propagate.c (set_rhs): Avoid setting rhs to
1036         expr with non-gimple ARRAY_REF offset.
1037
1038 2005-05-11  Richard Guenther  <rguenth@gcc.gnu.org>
1039
1040         * fold-const.c (fold_indirect_ref_1): Avoid removing
1041         NOP_EXPRs with type qualifiers like const.
1042
1043 2005-05-11  Richard Henderson  <rth@redhat.com>
1044
1045         PR c/21502
1046         * c-decl.c (finish_decl): Propagate the completed array type of
1047         a global variable into the binding.
1048
1049 2005-05-10  Matt Kraai  <kraai@ftbfs.org>
1050
1051         * Makefile.in (gtype-desc.o, build/genautomata.o)
1052         (build/varray.o): Depend on $(VARRAY_H).
1053
1054 2005-05-10  Diego Novillo  <dnovillo@redhat.com>
1055
1056         * tree-optimize.c (init_tree_optimization_passes): Re-organize
1057         optimization passes to do an initial batch of scalar cleanups.
1058
1059 2005-05-10  Ian Lance Taylor  <ian@airs.com>
1060
1061         * read-rtl.c (struct macro_traverse_data): Define.
1062         (map_attr_string): New static function, broken out of
1063         apply_macro_to_string.
1064         (mode_attr_index, apply_mode_maps): New static functions.
1065         (apply_macro_to_string): Call map_attr_string.
1066         (apply_macro_to_rtx): Add mode_maps and infile parameters.  Change
1067         all callers.
1068         (apply_macro_traverse): Expect data to point to a struct
1069         macro_traverse_data.
1070         (read_rtx): Add mode_maps local variable.  Use mode_traverse_data
1071         to pass data through htab_traverse.
1072         (read_rtx_1): Add mode_maps parameter.  Change all callers.
1073         Handle mode names which are attribute strings.
1074         * doc/md.texi (Substitutions): Rename from String Substitutions.
1075         Change references.  Document using attributes as modes.
1076
1077 2005-05-10  Zdenek Dvorak  <dvorakz@suse.cz>
1078
1079         * tree-cfg.c (tree_duplicate_sese_region): Update profile.
1080         * tree-optimize.c (init_tree_optimization_passes) Swap
1081         pass_ch and pass_profile.
1082         * tree-ssa-loop-ch.c (copy_loop_headers): Do not update profile
1083         here.  Remove rewrite_into_loop_closed_ssa call.
1084
1085 2005-05-10  Adrian Straetling  <straetling@de.ibm.com>
1086
1087         * config/s390/s390.c: (s390_const_double_ok_for_constraint_p): New
1088         function.
1089         (legitimate_reload_constant_p): Add check for const double zero.
1090         * config/s390/s390.md: Add comment for constraint letter 'G'.
1091         ("*movdf_64", "*movdf_31", "movsf"): Add constraint and proper
1092         attributes for new case.
1093         * config/s390/s390.h: (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Define it as
1094         s390_const_double_ok_for_constraint_p.
1095         * config/s390/s390-protos.h (s390_const_double_ok_for_constraint_p):
1096         Add prototype.
1097
1098 2005-05-10  Kazu Hirata  <kazu@cs.umass.edu>
1099
1100         PR tree-optimization/21170
1101         * tree-ssa-dom.c, tree-ssa-threadupdate.c: Replace
1102         rewrite_ssa_into_ssa in comments with update_ssa.
1103
1104 2005-05-10  Zdenek Dvorak  <dvorakz@suse.cz>
1105
1106         * tree-ssa-loop-im.c: Include hashtab.h.
1107         (struct mem_ref_loc): New.
1108         (struct mem_ref): Describe the set of references with the same
1109         shape.
1110         (max_stmt_uid, get_stmt_uid, record_mem_ref, free_mem_refs,
1111         maybe_queue_var, fem_single_reachable_address,
1112         for_each_memref, single_reachable_address,
1113         is_call_clobbered_ref, determine_lsm_reg): Removed.
1114         (record_mem_ref_loc, free_mem_ref_locs, determine_lsm_ref,
1115         hoist_memory_reference, memref_hash, memref_eq, memref_del,
1116         gather_mem_refs_stmt, gather_mem_refs, find_more_ref_vops):
1117         New functions.
1118         (rewrite_mem_refs, schedule_sm): Use mem_ref_loc list.
1119         (determine_lsm_loop): Rewritten.
1120         (determine_lsm): Do not set stmt uids.
1121
1122 2005-05-10  Adrian Straetling  <straetling@de.ibm.com>
1123
1124         * config/s390/s390.md: Add comment lines for 'f' and 't' constraint
1125         letters.
1126
1127 2005-05-10  Adrian Straetling  <straetling@de.ibm.com>
1128
1129         * config/s390/s390.md: ("anddi3","andsi3","andhi3","andqi3"): Merge.
1130         ("iordi3", "iorsi3", "iorhi3", "iorqi3"): Merge.
1131         ("xordi3", "xorsi3", "xorhi3", "xorqi3"): Merge.
1132
1133 2005-05-10  Jeff Law  <law@redhat.com>
1134
1135         * tree-ssa-dom.c (dom_opt_finalize_block): Do not call
1136         thread_across_edge for any abnormal edges.
1137
1138 2005-05-10  Richard Henderson  <rth@redhat.com>
1139
1140         * config/ia64/ia64.c (ia64_expand_atomic_op): New.
1141         * config/ia64/ia64-protos.h: Declare it.
1142         * config/ia64/sync.md (I124MODE, FETCHOP, fetchop_name): New.
1143         (sync_add<I48MODE>, sync_old_add<I48MODE>): Remove.
1144         (sync_<FETCHOP><IMODE>, sync_nand<IMODE>): New.
1145         (sync_old_<FETCHOP><IMODE>, sync_old_nand<IMODE>): New.
1146         (sync_new_<FETCHOP><IMODE>, sync_new_nand<IMODE>): New.
1147         (cmpxchg_rel_<I124MODE>): Split from cmpxchg_acq_<IMODE>.  Zero
1148         extend result; use release semantics.
1149         (cmpxchg_rel_di): Rename from cmpxchg_acq_<IMODE>; use release.
1150         (sync_val_compare_and_swap_<IMODE>): Update to match.
1151
1152 2005-05-10  Richard Henderson  <rth@redhat.com>
1153
1154         * optabs.c (expand_compare_and_swap_loop): Don't clobber old value
1155         before comparing it for success.
1156
1157 2005-05-10  Richard Henderson  <rth@redhat.com>
1158
1159         * config/ia64/sync.md (sync_add<I48MODE>): Fix arguments for
1160         no return value pattern.
1161
1162 2005-05-10  Grigory Zagorodnev  <grigory.zagorodnev@intel.com>
1163             H.J. Lu  <hongjiu.lu@intel.com>
1164
1165         * libgcov.c (create_file_directory): New function. Create
1166         directory for the given file name.
1167         (gcov_max_filename): New static var. Keeps size of the longest
1168         file name.
1169         (gcov_exit): Always try to create directory for output
1170         file. Relocate each filename basing on environment vars.
1171         (__gcov_init): Remember the longest file name.
1172         * tsystem.h: include filenames.h to get IS_DIR_SEPARATOR
1173         * doc/gcov.texi (Cross-profiling): New node documenting
1174         cross-profiling management.
1175         * doc/invoke.texi (-fprofile-arcs): Add xref to cross-profiling.
1176
1177 2005-05-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
1178
1179         * config/sparc/sparc.c (mem_min_alignment): Do not rely
1180         on MEM_ALIGN if TARGET_UNALIGNED_DOUBLES.
1181
1182 2005-05-10  Bob Wilson  <bob.wilson@acm.org>
1183
1184         * config/xtensa/lib1funcs.asm (__udivsi3, __divsi3): Rearrange special
1185         case code to avoid one move instruction.
1186         (__umodsi3, __modsi3): Merge duplicated code sequences.
1187
1188 2005-05-10  Kazu Hirata  <kazu@cs.umass.edu>
1189
1190         * config/mips/24k.md, config/sh/divtab.c, config/sh/sh.c,
1191         config/sh/sh.md, config/sh/superh.h: Fix comment typos.
1192         * doc/invoke.texi: Fix typos.
1193
1194         * tree-data-ref.c (analyze_array_indexes, analyze_array,
1195         init_data_ref, access_functions_are_affine_or_constant_p,
1196         free_data_refs): Use VEC instead of VARRAY.
1197         * tree-data-ref.h (data_reference): Change the type of
1198         access_fns to VEC(tree,gc)*.
1199         (DR_ACCESS_FN, DR_NUM_DIMENSIONS): Use VEC instead of VARRAY.
1200
1201 2005-05-10  Gabor Loki <loki@gcc.gnu.org>
1202
1203         PR c/17913
1204         * c-typeck.c (build_conditional_expr): Remove reducing cond_expr.
1205         * fold-const.c (fold): Expand the condition of reducing cond_expr.
1206         (contains_label_1, contains_label_p): New functions for checking
1207         labels in a sub-tree.
1208
1209 2005-05-10  Joseph S. Myers  <joseph@codesourcery.com>
1210
1211         PR c/21342
1212         * c-decl.c (pushdecl): When there is a declaration in the current
1213         scope and the declarations are external linkage, check for
1214         compatibility with the type in the external scope and update the
1215         type in the external scope with the composite type information.
1216         Do not form a composite type of the new type and the visible type
1217         if they are incompatible.
1218
1219 2005-05-10  Nathan Sidwell  <nathan@codesourcery.com>
1220
1221         * crtstuff.c: Revert part of 2005-05-08 Change.
1222         (IN_LIBGCC2): Define.
1223
1224 2005-05-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
1225
1226         * config/sparc/sparc.c (fp_sethi_p): Test !SPARC_SIMM13_P and
1227         remove redundant test.
1228         (fp_mov_p): Accept 0.
1229         (fp_high_losum_p): Remove redundant test.
1230         * config/sparc/predicates.md (const_high_operand): Explicitly test
1231         (not small_int_operand).
1232         (fp_const_high_losum_operand): New.
1233         * config/sparc/sparc.md (movsi_insn): Do not emit 'clr'.  Reorder.
1234         (movdi_insn_sp32_v9): Use canonical predicates.
1235         (movdi_insn_sp32): Test !TARGET_V9 instead of !TARGET_ARCH64.
1236         (movdi_insn_sp64_novis): Delete.
1237         (movdi_insn_sp64_vis): Rename into movdi_insn_sp64.
1238         (movsf_insn_novis): Delete.
1239         (movsf_insn_vis): Rename into movsf_insn.
1240         (movsf_no_f_insn): Rename into movsf_insn_no_fpu.
1241         (movsf_lo_sum): Use fp_const_high_losum_operand.
1242         (movsf_high): Likewise.
1243         (movsf_high_losum splitter): Likewise.
1244         (mov<V32:mode> expander): Use register_or_zero_operand.
1245         (mov<V64:mode> expander): Likewise.
1246         (movdf_insn_sp32): Use register_or_zero_operand.
1247         (movdf_no_e_insn_sp32): Use register_or_zero_operand.
1248         Rename into movdf_insn_sp32_no_fpu.
1249         (movdf_no_e_insn_v9_sp32): Use register_or_zero_operand.
1250         Rename into movdf_insn_sp32_v9_no_fpu.
1251         (movdf_insn_v9only_novis): Delete.
1252         (movdf_insn_v9only_vis): Rename into movdf_insn_sp32_v9.
1253         (movdf_insn_sp64_novis): Delete.
1254         (movdf_insn_sp64_vis): Rename into movdf_insn_sp64.
1255         (movdf_no_e_insn_sp64): Use register_or_zero_operand.
1256         Rename into movdf_insn_sp64_no_fpu.
1257         (movtf expander): Use register_or_zero_operand.
1258         (movtf_insn_sp32): Delete.
1259         (movtf_insn_vis_sp32): Use register_or_zero_operand.
1260         Rename into movtf_insn_sp32.
1261         (movtf_no_e_insn_sp32): Use register_or_zero_operand.
1262         Rename into movtf_insn_sp32_no_fpu.
1263         (movtf_insn_hq_sp64): Delete.
1264         (movtf_insn_hq_vis_sp64): Use register_or_zero_operand.
1265         Rename into movtf_insn_sp64_hq.
1266         (movtf_insn_sp64): Delete.
1267         (movtf_insn_vis_sp64): Use register_or_zero_operand.
1268         Rename into movtf_insn_sp64.
1269         (movtf_no_e_insn_sp64): Use register_or_zero_operand.
1270         Rename into movtf_insn_sp64_no_fpu.
1271
1272 2005-05-10  Nathan Sidwell  <nathan@codesourcery.com>
1273
1274         * config/stormy16/stormy16.c (xstormy16_emit_cbranch): Use
1275         gcc_assert and gcc_unreachable as appropriate.
1276         (xstormy16_split_cbranch, xstormy16_output_cbranch_hi,
1277         xstormy16_output_cbranch_si, xstormy16_split_move,
1278         xstormy16_initial_elimination_offset,
1279         xstormy16_encode_section_info, xstormy16_print_operand_address,
1280         xstormy16_expand_call, xstormy16_expand_arith,
1281         xstormy16_output_shift, xstormy16_init_builtins): Likewise.
1282
1283 2005-05-10  Kazu Hirata  <kazu@cs.umass.edu>
1284
1285         * tree-outof-ssa.c (_elim_graph): Change the type of nodes and
1286         const_copies to VEC(tree,heap)*.
1287         (new_elim_graph, delete_elim_graph, elim_graph_size,
1288         elim_graph_add_node, eliminate_build, eliminate_phi): Use VEC
1289         instead of VARRAY.
1290
1291 2005-05-10  Joseph S. Myers  <joseph@codesourcery.com>
1292
1293         PR other/21052
1294         * doc/extend.texi (Type Attributes): Correct example syntax.
1295
1296 2005-05-09  Joseph S. Myers  <joseph@codesourcery.com>
1297
1298         PR c/21160
1299         * doc/invoke.texi (-Wuninitialized): Update documentation.
1300
1301 2005-05-09  Richard Earnshaw  <richard.earnshaw@arm.com>
1302
1303         * arm.c (const_ok_for_arm): Use a faster algorithm.
1304
1305 2005-05-09  David Edelsohn  <edelsohn@gnu.org>
1306
1307         PR target/21477
1308         * config/rs6000/rs6000.md (add_op2): New.
1309         (add<mode>3): Use it.
1310
1311 2005-05-09  Richard Earnshaw  <richard.earnshaw@arm.com>
1312
1313         * arm.c (arm_gen_constant): Add new heuristic for generating
1314         constant integers that can be expressed as the difference of two
1315         valid immediates.
1316
1317 2005-05-09  Roger Sayle  <roger@eyesopen.com>
1318
1319         * c-tree.h (parser_build_unary_op): New prototype.
1320         * c-typeck.c (parser_build_unary_op): New function to construct
1321         a unary operation in the C parser.
1322         * c-parser.c (c_parser_unary_expression):  Use the new function
1323         parser_build_unary_op when appropriate.
1324
1325 2005-05-09  Mark Mitchell  <mark@codesourcery.com>
1326
1327         PR 18655
1328         * dwarf2out.c (output_call_frame_info): Use DWARF2_FRAME_REG_OUT
1329         before outputting DWARF_FRAME_RETURN_COLUMN.
1330
1331 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
1332
1333         * config/s390/s390.c: (s390_branch_condition_mask,
1334         s390_branch_condition_mnemonic, s390_extra_constraint_str,
1335         s390_const_ok_for_constraint_p, s390_expand_plus_operand,
1336         legitimize_pic_address, s390_emit_tls_call_insn,
1337         legitimize_tls_address, legitimize_tls_address,
1338         s390_expand_addcc, print_shift_count_operand, print_operand,
1339         addr_generation_dependency_p, annotate_constant_pool_refs,
1340         s390_split_branches, find_constant_pool_ref,
1341         replace_constant_pool_ref, s390_add_constant, s390_find_constant,
1342         s390_find_execute, s390_mainpool_start, s390_chunkify_start,
1343         s390_output_pool_entry, s390_function_value,
1344         s390_call_saved_register_used, s390_emit_call): Replace
1345         conditional aborts by gcc_assert and unconditional by gcc_unreachable.
1346         (s390_select_ccmode, s390_match_ccmode_set, s390_extract_part,
1347         s390_cannot_force_const_mem, s390_output_dwarf_dtprel,
1348         get_some_local_dynamic_name, s390_function_arg_size,
1349         s390_function_arg_advance, s390_function_arg,
1350         s390_expand_builtin, s390_gen_rtx_const_DI): Replace abort in
1351         default case by gcc_unreachable.
1352         * config/s390/s390.md: ("*cjump_31", "*icjump_31", "*jump31"): Replace
1353         conditional abort by gcc_assert.
1354         ("doloop_si31"): Replace abort in last else by gcc_unreachable.
1355         ("main_pool", "pool"): Replace unconditional abort by gcc_unreachable.
1356
1357 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
1358
1359         * config/s390/s390.c: (s390_decompose_address,
1360         tls_symbolic_operand, legitimate_pic_operand_p,
1361         legitimate_constant_p, legitimate_reload_constant_p,
1362         s390_expand_plus_operand, legitimate_address_p,
1363         legitimate_la_operand_p, ): Remove 'register' from signature.
1364         (symbolic_reference_mentioned_p,
1365         tls_symbolic_reference_mentioned_p): Remove 'register' from local
1366         variable declarations.
1367         (legitimize_address): Remove 'register' from
1368         signature and local variable declarations.
1369
1370 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
1371
1372         * config/s390/s390-protos.h: (s390_match_ccmode,
1373         s390_match_ccmode_set, reg_used_in_mem_p,
1374         symbolic_reference_mentioned_p, tls_symbolic_reference_mentioned_p,
1375         legitimate_la_operand_p, preferred_la_operand_p,
1376         s390_short_displacement, addr_generation_dependency_p,
1377         legitimate_reload_constant_p, legitimate_address_p): Change return type
1378         into 'bool'.
1379         (s390_tm_ccmode): Change type of parameter "mixed" into 'bool'.
1380         * config/s390/s390.c: (s390_match_ccmode,
1381         symbolic_reference_mentioned_p, tls_symbolic_reference_mentioned_p,
1382         legitimate_reload_constant_p): Change return type into 'bool'.
1383         (preferred_la_operand_p,legitimate_la_operand_p, legitimate_address_p):
1384         Likewise.  Additionally adapted comment.
1385         (s390_extra_constraint_p): Change Comment to reflect 'int' return type.
1386         (s390_tm_ccmode): Change type of parameter "mixed" into 'bool'.
1387         (s390_decompose_address): Change the type of the internal flags
1388         "pointer", "base_ptr", "indx_ptr", and the return value into 'bool'.
1389         (struct s390_address): Change type of "pointer" into bool.
1390         * config/s390/s390.md: ("*tmdi_reg", "*tmsi_reg", "tm<mode>_full"):
1391         Adapt calls for 's390_tm_ccmode' to the new signature.
1392
1393 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
1394
1395         * config/s390/s390.c: (s390_match_ccmode_set,
1396         s390_branch_condition_mnemonic, s390_short_displacement,
1397         s390_decompose_address, get_thread_pointer, legitimize_tls_address,
1398         print_shift_count_operand, get_some_local_dynamic_name,
1399         get_some_local_dynamic_name_1, reg_used_in_mem_p,
1400         addr_generation_dependency_p, s390_split_branches,
1401         annotate_constant_pool_refs, find_constant_pool_ref,
1402         replace_constant_pool_ref, find_ltrel_base, replace_ltrel_base,
1403         s390_optimize_prologue, find_unused_clobbered_reg, s390_frame_area,
1404         s390_register_info, s390_frame_info, s390_init_frame_layout,
1405         s390_update_frame_layout, save_fpr, restore_fpr, save_gprs,
1406         restore_gprs, s390_function_arg_size, s390_function_arg_float,
1407         s390_init_machine_status, s390_assemble_integer, s390_handle_option,
1408         s390_encode_section_info, s390_cannot_force_const_mem,
1409         s390_delegitimize_address, s390_return_in_memory, s390_init_builtins,
1410         s390_expand_builtin, s390_output_mi_thunk, s390_safe_attr_type,
1411         s390_adjust_priority, s390_issue_rate,
1412         s390_first_cycle_multipass_dfa_lookahead, s390_cannot_copy_insn_p,
1413         s390_rtx_costs, s390_address_cost, s390_reorg, s390_valid_pointer_mode,
1414         s390_build_builtin_va_list, s390_gimplify_va_arg,
1415         s390_function_ok_for_sibcall, s390_call_saved_register_used,
1416         s390_pass_by_reference, s390_fixed_condition_code_regs,
1417         s390_cc_modes_compatible s390_mainpool_start,, s390_mainpool_finish,
1418         s390_mainpool_cancel, s390_chunkify_start, s390_chunkify_finish,
1419         s390_chunkify_cancel, s390_start_pool, s390_end_pool,
1420         s390_add_pool_insn, s390_find_pool, s390_add_constant,
1421         s390_find_constant, s390_add_execute, s390_find_execute,
1422         s390_execute_label, s390_execute_target, s390_dump_pool,
1423         s390_dump_execute, s390_alloc_pool, s390_free_pool): Remove prototypes.
1424         Move target macro definitions to the end of the file.  Move several
1425         functions within the file to assure correct compiling.
1426
1427 2005-05-09  Steven Bosscher  <stevenb@suse.de>
1428
1429         * calls.c (purge_reg_equiv_notes): Remove, fold into...
1430         (fixup_tail_calls): ...here.  Only look at insns between the
1431         start of the function and the FUNCTION_BEG insn note.
1432
1433         * gcse.c (one_cprop_pass): Fix typos in dumps.
1434
1435         * tree-ssa-operands.h (FOR_EACH_PHI_ARG): Fix typos.
1436
1437 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
1438
1439         * config/s390/s390.h: Move xxx_REGNUM definitions to s390.md.
1440         * config/s390/s390.md: ("SIBCALL_REGNUM", "BASE_REGNUM",
1441         "RETURN_REGNUM", "CC_REGNUM", "TP_REGNUM"): New constants.
1442         Replace every occurrence of '(reg:<MODE> 33)' by '(reg:<MODE>
1443         CC_REGNUM)'.
1444         ("get_tp_64", "get_tp_31", "set_tp_64", "set_tp_31"): Replace
1445         '(reg:<MODE> 36)' by '(reg:<MODE> TP_REGNUM)'.
1446         ("*sibcall_br", "*sibcall_value_br"): Replace '(reg:DI 1)' by '(reg:DI
1447         REG_SC)'.
1448
1449 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
1450
1451         * config/s390/s390.md: ("gf") New mode attribute.
1452         ("fixuns_truncdfdi2", "fixuns_truncdfsi2", "fixuns_truncsfdi2",
1453         "fixuns_truncsfsi2"): Merge.
1454         ("fix_truncdfdi2", "fix_truncsfdi2"): Merge.
1455         ("fix_truncdfdi2_ieee", "fix_truncdfsi2_ieee", "fix_truncsfdi2_ieee",
1456         "fix_truncsfsi2_ieee"): Merge.
1457
1458 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
1459
1460         * config/s390/s390.md: ("FPR") New mode macro.
1461         ("de", "dee"): New mode attributes.
1462         ("cmpdf", "cmpsf"): Merge.
1463         ("*cmpdf_ccs_0", "*cmpsf_ccs_0"): Merge.
1464         ("*cmpdf_ccs_0_ibm", "*cmpdf_ccs_0_ibm"): Merge.
1465         ("*cmpdf_ccs", "*cmpsf_ccs"): Merge.
1466         ("*cmpdf_ccs_ibm", "*cmpsf_ccs_ibm"): Merge.
1467         ("floatdidf2", "floatdisf2"): Merge.
1468         ("adddf3", "addsf3"): Merge.
1469         ("*adddf3", "*addsf3"): Merge.
1470         ("*adddf3_cc", "*addsf3_cc"): Merge.
1471         ("*adddf3_cconly", "*addsf3_cconly"): Merge.
1472         ("*adddf3_ibm", "*addsf3_ibm"): Merge.
1473         ("subdf3", "subsf3"): Merge.
1474         ("*subdf3", "*subsf3"): Merge.
1475         ("*subdf3_cc", "*subsf3_cc"): Merge.
1476         ("*subdf3_cconly", "*subsf3_cconly"): Merge.
1477         ("*subdf3_ibm", "*subsf3_ibm"): Merge.
1478         ("muldf3", "mulsf3"): Merge.
1479         ("*muldf3", "*mulsf3" "): Merge.
1480         ("*muldf3_ibm", "*mulsf3_ibm"): Merge.
1481         ("*fmadddf", "*fmaddsf"): Merge.
1482         ("*fmsubdf", "*fmsubsf"): Merge.
1483         ("divdf3", "divsf3"): Merge.
1484         ("*divdf3", "*divsf3"): Merge.
1485         ("*divdf3_ibm", "*divsf3_ibm"): Merge.
1486         ("negdf2", "negsf2"): Merge.
1487         ("*negdf2_cc", "*negsf2_cc"): Merge.
1488         ("*negdf2_cconly", "*negsf2_cconly"): Merge.
1489         ("*negdf2", "*negsf2"): Merge.
1490         ("*negdf2_ibm", "*negsf2_ibm"): Merge.
1491         ("absdf2", "abssf2"): Merge.
1492         ("*absdf2_cc", "*abssf2_cc"): Merge.
1493         ("*absdf2_cconly", "*abssf2_cconly"): Merge.
1494         ("*absdf2", "*abssf2"): Merge.
1495         ("*absdf2_ibm", "*abssf2_ibm"): Merge.
1496         ("*negabsdf2_cc", "*negabssf2_cc"): Merge.
1497         ("*negabsdf2_cconly", "*negabssf2_cconly"): Merge.
1498         ("*negabsdf2", "*negabssf2"): Merge.
1499         ("sqrtdf2", "sqrtsf2"): Merge.
1500
1501 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
1502
1503         * config/s390/s390.c: (s390_adjust_priority): Adapt to changed
1504         attribute names.
1505         * config/s390/2084.md: ("x_fsimpd", "x_fsimps", "x_fdivd", "x_fdivs",
1506         "x_floadd", "x_floads", "x_fstored", "x_fstores"): Rename to
1507         ("x_fsimpdf", "x_fsimpsf", "x_fdivdf", "x_fdivsf", "x_floaddf",
1508         "x_floadsf", "x_fstoredf", "x_fstoresf") and replace 'type'
1509         attribute names.
1510         * config/s390/s390.md: ("type"): Rename "fsimpd, fsimps, floadd, floads,
1511         fstored, fstores, fmuld, fmuls, fdivd, fdivs, fsqrtd, fsqrts" to
1512         "fsimpdf, fsimpsf, floaddf, floadsf, fstoredf, fstoresf, fmuldf,
1513         fmulsf, fdivdf, fdivsf, fsqrtdf, fsqrtsf".
1514         ("*cmpdf_ccs_0", "*cmpdf_css_0_ibm", "*cmpdf_ccs",
1515         "*cmpdf_ccs_ibm", "*cmpsf_ccs_0", "*cmpsf_css_0_ibm",
1516         "*cmpsf_ccs", "*cmpsf_ccs_ibm", "*movdi_64", "*movdi_31",
1517         "*movsi_zarch", "*movsi_esa", "*movdf_64", "*movdf_31", "movsf",
1518         "*muldf3", "*muldf3_ibm", "*fmadddf", "*fmsubdf", "*mulsf3",
1519         "mulsf3_ibm", "*fmaddsf", "fmsubsf", "*divdf3", "*divdf3_ibm",
1520         "*negdf2_cc", "*negdf2_cconly", "*negdf2", "*negdf2_ibm",
1521         "*negsf2_cc", "*negsf2_cconly", "*negsf2", "*absdf2_cc",
1522         "*absdf2_cconly", "*absdf2", "*absdf2_ibm", "*abssf2_cc",
1523         "*abssf2_cconly", "*abssf2", "*abssf2_ibm", "*negabsdf2_cc",
1524         "*negabsdf2_cconly", "*negabsdf2", "*negabssf2_cc",
1525         "*negabssf2_cconly", "*negabssf2", "sqrtdf2", "sqrtsf2"): Rename
1526         'type' value.
1527         ("*divsf3"): Additionally rename second pattern to
1528         "*divsf3_ibm".
1529         ("truncdfsf2_ibm", "extendsfdf2_ieee", "extendsfdf2_ibm",
1530         "*adddf3", "*adddf3_cc", "*adddf3_cconly", "*adddf3_ibm",
1531         "*addsf3", "*addsf3_cc", "*addsf3_cconly", "*subdf3",
1532         "subdf3_cc", "*subdf3_cconly", "*subdf3_ibm", "*subsf3",
1533         "subsf3_cc", "*subsf3_cconly", "*subsf3_ibm"): Merge identical
1534         'type values' and rename 'type' value.
1535         ("*addsf3"): Additionally rename second pattern to
1536         "*addsf3_ibm".
1537
1538 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
1539
1540         * config/s390/s390.md: ("SHIFT"): New mode macro.
1541         ("lr", "shift"): New mode attributes.
1542         ("ashldi3", "lshrdi3"): Merge.
1543         ("*ashldi3_31", "*lshrdi3"_31): Merge.
1544         ("*ashldi3_64", "*lshrdi3"_64): Merge.
1545         ("ashlsi3", "lshrsi3"): Merge.
1546
1547 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
1548
1549         * config/s390/s390.md: ("DSI", "SCOND"): New mode
1550         macros.
1551         ("E", "g"): New mode attributes.
1552         ("*adddi3_alc_cc", "*addsi3_alc_cc"): Merge.
1553         ("*adddi3_alc", "*addsi3_alc"): Merge.
1554         ("*subdi3_slb_cc", "*subsi3_slb_cc"): Merge.
1555         ("*subdi3_slb", "*subsi3_slb"): Merge.
1556         ("adddicc", "addsicc"): Merge.
1557         ("*sconddi", "*scondsi"): Merge.
1558         ("*sconddi_neg", "*scondsi_neg"): Merge.
1559         ("sltu", "sgtu", "sleu", "sgeu"): Merge.
1560         ("negdi2", "negsi2"): Extract expander pattern from
1561         "negsi2" and merge with "negdi2".
1562         ("*negdi2"): Merge with instruction pattern of "negsi2".
1563         ("*negdi2_cc", "*negsi2_cc"): Merge.
1564         ("*negdi2_cconly", "*negsi2_cconly"): Merge.
1565         ("rotldi3", "rotlsi3"): Merge.
1566
1567 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
1568
1569         * config/s390/s390.md: ("hc"): New mode attribute.
1570         ("extendhidi2", "extendqidi2"): Merge.
1571         ("*extendhidi2", "*extendqidi2"): Merge.
1572         ("extendhisi2", "extendqisi2"): Merge.
1573         ("zero_extendhidi2", "zero_extendqidi2"): Merge.
1574         ("*zero_extendhidi2", "*zero_extendqidi2"): Merge.
1575         Merged 2 define_split.
1576         ("*zero_extendhisi2", "*zero_extendqisi2"): Merge.
1577         ("*zero_extendhisi2_64", "*zero_extendqisi2_64"): Merge.
1578
1579 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
1580
1581         * config/s390/s390.md: ("COMPARE"): New mode macro.
1582         ("beq", "bne", "bgt", "bgtu", "blt", "bltu", "bge", "bgeu",
1583         "ble", "bleu", "bunordered", "bordered", "buneq", "bunlt",
1584         "bungt", "bunle", "bunge", "bltgt"): Merge.
1585
1586 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
1587
1588         * config/s390/s390.md: ("INT"): New mode macro.
1589         ("one_cmpldi2", "one_cmplsi2", "one_cmplhi2", "one_cmplqi2"):
1590         Merge.
1591
1592 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
1593
1594         * config/s390/s390.md: ("GPR", "P"): New mode macros.
1595         ("cmpdi", "cmpsi"): Merge.
1596         ("strlendi", "strlensi"): Merge.
1597         ("*strlendi", "*strlensi"): Merge.
1598         ("movmemdi", "movmemsi"): Merge.
1599         ("clrmemdi", "clrmemsi"): Merge.
1600
1601 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
1602
1603         * config/s390/s390.md: ("HQI"): New mode macro.
1604         ("icm_lo", "icm_hi", "max_uint"): New mode attributes.
1605         ("*tmhi_full", "*tmqi_full"): Merge.
1606         ("*tsthiCCT", "*tstqiCCT"): Merge.
1607         ("*tsthi", "*tstqi"): Merge.
1608         ("*tsthi_cconly", "tstqi_cconly"): Merge.
1609         ("*sethighhisi", "*sethighqisi"): Merge.
1610
1611 2005-05-09  Kazu Hirata  <kazu@cs.umass.edu>
1612
1613         * crtstuff.c, integrate.h, tree-scalar-evolution.h,
1614         config/alpha/unicosmk.h, config/arc/arc.md,
1615         config/arm/bpabi.h, config/arm/coff.h, config/arm/elf.h,
1616         config/arm/ieee754-df.S, config/arm/ieee754-sf.S,
1617         config/arm/netbsd.h, config/arm/pe.c, config/arm/pe.h,
1618         config/arm/semi.h, config/arm/uclinux-elf.h,
1619         config/arm/wince-pe.h, config/fr30/fr30.c,
1620         config/rs6000/altivec.h: Update copyright.
1621
1622 2005-05-09  Nathan Sidwell  <nathan@codesourcery.com>
1623
1624         * config/pdp11/pdp11.c (pdp11_output_function_prologue): Use
1625         gcc_assert and gcc_unreachable as appropriate.
1626         (pdp11_output_function_epilogue, output_move_double,
1627         output_move_quad, print_operand_address, output_jump,
1628         output_addr_const_pdp11): Likewise.
1629         * config/pdp11/pdp11.h (FUNCTION_PROFILER,
1630         ASM_OUTPUT_ALIGN): Likewise.
1631         * config/pdp11/pdp11.md: Likewise.
1632         (extendhisi2, subhi3, subqi3): Likewise.
1633
1634 2005-05-09  David Edelsohn  <edelsohn@gnu.org>
1635
1636         PR middle-end/21237
1637         * dojump.c (do_jump, MINUS_EXPR): Build NE_EXPR and fall through
1638         to NE_EXPR case.
1639
1640 2005-05-09  Kazu Hirata  <kazu@cs.umass.edu>
1641
1642         * config/ia64/ia64.c: Fix a comment typo.
1643
1644 2005-05-09  Richard Earnshaw  <rearnsha@arm.com>
1645
1646         PR target/21397
1647         * arm.c (ARM_OPT_SET_CPU, ARM_OPT_SET_ARCH, ARM_OPT_SET_TUNE): Define.
1648         (arm_override_options): Use them instead of manifest constants.  Don't
1649         allow -march to override the -mtune setting.
1650
1651 2005-05-09  Nathan Sidwell  <nathan@codesourcery.com>
1652
1653         * config/iq2000/iq2000.c (abort_with_insn): Use fancy_abort.
1654         (gen_int_relational): Use gcc_unreachable and gcc_assert as necessary.
1655         (function_arg_advance, function_arg, save_restore_insns,
1656         iq2000_expand_prologue, iq2000_output_conditional_branch,
1657         expand_one_builtin, print_operand):
1658         * config/iq2000/iq2000.md (tablejump): Likewise.
1659
1660 2005-05-09  David Ung  <davidu@mips.com>
1661
1662         * config/mips/mips.h (processor_type): Add names for the 24K.
1663         * config/mips/mips.c (mips_cpu_info_table): Add names for the 24K
1664         processor family.
1665         * config/mips/mips.md (cnv_mode): New attribute for recording the
1666         conversion types of float convert insns.
1667         (cpu): Add 24k and 24kx.
1668         (include): Include 24k.md file.
1669         (truncdfsf2, extendsfdf2, fix_truncdfsi2_insn, fix_truncdfsi2_macro)
1670         (fix_truncdfdi2, fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2)
1671         (floatdisf2): Setup cnv_mode.
1672         (fix_truncsfsi2_insn, fix_truncsfsi2_macro): Changed mode to SF and
1673         setup cnv_mode.
1674         * config/mips/24k.md: New file, contains 24k DFA pipeline
1675         description.
1676
1677 2005-05-09  Nathan Sidwell  <nathan@codesourcery.com>
1678
1679         * config/sh/sh.c (print_operand_address): Use gcc_assert and
1680         gcc_unreachable as appropriate.
1681         (print_operand, prepare_move_operands, prepare_scc_operands,
1682         output_movedouble, output_branch, shift_insns_rtx, gen_shifty_op,
1683         gen_shl_and, shl_sext_kind, gen_datalabel_ref, dump_table,
1684         fixup_mova, gen_far_branch, sh_reorg, split_branches,
1685         final_prescan_insn, output_stack_adjust, sh_expand_epilogue,
1686         sh_set_return_address, sh_setup_incoming_varargs,
1687         initial_elimination_offset, sh_pch_valid_p, get_free_reg,
1688         sh_expand_builtin, sh_output_mi_thunk, extract_sfunc_addr,
1689         check_use_sfunc_addr): Likewise.
1690         * config/sh/netbsd-elf.h (FUNCTION_PROFILER): Likewise.
1691         * config/sh/sh.h (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
1692         * config/sh/symbian.c (sh_symbian_mark_dllexport,
1693         sh_symbian_mark_dllimport): Likewise.
1694         * config/sh/sh.md: Likewise.
1695         (movdicc, call_pop, call_value_pop, casesi_worker_1,
1696         casesi_worker_2, casesi_shift_media, casesi_load_media,
1697         return_media): Likewise.
1698
1699 2005-05-08  Roger Sayle  <roger@eyesopen.com>
1700
1701         PR inline-asm/8788
1702         * stmt.c (expand_asm_operands): Avoid calling force_reg on BLKmode
1703         operands.
1704
1705 2005-05-08  Richard Henderson  <rth@redhat.com>
1706
1707         * config/alpha/alpha.c (adjust_address): Fix typo last change.
1708
1709 2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>
1710
1711         * config/m68hc11/m68hc11.h (REG_VALID_P): A regno must be >= 0
1712         and -1 can happen in reg_renumber when no hard register is assigned.
1713
1714 2005-05-08  Steven Bosscher  <stevenb@suse.de>
1715             Kazu Hirata  <kazu@cs.umass.edu>
1716
1717         PR tree-optimization/14841, tree-optimization/15838
1718         * tree-ssa-ccp.c (fold_const_aggregate_ref): New.
1719         (evaluate_stmt): Call it.
1720
1721 2005-05-08  Jakub Jelinek  <jakub@redhat.com>
1722
1723         * config/ia64/ia64.c (ia64_override_options): Don't set
1724         ia64_flag_var_tracking and clear flag_var_tracking here...
1725         (ia64_file_start): ... but here.
1726
1727 2005-05-08  Nathan Sidwell  <nathan@codesourcery.com>
1728
1729         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use gcc_assert
1730         and gcc_unreachable as appropriate.
1731         (expand_prologue, expand_epilogue, m68hc11_gen_lowpart,
1732         m68hc11_gen_highpart, print_operand, print_operand_address,
1733         m68hc11_expand_compare, m68hc11_expand_compare_and_branch,
1734         m68hc11_gen_movhi): Likewise.
1735         * config/m68hc11/m68hc11.h (HARD_X_REGNUM): Reword comment.
1736         * config/m68hc11/m68hc11.md: Reword comment.
1737
1738 2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>
1739
1740         PR target/21281
1741         * config/m68hc11/predicates.md (splitable_operand): An immediate is
1742         allowed.
1743
1744 2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>
1745
1746         * config/m68hc11/predicates.md (reg_or_some_mem_operand): Do not allow
1747         the 68HC12 address indirect addressing mode as it is not supported by
1748         bset and bclr.
1749         * config/m68hc11/m68hc11-protos.h
1750         (m68hc11_valid_addressing_p): Declare.
1751         (m68hc11_add_mode): Declare.
1752         * config/m68hc11/m68hc11.c (m68hc11_valid_addressing_p): Rename from
1753         register_indirect_p and export it.
1754         (m68hc11_z_replacement): Use emit_insn_after when adding the save Z
1755         instruction so that it is part of the good BB.
1756         (m68hc11_gen_movhi): Fix invalid generation of indexed indirect
1757         addressing with movw.
1758         (m68hc11_gen_movqi): Use pula and pulb instead of lda and ldb for
1759         68HC12.
1760         * config/m68hc11/m68hc11.h (ADDR_STRICT, ADDR_INCDEC, ADDR_INDEXED,
1761         ADDR_OFFSET, ADDR_INDIRECT, ADDR__CONST): Moved from m68hc11.c.
1762         * config/m68hc11/m68hc11.md ("movhi_const0"): Use this pattern only
1763         for 68HC11.
1764         ("*movhi_68hc12"): Handle movhi_const0.
1765         ("*subhi3", "subqi3"): Use general_operand for operand 1.
1766         ("*subhi3_zext"): Likewise.
1767
1768 2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>
1769
1770         PR target/19051
1771         * config/m68hc11/m68hc11.md ("mulqi3"): Use general_operand for
1772         operand 1 and fix constraints.
1773         ("mulqihi3"): Use general_operand for operand 2.
1774
1775 2005-05-08  Julian Brown  <julian@codesourcery.com>
1776             H.J. Lu  <hongjiu.lu@intel.com>
1777             Paul Brook  <paul@codesourcery.com>
1778
1779         * configure.ac: Set ld_vers_major, ld_vers_minor and ld_vers_patch for
1780         GNU linker. Support linker version x.x.x.x.x. Require GNU linker
1781         20050308/2.16.0 or newer for comdat group.
1782         * configure: Regenerated.
1783         * config.in: Regenerated.
1784         * varasm.c (default_function_rodata_section): Put .rodata section in
1785         COMDAT group when necessary.
1786         (default_elf_asm_named_section): Rename HAVE_GAS_COMDAT_GROUP to
1787         HAVE_COMDAT_GROUP.
1788         (default_unique_section_1): Don't use .gnu.linkonce when COMDAT is
1789         available.
1790
1791 2005-05-08  Kazu Hirata  <kazu@cs.umass.edu>
1792
1793         * tree-dfa.c (referenced_vars, add_referenced_var): Use VEC
1794         instead of VARRAY.
1795         * tree-flow.h (num_referenced_var, referenced_var): Likewise.
1796         * tree-into-ssa.c (mark_def_site_blocks): Likewise.
1797         * tree-ssa.c (init_tree_ssa, delete_tree_ssa): Likewise.
1798         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
1799
1800 2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>
1801
1802         PR target/16925
1803         * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Handle split of
1804         64-bit constants on 64-bit hosts.
1805         (m68hc11_split_logical): Simplify.
1806         (m68hc11_split_move): Likewise.
1807
1808 2005-05-08  Nathan Sidwell  <nathan@codesourcery.com>
1809             Paolo Bonzini  <bonzini@gnu.org>
1810
1811         * Makefile.in (cs-tconfig.h): Pass USED_FOR_TARGET to mkconfig.sh
1812         * aclocal.m4 (GCC_TARGET_TEMPLATE, AH_TEMPLATE): New.
1813         * configure.ac (enable_checking): Fix typos in runtime_checking.
1814         (ENABLE_RUNTIME_CHECKING): Mark as target template.
1815         (xm_file): Prepend auto-host.h
1816         (HAVE_GAS_HIDDEN, HAVE_LD_EH_FRAME_HDR): Mark as target template.
1817         * mkconfig.sh: Do not automatically define USED_FOR_TARGET in
1818         tconfig.h.
1819         * crtstuff.c: Do not include auto-host.h.
1820         (IN_LIBGCC2): Do not define.
1821         * gcov-io.h: Include tconfig.h, not auto-host.h.
1822         * libgcc2.c: Do not include auto-host.h.
1823         (abort): Do not undefine.
1824         * libgcov.c: Remove unneeded comment about config.h.
1825         * unwind-dw2-fde-glibc.c: Do not inlude auto-host.h.
1826         * config.in, configure: Regenerated.
1827
1828 2005-05-08  Nathan Sidwell  <nathan@codesourcery.com>
1829             Falk Hueffner  <falk@debian.org>
1830
1831         * config/alpha/alpha.c (tls_symbolic_operand_1): Use gcc_assert
1832         and gcc_unreachable as appropriate.
1833         (get_aligned_mem, get_unaligned_address,
1834         alpha_emit_set_long_const, alpha_emit_conditional_branch,
1835         alpha_emit_setcc, alpha_emit_conditional_move,
1836         alpha_lookup_xfloating_lib_func, alpha_compute_xfloating_mode_arg,
1837         alpha_emit_xfloating_libcall, alpha_split_tfmode_pair,
1838         alpha_expand_unaligned_load, alpha_expand_block_move,
1839         alpha_expand_zap_mask, get_trap_mode_suffix,
1840         get_round_mode_suffix, get_some_local_dynamic_name,
1841         print_operand_address, function_arg, alpha_return_in_memory,
1842         function_value, alpha_expand_builtin,
1843         alpha_initial_elimination_offset, alpha_expand_epilogue,
1844         summarize_insn, alpha_handle_trap_shadows, alphaev5_insn_pipe,
1845         alphaev5_next_group, alpha_align_insns,
1846         unicosmk_initial_elimination_offset, unicosmk_unique_section,
1847         unicosmk_ssib_name): Likewise.
1848         * config/alpha/alpha.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise.
1849         * config/alpha/unicosmk.h (TRAMPOLINE_TEMPLATE,
1850         ASM_OUTPUT_ADDR_DIFF_ELT, ASM_OUTPUT_ADDR_DIFF_VEC): Likewise.
1851         * config/alpha/vms.h (INITIAL_ELIMINATION_OFFSET,
1852         ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
1853         * config/alpha/alpha.md (*divmodsi_internal_er,
1854         *divmoddi_internal_er, ashldi3, *insxl, sibcall, call_osf,
1855         call_nt, call_umk, call_vms, call_value, sibcall_value,
1856         call_value_osf, call_value_nt, call_value_vms, call_value_umk,
1857         *call_vms_1, *movmemdi_1, *clrmemdi_1, *call_value_vms_1): Likewise.
1858         * config/alpha/predicates.md (input_operand): Likewise.
1859
1860 2005-05-08  Nathan Sidwell  <nathan@codesourcery.com>
1861
1862         * config/frv/frv.c (frv_default_flags_for_cpu): Use gcc_assert and
1863         gcc_unreachable, as appropriate.
1864         (frv_function_prologue, frv_alloc_temp_reg,
1865         frv_initial_elimination_offset, frv_expand_block_move,
1866         frv_expand_block_clear, frv_print_operand_jump_hint,
1867         frv_legitimize_tls_address, unspec_got_name, frv_emit_move,
1868         frv_emit_movsi, frv_split_cond_move, frv_split_minmax,
1869         frv_ifcvt_modify_insn, frv_ifcvt_modify_final,
1870         frv_adjust_field_align, frv_insn_unit, frv_cond_flags,
1871         frv_sort_insn_group, frv_reorder_packet, frv_matching_accg_mode,
1872         frv_in_small_data_p, frv_asm_out_constructor,
1873         frv_asm_out_destructor, frv_output_dwarf_dtprel): Likewise.
1874         * config/frv/frv.md (reload_incc_fp, *cond_exec_si_binary1,
1875         *cond_exec_si_binary2, *cond_exec_si_divide, *cond_exec_si_unary1,
1876         *cond_exec_sf_conv, *cond_exec_sf_add, call, sibcall, call_value,
1877         sibcall_value, casesi): Likewise.
1878
1879         * config/mn10300/mn10300.c (print_operand): Use gcc_assert and
1880         gcc_unreachable as appropriate.
1881         (print_operand_address, mn10300_print_reg_list, expand_prologue,
1882         expand_epilogue, notice_update_cc, initial_offset,
1883         mn10300_address_cost_1): Likewise.
1884         * config/mn10300/mn10300.md: Likewise.
1885         (absdf2, abssf2, negdf2, negsf2): Likewise.
1886
1887 2005-05-08  Richard Sandiford  <rsandifo@redhat.com>
1888
1889         PR target/21416
1890         * config/mips/mips.c (mips_emit_compare): Don't reverse UNGE and UNGT
1891         comparisons.
1892         * config/mips/mips.md (swapped_fcond): New code macro and attribute.
1893         (sgt_<mode>, sge_<mode>): Generalize to all members of swapped_fcond,
1894         including sunge_<mode> and sungt_<mode>.
1895
1896 2005-05-08  Richard Sandiford  <rsandifo@redhat.com>
1897
1898         * integrate.h (get_hard_reg_initial_val): Change type of register
1899         parameter from int to unsigned int.
1900         (has_hard_reg_initial_val): Likewise.
1901         * integrate.c (get_hard_reg_initial_val): Likewise.
1902         (has_hard_reg_initial_val): Likewise.  Remove cast to unsigned int.
1903
1904 2005-05-08  Kazu Hirata  <kazu@cs.umass.edu>
1905
1906         * except.c (eh_status): Change the type of ttype_data to
1907         VEC(tree,gc)*.
1908         (add_ttypes_entry, assign_filter_values,
1909         output_function_exception_table): Use VEC instead of VARRAY.
1910
1911 2005-05-07  David Edelsohn  <edelsohn@gnu.org>
1912
1913         * config/rs6000/rs6000.md (popcount<mode>2): Fix non-C90 constant.
1914
1915 2005-05-07  Paul Brook  <paul@codesourcery.com>
1916
1917         * Makefile.in: Fix dependencies.
1918         (GCOV_IO_H, VARRAY_H): Set.
1919
1920 2005-05-07  Anthony Green  <green@redhat.com>
1921
1922         PR bootstrap/21403
1923         * configure.ac (STMP_FIXPROTO): Fix [ ] consumption problem in
1924         x$STMP_FIXPROTO test.
1925         * configure: Rebuilt.
1926
1927 2005-05-07  Joseph S. Myers  <joseph@codesourcery.com>
1928
1929         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Do not define
1930         inappropriate feature test macros if flag_iso.
1931
1932 2005-05-07  Joseph S. Myers  <joseph@codesourcery.com>
1933
1934         * config/ia64/hpux.h (NO_IMPLICIT_EXTERN_C): Define.
1935
1936 2005-05-07  Hans-Peter Nilsson  <hp@axis.com>
1937
1938         PR target/21441
1939         * config/cris/cris.md ("*movdi_insn", "*mov_sidesisf_biap")
1940         ("*mov_sidesisf", "*mov_sidesisf_biap_mem", "*mov_sidesisf_mem"):
1941         Handle moved operand being in special register.
1942         ("smulsi3_highpart", "umulsi3_highpart"): Change .error into
1943         presumed working insn.
1944         (mover2side): Add FIXME.
1945
1946 2005-05-07  Richard Sandiford  <rsandifo@redhat.com>
1947
1948         * integrate.c (get_func_hard_reg_initial_val): Delete.
1949         (has_func_hard_reg_initial_val): Delete.
1950         (get_hard_reg_initial_val): Inline the old implementation of
1951         get_func_hard_reg_initial_val.  Use has_hard_reg_initial_val
1952         instead of has_func_hard_reg_initial_val to test for an existing
1953         pseudo.  Only create an rtx if a new initial value entry is needed.
1954         (has_hard_reg_initial_val): Scan the initial value list directly.
1955         Don't create an rtx.
1956
1957 2005-05-07  David Edelsohn  <edelsohn@gnu.org>
1958
1959         * config.gcc ({powerpc,rs6000}-ibm-aix*): Remove rs6000/aix.opt
1960         from extra_options.
1961         * config.in (HAVE_AS_POPCNTB): New.
1962         * configure.ac (HAVE_AS_MFCRF): Add .machine "pwr5" to AIX test.
1963         (HAVE_AS_POPCNTB): New.
1964         * configure: Regenerated.
1965         * config/rs6000/aix.h (TARGET_XL_COMPAT): Delete.
1966         * config/rs6000/rs6000.c (rs6000_override_options, power5): Add
1967         MASK_POPCNTB.  Uncomment rs6000_sched_restricted_insns_priority
1968         and rs6000_sched_costly_dep.
1969         * config/rs6000/rs6000.h (TARGET_POPCNTB): New.
1970         (TARGET_XL_COMPAT): Delete.
1971         * config/rs6000/rs6000.md (UNSPEC_POPCNTB): New.
1972         (popcount<mode>2): New.
1973         (popcntb<mode>2): New.
1974         * config/rs6000/rs6000.opt (mpopcntb): New.
1975
1976         * opt-functions.awk (var_set): Emit OPTION_MASK_ for InverseMask
1977         if variable name exists.
1978
1979 2005-05-07  Matt Kraai  <kraai@ftbfs.org>
1980
1981         * Makefile.in (c-gimplify.o): Depend on $(RTL_H) instead of rtl.h.
1982
1983 2005-05-07  Richard Henderson  <rth@redhat.com>
1984
1985         PR target/21412
1986         * config/rs6000/rs6000.c (rs6000_emit_move): Look for tls addresses
1987         with constant offsets.
1988
1989 2005-05-07  Nathan Sidwell  <nathan@codesourcery.com>
1990
1991         * config/v850/v850.c (print_operand): Use gcc_assert and
1992         gcc_unreachable, as appropriate.
1993         (print_operand_address, v850_handle_data_area_attribute,
1994         v850_encode_data_area, construct_restore_jr, construct_save_jarl,
1995         v850_insert_attributes, construct_prepare_instruction): Likewise.
1996         * config/v850/v850.h (INITIAL_ELIMINATION_OFFSET): Likewise.
1997         * config/v850/v850.md (movsicc, *sasf_1): Likewise.
1998
1999 2005-05-07  Kazu Hirata  <kazu@cs.umass.edu>
2000
2001         * tree-ssa-loop-ivcanon.c, config/i386/i386.c,
2002         config/rs6000/rs6000.h: Fix comment typos.
2003
2004 2005-05-07  Richard Sandiford  <rsandifo@redhat.com>
2005
2006         * doc/invoke.texi: Remove documentation for MIPS' -mint64 option.
2007         * config/mips/mips.c (TARGET_SCALAR_MODE_SUPPORTED_P): Delete.
2008         (mips_scalar_mode_supported_p): Delete.
2009
2010 2005-05-06  Eric Christopher  <echristo@redhat.com>
2011
2012         * config/mips/mips.opt: Remove -mint64 option.
2013         * config/mips/mips.c (override_options): Remove -mint64
2014         handling.
2015         * config/mips/mips.h (INT_TYPE_SIZE): Define to 32.
2016         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Remove
2017         64-bit integer handling.
2018         * doc/invoke.texi (Option Summary): Remove -mint64 for
2019         mips.
2020
2021 2005-05-06  Zdenek Dvorak  <dvorakz@suse.cz>
2022
2023         PR tree-optimization/19401
2024         * tree-flow.h (tree_unroll_loops_completely): Declaration changed.
2025         * tree-ssa-loop-ivcanon.c (enum unroll_level): New.
2026         (estimated_unrolled_size): New function.
2027         (try_unroll_loop_completely, canonicalize_loop_induction_variables,
2028         tree_unroll_loops_completely): Always unroll loops if the code size
2029         does not increase.
2030         * tree-ssa-loop.c (tree_complete_unroll): Indicate whether all
2031         loops should be unrolled completely.
2032         (gate_tree_complete_unroll): Run complete unrolling unconditionally.
2033
2034 2005-05-06  Zdenek Dvorak  <dvorakz@suse.cz>
2035
2036         PR rtl-optimization/21254
2037         * loop-iv.c (iv_number_of_iterations): Simplify infiniteness
2038         assumptions for loops that otherwise do not roll.
2039         (find_simple_exit): Prefer # of iterations that is guaranteed
2040         not to be infinite.
2041         * loop-unroll.c (decide_peel_once_rolling,
2042         decide_peel_completely): Check whether the loop is infinite.
2043
2044 2005-05-06  Pat Haugen  <pthaugen@us.ibm.com>
2045
2046         * config/rs6000/sysv4.opt: Fix typo.
2047
2048 2005-05-06  Denis Vlasenko  <vda@port.imtp.ilyichevsk.odessa.ua>
2049             Jakub Jelinek  <jakub@redhat.com>
2050
2051         PR target/21329
2052         * config/i386/i386.c (ix86_expand_movmem): Don't use rep; movsb
2053         for -Os if (movsl;)*(movsw;)?(movsb;)? sequence is shorter.
2054         Don't use rep; movs{l,q} if the repetition count is really small,
2055         instead use a sequence of movs{l,q} instructions.
2056
2057 2005-05-06  Jeff Law  <law@redhat.com>
2058
2059         PR tree-optimization/21380
2060         * tree-ssa-threadupdate.c (thread_through_all_blocks): Do not
2061         thread through a block with no preds.
2062
2063 2005-05-06  Kazu Hirata  <kazu@cs.umass.edu>
2064
2065         * tree-ssa-operands.c (clobbered_v_may_defs, clobbered_vuses,
2066         ro_call_vuse, fini_ssa_operands, add_call_clobber_ops,
2067         add_call_read_ops): Use VEC instead of VARRAY.
2068
2069 2005-05-06  Nathan Sidwell  <nathan@codesourcery.com>
2070
2071         * config/mcore/mcore.c (mcore_print_operand_address): Use
2072         gcc_assert and gcc_unreachable as appropriate.
2073         (mcore_print_operand, mcore_gen_compare_reg, mcore_output_call,
2074         mcore_output_andn, output_inline_const, mcore_output_move,
2075         mcore_output_movedouble, mcore_expand_block_move,
2076         layout_mcore_frame, mcore_initial_elimination_offset,
2077         mcore_expand_prolog, mcore_mark_dllexport,
2078         mcore_mark_dllimport): Likewise.
2079         * config/mcore/mcore.h (switch_to_section): Likewise.
2080         * config/mcore/mcore.md: Likewise.
2081
2082 2005-05-06  Aldy Hernandez  <aldyh@redhat.com>
2083
2084         * config/rs6000/linux64.h: Remove MASK_PROFILE_KERNEL, and
2085         TARGET_PROFILE_KERNEL.
2086
2087         * config/rs6000/rs6000.c (output_profile_hook): Add comment to
2088         TARGET_PROFILE_KERNEL use.
2089
2090 2005-05-06  Nathan Sidwell  <nathan@codesourcery.com>
2091
2092         * config/m32r/m32r.c (m32r_encode_section_info): Use gcc_assert
2093         and gcc_unreachable, as appropriate.
2094         (gen_compare, gen_split_move_double, m32r_setup_incoming_varargs,
2095         m32r_expand_prologue, m32r_output_function_epilogue,
2096         m32r_legitimize_pic_address, m32r_print_operand_address,
2097         emit_cond_move, m32r_function_symbol,
2098         m32r_output_block_move): Likewise.
2099         * config/m32r/m32r.h (INITIAL_ELIMINATION_OFFSET): Likewise.
2100         * config/m32r/m32r.md ( *movsi_insn, *zero_branch_insn,
2101         *rev_zero_branch_insn): Likewise.
2102
2103 2005-05-06  Jakub Jelinek  <jakub@redhat.com>
2104
2105         PR c++/20961
2106         * varasm.c (merge_weak): Remove NEWDECL from WEAK_DECLS chain
2107         if both NEWDECL and OLDDECL are already weak.
2108
2109 2005-05-06  Richard Sandiford  <rsandifo@redhat.com>
2110
2111         * config/rs6000/sysv4.h (EXTRA_SUBTARGET_SWITCHES): Delete.
2112
2113 2005-05-05  J"orn Rennecke  <joern.rennecke@st.com>
2114             Kaz Kojima  <kkojima@gcc.gnu.org>
2115
2116         * config/sh/sh.c (sh_builtin_saveregs): Use copy_to_mode_reg
2117         and plus_constant.
2118
2119 2005-05-05  Aldy Hernandez  <aldyh@redhat.com>
2120             David Edelsohn  <edelsohn@gnu.org>
2121
2122         * config.gcc: Add .opt magic for the rs6000 ports.
2123
2124         * doc/invoke.texi: Document -mabi= option properly.  Document
2125         -misel and -mno-sel.  Document -mspe and -mno-spe.  Document
2126         -mvrsave and -mno-vrsave.  Document deprecation of -mspe= and
2127         -misel=.
2128
2129         * config/rs6000/aix.h: Remove XL_COMPAT stuff.  Remove
2130         SUBTARGET_SWITCHES and SUBSUBTARGET_SWITCHES.  Define
2131         TARGET_XL_COMPAT.
2132
2133         * config/rs6000/aix.opt: New.
2134         * config/rs6000/aix41.opt: New.
2135         * config/rs6000/aix64.opt: New.
2136         * config/rs6000/darwin.opt: New.
2137         * config/rs6000/linux64.opt: New.
2138         * config/rs6000/rs6000.opt: New.
2139         * config/rs6000/sysv4.opt: New.
2140
2141         * config/rs6000/sysv4.h: Delete definitions of MASK_* and
2142         associated TARGET_*.  Remove SUBTARGET_OPTIONS,
2143         SUBTARGET_SWITCHES.
2144         Define TARGET_USES_SYSV4_OPT.
2145         * config/rs6000/aix41.h: Remove SUBSUBTARGET_SWITCHES.
2146         * config/rs6000/aix43.h: Remove SUBSUBTARGET_SWITCHES.  Define
2147         TARGET_USES_AIX64_OPT.
2148         * config/rs6000/aix51.h: Same.
2149         * config/rs6000/aix52.h: Same.
2150         * config/rs6000/darwin.h: Remove SUBTARGET_SWITCHES,
2151         MASK_MACHO_DYNAMIC_NO_PIC, TARGET_MACHO_DYNAMIC_NO_PIC.
2152         Use TARGET_ALTIVEC_VRSAVE instead of rs6000_altivec_vrsave.
2153         Define TARGET_DYNAMIC_NO_PIC as TARGET_MACHO_DYNAMIC_NO_PIC.
2154         * config/rs6000/linux64.h: Use
2155         rs6000_explicit_options.  Remove EXTRA_SUBTARGET_SWITCHES.
2156
2157         * config/rs6000/rs6000.c: Remove definitions of
2158         rs6000_sched_restricted_insns_priority,
2159         rs6000_long_double_size_string, rs6000_altivec_vrsave,
2160         rs6000_altivec_vrsave_string, rs6000_isel, rs6000_spe,
2161         rs6000_float_gprs_string, rs6000_isel_string, rs6000_spe_string,
2162         rs6000_abi_string, rs6000_warn_altivec_long, rs6000_longcall,
2163         rs6000_alignment_string.  Define rs6000_explicit_options.
2164         (rs6000_parse_abi_options): Remove.
2165         (rs6000_parse_alignment_option): Remove.
2166         (rs6000_parse_float_gprs_option): Remove.
2167         (rs6000_handle_option): New.  Define TARGET_HANDLE_OPTION.  Define
2168         TARGET_DEFAULT_TARGET_FLAGS.
2169         (rs6000_override_options): Revamp to use new .opt machinery.
2170
2171         * config/rs6000/rs6000.h: Remove old MASK_* and TARGET_* in favor
2172         of new .opt machinery.  Remove target_flags.  Redefine
2173         TARGET_MFCRF and TARGET_POWERPC64.  Remove TARGET_SWITCHES,
2174         SUBTARGET_SWITCHES, TARGET_OPTIONS, SUBTARGET_OPTIONS,
2175         rs6000_float_gprs_string, rs6000_isel_string, rs6000_spe_string,
2176         rs6000_altivec_vrsave_string, rs6000_altivec_vrsave,
2177         rs6000_longcall_switch, rs6000_default_long_calls,
2178         rs6000_sched_costly_dep_str, rs6000_sched_costly_dep,
2179         rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch, and
2180         TARGET_ALTIVEC_VRSAVE.
2181
2182 2005-05-05  Ralf Corsepius  <ralf.corsepius@rtems.org>
2183
2184         * config.gcc (hppa1.1-*-rtems*): Remove.
2185         * config/pa/rtems.h: Remove.
2186
2187 2005-05-05  Ralf Corsepius  <ralf.corsepius@rtems.org>
2188
2189         * config/rs6000/t-rtems (MULTILIB_NEW_EXCEPTIONS_ONLY):
2190         Exclude roe/603e multilib variants.
2191
2192 2005-05-04  Denis Chertykov  <denisc@overta.ru>
2193
2194         PR target/21284
2195         * config/avr/avr.c (avr_output_addr_vec_elt): Use special section
2196         for output.
2197
2198 2005-05-05  Richard Sandiford  <rsandifo@redhat.com>
2199
2200         * config.gcc (arm*-wince-pe*, arm-*-pe*, strongarm-*-pe): Add
2201         arm/pe.opt to $extra_options.
2202         * config/arm/arm.h (target_flags, target_fpu_name, target_fpe_name)
2203         (target_float_abi_name, target_float_switch, target_abi_name)
2204         (ARM_FLAG_APCS_FRAME, ARM_FLAG_POKE, ARM_FLAG_FPE, ARM_FLAG_APCS_STACK)
2205         (ARM_FLAG_APCS_FLOAT, ARM_FLAG_APCS_REENT, ARM_FLAG_BIG_END)
2206         (ARM_FLAG_INTERWORK, ARM_FLAG_LITTLE_WORDS, ARM_FLAG_NO_SCHED_PRO)
2207         (ARM_FLAG_ABORT_NORETURN, ARM_FLAG_SINGLE_PIC_BASE)
2208         (ARM_FLAG_LONG_CALLS, ARM_FLAG_THUMB, THUMB_FLAG_BACKTRACE)
2209         (THUMB_FLAG_LEAF_BACKTRACE, THUMB_FLAG_CALLEE_SUPER_INTERWORKING)
2210         (THUMB_FLAG_CALLER_SUPER_INTERWORKING, CIRRUS_FIX_INVALID_INSNS)
2211         (TARGET_APCS_FRAME, TARGET_POKE_FUNCTION_NAME, TARGET_FPE)
2212         (TARGET_APCS_STACK, TARGET_APCS_FLOAT, TARGET_APCS_REENT)
2213         (TARGET_BIG_END, TARGET_INTERWORK, TARGET_LITTLE_WORDS)
2214         (TARGET_NO_SCHED_PRO, TARGET_ABORT_NORETURN, TARGET_SINGLE_PIC_BASE)
2215         (TARGET_LONG_CALLS, TARGET_THUMB, TARGET_CALLER_INTERWORKING)
2216         (TARGET_CIRRUS_FIX_INVALID_INSNS, SUBTARGET_SWITCHES, TARGET_SWITCHES)
2217         (TARGET_OPTIONS, arm_cpu_select, arm_select,  structure_size_string)
2218         (arm_pic_register_string): Delete.
2219         (TARGET_BACKTRACE): Redefine using TARGET_TPCS_LEAF_FRAME and
2220         TARGET_TPCS_FRAME.
2221         (TARGET_DEFAULT, CONDITIONAL_REGISTER_USAGE): Update mask names.
2222         * config/arm/coff.h (TARGET_DEFAULT): Likewise.
2223         * config/arm/elf.h (TARGET_DEFAULT): Likewise.
2224         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Likewise.
2225         * config/arm/netbsd.h (TARGET_DEFAULT): Likewise.
2226         * config/arm/semi.h (TARGET_DEFAULT): Likewise.
2227         * config/arm/uclinux-elf.h (TARGET_DEFAULT): Likewise.
2228         * config/arm/wince-pe.h (TARGET_DEFAULT): Likewise.
2229         * config/arm/pe.h (TARGET_DEFAULT): Likewise.
2230         (TARGET_FLAG_NOP_FUN, TARGET_NOP_FUN_DLLIMPORT): Delete.
2231         (SUBTARGET_SWITCHES): Delete.
2232         * config/arm/arm.c (target_float_switch): Delete.
2233         (arm_cpu_select): Moved from config/arm/arm.h.
2234         (target_fpu_name, target_fpe_name, target_float_abi_name)
2235         (target_abi_name, structure_size_string, arm_pic_register_string)
2236         (arm_select): Make static.
2237         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
2238         (arm_handle_option): New function.
2239         (arm_override_options): Update target_flags checks for new mask names.
2240         Remove target_float_switch code.
2241         (arm_expand_prologue, thumb_expand_prologue): Check
2242         !TARGET_SCHED_PROLOG instead of TARGET_NO_SCHED_PRO.
2243         * config/arm/arm.opt, config/arm/pe.opt: New files.
2244
2245 2005-05-05  Nathan Sidwell  <nathan@codesourcery.com>
2246
2247         * config/arc/arc.c (get_arc_condition_code): Use gcc_assert &
2248         gcc_unreachable as appropriate.
2249         (arc_double_limm_p, arc_setup_incoming_varargs,
2250         arc_compute_function_type, arc_output_function_prologue,
2251         arc_output_function_epilogue, arc_eligible_for_epilogue_delay,
2252         output_shift, arc_print_operand, arc_print_operand_address,
2253         arc_final_prescan_insn): Likewise.
2254         * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
2255
2256 2005-05-04  Geoffrey Keating  <geoffk@apple.com>
2257
2258         * config/rs6000/rs6000.md (P): Use TARGET_*BIT rather than
2259         comparing Pmode.
2260         (SDI): New.
2261         (cmp): Delete.
2262         (wd): New.
2263         (add<mode>3, add<mode>3_internal1, add<mode>3_internal2,
2264         add<mode>3_internal3, one_cmpl<mode>2, sub<mode>3, neg<mode>2,
2265         clz<mode>2, ctz<mode>2, ffs<mode>2): New.
2266         (addsi3, addsi3_internal1, addsi3_internal2, addsi3_internal3,
2267         (one_cmplsi2, subsi3, negsi2, clzsi2, ctzsi2, ffssi2): Remove.
2268         (adddi3, adddi3_internal1, adddi3_internal2, adddi3_internal3,
2269         (one_cmpldi2, subdi3, negdi2, clzdi2, ctzdi2, ffsdi2): Remove.
2270         (sync_compare_and_swap<mode>): Use <wd> rather than <cmp>.
2271
2272 2005-05-05  Paul Brook  <paul@codesourcery.com>
2273
2274         * Makefile.in: Replace dependencies on basic-block.h, c-pragma.h,
2275         cfgloop.h, diagnostic.h, insn-attr.h, langhooks-def.h, params.h,
2276         regs.h, system.h, tree-dump.h, tree-gimple.h, tree-scalar-evolution.h
2277         and tree-data-ref.h with *_H variables.
2278
2279 2005-05-05  Kelley Cook  <kcook@gcc.gnu.org>
2280
2281         * config/m32r/xm-m32r.h, config/m32r/xm-linux.h: Delete files.
2282
2283 2005-05-05  Kelley Cook  <kcook@gcc.gnu.org>
2284
2285         * system.h: Poison BYTEORDER and HOST_WORDS_BIG_ENDIAN.
2286
2287 2005-05-04  Gerald Pfeifer  <gerald@pfeifer.com>
2288
2289         * doc/contrib.texi (Contributors): Add Mostafa Hagog and Ayal Zaks.
2290
2291 2005-05-04 Fariborz Jahanian <fjahanian@apple.com>
2292
2293         * config/rs6000/rs6000.c (rs6000_emit_prologue): Emit
2294         setting of vrsave register for current function after
2295         call to save_world is emitted.
2296
2297 2005-05-05  Hans-Peter Nilsson  <hp@bitrange.com>
2298
2299         * config/mmix/predicates.md: New file.
2300         * config/mmix/mmix.c (mmix_symbolic_or_address_operand)
2301         (mmix_reg_or_constant_operand, mmix_reg_cc_operand)
2302         (mmix_foldable_comparison_operator, mmix_comparison_operator)
2303         (mmix_reg_or_0_operand, mmix_reg_or_8bit_operand): Remove.
2304         * config/mmix/mmix.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES):
2305         Don't define.
2306         * config/mmix/mmix.md: Include predicates.md.
2307         ("call", "call_value"): Force address to register if it isn't a
2308         mmix_symbolic_or_address_operand.
2309
2310 2005-05-04  Andrew MacLeod  <amacleod@redhat.com>
2311
2312         * tree-flow-inline.h (op_iter_init_use, op_iter_init_def): Assert that
2313         the flags are of appropriate types.
2314         (num_ssa_operands): Generalize using the generic interface.
2315         * tree-ssa-dce.c (remove_dead_stmt): Don't ask for kills on a DEF
2316         iterator.
2317
2318 2005-05-04  Richard Sandiford  <rsandifo@redhat.com>
2319
2320         * protoize.c (version_flag, quiet_flag, nochange_flag, nosave_flag)
2321         (keep_flag, local_flag, global_flag, cplusplus_flag): Make extern.
2322
2323 2005-05-04  Kazu Hirata  <kazu@cs.umass.edu>
2324
2325         * tree-outof-ssa.c (edge_leader, stmt_list,
2326         analyze_edges_for_bb): Use VEC instead of VARRAY.
2327         (init_analayze_edges_for_bb, fini_analayze_edges_for_bb): New.
2328         (perform_edge_inserts): Call init_analayze_edges_for_bb and
2329         fini_analayze_edges_for_bb.
2330
2331 2005-05-04  James E Wilson  <wilson@specifixinc.com>
2332
2333         PR driver/21112
2334         * gcc.c (process_command): In the second argv scan loop, ignore
2335         Xassembler and Xpreprocessor, along with their argument.
2336
2337 2005-05-04  Kazu Hirata  <kazu@cs.umass.edu>
2338
2339         * tree-flow-inline.h, tree-ssa-operands.c,
2340         tree-ssa-operands.h, tree-ssa-opfinalize.h:
2341         Likewise. tree-vn.c: Fix comment typos.
2342         * doc/passes.texi, doc/tree-ssa.texi: Fix typos.
2343
2344 2005-05-04  Paolo Bonzini  <bonzini@gnu.org>
2345
2346         * doc/tm.texi (Target Hooks): Document
2347         TARGET_RESOLVE_OVERLOADED_BUILTIN.
2348
2349 2005-05-04  Paul Brook  <paul@codesourcery.com>
2350
2351         * Makefile.in: Change dependencies on target.h to $(TARGET_H).
2352
2353 2005-05-04  Kazu Hirata  <kazu@cs.umass.edu>
2354
2355         * dwarf2out.c (incomplete_types, retry_incomplete_types,
2356         gen_struct_or_union_type_die, dwarf2out_init): Use VEC instead
2357         of VARRAY.
2358
2359         * loop-unroll.c (var_to_expand, analyze_insn_to_expand_var,
2360         get_expansion, expand_var_during_unrolling,
2361         insert_var_expansion_initialization,
2362         combine_var_copies_in_loop_exit, release_var_copies): Use VEC
2363         instead of VARRAY.
2364
2365         * tree-ssa-loop-ivopts.c (rewrite_address_base): Don't call
2366         update_stmt.
2367
2368 2004-05-03  Andrew Pinski  <pinskia@physics.uc.edu>
2369
2370         PR middle-end/15618
2371         * fold-const.c (fold_widened_comparison): Treat BOOLEAN_TYPE
2372         the same as INTEGER_TYPE.
2373         (fold_binary): Fold "bool_var != 0" to bool_var.
2374         Fold "bool_var == 1" to bool_var.
2375
2376 2004-05-03  Richard Henderson  <rth@redhat.com>
2377
2378         PR middle-end/21318
2379         * function.c (instantiate_virtual_regs_in_insn): Use the mode
2380         from recog_data instead of insn_data.
2381
2382 2005-05-03  DJ Delorie  <dj@redhat.com>
2383
2384         * common.opt (fdiagnostics-show-option): No variable is needed.
2385         * diagnostic.h (diagnostic_context): Add show_option_requested flag.
2386         * diagnostic.c (diagnostic_initialize): Initialize show_option_requested.
2387         (diagnostic_report_diagnostic): Test for enabled diagnostics here.
2388         Save and restore original message format.  Use flag in context
2389         instead of global.
2390         (warning): Don't test for enabled warnings here.
2391         * opts.c (common_handle_option): Handle -fdiagnostics-show-option
2392         here.
2393
2394 2005-05-04  Kelley Cook  <kcook@gcc.gnu.org>
2395
2396         * config/m32r/xm-m32r.h: Don't define HOST_WORDS_BIG_ENDIAN.
2397         * config/m32r/xm-linux.h: Don't undefine HOST_WORDS_BIG_ENDIAN.
2398         * mips-tfile.c: Use WORDS_BIG_ENDIAN instead of HOST_WORDS_BIG_ENDIAN.
2399         * aclocal.m4: Don't include accross.m4.
2400         * configure.ac: Use AC_C_BIGENDIAN instead of AC_C_BIGENDIAN_CROSS.
2401         Use AC_CHECK_SIZEOF instead of AC_COMPILE_CHECK_SIZEOF.
2402         * configure, config.in: Regenerate.
2403
2404 2005-05-04  Jakub Jelinek  <jakub@redhat.com>
2405
2406         PR middle-end/21265
2407         * expr.h (enum block_op_methods): Add BLOCK_OP_TAILCALL.
2408         (clear_storage): Add argument.
2409         * expr.c (emit_block_move_via_libcall, clear_storage_via_libcall):
2410         Add tailcall argument, set CALL_EXPR_TAILCALL of the CALL_EXPR to
2411         tailcall.
2412         (emit_block_move): Handle BLOCK_OP_TAILCALL method.
2413         (clear_storage): Add method argument, handle BLOCK_OP_TAILCALL.
2414         (store_expr, store_constructor): Adjust callers.
2415         * builtins.c (expand_builtin_memcpy): Pass BLOCK_OP_TAILCALL
2416         to emit_block_move if CALL_EXPR_TAILCALL (exp).
2417         (expand_builtin_memmove): Add ORIG_EXP argument, copy
2418         CALL_EXPR_TAILCALL from ORIG_EXP to the new CALL_EXPR.
2419         (expand_builtin_bcopy): Replace ARGLIST and TYPE arguments
2420         with EXP.  Pass EXP to expand_builtin_memmove.
2421         (expand_builtin_memset): Add ORIG_EXP argument, pass
2422         BLOCK_OP_TAILCALL to clear_storage if CALL_EXPR_TAILCALL (orig_exp).
2423         (expand_builtin_bzero): Replace ARGLIST argument with EXP.
2424         Pass EXP to expand_builtin_memset.
2425         (expand_builtin_strcmp): Copy CALL_EXPR_TAILCALL from EXP to
2426         the new CALL_EXPR.
2427         (expand_builtin_strncmp): Likewise.
2428         (expand_builtin_printf): Replace ARGLIST argument with EXP.
2429         Copy CALL_EXPR_TAILCALL from EXP to the new CALL_EXPR.
2430         (expand_builtin_fprintf): Likewise.
2431         (expand_builtin): Adjust calls to
2432         expand_builtin_{memmove,bcopy,memset,bzero,{,f}printf}.
2433
2434         * config/i386/i386.c (ix86_expand_vector_set): Fix setting 3rd and 4th
2435         item in V4SF mode.
2436
2437         PR rtl-optimization/21239
2438         * combine.c (combine_simplify_rtx) <case VEC_SELECT>: Fix a typo.
2439
2440 2005-05-03  Kazu Hirata  <kazu@cs.umass.edu>
2441
2442         * tree-flow.h (tree_ann_common_d): Move aux to ...
2443         (stmt_ann_d): ... here.
2444         * tree-ssa-loop-im.c (LIM_DATA, determine_invariantness_stmt,
2445         move_computations_stmt, schedule_sm): Update references to
2446         aux.
2447         * tree-vectorizer.h (set_stmt_info, vinfo_for_stmt): Likewise.
2448
2449         * tree-cfg.c (remove_bb): Remove a redundant call to
2450         set_bb_for_stmt.
2451         * tree-if-conv.c (replace_phi_with_cond_modify_expr):
2452         Likewise.
2453
2454 2005-05-03  Richard Henderson  <rth@redhat.com>
2455
2456         * config/rs6000/rs6000.c: Remove conflict markers.
2457
2458         * cfg.c (dump_flow_info): Use max_reg_num, not max_regno.
2459
2460 2005-05-03  James E Wilson  <wilson@specifixinc.com>
2461
2462         * dwarf2out.c (lookup_filename): Call maybe_emit_file.
2463
2464 2005-05-03  DJ Delorie  <dj@redhat.com>
2465
2466         * c-decl.c (store_parm_decls_oldstyle): Let diagnostic machinery
2467         decide if the warning will be printed.
2468         * calls.c (expand_call): Likewise.
2469         * function.c (init-function_start): Likewise.
2470
2471         * common.opt (-fdiagnostics-show-option): New.
2472         * opts.c (option_enabled): Accept the option index instead of a
2473         pointer to the option descriptor.
2474         * opts.h (option_enabled): Likewise.
2475         * toplev.c (print_switch_values): Pass option index, not option
2476         descriptor.
2477         * diagnostic.h (diagnostic_info): Add option_index.
2478         * diagnostic.c: Include opts.h.
2479         (diagnostic_set_info): Initialize option_index.
2480         (diagnostic_report_diagnostic): Amend option name if appropriate.
2481         (warning): Check to see if the specified warning is enabled.
2482         Store option index.
2483         * doc/invoke.texi (-fdiagnostics-show-options): Document.
2484
2485 2005-05-03  Richard Henderson  <rth@redhat.com>
2486
2487         * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Fix ALL_REGS and
2488         SPEC_OR_GEN_REGS definitions.
2489
2490 2005-05-03  Alexandre Oliva  <aoliva@redhat.com>
2491
2492         PR target/16888
2493         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Clear reg names
2494         for unavailable registers.
2495
2496 2005-05-03  Kazu Hirata  <kazu@cs.umass.edu>
2497
2498         * tree-cfg.c (tree_forwarder_block_p): Fix a typo.
2499
2500         * cfglayout.c (block_locators_blocks,
2501         insn_locators_initialize, insn_scope): Use VEC instead of
2502         VARRAY.
2503
2504         * tree-mudflap.c (deferred_static_decls, mudflap_enqueue_decl,
2505         mudflap_finish_file, mudflap_finish_file): Use VEC instead of
2506         VARRAY.
2507
2508 2005-05-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
2509
2510         * config/sparc/predicates.md (const_compl_high_operand): New.
2511         * config/sparc/sparc.c (sparc_emit_set_safe_HIGH64): Rename into
2512         gen_safe_HIGH64.
2513         (sparc_emit_set_const64_quick1): Adjust for above change.
2514         (sparc_emit_set_const64_quick2): Likewise.
2515         (sparc_emit_set_const64_longway): Likewise.
2516         (sparc_emit_set_const64): Likewise.
2517         * config/sparc/sparc.md (movhi_const64_special, movsi_const64_special,
2518         movdi_const64_special): Delete.
2519         (logical constant splitters): Use const_compl_high_operand.
2520
2521 2005-05-03  Richard Guenther  <rguenth@gcc.gnu.org>
2522
2523         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Use STRIP_TYPE_NOPS
2524         rather than STRIP_NOPS.
2525
2526 2005-05-03  Jakub Jelinek  <jakub@redhat.com>
2527
2528         PR rtl-optimization/21330
2529         * loop-unswitch.c (may_unswitch_on): Set *cinsn only when
2530         returning non-NULL.
2531         (unswitch_single_loop): Clear cinsn when retrying.
2532
2533         PR target/21297
2534         * config/i386/i386.c (legitimize_address): When canonicalizing
2535         ASHIFT into MULT, multiply by 1 << shift_count instead of
2536         1 << log2 (shift_count).
2537
2538 2005-05-03  Andrew MacLeod  <amacleod@redhat.com>
2539
2540         * lambda-code.c (gcc_loop_to_lambda_loop,
2541         lambda_loopnest_to_gcc_loopnest, phi_loop_edge_uses_def,
2542         stmt_is_bumper_for_loop, perfect_nest_p, replace_uses_of_x_with_y): Use
2543         generic operand interface.
2544         * tree-data-ref.c (find_data_references_in_loop): Use generic interface.
2545         * tree-dfa.c (collect_dfa_stats_r, mark_new_vars_to_rename): Use
2546         generic operand interface.
2547         * tree-flow-inline.h (delink_imm_use, link_imm_use_to_list,
2548         link_imm_use, link_imm_use_stmt, relink_imm_use, relink_imm_use_stmt,
2549         next_safe_imm_use, has_zero_uses, has_single_use, single_imm_use,
2550         num_imm_uses): Use ssa_use_operand_t.
2551         (get_def_ops, get_use_ops, get_v_may_def_ops, get_vuse_ops,
2552         get_v_must_def_ops): Delete.
2553         (get_def_from_ptr, get_phi_result_ptr): Get def directly now.
2554         (get_use_op_ptr, get_def_op_ptr, get_v_may_def_result_ptr,
2555         get_v_may_def_op_ptr, get_vuse_op_ptr, get_v_must_def_result_ptr,
2556         get_v_must_def_kill_ptr): Delete.
2557         (delink_stmt_imm_use): Move and use new operand interface.
2558         (op_iter_next_use, op_iter_next_def, op_iter_next_tree, op_iter_init,
2559         op_iter_next_tree): Use new operand implementation.
2560         (clear_and_done_ssa_iter): New.  Initialize a blank operand iterator.
2561         (op_iter_init_use, op_iter_init_def, op_iter_init_tree): Add iterator
2562         type check.
2563         (op_iter_next_mustdef, op_iter_next_maydef,
2564         op_iter_next_must_and_may_def): Delete. Replace with...
2565         (op_iter_next_maymustdef): New.  Combine must and may next operations.
2566         (op_iter_init_maydef, op_iter_init_mustdef,
2567         op_iter_init_must_and_may_def): Use new interface.
2568         (single_ssa_tree_operand ): New.  Process single operands only as trees.
2569         (single_ssa_use_operand): New.  Process single operands only as uses.
2570         (single_ssa_def_operand): New.  Process single operands only as defs.
2571         (zero_ssa_operands): New.  Return TRUE if there are zero operands of the
2572         specified types.
2573         (num_ssa_operands): New.  Count the number of specified operands.
2574         (compare_ssa_operands_equal): New.  Compare two statements' operands.
2575         (single_phi_def): New.  Return true if PHI has one def of the specified
2576         operand type.
2577         (op_iter_init_phiuse): New.  Initialize the iterator for PHI arguments.
2578         (op_iter_init_phidef): New.  Initialize the iterator for the PHI def.
2579         * tree-flow.h (struct immediate_use_iterator_d): Use ssa_use_operand_t.
2580         (struct stmt_ann_d): Operands field no longer require GTY().
2581         (vn_compute, vn_lookup_or_add, vn_add, vn_lookup): Change prototype.
2582         * tree-into-ssa.c (mark_def_sites): Use SSA_OP_VMUSTKILL.
2583         * tree-outof-ssa.c (check_replaceable, find_replaceable_in_bb,
2584         dump_replaceable_exprs, rewrite_trees): Use generic interface.
2585         * tree-phinodes.c (make_phi_node, release_phi_node, resize_phi_node):
2586         Use use_operand_p instead of ssa_imm_use_t *.
2587         * tree-pretty-print.c (dump_vops): check if operands are active before
2588         dumping virtual operands.
2589         * tree-sra.c (sra_walk_function): Use ZERO_SSA_OPERANDS.
2590         * tree-ssa-ccp.c (likely_value): Use ZERO_SSA_OPERANDS.
2591         (ccp_fold): Use new interface.
2592         (ccp_visit_stmt): Remove unused variables and code.
2593         (convert_to_gimple_builtin): Insert statements before calling
2594         mark_new_vars_to_rename.
2595         * tree-ssa-copy.c (stmt_may_generate_copy): Use ZERO_SSA_OPERANDS.
2596         (copy_prop_visit_cond_stmt): Use generic interface.
2597         * tree-ssa-dom.c (struct expr_hash_elt): Use stmt pointer, not the
2598         annotation in table.
2599         (thread_across_edge): Use generic interface.
2600         (initialize_hash_element): Initialzie with stmt, not annotation.
2601         (eliminate_redundant_computations): Use generic interface.
2602         (record_equivalences_from_stmt): Pass stmt, not annotation.
2603         (avail_expr_hash, real_avail_expr_hash, avail_expr_eq): Use generic
2604         interface.
2605         * tree-ssa-dse.c (dse_optimize_stmt): Use ZERO_SSA_OPERANDS.
2606         * tree-ssa-loop-ivopts.c (find_invariants_stmt,
2607         find_interesting_uses_stmt, protect_loop_closed_ssa_form_use): Use
2608         generic operand interface.
2609         * tree-ssa-loop-niter.c (chain_of_csts_start, get_val_for): Use generic
2610         interface.
2611         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Use Generic operand
2612         Interface.
2613         * tree-ssa-operands.c (struct opbuild_list_d): New.  Operand build type.
2614         (build_defs, build_uses, build_v_may_defs, build_vuses,
2615         build_v_must_defs): Change type to struct opbuild_list_d.
2616         (ops_active): New.  Operands active boolean.
2617         (operand_memory, operand_memory_index): New.  Operand memory managers.
2618         (allocate_def_optype, allocate_use_optype, allocate_v_may_def_optype,
2619         allocate_vuse_optype, allocate_v_must_def_optype): Delete.
2620         (free_uses, free_defs, free_vuses, free_v_may_defs, free_v_must_defs):
2621         Change from functions to static variable list heads.
2622         (opbuild_initialize_virtual): New.  Initialize a virtual build list.
2623         (opbuild_initialize_real): New.  Initialize a virtual build list.
2624         (opbuild_free): New.  Free a build list.
2625         (opbuild_num_elems): New.  Number of items in a list.
2626         (opbuild_append_real): New.  Add a real (tree *) operand.
2627         (opbuild_append_virtual): New.  Add and sort a virtual (tree) operand.
2628         (opbuild_first): New.  Return first element index in a list.
2629         (opbuild_next): New.  Return next element in a list.
2630         (opbuild_elem_real): New.  Return real element.
2631         (opbuild_elem_virtual): New.  Return virtual element.
2632         (opbuild_elem_uid): New.  Return UID of virtual element.
2633         (opbuild_clear): New.  Reset an operand list.
2634         (opbuild_remove_elem): New.  Remove an element form a list.
2635         (ssa_operands_active): New.  Return true if operand cache is active.
2636         (init_ssa_operands, fini_ssa_operands): Initialize new implementation.
2637         (ssa_operand_alloc): New.  Allocate memory from an operand chunk.
2638         (correct_use_link): Use use_operand_p.
2639         (finalize_ssa_uses, finalize_ssa_v_may_defs, finalize_ssa_defs,
2640         finalize_ssa_vuses, finalize_ssa_v_must_defs): New implmentation.
2641         (cleanup_v_may_defs): Use new implmentation.
2642         (finalize_ssa_stmt_operands, start_ssa_stmt_operands): New
2643         implementation.
2644         (append_def, append_use, append_v_may_def, append_vuse,
2645         append_v_must_def): Call opbuild_append routine instead of using varray.
2646         (build_ssa_operands): Simplify to simply use stmt, don't maintain a
2647         global parse_old_ops variable.
2648         (free_ssa_operands): New implementation.
2649         (update_stmt_operands): Move.  Change argument to build_ssa_operands.
2650         (copy_virtual_operands): Move. New generic implementation.
2651         (create_ssa_artficial_load_stmt): Move. New implementation.
2652         (swap_tree_operands): Update for new implementation.
2653         (get_expr_operands): Add stmt parameter to calls to swap_tree_operands.
2654         (add_call_clobber_ops, add_call_read_ops): Initialize opbuild list
2655         rather than a varray.
2656         (verify_imm_links): Use use_operand_p.
2657         (dump_immediate_uses_for): If the immediate use variable is a virtual
2658         variable, show the virtual ops in the stmt.
2659         * tree-ssa-operands.h (def_operand_p): No longer a structure.
2660         (NULL_DEF_OPERAND_P): Now a #define.
2661         (def_optype_d, use_optype_d, v_def_use_operand_type, v_may_def_optype_d,
2662         vuse_operand_type, vuse_optype_d, v_must_def_optype_d): Delete.
2663         (def_optype_d, use_optype_d, maydef_optype_d, vuse_optype_d,
2664         mustdef_optype_d): New.  Use Linked list representation.
2665         (SSA_OPERAND_MEMORY_SIZE): New.  Size of operand memory chunk.
2666         (struct ssa_operand_memory_d): New.  Allocated Chunk node.
2667         (struct stmt_operands_d): Change to new pointers that are not GTY.
2668         (STMT_USE_OPS, NUM_USES, SET_USE_OP, STMT_DEF_OPS, NUM_DEFS, SET_DEF_OP,
2669         STMT_V_MAY_DEF_OPS, NUM_V_MAY_DEFS, SET_V_MAY_DEF_RESULT,
2670         SET_V_MAY_DEF_OP, STMT_VUSE_OPS, NUM_VUSES, SET_VUSE_OP,
2671         STMT_V_MUST_DEF_OPS, NUM_V_MUST_DEFS, SET_V_MUST_DEF_RESULT,
2672         SET_V_MUST_DEF_KILL): Delete.
2673         (V_MAY_DEF_OPS, V_MAY_DEF_RESULT_PTR, V_MAY_DEF_RESULT,
2674         V_MAY_DEF_OP_PTR, V_MAY_DEF_OP): Rename to MAYDEF_*.
2675         (V_MUST_DEF_OPS, V_MUST_DEF_RESULT_PTR, V_MUST_DEF_RESULT,
2676         V_MUST_DEF_KILL_PTR, V_MUST_DEF_KILL): Rename to MUSTDEF_*.
2677         (enum ssa_op_iter_type): Operand iterator typechecking values.
2678         (struct ssa_operand_iterator_d): Use linked lists of operands.
2679         (SSA_OP_VMUSTDEFKILL): Rename to SSA_OP_VMUSTKILL.
2680         (FOR_EACH_SSA_MAYDEF_OPERAND, FOR_EACH_SSA_MUSTDEF_OPERAND,
2681         FOR_EACH_SSA_MUST_AND_MAY_DEF_OPERAND): Use op_iter_next_maymustdef.
2682         (FOR_EACH_PHI_ARG): New.  Iterate over PHI arguments.
2683         (FOR_EACH_PHI_OR_STMT_USE): New.  Iterate over PHI or stmt uses.
2684         (FOR_EACH_PHI_OR_STMT_DEF): New.  Iterate over PHI or stmt defs.
2685         (SINGLE_SSA_TREE_OPERAND, SINGLE_SSA_USE_OPERAND,
2686         SINGLE_SSA_DEF_OPERAND, ZERO_SSA_OPERANDS, NUM_SSA_OPERANDS): New.
2687         * tree-ssa-opfinalize.h: New.  Function templates for expansion.
2688         (FINALIZE_ALLOC): Expands into alloc_def, alloc_use, alloc_maydef,
2689         alloc_vuse, and alloc_mustdef.
2690         (FINALIZE_FUNC): Expands into finalize_ssa_def_ops,
2691         finalize_ssa_use_ops, finalize_ssa_v_may_def_ops, finalize_ssa_vuse_ops,
2692         and finalize_ssa_v_must_def_ops.
2693         * tree-ssa-pre.c (add_to_sets): Pass tree to vn_add.
2694         (create_value_expr_from): Use stmt not vuse_optype as a parameter. Pass
2695         stmt around.
2696         (compute_avail): Use generic iterator interface.
2697         * tree-ssa-propagate.c (first_vdef): Use generic operand interface.
2698         (stmt_makes_single_load, stmt_makes_single_store): Use
2699         ZERO_SSA_OPERANDS.
2700         * tree-ssa-sink.c (is_hidden_global_store): Use ZERO_SSA_OPERANDS.
2701         (statement_sink_location): Use generic interface.
2702         * tree-ssa.c (verify_ssa):  Use %p in fprintf.  Use generic interface.
2703         (delete_tree_ssa): Don't call release_defs.  Call release_ssa_name and
2704         reset the immediate use link nodes.
2705         (stmt_references_memory_p): Use ZERO_SSA_OPERANDS.
2706         * tree-ssanames.c (make_ssa_name): Use use_operand_p.
2707         * tree-tailcall.c (find_tail_calls): Use ZERO_SSA_OPERANDS.
2708         (eliminate_tail_call): Use generic operand interface.
2709         * tree-vect-analyze.c (vect_analyze_data_refs): Use ZERO_SSA_OPERANDS.
2710         (vect_mark_relevant, vect_mark_stmts_to_be_vectorized): Use generic
2711         interface.
2712         * tree-vect-transform.c (update_vuses_to_preheader): Use generic
2713         interface.
2714         * tree-vectorizer.c (rename_variables_in_bb): Use generic interface.
2715         * tree-vn.c (struct val_expr_pair_d): Cache statment pointer instead of
2716         vuse_optype.
2717         (vn_compute, val_expr_pair_hash, vn_add, vn_lookup, vn_lookup_or_add):
2718         Use statement pointer instead of vuse_optype.  Use generic interface.
2719         * tree-vrp.c (maybe_add_assert_expr): Use generic interface.
2720         (stmt_interesting_for_vrp, vrp_visit_stmt): Use ZERO_SSA_OPERANDS.
2721         * tree.h (struct ssa_imm_use_d): Renamed to ssa_use_operand_d.
2722         (tree_ssa_name, phi_arg_d): Use ssa_use_operand_d.
2723         * doc/tree-ssa.texi: Update documentation for operand interface.
2724
2725 2005-05-03  Nathan Sidwell  <nathan@codesourcery.com>
2726
2727         * config/darwin.c (machopic_define_symbol): Use gcc_assert or
2728         gcc_unreachable as appropriate.
2729         (machopic_function_base_name, machopic_indirect_data_reference,
2730         machopic_legitimize_pic_address, darwin_non_lazy_pcrel): Likewise.
2731         * config/host-darwin.c (darwin_gt_pch_use_address): Likewise
2732         * config/rs6000/altivec.md (*mov<mode>_internal,
2733         build_vector_mask_for_load): Likewise.
2734         * config/rs6000/darwin.md (movdf_low_si, movdf_low_di,
2735         *call_nonlocal_darwin64, *call_value_nonlocal_darwin64,
2736         *sibcall_symbolic_64, *sibcall_value_symbolic_64): Likewise.
2737         * config/rs6000/predicates.md (easy_fp_constant,
2738         logical_operand): Likewise.
2739         * config/rs6000/rs6000.c (spe_expand_predicate_builtin,
2740         compute_save_world_info, rs6000_emit_prologue,
2741         rs6000_output_mi_thunk): Reword comments to avoid 'abort'.
2742         * config/rs6000/host-darwin.c (segv_handler): Use fancy_abort
2743         directly.
2744
2745 2005-05-03  Uros Bizjak  <uros@kss-loka.si>
2746
2747         PR middle-end/21282
2748         * convert.c (convert_to_integer): Convert ceil and floor in
2749         c99 mode only.
2750
2751 2005-04-29  Geoffrey Keating  <geoffk@apple.com>
2752
2753         PR target/20813
2754         * config/rs6000/rs6000.md (floatsidf2_internal): Merge to create
2755         define_insn_and_split.  Split only when memory operand is
2756         offsettable.  Use adjust_address rather than plus_constant.
2757         (floatunssidf2_internal): Likewise.
2758         (fix_truncdfsi2_internal): Split only when memory operand is
2759         offsettable.  Use adjust_address rather than plus_constant.
2760         (fix_trunctfsi2_internal): Likewise.
2761         (floatsidf2_internal): Likewise.
2762
2763 2005-05-02  Diego Novillo  <dnovillo@redhat.com>
2764
2765         * tree-vrp.c (set_value_range_to_nonnull): Declare inline.
2766         (set_value_range_to_null): Likewise.
2767         (set_value_range_to_varying): New function.  Use it in all
2768         call sites that used to call set_value_range (vr, VR_VARYING, ...).
2769         (extract_range_from_assert): If the integral type has a
2770         super-type, and LIMIT is not within MIN and MAX values of that
2771         type, set the resulting range to VR_VARYING.
2772
2773 2005-05-02  Hans-Peter Nilsson  <hp@bitrange.com>
2774
2775         * config/mmix/mmix.opt: New file.
2776         * config/mmix/mmix.h: Move options-related comments to mmix.opt.
2777         (mmix_cc1_ignored_option): Don't declare.
2778         (TARGET_OPTIONS, TARGET_MASK_LIBFUNCS, TARGET_MASK_ABI_GNU)
2779         (TARGET_MASK_FCMP_EPSILON, TARGET_MASK_ZERO_EXTEND)
2780         (TARGET_MASK_KNUTH_DIVISION, TARGET_MASK_TOPLEVEL_SYMBOLS)
2781         (TARGET_MASK_BRANCH_PREDICT, TARGET_MASK_USE_RETURN_INSN)
2782         (TARGET_MASK_BASE_ADDRESSES, TARGET_LIBFUNC, TARGET_ABI_GNU,
2783         (TARGET_FCMP_EPSILON, TARGET_ZERO_EXTEND, TARGET_KNUTH_DIVISION)
2784         (TARGET_TOPLEVEL_SYMBOLS, TARGET_BRANCH_PREDICT)
2785         (TARGET_BASE_ADDRESSES, TARGET_USE_RETURN_INSN, TARGET_SWITCHES):
2786         Don't define.
2787         (TARGET_DEFAULT): Change TARGET_MASK_... to MASK_...
2788         * config/mmix/mmix.c (mmix_cc1_ignored_option): Remove.
2789         (TARGET_DEFAULT_TARGET_FLAGS): Override default.
2790
2791 2005-05-02  Joseph S. Myers  <joseph@codesourcery.com>
2792
2793         PR c/15698
2794         * c-tree.h (C_DECL_BUILTIN_PROTOTYPE): New.
2795         * c-decl.c (current_function_prototype_built_in,
2796         current_function_prototype_arg_types): New.
2797         (merge_decls): Keep source location of prototype followed by
2798         nonprototype declaration.  Update C_DECL_BUILTIN_PROTOTYPE.
2799         (builtin_function): Set C_DECL_BUILTIN_PROTOTYPE.
2800         (start_function): Always set current_function_prototype_locus,
2801         current_function_prototype_built_in and
2802         current_function_prototype_arg_types.  Check for external
2803         prototype whether or not visible for external function and set
2804         current_function_prototype_arg_types accordingly.
2805         (store_parm_decls_oldstyle): Use
2806         current_function_prototype_arg_types for checking old-style
2807         definition against prototype.  Give warnings only if
2808         current_function_prototype_built_in).
2809
2810 2005-05-02  Daniel Jacobowitz  <dan@codesourcery.com>
2811
2812         * ggc.h (ggc_alloc_zone_pass_stat): New macro.
2813         (ggc_alloc_zone_stat): Don't define.
2814         * ggc-zone.c (ggc_alloc_typed_stat, ggc_alloc_stat): Use
2815         ggc_alloc_zone_pass_stat.
2816         * rtl.c (rtx_alloc_stat, shallow_copy_rtx_stat): Likewise.
2817         * tree.c (make_node_stat, copy_node_stat, make_tree_binfo_stat)
2818         (make_tree_vec_stat, tree_cons_stat, build1_stat): Likewise.
2819
2820 2005-05-02  Daniel Jacobowitz  <dan@codesourcery.com>
2821
2822         * calls.c (expand_call): Handle current_function_pretend_args_size
2823         when checking for sibcalls.
2824
2825 2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>
2826
2827         PR tree-optimization/21294
2828         * tree-vrp.c (vrp_expr_computes_nonzero): New.
2829         (extract_range_from_expr): Call vrp_expr_computes_nonzero.
2830
2831 2005-05-02  Janis Johnson  <janis187@us.ibm.com>
2832
2833         PR 19985
2834         * gcov-io.h: Declare gcov external functions hidden.
2835
2836 2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>
2837
2838         * tree-ssa-uncprop.c (equiv_hash_elt, remove_equivalence,
2839         record_equiv, tree_ssa_uncprop, uncprop_into_successor_phis):
2840         Use VEC instead of VARRAY.
2841         (equiv_free): New.
2842
2843         * tree-ssa-sink.c (nearest_common_dominator_of_uses): Factor
2844         out common code.
2845
2846 2005-05-02  Paolo Bonzini  <bonzini@gnu.org>
2847
2848         * c-common.c (resolve_overloaded_builtin): Forward to target
2849         hook for BUILT_IN_MD built-ins.
2850         * c-typeck.c (finish_call_expr): Call resolve_overloaded_builtin
2851         for all types of built-in.
2852         * target-def.h (TARGET_RESOLVE_OVERLOADED_BUILTIN): New.  Use it
2853         in the definition of the target hooks struct.
2854         * target.h (struct gcc_target): Add resolve_overloaded_builtin.
2855         * config/rs6000/altivec.h: Rewritten.
2856         * config/rs6000/rs6000-c.c (struct altivec_builtin_types,
2857         altivec_resolve_overloaded_builtin, altivec_build_resolved_builtin,
2858         rs6000_builtin_type, rs6000_builtin_type_compatible,
2859         altivec_overloaded_builtins, rs6000_builtin_type,
2860         rs6000_builtin_type_compatible): New.
2861         * config/rs6000/rs6000.c (rs6000_builtin_types, rs6000_builtin_decls):
2862         New.
2863         (def_builtin): Turn into a function.  Check for duplicates and store
2864         the builtin into rs6000_builtin_decls.
2865         (bdesc_3arg, bdesc_dst, bdesc_altivec_preds, bdesc_2arg,
2866         bdesc_1arg): Add overloaded builtins.
2867         (altivec_expand_builtin): Check for unresolved overloaded builtins,
2868         do not support ALTIVEC_COMPILETIME_ERROR.
2869         (rs6000_init_builtins): Add opaque 128-bit vector, and internal
2870         nodes to represent front-end types.
2871         (altivec_init_builtins, rs6000_common_init_builtins): Create builtins
2872         with opaque arguments and/or return values.
2873         * config/rs6000/rs6000.h (enum rs6000_builtins): Remove
2874         ALTIVEC_COMPILETIME_ERROR and add Altivec overloaded builtins.
2875         (rs6000_builtin_type_index): New.
2876         (is_ev64_opaque_type): Rename to...
2877         (rs6000_is_opaque_type): ... this.
2878         (rs6000_cpu_cpp_builtins): Install the resolve_overloaded_builtin
2879         target hook.
2880
2881 2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>
2882
2883         * function.c (reorder_blocks, reorder_blocks_1): Use VEC
2884         instead of VARRAY.
2885
2886 2005-05-02  Nathan Sidwell  <nathan@codesourcery.com>
2887             Bernd Schmidt  <bernd.schmidt@analog.com>
2888
2889         * config/bfin/bfin.c (emit_link_insn, effective_address_32bit_p,
2890         print_address_operand, print_operand, legitimize_pic_address,
2891         asm_conditional_branch, bfin_gen_compare, output_push_multiple,
2892         output_pop_multiple): Use gcc_assert or gcc_unreachable as
2893         appropriate.
2894         * config/bfin/bfin.md (movsf splitter, beq, bne): Likewise.
2895
2896 2005-05-02  Dorit Naishlos  <dorit@il.ibm.com>
2897
2898         * doc/passes.texi: Document vectorization pass.
2899
2900 2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>
2901
2902         * tree-scalar-evolution.c (get_exit_conditions_rec,
2903         select_loops_exit_conditions,
2904         number_of_iterations_for_all_loops,
2905         analyze_scalar_evolution_for_all_loop_phi_nodes,
2906         scev_analysis): Use VEC instead of VARRAY.
2907
2908 2005-05-02  Michael Matz  <matz@suse.de>
2909
2910         PR c++/19542
2911         * c-common.c (c_common_nodes_and_builtins): Create global null_node.
2912         (warn_strict_null_sentinel): Define.
2913         (check_function_sentinel): Check for null_node as valid sentinel too.
2914         * c-common.h (c_tree_index): Added CTI_NULL.
2915         (null_node) Define global_tree[CTI_NULL].
2916         (warn_strict_null_sentinel): Declare.
2917         * c-opts.c: (c_common_handle_option): Handle -Wstrict-null-sentinel.
2918         * c.opt: (Wstrict-null-sentinel): New C++ option.
2919         * doc/invoke.texi (C++ Options): Document -Wstrict-null-sentinel.
2920
2921 2005-05-01  Kazu Hirata  <kazu@cs.umass.edu>
2922
2923         * gimplify.c (gimplify_compound_lval): Use VEC instead of
2924         VARRAY.
2925
2926         * global.c (calculate_reg_pav): Use VEC instead of VARRAY.
2927
2928         * dwarf2out.c (decl_scope_table, push_decl_scope,
2929         pop_decl_scope, scope_die_for, dwarf2out_init): Use VEC
2930         instead of VARRAY.
2931
2932 2005-05-01  Mark Mitchell  <mark@codesourcery.com>
2933
2934         PR C++/14391
2935         * c-cppbuiltin.c (c_cpp_builtins): Do not define __GXX_WEAK__ to 1
2936         if !flag_weak.
2937         * doc/cpp.texi (__DEPRECATED): Document.
2938         (__EXCEPTIONS): Likewise.
2939         (__GXX_WEAK__): Likewise.
2940
2941         * function.c (INVOKE__main): Do not define.
2942         (expand_main_function): Check HAS_INIT_SECTION when determining
2943         whether or not to call __main.
2944
2945 2005-05-01  Kazu Hirata  <kazu@cs.umass.edu>
2946
2947         * tree-ssa-loop-ivopts.c: Fix a comment typo.
2948
2949 2005-01-05  Paul Brook  <paul@codesourcery.com>
2950
2951         * config/arm/arm.h (ARM_EMIT_TRAMPOLINE_CACHE_CLEAR): Define.
2952         (INITIALIZE_TRAMPOLINE): Use it.
2953         * config/arm/linux-gas.h (INITIALIZE_TRAMPOLINE): Remove.
2954         * config/arm/netbsd.h (INITIALIZE_TRAMPOLINE): Remove.
2955         * config/arm/netbsd-elf.h (INITIALIZE_TRAMPOLINE): Remove.
2956
2957 2005-05-01  Gerald Pfeifer  <gerald@pfeifer.com>
2958
2959         * doc/install.texi (Specific): Omit dots in the @anchors names
2960         for i?86-*-sco3.2v5*, i?86-*-solaris2.10, and sparc-sun-solaris2.7.
2961         Omit underscores for x86_64-*-* and the "all ELF targets" entry.
2962
2963 2005-05-01  Zdenek Dvorak  <dvorakz@suse.cz>
2964
2965         PR tree-optimization/18316
2966         PR tree-optimization/19126
2967         * tree.c (build_int_cst_type): Avoid shift by size of type.
2968         * tree-scalar-evolution.c (simple_iv): Add allow_nonconstant_step
2969         argument.
2970         * tree-scalar-evolution.h (simple_iv): Declaration changed.
2971         * tree-ssa-loop-ivopts.c (struct iv_cand): Add depends_on
2972         field.
2973         (dump_cand): Dump depends_on information.
2974         (determine_biv_step): Add argument to simple_iv call.
2975         (contains_abnormal_ssa_name_p): Handle case expr == NULL.
2976         (find_bivs, find_givs_in_stmt_scev): Do not require step to be a
2977         constant.
2978         (add_candidate_1): Record depends_on for candidates.
2979         (tree_int_cst_sign_bit, constant_multiple_of): New functions.
2980         (get_computation_at, get_computation_cost_at, may_eliminate_iv):
2981         Handle ivs with nonconstant step.
2982         (iv_ca_set_remove_invariants, iv_ca_set_add_invariants): New functions.
2983         (iv_ca_set_no_cp, iv_ca_set_cp): Handle cand->depends_on.
2984         (create_new_iv): Unshare the step before passing it to create_iv.
2985         (free_loop_data): Free cand->depends_on.
2986         (build_addr_strip_iref): New function.
2987         (find_interesting_uses_address): Use build_addr_strip_iref.
2988         (strip_offset_1): Split the recursive part from strip_offset.
2989         Strip constant offset component_refs and array_refs.
2990         (strip_offset): Split the recursive part to strip_offset_1.
2991         (add_address_candidates): Removed.
2992         (add_derived_ivs_candidates): Do not use add_address_candidates.
2993         (add_iv_value_candidates): Add candidates with stripped constant
2994         offset.  Consider all candidates with initial value 0 important.
2995         (struct affine_tree_combination): New.
2996         (aff_combination_const, aff_combination_elt, aff_combination_scale,
2997         aff_combination_add_elt, aff_combination_add,
2998         tree_to_aff_combination, add_elt_to_tree, aff_combination_to_tree,
2999         fold_affine_sum): New functions.
3000         (get_computation_at): Use fold_affine_sum.
3001         * tree-ssa-loop-manip.c (create_iv): Handle ivs with nonconstant step.
3002         * tree-ssa-loop-niter.c (number_of_iterations_exit): Add argument
3003         to simple_iv call.
3004
3005 2005-04-30  Michael Matz  <matz@suse.de>
3006
3007         * config/i386/i386.md (movmemsi): Also active when
3008         TARGET_INLINE_ALL_STRINGOPS.
3009
3010 2005-04-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
3011
3012         PR bootstrap/20633
3013         * config/freebsd-spec.h (FBSD_CPP_SPEC): Add %(cpp_arch).
3014
3015 2005-04-30  Paul Brook  <paul@codesourcery.com>
3016
3017         * config/arm/bpabi.h (RENAME_LIBRARY_SET): Always use .thumb_set in
3018         thumb mode.
3019         * config/arm/ieee754-df.S: Use __INTERWORKING_STUBS__.
3020         * config/arm/ieee754-sf.S: Ditto.
3021         * config/arm/lib1funcs.asm: Define and use __INTERWORKING_STUBS__.
3022         (FUNC_ALIAS): Use .thumb_set for thumb routines.
3023
3024 2005-04-30  Kazu Hirata  <kazu@cs.umass.edu>
3025
3026         * tree-ssanames.c: Fix a comment typo.
3027         * doc/options.texi: Fix a typo.
3028
3029 2005-04-30  Nathan Sidwell  <nathan@codesourcery.com>
3030
3031         * config/h8300/h8300.c (byte_reg): Use gcc_assert and
3032         gcc_unreachable as appropriate.
3033         (split_adds_subs, cond_string, print_operand,
3034         h8300_initial_elimination_offset, h8300_classify_operand,
3035         h8300_unary_length, h8300_short_immediate_length,
3036         h8300_bitfield_length, h8300_binary_length,
3037         h8300_insn_length_from_table, compute_mov_length, output_plussi,
3038         compute_plussi_length, compute_plussi_cc, output_logical_op,
3039         compute_logical_op_length, compute_logical_op_cc,
3040         output_h8sx_shift, get_shift_alg, h8300_shift_needs_scratch_p,
3041         output_a_shift, compute_a_shift_length, compute_a_shift_cc,
3042         output_a_rotate, compute_a_rotate_length, fix_bit_operand,
3043         h8300_regs_ok_for_stm): Likewise.
3044         * config/h8300/h8300.md (*movsi_h8300, *movsf_h8300,
3045         monitor_prologue): Likewise.
3046
3047 2005-04-30  Kazu Hirata  <kazu@cs.umass.edu>
3048
3049         * loop-invariant.c (invariants, create_new_invariant,
3050         get_inv_cost, best_gain_for_invariant,
3051         find_invariants_to_move, move_invariants,
3052         init_inv_motion_data, free_inv_motion_data): Use VEC instead
3053         of VARRAY.
3054
3055 2005-04-29  Richard Henderson  <rth@redhat.com>
3056
3057         * function.c (instantiate_decls): Remove valid_only argument.
3058         (instantiate_decls_1, instantiate_decl): Likewise.
3059         (instantiate_virtual_regs_1): Delete.
3060         (instantiate_virtual_regs_lossage): Delete.
3061         (instantiate_virtual_regs_in_rtx): New.
3062         (safe_insn_predicate): New.
3063         (instantiate_virtual_regs_in_insn): New.
3064         (instantiate_virtual_regs): Update to match all that.  Only run
3065         instantiate_decls once.
3066
3067 2005-04-29  Richard Henderson  <rth@redhat.com>
3068             Daniel Jacobowitz  <dan@codesourcery.com>
3069
3070         * gengtype.c (write_func_for_structure): Split out ...
3071         (output_type_enum): ... new function.  Fix thinko accessing
3072         TYPE_PARAM_STRUCT data.
3073
3074 2005-04-29  Tom Tromey  <tromey@redhat.com>
3075
3076         * tree.c (build_block): Removed unused 'tags' argument.
3077         * tree.h (build_block): Removed argument.
3078
3079 2005-04-29  Michael Matz  <matz@suse.de>
3080
3081         PR rtl-optimization/21144
3082         * postreload.c (reload_cse_move2add): Check for VOIDmode.
3083
3084 2005-04-29  Bob Wilson  <bob.wilson@acm.org>
3085
3086         * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Define to disable
3087         flag_reorder_blocks.
3088
3089 2005-04-28  Kazu Hirata  <kazu@cs.umass.edu>
3090
3091         PR tree-optimization/21030
3092         * tree-vrp.c (adjust_range_with_scev): Do not create invalid
3093         ranges where VR->MAX is smaller than VR->MIN.
3094
3095 2005-04-29  Devang Patel  <dpatel@apple.com>
3096
3097         PR tree-optimization/21272
3098         PR tree-optimization/21266
3099         * tree-if-conv.c (find_phi_replacement_condition): Fix think-o.
3100
3101 2005-04-29  Kazu Hirata  <kazu@cs.umass.edu>
3102
3103         * tree-flow-inline.h: Fix a comment typo.
3104         * doc/tree-ssa.texi: Fix a typo.
3105
3106         * tree-flow-inline.h, tree-ssa-operands.c: Fix comment typos.
3107
3108 2005-04-29  Nathan Sidwell  <nathan@codesourcery.com>
3109
3110         * config/fr30/fr30.c (fr30_expand_prologue): Use gcc_assert and
3111         gcc_unreachable as appropriate.
3112         (fr30_expand_epilogue, fr30_setup_incoming_varargs,
3113         fr30_print_operand, fr30_move_double): Likewise.
3114         * config/fr30/fr30.md (*movsi_internal, *movsf_internal): Likewise.
3115
3116 2005-04-29  Mark Mitchell  <mark@codesourcery.com>
3117
3118         * config/arm/arm.h (ARM_EABI_CTORS_SECTION_OP): Do not define if a
3119         definition has already been provided.
3120         (ARM_EABI_DTORS_SECTION_OP): Likewise.
3121         * config/arm/symbian.h (ARM_EABI_CTORS_SECTION_OP): Define.
3122         (ARM_EABI_DTORS_SECTION_OP): Likewise.
3123
3124 2005-04-29  Jim Tison  <jtison@us.ibm.com>
3125
3126         * config/s390/s390.md ("prologue_tpf", "epilogue_tpf"): Alter
3127         trace hooks calls to improve performance.
3128
3129 2005-04-29  Julian Brown  <julian@codesourcery.com>
3130             Mark Mitchell  <mark@codesourcery.com>
3131             Paul Brook  <paul@codesourcery.com>
3132
3133         * crtstuff.c: Handle targets that use .init_array.
3134         * function.c (HAS_INIT_SECTION): Do not define. Instead, make sure
3135         that INVOKE__main is set correctly.
3136         (expand_main_function): Test INVOKE__main.
3137         * libgcc2.c: Do not define __main when using .init_array.
3138         * config/arm/arm.c (arm_elf_asm_constructor): New function.
3139         * config/arm/arm.h (CTORS_SECTION_ASM_OP): Define, with specialized
3140         libgcc version.
3141         (DTORS_SECTION_ASM_OP): Likewise.
3142         (CTOR_LIST_BEGIN): Define specially when in libgcc.
3143         (CTOR_LIST_END): Likewise.
3144         (DTOR_LIST_BEGIN): Likewise.
3145         (DTOR_LIST_END): Likewise.
3146         * config/arm/bpapi.h (INIT_SECTION_ASM_OP): Do not define it.
3147         (FINI_SECTION_ASM_OP): Likewise.
3148         (INIT_ARRAY_SECTION_ASM_OP): Define.
3149         (FINI_ARRAY_SECTION_ASM_OP): Likewise.
3150         * config/arm/elf.h (TARGET_ASM_CONSTRUCTOR): Define.
3151         (SUPPORTS_INIT_PRIORITY): Evaluate to false for EABI based targets.
3152         * doc/tm.texi (INIT_ARRAY_SECTION_ASM_OP): Document.
3153         (FINI_ARRAY_SECTION_ASM_OP): Likewise.
3154
3155 2005-04-29  Nathan Sidwell  <nathan@codesourcery.com>
3156
3157         * config/m68k/m68k.c (m68k_initial_elimination_offset): Use
3158         gcc_assert and gcc_unreachable as appropriate.
3159         (output_dbcc_and_branch, output_scc_di, legitimize_pic_address,
3160         const_int_cost, output_move_const_into_data_reg,
3161         output_move_qimode, output_move_double, find_addr_reg,
3162         print_operand, print_operand_address): Likewise.
3163         * config/m68k/m68k.md (adddi3, subdi3, negsf2, negdf2, abssf2,
3164         absdf2, sordered, sunordered, suneq, sunge, sungt, sunle, sunlt,
3165         sltgt, bordered, bunordered, buneq, bunge, bungt, bunle, bunlt,
3166         bltgt, *bordered_rev, *bunordered_rev, *buneq_rev, *bunge_rev,
3167         *bunle_rev, *bunlt_rev, *bltgt_rev, negxf2, absxf2,
3168         conditional_trap): Likewise.
3169         * config/m68k/m68kelf.h (ASM_OUTPUT_ALIGN): Remove unreachable code.
3170
3171 2005-04-29  Nathan Sidwell  <nathan@codesourcery.com>
3172
3173         * config/xtensa/xtensa.c (gen_int_relational): Use gcc_assert and
3174         gcc_unreachable as appropriate.
3175         (gen_conditional_move, xtensa_split_operand_pair,
3176         xtensa_split_operand_pair, xtensa_copy_incoming_a7,
3177         xtensa_copy_incoming_a7, xtensa_copy_incoming_a7,
3178         xtensa_copy_incoming_a7, xtensa_output_literal,
3179         xtensa_output_literal, xtensa_output_literal): Likewise.
3180         * config/xtensa/xtensa.h (INITIAL_ELIMINATION_OFFSET): Likewise.
3181         * config/xtensa/xtensa.md (*btrue, *bfalse, *ubtrue, *ubfalse,
3182         *bittrue, *bitfalse, *masktrue, *maskfalse, movsicc_internal0,
3183         movsicc_internal1, movsfcc_internal0,
3184         movsfcc_internal1): Likewise.
3185
3186 2005-04-28  James E Wilson  <wilson@specifixinc.com>
3187
3188         * config/i386/i386.h (HI_REGISTER_NAMES): Fix typos in comment.
3189         (ADDITIONAL_REGISTER_NAMES): Delete obsolete mmx register entries.
3190
3191 2005-04-28  DJ Delorie  <dj@redhat.com>
3192
3193         * opt-functions.awk (var_set): Emit proper initializer for
3194         non-target bitfields.
3195
3196 2005-04-28  Devang Patel  <dpatel@apple.com>
3197
3198         * dbxout.c (have_used_extensions): Remove.
3199         (dbxout_type_fileds, dbxout_type, dbxout_symbol): Remove use of
3200         have_used_extensions.
3201
3202 2005-04-28  James E Wilson  <wilson@specifixinc.com>
3203
3204         * doc/install.texi: Update -enable-languages info.  Correct path to
3205         html docs.
3206
3207 2005-04-28  DJ Delorie  <dj@redhat.com>
3208
3209         * optc-gen.awk (END): Make sure no variable is defined more
3210         than once.
3211         * opth-gen.awk (END): Allocate bits on a per-variable basis.
3212         Allow for bitfield variables other than target_flags.
3213         * doc/options.text (Mask): Document that you may specify a
3214         variable other than target_flags.
3215
3216 2005-04-28  Martin Koegler <mkoegler@auto.tuwien.ac.at>
3217
3218         PR rtl-optimization/18877
3219         * reload.c (decompose) <case REG, case SUBREG>: Handle pseudo reg
3220         number in val.start.
3221
3222 2005-04-28  David Edelsohn  <edelsohn@gnu.org>
3223
3224         PR target/20813
3225         * config/rs6000/aix43.h (SUBSUBTARGET_SWITCHES, aix64): Add
3226         MASK_PPC_GFXOPT.
3227         * config/rs6000/aix51.h (SUBSUBTARGET_SWITCHES, aix64): Same.
3228         * config/rs6000/aix52.h (SUBSUBTARGET_SWITCHES, aix64): Same.
3229         * config/rs6000/sysv4.h (SUBTARGET_SWITCHES, 64): Same.
3230
3231 2005-04-28  Richard Earnshaw  <richard.earnshaw@arm.com>
3232
3233         * arm.c (legitimize_pic_address): Fix sense of assertion test for
3234         creating pseudos when the base offset is too large.
3235
3236 2005-04-28  Kazu Hirata  <kazu@cs.umass.edu>
3237
3238         * global.c (earlyclobber_regclass): Change the type to
3239         VEC(int,heap).
3240         (check_earlyclobber): Update uses of earlyclobber_regclass.
3241         (mark_reg_use_for_earlyclobber): Likewise.
3242         (calculate_local_reg_bb_info): Allocate and free
3243         earlyclobber_regclass using the VEC API.
3244
3245 2005-04-28  Nathan Sidwell  <nathan@codesourcery.com>
3246
3247         * tree-ssa-alias.c (push_fields_onto_fieldstack): Remove bogus
3248         assert.
3249
3250 2005-04-28  Kazu Hirata  <kazu@cs.umass.edu>
3251
3252         * modulo-sched.c, tree-stdarg.c: Use targetm.foo instead of
3253         (*targetm.foo).
3254
3255         * config.gcc: Obsolete c4x-* and tic4x-*.
3256
3257         * tree.h (edge_def): Remove.
3258
3259         * bt-load.c, cfgexpand.c, dwarf2out.c, emit-rtl.c, expr.c,
3260         function.c, global.c, lcm.c, loop-invariant.c, optabs.c,
3261         reorg.c, resource.c, tree-ssa-loop-ivopts.c, value-prof.c: Use
3262         JUMP_P, LABEL_P, REG_P, MEM_P, NONJUMP_INSN_P, and INSN_P
3263         where appropriate.
3264
3265         * attribs.c, c-pragma.c, caller-save.c, cfghooks.h,
3266         coverage.c, cselib.h, domwalk.c, domwalk.h, errors.c,
3267         errors.h, gcov-dump.c, gcov-io.c, gcov-io.h, gen-protos.c,
3268         genattrtab.h, genextract.c, gthr-win32.h, insn-notes.def,
3269         integrate.c, lambda-mat.c, lambda.h, libgcov.c, local-alloc.c,
3270         machmode.def, mips-tfile.c, params.c, pretty-print.c,
3271         print-rtl.c, protoize.c, regmove.c, sched-vis.c, tree-chrec.h,
3272         tree-data-ref.h, vec.h, config/darwin-c.c, config/sol2-c.c,
3273         config/sol2.c, config/arm/arm-cores.def, config/arm/cirrus.md,
3274         config/arm/symbian.h, config/c4x/c4x.c, config/c4x/c4x.h,
3275         config/i386/cygming.h, config/i386/djgpp.h,
3276         config/i386/lynx.h, config/i386/netware.c,
3277         config/i386/winnt.c, config/ia64/ia64-c.c,
3278         config/iq2000/iq2000.c, config/m32r/little.h,
3279         config/m68k/m68k-protos.h, config/m68k/m68k.h,
3280         config/m68k/m68k.md, config/mcore/mcore.c,
3281         config/mcore/mcore.h, config/mmix/mmix.c, config/mmix/mmix.md,
3282         config/mn10300/mn10300-protos.h, config/mn10300/mn10300.c,
3283         config/mn10300/mn10300.h, config/ns32k/netbsd.h,
3284         config/ns32k/ns32k.c, config/ns32k/ns32k.h,
3285         config/pa/pa-hpux11.h, config/pdp11/pdp11.c,
3286         config/pdp11/pdp11.h, config/rs6000/darwin.h,
3287         config/rs6000/default64.h, config/rs6000/rs6000-c.c,
3288         config/s390/2064.md, config/s390/2084.md,
3289         config/s390/s390-modes.def, config/s390/s390-protos.h,
3290         config/s390/tpf.h, config/sh/sh.h, config/sh/symbian.c,
3291         config/stormy16/stormy16.c, config/vax/vax-protos.h,
3292         config/vax/vax.c, config/vax/vax.h,
3293         config/xtensa/lib1funcs.asm, config/xtensa/xtensa.md: Update
3294         copyright.
3295
3296 2005-04-28  Joseph S. Myers  <joseph@codesourcery.com>
3297
3298         * c-typeck.c (build_compound_expr): Correct logic in last change.
3299
3300 2005-04-27  James E. Wilson  <wilson@specifixinc.com>
3301
3302         * config/ia64/ia64.c (update_set_flags): Delete ppred and pcond
3303         parameters.  Replace conditional move code with assert checking for
3304         ar.lc.  Delete obsolete comments.
3305         (set_src_needs_barrier): Delete cond parameter, and code using it.
3306         (rtx_needs_barrier): Delete initialization of cond.  Fix typo in
3307         assert checking for PR_REGS.  Fix calls to update_set_flags and
3308         set_src_needs_barrier.
3309         (group_barrier_needed): Renamed from group_barrier_needed_p.  Fix all
3310         callers.  Rewrite explanatory comment before the function.
3311         (safe_group_barrier_needed): Renamed from safe_group_barrier_needed_p.
3312         Fix all callers.
3313
3314 2005-04-27  Mike Stump  <mrs@apple.com>
3315
3316         * doc/cpp.texi: gcc now implements universal character names.
3317
3318 2005-04-27  Joseph S. Myers  <joseph@codesourcery.com>
3319
3320         PR c/21159
3321         * c-typeck.c (build_compound_expr): Don't warn for left-hand side
3322         being a compound expression whose right-hand side is cast to void.
3323
3324 2005-04-27  Caroline Tice  <ctice@apple.com>
3325
3326         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
3327         Remove targetm.have_named_sections test.
3328         (fix_edges_for_rarely_executed_code): Likewise.
3329         (insert_section_boundary_note): Likewise.
3330         (reorder_basic_blocks): Check partitioning flag before calling
3331         verify_hot_cold_block_grouping.
3332         * dbxout.c (dbxout_function_end): Get hot/cold section labels from
3333         the function struct rather than global variables.
3334         * dwarf2out.c (COLD_TEXT_SECTION_LABEL): New macro.
3335         (COLD_END_LABEL): Likewise
3336         (cold_text_section_label): New static global variable.
3337         (cold_end_label): Likewise.
3338         (dwarf2out_switch_text_section): Get hot/cold section labels from
3339         the function struct rather than global variables; test to make sure
3340         cfun is defined.
3341         (output_aranges): Use cold_text_section_label and cold_end_label;
3342         check partitioning flag before putting out delta.
3343         (output_ranges): Remove incorrect code attempting to use
3344         hot/cold labels.
3345         (output_line_info): Get cold section label from function struct; test
3346         to make sure cfun is defined.
3347         (add_location_or_const_value_attribute): Likewise.
3348         (dwarf2out_var_location): Likewise.
3349         (dwarf2out_init): Generate cold_text_section_label and cold_end_label;
3350         write out cold_text_section_label if partition flag is set.
3351         (dwarf2out_finish): Write out cold_end_label if partition flag is set;
3352         * function.h (struct function): Add new fields to point to hot/cold
3353         section labels: hot_section_label, cold_section_label,
3354         hot_section_end_label and cold_section_end_label; also add new field
3355         for cold text section name, unlikely_text_section_name.
3356         * opts.c (decode_options): Turn off partitioning flag if
3357         !targetm.have_named_sections.
3358         * output.h (hot_section_label): Remove.
3359         (hot_section_end_label): Remove.
3360         (cold_section_end_label): Remove.
3361         (unlikely_section_label): Remove.
3362         (unlikely_text_section_name): Remove.
3363         * passes.c (rest_of_handle_final):  Remove extra blank line.
3364         * varasm.c (unlikely_section_label): Remove.
3365         (hot_section_label): Remove.
3366         (hot_section_end_label): Remove.
3367         (cold_section_end_label): Remove.
3368         (unlikely_text_section_name):  Remove.
3369         (initialize_cold_section_name): Modify to call
3370         targetm.strip_name_encoding; to store cold section name in current
3371         function struct, if it exists; and to only use the decl_section_name
3372         if flag_named_sections is true.
3373         (unlikely_text_section): Modify to get section name out of current
3374         function struct, if there is one; otherwise build it from
3375         UNLIKELY_EXECUTED_TEXT_SECTION_NAME.
3376         (in_unlikely_text_section): Likewise.
3377         (named_section): Modify to get/put cold section name in current function
3378         struct, if there is one.
3379         (function_section):  Change 'bool unlikely' to 'int reloc'; check
3380         targetm.have_named_sections before calling named_section.
3381         (current_function_section): Likewise.
3382         (assemble_start_function): Modify to get/put unlikely_text_section_name
3383         in current function struct; modify to get hot/cold section labels
3384         from function struct; initialize labels using
3385         ASM_GENERATE_INTERNAL_LABEL;
3386         test partitioning flag before writing out hot section label.
3387         (assemble_end_function): Test partitioning flag before writing out
3388         hot/cold section labels.
3389         (default_section_type_flags_1):  Get cold text section name from
3390         function struct if there is one; Set flags correctly for
3391         cold text section if there is not a current function struct.
3392
3393 2005-04-27  Richard Guenther  <rguenth@gcc.gnu.org>
3394
3395         * tree-ssa-propagate.c (set_rhs): Revert last change.
3396
3397 2005-04-27  Steve Ellcey  <sje@cup.hp.com>
3398
3399         * explow.c (convert_memory_address): Add gcc_assert.
3400
3401 2005-04-27  Mark Mitchell  <mark@codesourcery.com>
3402
3403         * configure.ac: Check for ld --sysroot support.
3404         * gcc.c: Document %R specifier for specs.
3405         (SYSROOT_SPEC): New macro.
3406         (sysroot_spec): New variable.
3407         (static_specs): Add sysroot_spec.
3408         (main): Pass the sysroot spec to the linker if appropriate.
3409         * configure: Regenerated.
3410         * config.in: Likewise.
3411
3412 2005-04-27  Richard Guenther  <rguenth@gcc.gnu.org>
3413
3414         * fold-const.c (fold_binary): Use build_fold_addr_expr
3415         for address calculation and INDIRECT_REF handling.
3416
3417 2005-04-27  Andrew Haley  <aph@redhat.com>
3418
3419         * postreload-gcse.c (hash_scan_set): Remove bogus assertion.
3420
3421 2005-04-27  Nathan Sidwell  <nathan@codesourcery.com>
3422
3423         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Reserve arm frame
3424         pointer when thumb backtracing is on.
3425
3426         * config/fp-bit.c (abort): Revert change.
3427
3428 2005-04-27  Ian Lance Taylor  <ian@airs.com>
3429
3430         * c-semantics.c (add_stmt): Don't test STATEMENT_CODE_P.
3431
3432 2005-04-27  Kazu Hirata  <kazu@cs.umass.edu>
3433
3434         * tree-ssa-dce.c: Fix a comment typo.
3435
3436 2005-04-27  David S. Miller  <davem@davemloft.net>
3437
3438         * explow.c (allocate_dynamic_stack_space SETJMP_VIA_SAVE_AREA):
3439         Kill setjmpless_size.  current_function_calls_setjmp is completely
3440         computed when we are called, so just use the optimized size value
3441         instead of using REG_SAVE_AREA notes.
3442         (optimize_save_area_alloca): Delete....
3443         * rtl.h (optimize_save_area_alloca): Likewise...
3444         * passes.c (rest_of_compilation): and don't call it any more.
3445         * reg-notes.def (SAVE_AREA): Delete.
3446
3447 2005-04-27  Nathan Sidwell  <nathan@codesourcery.com>
3448
3449         * config/fp-bit.c (abort): Add noreturn attribute.
3450
3451         * config/avr/avr.c (avr_naked_function_p): Use gcc_assert and
3452         gcc_unreachable as appropriate.
3453         (ptrreg_to_str, cond_string, avr_normalize_condition): Likewise.
3454         * config/avr/avr.h (ASM_OUTPUT_REG_PUSH,
3455         ASM_OUTPUT_REG_POP): Likewise.
3456
3457 2005-04-27  Paolo Bonzini  <bonzini@gnu.org>
3458
3459         * tree-complex.c (expand_vector_operations_1): Do not build
3460         VIEW_CONVERT_EXPR's for the lhs.
3461
3462 2005-04-27  Nathan Sidwell  <nathan@codesourcery.com>
3463
3464         * config/pa/pa.h (PRINT_OPERAND_ADDRESS): Use gcc_assert, remove
3465         unnecessary noncanonical RTL handling.
3466         * config/pa/pa64-linux.h (INITIAL_ELIMINATION_OFFSET): Use
3467         gcc_assert and gcc_unreachable.
3468
3469         * config/arm/arm.h (ARM_PRINT_OPERAND_ADDRESS): Use gcc_assert and
3470         gcc_unreachable as appropriate.
3471         (THUMB_PRINT_OPERAND_ADDRESS): Likewise.
3472         * config/arm/arm.c (arm_override_options, arm_compute_func_type,
3473         use_return_insn, const_ok_for_op, arm_gen_constant,
3474         arm_canonicalize_comparison, legitimize_pic_address,
3475         thumb_find_work_register, arm_load_pic_register, arm_rtx_costs_1,
3476         arm_cirrus_insn_p, cirrus_reorg, minmax_code,
3477         load_multiple_sequence, emit_ldm_seq, store_multiple_sequence,
3478         emit_stm_seq, arm_gen_movmemqi, arm_select_dominance_cc_mode,
3479         arm_select_cc_mode, arm_reload_in_hi, arm_reload_out_hi,
3480         move_minipool_fix_forward_ref, move_minipool_fix_backward_ref,
3481         dump_minipool, create_fix_barrier, push_minipool_fix, arm_reorg,
3482         fp_immediate_constant, fp_const_from_val, vfp_output_fstmx,
3483         output_call, output_mov_long_double_fpa_from_arm,
3484         output_mov_long_double_arm_from_fpa,
3485         output_mov_double_fpa_from_arm, output_mov_double_arm_from_fpa,
3486         output_move_double, arithmetic_instr, shift_op, int_log2,
3487         output_return_instruction, arm_output_function_prologue,
3488         arm_output_epilogue, arm_output_function_epilogue,
3489         emit_multi_reg_push, arm_get_frame_offsets,
3490         arm_compute_initial_elimination_offset, arm_expand_prologue,
3491         arm_print_operand, arm_assemble_integer, get_arm_condition_code,
3492         arm_final_prescan_insn, arm_init_iwmmxt_builtins,
3493         arm_expand_binop_builtin, thumb_pushpop, thumb_far_jump_used_p,
3494         thumb_compute_initial_elimination_offset,
3495         thumb_output_function_prologue, thumb_load_double_from_address,
3496         thumb_output_move_mem_multiple, thumb_reload_out_hi,
3497         arm_emit_vector_const, arm_dbx_register_number): Likewise.
3498         * config/arm/pe.c (arm_mark_dllexport, arm_mark_dllimport): Likewise.
3499         * config/arm/arm.md (thumb_extendhisi2,
3500         *thumb_extendhisi2_insn_v6, *thumb_extendqisi2,
3501         *thumb_extendqisi2_v6, movhi, *thumb_movhi_insn,
3502         thumb_movhi_clobber, movqi, *arm_buneq, *arm_bltgt,
3503         *arm_buneq_reversed, *arm_bltgt_reversed, suneq, sltgt): Likewise.
3504         * config/arm/cirrus.md (*cirrus_arm_movdi,
3505         *cirrus_movdf_hard_insn): Likewise.
3506         * config/arm/vfp.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
3507
3508 2005-04-27  Kazu Hirata  <kazu@cs.umass.edu>
3509
3510         * tree-flow.h (ssa_names): Change the type to VEC(tree,gc).
3511         (num_ssa_names): Use VEC_length.
3512         (ssa_names): Use VEC_index.
3513         * tree-ssanames.c (ssa_names): Change the type to
3514         VEC(tree,gc).
3515         (init_ssanames, fini_ssa_names, make_ssanames,
3516         release_ssa_name): Update uses of ssa_names.
3517
3518         * dojump.c, emit-rtl.c, expmed.c, expr.c, stmt.c, stor-layout.c:
3519         Use fold_buildN instead of fold (buildN (...)).
3520
3521 2005-04-27  Devang Patel <dpatel@apple.com>
3522
3523         * dbxout.c (dbxout_type): Check use_gnu_debug_info_extensions.
3524
3525 2005-04-27  Matt Thomas <matt@3am-software.com>
3526             Jan-Benedict Glaw <jbglaw@microdata-pos.de>
3527
3528         * config/vax/vax.c (vax_rtx_costs): Whitespace cleanup.
3529         (vax_output_mi_thunk): Ditto.
3530         (vax_notice_cc_update): Ditto.
3531         (INDEX_REGISTER_P): Add trailing \.
3532         (BASE_REGISTER_P): Add trailing \.
3533         (legitimate_address_p): Whitespace cleanup.  Remove trailing \.
3534
3535 2005-04-27  Richard Guenther  <rguenth@gcc.gnu.org>
3536
3537         * tree-ssa-propagate.c (set_rhs): Check operand of
3538         ADDR_EXPR for gimpliness, too.
3539
3540 2005-04-27  Kazu Hirata  <kazu@cs.umass.edu>
3541
3542         * tree-ssa-pre.c: Fix a comment typo.
3543
3544 2005-04-27  Zdenek Dvorak  <dvorakz@suse.cz>
3545
3546         PR tree-optimization/21171
3547         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Do not
3548         record address uses if the reference is volatile.
3549
3550 2004-04-27  Paolo Bonzini  <bonzini@gnu.org>
3551
3552         * tree-complex.c (expand_vector_operation): New, extracted from
3553         expand_vector_operations_1.
3554         (tree_vec_extract): Build a NOP_EXPR.
3555         (expand_vec_parallel): Do not care about returning the correct type.
3556         (expand_vector_operations_1): Call expand_vector_operation.
3557         Build the VIEW_CONVERT_EXPR on the left side of MODIFY_EXPRs.
3558
3559         * tree-complex.c (gate_expand_vector_operations): New.
3560         (pass_lower_vector_ssa): Use it.
3561         * tree-optimize.c (init_tree_optimization_passes): Include
3562         pass_lower_vector_ssa.
3563         * tree-vect-transform.c (vect_min_worthwhile_factor): New.
3564         (vectorizable_operation): Use it.
3565         * tree-vectorizer.c (get_vectype_for_scalar_type): Accept
3566         integer modes for the vector type.
3567
3568         * defaults.h (UNITS_PER_SIMD_WORD): Default to UNITS_PER_WORD.
3569         * tree-vect-analyze.c (vect_enhance_data_refs_alignment):
3570         Do not cope with UNITS_PER_SIMD_WORD == 0.
3571         * tree-vectorizer.c (get_vectype_for_scalar_type): Check
3572         if the scalar type is not bigger than UNITS_PER_SIMD_WORD.
3573         (vectorize_loops): Do not check that UNITS_PER_SIMD_WORD > 0.
3574         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Default to UNITS_PER_WORD.
3575         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
3576         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
3577         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
3578
3579         * config/alpha/alpha.h (UNITS_PER_SIMD_WORD): Remove.
3580         * config/bfin/bfin.h (UNITS_PER_SIMD_WORD): Remove.
3581         * config/ia64/ia64.h (UNITS_PER_SIMD_WORD): Remove.
3582
3583         * doc/tm.texi (UNITS_PER_WORD): Rephrase more accurately.
3584         (UNITS_PER_SIMD_WORD): New.
3585
3586 2005-04-27  Nathan Sidwell  <nathan@codesourcery.com>
3587
3588         * config/ia64/ia64.c (ia64_encode_addr_area): Use gcc_assert and
3589         gcc_unreachable as appropriate.
3590         (ia64_expand_load_address, ia64_expand_tls_address,
3591         ia64_split_tmode, ia64_split_tmode_move, ia64_expand_compare,
3592         ia64_expand_vecint_compare, ia64_expand_vecint_minmax,
3593         next_scratch_gr_reg, ia64_initial_elimination_offset,
3594         ia64_expand_prologue, ia64_expand_epilogue,
3595         ia64_output_dwarf_dtprel, ia64_print_operand,
3596         ia64_register_move_cost, first_instruction, rws_access_regno,
3597         update_set_flags, rtx_needs_barrier, group_barrier_needed_p,
3598         ia64_sched_init, ia64_variable_issue,
3599         ia64_first_cycle_multipass_dfs_lookahead_guard,
3600         ia64_dfa_new_cycle, issue_nops_and_insn, get_template, bundling,
3601         ia64_st_address_bypass_p, ia64_ld_address_bypass_p, process_set,
3602         process_for_unwind_directive, ia64_hpux_file_end): Likewise.
3603         * config/ia64/ia64.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise.
3604         * config/ia64/ia64.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
3605         * config/ia64/predicates.md (got_symbolic_operand,
3606         sdata_symbolic_operand): Likewise.
3607         * config/ia64/vect.md (vcondv2sf): Likewise.
3608
3609 2005-04-27  Matt Thomas <matt@3am-software.com>
3610
3611         * config/vax/vax.c (legitimate_constant_address_p): New.  Formerly
3612         CONSTANT_ADDRESS_P in config/vax/vax.h
3613         (legitimate_constant_p): Added.  Formerly CONSTANT_P in vax.h.
3614         (INDEX_REGISTER_P): New.
3615         (BASE_REGISTER_P): New.
3616         (indirectable_constant_address_p): New.  Adapted from
3617         INDIRECTABLE_CONSTANT_ADDRESS_P in vax.h. Use SYMBOL_REF_LOCAL_P.
3618         (indirectable_address_p): New.  Adapted from
3619         INDIRECTABLE_ADDRESS_P in vax.h.
3620         (nonindexed_address_p): New.  Adapted from
3621         GO_IF_NONINDEXED_ADDRESS in vax.h.
3622         (index_temp_p): New.  Adapted from INDEX_TERM_P in vax.h.
3623         (reg_plus_index_p): New.  Adapted from GO_IF_REG_PLUS_INDEX in vax.h.
3624         (legitimate_address_p): New.  Adapted from
3625         GO_IF_LEGITIMATE_ADDRESS in vax.h.
3626         (vax_mode_dependent_address_p): New.  Adapted from
3627         GO_IF_MODE_DEPENDENT_ADDRESS in vax.h.
3628         * config/vax/vax.h (CONSTANT_ADDRESS_P): Use
3629         legitimate_constant_address_p.
3630         (CONSTANT_P): Use legitimate_constant_p.
3631         (INDIRECTABLE_CONSTANT_ADDRESS_P): Removed.
3632         (INDIRECTABLE_ADDRESS_P): Removed.
3633         (GO_IF_NONINDEXED_ADDRESS): Removed.
3634         (INDEX_TEMP_P): Removed.
3635         (GO_IF_REG_PLUS_INDEX): Removed.
3636         (GO_IF_LEGITIMATE_ADDRESS): Use legitimate_address_p. Two
3637         definitions, depending on whether REG_OK_STRICT is defined.
3638         (GO_IF_MODE_DEPENDENT_ADDRESS): Use vax_mode_dependent_address_p.
3639         Two definitions, depending on whether REG_OK_STRICT is defined.
3640         * config/vax/vax-protos.h (legitimate_constant_address_p): Prototype
3641         added.
3642         (legitimate_constant_p): Prototype added.
3643         (legitimate_address_p): Prototype added.
3644         (vax_mode_dependent_address_p): Prototype added.
3645
3646 2005-04-27  Kazu Hirata  <kazu@cs.umass.edu>
3647
3648         * tree.h (phi_arg_d): Expand a comment in phi_arg_d.
3649
3650 2005-04-27  Joseph S. Myers  <joseph@codesourcery.com>
3651
3652         PR c/21213
3653         * c-decl.c (finish_struct): Don't dereference NULL TYPE_FIELDS of
3654         transparent union.
3655
3656 2005-04-27  Joseph S. Myers  <joseph@codesourcery.com>
3657
3658         PR c/20740
3659         * c-format.c (init_dynamic_asm_fprintf_info): Give errors, not
3660         assertion failures, if __gcc_host_wide_int__ is not properly
3661         defined.
3662         (init_dynamic_diag_info): Give errors, not assertion failures, if
3663         location_t, tree or __gcc_host_wide_int__ are not properly
3664         defined.
3665
3666 2005-04-26  Kazu Hirata  <kazu@cs.umass.edu>
3667
3668         * tree-ssa-loop-ivopts.c (ivopts_data, decl_rtl_to_reset,
3669         n_iv_uses, iv_use, n_iv_cands, iv_cand,
3670         tree_ssa_iv_optimize_init, record_use, add_candidate_1,
3671         prepare_decl_rtl, free_loop_data,
3672         tree_ssa_iv_optimize_finalize): Use the VEC API instead of
3673         VARRAY.
3674
3675         * tree.h (tree_phi_node): Add a comment about the order of PHI
3676         arguments.
3677
3678 2005-04-26  Paul Brook  <paul@codesourcery.com>
3679
3680         * config/arm/arm.md (thumb_mulsi3): Use two-operand assembly form.
3681
3682 2005-04-26  Nathan Sidwell  <nathan@codesourcery.com>
3683
3684         * config/mips.mips.c (mips_legitimize_tls_address): Use
3685         gcc_unreachable.
3686
3687         * config/mmix/mmix.c (mmix_assemble_integer): Use gcc_assert.
3688         * config/mmix/crti.asm (_init): Reword comment to avoid 'abort'.
3689         * config/mmix/mmix.md (nonlocal_goto_receiver): Likewise.
3690
3691         * config/sparc/sparc.h (enum reg_class): Reword comment to avoid
3692         'abort'.
3693
3694 2005-04-26  Jeff Law  <law@redhat.com>
3695
3696         * tree-flow-inline.h (op_iter_next_must_and_may_def): New.
3697         (op_iter_init_must_and_may_def): Likewise.
3698         (unmodifiable_var_p): Move to a later point in the file.
3699         * tree-ssa-operands.h (FOR_EACH_SSA_MUST_AND_MAY_DEF_OPERAND): New.
3700         * tree-ssa-dse.c (need_imm_uses_for): Remove, no longer needed.
3701         (dse_record_phis): Directly check for virtual operands rather than
3702         using need_imm_uses_for.
3703         (dse_optimize_stmt): Handle V_MUST_DEF operands.  Handle case where
3704         store has multiple V_{MAY,MUST}_DEF operands.
3705
3706 2005-04-26  Andrew MacLeod  <amacleod@redhat.com>
3707
3708         * tree-cfg.c (bsi_replace): Delink immediate uses for the original
3709         stmt.
3710
3711 2005-04-26  Kazu Hirata  <kazu@cs.umass.edu>
3712
3713         * tree-cfg.c (lv_adjust_loop_header_phi): Speed up moving a
3714         call to find_edge outside a loop to go through a PHI chain.
3715
3716 2004-04-26  Richard Guenther  <rguenth@gcc.gnu.org>
3717
3718         PR tree-optimization/17598
3719         * fold-const.c (fold_binary): Fold comparisons of addresses
3720         of COMPONENT_REFs which reference the same field to
3721         comparisons of the addresses of the base objects.
3722
3723 2005-04-26  Julian Brown  <julian@codesourcery.com>
3724
3725         * config/arm/arm.c (arm_return_in_msb): New function.
3726         (arm_must_pass_in_stack): New function.
3727         (TARGET_RETURN_IN_MSB): Define target hook.
3728         (TARGET_MUST_PASS_IN_STACK): Define target hook.
3729         (arm_function_value): Pad small aggregate return.
3730         (arm_pad_arg_upward): New function.
3731         (arm_pad_reg_upward): New function.
3732         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Include complex values.
3733         (FUNCTION_ARG_PADDING): Define macro.
3734         (BLOCK_REG_PADDING): Define macro.
3735         (PAD_VARARGS_DOWN): Correct padding for AAPCS.
3736         * config/arm/arm-protos.h (arm_pad_arg_upward): Declare function.
3737         (arm_pad_reg_upward): Declare function.
3738
3739 2005-04-26  Kazu Hirata  <kazu@cs.umass.edu>
3740
3741         * basic-block.h (ei_cond): New.
3742         (FOR_EACH_EDGE): Call ei_cond.
3743
3744         PR tree-optimization/21047
3745         * fold-const.c (fold_binary): Abort on ASSERT_EXPR.
3746         (fold): Don't handle ASSERT_EXPR.
3747
3748 2005-04-25  Roger Sayle  <roger@eyesopen.com>
3749
3750         * sched-deps.c (sched_analyze_1): On STACK_REGS targets, x87, treat
3751         all writes to any stack register as a read/write dependency on
3752         FIRST_STACK_REG.
3753         (sched_analyze_2): Likewise, for reads from any stack register.
3754
3755 2005-04-25  Richard Henderson  <rth@redhat.com>
3756
3757         * final.c (output_addr_const): Revert 2005-04-09 change.
3758
3759 2005-04-25  Mike Stump  <mrs@apple.com>
3760
3761         * config/darwin.c (darwin_encode_section_info): Always set
3762         MACHO_SYMBOL_STATIC for all ! TREE_PUBLIC symbols.
3763
3764 2005-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3765
3766         * collect2.c, gcc.c, gcov-dump.c, gcov.c, gen-protos.c,
3767         gensupport.c, protoize.c, toplev.c: Replace calls to
3768         `unlock_stream' with `unlock_std_streams'.
3769
3770 2005-04-25  Devang Patel <dpatel@apple.com>
3771
3772         * dbxout.c (dbxout_type): Emit attribute vector.
3773
3774 2005-04-05  Paul Brook  <paul@codesourcery.com>
3775
3776         * target-def.h (TARGET_CXX_USE_AEABI_ATEXIT): Define.
3777         * target.h (struct gcc_target): Add cxx.use_aeabi_atexit.
3778         * config/arm/arm.c (arm_cxx_atexit_name): New function.
3779         (TARGET_CXX_USE_AEABI_ATEXIT): New macro.
3780         * cp/decl.c (get_atexit_node): Reorder arguments for __aeabi_atexit.
3781         (register_dtor_fn): Likewise.
3782         * doc/tm.texi: Document TARGET_CXX_USE_AEABI_ATEXIT.
3783
3784 2005-04-25  Ian Lance Taylor  <ian@airs.com>
3785
3786         * c-common.def (EXPR_STMT): Remove, moved to C++ frontend.
3787         * c-common.h (EXPR_STMT_EXPR): Don't define.
3788         (c_common_stmt_codes): Don't define.
3789         * c-dump.c (c_dump_tree): Remove EXPR_STMT case.
3790         * c-gimplify.c (gimplify_expr_stmt): Remove.
3791         (c_gimplify_expr): Remove EXPR_STMT case.
3792         * c-objc-common.c (c_objc_common_init): Remove stmt_codes and call
3793         to INIT_STATEMENT_CODES.
3794         * c-pretty-print.c (pp_c_statement): Just call dump_generic_node.
3795
3796 2005-04-25  Jan Hubicka  <jh@suse.cz>
3797
3798         * tree-cfg.c (tree_duplicate_bb): Duplicate EH region too.
3799
3800         * except.c: Include diagnostic.h
3801         (dump_eh_tree, verify_eh_tree): New functions.
3802         * except.h (verify_eh_tree, dump_eh_tree, verify_eh_edges): Declare.
3803         * tree-cfg.c (tree_verify_flow_info): verify eh edges.
3804         (dump_function_to_file): dump eh tree.
3805         * tree-eh.c (mark_eh_edge): New function.
3806         (mark_eh_edge_found_error): New static variable.
3807         (verify_eh_edges): New function.
3808
3809 2005-04-25  Nathan Sidwell  <nathan@codesourcery.com>
3810
3811         * tree-ssa-alias.c (fieldoff_t): Remove.
3812         (fieldoff_s): typedef the structure itself.  Create a vector of
3813         objects.
3814         (push_fields_onto_fieldstack): Return count of fields pushed.
3815         Remove peeling of first field.  Adjust.
3816         (fieldoff_compare): Adjust.
3817         (create_overlap_variables_for): Adjust.
3818
3819 2005-04-25  Joseph S. Myers  <joseph@codesourcery.com>
3820
3821         * doc/invoke.texi (Blackfin Options): Avoid empty @opindex line.
3822
3823 2005-04-25  Joseph S. Myers  <joseph@codesourcery.com>
3824
3825         PR bootstrap/21215
3826         * doc/install.texi: Document correct assembler and linker to use
3827         on i?86-*-solaris2.10.
3828
3829 2005-04-25  Steven Bosscher  <stevenb@suse.de>
3830
3831         Fix PR tree-optimization/21173
3832
3833         * tree-ssa-pre.c (create_expression_by_pieces): Simplify code.
3834         Unshare expression we pass to force_gimple_operand.
3835
3836 2005-04-25  J"orn Rennecke <joern.rennecke@st.com>
3837             Stephen Clarke <stevec@superh.com>
3838             Roger Sayle <roger@eyesopen.com>
3839
3840         PR rtl-optimization/20413
3841         * cfgrtl.c (redirect_edge_and_branch): Use Pmode instead of
3842         VOIDmode for LABEL_REF.
3843         * final.c (shorten_branches): Likewise.
3844         * jump.c (mark_all_labels, redirect_exp_1): Likewise.
3845         * loop.c (reg_dead_after_loop): Likewise.
3846         * varasm.c (decode_addr_const): Likewise.
3847         * doc/rtl.texi: Document mode requirement for LABEL_REF.
3848
3849 2005-04-25  Ralf Corsepius  <ralf.corsepius@rtems.org>
3850
3851         * config.gcc (avr-*-*): Remove redundant "case".
3852
3853 2005-04-25  Kazu Hirata  <kazu@cs.umass.edu>
3854
3855         * tree-vect-analyze.c (vect_mark_relevant): Take
3856         VEC(tree,heap) instead of varray_type as an argument.
3857         (vect_mark_stmts_to_be_vectorized): Change the type of
3858         worklist to VEC(tree,heap).  Adjust uses of worklist.
3859
3860 2005-04-24  Devang Patel  <dpatel@apple.com>
3861
3862         *  config/rs6000/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New.
3863
3864 2005-04-24  Ian Lance Taylor  <ian@airs.com>
3865
3866         * c-semantics.c (build_stmt): Remove test of specific tree codes
3867         for TREE_SIDE_EFFECTS handling.
3868
3869 2005-04-24  Per Bothner  <per@bothner.com>
3870
3871         * c-opts.c (finish_options):  Make the line-number of the <built-in>
3872         location 0, as assumed elsewhere, rather than 1.
3873
3874 2005-04-24  Kazu Hirata  <kazu@cs.umass.edu>
3875
3876         * tree-ssa-uncprop.c (equiv_stack): Change the type o
3877         VEC(tree,heap).
3878         (tree_ssa_uncprop, uncprop_finalize_block,
3879         uncprop_initialize_block): Update uses of equiv_stack.
3880
3881 2005-04-24  Richard Henderson  <rth@redhat.com>
3882
3883         PR rtl-opt/21163
3884         * simplify-rtx.c (simplify_binary_operation) <IOR>: Check
3885         for SCALAR_INT_MODE_P instead of not MODE_CC before returning
3886         constm1_rtx.
3887         <AND, LSHIFTRT, UMIN>: Use CONST0_RTX.
3888         <UDIV, UMOD>: Use CONST0_RTX and CONST1_RTX.
3889         <DIV, MOD>: Likewise.
3890
3891 2005-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3892
3893         * collect2.c (main): Unlock the stdio streams.
3894         * gcc.c (main): Likewise.
3895         * gcov-dump.c (main): Likewise.
3896         * gcov.c (main): Likewise.
3897         * gen-protos.c (main): Likewise.
3898         * gensupport.c (init_md_reader_args_cb): Likewise.
3899         * protoize.c (main): Likewise.
3900         * toplev.c (general_init): Likewise.
3901
3902 2005-04-24  Jakub Jelinek  <jakub@redhat.com>
3903
3904         PR middle-end/20991
3905         * cgraph.h (cgraph_local_info): Add vtable_method field.
3906         * varasm.c (mark_decl_referenced): If cgraph_global_info_ready
3907         and node is vtable_method, finalized and not reachable, don't do
3908         anything.
3909
3910 2005-04-24  Kazu Hirata  <kazu@cs.umass.edu>
3911
3912         * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Use
3913         COMPARISON_CLASS_P.
3914         * tree-ssa-pre.c (create_value_expr_from): Use
3915         CONSTANT_CLASS_P and REFERENCE_CLASS_P.
3916         * tree-ssa-propagate.c (stmt_makes_single_load,
3917         stmt_makes_single_store): Use REFERENCE_CLASS_P.
3918         * tree-vect-transform.c (vect_is_simple_cond): Use
3919         COMPARISON_CLASS_P.
3920         * tree-vrp.c (extract_range_from_assert,
3921         build_assert_expr_for, fp_predicate, has_assert_expr): Use
3922         COMPARISON_CLASS_P.
3923
3924         * tree-ssa-live.c (build_tree_conflict_graph): Change the type
3925         of tpa_to_clear to VEC(int,heap).  Update uses of
3926         tpa_to_clear.  Free tpa_to_clear at the end.
3927
3928 2005-04-24  Andrew Pinski  <pinskia@physics.uc.edu>
3929
3930         * tree.h (TREE_THIS_VOLATILE): Document the effect on a
3931         function decl.
3932
3933 2005-04-24  Nathan Sidwell  <nathan@codesourcery.com>
3934
3935         * config/rs6000/rs6000.c (rs6000_override_options): Use gcc_assert
3936         and gcc_unreachable as appropriate.
3937         (num_insns_constant, output_vec_const_move,
3938         build_mask64_2_operands, rs6000_output_dwarf_dtprel,
3939         rs6000_emit_set_const, rs6000_emit_move,
3940         spe_build_register_parallel, function_arg,
3941         rs6000_move_block_from_reg, altivec_expand_predicate_builtin,
3942         spe_expand_predicate_builtin, spe_expand_evsel_builtin,
3943         rs6000_expand_builtin, spe_init_builtins, altivec_init_builtins,
3944         rs6000_common_init_builtins, expand_block_clear,
3945         expand_block_move, validate_condition_mode, ccr_bit, extract_MB,
3946         extract_ME, rs6000_get_some_local_dynamic_name,
3947         rs6000_output_function_entry, print_operand,
3948         print_operand_address, rs6000_generate_compare, rs6000_emit_sCOND,
3949         output_cbranch, output_e500_flip_gt_bit,
3950         rs6000_emit_vector_compare, rs6000_emit_vector_compare,
3951         rs6000_emit_cmove, rs6000_emit_minmax, rs6000_split_multireg_move,
3952         compute_save_world_info, rs6000_stack_info,
3953         rs6000_emit_load_toc_table, rs6000_frame_related,
3954         spe_synthesize_frame_save, rs6000_emit_epilogue,
395