OSDN Git Service

* config/darwin.c (darwin_encode_section_info): Always set
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2005-04-25  Mike Stump  <mrs@apple.com>
2
3         * config/darwin.c (darwin_encode_section_info): Always set
4         MACHO_SYMBOL_STATIC for all ! TREE_PUBLIC symbols.
5
6 2005-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7
8         * collect2.c, gcc.c, gcov-dump.c, gcov.c, gen-protos.c,
9         gensupport.c, protoize.c, toplev.c: Replace calls to
10         `unlock_stream' with `unlock_std_streams'.
11
12 2005-04-25  Devang Patel <dpatel@apple.com>
13
14         * dbxout.c (dbxout_type): Emit attribute vector.
15         
16 2005-04-05  Paul Brook  <julian@codesourcery.com>
17
18         * target-def.h (TARGET_CXX_USE_AEABI_ATEXIT): Define.
19         * target.h (struct gcc_target): Add cxx.use_aeabi_atexit.
20         * config/arm/arm.c (arm_cxx_atexit_name): New function.
21         (TARGET_CXX_USE_AEABI_ATEXIT): New macro.
22         * cp/decl.c (get_atexit_node): Reorder arguments for __aeabi_atexit.
23         (register_dtor_fn): Likewise.
24         * doc/tm.texi: Document TARGET_CXX_USE_AEABI_ATEXIT.
25
26 2005-04-25  Ian Lance Taylor  <ian@airs.com>
27
28         * c-common.def (EXPR_STMT): Remove, moved to C++ frontend.
29         * c-common.h (EXPR_STMT_EXPR): Don't define.
30         (c_common_stmt_codes): Don't define.
31         * c-dump.c (c_dump_tree): Remove EXPR_STMT case.
32         * c-gimplify.c (gimplify_expr_stmt): Remove.
33         (c_gimplify_expr): Remove EXPR_STMT case.
34         * c-objc-common.c (c_objc_common_init): Remove stmt_codes and call
35         to INIT_STATEMENT_CODES.
36         * c-pretty-print.c (pp_c_statement): Just call dump_generic_node.
37
38 2005-04-25  Jan Hubicka  <jh@suse.cz>
39
40         * tree-cfg.c (tree_duplicate_bb): Duplicate EH region too.
41
42         * except.c: Include diagnostic.h
43         (dump_eh_tree, verify_eh_tree): New functions.
44         * except.h (verify_eh_tree, dump_eh_tree, verify_eh_edges): Declare.
45         * tree-cfg.c (tree_verify_flow_info): verify eh edges.
46         (dump_function_to_file): dump eh tree.
47         * tree-eh.c (mark_eh_edge): New function.
48         (mark_eh_edge_found_error): New static variable.
49         (verify_eh_edges): New function.
50
51 2005-04-25  Nathan Sidwell  <nathan@codesourcery.com>
52
53         * tree-ssa-alias.c (fieldoff_t): Remove.
54         (fieldoff_s): typedef the structure itself.  Create a vector of
55         objects.
56         (push_fields_onto_fieldstack): Return count of fields pushed.
57         Remove peeling of first field.  Adjust.
58         (fieldoff_compare): Adjust.
59         (create_overlap_variables_for): Adjust.
60
61 2005-04-25  Joseph S. Myers  <joseph@codesourcery.com>
62
63         * doc/invoke.texi (Blackfin Options): Avoid empty @opindex line.
64
65 2005-04-25  Joseph S. Myers  <joseph@codesourcery.com>
66
67         PR bootstrap/21215
68         * doc/install.texi: Document correct assembler and linker to use
69         on i?86-*-solaris2.10.
70
71 2005-04-25  Steven Bosscher  <stevenb@suse.de>
72
73         Fix PR tree-optimization/21173
74
75         * tree-ssa-pre.c (create_expression_by_pieces): Simplify code.
76         Unshare expression we pass to force_gimple_operand.
77
78 2005-04-25  J"orn Rennecke <joern.rennecke@st.com>
79             Stephen Clarke <stevec@superh.com>
80             Roger Sayle <roger@eyesopen.com>
81
82         PR rtl-optimization/20413
83         * cfgrtl.c (redirect_edge_and_branch): Use Pmode instead of
84         VOIDmode for LABEL_REF.
85         * final.c (shorten_branches): Likewise.
86         * jump.c (mark_all_labels, redirect_exp_1): Likewise.
87         * loop.c (reg_dead_after_loop): Likewise.
88         * varasm.c (decode_addr_const): Likewise.
89         * doc/rtl.texi: Document mode requirement for LABEL_REF.
90
91 2005-04-25  Ralf Corsepius  <ralf.corsepius@rtems.org>
92
93         * config.gcc (avr-*-*): Remove redundant "case".
94
95 2005-04-25  Kazu Hirata  <kazu@cs.umass.edu>
96
97         * tree-vect-analyze.c (vect_mark_relevant): Take
98         VEC(tree,heap) instead of varray_type as an argument.
99         (vect_mark_stmts_to_be_vectorized): Change the type of
100         worklist to VEC(tree,heap).  Adjust uses of worklist.
101
102 2005-04-24  Devang Patel  <dpatel@apple.com>
103
104         *  config/rs6000/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New.
105         
106 2005-04-24  Ian Lance Taylor  <ian@airs.com>
107
108         * c-semantics.c (build_stmt): Remove test of specific tree codes
109         for TREE_SIDE_EFFECTS handling.
110
111 2005-04-24  Per Bothner  <per@bothner.com>
112
113         * c-opts.c (finish_options):  Make the line-number of the <built-in>
114         location 0, as assumed elsewhere, rather than 1.
115
116 2005-04-24  Kazu Hirata  <kazu@cs.umass.edu>
117
118         * tree-ssa-uncprop.c (equiv_stack): Change the type o
119         VEC(tree,heap).
120         (tree_ssa_uncprop, uncprop_finalize_block,
121         uncprop_initialize_block): Update uses of equiv_stack.
122
123 2005-04-24  Richard Henderson  <rth@redhat.com>
124
125         PR rtl-opt/21163
126         * simplify-rtx.c (simplify_binary_operation) <IOR>: Check
127         for SCALAR_INT_MODE_P instead of not MODE_CC before returning
128         constm1_rtx.
129         <AND, LSHIFTRT, UMIN>: Use CONST0_RTX.
130         <UDIV, UMOD>: Use CONST0_RTX and CONST1_RTX.
131         <DIV, MOD>: Likewise.
132
133 2005-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
134
135         * collect2.c (main): Unlock the stdio streams.
136         * gcc.c (main): Likewise.
137         * gcov-dump.c (main): Likewise.
138         * gcov.c (main): Likewise.
139         * gen-protos.c (main): Likewise.
140         * gensupport.c (init_md_reader_args_cb): Likewise.
141         * protoize.c (main): Likewise.
142         * toplev.c (general_init): Likewise.
143
144 2005-04-24  Jakub Jelinek  <jakub@redhat.com>
145
146         PR middle-end/20991
147         * cgraph.h (cgraph_local_info): Add vtable_method field.
148         * varasm.c (mark_decl_referenced): If cgraph_global_info_ready
149         and node is vtable_method, finalized and not reachable, don't do
150         anything.
151
152 2005-04-24  Kazu Hirata  <kazu@cs.umass.edu>
153
154         * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Use
155         COMPARISON_CLASS_P.
156         * tree-ssa-pre.c (create_value_expr_from): Use
157         CONSTANT_CLASS_P and REFERENCE_CLASS_P.
158         * tree-ssa-propagate.c (stmt_makes_single_load,
159         stmt_makes_single_store): Use REFERENCE_CLASS_P.
160         * tree-vect-transform.c (vect_is_simple_cond): Use
161         COMPARISON_CLASS_P.
162         * tree-vrp.c (extract_range_from_assert,
163         build_assert_expr_for, fp_predicate, has_assert_expr): Use
164         COMPARISON_CLASS_P.
165
166         * tree-ssa-live.c (build_tree_conflict_graph): Change the type
167         of tpa_to_clear to VEC(int,heap).  Update uses of
168         tpa_to_clear.  Free tpa_to_clear at the end.
169
170 2005-04-24  Andrew Pinski  <pinskia@physics.uc.edu>
171
172         * tree.h (TREE_THIS_VOLATILE): Document the effect on a
173         function decl.
174
175 2005-04-24  Nathan Sidwell  <nathan@codesourcery.com>
176
177         * config/rs6000/rs6000.c (rs6000_override_options): Use gcc_assert
178         and gcc_unreachable as appropriate.
179         (num_insns_constant, output_vec_const_move,
180         build_mask64_2_operands, rs6000_output_dwarf_dtprel,
181         rs6000_emit_set_const, rs6000_emit_move,
182         spe_build_register_parallel, function_arg,
183         rs6000_move_block_from_reg, altivec_expand_predicate_builtin,
184         spe_expand_predicate_builtin, spe_expand_evsel_builtin,
185         rs6000_expand_builtin, spe_init_builtins, altivec_init_builtins,
186         rs6000_common_init_builtins, expand_block_clear,
187         expand_block_move, validate_condition_mode, ccr_bit, extract_MB,
188         extract_ME, rs6000_get_some_local_dynamic_name,
189         rs6000_output_function_entry, print_operand,
190         print_operand_address, rs6000_generate_compare, rs6000_emit_sCOND,
191         output_cbranch, output_e500_flip_gt_bit,
192         rs6000_emit_vector_compare, rs6000_emit_vector_compare,
193         rs6000_emit_cmove, rs6000_emit_minmax, rs6000_split_multireg_move,
194         compute_save_world_info, rs6000_stack_info,
195         rs6000_emit_load_toc_table, rs6000_frame_related,
196         spe_synthesize_frame_save, rs6000_emit_epilogue,
197         rs6000_output_function_epilogue, rs6000_hash_constant, output_toc,
198         output_function_profiler, rs6000_trampoline_size,
199         rs6000_initialize_trampoline, find_addr_reg,
200         rs6000_machopic_legitimize_pic_address,
201         rs6000_initial_elimination_offset,
202         rs6000_dbx_register_number): Likewise.
203         * config/rs6000/rs6000.md (*fix_truncdfsi2_internal,
204         *movdf_hardfloat32, *movdf_softfloat32, *fix_trunctfsi2_internal,
205         *movti_power, *movti_string, call, call_value, sibcall,
206         sibcall_value): Likewise.
207         * config/rs6000/spe.md (*movdf_e500_double,
208         *movv2si_internal): Likewise.
209         * config/rs6000/rs6000.h (PREFERRED_RELOAD_CLASS): Remove 'abort'
210         from comment.
211
212 2005-04-24  Richard Henderson  <rth@redhat.com>
213
214         PR target/21101
215         * config/i386/i386.h (CANNOT_CHANGE_MODE_CLASS): Move guts to ...
216         * config/i386/i386.c (ix86_cannot_change_mode_class): ... here.
217         Deny modes smaller than 4 bytes.
218         * config/i386/i386-protos.h: Update.
219
220 2005-04-24  Ralf Corsepius  <ralf.corsepius@rtems.org>
221
222         * config.gcc (h8300-*-rtems*): Add h8300-*-rtemscoff*.
223         Switch h8300-*-rtems* to ELF.
224
225 2005-04-24  Kazu Hirata  <kazu@cs.umass.edu>
226
227         * vec.h (VEC_safe_grow): Replace grow with safe_grow.
228
229 2005-04-23  Kazu Hirata  <kazu@cs.umass.edu>
230
231         * ipa-inline.c, tree-ssa-operands.h: Fix comment typos.
232
233 2005-04-23  Richard Guenther  <rguenth@gcc.gnu.org>
234
235         PR middle-end/21082
236         * fold-const.c: Fold &a[i]-&a[j] to i-j.
237
238 2005-04-23  Zdenek Dvorak  <dvorakz@suse.cz>
239
240         * tree-ssa-loop-niter.c (tree_simplify_using_condition): Expand simple
241         definitions of ssa names in condition.  Split recusive part to ...
242         (tree_simplify_using_condition_1): New function.
243         (expand_simple_operations): New function.
244
245 2005-04-23  Zdenek Dvorak  <dvorakz@suse.cz>
246
247         * tree-ssa-loop-ivopts.c (struct cost_pair): Add value field.
248         (find_interesting_uses_cond): Do not use integer_zerop and
249         integer_nonzerop to check for integer constants.
250         (set_use_iv_cost): Record the value field.
251         (determine_use_iv_cost_generic, determine_use_iv_cost_address,
252         determine_use_iv_cost_outer): Set the value field of the cost pair.
253         (may_eliminate_iv): Do not return the comparison code.
254         (iv_elimination_compare): New function.
255         (determine_use_iv_cost_condition): Set the value field.  Record
256         noneliminable invariants correctly.
257         (rewrite_use_compare, rewrite_use_outer): Use the value field.
258
259 2005-04-23  DJ Delorie  <dj@redhat.com>
260
261         * diagnostic.c (warning): Accept parameter to classify warning option.
262         (warning0): New, for when a pointer to an error() like function is needed.
263         * errors.c (warning): Likewise.
264         * errors.h (warning, warning0): Adjust prototypes.
265         * toplev.h (warning, warning0): Likewise.
266
267         * attribs.c, builtins.c, c-common.c, c-decl.c, c-format.c,
268         c-gimplify.c, c-lex.c, c-objc-common.c, c-opts.c, c-parser.c,
269         c-pragma.c, c-typeck.c, calls.c, cgraph.c, coverage.c, emit-rtl.c,
270         fold-const.c, fortran/trans-decl.c, function.c, gcse.c,
271         genautomata.c, haifa-sched.c, opts.c, passes.c, regclass.c,
272         reload1.c, stmt.c, stor-layout.c, toplev.c, tree-cfg.c,
273         tree-dump.c, tree-inline.c, tree-mudflap.c, tree-optimize.c,
274         tree-ssa.c, tree.c, varasm.c: Adjust warning() callers.
275
276         * config/alpha/alpha.c, config/arc/arc.c, config/arm/arm.c,
277         config/avr/avr.c, config/bfin/bfin.c, config/c4x/c4x-c.c,
278         config/c4x/c4x.c, config/cris/cris.c, config/darwin-c.c,
279         config/darwin.c, config/darwin.h, config/h8300/h8300.c,
280         config/i386/cygming.h, config/i386/djgpp.h, config/i386/i386.c,
281         config/i386/winnt.c, config/ia64/ia64-c.c, config/ia64/ia64.c,
282         config/ip2k/ip2k.c, config/m32r/m32r.c, config/m68hc11/m68hc11.c,
283         config/m68k/m68k.c, config/mcore/mcore.c, config/mips/mips.c,
284         config/mmix/mmix.c, config/ns32k/ns32k.c, config/pa/pa-hpux11.h,
285         config/pa/pa.c, config/rs6000/aix43.h, config/rs6000/aix51.h,
286         config/rs6000/aix52.h, config/rs6000/darwin.h,
287         config/rs6000/rs6000-c.c, config/rs6000/rs6000.c,
288         config/s390/s390.c, config/sh/sh.c, config/sh/sh.h,
289         config/sh/symbian.c, config/sol2-c.c, config/sol2.c,
290         config/stormy16/stormy16.c, config/v850/v850-c.c,
291         config/v850/v850.c, config/xtensa/xtensa.c: Adjust warning()
292         callers.
293         
294 2005-04-23  Richard Henderson  <rth@redhat.com>
295
296         PR rtl-opt/21102
297         * simplify-rtx.c (simplify_binary_operation): Fix mode check before
298         performing some integral scalar simplifications.
299
300 2005-04-23  Richard Henderson  <rth@redhat.com>
301
302         PR target/21099
303         * config/i386/i386.c (ix86_split_to_parts): Use proper mode when
304         simplifying CONST_VECTOR.
305
306 2005-04-23  Kazu Hirata  <kazu@cs.umass.edu>
307
308         * tree-ssa-live.c (live_worklist): Take a stack allocated on
309         heap as an argument.  Update uses of stack.
310         (calculate_live_on_entry): Allocate stack on heap.
311
312         * tree-ssa-live.c (build_tree_conflict_graph): Allocate
313         partition_link and tpa_nodes on heap.
314
315         * tree-ssa-dce.c (worklist): Change to VEC(tree,heap).
316         (mark_stmt_necessary, propagate_necessity,
317         mark_really_necessary_kill_operand_phis): Update uses of
318         worklist.
319         (tree_dce_init): Allocate worklist using VEC_alloc.
320         (tree_dce_done): Free worklist using VEC_free.
321
322 2005-04-23  Mike Stump  <mrs@apple.com>
323
324         * config/darwin.c (machopic_indirection_name): Don't use
325         quotes needlessly.
326         (darwin_emit_unwind_label): Use user_label_prefix instead of
327         "_".
328
329 2005-04-23  Kazu Hirata  <kazu@cs.umass.edu>
330
331         * final.c, ipa-inline.c, varasm.c: Fix comment typos.
332
333 2005-04-23  Hans-Peter Nilsson  <hp@axis.com>
334
335         * config.gcc <cris-*>: Specify .opt files.
336         * config/cris/cris.opt, config/cris/elf.opt, config/cris/aout.opt,
337         config/cris/linux.opt: New files.
338         * config/cris/aout.h (CRIS_SUBTARGET_SWITCHES)
339         (CRIS_SUBTARGET_LONG_OPTIONS): Don't define.
340         (TARGET_ELF): Override to 0.
341         (CRIS_SUBTARGET_HANDLE_OPTION): Override to handle -melinux and
342         -melinux-stacksize=N.
343         * config/cris/cris.c: (cris_handle_option): New function.
344         (TARGET_DEFAULT_TARGET_FLAGS): Override.
345         (TARGET_HANDLE_OPTION): Override to cris_handle_option.
346         (cris_override_options): Use MASK_*, not TARGET_MASK_*.
347         * config/cris/cris.h (TARGET_MASK_SVINTO, TARGET_SVINTO,
348         (TARGET_MASK_CCINIT, TARGET_CCINIT, TARGET_MASK_PDEBUG)
349         (TARGET_PDEBUG, TARGET_MASK_SIDE_EFFECT_PREFIXES)
350         (TARGET_SIDE_EFFECT_PREFIXES, TARGET_MASK_EXPAND_MUL)
351         (TARGET_EXPAND_MUL, TARGET_MASK_STACK_ALIGN, TARGET_STACK_ALIGN)
352         (TARGET_MASK_CONST_ALIGN, TARGET_CONST_ALIGN)
353         (TARGET_MASK_DATA_ALIGN, TARGET_DATA_ALIGN)
354         (TARGET_MASK_PROLOGUE_EPILOGUE, TARGET_PROLOGUE_EPILOGUE)
355         (TARGET_MASK_ETRAX4_ADD, TARGET_ETRAX4_ADD)
356         (TARGET_MASK_ALIGN_BY_32, TARGET_ALIGN_BY_32, TARGET_MASK_ELF)
357         (TARGET_ELF, TARGET_MASK_LINUX, TARGET_LINUX)
358         (TARGET_MASK_AVOID_GOTPLT, TARGET_AVOID_GOTPLT)
359         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG, TARGET_SWITCHES)
360         (CRIS_SUBTARGET_SWITCHES, TARGET_OPTIONS)
361         (CRIS_SUBTARGET_LONG_OPTIONS): Don't define.
362         (TARGET_LINUX): Define 0.
363         (TARGET_DEFAULT): Use MASK_*, not TARGET_MASK_*.
364         (CRIS_SUBTARGET_DEFAULT): Define to 0, not TARGET_MASK_ELF.
365         (CRIS_SUBTARGET_DEFAULT): New empty default macro.
366         * config/cris/linux.h (CRIS_SUBTARGET_SWITCHES): Don't define.
367         (TARGET_LINUX): Override to 1.
368         (CRIS_SUBTARGET_DEFAULT): Use MASK_*, not TARGET_MASK_*.
369
370 2005-04-23  Nathan Sidwell  <nathan@codesourcery.com>
371
372         * haifa-sched.c (schedule_block): Fix thinko in previous
373         assertification patch.
374
375 2005-04-23  Richard Sandiford  <rsandifo@redhat.com>
376
377         * config.gcc (hppa[12]*-*-hpux10*): Add pa/pa-hpux.opt to
378         $extra_options.  Also add pa/pa-hpux1010.opt for hpux10.[1-9]*.
379         (hppa*64*-*-hpux11*): Add pa/pa-hpux1010.h to $tm_file.  Add
380         pa/pa-hpux.opt, pa/pa-hpux1010.opt and pa/pa64-hpux.opt to
381         $extra_options.  Also add pa/pa-hpux1111.opt for hpux11.[1-9]*.
382         (hppa[12]*-*-hpux11*): Add pa/pa-hpux1010.h to $tm_file.  Add
383         pa/pa-hpux.opt to $extra_options.  Also add pa/pa-hpux1111.opt
384         for hpux11.[1-9]*.
385         * config/pa/pa.h (architecture_type, rtx_def, pa_arch_string, pa_arch)
386         (pa_fixed_range_string, pa_cpu_string, pa_unix_string, target_flags)
387         (MASK_PA_11, MASK_DISABLE_FPREGS, TARGET_DISABLE_FPREGS)
388         (MASK_NO_SPACE_REGS, TARGET_NO_SPACE_REGS, MASK_JUMP_IN_DELAY)
389         (TARGET_JUMP_IN_DELAY, MASK_DISABLE_INDEXING, TARGET_DISABLE_INDEXING)
390         (MASK_PORTABLE_RUNTIME, TARGET_PORTABLE_RUNTIME, MASK_GAS, TARGET_GAS)
391         (MASK_SOFT_FLOAT, TARGET_SOFT_FLOAT, MASK_LONG_LOAD_STORE)
392         (TARGET_LONG_LOAD_STORE, MASK_FAST_INDIRECT_CALLS)
393         (TARGET_FAST_INDIRECT_CALLS, MASK_BIG_SWITCH, TARGET_BIG_SWITCH)
394         (MASK_PA_20, MASK_SIO, TARGET_SIO, MASK_GNU_LD, TARGET_GNU_LD)
395         (MASK_LONG_CALLS, TARGET_LONG_CALLS, TARGET_PA_11, TARGET_PA_20)
396         (TARGET_SWITCHES, SUBTARGET_SWITCHES, TARGET_OPTIONS)
397         (SUBTARGET_OPTIONS): Delete.
398         (TARGET_PA_10): Redefine in terms of TARGET_PA_11 and TARGET_PA_20.
399         (TARGET_SCHED_DEFAULT): Define to a PROCESSOR_* enum (PROCESSOR_8000)
400         instead of a string.
401         * config/pa/pa.c (pa_arch, pa_arch_string, pa_fixed_range_string)
402         (pa_cpu_string, pa_unix_string): Delete.
403         (pa_cpu): Initialize to TARGET_SCHED_DEFAULT.
404         (flag_pa_unix): Initialize based on TARGET_HPUX_11_11 and
405         TARGET_HPUX_10_10.
406         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
407         (pa_handle_option): New function.
408         (override_options): Remove handling of -march=, -mfixed-range=,
409         -mschedule= and -munix=.
410         * config/pa/pa-hpux.h (SUBTARGET_SWITCHES): Delete.
411         * config/pa/pa-hpux1010.h (SUBTARGET_OPTIONS): Delete.
412         * config/pa/pa-hpux10.h (SUBTARGET_OPTIONS): Delete.
413         * config/pa/pa-hpux1111.h (SUBTARGET_OPTIONS): Delete.
414         * config/pa/pa-hpux11.h (SUBTARGET_OPTIONS): Delete.
415         * config/pa/pa64-hpux.h (SUBTARGET_SWITCHES): Delete.
416         * config/pa/pa64-start.h (TARGET_PA_11, TARGET_PA_20): #undef before
417         redefining.
418         * config/pa/pa.opt: New file.
419         * config/pa/pa-hpux.opt: New file.
420         * config/pa/pa-hpux1010.opt: New file.
421         * config/pa/pa-hpux1111.opt: New file.
422         * config/pa/pa64-hpux.opt: New file.
423
424 2005-04-22  David S. Miller  <davem@davemloft.net>
425
426         * rtl.h (CONST_DOUBLE): Fix comment, a CONST_DOUBLE holds an
427         integer when it's mode is VOIDmode not DImode.
428
429 2005-04-22  Geoffrey Keating  <geoffk@apple.com>
430
431         * config/rs6000/rs6000.md (sync_add<mode>_internal,
432         sync_addshort_internal, sync_sub<mode>_internal, sync_andsi_internal,
433         sync_anddi_internal, sync_boolsi_internal, sync_booldi_internal,
434         sync_boolc<mode>_internal, sync_boolc<mode>_internal2,
435         sync_boolcc<mode>_internal, sync_lock_test_and_set<mode>): Use
436         "bne- $-xxx" rather than local labels.
437         (sync_lock_release<mode>): Add second operand.
438         (lwsync): Use .long rather than a more meaningful opcode.
439         * doc/md.texi (Standard Names): Add description of second
440         parameter to sync_lock_test_and_set.
441
442 2005-04-23  Kazu Hirata  <kazu@cs.umass.edu>
443
444         PR tree-optimization/21088
445         * fold-const.c (fold_unary, fold_binary, fold_ternary):
446         Export.
447         * tree-vrp.c (compare_values): Use fold_binary to compare
448         pointers.  Use boolean_type_node as the type of a comparison
449         expression being folded.
450         * tree.h: Add prototypes for fold_unary, fold_binary,
451         fold_ternary.
452
453         * tree-ssa-dom.c: Fix formatting.
454
455 2005-04-22  Diego Novillo  <dnovillo@redhat.com>
456
457         * Makefile.in (tree-into-ssa.o): Add dependency on PARAMS_H.
458         * lambda-code.c (perfect_nestify): Mark virtual operands in
459         the moved statement for renaming.
460         * params.def (PARAM_MIN_VIRTUAL_MAPPINGS): Define.
461         (PARAM_VIRTUAL_MAPPINGS_TO_SYMS_RATIO): Define.
462         * params.h (MIN_VIRTUAL_MAPPINGS): Define.
463         (VIRTUAL_MAPPINGS_TO_SYMS_RATIO): Define.
464         * tree-flow.h (struct var_ann_d): Update comments.
465         (rewrite_to_new_ssa_names_bb, rewrite_to_new_ssa_names,
466         allocate_ssa_names, find_phi_node_for, dump_tree_ssa,
467         debug_tree_ssa, debug_def_blocks, dump_tree_ssa_stats,
468         debug_tree_ssa_stats, rewrite_ssa_into_ssa,
469         dump_repl_tbl, debug_repl_tbl, dump_names_replaced_by,
470         debug_names_replaced_by): Remove declarations.
471         (delete_update_ssa, get_current_def, set_current_def): Declare.
472         (rewrite_into_loop_closed_ssa): Add new argument.  Update
473         all callers.
474         * tree-into-ssa.c: Include params.h.
475         (old_virtual_ssa_names): Remove.  Update all users.
476         (need_to_replace_names_p): Remove.  Update all users.
477         (struct update_ssa_stats_d): Declare.
478         (update_ssa_stats): New local.
479         (dump_tree_ssa, debug_tree_ssa, debug_def_blocks,
480         dump_tree_ssa_stats, debug_tree_ssa_stats,
481         dump_update_ssa, debug_update_ssa,
482         dump_names_replaced_by, debug_names_replaced_by): Declare.
483         (get_current_def, set current_def): Make extern.
484         (is_old_name, is_new_name): Protect against references
485         past the end of the sets.
486         (add_new_name_mapping): Assert that OLD and NEW are
487         different SSA names for the same symbol.
488         When adding a virtual mapping, update stats for virtual
489         mapping heuristic.
490         (insert_phi_nodes_for): If UPDATE_P is true, create the
491         LHS of the new PHI by duplicating SSA name VAR.
492         (insert_phi_nodes_1): Remove.  Update all users.
493         (insert_phi_nodes): Remove second argument.  Update all
494         users.
495         (maybe_replace_use, maybe_replace_def): New.
496         (rewrite_update_stmt): Call them.
497         (mark_def_interesting): Remove calls to is_gimple_reg.
498         (prepare_phi_args_for_update): Remove.  Update all users.
499         (prepare_block_for_update): Only process virtual operands
500         and GIMPLE registers in normal form.
501         (prepare_use_sites_for): New.
502         (prepare_names_to_update): Rename from prepare_def_sites.
503         Call prepare_use_sites_for.
504         (dump_update_ssa): Rename from dump_repl_tbl.
505         Update all users.
506         Show statistics for virtual mapping heuristic.
507         (debug_update_ssa): Rename from debug_debug_repl_tbl.
508         (init_update_ssa): Initialize UPDATE_SSA_STATS.
509         (delete_update_ssa): Make extern.
510         (mark_set_for_renaming): If the set is empty, do nothing.
511         (release_ssa_name_after_update_ssa): Update comment.
512         (insert_updated_phi_nodes_for): Do not remove existing
513         PHI nodes for symbols.
514         (switch_virtuals_to_full_rewrite_p): New.
515         (switch_virtuals_to_full_rewrite): New.
516         (update_ssa): Call them.
517         Clear REWRITE_THIS_STMT and REGISTER_DEFS_IN_THIS_STMT
518         for every statement before updating.
519         If all the names in NEW_SSA_NAMES have been marked for
520         removal, do nothing.
521         Only start at the top of the CFG if there are symbols in
522         SYMS_TO_RENAME.
523         (ssa_rewrite_finalize_block): Remove.
524         (ssa_register_new_def): Remove.
525         (ssa_rewrite_stmt): Remove.
526         (ssa_rewrite_phi_arguments): Remove.
527         (ssa_rewrite_initialize_block): Remove.
528         (ssa_mark_def_sites): Remove.
529         (ssa_mark_def_sites_initialize_block): Remove.
530         (ssa_mark_phi_uses): Remove.
531         (rewrite_ssa_into_ssa): Remove.
532         * tree-phinodes.c (find_phi_node_for): Remove.
533         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
534         Call update_ssa.
535         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops):
536         Remove calls to verify_dominators and
537         verify_loop_structure.
538         (tree_unswitch_single_loop): Call update_ssa.
539         * tree-ssa.c (verify_ssa): Assert that need_ssa_update_p
540         returns false.
541         Call verify_stmts.
542         (delete_tree_ssa): Assert that need_ssa_update_p returns
543         false.
544         * tree-vect-transform.c (vect_transform_loop): Call update_ssa.
545         * tree-vectorizer.c (allocate_new_names, rename_def_op,
546         free_new_names): Remove.  Update all users.
547         (rename_use_op): Call get_current_def.
548         (rename_variables_in_bb): Do not handle any real or
549         virtual definition.
550         (slpeel_update_phis_for_duplicate_loop): Call
551         get_current_def and set_current_def instead of using
552         SSA_NAME_AUX.
553         (slpeel_update_phi_nodes_for_guard2): Reformat comments.
554         (slpeel_can_duplicate_loop_p): Call need_ssa_update_p,
555         ssa_names_to_replace and delete_update_ssa.
556         * doc/invoke.texi: Document --param min-virtual-mappings
557         and --param virtual-mappings-ratio.
558
559 2005-04-22  Diego Novillo  <dnovillo@redhat.com>
560
561         * tree-cfg.c (tree_duplicate_bb): Call create_new_def_for
562         for newly created PHI nodes.
563         Call create_new_def_for for every new V_MAY_DEF and
564         V_MUST_DEF on the copied statement.
565         (struct ssa_name_map_entry): Remove.
566         (ssa_name_map_entry_hash): Remove.
567         (ssa_name_map_entry_eq): Remove.
568         (allocate_ssa_names): Remove.
569         (rewrite_to_new_ssa_names_def): Remove.
570         (rewrite_to_new_ssa_names_use): Remove.
571         (rewrite_to_new_ssa_names_bb): Remove.
572         (rewrite_to_new_ssa_names): Remove.
573         (tree_duplicate_sese_region): Remove variables ver,
574         definitions, phi, ssa_name_map and bi.
575         Call need_ssa_update_p instead of any_marked_for_rewrite_p.
576         Call update_ssa.
577         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
578         update_ssa instead of rewrite_ssa_into_ssa.
579         * tree-ssa-loop-manip.c (add_exit_phis_edge): Call
580         create_new_def_for.
581         (find_uses_to_rename_use): Add argument 'need_phis'.
582         (find_uses_to_rename_stmt): Do not scan virtual operands.
583         (find_uses_to_rename): Only scan PHI nodes for
584         non-virtual names.
585         (rewrite_into_loop_closed_ssa): Call update_ssa.
586         (check_loop_closed_ssa_use): Ignore virtual operands.
587         (check_loop_closed_ssa_stmt): Likewise.
588         (verify_loop_closed_ssa): Do nothing if CURRENT_LOOPS is
589         NULL.
590         (rename_variables, set_phi_def_stmts): Remove.
591         (tree_duplicate_loop_to_header_edge): Reformat comment.
592         Remove variables BB, I and DEFINITIONS.
593         Call need_ssa_update_p.
594         Call update_ssa.
595         (lv_adjust_loop_header_phi): Reformat comment.
596         * tree-ssanames.c (ssa_names_to_rewrite): Remove.
597         (marked_for_rewrite_p, any_marked_for_rewrite_p,
598         mark_for_rewrite, unmark_all_for_rewrite,
599         marked_ssa_names): Remove.  Update all users.
600         (release_ssa_name): If VAR has been registered for SSA
601         updating, do nothing.
602         * tree-vrp.c (new_ssa_names, old_ssa_names): Remove.
603         (build_assert_expr_for): Call register_new_name_mapping.
604         (insert_range_assertions): Update call to update_ssa.
605         * tree.h (mark_for_rewrite, unmark_all_for_rewrite,
606         marked_for_rewrite_p, any_marked_for_rewrite_p,
607         marked_ssa_names): Remove.
608
609 2005-04-22  Jeff Law  <law@redhat.com>
610
611         * tree-ssa-dom.c (block_defs_stack): Remove, no longer needed.
612         (restore_currdefs_to_original_value): Likewise.
613         (register_definitions_for_stmt): Likewise.
614         (tree_ssa_dominator_optimize): No longer initialize CURRENT_DEF
615         for each variable.  Do not allocate/free block_defs_stack either.
616         Do not iterate if we just thread jumps.  Only iterate if the
617         tree_cleanup_cfg does useful work (temporary).
618         (dom_opt_initialize_block): No longer push a marker on
619         BLOCK_DEFS_STACK.
620         (dom_opt_finalize_block): Removal call to restore currdefs.
621         Relax restrictions for recording edge equivalences.
622         (record_equivalences_from_phis): No longer need to track
623         CURRENT_DEF.
624         (optimize_stmt): Similarly.
625         (thread_across_edge): Simplify by removing the requirement that
626         statements in the block we are threading through must be nops.
627         (initialize_hash_element): Handle GOTO_EXPR.
628
629 2005-04-22  David S. Miller  <davem@davemloft.net>
630
631         * sched-vis.c (print_value): Use CONST_DOUBLE_LOW and
632         CONST_DOUBLE_HIGH.
633         * config/sparc/sparc.c (sparc_rtx_costs): Likewise, and
634         fix check on CONST_DOUBLE mode.  It should be VOIDmode
635         when it is representing an integer.
636
637 2005-04-22  Nathan Sidwell  <nathan@codesourcery.com>
638
639         * builtins.c (gimplify_va_arg_expr): Reword comments to avoid
640         'abort'. Use gcc_assert and gcc_unreachable as appropriate.
641         * c-format.c (get_constant, decode_format_attr, get_flag_spec, 
642         find_char_info_specifier_index,
643         find_length_info_modifier_index): Likewise.
644         * c-typeck.c (composite_type, pop_init_level): Likewise.
645         * combine.c (cant_combine_insn_p, try_combine): Likewise.
646         * cse.c (cse_insn): Likewise
647         * dominance.c (calc_dfs_tree): Likewise
648         dwarf2out.c (loc_descriptor_from_tree_1,
649         add_abstract_origin_attribute, force_decl_die,
650         force_type_die): Likewise
651         emit-rtl.c (operand_subword_force): Likewise
652         explow.c (hard_function_value): Likewise
653         expmed.c (store_bit_field, expand_divmod,
654         emit_store_flag_force): Likewise
655         expr.c (emit_move_multi_word, store_expr,
656         expand_expr_real_1): Likewise
657         final.c (this_is_asm_operands, shorten_branches, final_scan_insn,
658         output_operand): Likewise
659         flow.c (recompute_reg_usage): Likewise
660         * function.c (assign_stack_temp_for_type, assign_temp, 
661         handle_epilogue_set): Likewise
662         * genextract.c (main): Likewise
663         * gimplify.c (mostly_copy_tree_r, gimplify_return_expr,
664         gimplify_modify_expr_rhs, gimplify_expr): Likewise
665         * haifa-sched.c (ready_lastpos, ready_remove_first, ready_element,
666         ready_remove, rm_line_notes, rm_other_notes,
667         schedule_block): Likewise
668         mips-tfile.c (copy_object, out_of_bounds): Likewise
669
670 2005-04-22 David Edelsohn  <edelsohn@gnu.org>
671
672         PR target/20813
673         * config/rs6000/default64.h (TARGET_DEFAULT): Add MASK_PPC_GFXOPT.
674         * config/rs6000/rs6000.c (processor_target_table): Rename rs64a to
675         rs64.  Add MASK_PPC_GFXOPT to powerpc64 and rs64.
676         (rs6000_init_libfuncs): Set TFmode optabs to xlq names if
677         TARGET_XL_COMPAT.
678         * doc/invoke.texi (PowerPC options): Change rs64a to rs64.
679
680 2005-04-22  Nathan Sidwell  <nathan@codesourcery.com>
681
682         * lambda-code.c: Define VEC(int,heap), VEC(lambda_loop,heap).
683         (gcc_tree_to_linear_expression): Convert to heap allocated
684         vectors.
685         (gcc_loop_to_lambda_loop, gcc_loopnest_to_lambda_loopnest,
686         lbv_to_gcc_expression, lle_to_gcc_expression,
687         lambda_loopnest_to_gcc_loopnest, can_convert_to_perfect_nest, 
688         perfect_nestify): Likewise.
689         lambda.h (gcc_loopnest_to_lambda_loopnest,
690         lambda_loopnest_to_gcc_loopnest): Likewise.
691         tree-loop-linear.c (linear_transform_loops): Likewise.
692
693 2005-04-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
694
695         * config/sparc/predicates.md (arith_double_operand): Use
696         trunc_int_for_mode if HOST_BITS_PER_WIDE_INT >=64.
697         * config/sparc/sparc.md (movqi, movhi, movsi, movqi): Use gen_int_mode.
698         (DImode, DFmode constant splitters): Likewise.  Remove code for
699         TARGET_ARCH64 && HOST_BITS_PER_WIDE_INT < 64.
700         (logical constant splitters): Use const_int_operand predicate.
701         (lshrsi3_extend): Remove code for TARGET_ARCH64 &&
702         HOST_BITS_PER_WIDE_INT < 64.
703
704 2005-04-22  Nathan Sidwell  <nathan@codesourcery.com>
705
706         * config/pa/pa.c (legitimize_pic_address): Use gcc_assert and
707         gcc_unreachable as appropriate.
708         (force_mode, emit_move_sequence, singlemove_string,
709         output_move_double, output_fp_move_double, find_addr_reg,
710         output_block_move, output_block_clear, output_and,
711         output_64bit_and, output_ior, output_64bit_ior, store_reg_modify,
712         pa_adjust_cost, pa_issue_rate, print_operand,
713         output_global_address, output_arg_descriptor, output_cbranch,
714         output_lbranch, output_bb, output_bvb, output_dbra, output_movb,
715         output_call): Likewise.
716         * config/pa/pa.md (call, call_value, sibcall, sibcall_value,
717         prefetch, prefetch_cc, prefetch_nocc): Likewise.
718
719 2005-04-22  Zdenek Dvorak  <dvorakz@suse.cz>
720
721         * Makefile.in (LIBGCOV): Add _gcov_interval_profiler,
722         _gcov_pow2_profiler and _gcov_one_value_profiler.
723         (tree-profile.o): Add GGC_H and gt-tree-profile.h dependency.
724         (GTFILES): Add $(srcdir)/tree-profile.c.
725         * gcov-io.h (__gcov_interval_profiler, __gcov_pow2_profiler,
726         __gcov_one_value_profiler): Declare.
727         * gimplify.c (force_gimple_operand): Check whether the statements
728         should be produced in ssa form.
729         (force_gimple_operand_bsi): New function.
730         * libgcov.c (__gcov_interval_profiler, __gcov_pow2_profiler,
731         __gcov_one_value_profiler): New functions.
732         * rtl-profile.c (rtl_gen_pow2_profiler): Only measure whether
733         the profiled value is a power of two or not.
734         * tree-cfg.c (tree_block_ends_with_condjump_p): Handle empty blocks.
735         * tree-flow.h (in_ssa_p): Declare.
736         (force_gimple_operand_bsi): Declare.
737         * tree-into-ssa.c (in_ssa_p): New variable.
738         (rewrite_into_ssa): Set in_ssa_p.
739         * tree-outof-ssa.c (rewrite_out_of_ssa): Set in_ssa_p.
740         * tree-profile.c: Include ggc.h and gt-tree-profile.h.
741         (gcov_type_node, tree_interval_profiler_fn, tree_pow2_profiler_fn,
742         tree_one_value_profiler_fn): New variables.
743         (tree_init_edge_profiler): Initialize the profiler function decls.
744         (tree_gen_edge_profiler): Use global gcov_type_node.
745         (prepare_instrumented_value): New function.
746         (tree_gen_interval_profiler, tree_gen_interval_profiler,
747         tree_gen_one_value_profiler): Call the library functions instead of
748         creating instrumentation code.
749         * tree.c (build_fn_decl): New function.
750         * tree.h (build_fn_decl): Declare.
751         * value-prof.c (rtl_divmod_values_to_profile,
752         rtl_find_values_to_profile, rtl_mod_pow2_value_transform,
753         tree_mod_pow2_value_transform, tree_find_values_to_profile):
754         Do not handle may_be_other and precise values of exponents at pow2
755         profiler.
756         (tree_mod_subtract_transform): Reflect that value field of
757         histogram has changed meaning.
758         (tree_divmod_values_to_profile): Record the values correctly.
759         (tree_values_to_profile): Update comment.
760         * value-prof.h (struct histogram_value_t): Remove pow2 data.
761
762 2005-04-22  Joseph S. Myers  <joseph@codesourcery.com>
763
764         * varasm.c (do_assemble_alias): Return early if TREE_ASM_WRITTEN
765         (decl).
766
767 2005-04-22  Nathan Sidwell  <nathan@codesourcery.com>
768
769         * config/i386/i386.md (length_immediate): Use gcc_assert or
770         gcc_unreachable, as appropriate.
771         (*movsi_1, *movqi_1, reload_outqi, *movdi_1_rex64, *pushsf,
772         *pushsf_rex64, *truncxfsf2_mixed, *truncxfsf2_i387,
773         *truncxfdf2_mixed, *truncxfdf2_i387, *adddi_1_rex64,
774         *adddi_2_rex64, *adddi_3_rex64, *adddi_4_rex64, *adddi_5_rex64,
775         *addsi_1, addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
776         *addsi_3_zext, *addsi_4, *addsi_5, *addhi_1_lea, *addhi_1,
777         *addhi_2, *addhi_3, *addhi_4, *addhi_5, *addqi_1_lea, *addqi_1,
778         *addqi_1_slp, *addqi_2, *addqi_3, *addqi_4, *addqi_5, addqi_ext_1,
779         *addqi_ext_1_rex64, *anddi_1_rex64, *andsi_1, *andhi_1,
780         *ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashlsi3_1, *ashlsi3_1_zext,
781         *ashlsi3_cmp, *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1,
782         *ashlhi3_cmp, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
783         pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64,
784         pro_epilogue_adjust_stack_rex64_2, prefetch, *prefetch_sse,
785         *prefetch_sse_rex): Likewise.
786         * config/i386/predicates.md (x86_64_immediate_operand,
787         x86_64_zext_immediate_operand, symbolic_operand,
788         no_seg_address_operand, aligned_operand,
789         memory_displacement_operand): Likewise.
790         * config/i386/sse.md (*mov<mode>_internal,
791         *movv2df_internal): Likewise.
792
793 2005-04-22  Jan Hubicka  <jh@suse.cz>
794
795         * Makefile.in (ipa.o, ipa-inline.o): New files.
796         * cgraph.h (cgraph_remove_unreachable_nodes, cgraph_postorder,
797         cgraph_decide_inlining_incrementally, cgraph_clone_inlined_nodes,
798         cgraph_mark_inline_edge, cgraph_default_inline_p): Declare.
799         * cgraphunit.c (cgraph_default_inline_p,
800         cgraph_decide_inlining_incrementally,  ncalls_inlined,
801         nfunctions_inlined, initial_insns, overall_insns, 
802         cgraph_estimate_size_after_inlining, cgraph_estimate_growth,
803         cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
804         cgraph_mark_inline, cgraph_check_inline_limits,
805         cgraph_default_inline_p, cgraph_recursive_inlining_p,
806         update_callee_keys, lookup_recursive_calls,
807         cgraph_decide_recursive_inlining, cgraph_set_inline_failed,
808         cgraph_decide_inlining_of_small_functions, cgraph_decide_inlining,
809         cgraph_decide_inlining_incrementally, cgraph_gate_inlining,
810         pass_ipa_inline): Move to ipa-inline.c
811         (cgraph_postorder, cgraph_remove_unreachable_nodes): Move to ipa.c
812         * ipa.c: New file.
813         * ipa-inline.c: New file.
814
815 2005-04-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
816
817         * doc/invoke.texi (SPARC options): Document that -mapp-regs
818         is turned off by default on Solaris.
819
820 2005-04-21  Roger Sayle  <roger@eyesopen.com>
821
822         * c-common.h (objc_build_method_signature): Update prototype.
823         * stub-objc.c (objc_build_method_signature): Update the stub
824         implementation to accept and ignore additional parameter.
825         * c-parser.c (c_parser_objc_method_decl): Reorgnize to pass
826         the value of ellipsis to objc_build_method_signature instead
827         of setting TREE_OVERFLOW on the parms TREE_LIST node.
828
829 2005-04-21  Geoffrey Keating  <geoffk@apple.com>
830
831         * config/rs6000/rs6000-protos.h (rs6000_emit_sync): New.
832         * config/rs6000/rs6000.c (rs6000_emit_vector_compare): Use
833         gen_rtx_* not gen_rtx_fmt_*.
834         (rs6000_emit_vector_select): Likewise.
835         (rs6000_emit_sync): New.
836         * config/rs6000/rs6000.md (GPR, INT, INT1): New mode macros.
837         (larx, stcx, cmp): New mode substitutions.
838         (UNSPEC_SYNC, UNSPEC_SYNC_OP, UNSPEC_SYNC_SWAP, UNSPEC_LWSYNC,
839         UNSPEC_ISYNC): New constants.
840         (rlwinm): Give name.
841         (memory_barrier, isync, lwsync): New insns.
842         (sync_compare_and_swap<mode>, sync_lock_test_and_set<mode>): New insn.
843         (sync_lock_release<mode>): New expander.
844         (sync_add<mode>, sync_sub<mode>, sync_ior<mode>, sync_and<mode>,
845         sync_xor<mode>, sync_nand<mode>, sync_old_add<mode>,
846         sync_old_sub<mode>, sync_old_ior<mode>, sync_old_and<mode>,
847         sync_old_xor<mode>, sync_old_nand<mode>, sync_new_add<mode>,
848         sync_new_sub<mode>, sync_new_ior<mode>, sync_new_and<mode>,
849         sync_new_xor<mode>, sync_new_nand<mode>): New expanders.
850         (sync_add<mode>_internal, sync_addshort_internal,
851         sync_sub<mode>_internal, sync_andsi_internal, sync_anddi_internal,
852         sync_boolsi_internal, sync_booldi_internal, sync_boolc<mode>_internal,
853         sync_boolc<mode>_internal2, sync_boolcc<mode>_internal): New insns.
854
855         * doc/md.texi (Standard Names): sync_compare_and_swap's operand 0
856         is the memory before, not after, the operation.  Clarify
857         barrier requirements.
858
859 2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
860
861         * cfghooks.h (struct cfg_hooks): Reword comments to avoid 'abort'.
862         * lambda.h (lambda_vector_min_nz): Likewise.
863         * langhooks.h (struct lang_hooks_for_types,
864         struct lang_hooks): Likewise.
865         * output.h (assemble_integer, this_is_asm_operands): Likewise.
866         * tree.h: Likewise.
867         * vec.h: Likewise.
868         * tree-flow-inline.h (relink_imm_use): Use gcc_assert.
869         
870         * optabs.c (prepare_cmp_insn, emit_cmp_and_jump_insns): Reword
871         comments to avoid 'abort'.  Use gcc_assert as necessary.
872         * opts.c (common_handle_option): Likewise.
873         * pretty-print.c (pp_base_format_text): Likewise.
874         * print-rtl.c (print_rtx): Likewise.
875         * read-rtl.c (read_rtx_filename, read_rtx_1): Likewise.
876         * regmove.c (try_auto_increment): Likewise.
877         * reload.c (find_valid_class, find_reloads_toplev,
878         find_equiv_reg): Likewise.
879         * reload1.c (reload, forget_old_reloads_1, function_invariant_p, 
880         merge_assigned_reloads): Likewise.
881         * tree-inline.c (inline_forbidden_p_1,
882         estimate_num_insns_1): Likewise.
883         * tree-optimize.c (execute_todo): Likewise.
884         * tree-outof-ssa.c (eliminate_phi): Likewise.
885         * tree-ssa-alias.c (add_pointed_to_expr): Likewise.
886         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Likewise.
887         * tree-ssa-operands.c (parse_ssa_operands,
888         get_indirect_ref_operands, create_ssa_artficial_load_stmt): Likewise.
889         * tree-ssa-pre.c (find_or_generate_expression): Likewise.
890         * tree-ssanames.c (release_ssa_name): Likewise.
891         * tree.c (int_bit_position, int_byte_position, tree_low_cst, 
892         walk_tree): Likewise.
893
894         * tree-ssa-operands.c (verify_abort): Fold into ..
895         (verify_imm_links): ... here.
896
897 2005-04-21  Richard Henderson  <rth@redhat.com>
898
899         * config/alpha/sync.md (sync_new_nand<I48MODE>): Fix constraints
900         on non-memory operand for previous inversion.
901
902 2005-04-21  Devang Patel  <dpatel@apple.com>
903
904         PR optimization/20994
905         * tree-if-conv.c (find_phi_replacement_condition): Avoid generating
906         x = !(a == b) : p , q;.
907         (pass_if_conversion): Verify stmts and flow.
908         
909 2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
910
911         * optabs.c (gen_conditional_trap): Restore #define.
912
913         * alias.c (true_dependence): Remove 'abort' from comments. Use
914         gcc_assert and gcc_unreachable as appropriate.
915         (canon_true_dependence): Likewise.
916         * bb-reorder.c (connect_traces): Likewise.
917         * c-common.c (c_add_case_label): Likewise.
918         * c-decl.c (finish_function): Likewise.
919         * caller-save.c (insert_restore, insert_save): Likewise.
920         * cfg.c (update_bb_profile_for_threading): Likewise.
921         * cfganal.c (flow_active_insn_p): Likewise.
922         * cfgexpand.c (add_reg_br_prob_note): Likewise.
923         * cfgrtl.c (rtl_redirect_edge_and_branch_force, rtl_split_edge,
924         cfg_layout_merge_blocks): Likewise.
925         * ifcvt.c (cond_exec_process_insns, merge_if_block,
926         find_if_block): Likewise.
927         * integrate.c (allocate_initial_values): Likewise.
928         * jump.c (reverse_condition, reverse_condition_maybe_unordered,
929         swap_condition, unsigned_condition, signed_condition,
930         mark_jump_label, invert_jump_1, rtx_renumbered_equal_p,
931         reg_or_subregno): Likewise.
932         * lambda-code.c (lambda_compute_auxillary_space,
933         lambda_transform_legal_p): Likewise.
934         * lambda-mat.c (lambda_matrix_inverse_hard): Likewise.
935         * langhooks.c (lhd_set_decl_assembler_name, lhd_type_promotes_to,
936         lhd_incomplete_type_error, lhd_expand_expr,
937         lhd_types_compatible_p, lhd_tree_size): Likewise.
938         * lcm.c (create_pre_exit, optimize_mode_switching): Likewise.
939         * local-alloc.c (update_equiv_regs): Likewise.
940         * loop-unroll.c (peel_loop_completely
941         unroll_loop_constant_iterations, unroll_loop_runtime_iterations,
942         peel_loop_simple, unroll_loop_stupid,
943         analyze_iv_to_split_insn): Likewise.
944         * loop.c (gen_prefetch, find_and_verify_loops,
945         basic_induction_var): Likewise.
946         * modulo-sched.c (normalize_sched_times, check_nodes_order): Likewise.
947         * value-prof.c (tree_find_values_to_profile): Likewise.
948         * varasm.c (named_section, default_assemble_integer,
949         decode_addr_const): Likewise.
950
951 2005-04-21 Alan Modra  <amodra@bigpond.net.au>
952            Fariborz Jahanian <fjahanian@apple.com>
953
954         * config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Fix size of
955         portion of argument passed in fpr.
956         * expr.c (emit_push_insn): Fix computation of 'offset' used to
957         decide on partial argument save on stack.
958
959 2005-04-21  Kazu Hirata  <kazu@cs.umass.edu>
960
961         * config/sparc/predicates.md, config/sparc/sparc.md: Fix
962         comment typos.
963
964 2005-04-21  Jan Hubicka  <jh@suse.cz>
965
966         * cgraphunit.c: Include tree-pass.h
967         (cgraph_decide_recursive_inlining,
968         cgraph_decide_inlining_of_small_function, cgraph_set_inline_failed,
969         cgraph_decide_inlining): Dump goes to dump_file.
970         (cgraph_optimize): Call ipa passes instead of inliner.
971         (cgraph_gate_inlining, pass_ipa_inline): New.
972         * tree-optimize.c (all_ipa_passes): New static variable.
973         (register_one_dump_file): Dead with IPA passes.
974         (register_dump_files): Likewise.
975         (init_tree_optimization_passes): Initialize IPA passes.
976         (execute_todo): Do cgraph dump when asked to, do not dump function body
977         for IPA pass.
978         * tree-pass.h (TODO_dump_cgraph): New macro.
979         (ipa_passes): Declare.
980         * Makefile.in (cgraphunit.o): Add dependency on cgraphunit.h
981
982 2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
983
984         * config/i386/i386.c (type_natural_mode): Use gcc_unreachable and
985         gcc_assert instead of abort.
986         (classify_argument, examine_argument, construct_container,
987         contains_128bit_aligned_vector_p, ix86_check_movabs,
988         standard_80387_constant_opcode, standard_80387_constant_rtx,
989         ix86_initial_elimination_offset, ix86_compute_frame_layout,
990         pro_epilogue_adjust_stack, ix86_expand_epilogue,
991         ix86_address_cost, legitimate_address_p, legitimize_pic_address,
992         legitimize_tls_address, output_pic_addr_const,
993         i386_output_dwarf_dtprel, put_condition_code, print_reg,
994         get_some_local_dynamic_name, print_operand, print_operand_address,
995         output_387_binary_op, emit_i387_cw_initialization,
996         output_fix_trunc, output_fp_compare, ix86_output_addr_vec_elt,
997         ix86_expand_clear, ix86_expand_binary_operator,
998         ix86_expand_unary_operator, ix86_match_ccmode, ix86_cc_mode,
999         ix86_cc_modes_compatible, ix86_fp_comparison_codes,
1000         ix86_fp_comparison_arithmetics_cost, ix86_expand_fp_compare,
1001         ix86_expand_branch, ix86_expand_setcc,
1002         ix86_expand_carry_flag_compare, ix86_expand_fp_movcc,
1003         ix86_expand_int_addcc, ix86_split_to_parts, ix86_split_long_move,
1004         ix86_expand_movmem, ix86_expand_call, assign_386_stack_local,
1005         memory_address_length, ix86_attr_length_immediate_default,
1006         ix86_attr_length_address_default, ix86_agi_dependant,
1007         x86_initialize_trampoline, ix86_init_mmx_sse_builtins,
1008         ix86_expand_binop_builtin, ix86_force_to_memory,
1009         ix86_secondary_memory_needed, ix86_avoid_jump_misspredicts,
1010         x86_emit_floatuns): Likewise.
1011         * config/i386/netware.c (gen_regparm_prefix,
1012         i386_nlm_strip_name_encoding): Likewise.
1013         * config/i386/winnt.c (i386_pe_mark_dllexport): Likewise.
1014
1015 2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
1016
1017         * optabs.c (gen_condiational_trap): Remove #define.
1018         (add_equal_note): Assertify. Remove explicit indirection from
1019         call via function pointer.
1020         (expand_ternary_op, expand_simple_binop, expand_binop,
1021         expand_twoval_unop, expand_twoval_binop,
1022         expand_twoval_binop_libfunc, expand_simple_unop expand_unop,
1023         emit_unop_insn,  emit_no_conflict_block,  prepare_cmp_insn,
1024         prepare_operand emit_cmp_and_jump_insn_1, emit_cmp_and_jump_insns,
1025         prepare_float_lib_cmp, emit_conditional_move,
1026         emit_conditional_add, gen_add2_insn, gen_add3_insn,
1027         have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn,
1028         expand_float, expand_fix, debug_optab_libfuncs, gen_cond_trap,
1029         vector_compare_rtx, expand_vec_cond_expr): Likewise.
1030
1031 2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
1032
1033         * vec.h: Update API to separate allocation mechanism from type.
1034         (VEC_safe_grow): New.
1035         * vec.c (calculate_allocation): New.
1036         (vec_gc_o_reserve, vec_heap_o_reserve): Adjust.
1037         (vec_gc_free, vec_heap_free): Remove.
1038         * gengtype-lex.l (DEF_VEC_): Process mult-argument macros.  Adjust.
1039         (VEC): Likewise.
1040         (mangle_macro_name): New.
1041         (struct macro_def): New.
1042         (struct macro): Add multiple argument values.
1043         (macro_expans_end): New.
1044         (push_macro_expansion):  Chain on new macro. Process multiple
1045         args, create follow on expansion. Return follow on argument.
1046         (macro_input): Deal with multiple arguments.
1047         
1048         * tree.h: Define VEC(tree,heap) and VEC(tree,gc).
1049         (struct tree_binfo): Adjust.
1050         * basic-block.h: Define VEC(edge,gc).
1051         (struct edge_def): Adjust.
1052         (struct basic_block_def, struct edge_iterator): Likewise.
1053         (ei_container, ei_start_1, ei_last_1): Likewise.
1054         * cfg.c (connect_src, connect_dest): Likewise.
1055         * cfgrtl.c (force_nonfallthru_and_redirect)
1056         * dbxout.c (dbxout_type)
1057         * dwarf2out.c (gen_member_die)
1058         * lambda-code.c: Define VEC(int,gc), VEC(lambda_loop,gc).
1059         (gcc_tree_to_linear_expression): Adjust.
1060         (gcc_loop_to_lambda_loop, gcc_loopnest_to_lambda_loopnest,
1061         lbv_to_gcc_expression, lle_to_gcc_expression,
1062         lambda_loopnest_to_gcc_loopnest, can_convert_to_perfect_nest,
1063         perfect_nestify): Likewise.
1064         * lambda.h (gcc_loopnest_to_lambda_loopnest,
1065         lambda_loopnest_to_gcc_loopnest): Adjust prototypes.
1066         * profile.c (instrument_values): Adjust.
1067         * tree-cfg.c (modified_noreturn_calls): Adjust.
1068         (remove_fallthru_edge): Likewise.
1069         * tree-dump.c (dequeue_and_dump): Adjust.
1070         * tree-flow-inline.h (mark_stmt_modified): Adjust.
1071         * tree-flow.h (modified_noreturn_calls): Adjust.
1072         (tree_on_heap): Remove. (yay!)
1073         (register_new_def): Adjust.
1074         * tree-into-ssa.c: Define VEC(int,heap).
1075         (block_defs_stack): Adjust.
1076         (find_idf, insert_phi_nodes, register_new_def,
1077         rewrite_initialize_block, rewrite_finalize_block,
1078         register_new_update_single, rewrite_update_init_block,
1079         rewrite_update_fini_block, rewrite_blocks,
1080         ssa_rewrite_finalize_block, ssa_register_new_def,
1081         ssa_rewrite_initialize_block, rewrite_ssa_into_ssa): Likewise.
1082         * tree-loop-linear.c (linear_transform_loops): Adjust.
1083         * tree-ssa-alias.c: Define VEC(fieldoff_t,heap).
1084         (push_fields_onto_fieldstack, create_overlap_variables_for): Adjust.
1085         * tree-ssa-dom.c (avail_exprs_stack, block_defs_stack,
1086         stmts_to_rescan, const_and_copies_stack, nonzero_vars_stack,
1087         vrp_variables_stack): Adjust declarations.
1088         (tree_ssa_dominator_optimize): Adjust.
1089         (dom_opt_initialize_block, remove_local_expressions_from_table,
1090         restore_nonzero_vars_to_original_value,
1091         restore_vars_to_original_value,
1092         restore_currdefs_to_original_value, dom_opt_finalize_block,
1093         record_var_is_nonzero, record_cond, record_const_or_copy_1,
1094         optimize_stmt, update_rhs_and_lookup_avail_expr,
1095         lookup_avail_expr, record_range): Likewise.
1096         * tree-ssa-pre.c: Define VEC(basic_block,heap).
1097         (compute_antic_aux): Adjust.
1098         (inserted_exprs, create_expression_by_pieces, 
1099         insert_into_preds_of_block, eliminate, mark_operand_necessary, 
1100         remove_dead_inserted_code, fini_pre): Likewise.
1101         * tree-ssa-propagate.c (interesting_ssa_edges): Adjust.
1102         (varying_ssa_edges, add_ssa_edge, process_ssa_edge_worklist. 
1103         ssa_prop_init): Likewise.
1104         * tree-ssa.c: Define VEC(bitmap,heap).
1105         (verify_name_tags): Adjust.
1106         * value-prof.c (rtl_divmod_values_to_profile): Adjust.
1107         (insn_prefetch_values_to_profile, rtl_find_values_to_profile,
1108         tree_divmod_values_to_profile, tree_find_values_to_profile,
1109         value_profile_transformations): Likewise.
1110         * value-prof.h: Define VEC(histogram_value,heap).
1111         * varasm.c: Remove alias_pair pointer typedef, define
1112         VEC(alias_pair,gc).
1113         (finish_aliases_1, finish_aliases_2, assemble_alias): Adjust.
1114         
1115         * config/pa/pa.c (typedef extern_symbol): Typedef the structure,
1116         not a pointer to it.  Create an object vector.
1117         (extern_symbols): Turn into an object vector.
1118         (pa_hpux_asm_output_external, pa_hpux_file_end): Adjust.
1119
1120 2005-04-21  Sebastian Pop  <pop@cri.ensmp.fr>
1121
1122         PR/20742
1123         * Makefile.in (tree-chrec.o): Depend on params.h.
1124         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): New parameter with
1125         default value 20.
1126         * tree-chrec.c: Depend on params.h.  Replace build with buildN,
1127         and fold build with fold_buildN.
1128         (chrec_fold_plus_1): Fail with a chrec_don_know when the size of
1129         the expression exceeds PARAM_SCEV_MAX_EXPR_SIZE.
1130         (tree_contains_chrecs): Compute an estimation of the size of the
1131         given expression.
1132         * tree-chrec.h (tree_contains_chrecs): Modify its declaration.
1133         (tree_does_not_contain_chrecs): Update the use of tree_contains_chrecs.
1134         * tree-scalar-evolution.c (simple_iv): Ditto.
1135         * doc/invoke.texi (scev-max-expr-size): Documented.
1136
1137 2005-04-21  Richard Sandiford  <rsandifo@redhat.com>
1138
1139         * config.gcc (*-*-darwin*): Add darwin.opt to $extra_options.
1140         (i[34567]86-pc-msdosdjgpp*): Likewise i386/djgpp.opt.
1141         (i[34567]86-*-lynxos*, powerpc-*-lynxos*): Likewise lynx.opt.
1142         (i[34567]86-*-sco3.2v5*): Likewise i386/sco5.opt.
1143         (i[34567]86-*-pe, i[34567]86-*-cygwin*, i[34567]86-*-mingw32*)
1144         (i[34567]86-*-uwin*): Likewise i386/cygming.opt.
1145         * config/darwin.h (darwin_one_byte_bool, darwin_fix_and_continue)
1146         (darwin_fix_and_continue_switch, SUBTARGET_OPTIONS): Delete.
1147         * config/darwin.c (darwin_one_byte_bool, darwin_fix_and_continue)
1148         (darwin_fix_and_continue_switch): Delete.
1149         * config/lynx.h (SUBTARGET_OS_LYNX_SWITCHES): Delete.
1150         (SUBTARGET_SWITCHES): Delete.
1151         * config/i386/i386.h (target_flags, MASK_80387, MASK_RTD)
1152         (MASK_ALIGN_DOUBLE, MASK_SVR3_SHLIB, MASK_IEEE_FP, MASK_FLOAT_RETURNS)
1153         (MASK_NO_FANCY_MATH_387, MASK_OMIT_LEAF_FRAME_POINTER)
1154         (MASK_STACK_PROBE, MASK_NO_ALIGN_STROPS, MASK_INLINE_ALL_STROPS)
1155         (MASK_NO_PUSH_ARGS, MASK_ACCUMULATE_OUTGOING_ARGS, MASK_MMX)
1156         (MASK_SSE, MASK_SSE2, MASK_SSE3, MASK_3DNOW, MASK_3DNOW_A)
1157         (MASK_128BIT_LONG_DOUBLE, MASK_64BIT, MASK_MS_BITFIELD_LAYOUT)
1158         (MASK_TLS_DIRECT_SEG_REFS, MASK_NO_RED_ZONE, TARGET_80387)
1159         (TARGET_RTD, TARGET_ALIGN_DOUBLE, TARGET_PUSH_ARGS)
1160         (TARGET_ACCUMULATE_OUTGOING_ARGS, TARGET_SVR3_SHLIB, TARGET_IEEE_FP)
1161         (TARGET_128BIT_LONG_DOUBLE, TARGET_NO_FANCY_MATH_387)
1162         (TARGET_USE_FANCY_MATH_387, TARGET_OMIT_LEAF_FRAME_POINTER)
1163         (TARGET_DEBUG_ADDR, TARGET_DEBUG_ARG): Delete.
1164         (TARGET_FLOAT_RETURNS_IN_80387): Make an alias of TARGET_FLOAT_RETURNS.
1165         (TARGET_64BIT): Undef before redefining.
1166         (TARGET_TLS_DIRECT_SEG_REFS, TARGET_STACK_PROBE)
1167         (TARGET_ALIGN_STRINGOPS, TARGET_INLINE_ALL_STRINGOPS, TARGET_SSE)
1168         (TARGET_SSE2, TARGET_SSE3, TARGET_MMX, TARGET_3DNOW, TARGET_3DNOW_A)
1169         (TARGET_RED_ZONE, TARGET_USE_MS_BITFIELD_LAYOUT, TARGET_SWITCHES)
1170         (TARGET_OPTIONS, SUBTARGET_SWITCHES, SUBTARGET_OPTIONS)
1171         (ix86_fpmath_string, ix86_tls_dialect_string, ix86_cmodel_string)
1172         (ix86_asm_string, ix86_regparm, ix86_regparm_string)
1173         (ix86_preferred_stack_boundary_string, ix86_branch_cost_string)
1174         (ix86_debug_arg_string, ix86_debug_addr_string)
1175         (ix86_align_loops_string, ix86_align_jumps_string)
1176         (ix86_align_funcs_string): Delete.
1177         * config/i386/cygming.h (MASK_NOP_FUN_DLLIMPORT)
1178         (TARGET_NOP_FUN_DLLIMPORT, SUBTARGET_SWITCHES): Delete.
1179         * config/i386/djgpp.h (MASK_BNU210, SUBTARGET_SWITCHES): Delete.
1180         (SUBTARGET_OVERRIDE_OPTIONS): Check TARGET_BNU210.
1181         * config/i386/lynx.h (SUBTARGET_SWITCHES): Delete.
1182         * config/i386/sco5.h (MASK_COFF, TARGET_ELF)
1183         (SUBTARGET_SWITCHES): Delete.
1184         * config/i386/i386.c (ix86_debug_arg_string): Delete.
1185         (ix86_debug_addr_string): Delete.
1186         (ix86_cmodel_string, ix86_asm_string, ix86_tls_dialect_string)
1187         (ix86_fpmath_string, ix86_regparm_string, ix86_regparm)
1188         (ix86_align_loops_string, ix86_align_jumps_string)
1189         (ix86_preferred_stack_boundary_string, ix86_branch_cost_string)
1190         (ix86_align_funcs_string): Make static.
1191         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
1192         (ix86_handle_option): New function.
1193         (TARGET_USE_MS_BITFIELD_LAYOUT): Delete.
1194         (ix86_ms_bitfield_layout_p): Check TARGET_MS_BITFIELD_LAYOUT.
1195         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Remove handling
1196         of darwin_fix_and_continue_switch.
1197         (darwin_one_byte_bool): Delete.
1198         * config/rs6000/lynx.h (EXTRA_SUBTARGET_SWITCHES): Delete.
1199         * config/rs6000/rs6000.c (rs6000_override_options): Update assignment
1200         to darwin_one_byte_bool.
1201         * config/darwin.opt, config/lynx.opt, config/i386/cygming.opt,
1202         * config/i386/djgpp.opt, config/i386/i386.opt,
1203         * config/i386/sco5.opt: New files.
1204
1205 2005-04-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
1206
1207         * config/sparc/sparc.c (reg_or_0_operand, const1_operand,
1208         fp_zero_operand, fp_register_operand, intreg_operand,
1209         fcc_reg_operand, fcc0_reg_operand, icc_or_fcc_reg_operand,
1210         call_operand, call_operand_address, tgd_symbolic_operand,
1211         tld_symbolic_operand, tie_symbolic_operand, tle_symbolic_operand,
1212         symbolic_operand, symbolic_memory_operand, label_ref_operand,
1213         sp64_medium_pic_operand, data_segment_operand,
1214         text_segment_operand, splittable_symbolic_memory_operand,
1215         reg_or_nonsymb_mem_operand, splittable_immediate_memory_operand,
1216         eq_or_neq, normal_comp_operator, noov_compare_op,
1217         noov_compare64_op, v9_regcmp_op, extend_op, cc_arithop,
1218         cc_arithopn, arith_operand, arith_4096_operand, arith_add_operand,
1219         const64_operand, const64_high_operand, arith11_operand,
1220         arith10_operand, arith_double_operand, arith_double_4096_operand,
1221         arith_double_add_operand, arith11_double_operand,
1222         arith10_double_operand, small_int, small_int_or_double,
1223         uns_small_int, uns_arith_operand, clobbered_register,
1224         input_operand, compare_operand): Delete.
1225         (sparc_emit_set_const32): Use predicates in assertion.  Remove special
1226         code for TARGET_ARCH64 && HOST_BITS_PER_WIDE_INT != 64.
1227         (sparc_emit_set_const64): Call gcc_unreachable if H_B_P_W_I == 32.
1228         (GEN_HIGHINT64, GEN_INT64): Delete.
1229         (sparc_emit_set_safe_HIGH64, gen_safe_SET64, gen_safe_OR64,
1230         gen_safe_XOR64): Adjust for above deletion.
1231         (sparc_emit_set_const64): Support only H_B_P_W_I == 64 and CONST_INTs.
1232         Use 'unsigned HOST_WIDE_INT' instead of 'long' for bitmask.
1233         (legitimate_constant_p): Use const_zero_operand instead.
1234         (sparc_extra_constraint_check): Likewise.
1235         * config/sparc/sparc.h (CONST_DOUBLE_OK_FOR_LETTER_P): Remove 'O'.
1236         (PREFERRED_RELOAD_CLASS): Use const_zero_operand.
1237         (PREDICATE_CODES): Delete.
1238         * config/sparc/sparc.md: Include predicates.md.
1239         (All patterns): Adjust for new predicate names.
1240         (cmpdi, cmpdi_sp64): Use arith_operand predicate.
1241         (movhi_const64_special, movsi_const64_special): Add 'K' constraint.
1242         (movdi): Use general_operand predicate.
1243         (movdi_sp64_dbl): Delete.
1244         (movdi_const64_special): Add 'N' constraint.
1245         (movdicc): Use arith10_operand predicate.
1246         (movdi_cc_sp64, movdi_cc_sp64_trunc): Use arith11_operand predicate.
1247         (movdi_cc_reg_sp64): Use arith10_operand predicate.
1248         (movdi_cc_reg_sp64_trunc): Delete.
1249         (cmp_zero_extract, cmp_zero_extract_sp64): Use small_int_operand.
1250         (adddi3_sp64, cmp_ccx_plus, cmp_ccx_plus_set): Use arith_operand.
1251         (subdi3_sp32): Delete.
1252         (subdi3_insn_sp32): Change to define_insn_and_split.
1253         (subdi3_sp64, cmp_minus_ccx, cmp_minus_ccx_set): Use arith_operand.
1254         (muldi3, muldi3_sp64, muldi3_v8plus): Likewise.
1255         (smulsi3_highpart_v8plus, const_smulsi3_highpart_v8plus,
1256         umulsi3_highpart_v8plus, const_umulsi3_highpart_v8plus): Use
1257         small_int_operand predicate.
1258         (divdi3, udivdi3): Use arith_operand predicate.
1259         (udivsi3, udivsi3_sp32, udivsi3_sp64): Use nonimmediate_operand.
1260         (and<V64I>3_sp64, ior<V64I>3_sp64, xor<V64I:mode>3_sp64,
1261         xor_not_<V64I:mode>_sp64) : Use arith_operand predicate.
1262         (xordi3_sp64_dbl): Delete.
1263         (cmp_ccx_arith_op, cmp_ccx_arith_op_set, cmp_ccx_xor_not,
1264         cmp_ccx_xor_not_set, cmp_ccx_arith_op_not, cmp_ccx_arith_op_not_set,
1265         cmp_ccx_neg, cmp_ccx_set_neg, one_cmpl<V64I>2_sp64, cmp_ccx_not,
1266         cmp_ccx_set_not): Use arith_operand predicate.
1267         (ashrsi3_extend2, lshrsi3_extend2 et al.): Use small_int_operand.
1268         * config/sparc/predicates.md: New file.
1269
1270 2005-04-21  Kazu Hirata  <kazu@cs.umass.edu>
1271
1272         PR tree-optimization/14846
1273         * fold-const.c (fold_single_bit_test_into_sign_test): New,
1274         split out from ...
1275         (fold_single_bit_test): ... here.
1276         (fold_binary): Call fold_single_bit_test_into_sign_test
1277         instead of fold_single_bit_test.
1278
1279 2005-04-20  James E Wilson  <wilson@specifixinc.com>
1280
1281         PR c++/20805
1282         * dwarf2out.c (gen_variable_die): Don't emit a specification if this
1283         is another declaration.
1284
1285 2005-04-21  Hans-Peter Nilsson  <hp@axis.com>
1286
1287         * config/cris/predicates.md: New file.
1288         * config/cris/cris-protos.h (cris_store_multiple_op_p)
1289         (cris_movem_load_rest_p): Declare.
1290         * config/cris/cris.c (cris_store_multiple_op): Return bool, not int.
1291         (cris_movem_load_rest_p): Ditto.  Globalize.
1292         (cris_bdap_operand, cris_bdap_biap_operand,
1293         cris_orthogonal_operator, cris_commutative_orth_op,
1294         cris_operand_extend_operator,
1295         cris_additive_operand_extend_operator, cris_extend_operator,
1296         cris_plus_or_bound_operator, cris_mem_op,
1297         cris_general_operand_or_symbol,
1298         cris_general_operand_or_gotless_symbol,
1299         cris_general_operand_or_plt_symbol, cris_mem_call_operand,
1300         cris_load_multiple_op): Remove predicate functions.
1301         (cris_symbol, cris_gotless_symbol) <case UNSPEC>: Return 0, don't
1302         abort, for UNSPECs other than CRIS_UNSPEC_PLT.
1303         * config/cris/cris.h (PREDICATE_CODES): Don't define.
1304         * config/cris/cris.md: Include predicates.md.
1305         ("call", "call_value"): Generate CONSTs of Pmode, not VOIDmode.
1306
1307 2005-04-20  Ian Lance Taylor  <ian@airs.com>
1308
1309         * c-common.def: Remove STMT_EXPR (moved to cp/cp-tree.def).
1310         * c-common.h (STMT_EXPR_STMT): Don't define.
1311         (STMT_EXPR_NO_SCOPE): Don't define.
1312         * c-dump.c (c_dump_tree): Don't handle STMT_EXPR.
1313         * c-pretty-print.c (pp_c_primary_expression): Likewise.
1314         (pp_c_expression): Likewise.
1315
1316 2005-04-20  Richard Henderson  <rth@redhat.com>
1317
1318         PR target/21100
1319         * config/i386/mmx.md (push<MMXMODE>1): Fix predicate thinko.
1320
1321 2005-04-20  Jeff Law  <law@redhat.com>
1322
1323         * reload1.c (reload): Ignore equivalences between pseudos and
1324         read only memory.
1325
1326 2005-04-20  Joseph S. Myers  <joseph@codesourcery.com>
1327
1328         PR c/12913
1329         * c-tree.h (struct c_label_list): Update comment.
1330         (struct c_label_context): Rename to struct c_label_context_se.
1331         (label_context_stack): Rename to label_context_stack_se.
1332         (C_DECL_UNJUMPABLE_VM, C_DECL_UNDEFINABLE_VM, struct
1333         c_label_context_vm, label_context_stack_vm, c_begin_vm_scope,
1334         c_end_vm_scope): New.
1335         (C_DECL_DECLARED_BUILTIN, C_DECL_USED): Use FUNCTION_DECL_CHECK.
1336         * c-decl.c (pop_scope): Call c_end_vm_scope.
1337         (pushdecl): Call c_begin_vm_scope for variably modified
1338         declarations.
1339         (define_label): Check for jumping into scope of identifier with
1340         variably modified type.  Push label on stack for those defined at
1341         current context of identifiers with variably modified type.
1342         (start_function): Create stack level for context of identifiers
1343         with variably modified type.
1344         (finish_function): Pop stack level for context of identifiers with
1345         variably modified type.
1346         * c-typeck.c (label_context_stack): Rename to
1347         label_context_stack_se.
1348         (label_context_stack_vm, c_begin_vm_scope, c_end_vm_scope): New.
1349         (c_finish_goto_label): Check for jumping into scope of identifier
1350         with variably modified type.  Push label on stack for those jumped
1351         to from current context of identifiers with variably modified
1352         type.
1353         (struct c_switch): Add blocked_vm.
1354         (c_start_case): Initialize blocked_vm.
1355         (do_case): Check blocked_vm.
1356         (c_finish_case): Add comment.
1357         (c_begin_stmt_expr, c_finish_stmt_expr): Update for renamed
1358         variable label_context_stack.
1359
1360 2005-04-20  Kazu Hirata  <kazu@cs.umass.edu>
1361
1362         * tree-ssa-phiopt.c (tree_ssa_phi_opt): Update calls to
1363         conditional_replacement, value_replacement, abs_replacement,
1364         minmax_replacement.
1365         (replace_phi_edge_with_variable): Remove argument BB.
1366         (conditional_replacement, value_replacement,
1367         minmax_replacement, abs_replacement): Remove argument PHI_BB.
1368         Update a call to replace_phi_edge_with_variable.
1369
1370         * tree-ssa-phiopt.c: Fix comments.
1371
1372 2005-04-20  Michael Matz  <matz@suse.de>
1373
1374         PR20973
1375         * reload.c (push_reload, find_dummy_reload): Check for uninitialized
1376         pseudos.
1377
1378 2005-04-20  Kazu Hirata  <kazu@cs.umass.edu>
1379
1380         * tree-ssa-phiopt.c: Fix comment typos.
1381
1382         PR tree-optimization/21116
1383         * tree-ssa-phiopt.c: Fix a typo.
1384
1385 2005-04-19  Richard Henderson  <rth@redhat.com>
1386
1387         * builtins.c (expand_builtin_sync_operation): Revert last change.
1388         * optabs.c (expand_bool_compare_and_swap): Compare vs old value,
1389         not vs new value.
1390         (expand_compare_and_swap_loop): Likewise.
1391         (expand_sync_operation): Remove fallback from NAND to AND; invert
1392         memory operand when expanding from cmpxchg.
1393         (expand_sync_fetch_operation): Likewise.
1394         * doc/extend.texi (Atomic Builtins): Fix docs for nand and
1395         compare-and-swap.
1396
1397         * config/alpha/alpha.c (alpha_split_atomic_op): Invert memory operand
1398         when implementing NAND.  Fix double-add for AFTER.
1399         * config/alpha/sync.md (sync_nand<I48MODE>): Invert memory operand.
1400         (sync_old_nand<I48MODE>, sync_new_nand<I48MODE>): Likewise.
1401         (sync_compare_and_swap<I48MODE>): Fix compare vs zero.  Return old
1402         memory value.
1403         (sync_lock_test_and_set<I48MODE>): Remove extra label and last
1404         memory barrier.
1405
1406         * config/i386/sync.md (sync_compare_and_swap<IMODE>): Fix pattern
1407         to return old memory value.
1408         (sync_compare_and_swap_cc<IMODE>): Likewise.
1409
1410         * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Early
1411         return pre-reload.  Don't consider output or anti dependencies.
1412         * config/ia64/sync.md (IMODE): New.
1413         (modesuffix): Add QI and HI.
1414         (memory_barrier): Simplify expansion.
1415         (sync_compare_and_swap<IMODE>): Use IMODE, not I48MODE.
1416         (cmpxchg_acq_<IMODE>): Likewise.
1417         (sync_lock_test_and_set<IMODE>): Likewise.
1418         (sync_lock_release<IMODE>): Likewise.
1419
1420 2005-04-19  James A. Morrison  <phython@gcc.gnu.org>
1421
1422         * fold-const.c (fold_binary): Fold ~(X ^ Y) to ~X ^ Y or X ^ ~Y if
1423         ~X or ~Y simplify.
1424
1425 2005-04-19  James A. Morrison  <phython@gcc.gnu.org>
1426
1427         * fold-const (fold_binary):  Fold ~X ^ ~ Y to X ^ Y.
1428
1429 2005-04-20  Michael Pogue  <michael.pogue@sun.com>
1430             Joseph S. Myers  <joseph@codesourcery.com>
1431
1432         * c.opt (Wint-to-pointer-cast, Wpointer-to-int-cast): New options.
1433         * c-typeck.c (build_c_cast): Check these options.
1434         * doc/invoke.texi: Document these options.
1435
1436 2005-04-20  Kazu Hirata  <kazu@cs.umass.edu>
1437
1438         * tree-ssa-phiopt.c: Update a comment about the pass.
1439
1440 2005-04-19  Kazu Hirata  <kazu@cs.umass.edu>
1441
1442         * tree-ssa-phiopt.c, config/arm/arm.c, config/fr30/fr30.md,
1443         config/mcore/mcore.c: Fix comment typos.
1444
1445 2005-04-19  Daniel Jacobowitz  <dan@codesourcery.com>
1446
1447         * Makefile.in (libgcc.mk): Pass GCC_FOR_TARGET.
1448         * mklibgcc.in: Use $GCC_FOR_TARGET instead of ./xgcc.
1449
1450 2005-04-19  Paul Brook  <paul@codesourcery.com>
1451
1452         * config/arm/arm.c (arm_init_libfuncs): Clear mod optabs. 
1453
1454 2005-04-19  Andrew Haley  <aph@redhat.com>
1455
1456         PR java/21022
1457         * dbxout.c (dbxout_type_fields): Check DECL_IGNORED_P before
1458         looking at a field's bitpos.
1459
1460 2005-04-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1461
1462         * system.h (fopen, fdopen, freopen): Define these to the unlocked
1463         libiberty functions.
1464
1465 2005-04-19  Kazu Hirata  <kazu@cs.umass.edu>
1466
1467         PR tree-optimization/21096
1468         * tree-ssa-copy.c (fini_copy_prop): Free cached_last_copy_of.
1469
1470 2005-04-19  Alan Modra  <amodra@bigpond.net.au>
1471
1472         PR target/21098
1473         * config/rs6000/rs6000.c (rs6000_elf_end_indicate_exec_stack): New.
1474         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Use the above.
1475
1476 2005-04-19  Alexandre Oliva  <aoliva@redhat.com>
1477
1478         * tree-cfg.c (dump_function_to_file): Use cfun info only if it
1479         refers to the function being dumped.
1480
1481 2005-04-18  Daniel Jacobowitz  <dan@codesourcery.com>
1482
1483         * varasm.c (assemble_start_function): Remove reset of in_section.
1484
1485 2005-04-18  James A. Morrison  <phython@gcc.gnu.org>
1486
1487         PR tree-optimization/21085
1488         * fold-const (fold_binary): Don't change X % -C to X % C if C has
1489         overflowed.
1490
1491 2005-04-19  Ben Elliston  <bje@au.ibm.com>
1492
1493         * doc/invoke.texi (Optimize Options): Refer to the correct
1494         optimisation flag -ftree-dominator-opts, not -ftree-dom.
1495
1496 2005-04-18  Christopher Jaillet <christophe.jaillet@wanadoo.fr>
1497
1498         * config/rs6000/rs6000.c (machopic_output_stub):  Increase
1499         alloca argument to be big enough.
1500
1501 2005-04-18  Alexandre Oliva  <aoliva@redhat.com>
1502
1503         PR middle-end/21049
1504         * tree-cfg.c (dump_function_to_file): Do not crash if cfun or
1505         cfun->cfg are NULL.
1506
1507 2005-04-18  Tom Tromey  <tromey@redhat.com>
1508
1509         * cgraphunit.c (cgraph_finalize_compilation_unit): Fix a comment
1510         typo.
1511
1512 2005-04-18  Richard Henderson  <rth@redhat.com>
1513
1514         * config/alpha/alpha.c (alpha_split_atomic_op): New.
1515         (alphaev5_insn_pipe): Add LD_L, ST_C, MB types.
1516         (alphaev4_insn_pipe): Likewise.  Correct IST and LDSYM pipes.
1517         * config/alpha/alpha-protos.h: Update.
1518         * config/alpha/alpha.md (UNSPECV_MB, UNSPECV_LL, UNSPECV_SC): New.
1519         (UNSPECV_ATOMIC, UNSPECV_CMPXCHG, UNSPECV_XCHG): New.
1520         (attr type): Add ld_l, st_c, mb.
1521         (andsi_internal, andnotsi3, iorsi_internal, one_cmplsi_internal,
1522         iornotsi3, xorsi_internal, xornotsi3): New.
1523         * config/alpha/ev4.md (ev4_ld): Add ld_l.
1524         (ev4_ist_c, ev4_mb): New.
1525         * config/alpha/ev5.md (ev5_st): Add st_c, mb.
1526         (ev5_ld_l): New.
1527         * config/alpha/ev6.md (ev6_ild): Add ld_l.
1528         (ev6_ist): Add st_c.
1529         (ev6_mb): New.
1530         * config/alpha/sync.md: New file.
1531
1532 2005-04-18  Richard Henderson  <rth@redhat.com>
1533
1534         * builtins.c (expand_builtin_sync_operation): Fold nand to and
1535         for constants.
1536
1537         * optabs.c (expand_sync_operation): Fix typo expanding nand to and.
1538
1539 2005-04-18  Devang Patel  <dpatel@apple.com>
1540
1541         * config/rs6000/atlivec.md (mulv4si3): New pattern.
1542         
1543 2005-04-18  James A. Morrison  <phython@gcc.gnu.org>
1544
1545         PR tree-optimization/20922
1546         * fold-const.c (fold_binary): Fold X - c > X and X + c < X to false.
1547         Fold X + c >= X and fold X - c <= X to true.
1548
1549 2005-04-18  James A. Morrison  <phython@gcc.gnu.org>
1550
1551         * config/ia64/unwind-ia64.c (emergency_reg_state_free): Make an
1552         unsigned int.
1553         (emergency_labeled_state_free): Likewise.
1554
1555 2005-04-18  Nick Clifton  <nickc@redhat.com>
1556
1557         * config/h8300/h8300.md (jump): Remove prescan parameter from
1558         calls to final_scan_insn.
1559
1560         * config/arc/arc.c (arc_output_function_epilogue): Remove prescan
1561         parameter from calls to final_scan_insn.
1562
1563         * config.gcc (m68hc12): Use the m68hc11.opt file for target
1564         specific options.
1565         (v850e, v850e1): Use the v850.opt file for target specific
1566         options.
1567
1568 2005-04-18  Kazu Hirata  <kazu@cs.umass.edu>
1569
1570         PR tree-optimization/21001
1571         * tree-optimize.c (init_tree_optimization_passes): Move the
1572         first pass_forwprop immediately before pass_vrp.
1573
1574 2005-04-17  Ian Lance Taylor  <ian@airs.com>
1575
1576         * c-common.def (SIZEOF_EXPR, ARROW_EXPR, ALIGNOF_EXPR): Remove.
1577         * c-common.c (c_sizeof_or_alignof_type): Change second parameter
1578         from enum tree_code op to bool is_sizeof.
1579         * c-common.h (c_sizeof_or_alignof_type): Update declaration.
1580         (c_sizeof, c_alignof): Update calls to c_sizeof_or_alignof_type.
1581         * c-pretty-print.c (pp_c_postfix_expression): Remove ARROW_EXPR
1582         case.
1583         (pp_c_unary_expression): Remove SIZEOF_EXPR and ALIGNOF_EXPR
1584         cases.
1585         (pp_c_expression): Remove ARROW_EXPR, SIZEOF_EXPR, and
1586         ALIGNOF_EXPR cases.
1587
1588 2005-04-17  Ian Lance Taylor  <ian@airs.com>
1589
1590         * system.h: Poison DONT_ACCESS_GBLS_AFTER_EPILOGUE.
1591
1592 2005-04-17  Richard Henderson  <rth@redhat.com>
1593
1594         * config/alpha/alpha.c (va_list_skip_additions): Only define if
1595         TARGET_ABI_OSF.
1596         (TARGET_STDARG_OPTIMIZE_HOOK): Likewise.
1597         (alpha_stdarg_optimize_hook): Likewise.  Allow for one more round
1598         of indirection through ssa names while looking for the gpr counter
1599         field.
1600         (alpha_setup_incoming_varargs) <TARGET_ABI_OSF>: Make use of the
1601         saved va_list_gpr_size and va_list_fpr_size.
1602
1603 2005-04-17  Kazu Hirata  <kazu@cs.umass.edu>
1604
1605         * tree-vrp.c (compare_values): Check that VAL1 and VAL2 are
1606         both pointers or both integers.
1607
1608         * tree-vrp.c (maybe_add_assert_expr): Don't assert
1609         ASSERT_EXPRs for single-use variable.
1610
1611         * tree-into-ssa.c: Fix a comment typo.
1612
1613 2005-04-17  Richard Sandiford  <rsandifo@redhat.com>
1614
1615         * config/mips/iris6.h (DRIVER_SELF_SPECS): Check -march as well as
1616         -mipsN before forcing a default of -mips2.
1617
1618 2005-04-17  Kazu Hirata  <kazu@cs.umass.edu>
1619
1620         * predict.h (IS_TAKEN): Remove.
1621         * rtl.h (NOTE_PREDICTION): Likewise.
1622
1623         * modulo-sched.c (CFG_HOOKS): Remove.
1624
1625         * c-parser.c (N_C_TTYPES): Remove.
1626
1627         * tree-flow-inline.h (get_stmt_operands): Remove.
1628         * lambda-code.c, tree-ssa-loop-unswitch.c,
1629         tree-ssa-operands.c, tree-ssa-pre.c, tree-ssa-propagate.c,
1630         tree-ssa-sink.c, tree-ssa.c, tree-tailcall.c,
1631         tree-vect-transform.c, tree-vectorizer.c, tree-vrp.c): Remove
1632         calls to get_stmt_operands.
1633         * doc/tree-ssa.texi: Don't mention get_stmt_operands.
1634
1635 2005-04-17  Richard Henderson  <rth@redhat.com>
1636
1637         PR target/20375
1638         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Advance a copy
1639         of CUMULATIVE_ARGS past the last named argument.
1640         (alpha_va_start): Expect pretend_args_size only if strictly less than
1641         6 named arguments.
1642
1643 2005-04-17  Kazu Hirata  <kazu@cs.umass.edu>
1644
1645         PR middle-end/21024
1646         * builtins.c (expand_builtin_strcat): Convert the result of
1647         strlen to the right type.
1648         * fold-const.c (fold_binary) <PLUS_EXPR>: Use fold_convert to
1649         avoid creating type mismatches.
1650         <GE_EXPR>: Pass op0 and op1 to fold_build2 to avoid creating
1651         type mismatches.
1652
1653         * c-lex.c (WCHAR_TYPE_SIZE, WCHAR_BYTES): Remove.
1654
1655 2005-04-16  Richard Henderson  <rth@redhat.com>
1656
1657         PR target/21051
1658         * builtins.c (expand_builtin) <BUILT_IN_BOOL_COMPARE_AND_SWAP_*>:
1659         Use the mode of boolean_type_node when the user doesn't provide one.
1660         * config/ia64/sync.md (sync_lock_release<I48MODE>): Use operand 1.
1661
1662 2005-04-16  Alexandre Oliva  <aoliva@redhat.com>
1663
1664         PR target/20126
1665         * loop.c (loop_givs_rescan): Handle non-replaceable (plus (reg)
1666         (const)).
1667
1668         * tree-scalar-evolution.c (interpret_rhs_modify_expr): Fix typo in
1669         comment.
1670
1671 2005-04-16  Roger Sayle  <roger@eyesopen.com>
1672             Steven Bosscher  <stevenb@suse.de>
1673
1674         * fold-const.c (fold_binary_to_constant): Delete obsolete comment.
1675         (fold_unary_to_constant): Likewise.
1676
1677 2005-04-16  Kazu Hirata  <kazu@cs.umass.edu>
1678
1679         * basic-block.h: Adjust the value of PROP_SCAN_DEAD_STORES,
1680         PROP_ASM_SCAN.
1681
1682 2005-04-16  Gerald Pfeifer  <gerald@pfeifer.com>
1683
1684         * doc/install.texi (Specific): Avoid using asterisks in @anchor
1685         names related to target triplets.
1686         Remove i?86-*-esix from platform directory.
1687         Remove powerpc-*-eabiaix from platform directory.
1688
1689 2005-04-16  Joseph S. Myers  <joseph@codesourcery.com>
1690
1691         PR middle-end/20491
1692         * config/ia64/ia64.c (rtx_needs_barrier): Recurse instead of
1693         falling through from SUBREG case to REG.
1694
1695 2005-04-15  Roger Sayle  <roger@eyesopen.com>
1696
1697         * fold-const.c (fold_relational_hi_lo): Delete function and prototype.
1698         (fold_binary): Update comment mentioning fold_relational_hi_lo.
1699         (fold_binary_to_constant): Simplify using fold_binary.
1700         (fold_unary_to_constant): Likewise, simplify using fold_unary.
1701
1702 2005-04-15  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1703
1704         * gthr-posix.c (pthread_cancel): Define.
1705         (pthread_mutexattr_init): Likewise.
1706         (pthread_mutexattr_settype): Likewise.
1707         (pthread_mutexattr_destroy): Likewise.
1708
1709 2005-04-15  David S. Miller  <davem@davemloft.net>
1710
1711         PR target/20673
1712         * config/sparc/sparc.h (sparc_hard_reg_printed): Mark as GTY(()).
1713
1714 2005-04-15  Kazu Hirata  <kazu@cs.umass.edu>
1715
1716         PR tree-optimization/21031
1717         * tree-ssa-forwprop.c (ssa_name_defined_by_comparison_p): New.
1718         (forward_propagate_into_cond_1): Call it.  Forward propagate
1719         integer-integer casts into COND_EXPRs.
1720
1721 2005-04-15  Dave Korn  <dave.korn@artimi.com>
1722
1723         * gcc.c (default_compilers): Clarify obscure error message when
1724         reading from standard input.
1725
1726 2005-04-15  Kazu Hirata  <kazu@cs.umass.edu>
1727
1728         * basic-block.h (PROP_EQUAL_NOTES): Remove.
1729         * flow.c (propagate_one_insn): Don't use PROP_EQUAL_NOTES.
1730
1731         * tree-ssa-alias.c (init_alias_info): Remove a call to
1732         get_stmt_operands.
1733
1734 2005-04-15  Andrew MacLeod  <amacleod@redhat.com>
1735
1736         * tree-vect-analyze.c (vect_stmt_relevant_p): Process immediate uses
1737         of non-virtual PHI nodes like we use to.
1738
1739 2005-05-15  Paolo Bonzini  <bonzini@gnu.org>
1740
1741         * genattrtab.c (ATTR_EQ_ATTR_P): Remove.
1742         (attr_copy_rtx): Do not use it.
1743
1744 2005-04-15  Andrew Macleod  <amacleod@redhat.com>
1745
1746         * doc/tree-ssa.texi: Grammer/abbreviation updates.
1747
1748 2005-04-15  Diego Novillo  <dnovillo@redhat.com>
1749
1750         * tree-vect-transform.c (vectorizable_store): Mark necessary
1751         objects in the vectorized store needing renaming.  Update the
1752         SSA graph for V_MAY_DEF operands in the original store.
1753
1754 2005-04-14  Daniel Berlin <dberlin@dberlin.org>
1755
1756         * tree-ssa-pre.c (compute_avail): It's okay to have
1757         TREE_INVARIANT's here, and value number the resulting expressions.
1758         (create_expression_by_pieces): Make sure operands that were
1759         min_invariant when we started, stay that way.
1760
1761 2005-04-15  David Edelsohn  <edelsohn@gnu.org>
1762
1763         * doc/install.texi (*-ibm-aix*): Add comment about system limits.
1764
1765 2005-04-15  Kazu Hirata  <kazu@cs.umass.edu>
1766
1767         PR tree-optimization/20936.
1768         * tree-ssa-ccp.c (visit_assignment): Fix a typo.
1769
1770 2005-04-15  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1771
1772         * doc/invoke.texi: Fix typos.
1773         * doc/md.texi: Likewise.
1774         * doc/rtl.texi: Likewise.
1775         * doc/sourcebuild.texi: Likewise.
1776         * doc/tm.texi: Likewise.
1777
1778 2005-04-15  Uros Bizjak  <uros@kss-loka.si>
1779
1780         PR tree-optimization/21004
1781         * convert.c (convert_to_integer): Convert ceilf, ceill, floorf
1782         and floorl in c99 mode only.
1783         * builtins.c (expand_builtin_int_roundingfn): Assert that
1784         fallback_fndecl is not NULL_TREE.
1785
1786 2005-04-15  Kazu Hirata  <kazu@cs.umass.edu>
1787
1788         * cfgrtl.c (purge_all_dead_edge): Remove an unused argument.
1789         * basic-block.h: Update the prototype for
1790         purge_all_dead_edges.
1791         * cfgexpand.c (tree_expand_cfg): Update a call to
1792         purge_all_dead_edges.
1793         * combine.c (combine_instructions): Likewise.
1794         * passes.c (rest_of_handle_old_regalloc, rest_of_handle_cse,
1795         rest_of_handle_cse2, rest_of_handle_gcse,
1796         rest_of_handle_postreload): likewise.
1797
1798 2005-04-15  Alexandre Oliva  <aoliva@redhat.com>
1799
1800         PR middle-end/20739
1801         * gimplify.c (gimplify_addr_expr): Compensate for removal of
1802         e.g. cv-qualification conversions.
1803
1804 2005-04-14  Mike Stump  <mrs@apple.com>
1805
1806         * config/darwin-c.c (framework_construct_pathname): We must
1807         find all headers of a framework in the first instance of it
1808         found in the seach path.
1809
1810 2005-04-14  Kazu Hirata  <kazu@cs.umass.edu>
1811
1812         PR tree-optimization/21021
1813         * tree-vrp.c (compare_values): Work around a bug in the front
1814         end that produces a comparison of mismatched types.
1815
1816 2004-04-14  Richard Henderson  <rth@redhat.com>
1817
1818         * config/ia64/ia64.h (enum fetchop_code): Remove.
1819         (enum ia64_builtins): Move ...
1820         * config/ia64/ia64.c (enum ia64_builtins): ... here.  Remove all
1821         members except BSP and FLUSHRS.
1822         (ia64_init_builtins): Remove __sync builtins.
1823         (ia64_expand_builtin): Likewise.
1824         (ia64_expand_fetch_and_op, ia64_expand_op_and_fetch): Remove.
1825         (ia64_expand_compare_and_swap, ia64_expand_lock_test_and_set): Remove.
1826         (ia64_expand_lock_release): Remove.
1827         * config/ia64/ia64.md (mf): Move to sync.md.
1828         (mf_internal, fetchadd_acq_si, fetchadd_acq_di, cmpxchg_acq_si,
1829         cmpxchg_acq_di, xchgsi, xchgdi): Likewise.
1830         * config/ia64/sync.md: New file.
1831         (memory_barrier): Rename from mf.
1832         (fetchadd_acq_<I48MODE>): Macroize from _si/_di patterns.
1833         (cmpxchg_acq_<I48MODE>): Likewise.
1834         (sync_lock_test_and_set<I48MODE>): Likewise.
1835
1836         * config/ia64/ia64intrin.h: Define nothing for C; limit #defines
1837         to c++.  Remove __sync* declarations.  s/_si/_4/.  s/_di/_8/.
1838
1839 2004-04-14  Richard Henderson  <rth@redhat.com>
1840
1841         * config/i386/i386.c (x86_cmpxchg, x86_xadd): New.
1842         (ix86_compare_emitted): New.
1843         (ix86_expand_compare): Use ix86_compare_emitted if set.
1844         (ix86_expand_setcc): Only emit REG_EQUAL if both ix86_compare_op0
1845         and ix86_compare_op0 are set.
1846         * config/i386/i386.h (x86_cmpxchg, x86_xadd): Declare.
1847         (TARGET_CMPXCHG, TARGET_XADD): New.
1848         (ix86_compare_emitted): Declare.
1849         * config/i386/i386.md: Include sync.md
1850         (UNSPECV_CMPXCHG_1, UNSPECV_CMPXCHG_2): New.
1851         (UNSPECV_XCHG, UNSPECV_LOCK): New.
1852         * config/i386/sync.md: New file.
1853
1854 2004-04-14  Richard Henderson  <rth@redhat.com>
1855
1856         PR middle-end/14311
1857         * builtin-types.def (BT_BOOL, BT_VOLATILE_PTR, BT_I1, BT_I2,
1858         BT_I4, BT_I8, BT_FN_VOID_VPTR, BT_FN_I1_VPTR_I1, BT_FN_I2_VPTR_I2,
1859         BT_FN_I4_VPTR_I4, BT_FN_I8_VPTR_I8, BT_FN_BOOL_VPTR_I1_I1,
1860         BT_FN_BOOL_VPTR_I2_I2, BT_FN_BOOL_VPTR_I4_I4, BT_FN_BOOL_VPTR_I8_I8,
1861         BT_FN_I1_VPTR_I1_I1, BT_FN_I2_VPTR_I2_I2, BT_FN_I4_VPTR_I4_I4,
1862         BT_FN_I8_VPTR_I8_I8): New.
1863         * builtins.def (DEF_SYNC_BUILTIN): New.
1864         (BUILT_IN_FETCH_AND_ADD_N, BUILT_IN_FETCH_AND_ADD_1,
1865         BUILT_IN_FETCH_AND_ADD_2, BUILT_IN_FETCH_AND_ADD_4,
1866         BUILT_IN_FETCH_AND_ADD_8, BUILT_IN_FETCH_AND_SUB_N,
1867         BUILT_IN_FETCH_AND_SUB_1, BUILT_IN_FETCH_AND_SUB_2,
1868         BUILT_IN_FETCH_AND_SUB_4, BUILT_IN_FETCH_AND_SUB_8,
1869         BUILT_IN_FETCH_AND_OR_N, BUILT_IN_FETCH_AND_OR_1,
1870         BUILT_IN_FETCH_AND_OR_2, BUILT_IN_FETCH_AND_OR_4,
1871         BUILT_IN_FETCH_AND_OR_8, BUILT_IN_FETCH_AND_AND_N,
1872         BUILT_IN_FETCH_AND_AND_1, BUILT_IN_FETCH_AND_AND_2,
1873         BUILT_IN_FETCH_AND_AND_4, BUILT_IN_FETCH_AND_AND_8,
1874         BUILT_IN_FETCH_AND_XOR_N, BUILT_IN_FETCH_AND_XOR_1,
1875         BUILT_IN_FETCH_AND_XOR_2, BUILT_IN_FETCH_AND_XOR_4,
1876         BUILT_IN_FETCH_AND_XOR_8, BUILT_IN_FETCH_AND_NAND_N,
1877         BUILT_IN_FETCH_AND_NAND_1, BUILT_IN_FETCH_AND_NAND_2,
1878         BUILT_IN_FETCH_AND_NAND_4, BUILT_IN_FETCH_AND_NAND_8,
1879         BUILT_IN_ADD_AND_FETCH_N, BUILT_IN_ADD_AND_FETCH_1,
1880         BUILT_IN_ADD_AND_FETCH_2, BUILT_IN_ADD_AND_FETCH_4,
1881         BUILT_IN_ADD_AND_FETCH_8, BUILT_IN_SUB_AND_FETCH_N,
1882         BUILT_IN_SUB_AND_FETCH_1, BUILT_IN_SUB_AND_FETCH_2,
1883         BUILT_IN_SUB_AND_FETCH_4, BUILT_IN_SUB_AND_FETCH_8,
1884         BUILT_IN_OR_AND_FETCH_N, BUILT_IN_OR_AND_FETCH_1,
1885         BUILT_IN_OR_AND_FETCH_2, BUILT_IN_OR_AND_FETCH_4,
1886         BUILT_IN_OR_AND_FETCH_8, BUILT_IN_AND_AND_FETCH_N,
1887         BUILT_IN_AND_AND_FETCH_1, BUILT_IN_AND_AND_FETCH_2,
1888         BUILT_IN_AND_AND_FETCH_4, BUILT_IN_AND_AND_FETCH_8,
1889         BUILT_IN_XOR_AND_FETCH_N, BUILT_IN_XOR_AND_FETCH_1,
1890         BUILT_IN_XOR_AND_FETCH_2, BUILT_IN_XOR_AND_FETCH_4,
1891         BUILT_IN_XOR_AND_FETCH_8, BUILT_IN_NAND_AND_FETCH_N,
1892         BUILT_IN_NAND_AND_FETCH_1, BUILT_IN_NAND_AND_FETCH_2,
1893         BUILT_IN_NAND_AND_FETCH_4, BUILT_IN_NAND_AND_FETCH_8,
1894         BUILT_IN_BOOL_COMPARE_AND_SWAP_N, BUILT_IN_BOOL_COMPARE_AND_SWAP_1,
1895         BUILT_IN_BOOL_COMPARE_AND_SWAP_2, BUILT_IN_BOOL_COMPARE_AND_SWAP_4,
1896         BUILT_IN_BOOL_COMPARE_AND_SWAP_8, BUILT_IN_VAL_COMPARE_AND_SWAP_N,
1897         BUILT_IN_VAL_COMPARE_AND_SWAP_1, BUILT_IN_VAL_COMPARE_AND_SWAP_2,
1898         BUILT_IN_VAL_COMPARE_AND_SWAP_4, BUILT_IN_VAL_COMPARE_AND_SWAP_8,
1899         BUILT_IN_LOCK_TEST_AND_SET_N, BUILT_IN_LOCK_TEST_AND_SET_1,
1900         BUILT_IN_LOCK_TEST_AND_SET_2, BUILT_IN_LOCK_TEST_AND_SET_4,
1901         BUILT_IN_LOCK_TEST_AND_SET_8, BUILT_IN_LOCK_RELEASE_N,
1902         BUILT_IN_LOCK_RELEASE_1, BUILT_IN_LOCK_RELEASE_2,
1903         BUILT_IN_LOCK_RELEASE_4, BUILT_IN_LOCK_RELEASE_8,
1904         BUILT_IN_SYNCHRONIZE: New.
1905         * builtins.c (called_as_built_in): Rewrite from CALLED_AS_BUILT_IN
1906         as a function.  Accept __sync_ as a prefix as well.
1907         (expand_builtin_sync_operation, expand_builtin_compare_and_swap,
1908         expand_builtin_lock_test_and_set, expand_builtin_synchronize,
1909         expand_builtin_lock_release): New.
1910         (expand_builtin): Call them.
1911         * c-common.c (DEF_BUILTIN): Don't require __builtin_ prefix if
1912         neither BOTH_P nor FALLBACK_P are defined.
1913         (builtin_type_for_size): New.
1914         (sync_resolve_size, sync_resolve_params, sync_resolve_return): New.
1915         (resolve_overloaded_builtin): New.
1916         * c-common.h (resolve_overloaded_builtin): Declare.
1917         (builtin_type_for_size): Declare.
1918         * c-typeck.c (build_function_call): Invoke resolve_overloaded_builtin.
1919         * expr.c (sync_add_optab, sync_sub_optab, sync_ior_optab,
1920         sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab,
1921         sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab,
1922         sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab,
1923         sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab,
1924         sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap,
1925         sync_compare_and_swap_cc, sync_lock_test_and_set,
1926         sync_lock_release): New.
1927         * optabs.h: Declare them.
1928         * expr.h (expand_val_compare_and_swap, expand_bool_compare_and_swap,
1929         expand_sync_operation, expand_sync_fetch_operation,
1930         expand_sync_lock_test_and_set): Declare.
1931         * genopinit.c (optabs): Add sync optabs.
1932         * optabs.c (init_optabs): Initialize sync optabs.
1933         (expand_val_compare_and_swap_1, expand_val_compare_and_swap,
1934         expand_bool_compare_and_swap, expand_compare_and_swap_loop,
1935         expand_sync_operation, expand_sync_fetch_operation,
1936         expand_sync_lock_test_and_set): New.
1937         * doc/extend.texi (Atomic Builtins): New section
1938         * doc/md.texi (Standard Names): Add sync patterns.
1939
1940 2005-04-14  Alexandre Oliva  <aoliva@redhat.com>
1941
1942         * tree-eh.c (lower_try_finally_copy): Generate new code in
1943         response to goto_queue entries as if the queue was sorted by
1944         index, not pointers.
1945         (lower_try_finally_switch): Likewise.
1946
1947 2005-04-14  Richard Henderson  <rth@redhat.com>
1948
1949         * config/i386/i386.c (ix86_expand_sse_cmp): Split out from ...
1950         (ix86_expand_sse_movcc): ... here.  Take cmp as a pre-computed
1951         register.
1952         (ix86_expand_fp_movcc): Update to match.
1953         (ix86_expand_fp_vcond, ix86_expand_int_vcond): New.
1954         * config/i386/i386-protos.h: Update.
1955         * config/i386/sse.md (vcondv4sf, vcondv2df): New.
1956         (vcond<SSEMODE124>, vcondu<SSEMODE12>): New.
1957
1958 2005-04-14  Joseph S. Myers  <joseph@codesourcery.com>
1959
1960         * doc/cpp.texi, doc/install.texi: Change references to GCC 3.5 to
1961         refer to 4.0.
1962
1963 2005-04-14  Julian Brown  <julian@codesourcery.com>
1964
1965         * Revert elfos.h part of my patch from 2005-04-13 for causing libstdc++
1966         link failures on ppc64 Linux.
1967
1968 2005-04-14  Andreas Krebbel  <krebbel1@de.ibm.com>
1969
1970         * config.gcc: Set cpu_type for s390.
1971
1972 2005-04-14  Daniel Berlin  <dberlin@dberlin.org>
1973
1974         Fix PR tree-optimization/20963
1975         * tree-ssa-pre.c (compute_avail): Remove special case for
1976         TREE_INVARIANT.
1977         (create_expression_by_pieces): Add value numbers for forced out
1978         statements.
1979
1980 2005-04-14  Hans-Peter Nilsson  <hp@axis.com>
1981
1982         * config/cris/cris.md: Replace references to (reg:SI 16) with
1983         (reg:SI CRIS_SRP_REGNUM).
1984
1985 2005-04-14  Kazu Hirata  <kazu@cs.umass.edu>
1986
1987         PR tree-optimization/20657
1988         * tree-vrp.c (extract_range_from_expr): Notice INTEGER_CST to
1989         create an appropriate range from it.
1990
1991 2005-04-14  Uros Bizjak  <uros@kss-loka.si>
1992
1993         * reg-stack.c (subst_stack_regs_pat): Handle <UNSPEC_FIST_FLOOR> and
1994         <UNSPEC_FIST_CEIL> case.
1995
1996         * config/i386/i386.md (UNSPEC_FIST_FLOOR, UNSPEC_FIST_CEIL): New.
1997         (*fist<mode>2_floor_1, fistdi2_floor, fistdi2_floor_with_temp)
1998         (fist<mode>2_floor, fist<mode>2_floor_with_temp): New isns patterns
1999         to implement lfloor and llfloor built-ins as x87 intrinsic function.
2000         (fistdi2_floor, fist<mode>2_floor splitters): New splitters.
2001         (lfloor<mode>2): New expanders.
2002         (*fist<mode>2_ceil_1, fistdi2_ceil, fistdi2_ceil_with_temp)
2003         (fist<mode>2_ceil, fist<mode>2_ceil_with_temp): New isns patterns
2004         to implement lceil and llceil built-ins as x87 intrinsic function.
2005         (fistdi2_ceil, fist<mode>2_ceil splitters): New splitters.
2006         (lceil<mode>2): New expanders.
2007
2008 2005-04-14  Uros Bizjak  <uros@kss-loka.si>
2009
2010         * convert.c (convert_to_integer): Convert (long int)trunc{,f,l},
2011         and (long long int)ceil{,f,l} into FIX_TRUNC_EXPR.
2012
2013 2005-04-14  Ulrich Weigand  <uweigand@de.ibm.com>
2014
2015         PR target/20927
2016         * config/s390/s390-modes.def: Define TFmode.
2017
2018 2005-04-13  Richard Sandiford  <rsandifo@redhat.com>
2019
2020         * config/mips/mips.h (ASM_OUTPUT_CASE_LABEL): Delete.
2021         (JUMP_TABLES_IN_TEXT_SECTION): Define.
2022         * config/mips/mips.c (mips16_insn_length): Remove reference to
2023         JUMP_TABLES_IN_TEXT_SECTION.
2024
2025 2005-04-13 Fariborz Jahanian <fjahanian@apple.com>
2026
2027         * simplify-rtx.c (simplify_binary_operation_1): Return
2028         scalar or vector of constant 0, depending on the xor's
2029         mode.
2030
2031 2005-04-13  Dale Johannesen  <dalej@apple.com>
2032
2033         * objc/Make-lang.in (objc-lang.o):  Depend on tree-gimple.h.
2034         (objc-act.o):  Ditto.
2035         * objc/objc-act.c (objc_gimplify_expr):  New.
2036         (objc_get_callee_fndecl):  New.
2037         * objc/objc-act.h:  Include tree-gimple.h.  Declare new functions.
2038         * objc/objc-lang.c (LANG_HOOKS_GIMPLIFY_EXPR):  Define.
2039         (LANG_HOOKS_GET_CALLEE_FNDECL):  Define.
2040
2041 2005-04-13  Devang Patel  <dpatel@apple.com>
2042
2043         * tree-if-conv.c (tree_if_convert_cond_expr): Do not create extra
2044         temp variables.
2045
2046 2005-04-13  Hans-Peter Nilsson  <hp@axis.com>
2047
2048         CRIS prologue as RTL.
2049         * config/cris/cris-protos.h (cris_emit_movem_store)
2050         (cris_expand_prologue): Prototype.
2051         * config/cris/cris.c (struct machine_function): New member
2052         stdarg_regs.
2053         (cfa_label_num, cris_target_asm_function_prologue): Remove.
2054         (TARGET_ASM_FUNCTION_PROLOGUE): Don't override.
2055         (cris_general_operand_or_gotless_symbol): Accept CRIS_UNSPEC_GOT.
2056         (cris_load_multiple_op, cris_return_address_on_stack)
2057         (cris_return_address_on_stack_for_return): ISO-Cify.
2058         (cris_store_multiple_op): New predicate function.
2059         (cris_expand_prologue, cris_emit_movem_store): New functions.
2060         (cris_print_operand) <case 'O'>: Handle modifications other than
2061         post-increment.
2062         (cris_symbol, cris_got_symbol): Return 0 for CRIS_UNSPEC_GOT.
2063         (cris_gotless_symbol): Return 1 for CRIS_UNSPEC_GOT.
2064         (cris_gen_movem_load): Rearrange slightly to make local variable
2065         src a parameter, removing osrc.
2066         (cris_setup_incoming_varargs): Set machine_function member
2067         stdarg_regs to correspond to the number of registers that need to
2068         be saved.
2069         * config/cris/cris.h (EXTRA_CONSTRAINT_S): Accept
2070         CRIS_UNSPEC_GOT.
2071         (PREDICATE_CODES): Add cris_store_multiple_op.  Make
2072         cris_general_operand_or_gotless_symbol accept UNSPEC.
2073         * config/cris/cris.md (CRIS_UNSPEC_GOT): New constant.
2074         ("*movsi_internal") <alternative 8>: Handle CRIS_UNSPEC_GOT.
2075         ("*cris_store_multiple"): New pattern.  Tweak common comment above
2076         this and "*cris_load_multiple".
2077         ("prologue"): New define_expand.
2078
2079         * config/cris/cris.md ("epilogue"): Conditionalize on
2080         TARGET_PROLOGUE_EPILOGUE.
2081
2082 2005-04-13  Steve Ellcey  <sje@cup.hp.com>
2083
2084         PR target/20924
2085         * config/ia64/ia64.md (divsf3_internal_lat): Generate frcpa with
2086         fpsr 0 instead of fpsr 1.
2087         (divsf3_internal_thr): Ditto.
2088         (divdf3_internal_lat): Ditto.
2089         (divdf3_internal_thr): Ditto.
2090         (divxf3_internal_lat): Ditto.
2091         (divxf3_internal_thr): Ditto.
2092
2093 2005-04-13  Kazu Hirata  <kazu@cs.umass.edu>
2094
2095         PR tree-optimization/20913
2096         * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Fold COND_EXPR.
2097
2098         PR tree-optimization/20702
2099         * tree-vrp.c (maybe_add_assert_expr): Recurse into
2100         dominator children that haven't been walked into.
2101
2102 2005-04-13  Julian Brown  <julian@codesourcery.com>
2103
2104         * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK from
2105         being used for symbols with vague linkage when HAVE_GAS_COMDAT_GROUP
2106         is true.
2107
2108 2005-04-13  Kazu Hirata  <kazu@cs.umass.edu>
2109
2110         * basic-block.h, tree-ssa-uncprop.c, varasm.c,
2111         config/i386/sse.md: Fix comment typos.
2112
2113         * genattrtab.c (NULL_ATTR): Remove.
2114         * ifcvt.c (NULL_EDGE): Likewise.
2115
2116         * rtl.h (RTX_EXPR_FIRST, RTX_EXPR_LAST): Remove.
2117
2118         * rtl.h (NOTE_PREDICTION_ALG, NOTE_PREDICTION_FLAGS,
2119         NOTE_PREDICT): Remove.
2120
2121 2005-04-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
2122
2123         * configure.ac (gcc_AC_CHECK_DECLS): Add vsnprintf.
2124         * configure: Regenerate.
2125         * config.in: Likewise.
2126         * system.h: Declare vsnprintf if not already declared.
2127
2128 2005-04-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
2129
2130         * optc-gen.awk: Handle stand-alone Mask records.
2131         * opth-gen.awk: Likewise.
2132         * doc/options.texi (Option file format): Document them.
2133         * config.gcc (sparc-*-netbsdelf*, sparc-*-linux*, sparc64-*-freebsd*,
2134         sparc64-*-linux*, sparc64-*-netbsd*): Add long-double-switch.opt.
2135         (sparc64-*-openbsd*, sparc64-*-elf*): Add little-endian.opt.
2136         * config/sparc/sparc.h (MASK_FPU, MASK_UNALIGNED_DOUBLES,
2137         MASK_V8, MASK_SPARCLITE, MASK_SPARCLET, MASK_V9,
2138         MASK_DEPRECATED_V8_INSNS, MASK_IMPURE_TEXT, MASK_APP_REGS,
2139         MASK_HARD_QUAD, MASK_LITTLE_ENDIAN, MASK_PTR64, MASK_64BIT,
2140         MASK_STACK_BIAS, MASK_FPU_SET, MASK_VIS, MASK_V8PLUS,
2141         MASK_FASTER_STRUCTS, MASK_LONG_DOUBLE_128): Delete.
2142         (TARGET_FPU, TARGET_UNALIGNED_DOUBLES, TARGET_V8, TARGET_SPARCLITE,
2143         TARGET_SPARCLET, TARGET_V9, TARGET_DEPRECATED_V8_INSNS,
2144         TARGET_IMPURE_TEXT, TARGET_APP_REGS, MASK_HARD_QUAD,
2145         TARGET_LITTLE_ENDIAN, TARGET_PTR64, TARGET_64BIT, MASK_STACK_BIAS,
2146         TARGET_FPU_SET, TARGET_VIS, TARGET_V8PLUS, TARGET_FASTER_STRUCTS,
2147         TARGET_LONG_DOUBLE_128): Likewise.
2148         (TARGET_SWITCHES, SUBTARGET_SWITCHES): Likewise.
2149         (TARGET_OPTIONS, SUBTARGET_OPTIONS): Likewise.
2150         * config/sparc/freebsd.h (SUBTARGET_SWITCHES): Likewise.
2151         * config/sparc/linux.h (SUBTARGET_SWITCHES): Likewise.
2152         * config/sparc/linux64.h (SUBTARGET_SWITCHES): Likewise.
2153         * config/sparc/netbsd-elf.h (SUBTARGET_SWITCHES): Likewise.
2154         * config/sparc/sp64-elf.h (SUBTARGET_SWITCHES): Likewise.
2155         * config/sparc/sparc.c (fpu_option_set): New global.
2156         (sparc_handle_option): New function.
2157         (sparc_override_options): Test fpu_option_set.
2158         (TARGET_DEFAULT_TARGET_FLAGS): Set to TARGET_DEFAULT.
2159         (TARGET_HANDLE_OPTION): Set to sparc_handle_option.
2160         * config/sparc/sparc.opt: New file.
2161         * config/sparc/little-endian.opt: Likewise.
2162         * config/sparc/long-double-switch.opt: Likewise.
2163
2164 2005-04-13  Bernd Schmidt  <bernd.schmidt@analog.com>
2165
2166         * config/bfin/bfin.c (bfin_lib_id_given): New static variable.
2167         (bfin_handle_options): Set it if -mshared-library-id= is seen.
2168         * config/bfin/bfin.opt (mshared-library-id=): Lose
2169         Var(bfin_lib_id_given).
2170
2171 2005-04-13  Matt Thomas  <matt@3am-software.com>
2172
2173         * config/rs6000/sysv4.h (NO_IMPLICIT_EXTERN_C): undefine before
2174         defining.
2175
2176 2005-04-13  Kazu Hirata  <kazu@cs.umass.edu>
2177
2178         * rtl.h (CLEAR_RTX_FLAGS): Remove.
2179
2180         * cgraphunit.c (INSNS_PER_CALL): Remove.
2181
2182         * tree-ssa-forwprop.c (vars,
2183         record_single_argument_cond_exprs,
2184         substitute_single_use_vars): Remove.
2185         (forward_propagate_into_cond_1, forward_propagate_into_cond):
2186         New.
2187         (tree_ssa_forward_propagate_single_use_vars): Call
2188         forward_propagate_into_cond for each COND_EXPR.
2189
2190         * tree-inline.c (INSNS_PER_STMT): Remove.
2191
2192 2005-04-12  Richard Henderson  <rth@redhat.com>
2193
2194         * config/i386/i386.c (ix86_prepare_sse_fp_compare_args): Split ...
2195         (ix86_expand_sse_fp_minmax): ... from ...
2196         (ix86_expand_fp_movcc): ... here.
2197         (ix86_expand_sse_movcc): Rewrite from ix86_split_sse_movcc.
2198         * config/i386/i386-protos.h: Update.
2199         * config/i386/i386.md (UNSPEC_IEEE_MIN, UNSPEC_IEEE_MAX): New.
2200         (sse_setccsf, sse_setccdf): Allow before reload.
2201         (movsfcc_1_sse_min, movsfcc_1_sse_max, movsfcc_1_sse): Remove.
2202         (movdfcc_1_sse_min, movdfcc_1_sse_max, movdfcc_1_sse): Remove.
2203         (ieee_sminsf3, ieee_smaxsf3, ieee_smindf3, ieee_smaxdf3): New.
2204         * config/i386/sse.md (andsf3, nandsf3, iorsf3, xorsf3): New.
2205         (anddf3, nanddf3, iordf3, xordf3): New.
2206
2207 2005-04-12  Jeff Law  <law@redhat.com>
2208
2209         * Makefile.in (OBJS-common): Add tree-ssa-uncprop.o.
2210         (tree-ssa-uncprop.o): Add dependencies.
2211         * tree-cfg.c (remove_useless_stmts_bb, remove_useless_stmts): Remove.
2212         * tree-flow.h (remove_useless_stmts): Remove prototype.
2213         * tree-outof-ssa.c (rewrite_out_of_ssa): Remove call to
2214         remove_useless_stmts.
2215         * timevar.def (TV_TREE_SSA_UNCPROP): New timevar.
2216         * tree-optimize.c (init_tree_optimization_passes): Add uncprop pass.
2217         * tree-pass.h (pass_uncprop): Declare.
2218         * tree-ssa-uncprop.c: New file.
2219
2220 2005-04-12  James E. Wilson  <wilson@specifixinc.com>
2221
2222         PR target/20670
2223         * unwind-ia64.c (uw_intall_context): Add missing load of r27.
2224
2225 2005-04-12  Caroline Tice  <ctice@apple.com>
2226
2227         Temporary fix for partitioning problems.
2228         * passes.c (rest_of_handle_final): Remove code that
2229         frees unlikely_text_section_name,
2230         * varasm.c (assemble_start_function): Test for partitioning
2231         flag before writing out section labels.
2232         (assemble_end_function): Test for partitioning flag before
2233         writing out section labels.
2234
2235 2005-04-12  Steven Bosscher  <stevenb@suse.de>
2236             Stuart Hastings <stuart@apple.com>
2237             Jan Hubicka  <jh@suse.cz>
2238
2239         * Makefile.in: Add function.h to BASIC_BLOCK_H.  Remove all
2240         references to gt-tree-cfg.h.
2241         * basic-block.h (struct basic_block_def): Don't skip rbi
2242         for garbage collection.
2243         (struct reorder_block_def): Make GTY-able.
2244         (struct control_flow_graph): New structure.
2245         (n_edges, n_basic_blocks, last_basic_block, basic_block_info,
2246         BASIC_BLOCK, EXIT_BLOCK_PTR, ENTRY_BLOCK_PTR): No longer vars,
2247         but instead defines to the control_flow_graph for cfun.
2248         (label_to_block_map): New define, points to the label map of
2249         the control_flow_graph for cfun.
2250         (n_edges_for_function, n_basic_blocks_for_function,
2251         last_basic_block_for_function, basic_block_info_for_function,
2252         EXIT_BLOCK_PTR_FOR_FUNCTION, ENTRY_BLOCK_PTR_FOR_FUNCTION,
2253         basic_block_info_for_function, label_to_block_map_for_function):
2254         Counterparts for the above, taking a struct function as an extra
2255         argument.
2256         (alloc_rbi_pool, free_rbi_pool): Remove prototypes.
2257         * cfg.c: (n_edges, n_basic_blocks, last_basic_block,
2258         basic_block_info, ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Remove.
2259         (alloc_rbi_pool, free_rbi_pool): Remove.
2260         (initialize_bb_rbi): Use ggc_alloc_cleared instead of pool_alloc.
2261         * cfglayout.c: (cfg_layout_initialize): Don't allocate the rbi pool
2262         here...
2263         (cfg_layout_finalize) ... and don't free it here.
2264         * cfgrtl.c (cfg_layout_delete_block): Zero out rbi so it gets
2265         garbage collected.
2266         * flow.c (free_basic_block_vars): Set label_to_block_map and
2267         n_edges to zero too.
2268         * function.h (struct function): Add cfg field.
2269         * function.c (allocate_struct_function): Allocate the cfg.
2270         * tree-cfg.c (label_to_block_map): Remove.
2271         (build_tree_cfg): Don't allocate the rbi pool here...
2272         (delete_tree_cfg_annotations): ...and don't free it here.
2273         Also don't nullify label_to_block_map for cfun.
2274
2275 2005-04-12  Caroline Tice  <ctice@apple.com>
2276
2277         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
2278         Revert my patch from April 9.
2279         (fix_edges_for_rarely_executed_code): Revert my patch from April 9.
2280         (reorder_basic_blocks): Revert my patch from April 9.
2281         (insert_section_boundary_note): Revert my patch from April 9.
2282         * dbxout.c (dbxout_function_end): Revert my patch from April 9.
2283         * dwarf2out.c (COLD_TEXT_SECTION_LABEL): Revert my patch from April 9.
2284         (COLD_END_LABEL):  Revert my patch from April 9.
2285         (cold_text_section_label):  Revert my patch from April 9.
2286         (cold_end_label): Revert my patch from April 9.
2287         (dwarf2out_switch_text_section): Revert my patch from April 9.
2288         (output_aranges): Revert my patch from April 9.
2289         (output_ranges):  Revert my patch from April 9.
2290         (output_line_info): Revert my patch from April 9.
2291         (add_location_or_const_value_attribute):  Revert my patch from April 9.
2292         (dwarf2out_var_location): Revert my patch from April 9.
2293         (dwarf2out_init):  Revert my patch from April 9.
2294         (dwarf2out_finish): Revert my patch from April 9.
2295         * function.h (struct function): Revert my patch from April 9.
2296         * opts.c (decode_options): Revert my patch from April 9.
2297         * output.h (unlikely_section_label, hot_section_label,
2298         hot_section_end_label, cold_section_end_label,
2299         unlikely_text_section_name): Revert my patch from April 9.
2300         * passes.c (rest_of_handle_final): Revert my patch from April 9.
2301         * varasm.c (unlikely_section_label, hot_section_label,
2302         hot_section_end_label, cold_section_end_label,
2303         unlikely_text_section_name): Revert my patch from April 9.
2304         (initialize_cold_section_name): Revert my patch from April 9.
2305         (unlikely_text_section): Revert my patch from April 9.
2306         (in_unlikely_text_section): Revert my patch from April 9.
2307         (named_section): Revert my patch from April 9.
2308         (function_section): Revert my patch from April 9.
2309         (current_function_section): Revert my patch from April 9.
2310         (assemble_start_function): Revert my patch from April 9.
2311         (assemble_end_function): Revert my patch from April 9.
2312         (default_section_type_flags_1): Revert my patch from April 9.
2313
2314 2005-04-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
2315
2316         * config/sparc/sparc.h (APPLY_RESULT_SIZE): Set to 24 in 64-bit mode.
2317         * config/sparc/sparc.md (untyped_call): Save the registers manually.
2318
2319         * config/sparc/sparc.c (legitimate_address_p): Use TARGET_ARCH32.
2320
2321 2005-04-12  Ulrich Weigand  <uweigand@de.ibm.com>
2322
2323         PR middle-end/20917
2324         * config/s390/s390.md ("*set_tp"): Use SET in pattern.
2325         ("set_tp_64", "set_tp_31"): Adapt expanded pattern.
2326
2327 2004-04-12  Richard Henderson  <rth@redhat.com>
2328
2329         * config/i386/i386.md (UNSPEC_FIX, UNSPEC_MOVA, UNSPEC_SHUFFLE,
2330         UNSPEC_PSHUFLW, UNSPEC_PSHUFHW, UNSPEC_ADDSUB, UNSPEC_HADD,
2331         UNSPEC_HSUB, UNSPEC_MOVSHDUP, UNSPEC_MOVSLDUP, UNSPEC_MOVDDUP): Remove.
2332         (UNSPEC_*, UNSPECV_*): Renumber.
2333
2334 2005-04-12  Frank Ch. Eigler  <fche@redhat.com>
2335
2336         PR mudflap/19266
2337         From Richard Henderson <rth@redhat.com>:
2338         * tree-mudflap.c (mf_build_check_statement_for): Correct block
2339         splitting logic.
2340
2341 2005-04-12  Dorit Naishlos  <dorit@il.ibm.com>
2342
2343         * tree-cfg.c (tree_verify_flow_info): Use LABEL_EXPR_LABEL.
2344
2345 2005-04-12  Bernd Schmidt  <bernd.schmidt@analog.com>
2346
2347         * config/bfin/bfin.c (bfin_library_id_string): Remove.
2348         (bfin_library_id): New variable.
2349         (bfin_expand_prologue): Use bfin_library_id and bfin_lib_id_given
2350         instead of bfin_library_id_string.
2351         (bfin_handle_option): New function.
2352         (override_options): Remove most code to deal with shared library IDs,
2353         just check they aren't used without -mid-shared-library.
2354         (TARGET_HANDLE_OPTION): Define.
2355         * config/bfin/bfin.h (TARGET_OPTIONS): Delete macro.
2356         * config/bfin/bfin.opt (mshared-library-id=): New.
2357
2358 2005-04-12  Kazu Hirata  <kazu@cs.umass.edu>
2359
2360         * tree-vect-transform.c: Fix comment typos.
2361
2362 2005-04-12 Mostafa Hagog <mustafa@il.ibm.com>
2363
2364         * postreload-gcse.c (eliminate_partially_redundant_load): Don't
2365         split critical edges when not possible/profitable.
2366
2367 2005-04-12  Richard Sandiford  <rsandifo@redhat.com>
2368
2369         * config/ns32k/ns32k.h (target_flags, MASK_32081, MASK_RTD)
2370         (MASK_REGPARM, MASK_32532, MASK_32332, MASK_NO_SB, MASK_NO_BITFIELD)
2371         (MASK_HIMEM, MASK_32381, MASK_MULT_ADD, MASK_SRC, MASK_IEEE_COMPARE)
2372         (TARGET_32081, TARGET_32381, TARGET_MULT_ADD, TARGET_RTD)
2373         (TARGET_REGPARM, TARGET_32532, TARGET_32332, TARGET_SB, TARGET_HIMEM)
2374         (TARGET_BITFIELD, TARGET_IEEE_COMPARE, TARGET_SWITCHES): Delete.
2375         (OVERRIDE_OPTIONS): Clear MASK_SB instead of setting MASK_NO_SB.
2376         * config/ns32k/netbsd.h (TARGET_DEFAULT): Remove MASK_NO_SB and
2377         MASK_NO_BITFIELD.
2378         * config/ns32k/ns32k.c (ns32k_handle_option): New function.
2379         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
2380         * config/ns32k/ns32k.opt: New file.
2381
2382 2005-04-12  Richard Sandiford  <rsandifo@redhat.com>
2383
2384         * config.gcc (m68k-*-linux*): Add m68k/ieee.opt to $extra_options.
2385         * config/m68k/m68k.h (target_flags, MASK_68020, TARGET_68020)
2386         (MASK_68030, TARGET_68030, MASK_68040, TARGET_68040, MASK_68040_ONLY)
2387         (TARGET_68040_ONLY, MASK_68060, TARGET_68060, MASK_5200, TARGET_5200)
2388         (MASK_CFV3, TARGET_CFV3, MASK_CFV4, TARGET_CFV4, MASK_528x)
2389         (TARGET_528x, MASK_CF_HWDIV, TARGET_CF_HWDIV, MASK_68881, TARGET_68881)
2390         (MASK_BITFIELD, TARGET_BITFIELD, MASK_SHORT, TARGET_SHORT)
2391         (MASK_ALIGN_INT, TARGET_ALIGN_INT, MASK_PCREL, TARGET_PCREL)
2392         (MASK_NO_STRICT_ALIGNMENT, TARGET_STRICT_ALIGNMENT, MASK_RTD)
2393         (TARGET_RTD, MASK_SEP_DATA, TARGET_SEP_DATA, MASK_ID_SHARED_LIBRARY)
2394         (TARGET_ID_SHARED_LIBRARY, MASK_ALL_CF_BITS, TARGET_SWITCHES)
2395         (TARGET_OPTIONS, SUBTARGET_SWITCHES, SUBTARGET_OPTIONS): Delete.
2396         (MASK_COLDFIRE): Formatting fixes.
2397         (TARGET_COLDFIRE): Turn into a boolean value for consistency.
2398         * config/m68k/linux.h (SUBTARGET_SWITCHES): Delete.
2399         * config/m68k/m68k.c (m68k_library_id_string): Initialize to
2400         "_current_shared_library_a5_offset_".
2401         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
2402         (MASK_ALL_CPU_BITS): New macro.
2403         (m68k_handle_option): New function.
2404         (override_options): Remove handling of m68k_library_id_string.
2405         * config/m68k/m68k.opt: New file.
2406         * config/m68k/ieee.opt: New file.
2407
2408 2005-04-11  Mark Mitchell  <mark@codesourcery.com>
2409
2410         * target-def.h (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
2411         (TARGET_CXX_DETERMINE_CLASS_VISIBILITY): New macro.
2412         (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
2413         (TARGET_CXX): Adjust accordingly.
2414         * target.h (struct gcc_target): Remove epxort_class_data.  Add
2415         determine_class_data_visibility and class_data_always_comdat.
2416         * doc/tm.texi (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
2417         (TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY): Document.
2418         (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
2419         * config/arm/arm.c (arm_cxx_export_class_data): Remove.
2420         (arm_cxx_determine_class_data_visibility): New.
2421         (arm_cxx_class_data_always_comdat): Likewise.
2422         (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
2423         (TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY): Define.
2424         (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
2425         * config/arm/arm.h (TARGET_ARM_DYNAMIC_VAGUE_LINKAGE_P): Define.
2426         * config/arm/symbian.h (TARGET_ARM_DYNAMIC_VAGUE_LINKAGE_P):
2427         Define.
2428
2429 2005-04-11  Devang Patel  <dpatel@apple.com>
2430
2431         * tree-data-ref.c (build_classic_dist_vector,
2432         compute_subscript_distance): Make externally visible.
2433         * tree-data-ref.h (build_classic_dist_vector,
2434         compute_subscript_distance): Same.
2435         * tree-vect-analyze.c (vect_analyze_data_ref_dependence):
2436         Check distance vector against vectorization factor.
2437         (vect_analyze_loop): Determine vectorizaion factor before
2438         analyzing data dependences.
2439         * tree-vectorizer.c (loops_num): Make it externally visible and
2440         rename ...
2441         * tree-vectorizer.c (vect_loops_num): ... new name.
2442         * tree-vectorizer.h  (vect_loops_num): New.
2443
2444 2005-04-11  Devang Patel  <dpatel@apple.com>
2445
2446         * tree-vect-analyze.c (vect_analyze_operations): Check
2447         vectorizable codition.
2448         * tree-vect-transform.c (vect_is_simple_cond): New function.
2449         (vectorizable_condition): New function.
2450         (vect_transform_stmt): Handle condition_vec_info_type.
2451         * tree-vectorizer.h (enum stmt_vec_info_type): Add
2452         condition_vec_info_type.
2453         (vectorizable_condition): New.
2454
2455 2005-04-11  Geoffrey Keating  <geoffk@apple.com>
2456
2457         * config/i386/i386.h (TARGET_FPMATH_DEFAULT): New.
2458         * config/i386/darwin.h (TARGET_FPMATH_DEFAULT): New.
2459         * config/i386/i386.c (override_options): Use TARGET_FPMATH_DEFAULT.
2460
2461         * config/i386/darwin.h (ASM_SPEC): Use -arch i386 not -arch i686.
2462         (SUBTARGET_EXTRA_SPECS): Always 'i386'.
2463
2464         * dwarf2out.c (output_line_info): Don't try to dereference
2465         a NULL current_function_decl.
2466
2467         * config/t-slibgcc-darwin: Don't put shared libraries in
2468         directories other than $(slibdir).
2469         * config/rs6000/darwin.h: Find -m64 libgcc under the name the
2470         OS uses for it.
2471
2472 2005-04-11  Diego Novillo  <dnovillo@redhat.com>
2473
2474         PR tree-optimization/20933
2475         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Move
2476         logic to reject aliases between read-only and writable
2477         variables ...
2478         (may_alias_p): ... here.
2479         (get_tmt_for): Do not associate read-only tags to pointers
2480         whose pointed-to type is not read-only.
2481         * tree-ssa.c (verify_ssa): Check that memory stores have at
2482         least one V_MAY_DEF or V_MUST_DEF.
2483
2484 2005-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2485
2486         PR/17092
2487         * configure.ac (gcc_UNLOCKED_FUNCS): New.
2488         (AC_CHECK_FUNCS, AC_CHECK_DECLS): Check for gcc_UNLOCKED_FUNCS.
2489         * system.h (putchar, getc, getchar, clearerr, feof, fileno,
2490         fflush, fgetc, fgets, ferror, fread): Redefine to the associated
2491         _unlocked function.
2492         (fwrite_unlocked): Fix prototype.
2493
2494         * configure, config.in: Regenerate.
2495
2496 2005-04-11  David Edelsohn  <edelsohn@gnu.org>
2497
2498         * tree-ssa-loop-im.c: Include real.h.
2499         (determine_invariantness_stmt): If real division divisor is
2500         invariant and flag_unsafe_math_optimizations enabled, generate
2501         invariant reciprocal for hoisting.
2502         * Makefile.in (tree-ssa-loop-im.o): Add real.h dependency.
2503
2504 2005-04-11  Daniel Berlin  <dberlin@dberlin.org>
2505
2506         Fix PR tree-optimization/20926
2507
2508         * tree-ssa-alias.c (add_type_alias): Handle subvars.
2509
2510 2005-04-11  Devang Patel  <dpatel@apple.com>
2511
2512         * config/rs6000.c (rs6000_emit_vector_select): Fix vector select
2513         operand ordering.
2514
2515 2005-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
2516
2517         * fold-const.c (fold_binary_op_with_conditional_arg):
2518         use fold_buildN instead of "fold (buildN" in some
2519         non obvious places.
2520         (fold_unary): Likewise.
2521         (fold_binary): Likewise.
2522
2523 2005-04-11  Daniel Berlin  <dberlin@dberlin.org>
2524
2525         Fix PR tree-optimization/20612
2526         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Fix increment
2527         handling
2528         (perfect_nestify): preheaderbb is *not* part of loop of the
2529         old destination.
2530
2531 2005-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
2532
2533         * tree-ssa-alias.c (may_alias_p): If the variable
2534         is a global variable and the pointer is parameter
2535         and -fargument-noalias-global is used, then
2536         the pointer cannot alias the variable.
2537
2538 2005-04-11  James A. Morrison  <phython@gcc.gnu.org>
2539
2540         * config/sparc/sparc.c: Use gcc_assert and gcc_unreachable.
2541         * config/sparc/sparc.h: Likewise.
2542         * config/sparc/sparc.md: Likewise.
2543
2544 2005-04-11  Kazu Hirata  <kazu@cs.umass.edu>
2545
2546         * tree-vrp.c (maybe_add_assert_expr): Move a comment.
2547
2548         * tree-vrp.c: Fix a comment typo.
2549
2550 2005-04-11  Diego Novillo  <dnovillo@redhat.com>
2551
2552         PR tree-optimization/20920
2553         * tree-pretty-print.c (dump_generic_node): Show '(ab)' if an
2554         SSA_NAME flows through an abnormal edge.
2555         * tree-vrp.c (infer_value_range): Ignore SSA names that flow
2556         through abnormal edges.
2557         (maybe_add_assert_expr): Likewise.
2558
2559 2005-04-11  Richard Sandiford  <rsandifo@redhat.com>
2560
2561         * config/s390/s390.h (s390_tune_string, s390_arch_string)
2562         (s390_warn_framesize_string, s390_warn_dynamicstack_string)
2563         (s390_stack_size_string, s390_stack_guard_string, target_flags)
2564         (MASK_HARD_FLOAT, MASK_SMALL_EXEC, MASK_DEBUG_ARG, MASK_64BIT)
2565         (MASK_ZARCH, MASK_MVCLE, MASK_TPF_PROFILING, MASK_NO_FUSED_MADD)
2566         (MASK_BACKCHAIN, MASK_PACKED_STACK, TARGET_HARD_FLOAT)
2567         (TARGET_SOFT_FLOAT, TARGET_SMALL_EXEC, TARGET_DEBUG_ARG)
2568         (TARGET_64BIT, TARGET_ZARCH, TARGET_MVCLE, TARGET_TPF_PROFILING)
2569         (TARGET_NO_FUSED_MADD, TARGET_FUSED_MADD, TARGET_BACKCHAIN)
2570         (TARGET_PACKED_STACK, TARGET_SWITCHES, TARGET_OPTIONS): Delete.
2571         * config/s390/s390.c (TARGET_DEFAULT_TARGET_FLAGS): Override default.
2572         (TARGET_HANDLE_OPTION): Likewise.
2573         (s390_tune): Initialize to PROCESSOR_max.
2574         (s390_arch_string): Make static.
2575         (s390_tune_string, s390_warn_framesize_string): Delete.
2576         (s390_warn_dynamicstack_string, s390_stack_size_string): Delete.
2577         (s390_stack_guard_string, s390_warn_dynamicstack_p): Delete.
2578         (s390_handle_arch_option, s390_handle_option): New functions.
2579         (override_options): Remove parsing of option strings.
2580         * config/s390/s390.opt: New file.
2581
2582 2005-04-11  Paolo Bonzini  <bonzini@gnu.org>
2583
2584         * tree-complex.c (expand_vector_operations): Call
2585         update_stmt_if_modified.
2586
2587 2005-04-11  Paolo Bonzini  <bonzini@gnu.org>
2588
2589         * tree-vect-analyze (vect_determine_vectorization_factor):
2590         Do not use GET_MODE_NUNITS.
2591         * tree-vect-transform.c (vect_get_vec_def_for_operand,
2592         (vectorizable_load, vect_transform_loop): Likewise.
2593
2594 2005-04-11  Uros Bizjak  <uros@kss-loka.si>
2595
2596         * builtins.def (BUILT_IN_LCEIL, BUILT_IN_LCEILF, BUILT_IN_LCEILL)
2597         (BUILT_IN_LLCEIL, BUILT_IN_LLCEILF, BUILT_IN_LLCEILL): New.
2598         * optabs.h (enum optab_index): Add new OTI_lceil.
2599         (lceil_optab): Define corresponding macro.
2600         * optabs.c (init_optabs): Initialize lceil_optab.
2601         * genopinit.c (optabs): Implement lceil_optab using lceilsi2
2602         and lceildi2 patterns.
2603         * builtins.c (expand_builtin_int_roundingfn): Handle
2604         BUILT_IN_LCEIL{,F,L} and BUILT_IN_LLCEIL{,F,L}.
2605         (fold_builtin_int_roundingfn): Handle BUILT_IN_LCEIL{,F,L} and
2606         BUILT_IN_LLCEIL{,F,L}.
2607         (fold_builtin_1): Fold BUILT_IN_LCEIL{,F,L} and
2608         BUILT_IN_LLCEIL{,F,L} using fold_builtin_int_roundingfn.
2609         (mathfn_built_in): Handle BUILT_IN LCEIL and BUILT_IN_LLCEIL.
2610         (expand_builtin): Expand BUILT_IN_LCEIL{,F,L} and
2611         BUILT_IN_LLCEIL{,F,L} using expand_builtin_int_roundingfn.
2612         * convert.c (convert_to_integer): Convert (long int)ceil{,f,l},
2613         into lceil built-in function and (long long int)ceil{,f,l} into
2614         llceil built-in function.
2615         * fold-const.c (tree_expr_nonnegative_p): Add BUILT_IN_LCEIL and
2616         BUILT_IN_LLCEIL.
2617
2618 2005-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2619
2620         * pa/quadlib.c (_U_Qfneg): Toggle sign bit instead of subtracting from
2621         zero.
2622
2623 2005-04-10  Kazu Hirata  <kazu@cs.umass.edu>
2624
2625         * config/arm/arm.c: Fix a comment typo.
2626         * doc/tree-ssa.texi: Fix a typo.
2627
2628 2005-04-10  Steven Bosscher  <stevenb@suse.de>
2629
2630         * cselib.c (clear_table): Rename to cselib_clear_table.
2631         * cselib.h (cselib_clear_table): Add prototype.
2632         * gcse.c (gcse_main): Make 'f' argument unused.
2633         (alloc_gcse_mem): Do not walk the insn chain, walk the contents
2634         of each basic block instead.
2635         (compute_sets, compute_hash_table_work): Likewise.
2636         (constprop_register): Change int 'alter_jumps' argument to bool.
2637         (do_local_cprop): Likewise.
2638         (local_cprop_pass): Likewise.  Also walk basic blocks instead of
2639         the insn chain.  Explicitly clear the cselib tables after finishing
2640         one basic block.  Make sure there are no unterminated libcall blocks.
2641         Update compute_sets call.
2642         (cprop): Walk basic blocks instead of the insn chain.
2643         (one_cprop_pass, compute_ld_motion_mems, compute_store_table):
2644         Likewise.
2645         (bypass_jumps): Update alloc_gcse_mem, compute_sets, and
2646         one_cprop_pass calls.
2647
2648 2005-04-10  Richard Sandiford  <rsandifo@redhat.com>
2649
2650         * combine.c (combine_simplify_rtx): Remove a transformation that
2651         relies on an invalid assumption about rtl sign-extension semantics.
2652
2653 2005-04-10  Richard Sandiford  <rsandifo@redhat.com>
2654
2655         * value-prof.c (tree_divmod_fixed_value_transform): Fix arguments
2656         to build_int_cst_wide.
2657
2658 2005-04-09  Alexandre Oliva  <aoliva@redhat.com>
2659
2660         PR target/20126
2661         * loop.c (loop_givs_rescan): If replacement of DEST_ADDR failed,
2662         set the original address pseudo to the correct value before the
2663         original insn, if possible, and leave the insn alone, otherwise
2664         create a new pseudo, set it and replace it in the insn.
2665         * recog.c (validate_change_maybe_volatile): New.
2666         * recog.h (validate_change_maybe_volatile): Declare.
2667
2668 2005-04-09  Caroline Tice  <ctice@apple.com>
2669
2670         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
2671         Remove targetm.have_named_sections test.
2672         (fix_edges_for_rarely_executed_code): Likewise.
2673         (insert_section_boundary_note): Likewise.
2674         (reorder_basic_blocks): Check partitioning flag before calling
2675         verify_hot_cold_block_grouping.
2676         * dbxout.c (dbxout_function_end): Get hot/cold section labels from
2677         the function struct rather than global variables.
2678         * dwarf2out.c (COLD_TEXT_SECTION_LABEL): New macro.
2679         (COLD_END_LABEL): Likewise
2680         (cold_text_section_label): New static global variable.
2681         (cold_end_label): Likewise.
2682         (dwarf2out_switch_text_section): Get hot/cold section labels from
2683         the function struct rather than global variables.
2684         (output_aranges): Use cold_text_section_label and cold_end_label;
2685         check partitioning flag before putting out delta.
2686         (output_ranges): Remove incorrect code attempting to use
2687         hot/cold labels.
2688         (output_line_info): Get cold section label from function struct.
2689         (add_location_or_const_value_attribute): Likewise.
2690         (get_subprogram_die): Get hot/cold section labels from function struct.
2691         (dwarf2out_var_location): Likewise.
2692         (dwarf2out_init): Generate cold_text_section_label and cold_end_label;
2693         write out cold_text_section_label if partition flag is set.
2694         (dwarf2out_finish): Write out cold_end_label if partition flag is set;
2695         * function.h (struct function): Add new fields to point to hot/cold
2696         section labels: hot_section_label, cold_section_label,
2697         hot_section_end_label and cold_section_end_label; also add new field
2698         for cold text section name, unlikely_text_section_name.
2699         * opts.c (decode_options): Turn off partitioning flag if
2700         !targetm.have_named_sections.
2701         * output.h (hot_section_label): Remove.
2702         (hot_section_end_label): Remove.
2703         (cold_section_end_label): Remove.
2704         (unlikely_section_label): Remove.
2705         (unlikely_text_section_name): Remove.
2706         * passes.c (rest_of_handle_final):  Remove code that frees
2707         unlikely_text_section_name.
2708         * varasm.c (unlikely_section_label): Remove.
2709         (hot_section_label): Remove.
2710         (hot_section_end_label): Remove.
2711         (cold_section_end_label): Remove.
2712         (unlikely_text_section_name):  Remove.
2713         (initialize_cold_section_name): Modify to call
2714         targetm.strip_name_encoding; to store cold section name in current
2715         function struct, if it exists; and to only use the decl_section_name
2716         if flag_named_sections is true.
2717         (unlikely_text_section): Modify to get section name out of current
2718         function struct, if there is one; otherwise build it from
2719         UNLIKELY_EXECUTED_TEXT_SECTION_NAME.
2720         (in_unlikely_text_section): Likewise.
2721         (named_section): Modify to get/put cold section name in current function
2722         struct, if there is one.
2723         (function_section):  Change 'bool unlikely' to 'int reloc'; check
2724         targetm.have_named_sections before calling named_section.
2725         (current_function_section): Likewise.
2726         (assemble_start_function): Modify to get/put unlikely_text_section_name
2727         in current function struct; modify to get hot/cold section labels
2728         from function struct; initialize labels using
2729         ASM_GENERATE_INTERNAL_LABEL;
2730         test partitioning flag before writing out hot section label.
2731         (assemble_end_function): Test partitioning flag before writing out
2732         hot/cold section labels.
2733         (default_section_type_flags_1):  Modify to use array instead of
2734          char* for unlikely_text_section_name; set flags correctly for
2735          cold text section if there is not a current function decl.
2736
2737 2005-04-09  Jakub Jelinek  <jakub@redhat.com>
2738
2739         * tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD
2740         and TI_VA_LIST_FPR_COUNTER_FIELD.
2741         (va_list_gpr_counter_field, va_list_fpr_counter_field): Define.
2742         * tree-pass.h (pass_stdarg): Add.
2743         * tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg.
2744         * tree-stdarg.c: New file.
2745         * tree-stdarg.h: New file.
2746         * Makefile.in (OBJS-common): Add tree-stdarg.o.
2747         (tree-stdarg.o): Add dependencies.
2748         * function.h (struct function): Add va_list_gpr_size and
2749         va_list_fpr_size fields.
2750         * function.c (allocate_struct_function): Initialize them.
2751         * target.h (struct gcc_target): Add stdarg_optimize_hook.
2752         * target-def.h (TARGET_STDARG_OPTIMIZE_HOOK): Define.
2753         (TARGET_INITIALIZER): Add it.
2754
2755         * config/i386/i386.c (ix86_build_builtin_va_list): Initialize
2756         va_list_{g,f}pr_counter_field.
2757         (ix86_setup_incoming_varargs): Don't do anything if reg_save
2758         area will not be used.  Only save registers that tree-stdarg.c
2759         detected they need saving.
2760         (ix86_va_start): Don't set up fields that won't be used.
2761
2762         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize
2763         va_list_{g,f}pr_counter_field.
2764         (setup_incoming_varargs): Don't do anything if reg_save
2765         area will not be used.  Only save registers that tree-stdarg.c
2766         detected they need saving.
2767         (rs6000_va_start): Don't set up fields that won't be used.
2768
2769         * config/alpha/alpha.c: Include tree-flow.h and tree-stdarg.h.
2770         (alpha_build_builtin_va_list): Initialize va_list_gpr_counter_field.
2771         (va_list_skip_additions, alpha_stdarg_optimize_hook): New functions.
2772         (TARGET_STDARG_OPTIMIZE_HOOK): Define.
2773
2774 2005-04-09  Jakub Jelinek  <jakub@redhat.com>
2775
2776         PR target/20795
2777         * config/i386/i386.c (construct_container): Pass empty aligned
2778         struct, union or class in memory.
2779
2780 2005-04-09  Kazu Hirata  <kazu@cs.umass.edu>
2781
2782         * dominance.c, gthr-win32.h, reg-stack.c, tree-ssa-copy.c,
2783         tree-ssa-operands.c, tree-ssa.c, tree-vrp.c, varasm.c,
2784         config/alpha/alpha.c, config/arm/arm.c, config/m32r/m32r.h,
2785         config/rs6000/predicates.md: Fix comment typos.
2786
2787         * sched-int.h (haifa_insn_data): Remove blockage and units.
2788         (INSN_UNIT, INSN_BLOCKAGE, UNIT_BITS, BLOCKAGE_MASK,
2789         ENCODE_BLOCKAGE, UNIT_BLOCKED, BLOCKAGE_RANGE,
2790         MIN_BLOCKAGE_COST, MAX_BLOCKAGE_COST): Remove.
2791
2792 2005-04-09  Jan Hubicka  <jh@suse.cz>
2793             Steven Bosscher  <stevenb@suse.de>
2794
2795         * cfglayout.c (copy_bbs): Rename n_edges to num_edges.
2796         * cfgloop.c (get_loop_exit_edges): Likewise.
2797         * cfgloopmanip.c (fix_irreducible_loops): Likewise.
2798         (unloop): Likewise.
2799         * loop-unroll.c (analyze_insns_in_loop): Likewise.
2800         * tree-cfg.c (dump_cfg_status): Likewise.
2801
2802 2005-04-09  David Edelsohn  <edelsohn@gnu.org>
2803
2804         * config/rs6000/predicates.md (altivec_register_operand): Remove
2805         redundant match_code test.
2806         (gpc_reg_operand): Same.
2807         (cc_reg_operand): Same.
2808         (cc_reg_not_cr0_operand): Same.
2809
2810 2005-04-09  Jan Hubicka  <jh@suse.cz>
2811
2812         Forgotten hunk from my last merge patch:
2813         * final.c (output_addr_const): Do not call mark_referenced.
2814
2815 2005-04-09  Andrew MacLeod  <amacleod@redhat.com>
2816
2817         * doc/tree-ssa.texi: Add immediate use documentation.
2818
2819 2005-04-09  Richard Earnshaw <richard.earnshaw@arm.com>
2820
2821         * arm.c (FL_WBUF): Define.
2822         (arm_tune_strongarm): Renamed from arm_is_strong.  All uses changed.
2823         (arm_is_6_or_7): Delete.
2824         (arm_tune_wbuf): New.
2825         (arm_override_options): Set arm_tune_wbuf.
2826         * arm.h (arm_tune_strongarm): Renamed from arm_is_strong.
2827         (arm_is_6_or_7): Delete declaration.
2828         (arm_tune_wbuf): New declartion.
2829         * arm.md (is_strongarm): Derive from arm_tune_strongarm.
2830         (model_wbuf): Derive from arm_tune_wbuf.
2831         * arm-cores.def (arm600, arm610, arm620, arm700, arm700i, arm710)
2832         (arm720, arm710c, arm7100, arm7500, arm7500fe, arm710t, arm720t)
2833         (arm740t): Mark CPUs as having a write buffer.
2834
2835 2005-04-09  Uros Bizjak  <uros@kss-loka.si>
2836
2837         * config/i386/i386.md (*fp_jcc_7_387): Use 'const0_operand' instead
2838         of 'const_double_operand' in operand 2 constraints.  Update enable
2839         condition.
2840
2841 2005-04-09  Uros Bizjak  <uros@kss-loka.si>
2842
2843         * builtins.def (BUILT_IN_LFLOOR, BUILT_IN_LFLOORF, BUILT_IN_LFLOORL)
2844         (BUILT_IN_LLFLOOR, BUILT_IN_LLFLOORF, BUILT_IN_LLFLOORL): New.
2845         * optabs.h (enum optab_index): Add new OTI_lfloor.
2846         (lfloor_optab): Define corresponding macro.
2847         * optabs.c (init_optabs): Initialize lfloor_optab.
2848         * genopinit.c (optabs): Implement lfloor_optab using lfloorsi2
2849         and lfloordi2 patterns.
2850         * builtins.c (expand_builtin_int_roundingfn): New prototype.
2851         (expand_builtin_int_roundingfn): New function.
2852         (fold_builtin_int_roundingfn): New prototype.
2853         (fold_builtin_int_roundingfn): New function, renamed from
2854         fold_builtin_lround.
2855         Handle BUILT_IN_LROUND{,F,L}, BUILT_IN_LLROUND{,F,L} and
2856         BUILT_IN_LFLOOR{,F,L}, BUILT_IN_LLFLOOR{,F,L}.
2857         (fold_builtin_1): Fold BUILT_IN_LFLOOR{,F,L} and
2858         BUILT_IN_LLFLOOR{,F,L} using fold_builtin_int_roundingfn.
2859         (mathfn_built_in): Handle BUILT_IN LFLOOR and BUILT_IN_LLFLOOR.
2860         (expand_builtin): Expand BUILT_IN_LFLOOR{,F,L} and
2861         BUILT_IN_LLFLOOR{,F,L} using expand_builtin_int_roundingfn.
2862         * convert.c (convert_to_integer): Convert (long int)floor{,f,l},
2863         into lfloor built-in function and (long long int)floor{,f,l} into
2864         llfloor built-in function.
2865         * fold-const.c (tree_expr_nonnegative_p): Add BUILT_IN_LFLOOR and
2866         BUILT_IN_LLFLOOR.
2867
2868 2005-04-08  Ian Lance Taylor  <ian@airs.com>
2869
2870         * c-common.def: Move FOR_STMT, WHILE_STMT, DO_STMT, BREAK_STMT,
2871         CONTINUE_STMT, and SWITCH_STMT to cp/cp-tree.def.
2872         * c-common.h (WHILE_COND, WHILE_BODY): Move to cp/cp-tree.h.
2873         (DO_COND, DO_BODY): Likewise.
2874         (FOR_INIT_STMT, FOR_COND, FOR_EXPR, FOR_BODY): Likewise.
2875         (SWITCH_STMT_COND, SWITCH_STMT_BODY, SWITCH_STMT_TYPE): Likewise.
2876         (c_common_stmt_codes): Remove FOR_STMT, WHILE_STMT, DO_STMT,
2877         BREAK_STMT, CONTINUE_STMT, and SWITCH_STMT.
2878         (build_continue_stmt, build_break_stmt): Don't declare.
2879         (c_do_switch_warnings): Update declaration.
2880         * c-gimplify.c (enum bc_t): Remove.
2881         (struct c_gimplify_ctx, ctxp): Remove.
2882         (push_context, pop_context): Remove static functions.
2883         (c_genericize): Don't call push_context or pop_context.
2884         (begin_bc_block, finish_bc_block): Remove static functions.
2885         (build_bc_goto): Likewise.
2886         (gimplify_c_loop): Likewise.
2887         (gimplify_for_stmt, gimplify_while_stmt): Likewise.
2888         (gimplify_do_stmt, gimplify_switch_stmt): Likewise.
2889         (c_gimplify_expr): Remove handling of FOR_STMT, WHILE_STMT,
2890         DO_STMT, SWITCH_STMT, CONTINUE_STMT, BREAK_STMT.
2891         * c-common.c (c_do_switch_warnings): Rename from
2892         c_do_switch_warnings_1.
2893         (c_do_switch_warnings) [old version]: Remove.
2894         (c_do_switch_expr_warnings): Remove.
2895         * c-typeck.c (c_finish_case): Call new c_do_switch_warnings
2896         function instead of c_do_switch_expr_warnings.
2897         * c-dump.c (c_dump_tree): Remove handling of BREAK_STMT,
2898         CONTINUE_STMT, DO_STMT, FOR_STMT, SWITCH_STMT, and WHILE_STMT.
2899         * c-pretty-print.c (pp_c_statement): Likewise.
2900         * c-semantics.c (build_break_stmt, build_continue_stmt): Remove.
2901
2902 2005-04-08  Devang Patel  <dpatel@apple.com>
2903
2904         * tree-if-conv.c (find_phi_replacement_condition): New parameter, loop.
2905         While selecting replacement condition pay attention to loop header.
2906
2907 2005-04-08  Diego Novillo  <dnovillo@redhat.com>
2908
2909         Merge from tree-cleanup-branch: VRP, store CCP, store
2910             copy-prop, incremental SSA updating of FUD chains and
2911             newly exposed symbols.
2912
2913         * Makefile.in (tree-ssa-copy.o): Depend on tree-ssa-propagate.h.
2914         (OBJS-common): Add tree-vrp.o.
2915         (tree-vrp.o): New rule.
2916         * basic-block.h (nearest_common_dominator_for_set): Declare.
2917         * common.opt (ftree-store-ccp): New flag.
2918         (ftree-copy-prop): New flag.
2919         (ftree-vrp): New flag.
2920         (ftree-store-copy-prop): New flag.
2921         * dominance.c (nearest_common_dominator_for_set): New.
2922         * domwalk.c (walk_dominator_tree): Only traverse
2923         statements in blocks marked in walk_data->interesting_blocks.
2924         * domwalk.h (struct dom_walk_data): Add field interesting_blocks.
2925         * fold-const.c (fold): Handle ASSERT_EXPR.
2926         * opts.c (decode_options): Set flag_tree_copy_prop at -O1.
2927         Set flag_tree_store_ccp, flag_tree_store_copy_prop and
2928         flag_tree_vrp at -O2.
2929         * timevar.def (TV_TREE_VRP): Define.
2930         (TV_TREE_COPY_PROP): Define.
2931         (TV_TREE_STORE_COPY_PROP): Define.
2932         (TV_TREE_SSA_INCREMENTAL): Define.
2933         (TV_TREE_STORE_CCP): Define.
2934         * tree-cfg.c (tree_can_merge_blocks_p): Remove reference
2935         to kill_redundant_phi_nodes from comment.
2936         (verify_expr): Handle ASSERT_EXPR.
2937         * tree-dfa.c (mark_new_vars_to_rename): Remove second
2938         argument.  Update all users.
2939         (mark_call_clobbered_vars_to_rename): Remove.  Update all
2940         users.
2941         * tree-flow-inline.h (unmodifiable_var_p): New.
2942         * tree-flow.h (enum value_range_type): Declare.
2943         (struct value_range_def): Declare.
2944         (value_range): Declare.
2945         (remove_all_phi_nodes_for): Remove.  Update all users.
2946         (find_phi_node_for): Declare.
2947         (add_type_alias): Declare.
2948         (count_uses_and_derefs): Declare.
2949         (kill_redundant_phi_nodes): Remove.
2950         (rewrite_into_ssa): Remove.
2951         (rewrite_def_def_chains): Remove.
2952         (update_ssa, register_new_name_mapping, create_new_def_for,
2953         need_ssa_update_p, name_registered_for_update_p,
2954         release_ssa_name_after_update_ssa, dump_repl_tbl,
2955         debug_repl_tbl, dump_names_replaced_by,
2956         debug_names_replaced_by, mark_sym_for_renaming,
2957         mark_set_for_renaming, get_current_def, set_current_def,
2958         get_value_range, dump_value_range, debug_value_range,
2959         dump_all_value_ranges, debug_all_value_ranges,
2960         expr_computes_nonzero, loop_depth_of_name,
2961         unmodifiable_var_p): Declare.
2962         * tree-gimple.c (is_gimple_formal_tmp_rhs): Handle
2963         ASSERT_EXPR.
2964         * tree-into-ssa.c (block_defs_stack): Update comment.
2965         (old_ssa_names, new_ssa_names, old_virtual_ssa_names,
2966         syms_to_rename, names_to_release, repl_tbl,
2967         need_to_initialize_update_ssa_p, need_to_update_vops_p,
2968         need_to_replace_names_p): New locals.
2969         (NAME_SETS_GROWTH_FACTOR): Define.
2970         (struct repl_map_d): Declare.
2971         (struct mark_def_sites_global_data): Add field
2972         interesting_blocks.
2973         (enum rewrite_mode): Declare.
2974         (REGISTER_DEFS_IN_THIS_STMT): Define.
2975         (compute_global_livein): Use last_basic_block instead of
2976         n_basic_blocks.
2977         (set_def_block): Remove last argument.  Update all callers.
2978         (prepare_use_operand_for_rename): Remove.  Update all callers.
2979         (prepare_def_operand_for_rename): Remove.  Update all callers.
2980         (symbol_marked_for_renaming): New.
2981         (is_old_name): New.
2982         (is_new_name): New.
2983         (repl_map_hash): New.
2984         (repl_map_eq): New.
2985         (repl_map_free): New.
2986         (names_replaced_by): New.
2987         (add_to_repl_tbl): New.
2988         (add_new_name_mapping): New.
2989         (mark_def_sites): Assume that all the operands in the
2990         statement are in normal form.
2991         (find_idf): Assert that the block in the stack is valid.
2992         (get_default_def_for): New.
2993         (insert_phi_nodes_for): Add new argument 'update_p'.
2994         Add documentation.
2995         If update_p is true, add a new mapping between the LHS of
2996         each new PHI and the name that it replaces.
2997         (insert_phi_nodes_1): Only call find_idf if needed.
2998         (get_reaching_def): Call get_default_def_for.
2999         (rewrite_operand): Remove.
3000         (rewrite_stmt): Do nothing if REGISTER_DEFS_IN_THIS_STMT
3001         and REWRITE_THIS_STMT are false.
3002         Assume that all the operands in the statement are in
3003         normal form.
3004         (rewrite_add_phi_arguments): Don't use PHI_REWRITTEN.
3005         (rewrite_virtual_phi_arguments): Remove.
3006         (invalidate_name_tags): Remove.
3007         (register_new_update_single, register_new_update_set,
3008         rewrite_update_init_block, replace_use,
3009         rewrite_update_fini_block, rewrite_update_stmt,
3010         rewrite_update_phi_arguments): New.
3011         rewrite_blocks): Remove argument 'fix_virtual_phis'.
3012         Add arguments 'entry', 'what' and 'blocks'.
3013         Initialize the dominator walker according to 'what' and
3014         'blocks'.
3015         Start the dominator walk at 'entry'.
3016         (mark_def_site_blocks): Add argument 'interesting_blocks'.
3017         Use it to configure the dominator walker.
3018         (rewrite_into_ssa): Remove argument 'all'.
3019         Make internal.
3020         (rewrite_all_into_ssa): Remove.
3021         (rewrite_def_def_chains): Remove.
3022         (mark_def_interesting, mark_use_interesting,
3023         prepare_phi_args_for_update, prepare_block_for_update,
3024         prepare_def_site_for, prepare_def_sites,
3025         dump_names_replaced_by, debug_names_replaced_by,
3026         dump_repl_tbl, debug_repl_tbl, init_update_ssa,
3027         delete_update_ssa, create_new_def_for,
3028         register_new_name_mapping, mark_sym_for_renaming,
3029         mark_set_for_renaming, need_ssa_update_p,
3030         name_registered_for_update_p, ssa_names_to_replace,
3031         release_ssa_name_after_update_ssa,
3032         insert_updated_phi_nodes_for, update_ssa): New.
3033         * tree-loop-linear.c (linear_transform_loops): Call
3034         update_ssa instead of rewrite_into_ssa.
3035         * tree-optimize.c (vars_to_rename): Remove.
3036         Update all users.
3037         (init_tree_optimization_passes): Replace
3038         pass_redundant_phi with pass_copy_prop.
3039         Add pass_vrp.
3040         Replace pass_ccp with pass_store_ccp.
3041         Add pass_store_copy_prop after pass_store_ccp.
3042         (execute_todo): If the TODO_ flags don't include updating
3043         the SSA form, assert that it does not need to be updated.
3044         Call update_ssa instead of rewrite_into_ssa and
3045         rewrite_def_def_chains.
3046         If TODO_verify_loops is set, call verify_loop_closed_ssa.
3047         (tree_rest_of_compilation):
3048         * tree-pass.h (TODO_dump_func, TODO_ggc_collect,
3049         TODO_verify_ssa, TODO_verify_flow, TODO_verify_stmts,
3050         TODO_cleanup_cfg): Renumber.
3051         (TODO_verify_loops, TODO_update_ssa,
3052         TODO_update_ssa_no_phi, TODO_update_ssa_full_phi,
3053         TODO_update_ssa_only_virtuals): Define.
3054         (pass_copy_prop, pass_store_ccp, pass_store_copy_prop, pass_vrp):
3055         Declare.
3056         * tree-phinodes.c (make_phi_node): Update documentation.
3057         (remove_all_phi_nodes_for): Remove.
3058         (find_phi_node_for): New.
3059         * tree-pretty-print.c (dump_generic_node): Handle ASSERT_EXPR.
3060         * tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Likewise.
3061         (interpret_rhs_modify_expr): Likewise.
3062         * tree-sra.c (decide_instantiations): Mark all symbols in
3063         SRA_CANDIDATES for renaming.
3064         (mark_all_v_defs_1): Rename from mark_all_v_defs.
3065         (mark_all_v_defs): New function.  Update all users to call it
3066         with the whole list of scalarized statements, not just the
3067         first one.
3068         * tree-ssa-alias.c (count_ptr_derefs): Make extern.
3069         (compute_flow_insensitive_aliasing): If the tag is
3070         unmodifiable and the variable isn't or vice-versa, don't
3071         make them alias of each other.
3072         (setup_pointers_and_addressables): If the type tag for
3073         VAR is about to change, mark the old one for renaming.
3074         (add_type_alias): New.
3075         * tree-ssa-ccp.c: Document SSA-CCP and STORE-CCP.
3076         (ccp_lattice_t): Rename from latticevalue.
3077         (value): Remove.  Update all users.
3078         (const_val): New local variable.
3079         (do_store_ccp): New local variable.
3080         (dump_lattice_value): Handle UNINITIALIZED.
3081         (debug_lattice_value): New.
3082         (get_default_value): Re-write.
3083         (set_lattice_value): Re-write.
3084         (def_to_varying): Remove.  Update all users.
3085         (likely_value): Return VARYING for statements that make
3086         stores when STORE_CCP is false.
3087         Return VARYING for any statement other than MODIFY_EXPR,
3088         COND_EXPR and SWITCH_EXPR.
3089         (ccp_initialize): Re-write.
3090         (replace_uses_in, replace_vuse_in, substitute_and_fold):
3091         Move to tree-ssa-propagate.c.
3092         (ccp_lattice_meet): Handle memory stores when
3093         DO_STORE_CCP is true.
3094         (ccp_visit_phi_node): Likewise.
3095         (ccp_fold): Likewise.
3096         (evaluate_stmt): Likewise.
3097         (visit_assignment): Likewise.
3098         (ccp_visit_stmt): Likewise.
3099         (execute_ssa_ccp): Add argument 'store_ccp'.  Copy it
3100         into DO_STORE_CCP.
3101         (do_ssa_ccp): New.
3102         (pass_ccp): Use it.
3103         (do_ssa_store_ccp): New.
3104         (gate_store_ccp): New.
3105         (pass_store_ccp): Declare.
3106         * tree-ssa-copy.c: Include tree-ssa-propagate.h.
3107         (may_propagate_copy): Reformat.
3108         Don't abort if ORIG is a virtual and DEST isn't.
3109         If NEW does not have alias information but DEST does,
3110         copy it.
3111         (copy_of, cached_last_copy_of, do_store_copy_prop, enum
3112         copy_prop_kind, which_copy_prop): Declare.
3113         (stmt_may_generate_copy, get_copy_of_val,
3114         get_last_copy_of, set_copy_of_val, dump_copy_of,
3115         copy_prop_visit_assignment, copy_prop_visit_cond_stmt,
3116         copy_prop_visit_stmt, copy_prop_visit_phi_node,
3117         init_copy_prop, fini_copy_prop, execute_copy_prop,
3118         gate_copy_prop, do_copy_prop, gate_store_copy_prop,
3119         store_copy_prop): New.
3120         (pass_copy_prop, pass_store_copy_prop): Declare.
3121         * tree-ssa-dom.c (struct opt_stats_d): Add fields
3122         'num_const_prop' and 'num_copy_prop'.
3123         (cprop_operand): Update them.
3124         (dump_dominator_optimization_stats): Dump them.
3125         (tree_ssa_dominator_optimize): Call update_ssa instead of
3126         rewrite_into_ssa.
3127         (loop_depth_of_name): Declare extern.
3128         (simplify_cond_and_lookup_avail_expr): Guard against NULL
3129         values for LOW or HIGH.
3130         (cprop_into_successor_phis): Only propagate if NEW != ORIG.
3131         (record_equivalences_from_stmt): Call expr_computes_nonzero.
3132         (cprop_operand): Only propagate if VAL != OP.
3133         * tree-ssa-dse.c (dse_optimize_stmt): Mark symbols in removed
3134         statement for renaming.
3135         * tree-ssa-loop-im.c (move_computations): Call update_ssa.
3136         * tree-ssa-loop-ivopts.c (rewrite_address_base): Call
3137         add_type_alias if necessary.
3138         Call mark_new_vars_to_rename.
3139         (tree_ssa_iv_optimize): If new symbols need to be renamed,
3140         mark every statement updated, call update_ssa and
3141         rewrite_into_loop_closed_ssa.
3142         * tree-ssa-loop-manip.c (add_exit_phis): Do not remove DEF_BB
3143         from LIVEIN if VAR is a virtual.
3144         * tree-ssa-loop.c (tree_loop_optimizer_init): Call update_ssa.
3145         * tree-ssa-operands.c (get_expr_operands): Handle ASSERT_EXPR.
3146         (get_call_expr_operands): Reformat statement.
3147         (add_stmt_operand): Don't create V_MAY_DEFs for read-only
3148         symbols.
3149         * tree-ssa-propagate.c (ssa_prop_init): Initialize
3150         SSA_NAME_VALUE for every name.
3151         (first_vdef, stmt_makes_single_load, stmt_makes_single_store,
3152         get_value_loaded_by): New.
3153         (replace_uses_in, replace_vuses_in, replace_phi_args_in,
3154         substitute_and_fold): Move from tree-ssa-ccp.c.
3155         * tree-ssa-propagate.h (struct prop_value_d, prop_value_t,
3156         first_vdef, stmt_makes_single_load, stmt_makes_single_store,
3157         get_value_loaded_by, replace_uses_in, substitute_and_fold):
3158         Declare.
3159         * tree-ssa.c (verify_use): Fix error message.
3160         (propagate_into_addr, replace_immediate_uses, get_eq_name,
3161         check_phi_redundancy, kill_redundant_phi_nodes,
3162         pass_redundant_phi): Remove.  Update all users.
3163         * tree-vect-transform.c (vect_create_data_ref_ptr): Call
3164         add_type_alias, if necessary.
3165         * tree-vectorizer.h (struct _stmt_vect_info): Update
3166         documentation for field 'memtag'.
3167         * tree-vrp.c: New file.
3168         * tree.def (ASSERT_EXPR): Define.
3169         * tree.h (ASSERT_EXPR_VAR): Define.
3170         (ASSERT_EXPR_COND): Define.
3171         (SSA_NAME_VALUE_RANGE): Define.
3172         (struct tree_ssa_name): Add field 'value_range'.
3173         (PHI_REWRITTEN): Remove.
3174         (struct tree_phi_node): Remove field 'rewritten'.
3175         * doc/invoke.texi (-fdump-tree-storeccp, -ftree-copy-prop,
3176         -ftree-store-copy-prop): Document.
3177         * doc/tree-ssa.texi: Remove broken link to McCAT's compiler.
3178         Document usage of update_ssa.
3179
3180 2005-04-08  David Edelsohn  <edelsohn@gnu.org>
3181
3182         PR target/20814
3183         * config/rs6000/predicates.md (altivec_register_operand): Accept
3184         SUBREG.
3185         (and64_operand): Do not limit CONST_INT to mask64_operand.
3186         (and64_2_operand): Do not limit CONST_INT to mask64_1or2_operand.
3187         (and_operand): Do not limit CONST_INT to mask_operand.
3188
3189 2005-04-09  Hans-Peter Nilsson  <hp@axis.com>
3190
3191         PR rtl-optimization/20466
3192         * flow.c (invalidate_mems_from_set): Handle a MEM by checking it
3193         for overlap of the address of each list member.
3194         (mark_set_1): Call invalidate_mems_from_set for MEMs too.
3195
3196 2005-04-08  Mike Stump  <mrs@apple.com>
3197
3198         * config/darwin.c (indirect_data): Fix typo in strncmp logic.
3199
3200         * config/rs6000/rs6000.c (rs6000_emit_prologue): Use 5 nops,
3201         instead of 4.
3202
3203 2005-04-08  Kazu Hirata  <kazu@cs.umass.edu>
3204
3205         * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Remove.
3206
3207         * function.c (push_function_context_to): Don't set
3208         contains_functions.
3209         * function.h (function): Remove contains_functions.
3210         (current_function_contains_functions): Remove.
3211
3212         * function.h (function): Remove instrument_entry_exit.
3213         (current_function_instrument_entry_exit): Remove.
3214
3215         * function.h (nonlocal_labels): Remove.
3216
3217         * tree.h (STRIP_MAIN_TYPE_NOPS): Remove.
3218
3219         * genattrtab.c (attr_desc): Remove negative_ok and unsigned_p.
3220         (check_attr_value, write_attr_get, write_expr_attr_cache,
3221         find_attr, make_internal_attr): Don't reference negative_ok or
3222         unsigned_p.
3223         * genattrtab.h (ATTR_NEGATIVE_OK, ATTR_UNSIGNED,
3224         ATTR_FUNC_UNITS, ATTR_BLOCKAGE): Remove.
3225         (ATTR_STATIC): Adjust the value.
3226
3227         * c-common.h (C_ARTIFICIAL_STRING_P): Remove.
3228
3229 2005-04-08  Ulrich Weigand  <uweigand@de.ibm.com>
3230
3231         * config/s390/tpf.h (ASM_SPEC): Define.
3232
3233 2005-04-08  Kazu Hirata  <kazu@cs.umass.edu>
3234
3235         * tree-flow.h: Remove the prototype for
3236         redirect_immediate_uses.
3237         (TDFA_USE_OPS, TDFA_USE_VOPS): Remove.
3238
3239 2005-04-08  Richard Earnshaw  <richard.earnshaw@arm.com>
3240
3241         * arm.c (arm_const_double_by_parts): New function.
3242         * arm-protos.h (arm_const_double_by_parts): Add prototype.
3243         * arm.md (define_split for 64-bit constants): Add another one.
3244
3245 2005-04-08  Andrew MacLeod  <amacleod@redhat.com>
3246
3247         * tree-ssa-operands.c (correct_use_link): Remove linear scan.
3248
3249 2005-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3250
3251         * system.h: Revert last change.
3252
3253 2005-04-08  Richard Sandiford  <rsandifo@redhat.com>
3254
3255         * config/xtensa/xtensa.h (target_flags, MASK_NO_FUSED_MADD)
3256         (MASK_CONST16, TARGET_NO_FUSED_MADD, TARGET_CONST16)
3257         (TARGET_SWITCHES): Delete.
3258         * config/xtensa/xtensa.c (TARGET_DEFAULT_TARGET_FLAGS): Define.
3259         * config/xtensa/xtensa.md (muladdsf3, mulsubsf3): Check
3260         TARGET_FUSED_MADD instead of !TARGET_NO_FUSED_MADD.
3261         * config/xtensa/xtensa.opt: New file.
3262
3263 2005-04-08  Ben Elliston  <bje@au.ibm.com>
3264
3265         * config/fp-bit.c: Include L_mul_tf in #endif comment.
3266         * config/fp-bit.h: Tidy comments.
3267
3268 2005-04-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3269
3270         * system.h: Poison PARAMS.
3271
3272 2005-04-07  Richard Sandiford  <rsandifo@redhat.com>
3273
3274         * config/vax/vax.h (target_flags, MASK_UNIX_ASM, MASK_VAXC_ALIGNMENT)
3275         (MASK_G_FLOAT, TARGET_UNIX_ASM, TARGET_VAXC_ALIGNMENT, TARGET_G_FLOAT)
3276         (TARGET_SWITCHES): Delete.
3277         * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Override default.
3278         * config/vax/vax.opt: New file.
3279
3280 2005-04-07  Daniel Berlin  <dberlin@dberlin.org>
3281
3282         * tree-ssa-dse.c (dse_optimize_stmt): Fix incorrect comment.
3283
3284 2005-04-07  Ian Lance Taylor  <ian@airs.com>
3285
3286         * config/iq2000/iq2000.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Don't
3287         define.
3288         * config/mips/mips.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Likewise.
3289         * config/sparc/sparc.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE):
3290         Likewise.
3291
3292 2005-04-07  Kazu Hirata  <kazu@cs.umass.edu>
3293
3294         * tree-ssa-sink.c (nearest_common_dominator_of_uses): Consider
3295         all immediate uses in PHI nodes.
3296
3297 2005-04-07  Richard Earnshaw  <richard.earnshaw@arm.com>
3298
3299         * arm.c (arm_const_double_inline_cost): Handle any constant by
3300         using gen_lowpart and gen_highpart_mode.
3301         (note_invalid_constants): All constants in an RTX with a constraint
3302         that permits memory are now pushed to the constant pool.
3303         (output_move_double): Delete code to handle reg to reg and
3304         constant to reg moves.
3305         (const_double_needs_minipool, output_mov_immediate): Delete.
3306         * arm.h (EXTRA_CONSTRAINT_STR_ARM): All 'D' variants now handle
3307         CONST_INT and CONST_VECTOR.
3308         * arm.md (ANY64): New mode macro.
3309         (arm_movdi): Split reg-reg and const-reg moves.  Simplify constraints.
3310         (movdf_soft_insn): Split reg-reg and const-reg moves.
3311         (split patterns for 64-bit constant and register moves): New.
3312         * cirrus.md (cirrus_arm_movdi): Split reg-reg and const-reg moves.
3313         (cirrus_movdf_hard_insn): Likewise.
3314         * fpa.md (movdf_fpa): Likewise.
3315         * iwmmxt.md (iwmmxt_arm_movdi): Likewise.
3316         (movv8qi_internal, movv4hi_internal, movv2si_internal): Fix
3317         constraints.
3318         (movv2si_internal_2): Likewise.
3319         * vfp.md (arm_movdi_vfp): Split reg-reg and const-reg moves.
3320         (movdf_vfp): Likewise.
3321         * arm-protos.h (output_mov_immediate): Delete prototype.
3322
3323 2005-04-07  Joseph S. Myers  <joseph@codesourcery.com>
3324
3325         PR target/20093
3326         * simplify-rtx.c (simplify_unary_operation_1): Check
3327         SUBREG_PROMOTED_UNSIGNED_P (op) > 0 for zero-extension.
3328
3329 2005-04-06  James E Wilson  <wilson@specifixinc.com>
3330
3331         PR target/20717
3332         * cgraphunit.c (record_call_1, case FDESC_EXPR): Handle same as
3333         ADDR_EXPR.
3334
3335 2004-04-06  Richard Sandiford  <rsandifo@redhat.com>
3336
3337         * coverage.h (GCOV_TYPE_NODE): Delete.
3338         * coverage.c (coverage_counter_alloc, tree_coverage_counter_ref)
3339         (build_ctr_info_type): Use get_gcov_type () instead of GCOV_TYPE_NODE.
3340         * tree-profile.c (tree_gen_edge_profiler, tree_gen_interval_profiler)
3341         (tree_gen_pow2_profiler, tree_gen_one_value_profiler): Likewise.
3342         * value-prof.c (tree_divmod_fixed_value_transform): Delete.
3343
3344 2004-04-06  Richard Sandiford  <rsandifo@redhat.com>
3345
3346         PR other/20792
3347         * Makefile.in (gcc.pot): Remove options.c dependency.
3348         * optc-gen.awk: Don't quote help strings with N_().
3349
3350 2005-04-06  James A. Morrison  <phython@gcc.gnu.org>
3351
3352         * c-common.c (handle_malloc_atttribute): Only set DECL_IS_MALLOC if
3353         the function returns a pointer type.
3354
3355 2005-04-06  Daniel Berlin  <dberlin@dberlin.org>
3356
3357         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): New
3358         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): New
3359         * doc/invoke.texi: Documnet salias-max-implicit-fields.
3360         * tree-ssa-alias.c (struct used_part): Add implicit_uses and
3361         explicit_uses members.
3362         (get_or_create_used_part_for): Initialize new fields.
3363         (fieldoff_compare): New function.
3364         (create_overlap_variables_for): Count number of fields, use
3365         heuristic to determine whether to create subvars for vars with
3366         only implicit uses.
3367         Sort the field list by offset and avoid creating duplicate SFT's.
3368
3369 2005-04-06  Richard Sandiford  <rsandifo@redhat.com>
3370
3371         * c.opt (-F): Remove trailing whitespace from help string.
3372         (-finput-charset): Use a tab to separate the switch name and help
3373         string.
3374         * common.opt (-fsched-stalled-insns, -fsched-stalled-insns-dep)
3375         (-ftree-vectorizer-verbose): Likewise.
3376
3377 2005-04-06  Kazu&nbs