OSDN Git Service

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