OSDN Git Service

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