OSDN Git Service

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