OSDN Git Service

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