OSDN Git Service

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