OSDN Git Service

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