OSDN Git Service

* tree-ssa-threadupdate.c (struct thread_stats_d): Declare.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2005-06-07  Diego Novillo  <dnovillo@redhat.com>
2
3         * tree-ssa-threadupdate.c (struct thread_stats_d): Declare.
4         (thread_stats): New local variable.
5         (redirect_edges): Increment count of threaded edges.
6         (thread_through_all_blocks): Initialize thread_stats.
7         Display number of threaded jumps if TDF_STATS is enabled.
8
9 2005-06-07  Kazu Hirata  <kazu@codesourcery.com>
10
11         * sbitmap.h (sbitmap_iter_init): Consistently treat bit_num as
12         the current bit index with no modulo.
13
14 2005-06-07  Sebastian Pop  <pop@cri.ensmp.fr>
15
16         PR 18403 and meta PR 21861.
17         * Makefile.in (tree-chrec.o): Depend on CFGLOOP_H and TREE_FLOW_H.
18         * tree-chrec.c: Include cfgloop.h and tree-flow.h.
19         (evolution_function_is_invariant_rec_p,
20         evolution_function_is_invariant_p): New.
21         (chrec_convert): Use an extra parameter AT_STMT for refining the
22         information that is passed down to convert_step.  Integrate the 
23         code that was in count_ev_in_wider_type.
24         * tree-chrec.h (count_ev_in_wider_type): Removed.
25         (chrec_convert): Modify its declaration.
26         (evolution_function_is_invariant_p): Declared.
27         (evolution_function_is_affine_p): Use evolution_function_is_invariant_p.
28         * tree-flow.h (can_count_iv_in_wider_type): Renamed convert_step.
29         (scev_probably_wraps_p): Declared.
30         * tree-scalar-evolution.c (count_ev_in_wider_type): Removed.
31         (follow_ssa_edge_in_rhs, interpret_rhs_modify_expr):
32         Use an extra parameter AT_STMT for refining the information that is
33         passed down to convert_step.
34         (follow_ssa_edge_inner_loop_phi, follow_ssa_edge,
35         analyze_scalar_evolution_1): Initialize AT_STMT with the current
36         analyzed statement.
37         (instantiate_parameters_1): Don't know yet how to initialize AT_STMT.
38         * tree-ssa-loop-ivopts.c (idx_find_step): Update the use of 
39         can_count_iv_in_wider_type to use convert_step.
40         * tree-ssa-loop-niter.c (can_count_iv_in_wider_type_bound): Move 
41         code that is independent of the loop over the known iteration
42         bounds to convert_step_widening, the rest is moved to
43         proved_non_wrapping_p.
44         (scev_probably_wraps_p): New.
45         (can_count_iv_in_wider_type): Renamed convert_step.
46         * tree-vrp.c (adjust_range_with_scev): Take an extra AT_STMT parameter.
47         Use scev_probably_wraps_p for computing init_is_max.
48         (vrp_visit_assignment): Pass the current analyzed statement to 
49         adjust_range_with_scev.
50         (execute_vrp): Call estimate_numbers_of_iterations for refining the 
51         information provided by scev analyzer.
52
53 2005-06-07  Eric Christopher  <echristo@redhat.com>
54
55         * config/mips/predicates.md (sleu_operand): Use
56         IN_RANGE to specify range of operand.
57
58 2005-06-07  Steven Bosscher  <stevenb@suse.de>
59
60         PR tree-optimization/21847
61         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): With
62         -fnon-call-exceptions, also mark statements inherently
63         necessary if they may throw.
64
65 2005-06-07  Adrian Straetling  <straetling@de.ibm.com>
66
67         * config/s390/s390.md: ("UNSPECV_MB", "UNSPECV_CAS"): New constants.
68         ("type"): Add "sem" to 'type' attribute.
69         ("memory_barrier", "*memory_barrier", "sync_compare_and_swapdi",
70         "sync_compare_and_swapsi", "sync_compare_and_swap_ccdi",
71         "sync_compare_and_swap_ccsi", "*sync_compare_and_swap_ccdi",
72         "*sync_compare_and_swap_ccsi"): New patterns.
73         * config/s390/2064.md: ("z_sem"): New insn_reservation.
74         * config/s390/2084.md: ("x_sem"): New insn_reservation.
75         * config/s390/s390.c: (s390_compare_emitted): New global variable.
76         (s390_emit_compare): Do not emit comparison again after cas.
77         * config/s390/s390.h (s390_compare_emitted): Declare.
78
79 2005-06-07  Kazu Hirata  <kazu@codesourcery.com>
80
81         * sbitmap.h (sbitmap_iterator, sbitmap_iter_init,
82         sbitmap_iter_cond, sbitmap_iter_next): New.
83         * bt-load.c, cfganal.c, combine.c, ddg.c, flow.c,
84         modulo-sched.c, sbitmap.c, sched-rgn.c, tree-into-ssa.c,
85         tree-outof-ssa.c, tree-ssa-alias.c, tree-ssa-live.c: Update
86         uses of EXECUTE_IF_SET_IN_SBITMAP to the new style.
87
88 2005-06-07  Zdenek Dvorak  <dvorakz@suse.cz>
89
90         * tree-ssa-address.c: New file.
91         * Makefile.in (tree-ssa-address.o): Add.
92         * expr.c (expand_expr_real_1): Do not handle REF_ORIGINAL on
93         INDIRECT_REFs.  Handle TARGET_MEM_REFs.
94         * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REFs.
95         * tree-flow.h (struct mem_address): New.
96         (struct affine_tree_combination): Moved from tree-ssa-loop-ivopts.c.
97         (create_mem_ref, addr_for_mem_ref, get_address_description,
98         maybe_fold_tmr, multiplier_allowed_in_address_p,
99         multiply_by_cost):  Declare.
100         * tree-mudflap.c (mf_xform_derefs_1): Handle TARGET_MEM_REFs.
101         * tree-pretty-print.c (dump_generic_node): Ditto.
102         * tree-ssa-loop-im.c (for_each_index): Ditto.
103         * tree-ssa-loop-ivopts.c (may_be_unaligned_p,
104         find_interesting_uses_address): Ditto.
105         (rewrite_address_base, build_addr_strip_iref): Removed.
106         (struct affine_tree_combination): Moved to tree-flow.h.
107         (get_ref_tag, copy_ref_info): New functions.
108         (rewrite_use_address): Produce TARGET_MEM_REFs.
109         (tree_ssa_iv_optimize): Do not call update_ssa
110         and rewrite_into_loop_closed_ssa.
111         (tree_to_aff_combination): Use build_fold_addr_expr instead of
112         build_addr_strip_iref.
113         (unshare_aff_combination): New function.
114         (fold_affine_sum): Removed.
115         (get_computation_at): Use get_computation_aff.  Unshare the result.
116         (get_computation_aff, multiplier_allowed_in_address_p): New function.
117         (multiply_by_cost): Exported.
118         (get_address_cost): Use multiplier_allowed_in_address_p.
119         * tree-ssa-operands.c (get_tmr_operands): New function.
120         (get_expr_operands): Handle TARGET_MEM_REFs.
121         * tree.c (copy_node_stat): Copy annotations for TARGET_MEM_REFs.
122         (build): Handle 7 arguments.
123         (build7_stat): New function.
124         * tree.def (TARGET_MEM_DEF): New.
125         * tree.h (REF_ORIGINAL): Removed.
126         (TMR_SYMBOL, TMR_BASE, TMR_INDEX, TMR_STEP, TMR_OFFSET, TMR_ORIGINAL,
127         TMR_TAG, build7): New macros.
128         (build7_stat, tree_mem_ref_addr, copy_mem_ref_info): Declare.
129         * tree-ssa-ccp.c (fold_stmt_r): Call maybe_fold_tmr.
130         * doc/c-tree.texi: Document TARGET_MEM_REF.
131         * doc/tree-ssa.texi: Add TARGET_MEM_REF to gimple grammar.
132
133 2005-06-07  Jakub Jelinek  <jakub@redhat.com>
134
135         PR debug/21946
136         * dwarf2out.c (add_loc_descr_op_piece): New function.
137         (multiple_reg_loc_descriptor, concat_loc_descriptor,
138         loc_descriptor): Use it.
139         * var-tracking.c: Include regs.h and expr.h.
140         (emit_note_insn_var_location): Skip over pieces where offset
141         is smaller than previous offset plus previous piece mode size.
142         Optimize adjacent hard registers or memory locations.
143         * Makefile.in (var-tracking.o): Depend on $(REGS_H) and $(EXPR_H).
144
145 2005-06-07  Richard Guenther  <rguenth@gcc.gnu.org>
146
147         * c-typeck.c (c_finish_if_stmt): Use void_type_node as type
148         for COND_EXPR.
149         * gimplify.c (gimplify_cond_expr): No need to fix up the
150         type of COND_EXPRs.
151
152 2005-06-07  Richard Guenther  <rguenth@gcc.gnu.org>
153
154         * tree-ssa.c (tree_ssa_useless_type_conversion_1): Fix
155         comments.
156
157 2005-06-07  Geoffrey Keating  <geoffk@apple.com>
158
159         * config/rs6000/host-darwin.c (segv_handler): Widen the possible
160         'stwux' instructions that are considered to be stack decrements.
161
162         * rtlanal.c (subreg_offset_representable_p): Handle objects
163         with holes.
164
165 2005-06-06  Uros Bizjak  <uros@kss-loka.si>
166
167         * mode-switching.c (optimize_mode_switching): Fix n_exprs parameter
168         in call to pre_edge_lcm.
169
170 2005-06-06  Kaz Kojima  <kkojima@gcc.gnu.org>
171
172         * config/sh/linux-unwind.h (SH_DWARF_FRAME_XD0): Remove for SH5.
173         (SH_DWARF_FRAME_PR, SH_DWARF_FRAME_GBR, SH_DWARF_FRAME_MACL)
174         (SH_DWARF_FRAME_MACH, SH_DWARF_FRAME_PC, SH_DWARF_FRAME_FPUL):
175         Likewise.
176         (SH_DWARF_FRAME_FP0, SH_DWARF_FRAME_FPSCR): Define to the correct
177         dwarf register number for SHmedia.
178         (shmedia_fallback_frame_state): New.
179         (MD_FALLBACK_FRAME_STATE_FOR): Define to it for SH5.
180
181         * config/sh/linux.h (FUNCTION_PROFILER): Provide SHMEDIA version.
182
183 2005-06-06  Gabriel Dos Reis  <gdr@integrable-solutions.net>
184
185         * c-lex.c (lex_string): Use XOBFINISH.
186         * collect2.c (extract_string, dump_file): Likewise.
187         * dbxout.c (dbxout_finish_complex_stabs): Likewise.
188         * gcc.c (init_spec, build_search_list, convert_filename, 
189         set_collect_gcc_options, do_spec_2, do_spec_1, main): Likewise.
190         * genpreds.c (write_predicate_subfunction): Likewise.
191         * genflags.c (main): Likewise.
192         * read-rtl.c (mode_attr_index, apply_macro_to_string, 
193         join_c_conditions, read_quoted_string, read_braced_string, 
194         read_rtx_1): Likewise.
195         * stringpool.c (ggc_alloc_string): Likewise.
196         * tlink.c (obstack_fgets, recompile_files): Likewise.
197
198 2005-06-06  Jakub Jelinek  <jakub@redhat.com>
199
200         * intl.h (G_): New macro.
201         * rtl-error.c (error_for_asm, warning_for_asm): Use gmsgid
202         instead of msgid for argument name.
203         * tree-ssa.c (warn_uninit): Likewise.
204         * c-parser.c (c_parser_error): Likewise.
205         * config/rs6000/rs6000-c.c (SYNTAX_ERROR): Likewise.
206         * config/darwin-c.c (BAD): Likewise.
207         * config/c4x/c4x-c.c (BAD): Likewise.
208         * c-pragma.c (GCC_BAD, GCC_BAD2): Likewise.
209         * c-errors.c (pedwarn_c99, pedwarn_c90): Likewise.
210         * c-common.c (c_parse_error): Likewise.
211         * diagnostic.c (diagnostic_set_info, verbatim, inform, warning,
212         warning0, pedwarn, error, sorry, fatal_error, internal_error):
213         Likewise.
214         (fnotice): Use cmsgid instead of msgid for argument name.
215         * gcov.c (fnotice): Likewise.
216         * protoize.c (notice): Likewise.
217         * final.c (output_operand_lossage): Likewise.
218         * gcc.c (fatal, notice): Likewise.
219         (error): Use gmsgid instead of msgid for argument name.
220         * collect2.c (notice, fatal_perror, fatal): Use cmsgid instead
221         of msgid for argument name.
222         (error): Use gmsgid instead of msgid for argument name.
223         * c-decl.c (locate_old_decl, implicit_decl_warning): Use G_()
224         instead of N_().
225         * c-typeck.c (readonly_error, convert_for_assignment): Likewise.
226         * tree-inline.c (inline_forbidden_p_1): Likewise.
227         * ABOUT-GCC-NLS: Require gettext 0.14.5 or later.  Mention the new
228         conventions for marking translations.
229         * doc/install.texi: Mention gettext 0.14.5 or later requirement.
230
231         * tree-chrec.c (reset_evolution_in_loop): Use build3 instead of
232         build2.
233
234         * fold-const.c (operand_equal_p): Don't return 1, if element
235         chains for 2 VECTOR_CSTs are not the same length.
236
237         PR regression/21897
238         * fold-const.c (fold_ternary) <case BIT_FIELD_REF>: Don't crash if
239         not all VECTOR_CST elements are given.
240
241         * combine.c (try_combine): Use hard_regno_nregs array instead of
242         HARD_REGNO_NREGS macro.
243         * config/rs6000/rs6000.c (rs6000_split_multireg_move,
244         rs6000_register_move_cost, rs6000_memory_move_cost): Likewise.
245         * config/ia64/ia64.c (mark_reg_gr_used_mask): Likewise.
246
247 2005-06-06  Daniel Berlin  <dberlin@dberlin.org>
248
249         * tree-ssa-reassoc.o: New.
250         (OBJS-common): Add tree-ssa-reassoc.o
251         * timevar.def: Add TV_TREE_REASSOC
252         * tree-optimize.c (pass_reassoc): Add call.
253         * tree-pass.h (pass_reassoc): Add.
254         * tree-ssa-reassoc.c: New file.
255
256 2005-06-06  Eric Christopher  <echristo@redhat.com>
257
258         target/21927
259         * expr.c (do_store_flag): Remove check for non-negative BRANCH_COST.
260
261 2005-06-06  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
262
263         * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Guard with
264         HAVE_GAS_MAX_SKIP_P2ALIGN.
265         (HAVE_AS_DWARF2_DEBUG_LINE): Remove.
266
267 2005-06-06  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
268
269         * Makefile.in (mips-tfile.o): Add $(srcdir)/../include prefix to
270         getopt.h dependency.
271         (mips-tdump.o): Likewise.
272
273 2005-06-06  Jan Hubicka  <jh@suse.cz>
274
275         * predict.c (tree_predict_edge): Don't drop useless predictions;
276         check that it is not called too late in the game.
277         (gate_estimate_probability): New gate.
278         (pass_profile): Gate.
279         * tree-mudflap.c (mf_build_check_statement_for): Do not drop
280         predictions; update CFG instead.
281         * cfgrtl.c (rtl_verify_flow_info): Check that predcitions are consumed.
282
283 2005-06-06  Jie Zhang  <jie.zhang@analog.com>
284
285         * config.gcc (bfin*-uclinux*): New.
286         * config/bfin/uclinux.h: New file.
287
288 2005-06-06  Ben Elliston  <bje@au.ibm.com>
289
290         * doc/md.texi (Insn Splitting): Fix some wording.
291
292 2005-06-05  David Edelsohn  <edelsohn@gnu.org>
293
294         * config/rs6000/rs6000.c (rs6000_emit_swdivsf): New function.
295         (rs6000_emit_swdivdf): New function.
296         * config/rs6000/rs6000.md (fres): New pattern.
297         (divsf3): Add approximation through rs6000_emit_swdivsf.
298         (fred): New pattern.
299         (divdf3): Add approximation through rs6000_emit_swdivdf.
300         * config/rs6000/rs6000-protos.h (rs6000_emit_swdivsf): Declare.
301         (rs6000_emit_swdivdf): Declare.
302         * config/rs6000/rs6000.opt (mswdiv): New option.
303         * doc/invoke.texi (RS/6000 and PowerPC Options): Document mswdiv.
304
305 2005-06-05  Zdenek Dvorak  <dvorakz@suse.cz>
306
307         PR tree-optimization/21846
308         * tree-cfg.c (replace_uses_by): Update information stored at loops.
309         * tree-flow.h (substitute_in_loop_info): Declare.
310         * tree-scalar-evolution.c (initialize_scalar_evolutions_analyzer):
311         Ensure that chrec_dont_know and chrec_known have a type.
312         * tree-ssa-loop-niter.c (substitute_in_loop_info): New function.
313
314 2005-06-05  Steven Bosscher  <stevenb@suse.de>
315
316         * config/i386/i386.c (x86_use_loop): Remove.
317         * config/i386/i386.h (x86_use_loop): Remove extern decl.
318         (TARGET_USE_LOOP): Remove.
319         * config/i386/i386.md (doloop_end, doloop_end_internal): Remove.
320         Also remove related define_splits.
321
322 2005-06-05  Dorit Nuzman  <dorit@il.ibm.com>
323
324         * tree-flow.h (stmt_ann_d): Move aux to ...
325         (tree_ann_common_d): ... here.
326         * tree-ssa-loop-im.c (LIM_DATA, determine_invariantness_stmt,
327         move_computations_stmt, schedule_sm): Update references to
328         aux.
329         * tree-vectorizer.h (set_stmt_info, vinfo_for_stmt): Likewise.
330         * tree-vect-transform.c (vect_create_index_for_vector_ref): Update
331         call to set_stmt_info.
332         (vect_transform_loop): Likewise.
333         * tree-vectorizer.c (new_loop_vec_info, destroy_loop_vec_info):
334         Likewise.
335
336         * tree-vect-analyze.c (vect_analyze_scalar_cycles): Made void instead of
337         bool.
338         (vect_mark_relevant): Takes two additional arguments - live_p and
339         relevant_p. Set RELEVANT_P and LIVE_P according to these arguments.
340         (vect_stmt_relevant_p): Differentiate between a live stmt and a
341         relevant stmt. Return two values = live_p and relevant_p.
342         (vect_mark_stmts_to_be_vectorized): Call vect_mark_relevant and
343         vect_stmt_relevant_p with additional arguments. Phis are no longer
344         put into the worklist (analyzed seperately in analyze_scalar_cycles).
345         (vect_determine_vectorization_factor): Also check for LIVE_P, because a
346         stmt that is marked as irrelevant and live, cause it's only used out
347         side the loop, may need to be vectorized (e.g. reduction).
348         (vect_analyze_operations): Examine phis. Call
349         vectorizable_live_operation for for LIVE_P stmts. Check if
350         need_to_vectorize.
351         (vect_analyze_scalar_cycles): Update documentation. Don't fail
352         vectorization - just classify the scalar cycles created by the loop
353         phis. Call vect_is_simple_reduction.
354         (vect_analyze_loop): Call to analyze_scalar_cycles moved earlier.
355         * tree-vect-transform.c (vect_create_index_for_vector_ref): Update
356         call to set_stmt_info.
357         (vect_get_vec_def_for_operand): Code reorganized - the code that
358         classifies the type of use was factored out to vect_is_simple_use.
359         (vectorizable_store, vect_is_simple_cond): Call vect_is_simple_use with
360         additional arguments.
361         (vectorizable_assignment): Likewise. Also make sure the stmt is relevant
362         and computes a loop_vec_def.
363         (vectorizable_operation, vectorizable_load, vectorizable_condition):
364         Likewise.
365         (vectorizable_live_operation): New.
366         (vect_transform_stmt): Handle LIVE_P stmts.
367         * tree-vectorizer.c (new_stmt_vec_info): Initialize the new fields
368         STMT_VINFO_LIVE_P and STMT_VINFO_DEF_TYPE.
369         (new_loop_vec_info, destroy_loop_vec_info): Also handle phis.
370         (vect_is_simple_use): Determine the type of the def and return it
371         in a new function argument. Consider vect_reduction_def and
372         vect_induction_def, but for now these are not supported.
373         (vect_is_simple_reduction): New. Empty for now.
374         * tree-vectorizer.h (vect_def_type): New enum type.
375         (_stmt_vec_info): Added new fields - live and _stmt_vec_info.
376         (STMT_VINFO_LIVE_P, STMT_VINFO_DEF_TYPE): New accessor macros.
377         (vect_is_simple_use): New arguments added to function declaration.
378         (vect_is_simple_reduction): New function declaration.
379         (vectorizable_live_operation): New function declaration.
380
381         * tree-vect-analyze.c (vect_can_advance_ivs_p): Add debug printout.
382         (vect_can_advance_ivs_p): Likewise.
383         * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Likewise.
384
385 2005-06-05  Eric Christopher  <echristo@redhat.com>
386
387         * config/mips/mips.c (mips_rtx_costs): Remove unused variable.
388
389 2005-06-05  Hans-Peter Nilsson  <hp@bitrange.com>
390
391         PR target/21914
392         * config/mmix/mmix.md ("*movdicc_real_foldable")
393         ("*movdfcc_real_foldable", "*bCC_foldable")
394         ("*bCC_inverted_foldable"): Specify DImode for register being
395         compared.
396
397 2005-06-04  Roger Sayle  <roger@eyesopen.com>
398
399         * reg-stack.c (struct block_info_def): Correct grammar typo.
400         (compensate_edge): Clean-up.  Perform as little work as possible
401         when src and dest stacks match.  Avoid modifying block_info.
402         Reorder and simplify assertion checks.  Avoid unnecessary copying
403         of regstack structure.
404         (convert_regs_1): Set the done flag here...
405         (convert_regs_2): ... instead of here.
406
407 2005-06-04  Dale Johannesen  <dalej@apple.com>
408
409         * config/rs6000/rs6000.c (no_global_regs_above): New.
410         (rs6000_emit_prologue):  Use it; cosmetic formatting fixes.
411         (rs6000_emit_epilogue):  Use it; cosmetic formatting fixes.
412         (rs6000_conditional_register_usage): Don't put Darwin PIC
413         register in global_regs.
414         (rs6000_stack_info):  Don't set lr_save_p just because Darwin 
415         PIC reg used.
416         (rs6000_emit_prologue):  Save LR in R0 around Darwin PIC setup,
417         if not done by lr_save_p.
418         * config/rs6000/rs6000.md (insnv1_internal1):  Back out 05-18 patch.
419         Use rotate instead of ashift.
420         (call_indirect_nonlocal_sysv):  Prefer CTR to LR.
421         (call_value_indirect_nonlocal_sysv):  Ditto.
422
423 2005-06-04  Jan Hubicka  <jh@suse.cz>
424
425         * cgraphunit.c (cgraph_reset_node): Break out from ...
426         (cgraph_finalize_function): ... here.
427         (cgraph_finalize_compilation_unit): Reset nodes where backend
428         removed the body.
429
430 2005-06-04  Richard Henderson  <rth@redhat.com>
431
432         PR target/21888
433         * config/alpha/alpha.c (alpha_align_insns): Don't insert nops
434         until we've passed initial ldgp.
435
436 2005-06-04  Daniel Berlin  <dberlin@dberlin.org>
437
438         * cfgexpand.c (expand_one_var): Use DECL_HAS_VALUE_EXPR_P.
439         * dwarf2out.c (loc_descriptor_from_tree_1): Ditto.
440         * expr.c (expand_var): Ditto.   
441         * function.c (gimplify_parameters): Use SET_DECL_VALUE_EXPR too.
442         * gimplify.c (gimplify_decl_expr): Ditto.
443         (gimplify_expr): Ditto.
444         * tree-mudflap.c (mf_decl_eligible_p): Use DECL_HAS_VALUE_EXPR_P.
445         * tree.c (value_expr_for_decl): New.
446         (print_value_expr_statistics): New.
447         (init_ttree): Init value_expr_for_decl.
448         (decl_value_expr_lookup): New.
449         (decl_value_expr_insert): Ditto.
450         (copy_node_stat): Copy DECL_VALUE_EXPR status.
451         * tree.h (DECL_VALUE_EXPR): Use hashtable.
452         (SET_DECL_VALUE_EXPR): New.
453         (DECL_HAS_VALUE_EXPR_P): New.
454
455 2005-06-04  Steven Bosscher  <stevenb@suse.de>
456
457         * lcm.c: Move all mode-switching related functions from here...
458         * mode-switching.c: ...to this new file.
459         * doc/passes.texi: Update accordingly.
460
461         * basic-block.h (label_value_list): Remove extern decl.
462         * cfgrtl.c (label_value_list): Remove.
463         (can_delete_label_p): Don't look at it.
464         * cfgcleanup.c (cleanup_cfg): Don't free it.
465
466         * common.opt: Don't refer to non-existing flag_alias_check.
467
468 2005-06-04  David Edelsohn  <edelsohn@gnu.org>
469
470         * config/rs6000/aix52.h (ASM_CPU_SPEC): Add power5.
471
472 2005-06-04  Kazu Hirata  <kazu@codesourcery.com>
473
474         * function.c (prologue, epilogue, sibcall_epilogue): Change
475         their types to VEC(int,heap)*.
476         (free_after_compilation): Free the three vectors above.
477         (init_function_for_compilation, record_insns, contains,
478         prologue_epilogue_contains, sibcall_epilogue_contains,
479         reposition_prologue_and_epilogue_notes): Use VEC instead of
480         VARRAY.  (init_function_once): Remove.
481         * function.h: Remove the prototype for init_function_once.
482         * toplev.c (backend_init): Don't call init_function_once.
483
484 2005-06-04  Jan Hubicka  <jh@suse.cz>
485
486         * predict.c (tree_predict_edge): Do not predict entry edge and
487         single succestor edge.
488
489 2005-06-04  Joseph S. Myers  <joseph@codesourcery.com>
490
491         PR c/21873
492         * c-typeck.c (push_init_level): Don't pop levels without braces if
493         implicit == 1.
494
495 2005-06-03  Sebastian Pop  <pop@cri.ensmp.fr>
496         
497         * tree-data-ref.c (compute_self_dependence): New function.
498         (compute_all_dependences): Use it.
499
500 2005-06-03  Geoffrey Keating  <geoffk@apple.com>
501
502         * c-parser.c (c_parser_parms_declarator): Don't use chainon().
503         (c_parser_expr_list): Don't use chainon().
504
505         * config/darwin.h (LINK_SPEC): Pass -syslibroot to linker
506         when -isysroot passed.
507
508 2005-06-03  Joseph S. Myers  <joseph@codesourcery.com>
509
510         PR c/21879
511         * c-decl.c (start_function): Restore label_context_stack_se and
512         label_context_stack_vm  if returning with an error.
513
514 2005-06-03  Gabriel Dos Reis  <gdr@integrable-solutions.net>
515
516         * configure.ac: Check declaration for asprintf, needed by
517         libiberty.h. 
518         * configure: Regenerate.
519         * config.in: Likewise.
520
521 2005-06-03  Diego Novillo  <dnovillo@redhat.com>
522
523         * tree-ssa-dom.c (record_edge_info): Use last_basic_block to
524         allocate info array.
525         * tree-vrp.c (extract_range_from_unary_expr): Set resulting
526         range to varying in cast expressions that change
527         TYPE_PRECISION.
528
529 2005-06-03  Eric Christopher  <echristo@redhat.com>
530
531         * config/mips/mips.opt: Add RejectNegative to divide-breaks and
532         divide-traps.
533
534 2005-06-03  Jan Hubicka  <jh@suse.cz>
535
536         * basic-block.h (remove_predictions_associated_with_edge): Declare.
537         * cfg.c (remove_edge): Use it.
538         * predict.c (remove_predictions_associated_with_edge): New function.
539
540 2005-06-03  Pat Haugen  <pthaugen@us.ibm.com>
541
542         * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
543         Clear call_realy_used_regs[r2] when ABI_AIX.
544
545 2005-06-03  Richard Guenther  <rguenth@gcc.gnu.org>
546
547         PR middle-end/21858
548         * fold-const.c (fold_binary): Fix type mismatches in folding
549         of comparisons.
550
551 2005-06-03  Kazu Hirata  <kazu@codesourcery.com>
552
553         * cgraph.c, cgraphunit.c, config/mips/mips.c: Fix comment
554         typos.
555
556 2005-06-03  Joseph S. Myers  <joseph@codesourcery.com>
557
558         * collect2.c (maybe_unlink): Use unlink_if_ordinary.
559
560 2005-06-02  Bernd Schmidt  <bernd.schmidt@analog.com>
561
562         * reload1.c (reload): Revert my previous patch.
563
564 2005-06-03  Nick Clifton  <nickc@redhat.com>
565
566         * config/arm/semi.h (ASM_SPEC): Fix typo passing -mfloat-abi to
567         assembler.
568
569 2005-06-03  Kazu Hirata  <kazu@codesourcery.com>
570
571         PR tree-optimization/21849
572         * tree-ssa-copy.c (dump_copy_of): Call sbitmap_zero.
573
574 2005-06-02  Richard Henderson  <rth@redhat.com>
575
576         * Makefile.in (tree-vect-generic.o): New.
577         (OBJS-common, GTFILES, s-gtype): Add it.
578         * tree-complex.c (build_replicated_const, vector_inner_type,
579         vector_last_type, vector_last_nunits, build_word_mode_vector_type,
580         elem_op_func, tree_vec_extract, do_unop, do_binop, do_plus_minus,
581         do_negate, expand_vector_piecewise, expand_vector_parallel, 
582         expand_vector_addition, expand_vector_operation, 
583         type_for_widest_vector_mode, expand_vector_operations_1, 
584         gate_expand_vector_operations, expand_vector_operations, 
585         pass_lower_vector_ssa): Move to tree-vect-generic.c.
586         (tree_lower_complex): Rename from tree_lower_operations.
587         (pass_lower_complex): Rename from pass_pre_expand.
588         * tree-vect-generic.c: New file.
589         * tree-pass.h (pass_lower_complex): Rename from pass_pre_expand.
590         (pass_lower_vector): New.
591         * tree-optimize.c (init_tree_optimization_passes): Update to match.
592
593 2005-06-02  Richard Henderson  <rth@redhat.com>
594
595         * modulo-sched.c (doloop_register_get): Protect against 
596         doloop_end not defined.
597
598 2005-06-02  Kazu Hirata  <kazu@codesourcery.com>
599
600         * config/sh/sh.c (general_movsrc_operand,
601         general_movdst_operand, arith_reg_operand, arith_reg_dest,
602         logical_reg_operand, int_gpr_dest, fp_arith_reg_operand,
603         fp_arith_reg_dest, arith_operand, arith_reg_or_0_operand,
604         xor_operand, cmp_operand, logical_operand, and_operand,
605         fpscr_operand, fpul_operand, symbol_ref_operand,
606         commutative_float_operator, noncommutative_float_operator,
607         unary_float_operator, binary_float_operator,
608         binary_logical_operator, equality_comparison_operator,
609         greater_comparison_operator, less_comparison_operator,
610         shift_operator, logical_operator, target_reg_operand,
611         target_operand, mextr_bit_offset, extend_reg_operand,
612         trunc_hi_operand, extend_reg_or_0_operand, minuend_operand,
613         general_extend_operand, ua_address_operand,
614         cache_address_operand, inqhi_operand, sh_rep_vec, sh_1el_vec,
615         sh_const_vec, ua_offset, sh_register_operand, cmpsi_operand,
616         shift_count_reg_operand, shift_count_operand,
617         unaligned_load_operand): Move to ...
618         * config/sh/predicates.md: ... here.
619         * config/sh/sh.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES):
620         Remove.
621
622 2005-06-02  Andrew Pinski  <pinskia@physics.uc.edu>
623
624         * tree.c (build_common_builtin_nodes): Fix the return type on
625         __builtin_memcmp.
626
627 2005-06-02  Richard Guenther  <rguenth@gcc.gnu.org>
628
629         * tree-ssa-loop-ivopts.c (build_addr_strip_iref): Remove.
630         (find_interesting_uses_address): Use build_fold_addr_expr instead.
631         (strip_offset_1): Likewise.
632         (tree_to_aff_combination): Likewise.
633
634 2005-06-02  DJ Delorie  <dj@redhat.com>
635
636         * convert.c (convert_to_pointer): Avoid recursion if no conversion
637         is needed.
638
639 2005-06-02  Richard Guenther  <rguenth@gcc.gnu.org>
640
641         * tree-chrec.c (chrec_fold_plus_1): Ensure we build
642         binary operations with the correct types.
643         * tree-ssa-loo-ivopts.c (idx_find_step): Use sizetype
644         for all computation.
645
646 2005-06-02  Kazu Hirata  <kazu@codesourcery.com>
647
648         * tree-vrp.c, config/arm/arm.md, config/arm/arm1020e.md,
649         config/rs6000/rs6000.md: Fix comment typos.  Follow splling
650         conventions.
651         * doc/install.texi: Fix a typo.
652
653 2005-06-02  Jan Hubicka  <jh@suse.cz>
654
655         * cgraphunit.c (cgraph_function_and_variable_visibility): Extern
656         inline functions are not local.
657
658 2005-06-02  Kazu Hirata  <kazu@codesourcery.com>
659
660         * gimplify.c (gimplify_ctx): Change the type of case_labels to
661         VEC from VARRAY.
662         (gimplify_switch_expr, gimplify_case_label_expr): Adjust uses
663         of case_labels.
664
665 2005-06-02  Richard Guenther  <rguenth@gcc.gnu.org>
666
667         * c-typeck.c (build_indirect_ref): Build INDIRECT_REF
668         with correct type.
669
670 2005-06-02  Ulrich Weigand  <uweigand@de.ibm.com>
671
672         * config/s390/s390.c (s390_add_execute): Do not handle out-of-pool
673         execute templates.
674         (s390_dump_pool): Likewise.
675         (s390_mainpool_start, s390_mainpool_finish): Likewise.
676         (s390_chunkify_start): Likewise.
677         (s390_dump_execute): Remove.
678         (s390_reorg): Handle out-of-pool execute templates.
679
680 2005-06-02  Adrian Straetling  <straetling@de.ibm.com>
681
682         * optabs.c: (expand_bool_compare_and_swap): Emit barrier after
683           unconditional jump.
684
685 2005-06-02  Jan Hubicka  <jh@suse.cz>
686
687         * cgraph.c (cgraph_node): Maintain master clones.
688         (cgraph_remove_node): Likewise.
689         (availability_names): New static variable.
690         (dump_cgraph_node): Dump availability.
691         (dump_cgraph_varpool_node): Likewise.
692         (cgraph_is_master_clone, cgraph_master_clone,
693         cgraph_function_body_availability,
694         cgraph_variable_initializer_availability): New functions.
695         * cgraph.h (availability): New enum.
696         (struct cgraph_node): Add master_clone.
697         (cgraph_is_master_clone, cgraph_master_clone,
698         cgraph_function_body_availability,
699         cgraph_variable_initializer_availability): Declare.
700         * cgraphunit.c (cgraph_expand_function): Setcgraph_function_flags_ready.
701         (cgraph_remove_unreachable_nodes): Remove unreachable nodes.
702         * ipa-inline.c (cgraph_decide_inlining): Do not call
703         cgraph_remove_unreachable_nodes.
704
705         * cgraphunit.c (cgraph_function_and_variable_visibility): Fix typo in
706         previous patch.
707
708 2005-06-02  Diego Novillo  <dnovillo@redhat.com>
709
710         PR 21582
711         * tree-vrp.c (nonnull_arg_p): New.
712         (get_value_range): Call it.
713
714 2005-06-02  Eric Christopher  <echristo@redhat.com>
715
716         * config/mips/mips.h (processor_type): Remove PROCESSOR_DEFAULT,
717         add PROCESSOR_MAX.
718         (mips_rtx_cost_data): New datatype.
719         (MEMORY_MOVE_COST): Use data from structure.
720         (BRANCH_COST): Ditto.
721         (LOGICAL_OP_NON_SHORT_CIRCUIT): Define to zero.
722         * config/mips/mips.md (cpu): Rework for processor_type changes.
723         * config/mips/mips.c (mips_cost): New variable.
724         (DEFAULT_COSTS): Define.
725         (mips_rtx_cost_data): New.
726         (mips_rtx_costs): Use. Minor formatting changes. Use COSTS_N_INSNS
727         for NEG cost. Add support for FLOAT, UNSIGNED_FLOAT, FIX,
728         FLOAT_EXTEND, FLOAT_TRUNCATE, and SQRT.
729         (override_options): Set cost data.
730         (mips_register_move_cost): Formatting changes.
731         (bdesc_arrays): Use PROCESSOR_MAX.
732         (mips_init_builtins): Ditto.
733
734 2005-06-02  Diego Novillo  <dnovillo@redhat.com>
735
736         PR 21765
737         * doc/invoke.texi: Document -ftree-vrp.
738
739 2005-06-02  Dorit Nuzman  <dorit@il.ibm.com>
740
741         PR tree-optimization/21734
742         * tree-vectorizer.c (slpeel_update_phis_for_duplicate_loop): Use the
743         phi_result when current_def is not available.
744         (slpeel_update_phi_nodes_for_guard1): Don't fail if current_def is not
745         available.      
746
747 2005-06-02  David Edelsohn  <edelsohn@gnu.org>
748
749         * config/rs6000/rs6000.c (rs6000_insn_valid_within_doloop): New.
750         (TARGET_INSN_VALID_WITHIN_DOLOOP): Define.
751
752 2005-06-02  Diego Novillo  <dnovillo@redhat.com>
753
754         * tree-vrp.c (has_assert_expr, maybe_add_assert_expr): Remove.
755
756 2005-06-02  Jan Hubicka  <jh@suse.cz>
757
758         * cgraph.c (dump_cgraph_node): Print new flags.
759         (dump_cgraph_varpool_node): Likewise.
760         (decide_variable_is_needed): Initialize externally_visible flag.
761         * cgraph.h (cgraph_local_info): Add externally_visible flag.
762         (cgraph_varpool_node): Likewise.
763         (cgraph_function_flags_ready): Declare.
764         * cgraph.c (cgraph_mark_local_functions): Rename to ...
765         (cgraph_function_and_variable_visibility) ... this one; handle
766         externally_visible flags.
767         (decide_is_function_needed): Set externally_visible flag.
768         (cgraph_finalize_function): Deal properly with early cleanups.
769         (cgraph_optimize): Update call of
770         cgraph_function_and_variable_visibility.
771
772 2005-06-02 Steven Bosscher  <stevenb@suse.de>
773            Mostafa Hagog <mustafa@il.ibm.com>
774
775         * cfgloop.h (doloop_condition_get): Make external.
776         * loop-doloop.c (doloop_condition_get): Generalize to make it
777         usable in modulo-sched.c.
778         * modulo-sched.c (doloop_register_get): Use
779         doloop_condition_get instead of duplicating it.
780
781 2005-06-02  Bernd Schmidt  <bernd.schmidt@analog.com>
782
783         * reload1.c (reload): Undo 2005-04-20 change.  Make sure we detect
784         the correct set of init_insns that need deletion.
785         * local-alloc.c (update_equiv_regs): When substituting sole definition
786         into sole use of a reg, delete it from liveness information.
787
788 2005-06-02  Kaz Kojima  <kkojima@gcc.gnu.org>
789
790         * config/sh/sh.h (TARGET_FPU_DOUBLE): Use MASK_SH4.
791
792 2005-06-01  Diego Novillo  <dnovillo@redhat.com>
793
794         PR 14341, PR 21332, PR 20701, PR 21029, PR 21086, PR 21090
795         PR 21289, PR 21348, PR 21367, PR 21368, PR 21458.
796         * fold-const.c (invert_tree_comparison): Make extern.
797         * tree-flow.h (enum value_range_type): Move to tree-ssa-propagate.
798         (struct value_range_def): Limewise.
799         (get_value_range): Remove.
800         (dump_value_range): Remove.
801         (dump_all_value_ranges): Remove.
802         (debug_all_value_ranges): Remove.
803         (vrp_evaluate_conditional): Declare.
804         * tree-ssa-propagate.c (struct prop_stats_d): Add field
805         num_pred_folded.
806         (substitute_and_fold): Add argument use_ranges_p.
807         Update all callers.
808         If use_ranges_p is true, call fold_predicate_in to fold
809         predicates using range information.
810         Ignore ASSERT_EXPRs.
811         Change debugging output to only show statements that have been
812         folded.
813         (replace_phi_args_in): Move debugging output code from
814         substitute and fold.
815         (fold_predicate_in): New local function.
816         * tree-ssa-propagate.h (enum value_range_type): Move from
817         tree-flow.h.
818         (struct value_range_d): Likewise.
819         Add field 'equiv'. 
820         (value_range_t): Rename from value_range.
821         * tree-vrp.c (found_in_subgraph): Rename from found.
822         (get_opposite_operand): Remove.
823         (struct assert_locus_d): Declare.
824         (assert_locus_t): Declare.
825         (need_assert_for): Declare.
826         (asserts_for): Declare.
827         (blocks_visited): Declare.
828         (vr_value): Declare.
829         (set_value_range): Add argument 'equiv'.
830         Don't drop to VARYING ranges that cover all values in the
831         type.
832         Make deep copy of equivalence set 'equiv'.
833         (copy_value_range): New local function.
834         (set_value_range_to_undefined): New local function.
835         (compare_values): Return -2 if either value has overflowed.
836         (range_includes_zero_p): New local function.
837         (extract_range_from_assert): Flip the predicate code if the
838         name being asserted is on the RHS of the predicate.
839         Avoid creating unnecessary symbolic ranges if the comparison
840         includes another name with a known numeric range.
841         Update the equivalnce set of the new range when asserting
842         EQ_EXPR predicates.
843         (extract_range_from_ssa_name): Update the equivalence set of
844         the new range with VAR.
845         (extract_range_from_binary_expr): Also handle TRUTH_*_EXPR.
846         If -fwrapv is used, set the resulting range to VARYING if the
847         operation overflows.  Otherwise, use TYPE_MIN_VALUE and
848         TYPE_MAX_VALUE to represent -INF and +INF.
849         Fix handling of *_DIV_EXPR.
850         (extract_range_from_unary_expr): Handle MINUS_EXPR and
851         ABS_EXPR properly by switching the range around if necessary.
852         (extract_range_from_comparison): New local function.
853         (extract_range_from_expr): Call it.
854         (adjust_range_with_scev): Do not adjust the range if using
855         wrapping arithmetic (-fwrapv).
856         (dump_value_range): Also show equivalence set.
857         Show -INF and +INF for TYPE_MIN_VALUE and TYPE_MAX_VALUE.
858         (build_assert_expr_for): Also build ASSERT_EXPR for EQ_EXPR.
859         (infer_value_range): Change return value to bool.
860         Add arguments 'comp_code_p' and 'val_p'.
861         Do not attempt to infer ranges from statements that may throw.
862         Store the comparison code in comp_code_p.
863         Store the other operand to be used in the predicate in val_p.
864         (dump_asserts_for): New.
865         (debug_asserts_for): New.
866         (dump_all_asserts): New.
867         (debug_all_asserts): New.
868         (register_new_assert_for): New.
869         (register_edge_assert_for): New.
870         (find_conditional_asserts): New.
871         (find_assert_locations): New.
872         (process_assert_insertions_for): New.
873         (process_assert_insertions): New.
874         (insert_range_assertions): Initialize found_in_subgraph,
875         blocks_visited, need_assert_for and asserts_for.
876         Call find_assert_locations and process_assert_insertions.
877         (remove_range_assertions): Add more documentation.
878         (vrp_initialize): Change return type to void.
879         Do not try to guess if running VRP is worth it.  
880         (compare_name_with_value): New.
881         (compare_names): New.
882         (vrp_evaluate_conditional): Add argument 'use_equiv_p'.  If
883         use_equiv_p is true, call compare_names and
884         compare_name_with_value to compare all the ranges for every
885         name in the equivalence set of the predicate operands.
886         Update all callers.
887         (vrp_meet): Try harder not to derive a VARYING range.
888         If two values meet, the resulting equivalence set is the
889         intersection of the two equivalence sets.
890         (vrp_visit_phi_node): Call copy_value_range to get the current
891         range information of the LHS.
892         (vrp_finalize): Create a value vector representing all the
893         names that ended up with exactly one value in their range.
894         Call substitute_and_fold.
895         (execute_vrp): Document equivalence sets in ranges.
896         * tree.h (SSA_NAME_VALUE_RANGE): Remove.
897         (struct tree_ssa_name): Remove field value_range.
898         (invert_tree_comparison): Declare.
899
900 2005-06-01  Daniel Berlin  <dberlin@dberlin.org>
901
902         Fix PR tree-optimization/21839
903
904         * gimplify.c (zero_sized_field_decl): New function.
905         (gimplify_init_ctor_eval): Use it.
906
907 2005-06-01  Josh Conner <jconner@apple.com>
908
909         PR 21478
910         * gimplify.c (gimplify_init_constructor): Don't spill initializer
911         to read-only memory if it's sparse.
912
913 2005-06-01  Ramana Radhakrishnan  <ramana@codito.com>
914
915         * doc/rtl.texi: Remove references to NOTE_INSN_SETJMP. 
916         Add documentation for REG_SETJMP
917
918 2005-06-01  Richard Guenther  <rguenth@gcc.gnu.org>
919
920         * stmt.c (expand_case): Use build_int_cst.
921         (node_has_low_bound): Likewise, and correct type mismatch.
922         (node_has_high_bound): Likewise.
923         * fold-const.c (fold_binary): Ensure we build trees
924         with the correct types - undo what STRIP_NOPS possibly did.
925
926 2005-06-01  Richard Guenther  <rguenth@gcc.gnu.org>
927
928         * tree.h (fold_indirect_ref_1): Export from fold-const.c.
929         * fold-const.c (fold_indirect_ref_1): No longer static.
930         * tree-inline.c (copy_body_r): Use fold_indirect_ref_1 for
931         folding, if possible.
932
933 2005-06-01  Joseph S. Myers  <joseph@codesourcery.com>
934
935         * common.opt (fjump-tables): New.
936         * doc/invoke.texi (-fno-jump-tables): Document.
937         * stmt.c (expand_end_case_type): Do not emit jump tables unless
938         flag_jump_tables.
939
940 2005-06-01  Richard Earnshaw  <richard.earnshaw@arm.com>
941
942         * arm.md (bunordered, bordered, bungt, bunlt, bunge, bunle, buneq)
943         (bltgt, arm_buneq, arm_bltgt, sunordered, sordered, sungt, sunge)
944         (sunlt, sunle): Enable patterns on VFP.
945
946         * arm.md (attribute 'type'): Add new types - f_loads floadd, f_stores,
947         f_stored, f_flag, f_cvt.
948         (generic_sched): No-longer used for the arm1020e and arm1022e cores.
949         Include arm1020e.md.
950         * vfp.md (fmstat): New cpu unit.  Add an exclusion set between it and
951         the ds and fmac pipelines.  Re-work all load and store patterns and
952         all conversion patterns to use new attributes.  Adjust reservation
953         descriptions accordingly.
954         * arm1020e.md: New file.
955         * t-arm: Add dependency.
956
957 2005-06-01  Jan Hubicka  <jh@suse.cz>
958
959         * except.c (struct eh_region): Kill unused fields.
960         * basic-block.h (struct basic_block_def): Likewise.
961
962 2005-06-01  J"orn Rennecke <joern.rennecke@st.com>
963
964         PR rtl-optimization/21767
965         * rtl.h (function_invariant_p): Re-add declaration.
966         * reload1.c (function_invariant_p): No longer static.
967         * ifcvt.c (dead_or_predicable): Remove REG_EQUAL notes that
968         might have become invalid.
969
970 2005-06-01  Jakub Jelinek  <jakub@redhat.com>
971
972         PR c/21536
973         PR c/20760
974         * gimplify.c (gimplify_decl_expr): Call gimplify_type_sizes
975         on variable sizes types if a decl is a pointer to a VLA.
976         (gimplify_type_sizes): Handle POINTER_TYPE and REFERENCE_TYPE.
977         Call gimplify_type_sizes on aggregate fields.  Prevent infinite
978         recursion.
979
980         * fold-const.c (fold_ternary): Optimize BIT_FIELD_REF of VECTOR_CST.
981
982         * config/i386/xmmintrin.h (_mm_setzero_ps, _mm_set_ss, _mm_set1_ps,
983         _mm_set_ps, _mm_setr_ps): Add __extension__.
984         * config/i386/emmintrin.h (_mm_set_sd, _mm_set1_pd, _mm_set_pd,
985         _mm_setr_pd, _mm_setzero_pd, _mm_set_epi64x, _mm_set_epi64x,
986         _mm_set_epi32, _mm_set_epi16, _mm_set_epi8, _mm_setzero_si128):
987         Likewise.
988         (_mm_clflush): Don't use return in void function.
989
990         * config/i386/emmintrin.h (_mm_castpd_ps, _mm_castpd_si128,
991         _mm_castps_pd, _mm_castps_si128, _mm_castsi128_ps, _mm_castsi128_pd):
992         Use __inline instead of inline.
993
994 2005-06-01  Richard Guenther  <rguenth@gcc.gnu.org>
995
996         * fold-const.c (fold_binary): Fix types in strlen vs.
997         zero comparison folding.
998
999 2005-06-01  Richard Henderson  <rth@redhat.com>
1000
1001         * configure.ac (HAVE_AS_JSRDIRECT_RELOCS): New.
1002         * config.in, configure: Rebuild.
1003         * config/alpha/alpha.c (print_operand): Add 'j'.
1004         * alpha.md (divmodsi_internal_er_1): Use it.
1005         (divmoddi_internal_er_1): Likewise.
1006
1007 2005-06-01  Richard Sandiford  <rsandifo@redhat.com>
1008
1009         * system.h (TARGET_OPTIONS, TARGET_SWITCHES): Poison.
1010         * opts.h (print_filtered_help): Delete.
1011         * opts.c (handle_option, decode_options): Remove calls to
1012         set_target_switch.
1013         (print_target_help): New function.
1014         (common_option, print_help): Call print_target_help instead of
1015         display_target_options.
1016         (print_filtered_help): Make static.
1017         * toplev.h (display_target_options, set_target_switch): Delete.
1018         * toplev.c (target_switches, target_options, display_target_options)
1019         (set_target_switch): Delete.
1020         (print_switch_values): Remove handling of TARGET_SWITCHES and
1021         TARGET_OPTIONS.
1022         (default_get_pch_validity): Likewise.  Only treat target_flags
1023         specially if targetm.check_pch_target_flags is nonnull.
1024         (pch_option_mismatch): New function.
1025         (default_pch_valid_p): Use it.  Remove handling of TARGET_SWITCHES
1026         and TARGET_OPTIONS.  Only treat target_flags specially if
1027         targetm.check_pch_target_flags is nonnull.
1028         * config/ia64/ia64.c (ia64_override_options): Don't mention
1029         TARGET_OPTIONS in comment.
1030         * config/m68k/m68k-none.h (CC1_SPEC): Likewise.
1031         * doc/invoke.texi: Remove a reference to TARGET_SWITCHES.
1032         * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS): Don't mention the
1033         interaction with TARGET_SWITCHES.
1034         (TARGET_@var{featurename}, TARGET_SWITCHES, TARGET_OPTIONS): Delete.
1035
1036 2005-06-01  Richard Sandiford  <rsandifo@redhat.com>
1037
1038         * config/sh/sh.c (multcosts): Check sh_multcost rather than
1039         sh_multcost_str.
1040         (sh_register_move_cost): Likewise sh_gettrcost and sh_gettrcost_str.
1041         (sh_multcost_str, sh_gettrcost_str, sh_div_str, sh_divsi3_libfunc)
1042         (cut2_workaround_str): Delete.
1043         * config/sh/sh.h (SUBTARGET_OPTIONS, TARGET_OPTIONS)
1044         (TARGET_SH5_CUT2_WORKAROUND, sh_multcost_str, sh_gettrcost_str)
1045         (sh_div_str, sh_divsi3_libfunc, cut2_workaround_str): Delete.
1046         * config/sh/sh.opt (mcut2-workaround, mdiv=, mdivsi3_libfunc=)
1047         (mgettrcost=, multcost=): New options.
1048
1049 2005-06-01  Richard Sandiford  <rsandifo@redhat.com>
1050
1051         * opts.h (cl_option_state): New structure.
1052         (get_option_state): Declare.
1053         * opts.c (get_option_state): New function.
1054         * toplev.c (option_affects_pch_p): New function.
1055         (default_get_pch_validity): Store the state of all options for which
1056         option_affects_pch_p returns true.
1057         (default_pch_valid_p): Check the state of those options here.
1058         Only check target_flags separately if targetm.check_pch_target_Flags
1059         is nonnull or if TARGET_SWITCHES is defined.
1060
1061 2005-06-01  Richard Sandiford  <rsandifo@redhat.com>
1062
1063         * config/mips/mips-protos.h (mips_use_ins_ext_p): Remove parameter
1064         names.
1065
1066 2005-06-01 Mostafa Hagog <mustafa@il.ibm.com>
1067
1068         * modulo-sched.c (undo_generate_reg_moves ): Fix PR 21138.
1069
1070 2005-06-01 Mostafa Hagog <mustafa@il.ibm.com>
1071
1072         * gcse.c (compute_transp, load_killed_in_block): Use 
1073         MEM_READONLY_P.
1074
1075 2005-06-01  David.Billinghurst  <David.Billinghurst@riotinto.com>
1076
1077         PR target/21854
1078         * config/mips/mips-protos.h: Declare mips_use_ins_ext_p
1079         
1080 2005-05-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1081
1082         * errors.h (warning, error, fatal, internal_error): Add printf
1083         attribute.
1084         * genmodes.c (make_vector_mode): Fix format arguments.
1085
1086 2005-05-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1087
1088         * basic-block.h, bb-reorder.c, c-gimplify.c, config/darwin.c,
1089         config/rs6000/rs6000-c.c, dominance.c, gimple-low.c, gimplify.c,
1090         lambda-code.c, lambda-trans.c, tree-browser.c, tree-cfg.c,
1091         tree-chrec.c, tree-data-ref.c, tree-dfa.c, tree-eh.c,
1092         tree-if-conv.c, tree-into-ssa.c, tree-loop-linear.c,
1093         tree-mudflap.c, tree-nomudflap.c, tree-outof-ssa.c,
1094         tree-pretty-print.c, tree-scalar-evolution.c, tree-sra.c,
1095         tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
1096         tree-ssa-dse.c, tree-ssa-forwprop.c, tree-ssa-live.c,
1097         tree-ssa-operands.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
1098         tree-ssa-propagate.c, tree-ssa-sink.c, tree-ssa-threadupdate.c,
1099         tree-ssa-uncprop.c, tree-ssa.c, tree-vect-analyze.c,
1100         tree-vect-transform.c, tree-vectorizer.c, vec.c: Don't include
1101         errors.h and include toplev.h if necessary.
1102         
1103         * rtl.c, varray.c: If we're compiling as a GENERATOR_FILE, include
1104         errors.h otherwise include toplev.h.
1105         
1106         * Makefile.in: Update dependencies.
1107         
1108 2005-06-01  Danny Smith  <dannysmith@users.sourceforge.net>
1109
1110         * config/i386/cygming.h (NO_PROFILE_COUNTERS): Define.
1111
1112 2005-05-31  Geoffrey Keating  <geoffk@geoffk.org>
1113
1114         * config/rs6000/rs6000.md (sync_boolcshort_internal): New.
1115         * config/rs6000/rs6000.c (rs6000_emit_sync): Shift count must
1116         be complemented for big-endian.  Mask for AND must be rotated,
1117         not shifted.  Handle short operands with NOT on the memory
1118         operation.
1119
1120 2005-05-30  Daniel Berlin  <dberlin@dberlin.org>
1121
1122         * c-objc-common.c (c_tree_printer): Check flag before hashtable.
1123         Use DECL_DEBUG_EXPR and SET_DECL_DEBUG_EXPR.
1124         * dwarf2out.c (dwarf2out_var_location): Ditto.
1125         * toplev.c (default_tree_printer): Ditto.
1126         * tree-outof-ssa.c (create_temp): Ditto.
1127         * tree-sra.c (instantiate_element): Ditto.
1128         * var-tracking.c (track_expr_p): Ditto.
1129         * tree.c (struct tree_map): New structure.
1130         (debug_expr_for_decl): New.
1131         (tree_map_eq): New function.
1132         (tree_map_hash): Ditto.
1133         (tree_map_marked_p): Ditto.
1134         (print_debug_expr_statistics): Ditto.
1135         (decl_debug_expr_lookup): Ditto.
1136         (decl_debug_expr_insert): Ditto.
1137         (dump_tree_statistics): Dump debug_expr hashtable stats.
1138         * tree.h (DECL_DEBUG_EXPR): Change
1139         (SET_DECL_DEBUG_EXPR): Add.
1140         
1141 2005-06-01  Alan Modra  <amodra@bigpond.net.au>
1142
1143         * configure.ac: Add --enable-secureplt.
1144         (HAVE_AS_REL16): Test for R_PPC_REL16 relocs.
1145         * config.in: Regenerate.
1146         * configure: Regenerate.
1147         * config.gcc (powerpc64-*-linux*, powerpc-*-linux*): Add
1148         rs6000/secureplt.h to tm_file when enable_secureplt.
1149         * doc/invoke.texi (msecure-plt, mbss-plt): Document.
1150         * doc/install.texi: Document --enable-targets and --enable-secureplt.
1151         Correct xrefs to "Using the GNU Compiler Collection (GCC)".
1152         * config/rs6000/secureplt.h: New file.
1153         * config/rs6000/sysv4.h (TARGET_SECURE_PLT): Define.
1154         (SUBTARGET_OVERRIDE_OPTIONS): Error if -msecure-plt given without
1155         assembler support.
1156         (CC1_SECURE_PLT_DEFAULT_SPEC): Define.
1157         (CC1_SPEC): Delete duplicate mno-sdata.  Invoke cc1_secure_plt_default.
1158         (SUBTARGET_EXTRA_SPECS): Add cc1_secure_plt_default.
1159         * config/rs6000/sysv4.opt (msecure-plt, bss-plt): Add options.
1160         * config/rs6000/rs6000.h (TARGET_SECURE_PLT): Define.
1161         * config/rs6000/rs6000.c (rs6000_emit_load_toc_table): Handle
1162         TARGET_SECURE_PLT got register load sequence.
1163         (rs6000_emit_prologue): Call rs6000_emit_load_toc_table when
1164         TARGET_SECURE_PLT.
1165         (rs6000_elf_declare_function_name): Don't emit toc address offset
1166         word when TARGET_SECURE_PLT.
1167         * config/rs6000/rs6000.md (elf_high, elf_low): Move past load_toc_*.
1168         (load_toc_v4_PIC_1) Enable for TARGET_SECURE_PLT.
1169         (load_toc_v4_PIC_3b, load_toc_v4_PIC_3c): New insns.
1170         (call, call_value): Mark pic_offset_table_rtx used for sysv pic and
1171         TARGET_SECURE_PLT.
1172         (call_nonlocal_sysv, call_value_nonlocal_sysv, sibcall_nonlocal_sysv,
1173         sibcall_value_nonlocal_sysv): Add 32768 offset when TARGET_SECURE_PLT
1174         and -fPIC.
1175         * config/rs6000/tramp.asm (trampoline_initial): Use "bcl 20,31".
1176         (__trampoline_setup): Likewise.  Init r30 before plt call.
1177
1178 2005-05-31  DJ Delorie  <dj@redhat.com>
1179
1180         * expr.c (convert_move): When a partial_int requires multiple
1181         conversion steps, make sure successive steps convert the
1182         intermediate value, not the original value.
1183
1184         * expmed.c (expand_mult): Convert partial_int multiplies to
1185         shift/add combinations too.
1186
1187         * genmodes.c (mode_data): Add wider_2x.
1188         (calc_wider_mode): Calculate twice-wider mode too.
1189         (emit_mode_wider): Emit twice-wider mode too.
1190         * machmode.h (mode_2xwider, GET_MODE_2XWIDER_MODE): New.
1191         * expr.c (expand_expr_real_1): Use it for expanding
1192         multiplies.
1193
1194 2005-05-31  Zdenek Dvorak  <dvorakz@suse.cz>
1195
1196         PR tree-optimization/21817
1197         * tree-ssa-loop-im.c (for_each_index): Handle VECTOR_CST.
1198
1199 2005-05-31  Pat Haugen  <pthaugen@us.ibm.com>
1200
1201         * loop.c (loop_invariant_p, valid_initial_value_p): Revert last
1202         change.
1203
1204 2005-05-31  Andrew Pinski  <pinskia@physics.uc.edu>
1205
1206         PR middle-end/20931
1207         PR middle-end/20946
1208         * fold-const.c (fold_checksum_tree): Copy types also if
1209         TYPE_CONTAINS_PLACEHOLDER_INTERNAL is set.
1210         Don't call fold_checksum_tree for TREE_LIST's TREE_CHAIN
1211         first.
1212         Tail recurse TREE_LIST's TREE_CHAIN.
1213
1214 2005-05-31  Andrew Pinski  <pinskia@physics.uc.edu>
1215
1216         PR tree-opt/21732
1217         * tree-ssa-copy.c (dump_copy_of): Create a bitmap and don't visit a
1218         SSA_NAME twice and cause the loop to become finite.  Remove the test
1219         for val.
1220
1221 2005-05-31  Andrew Pinski  <pinskia@physics.uc.edu>
1222
1223         * tree-cfg.c (verify_expr): Add checking for COND_EXPR's conditional
1224         expression.
1225
1226 2005-05-31  Richard Sandiford  <rsandifo@redhat.com>
1227
1228         * doc/tm.texi (TARGET_GET_PCH_VALIDITY, TARGET_PCH_VALID_P): Tweak
1229         the documentation to make it more future-proof.
1230         (TARGET_CHECK_PCH_TARGET_FLAGS): Document this new hook.
1231         * target.h (gcc_target): Add check_pch_target_flags.
1232         * target-def.h (TARGET_CHECK_PCH_TARGET_FLAGS): New macro.
1233         (TARGET_INITIALIZER): Include it.
1234         * toplev.c (default_pch_valid_p): Use targetm.check_pch_target_flags.
1235         * config/sh/sh-protos.h (sh_pch_valid_p): Delete.
1236         * config/sh/sh.c (TARGET_PCH_VALID_P, sh_pch_valid_p): Delete.
1237         (sh_check_pch_target_flags): New function.
1238         (TARGET_CHECK_PCH_TARGET_FLAGS): Override default.
1239
1240 2005-05-31  Richard Guenther  <rguenth@gcc.gnu.org>
1241
1242         * fold-const.c (extract_array_ref): Handle more cases,
1243         do some useful canonicalization of the base.
1244         (fold_binary): Explicitly deal with arrays of zero-sized
1245         structures during folding of &a[i] == &a[j].
1246
1247 2005-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
1248
1249         * doc/install.texi (sparc-sun-solaris2*): Update note
1250         about Sun bug 4910101.
1251         (sparc-sun-solaris2.7): Document bootstrap
1252         failure with Sun WorkShop 6 99/08/18 as.
1253
1254 2005-05-30  Pat Haugen  <pthaugen@us.ibm.com>
1255
1256         * loop.c (loop_invariant_p, valid_initial_value_p): Use
1257         regs_invalidated_by_call instead of call_used_regs.
1258
1259 2005-05-30  Paolo Carlini  <pcarlini@suse.de>
1260
1261         PR middle-end/21743
1262         * builtins.def (BUILT_IN_CLOG, BUILT_IN_CLOGF, BUILT_IN_CLOGL):
1263         Enable.
1264         * doc/extend.texi: Add clog, clogf, clogl.
1265
1266 2005-05-30  H.J. Lu  <hongjiu.lu@intel.com>
1267
1268         PR middle-end/20303
1269         * c-pragma.c: Include "vec.h".
1270         (handle_pragma_visibility): Use VEC.
1271
1272         * doc/invoke.texi: Remove the nested visibility push limit.
1273
1274 2005-05-30  Roger Sayle  <roger@eyesopen.com>
1275
1276         PR rtl-optimization/15422
1277         * reg-stack.c (starting_stack_p): New static global.
1278         (straighten_stack): Delete prototype. Change to update the stack
1279         before the current insn.
1280         (subst_stack_regs): Update call to straighten stack.
1281         (emit_swap_insn): Delete prototype.  For the first insn in a
1282         basic block, update stack_in instead of emitting a real swap.
1283         (change_stack): When changing the stack before the first insn
1284         in a basic block, update stack_in instead of emitting real code.
1285         (compensate_edges): Clear starting_stack_p during compensation.
1286         (convert_regs_1): Keep track of starting_stack_p whilst processing
1287         a basic block.
1288
1289 2005-05-30  Kazu Hirata  <kazu@cs.umass.edu>
1290
1291         * tree-ssa-ccp.c (const_val): Make it static.
1292
1293 2005-05-29  Geoffrey Keating  <geoffk@apple.com>
1294
1295         PR target/21761
1296         * config/rs6000/rs6000.md: Remove stray TARGET_32BIT from
1297         pattern involving `:P'.
1298
1299         * Makefile.in (install-cpp): Depend on installdirs.
1300
1301 2005-05-30  Kazu Hirata  <kazu@cs.umass.edu>
1302
1303         * tree-outof-ssa.c (_elim_graph): Change the type of edge_list
1304         to VEC(int,heap)*.
1305         (new_elim_graph, clear_elim_graph, delete_elim_graph,
1306         elim_graph_add_edge, elim_graph_remove_succ_edge,
1307         FOR_EACH_ELIM_GRAPH_SUCC, FOR_EACH_ELIM_GRAPH_PRED): Use VEC
1308         instead of VARRAY.
1309
1310 2005-05-29  Kazu Hirata  <kazu@cs.umass.edu>
1311
1312         * cgraphunit.c, ipa-inline.c, loop-iv.c, modulo-sched.c,
1313         opts.c, postreload-gcse.c, tree-browser.def, tree-eh.c,
1314         tree-ssa-copyrename.c, tree-vect-analyze.c: Fix typos and
1315         follow spelling conventions in error/dump messages.
1316
1317 2005-05-29  Roger Sayle  <roger@eyesopen.com>
1318             Richard Henderson  <rth@redhat.com>
1319
1320         * ifcvt.c (noce_emit_move_insn): Construct a SET pattern directly
1321         if the RHS isn't suitable for calling emit_move_insn.
1322
1323 2005-05-29  Kazu Hirata  <kazu@cs.umass.edu>
1324
1325         * tree-ssa-ccp.c (ccp_fold): Return immediately after calling
1326         fold_unary and fold_binary.
1327
1328 2005-05-29  Roger Sayle  <roger@eyesopen.com>
1329
1330         * reg-stack.c (propagate_stack): Always copy the source stack to
1331         the destination.  This routine is now only called when this is safe.
1332         (better_edge): New function split out from convert_regs_1 to
1333         determine which of two edges is better to propagate across.
1334         (convert_regs_1):  We need only search for a best edge if the
1335         stack layout hasn't been defined yet.  Use better_edge to help
1336         find beste.  No longer traverse unnecessary edges.
1337
1338 2005-05-29  Keith Besaw  <kbesaw@us.ibm.com>
1339
1340         * tree-ssa-alias.c (new_type_alias): New procedure to
1341         create a type memory tag for a pointer with a may-alias
1342         set determined from a variable declaration.
1343         * tree-flow.h: export declaration of new_type_alias
1344         * tree-optimize.c (init_tree_optimization_passes): document
1345         that pass_may_alias cannot be called after pass_vectorize.
1346         * tree-vect-transform (vect_create_data_ref_ptr): Call
1347         new_type_alias when an type memory tag isn't available
1348         for a reference.
1349         (vectorizable_store): Use copy_virtual_operands to update
1350         virtual defs in place (so that loop_version can be called).
1351         Call mark_for_renaming for the virtual defs in case peeling
1352         is done and virtual uses outside the loop need to be updated.
1353
1354 2005-05-29  Dorit Naishlos  <dorit@il.ibm.com>
1355
1356         PR tree-optimization/21639
1357         * tree-complex.c (pass_lower_vector_s): Remove TODO_ggc_collect.
1358
1359 2005-05-29  Jan Hubicka  <jh@suse.cz>
1360
1361         PR tree-optimization/21562
1362         * cfgexpand.c (construct_init_block): Deal properly with the case
1363         of entry edge not pointing to very first basic block.
1364
1365 2005-05-28  Kazu Hirata  <kazu@cs.umass.edu>
1366
1367         * tree-ssa-ccp.c (ccp_fold): Remove code that produces
1368         non-gimple min invariant.
1369
1370         * Makefile.in (OBJS-common): Add tree-cfgcleanup.o.
1371         * tree-flow.h: Add prototypes for start_recording_case_labels
1372         and end_recording_case_labels.
1373         * tree-cfg.c (start_recording_case_labels,
1374         end_recording_case_labels): Export.
1375         (cleanup_tree_cfg_loop, modified_noreturn_calls,
1376         cleanup_control_flow, cleanup_control_expr_graph,
1377         remove_fallthru_edge, phi_alternatives_equal,
1378         tree_forwarder_block_p, has_abnormal_incoming_edge_p,
1379         remove_forwarder_block, cleanup_forwarder_blocks,
1380         remove_forwarder_block_with_phi, merge_phi_nodes,
1381         gate_merge_phi, pass_merge_phi): Move to ...
1382         * tree-cfgcleanup.c: ... here.
1383
1384         * basic-block.h: Remove forward declaration of bb_ann_d.
1385
1386 2005-05-28  Jan Hubicka  <jh@suse.cz>
1387
1388         * tree-ssa-threadupdate.c: (create_edge_and_update_destination_phis):
1389         Update profile.
1390         * value-prof.c (tree_divmod_fixed_value_transform): Be more verbose in
1391         debug output.
1392         (tree_mod_subtract): Fix profile updating code.
1393         (tree_divmod_values_to_profile): Do not produce useless value profilers
1394         for divisions.
1395
1396 2005-05-28  Kazu Hirata  <kazu@cs.umass.edu>
1397
1398         * tree-ssa-dom.c (vrp_element_p): Define.
1399         (vrp_hash_elt): Change the type of records to
1400         VEC(vrp_element_p,heap).
1401         (vrp_free): New.
1402         (tree_ssa_dominator_optimize): Pass vrp_free to htab_create.
1403         Update uses of VRP records.
1404         (simplify_cond_and_lookup_avail_expr, record_range): Update
1405         uses of VRP records.
1406
1407         * tree-inline.c (cfun_stack): Change the type to
1408         VEC(function_p,heap).
1409         (push_cfun, pop_cfun): Use VEC instead of VARRAY.
1410
1411 2005-05-27  Ian Lance Taylor  <ian@airs.com>
1412
1413         * c-decl.c (add_stmt): Add C frontend specific version.
1414         (stmts_are_full_exprs_p): Remove.
1415         * c-common.h (STMT_IS_FULL_EXPR_P): Remove.
1416         (stmts_are_full_exprs_p): Don't declare.
1417         * c-semantics.c (add_stmt): Remove.
1418
1419 2005-05-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1420
1421         * config/mips/mips-protos.h (mips_declare_object): Add printf
1422         attribute.
1423         * config/mips/mips.c (mips_declare_object_name): Fix format
1424         argument.
1425
1426 2005-05-27  Roger Sayle  <roger@eyesopen.com>
1427
1428         * reg-stack.c (compensate_edge): Remove original prototype.
1429         (propagate_stack): New function to copy the stack layout
1430         at the start of a basic block from the layout at the end of
1431         one of its predecessors.
1432         (compensate_edge): Assume that both source and destination
1433         blocks have already had their stack layouts defined.
1434         (compensate_edges): Traverse all non-entry edges in the CFG
1435         and call compensate_edge on each in turn.
1436         (convert_regs_1): Change return type to void.  Call
1437         propagate_stack instead of compensate_edge.
1438         (convert_regs_2): Change return type to void.  Update call
1439         to convert_regs_1 to ignore the (now void) return value.
1440         (convert_regs): Update calls to convert_regs_2 to ignore
1441         the (now void) return value.  After all the basic blocks have
1442         been processed, call compensate_edges to actually emit new
1443         insns.
1444         (reg_to_stack): Initialize the aux info for each basic block
1445         with FOR_EACH_BB instead of which FOR_EACH_BB_REVERSE.
1446
1447 2005-05-28  Jan Hubicka  <jh@suse.cz>
1448
1449         * except.c (can_throw_internal_1, can_throw_external_1): Add 
1450         "is_resx" argument.
1451         (can_throw_external, can_throw_internal): Bring into sync wrt
1452         dealing resx.
1453         * except.h (can_throw_internal_1, can_throw_external_1): Update
1454         prototype.
1455         * tree-eh.c (tree_can_throw_internal, tree_can_throw_external):
1456         Deal properly with resx.
1457
1458 2005-05-27  Kazu Hirata  <kazu@cs.umass.edu>
1459
1460         * basic-block.h (basic_block_def): Add phi_nodes and
1461         predictions.  Remove tree_annotations.
1462         * predict.c (tree_predicted_by_p, tree_predict_edge,
1463         combine_predictions_for_bb): Adjust references to predictions.
1464         * tree-cfg.c (init_empty_tree_cfg, create_bb): Don't call
1465         create_block_annotation.
1466         (create_block_annotation, free_blocks_annotatios,
1467         clear_blocks_annotations): Remove.
1468         (dump_cfg_stats): Don't print out the memory spent on
1469         bb_ann_d.
1470         (delete_tree_cfg_annotations): Don't call free_blocks_annotations.
1471         * tree-flow-inline.h (bb_ann): Remove.
1472         (phi_nodes, set_phi_nodes): Update references to phi_nodes.
1473         * tree-flow.h (bb_ann_d): Remove.
1474         * tree-if-conv.c (process_phi_nodes): Update a reference to
1475         phi_nodes.
1476         * tree-phinodes.c (reserve_phi_args_for_new_edge,
1477         create_phi_node, remove_phi_node): Likewise.
1478         * tree-pretty-print.c (dump_generic_bb_buff): Don't call bb_ann.
1479         * tree-ssa-dom.c (threaded_blocks): New.
1480         (tree_ssa_dominator_optimize): Initialize, clear, and free
1481         threaded_blocks. Update a call to thread_through_all_blocks.
1482         (thread_across_edge): Use threaded_blocks instead of setting
1483         incoming_edge_threaded.
1484         * tree-ssa-threadupdate.c (threaded_through_all_blocks): Take
1485         a bitmap of blocks that are threaded through.
1486         * tree.h: Move the prototype of threaded_through_blocks to
1487         tree-flow.h.
1488
1489         * domwalk.c (walk_dominator_tree, init_walk_dominator_tree,
1490         fini_walk_dominator_tree): Use VEC instead of VARRAY.
1491         * domwalk.h (dom_walk_data): Change the type of
1492         block_data_stack and free_block_data to VEC(void_p,heap)*.
1493         * tree-ssa-dse.c (dse_initialize_block_local_data,
1494         dse_optimize_stmt, dse_record_phis, dse_finalize_block): Use
1495         VEC instead of VARRAY.
1496
1497 2005-05-27  Jan Hubicka  <jh@suse.cz>
1498
1499         * cgraph.c: Include tree-gimple.h
1500         (cgraph_edge): Rename expr to stmt.
1501         (cgraph_create_edge): Likewise.
1502         (cgraph_clone_node): Likewise.
1503         * cgraph.h (cgraph_node): Use call_stmt instead of call_expr.
1504         * cgraphunit.c (record_call_1): Rename to ...
1505         (record_reference): ... this one; do not build edges.
1506         (cgraph_varpool_analyze_pending_decls): Call record_reference directly.
1507         (current_basic_block): Kill.
1508         (cgraph_create_edges): Rewrite to work on gimple statements nicely.
1509         (verify_cgraph_node): Likewise.
1510         * tree-inline.c (copy_body_r): Do not mess up with cgraph edges.
1511         (copy_bb): Mess up with cgraph edges here; simplify EH handling.
1512         (copy_edges_for_bb): Simplify EH handling.
1513         (expand_call_inline): Pass statement to cgraph_edge and
1514         cgraph_create_edge.
1515
1516 2005-05-27  Richard Guenther  <rguenth@gcc.gnu.org>
1517
1518         * tree-inline.c (copy_body_r): Manually fold *& to deal
1519         with ADDR_EXPRs with mismatched types for now.
1520
1521         * gimplify.c (fold_indirect_ref_rhs): New function.
1522         (gimplify_modify_expr_rhs): Use it instead of pessimistic
1523         fold_indirect_ref.
1524
1525         * fold-const.c (fold_indirect_ref_1): Add type argument;
1526         make sure the resulting expression is of this type.
1527         (build_fold_indirect_ref, fold_indirect_ref): Adjust callers.
1528
1529 2005-05-27  Kazu Hirata  <kazu@cs.umass.edu>
1530
1531         PR tree-optimization/21658
1532         * tree-ssa-ccp.c (ccp_fold): Call fold_binary instead of
1533         fold_binary_to_constant.  Likewise, call fold_unary instead of
1534         fold_unary_to_constant.
1535
1536 2005-05-27  Nathan Sidwell  <nathan@codesourcery.com>
1537
1538         * vec.h: Implement integral type vector specialization.
1539         (VEC_T): Define a non-GTY structure.
1540         (VEC_T_GTY): Define a GTY structure.
1541         (VEC_TA): Rename to ...
1542         (VEC_TA_GTY): ... here.
1543         (DEF_VEC_I, DEF_VEC_ALLOC_I): New.
1544         (DEF_VEC_P, DEF_VEC_ALLOC_P): Adjust.
1545         (DEF_VEC_FUNC_P, DEF_VEC_ALLOC_FUNC_P): New, broken out of
1546         DEF_VEC_P and DEF_VEC_ALLOC_P.
1547         (DEF_VEC_O, DEF_VEC_ALLOC_O): Adjust.
1548         (DEF_VEC_FUNC_O, DEF_VEC_ALLOC_FUNC_O): New, broken out of
1549         DEF_VEC_O and DEF_VEC_ALLOC_O.
1550         * global.c: Use DEF_VEC_I, DEF_VEC_ALLOC_I.
1551         * lambda-code.c: Likewise.
1552         * tree-into-ssa.c: Likewise.
1553         * tree-ssa-live.c: Likewise.
1554
1555 2005-05-27  Kazu Hirata  <kazu@cs.umass.edu>
1556
1557         * tree-into-ssa.c (update_ssa): Ensure that the operand cache
1558         is up-to-date.
1559         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
1560         update_stmt_if_modified before calling update_ssa.
1561
1562 2005-05-27  Ralf Corsepius  <ralf.corsepius@rtems.org>
1563
1564         * config/rs6000/t-rtems: Remove roe multilib variant.
1565
1566 2005-05-26  Roger Sayle  <roger@eyesopen.com>
1567
1568         PR tree-optimization/9814
1569         * ifcvt.c (noce_emit_move_insn): If we fail to recognize the move
1570         instruction, add the necessary clobbers by re-expanding the RTL
1571         for arithmetic operations via optab.c's expand_unop/expand_binop.
1572         (noce_try_bitop): New function to optimize bit manipulation idioms
1573         of the form "if (x & C) x = x op C" and "if (!(x & C) x = x op C".
1574         (noce_process_if_block): Call noce_try_bitop.
1575
1576 2005-05-26  Roger Sayle  <roger@eyesopen.com>
1577
1578         * reg-stack.c (convert_regs_entry, convert_regs_exit,
1579         convert_regs_1, convert_regs_2, convert_regs): Delete prototypes.
1580         (reg_to_stack): Move to end of the file.  Initialize the per
1581         basic block information here, instead of...
1582         (convert_regs_entry): Here.
1583         (convert_regs): Change unused return type to void.
1584
1585 2005-05-27  Kazu Hirata  <kazu@cs.umass.edu>
1586
1587         * c-pch.c, timevar.c, timevar.h, unwind-compat.c,
1588         unwind-dw2-fde-compat.c, unwind-dw2-fde.c, config/mmix/mmix.h,
1589         config/rs6000/eabispe.h, config/rs6000/lynx.h,
1590         config/sh/elf.h, config/sh/symbian-pre.h,
1591         config/sparc/sparc-protos.h: Update copyright.
1592
1593 2005-05-26  Mike Stump  <mrs@apple.com>
1594
1595         * darwin.h (ASM_OUTPUT_LABELREF): Handle quoted non-lazy pointers
1596         for Objective-C++.
1597         
1598 2005-05-26  Richard Guenther  <rguenth@gcc.gnu.org>
1599
1600         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
1601         See through ADDR_EXPR in finding place to propagate into.
1602
1603 2005-05-26  Kazu Hirata  <kazu@cs.umass.edu>
1604
1605         * c-common.c, c-parser.c, cfgbuild.c, cfghooks.c, cfghooks.h,
1606         cfgrtl.c, cgraphunit.c, ddg.c, expr.h, gcse.c, ggc-page.c,
1607         ggc-zone.c, gimplify.c, ipa-inline.c, longlong.h, targhooks.c,
1608         tree-flow-inline.h, tree-pass.h, tree-ssa-dse.c,
1609         tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c,
1610         tree-ssa-operands.c, tree-vect-analyze.c,
1611         tree-vect-transform.c, tree-vectorizer.c, tree.c,
1612         config/arm/arm.c, config/bfin/bfin.c, config/frv/frv.c,
1613         config/frv/frv.md, config/i386/i386.c, config/i386/sse.md,
1614         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
1615         config/mcore/mcore.c, config/mips/mips.c, config/mips/mips.md,
1616         config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
1617         config/rs6000/rs6000.h, config/sh/sh.c, config/sh/sh.md,
1618         config/sh/ushmedia.h, config/sparc/sparc.c,
1619         config/sparc/sparc.md, config/stormy16/stormy-abi: Fix comment
1620         typos.  Follow spelling conventions.
1621         * doc/invoke.texi, doc/tm.texi, doc/tree-ssa.texi: Fix typos.
1622         Follow spelling conventions.
1623
1624 2005-05-26  David Ung  <davidu@mips.com>
1625
1626         * config/mips/mips.c (mips_use_ins_ext_p): New helper function
1627         that determines whether the MIPS32/64 R2 ext/ins should be used.
1628         * config/mips/mips.h (ISA_HAS_EXT_INS): New macro.
1629         * config/mips/mips.md (extzv): Changed predicate for operand to
1630         nonimmediate_operand. Add code to generate insn patterns for
1631         extzvsi and extzvdi.
1632         (extzv<mode>): New pattern to match mips32/64 r2 ext insn.
1633         (insv): Similarly for insertion.
1634         (insv<mode>): Similarly.
1635
1636 2005-05-26  Paolo Bonzini  <bonzini@gnu.org>
1637
1638         * simplify-rtx.c (avoid_constant_pool_reference): Support
1639         offsetted addresses in the constant pool.
1640
1641 2005-05-26  Paolo Bonzini  <bonzini@gnu.org>
1642
1643         * df.h (DF_SUBREGS, df_local_def_available_p, df_insn_modified_p): New.
1644         * df.c (DF_SUBREGS, df_local_def_available_p, df_insn_modified_p): New.
1645
1646 2005-05-26  Jakub Jelinek  <jakub@redhat.com>
1647
1648         PR target/21716
1649         * reg-stack.c (swap_rtx_condition): Don't crash if %ax user was not
1650         found in the basic block and last insn in the basic block is not
1651         INSN_P.  Remove explicit unspec numbers that are no longer valid
1652         from comments.
1653
1654 2005-05-26  Paolo Bonzini  <bonzini@gnu.org>
1655
1656         * tree-vect-transform.c (vectorizable_operation): Try word_mode
1657         vectorization if UNITS_PER_WORD == UNITS_PER_SIMD_WORD, even
1658         if a vector mode is available.
1659
1660 2005-05-25  Roger Sayle  <roger@eyesopen.com>
1661
1662         PR middle-end/21709
1663         * fold-const.c (const_binop): Check for division by zero during
1664         complex division.
1665
1666 2005-05-26  Ian Lance Taylor  <ian@airs.com>
1667
1668         * reload1.c (verify_initial_elim_offsets): Add braces to avoid
1669         having a declaration after a statement.
1670
1671 2005-05-26  Richard Sandiford  <rsandifo@redhat.com>
1672
1673         * opt-functions.awk (var_type): New function.
1674         (var_set): Use CLVC_STRING if var_type returns "const char *".
1675         * opth-gen.awk: Use var_type to find out the types of variables.
1676         Don't print comments above each "extern" definition.
1677         * optc-gen.awk: Use var_type in the same way.
1678         * opts.h (cl_var_cond): Rename to...
1679         (cl_var_type): ...this.  Add CLVC_STRING.
1680         (cl_option): Make "flag_var" a "void *" pointer.  Replace "var_cond"
1681         with "var_type".
1682         * opts.c (handle_option, option_enabled): Update after above name
1683         change.  Cast flag_var before using it.  Handle CLVC_STRING.
1684         
1685         * config/alpha/alpha.h (alpha_tls_size): Delete.
1686         * config/alpha/alpha.c (alpha_tls_size, alpha_cpu_string)
1687         (alpha_tune_string, alpha_tp_string, alpha_fprm_string)
1688         (alpha_fptm_string, alpha_mlat_string): Delete.
1689         (alpha_handle_option): Don't set the above variables here.  Use the
1690         integer argument to check the validity of -mtls-size=.
1691         * config/alpha/alpha.opt (mcpu=, mtune=, mfp-rounding-mode=)
1692         (mfp-trap-mode=, mtrap-precision=, mmemory-latency=): Add Var()s.
1693         (mtls-size=): Likewise.  Convert to a UInteger and initialize the
1694         variable to 32.
1695
1696         * config/arc/arc.c (arc_cpu_string, arc_text_string)
1697         (arc_data_string, arc_rodata_string): Delete.
1698         (arc_handle_option): Don't set the above variables here.
1699         * config/arc/arc.opt (mcpu=, mtext=, mdata=, mrodata=): Add Var()s
1700         and initialize them.
1701
1702         * config/arm/arm.c (target_fpu_name, target_fpe_name)
1703         (target_float_abi_name, target_abi_name, structure_size_string)
1704         (arm_pic_register_string): Delete.
1705         (arm_handle_option): Don't set the above variables here, except
1706         in the handling of -mhard-float and -msoft-float.
1707         * config/arm/arm.opt (mabi=, mfloat-abi=, mfp=, mfpe=, mfpu=)
1708         (mpic-register=, mstructure-size-boundary=): Add Var()s.
1709
1710         * config/avr/avr.c (avr_init_stack, avr_mcu_name, TARGET_HANDLE_OPTION)
1711         (avr_handle_option): Delete.
1712         * config/avr/avr.opt (mmcu=, minit-stack=): Add Var()s and initialize
1713         them.
1714
1715         * config/bfin/bfin.c (bfin_library_id): Delete.
1716         (bfin_handle_option): Don't set it.
1717         * config/bfin/bfin.opt (mshared-library-id=): Add Var().
1718
1719         * config/c4x/c4x.h (c4x_rpts_cycles): Delete.
1720         * config/c4x/c4x.c (c4x_rpts_cycles): Delete.
1721         (c4x_handle_option): Don't set c4x_rpts_cycles here.
1722         * config/c4x/c4x.opt (mrpts=): Add Var().
1723
1724         * config/cris/aout.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't set
1725         cris_elinux_stacksize_str here.
1726         * config/cris/aout.opt (melinux-stacksize=): Add Var().
1727         * config/cris/cris.h (cris_max_stackframe_str, cris_cpu_str)
1728         (cris_tune_str, cris_elinux_stacksize_str): Delete.
1729         * config/cris/cris.c (cris_max_stackframe_str, cris_cpu_str)
1730         (cris_tune_str, cris_elinux_stacksize_str): Delete.
1731         (cris_handle_option): Don't set the above variables here.
1732         * config/cris/cris.opt (mcpu=, march=, mtune=, mmax-stackframe=)
1733         (max-stackframe=): Add Var()s.
1734
1735         * config/i386/i386.h (ix86_tune_string, ix86_arch_string): Delete.
1736         * config/i386/i386.c (ix86_cmodel_string, ix86_asm_string)
1737         (ix86_tls_dialect_string, ix86_tune_string, ix86_arch_string)
1738         (ix86_fpmath_string, ix86_regparm_string, ix86_align_loops_string)
1739         (ix86_align_jumps_string, ix86_preferred_stack_boundary_string)
1740         (ix86_branch_cost_string, ix86_align_funcs_string): Delete.
1741         (ix86_handle_option): Don't set the above variables here.
1742         * config/i386/i386.opt (malign-functions=, malign-jumps=)
1743         (malign-loops=, march=, masm=, mbranch-cost=, mcmodel=, mfpmath=)
1744         (mpreferred-stack-boundary=, mregparm=, mtls-dialect=, mtune=): Add
1745         Var()s.
1746
1747         * config/ia64/ia64.h (ia64_tls_size): Delete.
1748         * config/ia64/ia64.c (ia64_tls_size): Delete.
1749         (ia64_handle_option): Treat -mtls-size= as a UInteger option,
1750         reading the integer argument from the "value" parameter.  Don't
1751         set ia64_tls_size here.
1752         * config/ia64/ia64.opt (mtls-size=): Turn into a UInteger option.
1753         Add Var() and Init().
1754
1755         * config/m32r/m32r.h (m32r_cache_flush_func): Delete.
1756         (m32r_cache_flush_trap): Delete.
1757         * config/m32r/m32r.c (m32r_cache_flush_func): Delete.
1758         (m32r_cache_flush_trap): Delete.
1759         (m32r_handle_option): Don't set the above variables when handling
1760         -mflush-func= and -mflush-trap=.
1761         * config/m32r/m32r.opt (-mflush-func=, -mflush-trap=): Add Var()s
1762         and Init()s.
1763
1764         * config/mips/mips.h (mips_cache_flush_func): Delete.
1765         * config/mips/mips.c (mips_arch_string, mips_tune_string)
1766         (mips_cache_flush_func): Delete.
1767         (mips_handle_option): Don't set the above variables when handling
1768         -march=, -mtune= and -mflush-func=.
1769         * config/mips/mips.opt (march=, mflush-func=, mtune=): Add Var()s.
1770
1771         * config/s390/s390.c (s390_arch_string): Delete.
1772         (s390_handle_option): Don't set it here.
1773         * config/s390/s390.opt (march=): Add Var().
1774
1775         * config/sparc/sparc.h (sparc_cmodel_string): Delete.
1776         * config/sparc/sparc.c (sparc_cmodel_string): Delete.
1777         (sparc_handle_option): Don't set it here.
1778         * config/sparc/sparc.opt (mcmodel=): Add Var().
1779
1780 2005-05-25  Roger Sayle  <roger@eyesopen.com>
1781
1782         * convert.c (convert_to_integer) <POINTER_TYPE>: Avoid recursive
1783         call to convert_to_integer by building the NOP_EXPR directly.
1784
1785 2005-05-25  Richard Sandiford  <rsandifo@redhat.com>
1786
1787         * config/rs6000/rs6000.opt (mprioritize-restricted-insns=): Fix typo.
1788
1789 2005-05-25  Daniel Berlin  <dberlin@dberlin.org>
1790             Jeff Law  <law@redhat.com>
1791
1792         * tree-cfg.c (verify_expr, case ADDR_EXPR): Verify invariant,
1793         constant and side_effects of the ADDR_EXPR are consistent.
1794
1795         * tree-nested.c (convert_local_reference): Set CURRENT_FUNCTION_DECL
1796         appropriately around calls to recompute_tree_invarant_for_addr_expr.
1797
1798 2005-05-25  Ulrich Weigand  <uweigand@de.ibm.com>
1799
1800         * config/s390/s390.c (GP_ARG_NUM_REG, FP_ARG_NUM_REG): New defines.
1801         (s390_function_arg, s390_gimplify_va_arg): Use them.
1802         (s390_register_info): Save only required subset of argument
1803         registers into save area for va_list.
1804         (s390_va_start): Initialize only required elements of va_list struct.
1805         (s390_build_builtin_va_list): Set va_list_[gf]pr_counter_field.
1806
1807 2005-05-25  Ulrich Weigand  <uweigand@de.ibm.com>
1808
1809         * reload1.c (verify_initial_elim_offsets): Return boolean status
1810         instead of aborting.
1811         (reload): Adapt verify_initial_elim_offsets call site.  Restart
1812         main loop if some initial elimination offsets changed.
1813
1814 2005-05-25  Adam Nemet  <anemet@lnxw.com>
1815
1816         * config/rs6000/lynx.h (CC1_SPEC): Use -maix-struct-return instead
1817         of -mno-svr4-struct-return.
1818
1819 2005-05-25  Daniel Berlin  <dberlin@dberlin.org>
1820
1821         Fix PR tree-optimization/21705
1822         
1823         * tree-ssa-pre.c (in_fre): New static variable.
1824         (create_value_expr_from): Recursively value number reference ops
1825         in argument lists.
1826         (can_value_number_call): Temporary restrict only exists for
1827         PRE, not FRE.
1828
1829 2005-05-25  Kazu Hirata  <kazu@cs.umass.edu>
1830
1831         * tree-into-ssa.c (rewrite_into_ssa, update_ssa): Replace
1832         sizeof (bitmap *) with sizeof (bitmap).
1833
1834 2005-05-25  Daniel Berlin <dberlin@dberlin.org>
1835
1836         * lambda-code.c (perfect_nestify): Call update_stmt on the exit
1837         condition.
1838
1839 2005-05-25  Adrian Straetling  <straetling@de.ibm.com>
1840
1841         * config/s390/s390.c (TARGET_INSN_VALID_WITHIN_DOLOOP): Set to
1842         hook_bool_rtx_true.
1843
1844 2005-05-25  Jan Hubicka  <jh@suse.cz>
1845
1846         * Makefile.in (ipa-inline.o): Add COEVERAGE_H dependency.
1847         * cgraph.c (cgraph_create_node): Reset estimated_growth.
1848         * cgraph.h (cgraph_global_info): Add estimated_growth.
1849         * ipa-inline.c: Include coverage.h
1850         (max_insns, max_count): New static variables.
1851         (cgraph_estimate_size_after_inlining): Cache the result.
1852         (cgraph_estimate_growth):
1853         * passes.c (rest_of_clean_state): Kill coverage_end_function.
1854         * timevar.def (TV_INLINE_HEURISTICS): New timevar.
1855         * tree-optimize.c (init_tree_optimization_passes): Move profiling before
1856         inlining.
1857         (ipa_passes): Initialize bitmaps.
1858
1859 2005-05-25  Adrian Straetling  <straetling@de.ibm.com>
1860
1861         * loop-doloop.c: Include "target.h". 
1862           (doloop_valid_p): Move tests to function in targhooks.c.
1863         * target.h (struct gcc_target): New target hook
1864           "insn_valid_within_doloop".
1865         * target-def.h: Define default value for "insn_valid_within_doloop".
1866           (TARGET_INITIALIZER): Insert new target hook into initializer.
1867         * targhooks.c (default_insn_valid_within_doloop): New function.
1868         * targhooks.h (default_insn_valid_within_doloop): Declare.
1869         * hooks.c (hook_bool_rtx_true): New function.
1870         * hooks.h (hook_bool_rtx_true): Declare.
1871         * doc/tm.texi: Add documentation for new target hook.
1872
1873 2005-05-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
1874
1875         PR target/21412
1876         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): New macro
1877         * config/sparc/sparc-protos.h (tls_symbolic_operand): Delete.
1878         (sparc_tls_referenced_p): New prototype.
1879         * config/sparc/sparc.c (tls_symbolic_operand): Delete.
1880         (sparc_expand_move): Look for TLS addresses with constant offsets.
1881         (legitimate_constant_p): Use SPARC_SYMBOL_REF_TLS_P instead of
1882         tls_symbolic_operand.
1883         (legitimate_pic_operand_p): Likewise.
1884         (legitimate_address_p): Likewise.
1885         (legitimize_address): Likewise.
1886         (sparc_tls_symbol_ref_1): New function.
1887         (sparc_tls_referenced_p): New function.
1888         * config/sparc/predicates.md (tgd_symbolic_operand): Use
1889         SYMBOL_REF_TLS_MODEL instead of tls_symbolic_operand.
1890         (tld_symbolic_operand): Likewise.
1891         (tie_symbolic_operand): Likewise.
1892         (tle_symbolic_operand): Likewise.
1893
1894 2005-05-24  DJ Delorie  <dj@redhat.com>
1895         
1896         * common.opt (-Wattributes): New.  Default true.
1897         * doc/invoke.texi (-Wno-attributes): Document.
1898         
1899         * attribs.c (decl_attributes): Move warning control from if() to
1900         warning(OPT_*).
1901         * c-common.c (handle_packed_attribute): Likewise.
1902         (handle_nocommon_attribute): Likewise.
1903         (handle_common_attribute): Likewise.
1904         (handle_noreturn_attribute): Likewise.
1905         (handle_noinline_attribute): Likewise.
1906         (handle_always_inline_attribute): Likewise.
1907         (handle_used_attribute): Likewise.
1908         (handle_unused_attribute): Likewise.
1909         (handle_const_attribute): Likewise.
1910         (handle_transparent_union_attribute): Likewise.
1911         (handle_constructor_attribute): Likewise.
1912         (handle_destructor_attribute): Likewise.
1913         (handle_mode_attribute): Likewise.
1914         (handle_alias_attribute): Likewise.
1915         (handle_visibility_attribute): Likewise.
1916         (handle_tls_model_attribute): Likewise.
1917         (handle_malloc_attribute): Likewise.
1918         (handle_returns_twice_attribute): Likewise.
1919         (handle_pure_attribute): Likewise.
1920         (handle_deprecated_attribute): Likewise.
1921         (handle_vector_size_attribute): Likewise.
1922         (handle_nothrow_attribute): Likewise.
1923         (handle_cleanup_attribute): Likewise.
1924         (handle_warn_unused_result_attribute): Likewise.
1925         (handle_sentinel_attribute): Likewise.
1926         * c-decl.c (diagnose_mismatched_decls): Likewise.
1927         (start_decl): Likewise.
1928         (grokdeclarator): Likewise.
1929         (start_function): Likewise.
1930         * c-format.c (check_function_format): Likewise.
1931         * stor-layout.c (place_field): Likewise.
1932         (finalize_record_size): Likewise.
1933         * tree.c (handle_dll_attribute)): Likewise.
1934         * varasm.c (default_assemble_visibility): Likewise.
1935         * config/darwin.c (darwin_handle_weak_import_attribute): Likewise.
1936         (darwin_assemble_visibility): Likewise.
1937         * config/arc/arc.c (arc_handle_interrupt_attribute): Likewise.
1938         * config/arm/arm.c (arm_handle_fndecl_attribute): Likewise.
1939         (arm_handle_isr_attribute): Likewise.
1940         * config/avr/avr.c (avr_handle_progmem_attribute): Likewise.
1941         (avr_handle_fndecl_attribute): Likewise.
1942         * config/bfin/bfin.c (handle_int_attribute): Likewise.
1943         * config/c4x/c4x.c (c4x_handle_fntype_attribute): Likewise.
1944         * config/h8300/h8300.c (h8300_handle_fndecl_attribute): Likewise.
1945         (h8300_handle_eightbit_data_attribute): Likewise.
1946         (h8300_handle_tiny_data_attribute): Likewise.
1947         * config/i386/i386.c (ix86_handle_cdecl_attribute): Likewise.
1948         (ix86_handle_regparm_attribute): Likewise.
1949         (ix86_handle_struct_attribute): Likewise.
1950         * config/i386/winnt.c (ix86_handle_shared_attribute): Likewise.
1951         (i386_pe_encode_section_info): Likewise.
1952         * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
1953         * config/ip2k/ip2k.c (ip2k_handle_progmem_attribute): Likewise.
1954         (ip2k_handle_fndecl_attribute): Likewise.
1955         * config/m32r/m32r.c (m32r_handle_model_attribute): Likewise.
1956         * config/m68hc11/m68hc11 (m68hc11_handle_page0_attribute): Likewise.
1957         (m68hc11_handle_fntype_attribute): Likewise.
1958         (m68hc11_encode_section_info): Likewise.
1959         * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
1960         * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
1961         * config/ns32k/ns32k.c (ns32k_handle_fntype_attribute): Likewise.
1962         * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute): Likewise.
1963         * config/sh/sh.c (sh_handle_interrupt_handler_attribute): Likewise.
1964         (sh_handle_sp_switch_attribute): Likewise.
1965         (sh_handle_trap_exit_attribute): Likewise.
1966         * config/sh/symbian.c (sh_symbian_dllimport_p): Likewise.
1967         (sh_symbian_handle_dll_attribute): Likewise.
1968         * config/stormy16/stormy16.c (xstormy16_handle_interrupt_attribute): Likewise.
1969         (xstormy16_handle_below100_attribute): Likewise.
1970         * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
1971
1972         * c-common.c (unsigned_conversion_warning): Move warning control
1973         from if() to warning(OPT_*).
1974         (c_common_truthvalue_conversion): Likewise.
1975         (c_do_switch_warnings): Likewise.
1976         * c-decl.c (diagnose_mismatched_decls): Likewise.
1977         (diagnose_mismatched_decls): Likewise.
1978         (define_label): Likewise.
1979         (grokdeclarator): Likewise.
1980         * c-format.c (check_format_info): Likewise.
1981         * c-lex.c (interpret_integer): Likwise.
1982         (lex_string): Likewise.
1983         * c-opts.c (c_common_post_options): Likewise.
1984         * c-parser.c (c_parser_unary_expression): Likewise.
1985         * c-pragma.c (handle_pragma_redefine_extname): Likewise.
1986         (handle_pragma_extern_prefix): Likewise.
1987         * c-typeck.c (build_binary_op): Likewise.
1988         * gcse.c (is_too_expensive): Likewise.
1989         * opts.c (decode_options): Likewise.
1990         * stor-layout.c (place_field): Likewise.
1991         * tree-cfg.c (remove_bb): Likewise.
1992
1993         * c.opt (-Wreturn-type): Add Var(warn_return_type).
1994         * flags.h (warn_return_type): Remove.
1995         * toplev.c (warn_return_type): Likewise.
1996
1997 2005-05-24  Kelley Cook  <kcook@gcc.gnu.org>
1998
1999         * configure.ac: Don't use gcc_AC_C_LONG_LONG.  Check for
2000         existence of long long and __int64 before determining their size.
2001         * aclocal.m4: Delete gcc_AC_C_LONG_LONG.
2002         * configure, config.h.in:  Regenerate.
2003
2004 2005-05-24  Kelley Cook  <kcook@gcc.gnu.org>
2005
2006         * configure: Regenerate.
2007
2008 2005-05-24  Ziemowit Laski  <zlaski@apple.com>
2009
2010         * c-common.h (objc_comptypes): Remove prototype.
2011         (objc_compare_types): New prototype.
2012         (objc_volatilized_decl): Likewise.
2013         (objc_type_quals_match): Likewise.
2014         * c-decl.c (objc_mark_locals_volatile): Streamline by calling
2015         objc_volatilize_decl().
2016         * c-typeck.c (comp_target_types): Remove third parameter; do
2017         not call objc_comptypes().
2018         (comptypes): Remove calls to objc_comptypes().
2019         (build_function_call): Extend compatible prototype check to ObjC.
2020         (build_conditional_expr): Adjust call to comp_target_types().
2021         (convert_for_assignment): Call objc_compare_types() instead of
2022         objc_comptypes(); adjust calls to comp_target_types(); call
2023         objc_type_quals_match() before issuing qualifier mismatch
2024         warnings.
2025         (build_binary_op): Call objc_compare_types() before issuing
2026         pointer mismatch warnings; adjust calls to
2027         comp_target_types().
2028         * stub-objc.c (objc_comptypes): Remove stub.
2029         (objc_compare_types): New stub.
2030         (objc_volatilized_decl): Likewise.
2031         (objc_type_quals_match): Likewise.
2032
2033 2005-05-24  Paolo Carlini  <pcarlini@suse.de>
2034
2035         * config/ia64/ia64intrin.h: Define nothing for C++:
2036         overloaded builtins have been ported to C++.
2037
2038 2005-05-24  Jeff Law  <law@redhat.com>
2039
2040         * tree-nested.c (build_addr): New "context" argument.  Temporarily
2041         set current_function_decl around the call to build the ADDR_EXPR.
2042         (get_static_chain): Pass proper context to build_addr.
2043         (convert_nl_goto_reference): Likewise.
2044         (convert_tramp_reference): Likewise.
2045         (final_nesting_tree_1): Likewise.
2046         * tree-profile.c (tree_gen_interval_profiler): Likewise.
2047         (tree_gen_pow2_profiler): Likewise.
2048         (tree_gen_one_value_profiler): Likewise.
2049         * tree-ssa-loop-ivopts.c (build_addr_strip_iref): Likewise.
2050         * tree.h (build_addr): Update prototype.
2051
2052 2005-05-24  Kazu Hirata  <kazu@cs.umass.edu>
2053
2054         * tree-flow.h (bb_ann_d): Remove has_escape_site.
2055         * tree-ssa-alias.c (compute_points_to_addr_escape): Don't
2056         write to has_escape_site.
2057
2058 2005-05-24  Jeff Law  <law@redhat.com>
2059
2060         * Makefile.in (tree-cfg.o): Depend on tree-ssa-propagate.h.
2061         * tree-cfg.c: Include tree-ssa-propagate.h.
2062         (replace_uses_by): Call recompute_tree_invarant_for_addr_expr as
2063         needed.
2064
2065 2005-05-24  Nick Clifton  <nickc@redhat.com>
2066
2067         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
2068         __NO_FPRS__ when 'f' class registers will not be available. 
2069
2070 2005-05-24  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
2071
2072         * config/m32r/m32r.c (m32r_expand_block_move):  Return 0 if
2073         nothing was done.
2074         * config/m32r/m32r.md (movmemsi):  If m32r_expand_block_move did
2075         nothing then FAIL.
2076         * config/m32r/m32r/m32r-protos.h  (m32r_expand_block_move): Update
2077         prototype.
2078
2079 2005-05-23  Jeff Law  <law@redhat.com>
2080
2081         * tree-ssa-dom.c (cprop_into_stmt): Do not call
2082         recompute_tree_invariant_for_addr_expr here.
2083         (optimize_stmt): Call it here instead and do so if anything
2084         at all has changed in the statement and the RHS is an ADDR_EXPR.
2085         * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): If
2086         needed, call recompute_tree_invariant_for_addr_expr.
2087         * tree-ssa-propagate.c (substitute_and_fold): Call
2088         recompute_tree_invariant_for_addr_expr as needed.
2089
2090 2005-05-23  Andreas Krebbel  <krebbel1@de.ibm.com>
2091
2092         * config/s390/s390.c (s390_optimize_prologue): Don't replace an insn
2093         saving less registers than the replacement.
2094
2095 2005-05-23  Jan Hubicka  <jh@suse.cz>
2096
2097         * tree-flow.h (stmt_ann_d): Kill GTY ((skip)) mark on BB.
2098
2099 2005-05-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
2100
2101         * config/sparc/sparc-protos.h (sparc_expand_move): New prototype.
2102         * config/sparc/sparc.c (sparc_expand_move): New function.
2103         (sparc_emit_set_const64): Rewrite assert condition on entry.
2104         (legitimate_constant_p) <CONST_VECTOR>: New case.
2105         (legitimize_pic_address): Use TARGET_ARCH64 to select the mode.
2106         * config/sparc/sparc.md (movqi, movhi, movsi, movdi, movV32,
2107         movV64, movtf): Use nonimmediate_operand for the first operand.
2108         Rewrite.  Only invoke sparc_expand_move.
2109         * config/sparc/predicates.md (input_operand): Reorder tests.
2110
2111 2005-05-23  Jan Beulich  <jbeulich@novell.com>
2112
2113         * gthr-posix.h (__gthread_recursive_mutex_init_function): Add
2114         missing return statement.
2115
2116 2005-05-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
2117
2118         * config/sparc/sparc.c (sparc_emit_float_lib_cmp): Use
2119         emit_move_insn for moves to TFmode stack slots.
2120
2121 2005-05-21  Richard Guenther  <rguenth@gcc.gnu.org>
2122
2123         * tree-stdarg.c (execute_optimize_stdarg): Handle references
2124         to va_list of the form &va[0].
2125
2126 2005-05-20  Jan Hubicka  <jh@suse.cz>
2127
2128         * Makefile.in (insn-emit.o): Add basic-block.h dependency.
2129         * genemit.c (main): Make insn-emit to include basic-block.h too.
2130
2131 2005-05-20  Jan Hubicka  <jh@suse.cz>
2132
2133         * cgraphunit.c (cgraph_expand_function): Force function being lowered.
2134
2135 2005-05-19  Richard Henderson  <rth@redhat.com>
2136
2137         * config/alpha/alpha.c (emit_unlikely_jump, emit_load_locked,
2138         emit_store_conditional): Split out from ...
2139         (alpha_split_atomic_op): ... here.
2140         (alpha_split_compare_and_swap): New; extract from .md file.
2141         (alpha_split_lock_test_and_set): Likewise.
2142         * config/alpha/alpha-protos.h: Update.
2143         * config/alpha/sync.md (sync_compare_and_swap<I48MODE>): Move
2144         split code into alpha.c.
2145         (sync_lock_test_and_set<I48MODE>): Likewise.
2146
2147 2005-05-19  Richard Henderson  <rth@redhat.com>
2148
2149         * unwind.h, unwind-pe.h: Revert gcc_unreachable change of 05-17.
2150
2151 2005-05-19  Richard Henderson  <rth@redhat.com>
2152
2153         * config/i386/sse.md (mulv4si3): Use all register inputs.
2154         (mulv2di3): Likewise.
2155
2156 2005-05-19  Richard Guenther  <rguenth@gcc.gnu.org>
2157
2158         * tree-ssa-loop-ivopts.c (determine_base_object): Use
2159         build_fold_addr_expr to generate trees of correct type.
2160         Use fold_buildN if possible.
2161
2162 2005-05-19  Jan Hubicka  <jh@suse.cz>
2163
2164         * basic-block.h (REG_BR_PROB_BASE): Define.
2165         * cgraph.c (cgraph_create_edge): Initialize loop_nest and count.
2166         (dump_cgraph_node): Dump count.
2167         (cgraph_clone_edge): Rescale counts.
2168         (cgraph_clone_node): Likewise.
2169         * cgraph.h: Include basic-block.h
2170         (cgraph_node): Add count.
2171         (cgraph_edge): Add count and loop_nest.
2172         (cgraph_node, cgraph_edge, cgraph_clone_edge, cgraph_clone_node):
2173         Update prototypes.
2174         * cgraphunit.c: Kill now redundant inlining comment.
2175         (cgraph_create_edges): Make static, maintain current basic block;
2176         fix pasto.
2177         (record_call_1): Fill in new fields.
2178         * ipa-inline.c (cgraph_clone_inlined_nodes): Update call of
2179         cgraph_clone_node.
2180         (cgraph_decide_recursive_inlining): Likewise.
2181         * rtl.h (REG_BR_PROB_BASE): Kill.
2182         * tree-inline.c (copy_body_r): Update call of cgraph_clone_edge.
2183         (expand_call_inline): Update call of cgraph_create_edge.
2184         * tree-optimize.c (tree_rest_of_compilation): Likewise.
2185
2186 2005-05-19  Nick Clifton  <nickc@redhat.com>
2187
2188         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use the
2189         new rs6000_explicit_options structure.
2190
2191 2005-05-19  Richard Henderson  <rth@redhat.com>
2192
2193         PR target/21390
2194         * config/alpha/alpha.c (alpha_emit_conditional_branch): Move 
2195         TFmode code swapping ...
2196         (alpha_emit_xfloating_compare): ... here.
2197         (alpha_emit_setcc): Update to match.
2198         (alpha_lookup_xfloating_lib_func): Assert TARGET_HAS_XFLOATING_LIBS.
2199
2200 2005-05-19  Richard Henderson  <rth@redhat.com>
2201
2202         PR target/21657
2203         * config/ia64/ia64.c (ia64_expand_tls_address): Remove extra
2204         memory indirection in local-dynamic case.
2205
2206 2005-05-18  Jie Zhang  <jie.zhang@analog.com>
2207             Bernd Schmidt  <bernd.schmidt@analog.com>
2208
2209         * config/bfin/bfin.c (branch_dest): Add comment why it's
2210         necessary.
2211         * config/bfin/bfin.md (attr "length" default): Change the offset of
2212         forward conditional branch of length 4 from 4096 to 4092.
2213
2214 2005-05-19  Jan Beulich  <jbeulich@novell.com>
2215
2216         * unwind-compat.c: Include tconfig.h and tsystem.h.
2217         * unwind-dw2-fde-compat.c: Likewise.
2218
2219 2005-05-18  Richard Henderson  <rth@redhat.com>
2220
2221         PR 21541
2222         * ifcvt.c (noce_process_if_block): Avoid conversion when the
2223         memory destination is readonly.
2224
2225 2005-05-18  Richard Henderson  <rth@redhat.com>
2226
2227         PR 21541
2228         * tree-ssa-operands.c (opf_non_specific): New.
2229         (get_asm_expr_operands): Set it.
2230         (add_call_clobber_ops, add_call_read_ops): Likewise.
2231         (add_stmt_operand): Test it instead of opf_kill_def when
2232         considering unmodifiable variables.
2233
2234         * tree-ssa-operands.c (get_expr_operands): Fix exact test.
2235
2236 2005-05-19  Kazu Hirata  <kazu@cs.umass.edu>
2237
2238         * cfgexpand.c, tree-cfg.c, tree-inline.c, tree-optimize.c,
2239         tree-ssa-forwprop.c: Fix comment typos.
2240         * doc/invoke.texi: Fix a typo.
2241
2242 2005-05-18  Richard Henderson  <rth@redhat.com>
2243
2244         * config.gcc (powerpc-*-linux*): Include linux64.opt when
2245         including linux64.h.
2246
2247 2005-05-18  Richard Henderson  <rth@redhat.com>
2248
2249         * tree-cfg.c (pass_remove_useless): Revert last change.
2250         * tree-optimize.c (init_tree_optimization_passes): Initialize
2251         all_lowering_passes with PROP_gimple_any.
2252
2253 2005-05-18  Devang Patel  <dpatel@apple.com>
2254
2255         * config/rs6000/rs6000.md (insvsi_internal1): Subtract shift from
2256         the mask end.
2257         
2258 2005-05-18  Richard Henderson  <rth@redhat.com>
2259
2260         * tree-ssa-forwprop.c (cfg_changed): New.
2261         (tidy_after_forward_propagate_addr): New.
2262         (forward_propagate_addr_expr): Use it, and fold_stmt_inplace.
2263         (forward_propagate_addr_into_variable_array_index): Likewise.
2264         (tree_ssa_forward_propagate_single_use_vars): Cleanup cfg if
2265         edges were removed.
2266
2267 2005-05-18  Geoffrey Keating  <geoffk@apple.com>
2268
2269         * dummy-checksum.c: New.
2270         * genchecksum.c: New.
2271         * c.opt (print_pch_checksum): New flag.
2272         * c-pch.c (struct c_pch_validity): Make much shorter.
2273         (no_checksum): New.
2274         (host_machine): Remove.
2275         (target_machine): Remove.
2276         (get_ident): Change PCH version number.
2277         (pch_init): When -fverbose-asm, print out the compiler fingerprint.
2278         Don't put triplets or version string in PCH validity data.
2279         Do put the compiler checksum in the validity data.
2280         (c_common_valid_pch): Don't check triplets or version string.  Do
2281         check checksum.
2282         (c_common_print_pch_checksum): New.
2283         * c-opts.c (c_common_handle_option): Add OPT_print_pch_checksum.
2284         Print fingerprint with -v.
2285         * c-common.h (c_common_print_pch_checksum): New.
2286         (executable_checksum): New.
2287         * Makefile.in (STAGEMOVESTUFF): Add cc1*-dummy, *-checksum.c.
2288         (cc1-dummy): New rule.
2289         (cc1-checksum.c): New rule.
2290         (cc1-checksum.o): New rule.
2291         (cc1): Add checksum support.
2292         (build/genchecksum): New.
2293         (build/genchecksum.o): New.
2294         (dummy-checksum.o): New.
2295         (genobjnames): Add genchecksum.o.
2296         (mostlyclean): Remove *-checksum.c.
2297         (gnucompare): Add libgcc to list of directories checked.
2298         Make comparison problems in libgcc/ and with checksum files only
2299         be warnings.
2300         * doc/invoke.texi (Precompiled Headers): Remove caution.
2301         Document that it must be the exact same binary.  Add a few
2302         known-safe flags to the list.
2303
2304         * rs6000/predicates.md (fix_trunc_dest_operand): New.
2305         * rs6000/rs6000.md (fix_truncdfsi2): Use fix_trunc_dest_operand.
2306         Check that a memory operand is valid before trying to use it.
2307         
2308         * tree-cfg.c (pass_remove_useless): This pass works on trees.
2309
2310 2005-05-18  Richard Guenther  <rguenth@gcc.gnu.org>
2311
2312         * tree.c (build1_stat): Don't try to handle two-operand
2313         tree codes.
2314
2315 2005-05-18  Richard Sandiford  <rsandifo@redhat.com>
2316
2317         * config.gcc (sh*-*-*): Define SUPPORT_* macros to 1.
2318         * config/sh/sh.h: Update mask names throughout.
2319         (target_flags, ISIZE_BIT, DALIGN_BIT, SH1_BIT, SH2_BIT, SH3_BIT)
2320         (SH_E_BIT, HARD_SH4_BIT, FPU_SINGLE_BIT, SH4_BIT, SH4A_BIT, FMOVD_BIT)
2321         (SH5_BIT, SPACE_BIT, BIGTABLE_BIT, RELAX_BIT, USERMODE_BIT)
2322         (HITACHI_BIT, NOMACSAVE_BIT, PREFERGOT_BIT, PADSTRUCT_BIT)
2323         (LITTLE_ENDIAN_BIT, IEEE_BIT, SAVE_ALL_TR_BIT, HARD_SH2A_BIT)
2324         (HARD_SH2A_DOUBLE_BIT, INDEXED_ADDRESS_BIT, PT_FIXED_BIT)
2325         (INVALID_SYMBOLS_BIT, ADJUST_UNROLL_BIT, TARGET_DUMPISIZE)
2326         (TARGET_ALIGN_DOUBLE, TARGET_SH1, TARGET_SH2, TARGET_SH3)
2327         (TARGET_HARD_SH4, TARGET_FPU_SINGLE, TARGET_SH5, TARGET_FMOVD)
2328         (TARGET_IEEE, TARGET_SMALLCODE, TARGET_BIGTABLE, TARGET_RELAX)
2329         (TARGET_HITACHI, TARGET_NOMACSAVE, TARGET_PADSTRUCT)
2330         (TARGET_LITTLE_ENDIAN, TARGET_USERMODE, TARGET_PREFERGOT)
2331         (TARGET_SAVE_ALL_TARGET_REGS, TARGET_ALLOW_INDEXED_ADDRESS)
2332         (TARGET_PT_FIXED, TARGET_INVALID_SYMBOLS, TARGET_ADJUST_UNROLL)
2333         (TARGET_SWITCH_SH1, TARGET_SWITCH_SH2, TARGET_SWITCH_SH2E)
2334         (TARGET_SWITCH_SH2A, TARGET_SWITCH_SH2A_SINGLE_ONLY)
2335         (TARGET_SWITCH_SH2A_SINGLE, TARGET_SWITCH_SH2A_NOFPU)
2336         (TARGET_SWITCH_SH3, TARGET_SWITCH_SH3E, TARGET_SWITCH_SH4_SINGLE_ONLY)
2337         (TARGET_SWITCH_SH4_SINGLE, TARGET_SWITCH_SH4_NOFPU, TARGET_SWITCH_SH4)
2338         (TARGET_SWITCH_SH4A, TARGET_SWITCH_SH4A_SINGLE_ONLY)
2339         (TARGET_SWITCH_SH4A_SINGLE, TARGET_SWITCH_SH4A_NOFPU)
2340         (TARGET_SWITCH_SH4AL, TARGET_SWITCH_SH5_64MEDIA)
2341         (TARGET_SWITCH_SH5_64MEDIA_NOFPU, TARGET_SWITCHES_SH5_32MEDIA)
2342         (TARGET_SWITCHES_SH5_32MEDIA_NOFPU, TARGET_SWITCH_SH5_32_ANY_EXTRA)
2343         (TARGET_SWITCH_SH5_MEDIA_ANY_EXTRA, TARGET_SWITCHES)
2344         (SUBTARGET_SWITCHES): Delete.
2345         (TARGET_SH2E, TARGET_SH2A, TARGET_SH2A_SINGLE, TARGET_SH2A_DOUBLE)
2346         (TARGET_SH3E, TARGET_CACHE32, TARGET_SUPERSCALAR, TARGET_HARVARD)
2347         (TARGET_FPU_DOUBLE, TARGET_SH4A_ARCH, TARGET_SHMEDIA32)
2348         (TARGET_SHMEDIA64): Redefine using other TARGET_* macros.
2349         (TARGET_SH4): Undefine options.h definition and check MASK_SH1 as well.
2350         (SUPPORT_SH1, SUPPORT_SH2E, SUPPORT_SH4, SUPPORT_SH4_SINGLE)
2351         (SUPPORT_SH2A, SUPPORT_SH2A_SINGLE): Make numeric.
2352         (SUPPORT_SH2): Define to 1 if SUPPORT_SH1.
2353         (SUPPORT_SH3): Likewise SUPPORT_SH2.
2354         (SUPPORT_SH4_NOFPU): Likewise SUPPORT_SH3.
2355         (SUPPORT_SH4A_NOFPU, SUPPORT_SH4AL, SUPPORT_SH2A_NOFPU): Likewise
2356         SUPPORT_SH4_NOFPU.
2357         (SUPPORT_SH3E): Likewise SUPPORT_SH2E.
2358         (SUPPORT_SH4_SINGLE_ONLY, SUPPORT_SH4A_SINGLE_ONLY)
2359         (SUPPORT_SH2A_SINGLE_ONLY): Likewise SUPPORT_SH3E.
2360         (SUPPORT_SH4A): Likewise SUPPORT_SH4.
2361         (SUPPORT_SH4A_SINGLE): Likewise SUPPORT_SH4_SINGLE.
2362         (SUPPORT_SH5_32MEDIA): Likewise SUPPORT_SH5_COMPACT.
2363         (SUPPORT_SH5_32MEDIA_NOFPU): Likewise SUPPORT_SH5_COMPACT_NOFPU.
2364         (SUPPORT_ANY_SH5_32MEDIA, SUPPORT_ANY_SH5_64MEDIA)
2365         (SUPPORT_ANY_SH5): New macros.
2366         (TARGET_NONE): Replace with...
2367         (MASK_ARCH): ...this new macro.
2368         * config/sh/elf.h: Update mask names
2369         * config/sh/linux.h: Likewise.
2370         * config/sh/little.h: Likewise.
2371         * config/sh/netbsd-elf.h: Likewise.
2372         * config/sh/symbian-pre.h: Likewise.
2373         * config/sh/sh.c (sh_handle_option): New function.
2374         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
2375         (calc_live_regs): Use MASK_FPU_SINGLE instead of FPU_SINGLE_BIT.
2376         (sh_target_switches, target_switches): Delete.
2377         (sh_pch_valid_p): Check for specific differences in the target_flags
2378         settings.
2379         (sh_init_cumulative_args): Use MASK_HITACHI instead of HITACHI_BIT.
2380         * config/sh/sh.opt: New file.
2381
2382 2005-05-18  Richard Henderson  <rth@redhat.com>
2383
2384         PR target/21632
2385         * config/ia64/ia64.c (ia64_extra_constraint) <'T'>: Use
2386         small_addr_symbolic_operand.
2387
2388 2005-05-18  Jeff Law  <law@redhat.com>
2389
2390         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Do not
2391         propagate an ADDR_EXPR if the definition and use sites are
2392         in different EH regions.
2393
2394 2005-05-18  Ian Lance Taylor  <ian@airs.com>
2395
2396         * read-rtl.c (mode_attr_index): Use obstack_grow0, not
2397         obstack_grow.
2398
2399 2005-05-18  Daniel Berlin  <dberlin@dberlin.org>
2400
2401         * cfgrtl.c (purge_dead_edges): Don't remove fake edges.
2402
2403 2005-05-18  Daniel Berlin  <dberlin@dberlin.org>
2404         
2405         Fix PR tree-optimization/21407
2406
2407         * tree-ssa-operands.c (note_addressable): Change
2408         COMPONENT_REF handling in response to aliasing
2409         discussion.
2410
2411 2005-05-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
2412
2413         * config/sparc/sol2.h (TARGET_DEFAULT): Add back MASK_APP_REGS.
2414         * config/sparc/sol2-64.h (TARGET_DEFAULT): Likewise.
2415         * config/sparc/sp-elf.h (TARGET_DEFAULT): Delete.
2416         * doc/invoke.texi (SPARC options): Document that -mapp-regs is
2417         the default on Solaris too.
2418
2419 2005-05-17  Daniel Berlin  <dberlin@dberlin.org>
2420
2421         * tree-ssa-pre.c (find_or_generate_expression): CALL_EXPR
2422         is okay too.
2423
2424 2005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
2425
2426         * timevar.def (TV_SCEV_CONST): New timevar.
2427         * tree-optimize.c (init_tree_optimization_passes): Add
2428         pass_scev_cprop.
2429         * tree-pass.h (pass_scev_cprop): Declare.
2430         * tree-scalar-evolution.c (scev_const_prop): New function.
2431         * tree-scalar-evolution.h (scev_const_prop): Declare.
2432         * tree-ssa-loop.c (gate_scev_const_prop, pass_scev_cprop):
2433         New.
2434         * tree-cfg.c (replace_uses_by): Export.
2435         * tree-flow.h (replace_uses_by): Declare.
2436
2437 2005-05-17  Ziemowit Laski  <zlaski@apple.com>
2438             Mike Stump  <mrs@apple.com>
2439
2440         Yet more Objective-C++...
2441
2442         * c-common.h (objc_finish_try_stmt): Add.
2443         (objc_build_synchronized): Add.
2444         (objc_generate_write_barrier): Add.
2445         * stub-objc.c (objc_build_synchronized): Add return value.
2446         (objc_finish_try_stmt): Likewise.
2447         (objc_generate_write_barrier): Add.
2448
2449         * c-common.h (objc_rewrite_function_call): Add.
2450         * c-typeck.c (build_function_call): Allow objc to rewrite
2451         FUNCTION_DECLs.
2452         (build_modify_expr): Allow objc to generate write barriers.
2453         * c.opt (Wassign-intercept): Add.
2454         (Wstrict-selector-match): Add.
2455         (fobjc-call-cxx-cdtors): Add.
2456         (fobjc-direct-dispatch): Add.
2457         (fobjc-gc): Add.
2458         * dbxout.c (get_lang_number): Add Objective-C++ support.
2459         * doc/invoke.texi (-fobjc-call-cxx-cdtors): Likewise.
2460         (-Wstrict-selector-match): Likewise.
2461         (-fobjc-direct-dispatch): Likewise.
2462         (-Wassign-intercept): Likewise.
2463         (Overall Options): Likewise.
2464         * gengtype.c (get_output_file_with_visibility): Likewise.
2465         * stub-objc.c (objc_rewrite_function_call): Add.
2466         * config/darwin.h (ASM_OUTPUT_LABELREF): Improved quoting support.
2467
2468         * c-common.c (flag_objc_exceptions): Remove.
2469         (flag_objc_sjlj_exceptions): Remove.
2470         * c-decl.c (objc_mark_locals_volatile): Don't change decls
2471         that are already ok.
2472         * c-opts.c (c_common_handle_option, case
2473         OPT_fobjc_exceptions): Remove.
2474         (case OPT_fobjc_sjlj_exceptions): Remove
2475         * c.opt (fobjc-call-cxx-cdtors): Have opt create the flag.
2476         (fobjc-exceptions): Likewise.
2477         (fobjc-sjlj-exceptions): Likewise.
2478         * config/rs6000/darwin.h (OFFS_MSGSEND_FAST): Add.
2479         (OFFS_ASSIGNIVAR_FAST): Add.
2480         
2481 2005-05-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
2482
2483         * config/sparc/sparc.md (movhi): Do not test constness
2484         of operand #1 twice.
2485         (movsi): Likewise.
2486         (movdi): Unconditionally accept zero as second operand
2487         when the first is memory.
2488         (movdi_insn_sp32): Handle above case.
2489         (DImode splitter): Use predicates.
2490         (DImode splitter): Use const_zero_operand predicate.
2491         (movsf_insn): Swap 2 alternatives.
2492
2493 2005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
2494
2495         * tree-ssa-loop-ivopts.c (find_bivs, find_givs_in_stmt_scev): Apply
2496         expand_simple_operations to bases of the ivs.
2497         (tree_int_cst_sign_bit): Export.
2498         * tree-flow.h (expand_simple_operations): Declare.
2499         * tree-ssa-loop-niter.c (number_of_iterations_cond): Use
2500         tree_int_cst_sign_bit.
2501         (expand_simple_operations): Export.
2502         * tree.h (tree_int_cst_sign_bit): Declare.
2503
2504 2005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
2505
2506         * tree-cfg.c (tree_can_merge_blocks_p): Allow phi nodes in the
2507         merged block.
2508         (replace_uses_by): New function.
2509         (tree_merge_blocks): Eliminate the phi nodes in the merged block.
2510         * tree-flow.h (fold_stmt_inplace): Declare.
2511         * tree-ssa-ccp.c (fold_stmt_inplace): New function.
2512         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Update dominance
2513         info after cfg cleanup.
2514
2515 2005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
2516
2517         * cfgloop.h (just_once_each_iteration_p): Declaration changed.
2518         * cfgloopanal.c (just_once_each_iteration_p): Make the loop argument
2519         const.
2520
2521 2005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
2522
2523         * ggc-page.c (ggc_alloc_stat): Record amount of memory allocated.
2524         * ggc-zone.c (ggc_alloc_zone_1): Ditto.
2525         * timevar.c (timevar_ggc_mem_total): New variable.
2526         (GGC_MEM_BOUND): New constant.
2527         (get_time): Record ggc memory status.
2528         (timevar_accumulate): Accumulate amount of ggc memory.
2529         (timevar_print): Print consumption of ggc memory.
2530         * timevar.def (TV_FIND_REFERENCED_VARS, TV_TREE_REDPHI,
2531         TV_TREE_LOOP_BOUNDS, TV_TREE_LOOP_IVCANON, TV_TREE_VECTORIZATION,
2532         TV_TREE_LINEAR_TRANSFORM): Shorten strings to fit in 22 characters.
2533         * timevar.h (struct timevar_time_def): Add ggc_mem field.
2534         (timevar_ggc_mem_total): Declare.
2535
2536 2005-05-17  Kazu Hirata  <kazu@cs.umass.edu>
2537
2538         * tree-into-ssa.c (update_ssa): Clean up by shortening the
2539         live range of DFS.
2540
2541 2005-05-17  Hans-Peter Nilsson  <hp@axis.com>
2542
2543         * config/cris/cris.md (ncond, ocode, rcond): Remove separate
2544         define_code_attr.
2545         ("b<ncond:code>", "b<ocond:code>", "b<rcond:code>")
2546         ("*b<ncond:code>_reversed", "*b<ocond:code>_reversed")
2547         ("*b<rcond:code>_reversed", "s<ncond:code>", "s<rcond:code>")
2548         ("s<ocond:code>"): Rename from respectively "b<ncond>",
2549         "b<ocond>", "b<rcond>", ("*b<ncond>_reversed",
2550         "*b<ocond>_reversed", "*b<rcond>_reversed", "s<ncond>",
2551         "s<rcond>" and "s<ocond>".
2552         ("b<ocond:code>", "*b<ocond:code>_reversed")
2553         ("*b<rcond:code>_reversed"): Remove extraneous backslashes in
2554         output statement section.
2555
2556 2005-05-17  Roger Sayle  <roger@eyesopen.com>
2557
2558         * c-typeck.c (common_type): Also handle BOOLEAN_TYPEs.
2559
2560 2005-05-17  Steven Bosscher  <stevenb@suse.de>
2561             Stuart Hastings <stuart@apple.com>
2562             Jan Hubicka  <jh@suse.cz>
2563             Dale Johannesen  <dalej@apple.com>
2564
2565         * cgraph.h (cgraph_node): Add 'lowered' state.
2566         (cgraph_lower_function): Declare.
2567         * cgraphunit.c (cgraph_finalize_function): Initialize lowered flag.
2568         (cgraph_lower_function): New function.
2569         (cgraph_create_edges): Deal with lowered function bodies.
2570         (verify_cgraph_node): Likewise.
2571         (cgraph_analyze_function): Do lowering job.
2572         (cgraph_build_static_cdtor): Likewise.
2573         * function.h (struct function): Add saved_eh and saved_cfg.
2574         * integrate.c (copy_decl_for_inlining): Kill LABEL_DECL_UID field.
2575         * tree-cfg.c (fold_cond_expr_cond): Export.
2576         * tree-flow.h (fold_cond_expr_cond): Declare.
2577         * tree-inline.c: Include basic-block, ggc, tree-flow, except.h and
2578         pointer-set.
2579         (struct_inline_data): Kill fnd, first_inlined_fn, ret_label,
2580         in_target_cleanup_p, tree_pruner, tsi; add callee, caller and
2581         callee_cfun, block, eh_region, eh_region_offset.
2582         (inlining_p): New predicate.
2583         (remap_decl): Update for new inline_data; declare newly created inline
2584         vars in low gimple way.
2585         (copy_body_r): Update for new datastructure, simplify some of handling
2586         when we are in gimple; remap LABEL_DECLs for EH; copy TREE_BLOCK;
2587         deal with RESX_EXPRs.
2588         (copy_bb): New.
2589         (copy_edges_for_bb): Likewise.
2590         (remap_decl_1): New.
2591         (copy_cfg_body): New.
2592         (copy_generic_body): Rewrite to work on low gimple.
2593         (copy_body): Turn into simple wrapper around copy_cfg_body.
2594         (setup_one_parameter): Insert new statements into given basic block.
2595         (initialize_initialized_parameters): Likewise, reorganize way things are
2596         gimplified.
2597         (declare_return_variable): Update for new inline data datastructure.
2598         (inline_forbidden_p): Work on low gimple.
2599         (estimate_num_insns): Likewise.
2600         (expand_call_inline): Work on CFG.
2601         (push_cfun, pop_cfun): New functions.
2602         (cfun_stack): New stack.
2603         (add_lexical_block): New function.
2604         (gimple_expand_calls_inline): Work on basic block.
2605         (optimize_inline_calls): Likewise.
2606         (clone_body, save_body, unsave_ewpr_now): Update for new
2607         datastructures.
2608         (declare_inline_vars): Work on block instead of bind_expr.
2609         (inlining_p): New predicate.
2610         * tree-inline.h (push_cfun, pop_cfun): Declare.
2611         * tree-optimize.c: Include except.h
2612         (all_lowering_passes): New variable.
2613         (execute_fixup_cfg, pass_fixup_cfg): New pass.
2614         (init_tree_optimization_passes): Move some to all_lowering_passes.
2615         (tree_lowering_passes): New function.
2616         (tree_rest_of_compilation): Register cfg hooks; save/unsave eh.
2617         * tree-pass.h (tree_lowering_passes): Declare
2618
2619 2005-05-17  Nathan Sidwell  <nathan@codesourcery.com>
2620
2621         * unwind-dw2-fde-darwin.c: Include tsystem.h.
2622
2623 2005-05-17  Jeff Law  <law@redhat.com>
2624
2625         * Makefile.in (tree-ssa-forwprop.o): Depend on langhooks.h.
2626         * tree-ssa-forwprop.c: Include langhooks.h.
2627         (forward_propagate_addr_expr_into_variable_array_index): New.
2628         (forward_propagate_addr_expr): New.
2629         (tree_ssa_forward_propagate_single_use_vars): Loop over all
2630         the statements in the block instead of just the last statement.
2631         Call forward_propagate_addr_expr as needed.
2632         (pass_forwprop): Update the SSA graph after forward propagation is
2633         complete.
2634
2635 2005-05-17  Nathan Sidwell  <nathan@codesourcery.com>
2636
2637         * unwind-dw2-fde-glibc.c (base_from_cb_data,
2638         _Unwind_IteratePhdrCallback): Use gcc_assert and gcc_unreachable as
2639         appropriate.
2640         * unwind-dw2-fde.c (__deregister_frame_info_bases,
2641         base_from_object, fde_split, end_fde_sort): Likewise.
2642         * unwind-dw2.c (_Unwind_GetGR, _Unwind_SetGR, execute_stack_op, 
2643         execute_cfa_program, _Unwind_SetSpColumn, uw_update_context_1,
2644         uw_init_context_1): Likewise.
2645         * unwind.inc (_Unwind_RaiseException_Phase2, _Unwind_Resume,
2646         _Unwind_Resume_or_Rethrow): Likewise.
2647         * unwind-pe.h (__gxx_abort): Do not define.
2648         (size_of_encoded_value, base_of_encoded_value,
2649         read_encoded_value_with_base): Use gcc_unreachable.
2650         * unwind.h (_Unwind_GetTextRelBase): Likewise.
2651
2652 2005-05-17  Daniel Jacobowitz  <dan@codesourcery.com>
2653
2654         * config/arm/lib1funcs.asm (cfi_pop, cfi_push, cfi_start)
2655         (cfi_end): New macros.
2656         (RETLDM): Use cfi_pop.  Expect an eight byte stack frame.
2657         (ARM_LDIV0, THUMB_LDIV0, DIV_FUNC_END): Use CFI macros.  Create
2658         an eight byte stack frame.
2659         (__NR_tkill): Define.
2660         (__div0): Use gettid tkill on GNU/Linux.
2661         (_arm_return): Add CFI.
2662         (Lchange_\register, .Lchange_lr): Create an eight byte stack frame.
2663
2664 2005-05-17  Daniel Jacobowitz  <dan@codesourcery.com>
2665
2666         * configure.ac: Remove spaces around assignment to
2667         gcc_cv_ld_sysroot.
2668         * configure: Regenerated.
2669
2670 2005-05-17  David Edelsohn  <edelsohn@gnu.org>
2671
2672         * config/rs6000/aix.h (TARGET_ALTIVEC_VRSAVE): Delete.
2673         * config/rs6000/rs6000.c (rs6000_explicit_options): Add
2674         aix_struct_ret.
2675         (rs6000_override_options): Do not protect TARGET_ALTIVEC_VRSAVE.
2676         Modify aix_struct_return variable, not target_flags.
2677         (rs6000_handle_option): Do not protect TARGET_ALTIVEC_VRSAVE.
2678         (rs6000_return_in_memory): Test aix_struct_return.
2679         * config/rs6000/rs6000.opt (maix-struct-return): Convert to
2680         independent variable.  Report mxl-compat.
2681
2682 2005-05-17  Bernd Schmidt  <bernd.schmidt@analog.com>
2683
2684         * config/bfin/bfin.md (eh_return): Add missing DONE.
2685
2686 2005-05-17  Ian Lance Taylor  <ian@airs.com>
2687
2688         * read-rtl.c (struct macro_traverse_data): Add unknown_mode_attr
2689         field.
2690         (mode_attr_index): Remove check for defined attribute.  Remove
2691         infile parameter.  Change all callers.
2692         (apply_mode_maps): Add unknown parameter.  Change caller.  Always
2693         return after finding attribute.
2694         (apply_macro_to_rtx): Add unknown_mode_attr parameter.  Change
2695         callers.
2696         (apply_macro_traverse): Set mtd->unknown_mode_attr.
2697         (read_rtx): Use mtd.unknown_mode_attr to check for an undefined
2698         attribute used for a mode.
2699
2700 2005-05-17  Paolo Bonzini  <bonzini@gnu.org>
2701
2702         * tree-ssa-math-opts.c: New file.
2703
2704 2005-05-17  Paolo Bonzini  <bonzini@gnu.org>
2705
2706         * tree-ssa-math-opts.c: New file.
2707
2708 2005-05-17  Paolo Bonzini  <bonzini@gnu.org>
2709
2710         * Makefile.in: Add tree-ssa-math-opts.c.
2711         * expr.c (expand_expr_real_1) <case RDIV_EXPR>: Never emit as a*(1/b).
2712         * fold-const.c (distribute_real_division): New.
2713         (fold_binary) <case PLUS_EXPR, case MINUS_EXPR>: Use it.
2714         * tree-pass.h (pass_cse_reciprocals): New.
2715         * tree-optimize.c (init_tree_optimization_passes): Run it.
2716         * doc/passes.texi: Document the new pass.
2717
2718 2005-05-17  Richard Guenther  <rguenth@gcc.gnu.org>
2719
2720         PR middle-end/21595
2721         * builtins.c (fold_builtin_constant_p): Handle
2722         &"string cst"[0] as constant.
2723
2724 2005-05-17  Richard Henderson  <rth@redhat.com>
2725
2726         * config/i386/sse.md (mulv16qi3, mulv2di3): New.
2727
2728 2005-05-17  Jakub Jelinek  <jakub@redhat.com>
2729
2730         PR middle-end/21492
2731         * cfgcleanup.c (try_crossjump_to_edge): update_forwarder_flag for
2732         src2 if src2 has been split.
2733
2734         PR tree-optimization/21610
2735         * c-typeck.c (decl_constant_value_for_broken_optimization): If not
2736         returning DECL, call unshare_expr.
2737
2738 2005-05-17  Hans-Peter Nilsson  <hp@axis.com>
2739
2740         * config/cris/cris.md: Unquote preparation and output statements.
2741         (BWD, WD, BW): New, mode-macros.
2742         (S, s, m, mm, nbitsm1): New, mode-attrs.
2743         (szext, shift, shiftrt, ncond, ocond, rcond): New, code-macros.
2744         (u, su, shlr, slr, ncond, ocond, rcond, rCC, oCC, roCC): New,
2745         code-attrs.
2746         ("tst<mode>"): Replace "tstqi", "tsthi" and "tstsi".
2747         ("*cmp_ext<mode>"): Replace "*cmp_extsi" and "*cmp_exthi".
2748         ("*cmp_swapext<mode>"): Replace "*cmp_swapextqi" and
2749         "*cmp_swapexthi".
2750         ("cmp<mode>"): Replace "cmphi" and "cmpqi".
2751         ("movdi"): Move misplaced head comment regarding necessity of
2752         movdi from movsi to here.
2753         ("*mov_side<mode>_biap"): Replace "*mov_sideqi_biap" and
2754         "*mov_sidehi_biap".
2755         ("*mov_side<mode>"): Replace "*mov_sideqi" and "*mov_sidehi".
2756         ("*mov_side<mode>_biap_mem", "*mov_sidehi_biap_mem"): Replace
2757         "*mov_sideqi_biap_mem".
2758         ("*mov_side<mode>_mem"): Replace "*mov_sideqi_mem" and
2759         "*mov_sidehi_mem".
2760         ("*clear_side<mode>_biap"): Replace "*clear_sidesi_biap",
2761         "*clear_sidehi_biap" and "*clear_sideqi_biap".
2762         ("*clear_side<mode>"): Replace "*clear_sidesi", "*clear_sidehi"
2763         and "*clear_sideqi".
2764         ("*ext_side<mode>si_biap"): Replace "*ext_sideqisi_biap" and
2765         "*ext_sidehisi_biap".
2766         ("*ext_side<mode>si"): Replace "*ext_sideqisi" and
2767         "*ext_sidehisi".
2768         ("reload_in<mode>"): Replace "reload_inhi" and "reload_inqi".
2769         ("reload_out<mode>"): Replace "reload_outhi" and "reload_outqi".
2770         ("extend<mode>di2"): Replace "extendhidi2" and "extendqidi2".
2771         ("extend<mode>si2"): Replace "extendhisi2" and "extendqisi2".
2772         ("zero_extend<mode>si2"): Replace "zero_extendhisi2" and
2773         "zero_extendqisi2".
2774         ("*op_side<mode>_biap"): Replace "*op_sideqi_biap",
2775         "*op_sidehi_biap" and "*op_sidesi_biap".
2776         ("*op_side<mode>"): Replace "*op_sideqi", "*op_sidehi" and
2777         "*op_sidesi".
2778         ("*op_swap_side<mode>_biap"): Replace "*op_swap_sideqi_biap",
2779         "*op_swap_sidehi_biap" and "*op_swap_sidesi_biap".
2780         ("*op_swap_side<mode>"): Replace "*op_swap_sideqi",
2781         "*op_swap_sidehi" and "*op_swap_sidesi".
2782         ("sub<mode>3"): Replace "subhi3" and "subqi3", correcting a typo
2783         in the N alternative of "subqi3".
2784         ("*extop<mode>si_side_biap"): Replace "*extopqisi_side_biap" and
2785         "*extophisi_side_biap".
2786         ("*extop<mode>si_side"): Replace "*extopqisi_side" and
2787         "*extophisi_side".
2788         ("*extop<mode>si_swap_side_biap"): Replace
2789         "*extopqisi_swap_side_biap" and "*extophisi_swap_side_biap".
2790         ("*extop<mode>si_swap_side"): Replace "*extopqisi_swap_side" and
2791         "*extophisi_swap_side".
2792         ("*extop<mode>si"): Replace "*extopqisi" and "*extophisi".
2793         ("*extop<mode>si_swap"): Replace "*extopqisi_swap" and
2794         "*extophisi_swap".
2795         ("<u>mul<s><mode>3"): Replace "umulhisi3", "umulqihi3",
2796         "mulqihi3", "mulhisi3" and "mulhisi3".
2797         ("<u>mulsidi3"): Replace "mulsidi3" and "umulsidi3".
2798         ("<su>mulsi3_highpart"): Replace "smulsi3_highpart" and
2799         "umulsi3_highpart".
2800         ("xor<mode>3"): Replace "xorhi3" and "xorqi3".
2801         ("neg<mode>2"): Replace "negsi2", "neghi2" and "negqi2".
2802         ("one_cmpl<mode>2"): Replace "one_cmplhi2" and "one_cmplqi2".
2803         ("<shlr>si3"): Replace "ashrsi3", "lshrsi3" and "ashlsi3".
2804         ("ashr<mode>3"): Replace "ashrhi3" and "ashrqi3".
2805         ("*expanded_<shlr><mode>"): Replace "*expanded_ashrhi",
2806         "*expanded_ashrqi", "*expanded_lshrhi" and "*expanded_lshrqi".
2807         ("*<shlr><mode>_lowpart"): Replace "*ashrhi_lowpart",
2808         "*ashrqi_lowpart", "*lshrhi_lowpart" and "*lshrqi_lowpart".
2809         ("lshr<mode>3"): Replace "lshrhi3" and "lshrqi3".
2810         ("ashl<mode>3"): Replace "ashlhi3" and "ashlqi3".
2811         ("*ashl<mode>_lowpart"): Replace "*ashlqi_lowpart" and
2812         "*ashlhi_lowpart".
2813         ("abs<mode>2"): Replace "abshi2" and "absqi2".
2814         ("b<ncond>"): Replace "beq", "bne", "bgtu", "bltu", "bgeu" and
2815         "bleu".
2816         ("b<ocond>"): Replace "bgt" and "ble".
2817         ("b<rcond>"): Replace "blt" and "bge".
2818         ("*b<ncond>_reversed"): Replace "*beq_reversed", "*bne_reversed",
2819         "*bgtu_reversed", "*bltu_reversed", "*bgeu_reversed" and
2820         "*bleu_reversed".
2821         ("*b<ocond>_reversed"): Replace "*bgt_reversed" and
2822         "*ble_reversed".
2823         ("*b<rcond>_reversed"): Replace "*blt_reversed" and
2824         "*blt_reversed".
2825         ("s<ncond>"): Replace "sgeu", "sltu", "seq", "sgtu", "sleu" and
2826         "sne".
2827         ("s<rcond>"): Replace "sge" and "slt".
2828         ("s<ocond>"): Replace "sgt" and "sle".
2829         ("clear.[bwd] [rx=rx+rz.S2]"): Replace split clear.d
2830         [rx=rx+rz.S2], clear.w [rx=rx+rz.S2] and clear.b [rx=rx+rz.S2].
2831         ("clear.[bwd] [rx=rx+i]"): Replace splits clear.d [rx=rx+i],
2832         clear.w [rx=rx+i] and clear.b [rx=rx+i].
2833
2834 2005-05-17  Jakub Jelinek  <jakub@redhat.com>
2835
2836         * varasm.c (struct constant_descriptor_tree): Add hash field.
2837         (const_desc_hash): Just return hash field.
2838         (const_desc_eq): If hash values are different, return 0 immediately.
2839         (output_constant_def): Compute hash field of temporary key, use
2840         htab_find_slot_with_hash instead of htab_find_slot.  Set hash in
2841         newly built constant descriptor.
2842         (lookup_constant_def): Compute hash field of temporary key, use
2843         htab_find_with_hash instead of htab_find.
2844
2845 2005-05-16  Richard Henderson  <rth@redhat.com>
2846
2847         * config/i386/sse.md (mulv4si3): New.
2848
2849 2005-05-17  Hans-Peter Nilsson  <hp@axis.com>
2850
2851         * config/cris/cris.h (EXTRA_CONSTRAINT_T): Remove FIXME and
2852         tests for noncanonical versions of reg+constant and
2853         reg+reg*{1,2,4}.
2854
2855 2005-05-16  Richard Henderson  <rth@redhat.com>
2856             Steven Bosscher <stevenb@suse.de>
2857
2858         PR tree-opt/21399
2859         * tree-eh.c (maybe_clean_or_replace_eh_stmt): Rename from 
2860         maybe_clean_eh_stmt; take old stmt parameter.  Update EH
2861         region data structure to match replacement.
2862         * tree-flow.h: Update to match.
2863         * tree-ssa-ccp.c (execute_fold_all_builtins): Likewise.
2864         * tree-ssa-dom.c (optimize_stmt): Likewise.
2865         * tree-ssa-pre.c (eliminate): Likewise.
2866         * tree-ssa-propagate.c (substitute_and_fold): Likewise.
2867
2868 2005-05-16  Caroline Tice  <ctice@apple.com>
2869
2870         * bb-reorder.c (verify_hot_cold_block_grouping):  Replace
2871         internal_error with gcc_assert.
2872         * dwarf2out.c (dwarf2out_switch_text_section):  Likewise.
2873         * function.h (struct function): Remove space between "*" and
2874         struct field names.
2875         * varasm.c (initialize_cold_section_name):   Add gcc_assert;
2876         modify to use alloca.
2877         (unlikely_text_section): Add check for flag_function_sections.
2878         (assemble_start_function):  Move call to resolve_section, so it
2879         comes before first call to unlikely_text_section.
2880         (assemble_end_function):  Add test and call to function_section
2881         if appropriate.
2882         
2883 2005-05-16  Roger Sayle  <roger@eyesopen.com>
2884
2885         * c-common.c (c_common_truthvalue_conversion): Use fold_build2
2886         instead of build_binary_op when performing code transformations
2887         to avoid error messages about constructs not it the user's code.
2888
2889 2005-05-16  Kazu Hirata  <kazu@cs.umass.edu>
2890
2891         * tree-ssa-pre.c: Fix a comment typo.
2892
2893 2005-05-16  Richard Henderson  <rth@redhat.com>
2894
2895         PR target/21556
2896         * config/ia64/ia64.md (load_dtpmod, load_ltoff_dtpmod, load_dtprel,
2897         load_dtprel64, load_dtprel22, load_dtprel_gd, load_ltoff_dtprel,
2898         add_dtprel, add_dtprel14, add_dtprel22, load_tprel, load_tprel64,
2899         load_tprel22, load_tprel_ie, load_ltoff_tprel, add_tprel, add_tprel14,
2900         add_tprel22): Remove mode from symbolic operand.
2901
2902 2005-05-16  Richard Sandiford  <rsandifo@redhat.com>
2903
2904         * optc-gen.awk: Include intl.h after the externally-provided files.
2905
2906 2005-05-16  Kazu Hirata  <kazu@cs.umass.edu>
2907
2908         * tree-ssa-copy.c (copy_prop_visit_assignment): Clean up by
2909         folding a COND_EXPR_COND in a nondestructive manner.
2910
2911 2005-05-16  Fariborz Jahanian <fjahanian@apple.com>
2912
2913         * config/rs6000/altivec.md (altivec_vmrghb, altivec_vmrghh, 
2914         altivec_vmrghw, altivec_vmrglb, altivec_vmrglh, altivec_vmrglw):
2915         New values for vec_select definitions and bitmask for element
2916         selection.
2917          
2918 2005-05-16  Kazu Hirata  <kazu@cs.umass.edu>
2919
2920         * dwarf2out.c (used_rtx_varray): Rename to used_rtx_array.
2921         Change the type to VEC(rtx,gc)*.
2922         (mem_loc_descriptor, add_const_value_attributes,
2923         dwarf2out_init): Adjust uses of used_rtx_varray.
2924
2925         * tree-data-ref.c (compute_all_dependences): Change the type
2926         of dependence_relations to VEC(ddr_p,heap)**.
2927         (compute_data_dependences_for_loop): Change the type of
2928         allrelations to VEC(ddr_p,heap)*.
2929
2930 2005-05-16  Richard Sandiford  <rsandifo@redhat.com>
2931
2932         * Makefile.in (options.c): Tell optc-gen.awk to include config.h,
2933         system.h, coretypes.h and tm.h.
2934         (options.o): Update dependencies accordingly.
2935         * optc-gen.awk: Allow header_name to be a list of filenames.
2936         Handle the "Condition" flag.
2937         * opts.h (CL_DISABLED): New flag.
2938         * opts.c (handle_option): Print an error for CL_DISABLED options.
2939         * doc/options.texi: Document the "Condition" option flag.
2940
2941 2005-05-16  Paolo Bonzini  <bonzini@gnu.org>
2942
2943         * tree-inline.c (estimate_num_insns_1): Handle VEC_COND_EXPR.
2944
2945 2005-05-15  Roger Sayle  <roger@eyesopen.com>
2946
2947         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Only
2948         check for TREE_OVERFLOW on INTEGER_CST trees.
2949         * tree-chrec.c (chrec_convert): Only clear TREE_OVERFLOW on
2950         CONSTANT_CLASS_P tree nodes.
2951
2952 2005-05-15  H.J. Lu  <hongjiu.lu@intel.com>
2953
2954         PR target/21551
2955         * config/ia64/ia64.c (ia64_expand_move): Don't add addend twice.
2956
2957 2005-05-15  Daniel Berlin  <dberlin@dberlin.org>
2958             
2959         Fix PR tree-optimization/21576
2960         
2961         * tree-ssa-pre.c (expression_node_pool): New pool.
2962         (comparison_node_pool): Ditto.
2963         (list_node_pool): Ditto.
2964         (pool_copy_list): New function.
2965         (phi_translate): Handle CALL_EXPR.
2966         (valid_in_set): Ditto.
2967         (create_expression_by_pieces): Ditto.
2968         (insert_into_preds_of_block): Ditto.
2969         (insert_aux): Ditto.
2970         (compute_avail): Ditto.
2971         (create_value_expr_from): Handle TREE_LIST and CALL_EXPR.
2972         (can_value_number_call): New function.
2973         (find_leader): Update comment.
2974         (init_pre): Create new pools.
2975         (fini_pre): Free new pools.
2976         (pass_pre): Add TODO_update_ssa for the future when we are going
2977         to need vops.
2978         * tree-vn.c (expressions_equal_p): Handle TREE_LIST.
2979         (set_value_handle): Ditto.
2980         (get_value_handle): Ditto.
2981
2982 2005-05-15  Richard Earnshaw  <richard.earnshaw@arm.com>
2983
2984         * arm.c (thumb_unexpanded_epilogue): Delete unused variable 'mode'.
2985
2986 2005-05-15  Andreas Jaeger  <aj@suse.de>
2987
2988         * gcc.c (pfatal_pexecute): Remove unused local function.
2989
2990 2005-05-15  Richard Sandiford  <rsandifo@redhat.com>
2991
2992         * optc-gen.awk: Remove excess indentation.
2993         * opth-gen.awk: Likewise.
2994
2995 2005-05-14  Kaz Kojima  <kkojima@gcc.gnu.org>
2996
2997         * config/sh/sh.c (sh_output_mi_thunk): Check cfun->cfg instead
2998         of basic_block_info.  Call init_flow and find_basic_blocks
2999         before dbr_schedule if needed.
3000
3001 2005-05-14  Kazu Hirata  <kazu@cs.umass.edu>
3002
3003         * tree-optimize.c (init_tree_optimization_passes): Move
3004         pass_cd_dce in place of the last pass_dce.
3005
3006         PR tree-optimization/21563
3007         * tree-vrp.c (compare_value): Return boolean_false_node when
3008         SSA_NAME in "if (SSA_NAME == CST)" is strictly smaller than or
3009         strictly larger than CST.
3010
3011 2005-05-14  Nathan Sidwell  <nathan@codesourcery.com>
3012             Jan-Benedict Glaw  <jbglaw@lug-owl.de>
3013
3014         * config/vax/vax.c: (print_operand_address) Use gcc_unreachable() and
3015         gcc_assert().
3016         (rev_cond_name) Likewise.
3017         (vax_float_literal) Likewise.
3018         * config/vax/vax.md: Likewise.
3019
3020 2005-05-14  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
3021
3022         * config/vax/vax.md: define_constant VAXens AP, FP, SP and PC
3023         registers and use them (specifically the stack pointer).
3024         * config/vax/vax.h: Use above defines right here.
3025
3026         * config/vax/vax.c: (override_options) Remove 'register' keyword.
3027         (split_quadword_operands) Likewise. (rev_cond_name) Likewise.
3028         (vax_float_literal) Likewise. (vax_rtx_costs) Remove trailing
3029         whitespace.
3030         * config/vax/vax.h: Remove 'register' keyword. Misc. whitespace fixes,
3031         mostly removal of trailing spaces...
3032         * config/vax/vax-modes.def: Remove trailing whitespace.
3033
3034         * config/vax/elf.h: Update whitespace.
3035
3036 2005-05-14  Richard Guenther  <rguenth@gcc.gnu.org>
3037
3038         Revert
3039         2005-05-11  Richard Guenther  <rguenth@gcc.gnu.org>
3040         * fold-const.c (fold_indirect_ref_1): Avoid removing
3041         NOP_EXPRs with type qualifiers like const.
3042
3043 2005-05-14  Jan Hubicka  <jh@suse.cz>
3044
3045         Patch by Richard Henderson:
3046         * tree-eh.c (tree_can_throw_internal, tree_can_throw_external):
3047         Handle RESX expressions properly.
3048
3049         * tree-eh.c (record_stmt_eh_region): Use add_stmt_to_eh_region.
3050         (add_stmt_to_eh_region_fn): Nest into CALL_EXPR.
3051         (remove_stmt_from_eh_region_fn): Likewise.
3052
3053         * tree-cfg.c (execute_warn_function_return): Break out noreturn
3054         warning too..
3055         (execute_warn_function_noreturn): ... here.
3056         (pass_warn_function_noreturn): New pass.
3057         * tree-pass.h (pass_warn_function_noreturn): Declare
3058         * tree-optimize.c (init_tree_optimization_passes): Move return
3059         warnings early and add noreturn warnings at place of previous
3060         return warnings.
3061
3062 2005-05-14  Kazu Hirata  <kazu@cs.umass.edu>
3063
3064         * tree-ssa-live.c (tpa_init, tpa_delete, tpa_compact,
3065         root_var_init, type_var_init): Use VEC instead of VARRAY.
3066         * tree-ssa-live.h (tree_partition_associator_d): Change the
3067         type of trees to VEC(tree,heap)*.
3068         (tpa_tree): Use VEC instead of VARRAY.
3069
3070 2005-05-14  Richard Guenther  <rguenth@gcc.gnu.org>
3071
3072         * fold-const.c (div_if_zero_remainder): New function.
3073         (try_move_mult_to_index): Use it.
3074
3075 2005-05-14  Kazu Hirata  <kazu@cs.umass.edu>
3076
3077         * tree-eh.c (leh_tf_state): Change the type of dest_array to
3078         VEC(tree,heap)*.
3079         (maybe_record_in_goto_queue, lower_try_finally_onedest,
3080         lower_try_finally_copy, lower_try_finally_switch,
3081         lower_try_finally): Use VEC instead of VARRAY.
3082
3083 2005-05-14  Hans-Peter Nilsson  <hp@axis.com>
3084
3085         * config/cris/cris.h (Node: Register Classes): Remove obsoleted
3086         comment regarding defined register classes.
3087         (LEGITIMIZE_RELOAD_ADDRESS): Do not define.
3088
3089 2005-05-14  Kazu Hirata  <kazu@cs.umass.edu>
3090
3091         * tree-optimize.c (init_tree_optimization_passes): Move
3092         pass_merge_phi before the first pass_dominator.
3093
3094 2005-05-13  Richard Earnshaw  <richard.earnshaw@arm.com>
3095
3096         * arm.h (INITIALIZE_TRAMPOLINE): Make the call to __clear_cache
3097         unconditional.
3098
3099 2005-05-13  Josh Conner  <jconner@apple.com>
3100
3101         * config/arm/arm.c (arm_size_return_regs): New.
3102         (thumb_unexpanded_epilogue): replace in-line calculation
3103         of return registers with call to arm_size_return_regs.
3104         (use_return_insn): Include test of which registers are
3105         being used to hold return values, to accommodate
3106         vector return values.
3107
3108 2005-05-11  Aldy Hernandez  <aldyh@redhat.com>
3109
3110         * config/rs6000/sysv4.opt (mlittle): Handle.
3111
3112         * config/rs6000/rs6000.c (rs6000_handle_option): Set
3113         target_flags_explicit when appropriate.
3114
3115 2005-05-13  J"orn Rennecke <joern.rennecke@st.com>
3116
3117         PR middle-end/20714:
3118         * optabs.c (no_conflict_data): New struct.
3119         (no_conflict_move_test): New function.
3120         (emit_no_conflict_block): Use it.
3121
3122 2005-05-13  Adam Nemet  <anemet@lnxw.com>
3123
3124         * doc/invoke.texi (Debugging Options): Option
3125         -fdump-translation-unit only works with C++ now.
3126
3127 2005-05-13  Hans-Peter Nilsson  <hp@axis.com>
3128
3129         Replace calls to abort in CRIS port.
3130         * config/cris/cris.h (CRIS_ASSERT): New macro.
3131         * config/cris/cris.md ("*movsi_internal"): Use CRIS_ASSERT and
3132         internal_error instead of abort.
3133         ("movsi"): Ditto.  Unquote preparation statement section.
3134         ("call", "call_value"): Ditto, but use gcc_assert where
3135         appropriate.  Tweak comments.
3136         * config/cris/cris.c (ASSERT_PLT_UNSPEC): Define in terms of
3137         CRIS_ASSERT.
3138         (cris_op_str): Call internal_error, not abort.
3139         (cris_print_operand): Tweak "abort" reference to "die" in comment.
3140         (cris_initial_elimination_offset): Call gcc_unreachable, not abort.
3141         (cris_notice_update_cc): Call internal_error, not abort.
3142         (cris_expand_return, cris_expand_prologue, cris_gen_movem_load)
3143         (cris_emit_movem_store, cris_asm_output_symbol_ref)
3144         (cris_output_addr_const_extra): Use CRIS_ASSERT, don't call abort.
3145         (cris_symbol, cris_got_symbol): Use CRIS_ASSERT instead of
3146         ENABLE_CHECKING-guarded abort call.
3147         (cris_split_movdx): Use CRIS_ASSERT instead of abort with test.
3148         Use internal_error at end of test-chain.
3149
3150 2005-05-13  J"orn Rennecke <joern.rennecke@st.com>
3151
3152         PR rtl-optimization/20769:
3153         * bt-load.c (compute_defs_uses_and_gen): Check for the blockage
3154         pattern emitted by expand_nl_goto_receiver.
3155
3156         PR middle-end/20793:
3157         * integrate.c (allocate_initial_values): Update register liveness
3158         information.
3159
3160 2005-05-13  Josh Conner  <jconner@apple.com>
3161
3162         * arm.c (arm_return_in_memory): Add handling for vector return types.
3163
3164 2005-05-13  David Ung  <davidu@mips.com>
3165
3166         * config/mips/mips.h (processor_type): Add new PROCESSOR_4KP
3167         name.
3168         * config/mips/mips.c: Add 4km alias.
3169         * config/mips/mips.md: Add 4kp to cpu attrib and include 4k.md.
3170         * config/mips/4k.md: New file, add 4Kc/4Kp DFA pipeline
3171         description.
3172
3173 2005-05-13  Jan Hubicka  <jh@suse.cz>
3174
3175         * c-decl.c (finish_function): Suppress "control reaches end of
3176         non-void function" when "no return statement in function
3177         returning non-void" is issued.
3178
3179         * tree-inline.c (copy_body_r): Simplify substituted ADDR_EXPRs.
3180         * tree-optimize.c (pass_gimple): Kill.
3181         (init_tree_optimization_passes): Kill pass_gimple.
3182         * tree-cfg.c (build_tree_cfg): Do verify_stmts to check that we are gimple.
3183         * tree-dump.c (dump_files): Rename .generic to .gimple.*
3184
3185 2005-05-13  J"orn Rennecke <joern.rennecke@st.com>
3186
3187         PR rtl-optimization/20756:
3188         * basic-block.h (PROP_DEAD_INSN): Define.
3189         * flow.c (propagate_one_insn): Set during mark_set_regs call
3190         for a dead insn.
3191         (mark_set_1): Emit a clobber when we are about to delete a dead insn
3192         that kills a live register.
3193
3194 2005-05-13  Adrian Straetling  <straetling@de.ibm.com>
3195
3196         * config/s390/s390.md: ("DBL"): New mode attribute.
3197         ("*movmem_long_64", "*movmem_long_31"): Merge to "*movmem_long".
3198         ("*clrmem_long_64", "*clrmem_long_31"): Merge to "*clrmem_long".
3199         ("*cmpmem_long_64", "*cmpmem_long_31"): Merge to "*cmpmem_long".
3200
3201 2005-05-13  Richard Guenther  <rguenth@gcc.gnu.org>
3202
3203         * c-format.c (check_format_arg): Handle string literals of
3204         the form &"string"[offset].
3205
3206         * g++.dg/warn/format4.C: New testcase.
3207
3208 2005-05-13  Kazu Hirata  <kazu@cs.umass.edu>
3209
3210         * config/mips/3000.md, config/mips/4000.md,
3211         config/mips/4100.md, config/mips/4300.md, config/mips/4600.md,
3212         config/mips/5000.md, config/mips/7000.md, config/mips/9000.md,
3213         config/mips/generic.md, config/pdp11/pdp11.md,
3214         config/sh/crt1.asm, config/sh/lib1funcs.asm,
3215         config/sh/sh-modes.def, config/sh/sh-protos.h,
3216         config/sh/shmedia.md, config/sh/ushmedia.h: Update copyright.
3217
3218 2005-05-13  Richard Henderson  <rth@redhat.com>
3219
3220         * function.c (instantiate_virtual_regs_in_insn): Do not simplify
3221         addition to move unless dest is a register.  Do not skip
3222         instantiation in dest on addition simplification.
3223
3224 2005-05-13  Hans-Peter Nilsson  <hp@axis.com>
3225
3226         * config/cris/cris.c (cris_print_operand) <case 'H'; case
3227         CONST_INT>: Use operand_subword and HOST_WIDE_INT_PRINT_DEC for
3228         output; don't have special case for HOST_BITS_PER_WIDE_INT == 32.
3229
3230 2005-05-13  Jan Hubicka  <jh@suse.cz>
3231
3232         * basic-block.h (FOR_ALL_BB_FN): New macro.
3233         (init_flow): Initialize cfg structure.
3234         * function.c (allocate_struct_function): Do not initialize cfg structure.
3235         * tree-cfg.c (init_empty_tree_cfg): Break out from ...
3236         (build_tree_cfg): ... here.
3237         * tree-flow.h (init_empty_tree_cfg): Declare.
3238
3239 2005-05-12  Steven Bosscher <stevenb@suse.de>
3240
3241         Fix PR tree-optimization/21520
3242         * tree-ssa-pre.c (phi_translate): Use fully_constant_expression
3243         to attempt to fold constants.
3244
3245 2005-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
3246
3247         * config/sh/sh.c: Declare the prototype of sh_adjust_unroll_max
3248         only when TARGET_ADJUST_UNROLL_MAX is defined.
3249         (general_movsrc_operand): Use the C style comment.
3250         (ua_offset): Use prototype.
3251
3252 2005-05-12  Zdenek Dvorak  <dvorakz@suse.cz>
3253
3254         * tree-ssa-loop-im.c (struct mem_ref): Add field "next".
3255         (struct hmr_data, hoist_memory_reference, memref_del,
3256         struct fmrv_data): Removed.
3257         (hoist_memory_references, free_mem_ref, free_mem_refs): New functions.
3258         (gather_mem_refs, gather_mem_refs_stmt): Add new references to the
3259         list.
3260         (find_more_ref_vops): Traverse the list of memory references.
3261         (determine_lsm_loop): Work with the list of memory references instead
3262         of traversing the hashtable.
3263
3264 2005-05-12  Steven Bosscher  <stevenb@suse.de>
3265             Stuart Hastings <stuart@apple.com>
3266             Jan Hubicka  <jh@suse.cz>
3267
3268         * except.c  (duplicate_eh_region_1, duplicate_eh_region_2,
3269         duplicate_eh_regions): New functions, based on old
3270         implementation removed with RTL inliner.
3271         (reachable_next_level): Modify behaviour pre-inline.
3272         * except.h (duplicate_eh_regions_map, duplicate_eh_regions):
3273         Declare.
3274         * function.h (struct function): Add after_inlining flag.
3275         * tree-optimize.c (tree_rest_of_compilation): Set it.
3276         * tree-eh.c (add_stmt_to_eh_region_fn): Initialize hashtable
3277         when needed.
3278         * tree-cfg.c (label_to_block_fn): Deal with cases where
3279         label was never insterted into code.
3280
3281 2005-05-12  Zack Weinberg  <zack@codesourcery.com>
3282
3283         * doc/cpp.texi: Document that #sccs is a synonym for #ident.
3284
3285 2005-05-12  Daniel Berlin  <dberlin@dberlin.org>
3286
3287         Fix PR tree-optimization/21532
3288         * tree-ssa-pre.c (create_expression_by_pieces): stmt
3289         needs to go onto the inserted_exprs list.
3290
3291 2005-05-12  Ian Lance Taylor  <ian@airs.com>
3292
3293         * c-common.h (statement_code_p): Don't declare.
3294         (STATEMENT_CODE_P): Don't define.
3295         (INIT_STATEMENT_CODES): Don't define.
3296         * c-common.c (statement_code_p): Don't define.
3297
3298 2005-05-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
3299
3300         * config/sparc/sparc.h: Remove dead code.
3301         * config/sparc/sparc.c (sparc_compute_frame_size): Use
3302         FIRST_PARM_OFFSET for the size of the register window area.
3303         (emit_save_regs): Rename into emit_save_or_restore_regs.
3304         Add 'action' parameter.  Use 4095 as upper bound for the offset.
3305         Pass 'action' to save_or_restore_regs.
3306         (emit_restore_regs): Delete.
3307         (sparc_expand_prologue): Call emit_save_or_restore_regs.
3308         (sparc_expand_epilogue): Likewise.
3309         * config/sparc/sparc.md (mode macro P): Move.
3310         (movdi_insn_sp32_v9, movdi_insn_sp32): Swap.
3311         (mov<V32:mode> expander): Move to the top of the V32 section.
3312         (movdf_insn_sp32_v9_no_fpu, movdf_insn_sp32_v9): Swap.
3313         (movtf_insn_sp64_hq, movtf_insn_sp64): Swap.
3314         (sibcall_epilogue): Move.
3315
3316 2005-05-12  Richard Earnshaw  <richard.earnshaw@arm.com>
3317
3318         PR target/21501
3319         * arm.c (arm_gen_constant): Sign-extend intermediate values when
3320         synthesizing a constant of the difference of two immediates.
3321
3322 2005-05-12  Richard Earnshaw  <richard.earnshaw@arm.com>
3323
3324         * arm/vfp.md (negsf2_vfp): Add alternative using integer registers.
3325         (negdf2_vfp): Likewise.  Convert to define_insn_and_split and split
3326         the alternatives using integer registers into the appropriate
3327         primitives.
3328
3329 2005-05-11 Kenneth Zadeck <zadeck@naturalbridge.com>
3330
3331         * bitmap.c (bitmap_elmt_to_freelist, bitmap_element_allocate,
3332         bitmap_elt_clear_from, bitmap_clear): Changed freelist structure.
3333         * bitmap.h: Fixed comments.
3334
3335 2005-05-11  Richard Henderson  <rth@redhat.com>
3336
3337         PR target/21412
3338         * config/ia64/ia64.c (TARGET_CANNOT_FORCE_CONST_MEM): New.
3339         (ia64_cannot_force_const_mem): New.
3340         (tls_symbolic_operand_type): New.
3341         (ia64_legitimate_constant_p): New.
3342         (ia64_expand_load_address): Return true on success.  Improve
3343         checks for when we should not split.
3344         (ia64_expand_tls_address): New addend operand.  Distribute it
3345         as appropriate to the tls_kind.  Delay referencing gp.
3346         (ia64_expand_move): Split symbolic addend as necessary.  Handle
3347         tls symbols with addends.
3348         * config/ia64/ia64-protos.h: Update.
3349         * config/ia64/ia64.h (CALL_REALLY_USED_REGISTERS): False for r0,
3350         p0, f0, f1, and r13.
3351         (LEGITIMATE_CONSTANT_P): Move to ia64_legitimate_constant_p.
3352         * config/ia64/ia64.md (UNSPEC_DTPMOD): New.
3353         (symbolic_operand splitter): Pass everything through
3354         ia64_expand_load_address and FAIL or DONE as appropriate.
3355         (load_fptr): Only accept after reload.
3356         (load_fptr_internal1, gprel64_offset, load_gprel64, load_symptr_high,
3357         load_symptr_low, load_ltoff_dtpmod,
3358         (load_dtpmod): New.
3359         (load_dtprel): Only accept tls symbols.
3360         (load_dtprel64, load_dtprel22): Likewise.
3361         (load_tprel, load_tprel64, load_tprel22): Likewise.
3362         (load_dtprel_gd, load_ltoff_dtprel, load_tprel_ie): New.
3363         (add_dtprel): Only accept tls symbols.  Canonicalize PLUS.
3364         (add_dtprel14, add_dtprel22): Likewise.
3365         (add_tprel, add_tprel14, add_tprel22): Likewise.
3366         * config/ia64/predicates.md (small_addr_symbolic_operand): New.
3367         (any_offset_symbol_operand, aligned_offset_symbol_operand): New.
3368         (got_symbolic_operand): Check CONST offsets.
3369         (tls_symbolic_operand, ld_tls_symbolic_operand): New.
3370         (ie_tls_symbolic_operand, le_tls_symbolic_operand): New.
3371         (move_operand): Don't handle tls here.  Check CONST offsets.
3372
3373 2005-05-11  Richard Sandiford  <rsandifo@redhat.com>
3374
3375         * config/mips/7000.md (rm7_impy_si_mult): Just match imul and imadd.
3376         Remove hilo_operand check.
3377         (rm7_impy_si_mul): Just match imul3.  Remove hilo_operand check.
3378         * config/mips/predicates.md (hilo_operand): Delete.
3379
3380 2005-05-11  Richard Sandiford  <rsandifo@redhat.com>
3381
3382         * config/mips/sr71k.md, config/mips/7000.md: Reformat.
3383
3384 2005-05-11  Kazu Hirata  <kazu@cs.umass.edu>
3385
3386         PR tree-optimizer/18472
3387         * tree-if-conv.c (tree_if_convert_stmt,
3388         if_convertible_modify_expr_p): Don't handle GOTO_EXPR.
3389
3390 2005-05-11  Jan Hubicka  <jh@suse.cz>
3391
3392         * Makefile.in (tree-eh.o: Kill gt-tree-eh.h dependency.
3393         (GTFILES): add except.h.
3394         * except.c (eh_status): Add throw_stmt_table.
3395         (set_eh_throw_stmt_table, get_eh_throw_stmt_table): New functions.
3396         * except.h (add_stmt_to_eh_region_fn, remove_stmt_from_eh_region_fn,
3397         lookup_stmt_eh_region_fn): Declare.
3398         (throw_stmt_node): New structure.
3399         (set_eh_throw_stmt_table, get_eh_throw_stmt_table): New.
3400         * gengtype.c (open_base_files): Add except.h to inlines.
3401         * tree-eh.c (throw_stmt_node): Kill.
3402         (record_stmt_eh_region): Update.
3403         (add_stmt_to_eh_region_fn): Break out from ...
3404         (add_stmt_to_eh_region): ... here.