OSDN Git Service

4da851e1853dba01a720f1b8dfd9a8e10a2f19a3
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2005-04-13  Kazu Hirata  <kazu@cs.umass.edu>
2
3         * basic-block.h, tree-ssa-uncprop.c, varasm.c,
4         config/i386/sse.md: Fix comment typos.
5
6         * genattrtab.c (NULL_ATTR): Remove.
7         * ifcvt.c (NULL_EDGE): Likewise.
8
9         * rtl.h (RTX_EXPR_FIRST, RTX_EXPR_LAST): Remove.
10
11         * rtl.h (NOTE_PREDICTION_ALG, NOTE_PREDICTION_FLAGS,
12         NOTE_PREDICT): Remove.
13
14 2005-04-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
15
16         * configure.ac (gcc_AC_CHECK_DECLS): Add vsnprintf.
17         * configure: Regenerate.
18         * config.in: Likewise.
19         * system.h: Declare vsnprintf if not already declared.
20
21 2005-04-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
22
23         * optc-gen.awk: Handle stand-alone Mask records.
24         * opth-gen.awk: Likewise.
25         * doc/options.texi (Option file format): Document them.
26         * config.gcc (sparc-*-netbsdelf*, sparc-*-linux*, sparc64-*-freebsd*,
27         sparc64-*-linux*, sparc64-*-netbsd*): Add long-double-switch.opt.
28         (sparc64-*-openbsd*, sparc64-*-elf*): Add little-endian.opt.
29         * config/sparc/sparc.h (MASK_FPU, MASK_UNALIGNED_DOUBLES,
30         MASK_V8, MASK_SPARCLITE, MASK_SPARCLET, MASK_V9,
31         MASK_DEPRECATED_V8_INSNS, MASK_IMPURE_TEXT, MASK_APP_REGS,
32         MASK_HARD_QUAD, MASK_LITTLE_ENDIAN, MASK_PTR64, MASK_64BIT,
33         MASK_STACK_BIAS, MASK_FPU_SET, MASK_VIS, MASK_V8PLUS,
34         MASK_FASTER_STRUCTS, MASK_LONG_DOUBLE_128): Delete.
35         (TARGET_FPU, TARGET_UNALIGNED_DOUBLES, TARGET_V8, TARGET_SPARCLITE,
36         TARGET_SPARCLET, TARGET_V9, TARGET_DEPRECATED_V8_INSNS,
37         TARGET_IMPURE_TEXT, TARGET_APP_REGS, MASK_HARD_QUAD,
38         TARGET_LITTLE_ENDIAN, TARGET_PTR64, TARGET_64BIT, MASK_STACK_BIAS,
39         TARGET_FPU_SET, TARGET_VIS, TARGET_V8PLUS, TARGET_FASTER_STRUCTS,
40         TARGET_LONG_DOUBLE_128): Likewise.
41         (TARGET_SWITCHES, SUBTARGET_SWITCHES): Likewise.
42         (TARGET_OPTIONS, SUBTARGET_OPTIONS): Likewise.
43         * config/sparc/freebsd.h (SUBTARGET_SWITCHES): Likewise.
44         * config/sparc/linux.h (SUBTARGET_SWITCHES): Likewise.
45         * config/sparc/linux64.h (SUBTARGET_SWITCHES): Likewise.
46         * config/sparc/netbsd-elf.h (SUBTARGET_SWITCHES): Likewise.
47         * config/sparc/sp64-elf.h (SUBTARGET_SWITCHES): Likewise.
48         * config/sparc/sparc.c (fpu_option_set): New global.
49         (sparc_handle_option): New function.
50         (sparc_override_options): Test fpu_option_set.
51         (TARGET_DEFAULT_TARGET_FLAGS): Set to TARGET_DEFAULT.
52         (TARGET_HANDLE_OPTION): Set to sparc_handle_option.
53         * config/sparc/sparc.opt: New file.
54         * config/sparc/little-endian.opt: Likewise.
55         * config/sparc/long-double-switch.opt: Likewise.
56
57 2005-04-13  Bernd Schmidt  <bernd.schmidt@analog.com>
58
59         * config/bfin/bfin.c (bfin_lib_id_given): New static variable.
60         (bfin_handle_options): Set it if -mshared-library-id= is seen.
61         * config/bfin/bfin.opt (mshared-library-id=): Lose
62         Var(bfin_lib_id_given).
63
64 2005-04-13  Matt Thomas  <matt@3am-software.com>
65  
66         * config/rs6000/sysv4.h (NO_IMPLICIT_EXTERN_C): undefine before
67         defining.
68
69 2005-04-13  Kazu Hirata  <kazu@cs.umass.edu>
70
71         * rtl.h (CLEAR_RTX_FLAGS): Remove.
72
73         * cgraphunit.c (INSNS_PER_CALL): Remove.
74
75         * tree-ssa-forwprop.c (vars,
76         record_single_argument_cond_exprs,
77         substitute_single_use_vars): Remove.
78         (forward_propagate_into_cond_1, forward_propagate_into_cond):
79         New.
80         (tree_ssa_forward_propagate_single_use_vars): Call
81         forward_propagate_into_cond for each COND_EXPR.
82
83         * tree-inline.c (INSNS_PER_STMT): Remove.
84
85 2005-04-12  Richard Henderson  <rth@redhat.com>
86
87         * config/i386/i386.c (ix86_prepare_sse_fp_compare_args): Split ...
88         (ix86_expand_sse_fp_minmax): ... from ... 
89         (ix86_expand_fp_movcc): ... here.
90         (ix86_expand_sse_movcc): Rewrite from ix86_split_sse_movcc.
91         * config/i386/i386-protos.h: Update.
92         * config/i386/i386.md (UNSPEC_IEEE_MIN, UNSPEC_IEEE_MAX): New.
93         (sse_setccsf, sse_setccdf): Allow before reload.
94         (movsfcc_1_sse_min, movsfcc_1_sse_max, movsfcc_1_sse): Remove.
95         (movdfcc_1_sse_min, movdfcc_1_sse_max, movdfcc_1_sse): Remove.
96         (ieee_sminsf3, ieee_smaxsf3, ieee_smindf3, ieee_smaxdf3): New.
97         * config/i386/sse.md (andsf3, nandsf3, iorsf3, xorsf3): New.
98         (anddf3, nanddf3, iordf3, xordf3): New.
99
100 2005-04-12  Jeff Law  <law@redhat.com>
101
102         * Makefile.in (OBJS-common): Add tree-ssa-uncprop.o.
103         (tree-ssa-uncprop.o): Add dependencies.
104         * tree-cfg.c (remove_useless_stmts_bb, remove_useless_stmts): Remove.
105         * tree-flow.h (remove_useless_stmts): Remove prototype.
106         * tree-outof-ssa.c (rewrite_out_of_ssa): Remove call to
107         remove_useless_stmts.
108         * timevar.def (TV_TREE_SSA_UNCPROP): New timevar.
109         * tree-optimize.c (init_tree_optimization_passes): Add uncprop pass.
110         * tree-pass.h (pass_uncprop): Declare.
111         * tree-ssa-uncprop.c: New file.
112
113 2005-04-12  James E. Wilson  <wilson@specifixinc.com>
114
115         PR target/20670
116         * unwind-ia64.c (uw_intall_context): Add missing load of r27.
117
118 2005-04-12  Caroline Tice  <ctice@apple.com>
119
120         Temporary fix for partitioning problems.
121         * passes.c (rest_of_handle_final): Remove code that 
122         frees unlikely_text_section_name,
123         * varasm.c (assemble_start_function): Test for partitioning
124         flag before writing out section labels.
125         (assemble_end_function): Test for partitioning flag before
126         writing out section labels.
127         
128 2005-04-12  Steven Bosscher  <stevenb@suse.de>
129             Stuart Hastings <stuart@apple.com>
130             Jan Hubicka  <jh@suse.cz>
131
132         * Makefile.in: Add function.h to BASIC_BLOCK_H.  Remove all
133         references to gt-tree-cfg.h.
134         * basic-block.h (struct basic_block_def): Don't skip rbi
135         for garbage collection.
136         (struct reorder_block_def): Make GTY-able.
137         (struct control_flow_graph): New structure.
138         (n_edges, n_basic_blocks, last_basic_block, basic_block_info,
139         BASIC_BLOCK, EXIT_BLOCK_PTR, ENTRY_BLOCK_PTR): No longer vars,
140         but instead defines to the control_flow_graph for cfun.
141         (label_to_block_map): New define, points to the label map of
142         the control_flow_graph for cfun.
143         (n_edges_for_function, n_basic_blocks_for_function,
144         last_basic_block_for_function, basic_block_info_for_function,
145         EXIT_BLOCK_PTR_FOR_FUNCTION, ENTRY_BLOCK_PTR_FOR_FUNCTION,
146         basic_block_info_for_function, label_to_block_map_for_function):
147         Counterparts for the above, taking a struct function as an extra
148         argument.
149         (alloc_rbi_pool, free_rbi_pool): Remove prototypes.
150         * cfg.c: (n_edges, n_basic_blocks, last_basic_block,
151         basic_block_info, ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Remove.
152         (alloc_rbi_pool, free_rbi_pool): Remove.
153         (initialize_bb_rbi): Use ggc_alloc_cleared instead of pool_alloc.
154         * cfglayout.c: (cfg_layout_initialize): Don't allocate the rbi pool
155         here...
156         (cfg_layout_finalize) ... and don't free it here.
157         * cfgrtl.c (cfg_layout_delete_block): Zero out rbi so it gets
158         garbage collected.
159         * flow.c (free_basic_block_vars): Set label_to_block_map and
160         n_edges to zero too.
161         * function.h (struct function): Add cfg field.
162         * function.c (allocate_struct_function): Allocate the cfg.
163         * tree-cfg.c (label_to_block_map): Remove.
164         (build_tree_cfg): Don't allocate the rbi pool here...
165         (delete_tree_cfg_annotations): ...and don't free it here.
166         Also don't nullify label_to_block_map for cfun.
167
168 2005-04-12  Caroline Tice  <ctice@apple.com>
169
170         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
171         Revert my patch from April 9.
172         (fix_edges_for_rarely_executed_code): Revert my patch from April 9.
173         (reorder_basic_blocks): Revert my patch from April 9.
174         (insert_section_boundary_note): Revert my patch from April 9.
175         * dbxout.c (dbxout_function_end): Revert my patch from April 9.
176         * dwarf2out.c (COLD_TEXT_SECTION_LABEL): Revert my patch from April 9.
177         (COLD_END_LABEL):  Revert my patch from April 9.
178         (cold_text_section_label):  Revert my patch from April 9.
179         (cold_end_label): Revert my patch from April 9.
180         (dwarf2out_switch_text_section): Revert my patch from April 9.
181         (output_aranges): Revert my patch from April 9.
182         (output_ranges):  Revert my patch from April 9.
183         (output_line_info): Revert my patch from April 9.
184         (add_location_or_const_value_attribute):  Revert my patch from April 9.
185         (dwarf2out_var_location): Revert my patch from April 9.
186         (dwarf2out_init):  Revert my patch from April 9.
187         (dwarf2out_finish): Revert my patch from April 9.
188         * function.h (struct function): Revert my patch from April 9.
189         * opts.c (decode_options): Revert my patch from April 9.
190         * output.h (unlikely_section_label, hot_section_label,
191         hot_section_end_label, cold_section_end_label, 
192         unlikely_text_section_name): Revert my patch from April 9.
193         * passes.c (rest_of_handle_final): Revert my patch from April 9.
194         * varasm.c (unlikely_section_label, hot_section_label,
195         hot_section_end_label, cold_section_end_label,
196         unlikely_text_section_name): Revert my patch from April 9.
197         (initialize_cold_section_name): Revert my patch from April 9.
198         (unlikely_text_section): Revert my patch from April 9.
199         (in_unlikely_text_section): Revert my patch from April 9.
200         (named_section): Revert my patch from April 9.
201         (function_section): Revert my patch from April 9.
202         (current_function_section): Revert my patch from April 9.
203         (assemble_start_function): Revert my patch from April 9.
204         (assemble_end_function): Revert my patch from April 9.
205         (default_section_type_flags_1): Revert my patch from April 9.
206         
207 2005-04-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
208
209         * config/sparc/sparc.h (APPLY_RESULT_SIZE): Set to 24 in 64-bit mode.
210         * config/sparc/sparc.md (untyped_call): Save the registers manually.
211
212         * config/sparc/sparc.c (legitimate_address_p): Use TARGET_ARCH32.
213
214 2005-04-12  Ulrich Weigand  <uweigand@de.ibm.com>
215
216         PR middle-end/20917
217         * config/s390/s390.md ("*set_tp"): Use SET in pattern.
218         ("set_tp_64", "set_tp_31"): Adapt expanded pattern.
219
220 2004-04-12  Richard Henderson  <rth@redhat.com>
221
222         * config/i386/i386.md (UNSPEC_FIX, UNSPEC_MOVA, UNSPEC_SHUFFLE,
223         UNSPEC_PSHUFLW, UNSPEC_PSHUFHW, UNSPEC_ADDSUB, UNSPEC_HADD,
224         UNSPEC_HSUB, UNSPEC_MOVSHDUP, UNSPEC_MOVSLDUP, UNSPEC_MOVDDUP): Remove.
225         (UNSPEC_*, UNSPECV_*): Renumber.
226
227 2005-04-12  Frank Ch. Eigler  <fche@redhat.com>
228
229         PR mudflap/19266
230         From Richard Henderson <rth@redhat.com>:
231         * tree-mudflap.c (mf_build_check_statement_for): Correct block
232         splitting logic.
233
234 2005-04-12  Dorit Naishlos  <dorit@il.ibm.com>
235
236         * tree-cfg.c (tree_verify_flow_info): Use LABEL_EXPR_LABEL.
237
238 2005-04-12  Bernd Schmidt  <bernd.schmidt@analog.com>
239
240         * config/bfin/bfin.c (bfin_library_id_string): Remove.
241         (bfin_library_id): New variable.
242         (bfin_expand_prologue): Use bfin_library_id and bfin_lib_id_given
243         instead of bfin_library_id_string.
244         (bfin_handle_option): New function.
245         (override_options): Remove most code to deal with shared library IDs,
246         just check they aren't used without -mid-shared-library.
247         (TARGET_HANDLE_OPTION): Define.
248         * config/bfin/bfin.h (TARGET_OPTIONS): Delete macro.
249         * config/bfin/bfin.opt (mshared-library-id=): New.
250
251 2005-04-12  Kazu Hirata  <kazu@cs.umass.edu>
252
253         * tree-vect-transform.c: Fix comment typos.
254
255 2005-04-12 Mostafa Hagog <mustafa@il.ibm.com>
256
257         * postreload-gcse.c (eliminate_partially_redundant_load): Don't
258         split critical edges when not possible/profitable.
259
260 2005-04-12  Richard Sandiford  <rsandifo@redhat.com>
261
262         * config/ns32k/ns32k.h (target_flags, MASK_32081, MASK_RTD)
263         (MASK_REGPARM, MASK_32532, MASK_32332, MASK_NO_SB, MASK_NO_BITFIELD)
264         (MASK_HIMEM, MASK_32381, MASK_MULT_ADD, MASK_SRC, MASK_IEEE_COMPARE)
265         (TARGET_32081, TARGET_32381, TARGET_MULT_ADD, TARGET_RTD)
266         (TARGET_REGPARM, TARGET_32532, TARGET_32332, TARGET_SB, TARGET_HIMEM)
267         (TARGET_BITFIELD, TARGET_IEEE_COMPARE, TARGET_SWITCHES): Delete.
268         (OVERRIDE_OPTIONS): Clear MASK_SB instead of setting MASK_NO_SB.
269         * config/ns32k/netbsd.h (TARGET_DEFAULT): Remove MASK_NO_SB and
270         MASK_NO_BITFIELD.
271         * config/ns32k/ns32k.c (ns32k_handle_option): New function.
272         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
273         * config/ns32k/ns32k.opt: New file.
274
275 2005-04-12  Richard Sandiford  <rsandifo@redhat.com>
276
277         * config.gcc (m68k-*-linux*): Add m68k/ieee.opt to $extra_options.
278         * config/m68k/m68k.h (target_flags, MASK_68020, TARGET_68020)
279         (MASK_68030, TARGET_68030, MASK_68040, TARGET_68040, MASK_68040_ONLY)
280         (TARGET_68040_ONLY, MASK_68060, TARGET_68060, MASK_5200, TARGET_5200)
281         (MASK_CFV3, TARGET_CFV3, MASK_CFV4, TARGET_CFV4, MASK_528x)
282         (TARGET_528x, MASK_CF_HWDIV, TARGET_CF_HWDIV, MASK_68881, TARGET_68881)
283         (MASK_BITFIELD, TARGET_BITFIELD, MASK_SHORT, TARGET_SHORT)
284         (MASK_ALIGN_INT, TARGET_ALIGN_INT, MASK_PCREL, TARGET_PCREL)
285         (MASK_NO_STRICT_ALIGNMENT, TARGET_STRICT_ALIGNMENT, MASK_RTD)
286         (TARGET_RTD, MASK_SEP_DATA, TARGET_SEP_DATA, MASK_ID_SHARED_LIBRARY)
287         (TARGET_ID_SHARED_LIBRARY, MASK_ALL_CF_BITS, TARGET_SWITCHES)
288         (TARGET_OPTIONS, SUBTARGET_SWITCHES, SUBTARGET_OPTIONS): Delete.
289         (MASK_COLDFIRE): Formatting fixes.
290         (TARGET_COLDFIRE): Turn into a boolean value for consistency.
291         * config/m68k/linux.h (SUBTARGET_SWITCHES): Delete.
292         * config/m68k/m68k.c (m68k_library_id_string): Initialize to
293         "_current_shared_library_a5_offset_".
294         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
295         (MASK_ALL_CPU_BITS): New macro.
296         (m68k_handle_option): New function.
297         (override_options): Remove handling of m68k_library_id_string.
298         * config/m68k/m68k.opt: New file.
299         * config/m68k/ieee.opt: New file.
300
301 2005-04-11  Mark Mitchell  <mark@codesourcery.com>
302
303         * target-def.h (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
304         (TARGET_CXX_DETERMINE_CLASS_VISIBILITY): New macro.
305         (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
306         (TARGET_CXX): Adjust accordingly.
307         * target.h (struct gcc_target): Remove epxort_class_data.  Add
308         determine_class_data_visibility and class_data_always_comdat.
309         * doc/tm.texi (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
310         (TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY): Document.
311         (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
312         * config/arm/arm.c (arm_cxx_export_class_data): Remove.
313         (arm_cxx_determine_class_data_visibility): New.
314         (arm_cxx_class_data_always_comdat): Likewise.
315         (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
316         (TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY): Define.
317         (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
318         * config/arm/arm.h (TARGET_ARM_DYNAMIC_VAGUE_LINKAGE_P): Define.
319         * config/arm/symbian.h (TARGET_ARM_DYNAMIC_VAGUE_LINKAGE_P):
320         Define.
321
322 2005-04-11  Devang Patel  <dpatel@apple.com>
323
324         * tree-data-ref.c (build_classic_dist_vector,
325         compute_subscript_distance): Make externally visible.
326         * tree-data-ref.h (build_classic_dist_vector,
327         compute_subscript_distance): Same.
328         * tree-vect-analyze.c (vect_analyze_data_ref_dependence):
329         Check distance vector against vectorization factor.
330         (vect_analyze_loop): Determine vectorizaion factor before
331         analyzing data dependences.
332         * tree-vectorizer.c (loops_num): Make it externally visible and
333         rename ...
334         * tree-vectorizer.c (vect_loops_num): ... new name.
335         * tree-vectorizer.h  (vect_loops_num): New.
336
337 2005-04-11  Devang Patel  <dpatel@apple.com>
338
339         * tree-vect-analyze.c (vect_analyze_operations): Check
340         vectorizable codition.
341         * tree-vect-transform.c (vect_is_simple_cond): New function.
342         (vectorizable_condition): New function.
343         (vect_transform_stmt): Handle condition_vec_info_type.
344         * tree-vectorizer.h (enum stmt_vec_info_type): Add
345         condition_vec_info_type.
346         (vectorizable_condition): New.
347         
348 2005-04-11  Geoffrey Keating  <geoffk@apple.com>
349
350         * config/i386/i386.h (TARGET_FPMATH_DEFAULT): New.
351         * config/i386/darwin.h (TARGET_FPMATH_DEFAULT): New.
352         * config/i386/i386.c (override_options): Use TARGET_FPMATH_DEFAULT.
353
354         * config/i386/darwin.h (ASM_SPEC): Use -arch i386 not -arch i686.
355         (SUBTARGET_EXTRA_SPECS): Always 'i386'.
356
357         * dwarf2out.c (output_line_info): Don't try to dereference
358         a NULL current_function_decl.
359
360         * config/t-slibgcc-darwin: Don't put shared libraries in
361         directories other than $(slibdir).
362         * config/rs6000/darwin.h: Find -m64 libgcc under the name the
363         OS uses for it.
364
365 2005-04-11  Diego Novillo  <dnovillo@redhat.com>
366
367         PR tree-optimization/20933
368         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Move
369         logic to reject aliases between read-only and writable
370         variables ...
371         (may_alias_p): ... here.
372         (get_tmt_for): Do not associate read-only tags to pointers
373         whose pointed-to type is not read-only.
374         * tree-ssa.c (verify_ssa): Check that memory stores have at
375         least one V_MAY_DEF or V_MUST_DEF.
376
377 2005-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
378
379         PR/17092
380         * configure.ac (gcc_UNLOCKED_FUNCS): New.
381         (AC_CHECK_FUNCS, AC_CHECK_DECLS): Check for gcc_UNLOCKED_FUNCS.
382         * system.h (putchar, getc, getchar, clearerr, feof, fileno,
383         fflush, fgetc, fgets, ferror, fread): Redefine to the associated
384         _unlocked function.
385         (fwrite_unlocked): Fix prototype.
386         
387         * configure, config.in: Regenerate.
388
389 2005-04-11  David Edelsohn  <edelsohn@gnu.org>
390
391         * tree-ssa-loop-im.c: Include real.h.
392         (determine_invariantness_stmt): If real division divisor is
393         invariant and flag_unsafe_math_optimizations enabled, generate
394         invariant reciprocal for hoisting.
395         * Makefile.in (tree-ssa-loop-im.o): Add real.h dependency.
396
397 2005-04-11  Daniel Berlin  <dberlin@dberlin.org>
398
399         Fix PR tree-optimization/20926
400         
401         * tree-ssa-alias.c (add_type_alias): Handle subvars.
402         
403 2005-04-11  Devang Patel  <dpatel@apple.com>
404
405         * config/rs6000.c (rs6000_emit_vector_select): Fix vector select
406         operand ordering.
407         
408 2005-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
409
410         * fold-const.c (fold_binary_op_with_conditional_arg):
411         use fold_buildN instead of "fold (buildN" in some
412         non obvious places.
413         (fold_unary): Likewise.
414         (fold_binary): Likewise.
415
416 2005-04-11  Daniel Berlin  <dberlin@dberlin.org>
417         
418         Fix PR tree-optimization/20612
419         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Fix increment
420         handling
421         (perfect_nestify): preheaderbb is *not* part of loop of the
422         old destination.
423
424 2005-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
425
426         * tree-ssa-alias.c (may_alias_p): If the variable
427         is a global variable and the pointer is parameter
428         and -fargument-noalias-global is used, then
429         the pointer cannot alias the variable.
430
431 2005-04-11  James A. Morrison  <phython@gcc.gnu.org>
432
433         * config/sparc/sparc.c: Use gcc_assert and gcc_unreachable.
434         * config/sparc/sparc.h: Likewise.
435         * config/sparc/sparc.md: Likewise.
436
437 2005-04-11  Kazu Hirata  <kazu@cs.umass.edu>
438
439         * tree-vrp.c (maybe_add_assert_expr): Move a comment.
440
441         * tree-vrp.c: Fix a comment typo.
442
443 2005-04-11  Diego Novillo  <dnovillo@redhat.com>
444
445         PR tree-optimization/20920
446         * tree-pretty-print.c (dump_generic_node): Show '(ab)' if an
447         SSA_NAME flows through an abnormal edge.
448         * tree-vrp.c (infer_value_range): Ignore SSA names that flow
449         through abnormal edges.
450         (maybe_add_assert_expr): Likewise.
451
452 2005-04-11  Richard Sandiford  <rsandifo@redhat.com>
453
454         * config/s390/s390.h (s390_tune_string, s390_arch_string)
455         (s390_warn_framesize_string, s390_warn_dynamicstack_string)
456         (s390_stack_size_string, s390_stack_guard_string, target_flags)
457         (MASK_HARD_FLOAT, MASK_SMALL_EXEC, MASK_DEBUG_ARG, MASK_64BIT)
458         (MASK_ZARCH, MASK_MVCLE, MASK_TPF_PROFILING, MASK_NO_FUSED_MADD)
459         (MASK_BACKCHAIN, MASK_PACKED_STACK, TARGET_HARD_FLOAT)
460         (TARGET_SOFT_FLOAT, TARGET_SMALL_EXEC, TARGET_DEBUG_ARG)
461         (TARGET_64BIT, TARGET_ZARCH, TARGET_MVCLE, TARGET_TPF_PROFILING)
462         (TARGET_NO_FUSED_MADD, TARGET_FUSED_MADD, TARGET_BACKCHAIN)
463         (TARGET_PACKED_STACK, TARGET_SWITCHES, TARGET_OPTIONS): Delete.
464         * config/s390/s390.c (TARGET_DEFAULT_TARGET_FLAGS): Override default.
465         (TARGET_HANDLE_OPTION): Likewise.
466         (s390_tune): Initialize to PROCESSOR_max.
467         (s390_arch_string): Make static.
468         (s390_tune_string, s390_warn_framesize_string): Delete.
469         (s390_warn_dynamicstack_string, s390_stack_size_string): Delete.
470         (s390_stack_guard_string, s390_warn_dynamicstack_p): Delete.
471         (s390_handle_arch_option, s390_handle_option): New functions.
472         (override_options): Remove parsing of option strings.
473         * config/s390/s390.opt: New file.
474
475 2005-04-11  Paolo Bonzini  <bonzini@gnu.org>
476
477         * tree-complex.c (expand_vector_operations): Call
478         update_stmt_if_modified.
479
480 2005-04-11  Paolo Bonzini  <bonzini@gnu.org>
481
482         * tree-vect-analyze (vect_determine_vectorization_factor):
483         Do not use GET_MODE_NUNITS.
484         * tree-vect-transform.c (vect_get_vec_def_for_operand,
485         (vectorizable_load, vect_transform_loop): Likewise.
486
487 2005-04-11  Uros Bizjak  <uros@kss-loka.si>
488
489         * builtins.def (BUILT_IN_LCEIL, BUILT_IN_LCEILF, BUILT_IN_LCEILL)
490         (BUILT_IN_LLCEIL, BUILT_IN_LLCEILF, BUILT_IN_LLCEILL): New.
491         * optabs.h (enum optab_index): Add new OTI_lceil.
492         (lceil_optab): Define corresponding macro.
493         * optabs.c (init_optabs): Initialize lceil_optab.
494         * genopinit.c (optabs): Implement lceil_optab using lceilsi2
495         and lceildi2 patterns.
496         * builtins.c (expand_builtin_int_roundingfn): Handle
497         BUILT_IN_LCEIL{,F,L} and BUILT_IN_LLCEIL{,F,L}.
498         (fold_builtin_int_roundingfn): Handle BUILT_IN_LCEIL{,F,L} and
499         BUILT_IN_LLCEIL{,F,L}.
500         (fold_builtin_1): Fold BUILT_IN_LCEIL{,F,L} and
501         BUILT_IN_LLCEIL{,F,L} using fold_builtin_int_roundingfn.
502         (mathfn_built_in): Handle BUILT_IN LCEIL and BUILT_IN_LLCEIL.
503         (expand_builtin): Expand BUILT_IN_LCEIL{,F,L} and
504         BUILT_IN_LLCEIL{,F,L} using expand_builtin_int_roundingfn.
505         * convert.c (convert_to_integer): Convert (long int)ceil{,f,l},
506         into lceil built-in function and (long long int)ceil{,f,l} into
507         llceil built-in function.
508         * fold-const.c (tree_expr_nonnegative_p): Add BUILT_IN_LCEIL and
509         BUILT_IN_LLCEIL.
510
511 2005-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
512
513         * pa/quadlib.c (_U_Qfneg): Toggle sign bit instead of subtracting from
514         zero.
515
516 2005-04-10  Kazu Hirata  <kazu@cs.umass.edu>
517
518         * config/arm/arm.c: Fix a comment typo.
519         * doc/tree-ssa.texi: Fix a typo.
520
521 2005-04-10  Steven Bosscher  <stevenb@suse.de>
522
523         * cselib.c (clear_table): Rename to cselib_clear_table.
524         * cselib.h (cselib_clear_table): Add prototype.
525         * gcse.c (gcse_main): Make 'f' argument unused.
526         (alloc_gcse_mem): Do not walk the insn chain, walk the contents
527         of each basic block instead.
528         (compute_sets, compute_hash_table_work): Likewise.
529         (constprop_register): Change int 'alter_jumps' argument to bool.
530         (do_local_cprop): Likewise.
531         (local_cprop_pass): Likewise.  Also walk basic blocks instead of
532         the insn chain.  Explicitly clear the cselib tables after finishing
533         one basic block.  Make sure there are no unterminated libcall blocks.
534         Update compute_sets call.
535         (cprop): Walk basic blocks instead of the insn chain.
536         (one_cprop_pass, compute_ld_motion_mems, compute_store_table):
537         Likewise.
538         (bypass_jumps): Update alloc_gcse_mem, compute_sets, and
539         one_cprop_pass calls.
540
541 2005-04-10  Richard Sandiford  <rsandifo@redhat.com>
542
543         * combine.c (combine_simplify_rtx): Remove a transformation that
544         relies on an invalid assumption about rtl sign-extension semantics.
545
546 2005-04-10  Richard Sandiford  <rsandifo@redhat.com>
547
548         * value-prof.c (tree_divmod_fixed_value_transform): Fix arguments
549         to build_int_cst_wide.
550
551 2005-04-09  Alexandre Oliva  <aoliva@redhat.com>
552
553         PR target/20126
554         * loop.c (loop_givs_rescan): If replacement of DEST_ADDR failed,
555         set the original address pseudo to the correct value before the
556         original insn, if possible, and leave the insn alone, otherwise
557         create a new pseudo, set it and replace it in the insn.
558         * recog.c (validate_change_maybe_volatile): New.
559         * recog.h (validate_change_maybe_volatile): Declare.
560
561 2005-04-09  Caroline Tice  <ctice@apple.com>
562
563         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
564         Remove targetm.have_named_sections test.
565         (fix_edges_for_rarely_executed_code): Likewise.
566         (insert_section_boundary_note): Likewise.
567         (reorder_basic_blocks): Check partitioning flag before calling
568         verify_hot_cold_block_grouping.
569         * dbxout.c (dbxout_function_end): Get hot/cold section labels from
570         the function struct rather than global variables.
571         * dwarf2out.c (COLD_TEXT_SECTION_LABEL): New macro.
572         (COLD_END_LABEL): Likewise
573         (cold_text_section_label): New static global variable.
574         (cold_end_label): Likewise.
575         (dwarf2out_switch_text_section): Get hot/cold section labels from
576         the function struct rather than global variables.
577         (output_aranges): Use cold_text_section_label and cold_end_label;
578         check partitioning flag before putting out delta.
579         (output_ranges): Remove incorrect code attempting to use
580         hot/cold labels.
581         (output_line_info): Get cold section label from function struct.
582         (add_location_or_const_value_attribute): Likewise.
583         (get_subprogram_die): Get hot/cold section labels from function struct.
584         (dwarf2out_var_location): Likewise.
585         (dwarf2out_init): Generate cold_text_section_label and cold_end_label;
586         write out cold_text_section_label if partition flag is set.
587         (dwarf2out_finish): Write out cold_end_label if partition flag is set;
588         * function.h (struct function): Add new fields to point to hot/cold
589         section labels: hot_section_label, cold_section_label,
590         hot_section_end_label and cold_section_end_label; also add new field
591         for cold text section name, unlikely_text_section_name.
592         * opts.c (decode_options): Turn off partitioning flag if
593         !targetm.have_named_sections.
594         * output.h (hot_section_label): Remove.
595         (hot_section_end_label): Remove.
596         (cold_section_end_label): Remove.
597         (unlikely_section_label): Remove.
598         (unlikely_text_section_name): Remove.
599         * passes.c (rest_of_handle_final):  Remove code that frees
600         unlikely_text_section_name.
601         * varasm.c (unlikely_section_label): Remove.
602         (hot_section_label): Remove.
603         (hot_section_end_label): Remove.
604         (cold_section_end_label): Remove.
605         (unlikely_text_section_name):  Remove.
606         (initialize_cold_section_name): Modify to call
607         targetm.strip_name_encoding; to store cold section name in current
608         function struct, if it exists; and to only use the decl_section_name
609         if flag_named_sections is true.
610         (unlikely_text_section): Modify to get section name out of current
611         function struct, if there is one; otherwise build it from
612         UNLIKELY_EXECUTED_TEXT_SECTION_NAME.
613         (in_unlikely_text_section): Likewise.
614         (named_section): Modify to get/put cold section name in current function
615         struct, if there is one.
616         (function_section):  Change 'bool unlikely' to 'int reloc'; check
617         targetm.have_named_sections before calling named_section.
618         (current_function_section): Likewise.
619         (assemble_start_function): Modify to get/put unlikely_text_section_name
620         in current function struct; modify to get hot/cold section labels
621         from function struct; initialize labels using 
622         ASM_GENERATE_INTERNAL_LABEL;
623         test partitioning flag before writing out hot section label.
624         (assemble_end_function): Test partitioning flag before writing out
625         hot/cold section labels.
626         (default_section_type_flags_1):  Modify to use array instead of
627          char* for unlikely_text_section_name; set flags correctly for
628          cold text section if there is not a current function decl.
629
630 2005-04-09  Jakub Jelinek  <jakub@redhat.com>
631
632         * tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD
633         and TI_VA_LIST_FPR_COUNTER_FIELD.
634         (va_list_gpr_counter_field, va_list_fpr_counter_field): Define.
635         * tree-pass.h (pass_stdarg): Add.
636         * tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg.
637         * tree-stdarg.c: New file.
638         * tree-stdarg.h: New file.
639         * Makefile.in (OBJS-common): Add tree-stdarg.o.
640         (tree-stdarg.o): Add dependencies.
641         * function.h (struct function): Add va_list_gpr_size and
642         va_list_fpr_size fields.
643         * function.c (allocate_struct_function): Initialize them.
644         * target.h (struct gcc_target): Add stdarg_optimize_hook.
645         * target-def.h (TARGET_STDARG_OPTIMIZE_HOOK): Define.
646         (TARGET_INITIALIZER): Add it.
647
648         * config/i386/i386.c (ix86_build_builtin_va_list): Initialize
649         va_list_{g,f}pr_counter_field.
650         (ix86_setup_incoming_varargs): Don't do anything if reg_save
651         area will not be used.  Only save registers that tree-stdarg.c
652         detected they need saving.
653         (ix86_va_start): Don't set up fields that won't be used.
654
655         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize
656         va_list_{g,f}pr_counter_field.
657         (setup_incoming_varargs): Don't do anything if reg_save
658         area will not be used.  Only save registers that tree-stdarg.c
659         detected they need saving.
660         (rs6000_va_start): Don't set up fields that won't be used.
661
662         * config/alpha/alpha.c: Include tree-flow.h and tree-stdarg.h.
663         (alpha_build_builtin_va_list): Initialize va_list_gpr_counter_field.
664         (va_list_skip_additions, alpha_stdarg_optimize_hook): New functions.
665         (TARGET_STDARG_OPTIMIZE_HOOK): Define.
666
667 2005-04-09  Jakub Jelinek  <jakub@redhat.com>
668
669         PR target/20795
670         * config/i386/i386.c (construct_container): Pass empty aligned
671         struct, union or class in memory.
672
673 2005-04-09  Kazu Hirata  <kazu@cs.umass.edu>
674
675         * dominance.c, gthr-win32.h, reg-stack.c, tree-ssa-copy.c,
676         tree-ssa-operands.c, tree-ssa.c, tree-vrp.c, varasm.c,
677         config/alpha/alpha.c, config/arm/arm.c, config/m32r/m32r.h,
678         config/rs6000/predicates.md: Fix comment typos.
679
680         * sched-int.h (haifa_insn_data): Remove blockage and units.
681         (INSN_UNIT, INSN_BLOCKAGE, UNIT_BITS, BLOCKAGE_MASK,
682         ENCODE_BLOCKAGE, UNIT_BLOCKED, BLOCKAGE_RANGE,
683         MIN_BLOCKAGE_COST, MAX_BLOCKAGE_COST): Remove.
684
685 2005-04-09  Jan Hubicka  <jh@suse.cz>
686             Steven Bosscher  <stevenb@suse.de>
687
688         * cfglayout.c (copy_bbs): Rename n_edges to num_edges.
689         * cfgloop.c (get_loop_exit_edges): Likewise.
690         * cfgloopmanip.c (fix_irreducible_loops): Likewise.
691         (unloop): Likewise.
692         * loop-unroll.c (analyze_insns_in_loop): Likewise.
693         * tree-cfg.c (dump_cfg_status): Likewise.
694
695 2005-04-09  David Edelsohn  <edelsohn@gnu.org>
696
697         * config/rs6000/predicates.md (altivec_register_operand): Remove
698         redundant match_code test.
699         (gpc_reg_operand): Same.
700         (cc_reg_operand): Same.
701         (cc_reg_not_cr0_operand): Same.
702
703 2005-04-09  Jan Hubicka  <jh@suse.cz>
704
705         Forgotten hunk from my last merge patch:
706         * final.c (output_addr_const): Do not call mark_referenced.
707
708 2005-04-09  Andrew MacLeod  <amacleod@redhat.com>
709
710         * doc/tree-ssa.texi: Add immediate use documentation.
711
712 2005-04-09  Richard Earnshaw <richard.earnshaw@arm.com>
713
714         * arm.c (FL_WBUF): Define.
715         (arm_tune_strongarm): Renamed from arm_is_strong.  All uses changed.
716         (arm_is_6_or_7): Delete.
717         (arm_tune_wbuf): New.
718         (arm_override_options): Set arm_tune_wbuf.
719         * arm.h (arm_tune_strongarm): Renamed from arm_is_strong.
720         (arm_is_6_or_7): Delete declaration.
721         (arm_tune_wbuf): New declartion.
722         * arm.md (is_strongarm): Derive from arm_tune_strongarm.
723         (model_wbuf): Derive from arm_tune_wbuf.
724         * arm-cores.def (arm600, arm610, arm620, arm700, arm700i, arm710)
725         (arm720, arm710c, arm7100, arm7500, arm7500fe, arm710t, arm720t)
726         (arm740t): Mark CPUs as having a write buffer.
727
728 2005-04-09  Uros Bizjak  <uros@kss-loka.si>
729
730         * config/i386/i386.md (*fp_jcc_7_387): Use 'const0_operand' instead
731         of 'const_double_operand' in operand 2 constraints.  Update enable
732         condition.
733
734 2005-04-09  Uros Bizjak  <uros@kss-loka.si>
735
736         * builtins.def (BUILT_IN_LFLOOR, BUILT_IN_LFLOORF, BUILT_IN_LFLOORL)
737         (BUILT_IN_LLFLOOR, BUILT_IN_LLFLOORF, BUILT_IN_LLFLOORL): New.
738         * optabs.h (enum optab_index): Add new OTI_lfloor.
739         (lfloor_optab): Define corresponding macro.
740         * optabs.c (init_optabs): Initialize lfloor_optab.
741         * genopinit.c (optabs): Implement lfloor_optab using lfloorsi2
742         and lfloordi2 patterns.
743         * builtins.c (expand_builtin_int_roundingfn): New prototype.
744         (expand_builtin_int_roundingfn): New function.
745         (fold_builtin_int_roundingfn): New prototype.
746         (fold_builtin_int_roundingfn): New function, renamed from
747         fold_builtin_lround.
748         Handle BUILT_IN_LROUND{,F,L}, BUILT_IN_LLROUND{,F,L} and
749         BUILT_IN_LFLOOR{,F,L}, BUILT_IN_LLFLOOR{,F,L}.
750         (fold_builtin_1): Fold BUILT_IN_LFLOOR{,F,L} and
751         BUILT_IN_LLFLOOR{,F,L} using fold_builtin_int_roundingfn.
752         (mathfn_built_in): Handle BUILT_IN LFLOOR and BUILT_IN_LLFLOOR.
753         (expand_builtin): Expand BUILT_IN_LFLOOR{,F,L} and
754         BUILT_IN_LLFLOOR{,F,L} using expand_builtin_int_roundingfn.
755         * convert.c (convert_to_integer): Convert (long int)floor{,f,l},
756         into lfloor built-in function and (long long int)floor{,f,l} into
757         llfloor built-in function.
758         * fold-const.c (tree_expr_nonnegative_p): Add BUILT_IN_LFLOOR and
759         BUILT_IN_LLFLOOR.
760
761 2005-04-08  Ian Lance Taylor  <ian@airs.com>
762
763         * c-common.def: Move FOR_STMT, WHILE_STMT, DO_STMT, BREAK_STMT,
764         CONTINUE_STMT, and SWITCH_STMT to cp/cp-tree.def.
765         * c-common.h (WHILE_COND, WHILE_BODY): Move to cp/cp-tree.h.
766         (DO_COND, DO_BODY): Likewise.
767         (FOR_INIT_STMT, FOR_COND, FOR_EXPR, FOR_BODY): Likewise.
768         (SWITCH_STMT_COND, SWITCH_STMT_BODY, SWITCH_STMT_TYPE): Likewise.
769         (c_common_stmt_codes): Remove FOR_STMT, WHILE_STMT, DO_STMT,
770         BREAK_STMT, CONTINUE_STMT, and SWITCH_STMT.
771         (build_continue_stmt, build_break_stmt): Don't declare.
772         (c_do_switch_warnings): Update declaration.
773         * c-gimplify.c (enum bc_t): Remove.
774         (struct c_gimplify_ctx, ctxp): Remove.
775         (push_context, pop_context): Remove static functions.
776         (c_genericize): Don't call push_context or pop_context.
777         (begin_bc_block, finish_bc_block): Remove static functions.
778         (build_bc_goto): Likewise.
779         (gimplify_c_loop): Likewise.
780         (gimplify_for_stmt, gimplify_while_stmt): Likewise.
781         (gimplify_do_stmt, gimplify_switch_stmt): Likewise.
782         (c_gimplify_expr): Remove handling of FOR_STMT, WHILE_STMT,
783         DO_STMT, SWITCH_STMT, CONTINUE_STMT, BREAK_STMT.
784         * c-common.c (c_do_switch_warnings): Rename from
785         c_do_switch_warnings_1.
786         (c_do_switch_warnings) [old version]: Remove.
787         (c_do_switch_expr_warnings): Remove.
788         * c-typeck.c (c_finish_case): Call new c_do_switch_warnings
789         function instead of c_do_switch_expr_warnings.
790         * c-dump.c (c_dump_tree): Remove handling of BREAK_STMT,
791         CONTINUE_STMT, DO_STMT, FOR_STMT, SWITCH_STMT, and WHILE_STMT.
792         * c-pretty-print.c (pp_c_statement): Likewise.
793         * c-semantics.c (build_break_stmt, build_continue_stmt): Remove.
794
795 2005-04-08  Devang Patel  <dpatel@apple.com>
796
797         * tree-if-conv.c (find_phi_replacement_condition): New parameter, loop.
798         While selecting replacement condition pay attention to loop header.
799
800 2005-04-08  Diego Novillo  <dnovillo@redhat.com>
801
802         Merge from tree-cleanup-branch: VRP, store CCP, store
803             copy-prop, incremental SSA updating of FUD chains and
804             newly exposed symbols.
805
806         * Makefile.in (tree-ssa-copy.o): Depend on tree-ssa-propagate.h.
807         (OBJS-common): Add tree-vrp.o.
808         (tree-vrp.o): New rule.
809         * basic-block.h (nearest_common_dominator_for_set): Declare.
810         * common.opt (ftree-store-ccp): New flag.
811         (ftree-copy-prop): New flag.
812         (ftree-vrp): New flag.
813         (ftree-store-copy-prop): New flag.
814         * dominance.c (nearest_common_dominator_for_set): New.
815         * domwalk.c (walk_dominator_tree): Only traverse
816         statements in blocks marked in walk_data->interesting_blocks.
817         * domwalk.h (struct dom_walk_data): Add field interesting_blocks.
818         * fold-const.c (fold): Handle ASSERT_EXPR.
819         * opts.c (decode_options): Set flag_tree_copy_prop at -O1.
820         Set flag_tree_store_ccp, flag_tree_store_copy_prop and
821         flag_tree_vrp at -O2.
822         * timevar.def (TV_TREE_VRP): Define.
823         (TV_TREE_COPY_PROP): Define.
824         (TV_TREE_STORE_COPY_PROP): Define.
825         (TV_TREE_SSA_INCREMENTAL): Define.
826         (TV_TREE_STORE_CCP): Define.
827         * tree-cfg.c (tree_can_merge_blocks_p): Remove reference
828         to kill_redundant_phi_nodes from comment.
829         (verify_expr): Handle ASSERT_EXPR.
830         * tree-dfa.c (mark_new_vars_to_rename): Remove second
831         argument.  Update all users.
832         (mark_call_clobbered_vars_to_rename): Remove.  Update all
833         users.
834         * tree-flow-inline.h (unmodifiable_var_p): New.
835         * tree-flow.h (enum value_range_type): Declare.
836         (struct value_range_def): Declare.
837         (value_range): Declare.
838         (remove_all_phi_nodes_for): Remove.  Update all users.
839         (find_phi_node_for): Declare.
840         (add_type_alias): Declare.
841         (count_uses_and_derefs): Declare.
842         (kill_redundant_phi_nodes): Remove.
843         (rewrite_into_ssa): Remove.
844         (rewrite_def_def_chains): Remove.
845         (update_ssa, register_new_name_mapping, create_new_def_for,
846         need_ssa_update_p, name_registered_for_update_p,
847         release_ssa_name_after_update_ssa, dump_repl_tbl,
848         debug_repl_tbl, dump_names_replaced_by,
849         debug_names_replaced_by, mark_sym_for_renaming,
850         mark_set_for_renaming, get_current_def, set_current_def,
851         get_value_range, dump_value_range, debug_value_range,
852         dump_all_value_ranges, debug_all_value_ranges,
853         expr_computes_nonzero, loop_depth_of_name,
854         unmodifiable_var_p): Declare.
855         * tree-gimple.c (is_gimple_formal_tmp_rhs): Handle
856         ASSERT_EXPR.
857         * tree-into-ssa.c (block_defs_stack): Update comment.
858         (old_ssa_names, new_ssa_names, old_virtual_ssa_names,
859         syms_to_rename, names_to_release, repl_tbl,
860         need_to_initialize_update_ssa_p, need_to_update_vops_p,
861         need_to_replace_names_p): New locals.
862         (NAME_SETS_GROWTH_FACTOR): Define.
863         (struct repl_map_d): Declare.
864         (struct mark_def_sites_global_data): Add field
865         interesting_blocks.
866         (enum rewrite_mode): Declare.
867         (REGISTER_DEFS_IN_THIS_STMT): Define.
868         (compute_global_livein): Use last_basic_block instead of
869         n_basic_blocks.
870         (set_def_block): Remove last argument.  Update all callers.
871         (prepare_use_operand_for_rename): Remove.  Update all callers.
872         (prepare_def_operand_for_rename): Remove.  Update all callers.
873         (symbol_marked_for_renaming): New.
874         (is_old_name): New.
875         (is_new_name): New.
876         (repl_map_hash): New.
877         (repl_map_eq): New.
878         (repl_map_free): New.
879         (names_replaced_by): New.
880         (add_to_repl_tbl): New.
881         (add_new_name_mapping): New.
882         (mark_def_sites): Assume that all the operands in the
883         statement are in normal form.
884         (find_idf): Assert that the block in the stack is valid.
885         (get_default_def_for): New.
886         (insert_phi_nodes_for): Add new argument 'update_p'.
887         Add documentation.
888         If update_p is true, add a new mapping between the LHS of
889         each new PHI and the name that it replaces.
890         (insert_phi_nodes_1): Only call find_idf if needed.
891         (get_reaching_def): Call get_default_def_for.
892         (rewrite_operand): Remove.
893         (rewrite_stmt): Do nothing if REGISTER_DEFS_IN_THIS_STMT
894         and REWRITE_THIS_STMT are false.
895         Assume that all the operands in the statement are in
896         normal form.
897         (rewrite_add_phi_arguments): Don't use PHI_REWRITTEN.
898         (rewrite_virtual_phi_arguments): Remove.
899         (invalidate_name_tags): Remove.
900         (register_new_update_single, register_new_update_set,
901         rewrite_update_init_block, replace_use,
902         rewrite_update_fini_block, rewrite_update_stmt,
903         rewrite_update_phi_arguments): New.
904         rewrite_blocks): Remove argument 'fix_virtual_phis'.
905         Add arguments 'entry', 'what' and 'blocks'.
906         Initialize the dominator walker according to 'what' and
907         'blocks'.
908         Start the dominator walk at 'entry'.
909         (mark_def_site_blocks): Add argument 'interesting_blocks'.
910         Use it to configure the dominator walker.
911         (rewrite_into_ssa): Remove argument 'all'.
912         Make internal.
913         (rewrite_all_into_ssa): Remove.
914         (rewrite_def_def_chains): Remove.
915         (mark_def_interesting, mark_use_interesting,
916         prepare_phi_args_for_update, prepare_block_for_update,
917         prepare_def_site_for, prepare_def_sites,
918         dump_names_replaced_by, debug_names_replaced_by,
919         dump_repl_tbl, debug_repl_tbl, init_update_ssa,
920         delete_update_ssa, create_new_def_for,
921         register_new_name_mapping, mark_sym_for_renaming,
922         mark_set_for_renaming, need_ssa_update_p,
923         name_registered_for_update_p, ssa_names_to_replace,
924         release_ssa_name_after_update_ssa,
925         insert_updated_phi_nodes_for, update_ssa): New.
926         * tree-loop-linear.c (linear_transform_loops): Call
927         update_ssa instead of rewrite_into_ssa.
928         * tree-optimize.c (vars_to_rename): Remove.
929         Update all users.
930         (init_tree_optimization_passes): Replace
931         pass_redundant_phi with pass_copy_prop.
932         Add pass_vrp.
933         Replace pass_ccp with pass_store_ccp.
934         Add pass_store_copy_prop after pass_store_ccp.
935         (execute_todo): If the TODO_ flags don't include updating
936         the SSA form, assert that it does not need to be updated.
937         Call update_ssa instead of rewrite_into_ssa and
938         rewrite_def_def_chains.
939         If TODO_verify_loops is set, call verify_loop_closed_ssa.
940         (tree_rest_of_compilation):
941         * tree-pass.h (TODO_dump_func, TODO_ggc_collect,
942         TODO_verify_ssa, TODO_verify_flow, TODO_verify_stmts,
943         TODO_cleanup_cfg): Renumber.
944         (TODO_verify_loops, TODO_update_ssa,
945         TODO_update_ssa_no_phi, TODO_update_ssa_full_phi,
946         TODO_update_ssa_only_virtuals): Define.
947         (pass_copy_prop, pass_store_ccp, pass_store_copy_prop, pass_vrp):
948         Declare.
949         * tree-phinodes.c (make_phi_node): Update documentation.
950         (remove_all_phi_nodes_for): Remove.
951         (find_phi_node_for): New.
952         * tree-pretty-print.c (dump_generic_node): Handle ASSERT_EXPR.
953         * tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Likewise.
954         (interpret_rhs_modify_expr): Likewise.
955         * tree-sra.c (decide_instantiations): Mark all symbols in
956         SRA_CANDIDATES for renaming.
957         (mark_all_v_defs_1): Rename from mark_all_v_defs.
958         (mark_all_v_defs): New function.  Update all users to call it 
959         with the whole list of scalarized statements, not just the
960         first one.
961         * tree-ssa-alias.c (count_ptr_derefs): Make extern.
962         (compute_flow_insensitive_aliasing): If the tag is
963         unmodifiable and the variable isn't or vice-versa, don't
964         make them alias of each other.
965         (setup_pointers_and_addressables): If the type tag for
966         VAR is about to change, mark the old one for renaming.
967         (add_type_alias): New.
968         * tree-ssa-ccp.c: Document SSA-CCP and STORE-CCP.
969         (ccp_lattice_t): Rename from latticevalue.
970         (value): Remove.  Update all users.
971         (const_val): New local variable.
972         (do_store_ccp): New local variable.
973         (dump_lattice_value): Handle UNINITIALIZED.
974         (debug_lattice_value): New.
975         (get_default_value): Re-write.
976         (set_lattice_value): Re-write.
977         (def_to_varying): Remove.  Update all users.
978         (likely_value): Return VARYING for statements that make
979         stores when STORE_CCP is false.
980         Return VARYING for any statement other than MODIFY_EXPR,
981         COND_EXPR and SWITCH_EXPR.
982         (ccp_initialize): Re-write.
983         (replace_uses_in, replace_vuse_in, substitute_and_fold):
984         Move to tree-ssa-propagate.c.
985         (ccp_lattice_meet): Handle memory stores when
986         DO_STORE_CCP is true.
987         (ccp_visit_phi_node): Likewise.
988         (ccp_fold): Likewise.
989         (evaluate_stmt): Likewise.
990         (visit_assignment): Likewise.
991         (ccp_visit_stmt): Likewise.
992         (execute_ssa_ccp): Add argument 'store_ccp'.  Copy it
993         into DO_STORE_CCP.
994         (do_ssa_ccp): New.
995         (pass_ccp): Use it.
996         (do_ssa_store_ccp): New.
997         (gate_store_ccp): New.
998         (pass_store_ccp): Declare.
999         * tree-ssa-copy.c: Include tree-ssa-propagate.h.
1000         (may_propagate_copy): Reformat.
1001         Don't abort if ORIG is a virtual and DEST isn't.
1002         If NEW does not have alias information but DEST does,
1003         copy it.
1004         (copy_of, cached_last_copy_of, do_store_copy_prop, enum
1005         copy_prop_kind, which_copy_prop): Declare.
1006         (stmt_may_generate_copy, get_copy_of_val,
1007         get_last_copy_of, set_copy_of_val, dump_copy_of,
1008         copy_prop_visit_assignment, copy_prop_visit_cond_stmt,
1009         copy_prop_visit_stmt, copy_prop_visit_phi_node,
1010         init_copy_prop, fini_copy_prop, execute_copy_prop,
1011         gate_copy_prop, do_copy_prop, gate_store_copy_prop,
1012         store_copy_prop): New.
1013         (pass_copy_prop, pass_store_copy_prop): Declare.
1014         * tree-ssa-dom.c (struct opt_stats_d): Add fields
1015         'num_const_prop' and 'num_copy_prop'.
1016         (cprop_operand): Update them.
1017         (dump_dominator_optimization_stats): Dump them.
1018         (tree_ssa_dominator_optimize): Call update_ssa instead of
1019         rewrite_into_ssa.
1020         (loop_depth_of_name): Declare extern.
1021         (simplify_cond_and_lookup_avail_expr): Guard against NULL
1022         values for LOW or HIGH.
1023         (cprop_into_successor_phis): Only propagate if NEW != ORIG.
1024         (record_equivalences_from_stmt): Call expr_computes_nonzero.
1025         (cprop_operand): Only propagate if VAL != OP.
1026         * tree-ssa-dse.c (dse_optimize_stmt): Mark symbols in removed
1027         statement for renaming.
1028         * tree-ssa-loop-im.c (move_computations): Call update_ssa.
1029         * tree-ssa-loop-ivopts.c (rewrite_address_base): Call
1030         add_type_alias if necessary.
1031         Call mark_new_vars_to_rename.
1032         (tree_ssa_iv_optimize): If new symbols need to be renamed,
1033         mark every statement updated, call update_ssa and
1034         rewrite_into_loop_closed_ssa.
1035         * tree-ssa-loop-manip.c (add_exit_phis): Do not remove DEF_BB
1036         from LIVEIN if VAR is a virtual.
1037         * tree-ssa-loop.c (tree_loop_optimizer_init): Call update_ssa.
1038         * tree-ssa-operands.c (get_expr_operands): Handle ASSERT_EXPR.
1039         (get_call_expr_operands): Reformat statement.
1040         (add_stmt_operand): Don't create V_MAY_DEFs for read-only
1041         symbols.
1042         * tree-ssa-propagate.c (ssa_prop_init): Initialize
1043         SSA_NAME_VALUE for every name.
1044         (first_vdef, stmt_makes_single_load, stmt_makes_single_store,
1045         get_value_loaded_by): New.
1046         (replace_uses_in, replace_vuses_in, replace_phi_args_in,
1047         substitute_and_fold): Move from tree-ssa-ccp.c.
1048         * tree-ssa-propagate.h (struct prop_value_d, prop_value_t,
1049         first_vdef, stmt_makes_single_load, stmt_makes_single_store,
1050         get_value_loaded_by, replace_uses_in, substitute_and_fold):
1051         Declare.
1052         * tree-ssa.c (verify_use): Fix error message.
1053         (propagate_into_addr, replace_immediate_uses, get_eq_name,
1054         check_phi_redundancy, kill_redundant_phi_nodes,
1055         pass_redundant_phi): Remove.  Update all users.
1056         * tree-vect-transform.c (vect_create_data_ref_ptr): Call
1057         add_type_alias, if necessary.
1058         * tree-vectorizer.h (struct _stmt_vect_info): Update
1059         documentation for field 'memtag'.
1060         * tree-vrp.c: New file.
1061         * tree.def (ASSERT_EXPR): Define.
1062         * tree.h (ASSERT_EXPR_VAR): Define.
1063         (ASSERT_EXPR_COND): Define.
1064         (SSA_NAME_VALUE_RANGE): Define.
1065         (struct tree_ssa_name): Add field 'value_range'.
1066         (PHI_REWRITTEN): Remove.
1067         (struct tree_phi_node): Remove field 'rewritten'.
1068         * doc/invoke.texi (-fdump-tree-storeccp, -ftree-copy-prop,
1069         -ftree-store-copy-prop): Document.
1070         * doc/tree-ssa.texi: Remove broken link to McCAT's compiler.
1071         Document usage of update_ssa.
1072
1073 2005-04-08  David Edelsohn  <edelsohn@gnu.org>
1074
1075         PR target/20814
1076         * config/rs6000/predicates.md (altivec_register_operand): Accept
1077         SUBREG. 
1078         (and64_operand): Do not limit CONST_INT to mask64_operand.
1079         (and64_2_operand): Do not limit CONST_INT to mask64_1or2_operand.
1080         (and_operand): Do not limit CONST_INT to mask_operand.
1081
1082 2005-04-09  Hans-Peter Nilsson  <hp@axis.com>
1083
1084         PR rtl-optimization/20466
1085         * flow.c (invalidate_mems_from_set): Handle a MEM by checking it
1086         for overlap of the address of each list member.
1087         (mark_set_1): Call invalidate_mems_from_set for MEMs too.
1088
1089 2005-04-08  Mike Stump  <mrs@apple.com>
1090
1091         * config/darwin.c (indirect_data): Fix typo in strncmp logic.
1092         
1093         * config/rs6000/rs6000.c (rs6000_emit_prologue): Use 5 nops,
1094         instead of 4.
1095
1096 2005-04-08  Kazu Hirata  <kazu@cs.umass.edu>
1097
1098         * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Remove.
1099
1100         * function.c (push_function_context_to): Don't set
1101         contains_functions.
1102         * function.h (function): Remove contains_functions.
1103         (current_function_contains_functions): Remove.
1104
1105         * function.h (function): Remove instrument_entry_exit.
1106         (current_function_instrument_entry_exit): Remove.
1107
1108         * function.h (nonlocal_labels): Remove.
1109
1110         * tree.h (STRIP_MAIN_TYPE_NOPS): Remove.
1111
1112         * genattrtab.c (attr_desc): Remove negative_ok and unsigned_p.
1113         (check_attr_value, write_attr_get, write_expr_attr_cache,
1114         find_attr, make_internal_attr): Don't reference negative_ok or
1115         unsigned_p.
1116         * genattrtab.h (ATTR_NEGATIVE_OK, ATTR_UNSIGNED,
1117         ATTR_FUNC_UNITS, ATTR_BLOCKAGE): Remove.
1118         (ATTR_STATIC): Adjust the value.
1119
1120         * c-common.h (C_ARTIFICIAL_STRING_P): Remove.
1121
1122 2005-04-08  Ulrich Weigand  <uweigand@de.ibm.com>
1123
1124         * config/s390/tpf.h (ASM_SPEC): Define.
1125
1126 2005-04-08  Kazu Hirata  <kazu@cs.umass.edu>
1127
1128         * tree-flow.h: Remove the prototype for
1129         redirect_immediate_uses.
1130         (TDFA_USE_OPS, TDFA_USE_VOPS): Remove.
1131
1132 2005-04-08  Richard Earnshaw  <richard.earnshaw@arm.com>
1133
1134         * arm.c (arm_const_double_by_parts): New function.
1135         * arm-protos.h (arm_const_double_by_parts): Add prototype.
1136         * arm.md (define_split for 64-bit constants): Add another one.
1137
1138 2005-04-08  Andrew MacLeod  <amacleod@redhat.com>
1139
1140         * tree-ssa-operands.c (correct_use_link): Remove linear scan.
1141
1142 2005-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1143
1144         * system.h: Revert last change.
1145
1146 2005-04-08  Richard Sandiford  <rsandifo@redhat.com>
1147
1148         * config/xtensa/xtensa.h (target_flags, MASK_NO_FUSED_MADD)
1149         (MASK_CONST16, TARGET_NO_FUSED_MADD, TARGET_CONST16)
1150         (TARGET_SWITCHES): Delete.
1151         * config/xtensa/xtensa.c (TARGET_DEFAULT_TARGET_FLAGS): Define.
1152         * config/xtensa/xtensa.md (muladdsf3, mulsubsf3): Check
1153         TARGET_FUSED_MADD instead of !TARGET_NO_FUSED_MADD.
1154         * config/xtensa/xtensa.opt: New file.
1155
1156 2005-04-08  Ben Elliston  <bje@au.ibm.com>
1157
1158         * config/fp-bit.c: Include L_mul_tf in #endif comment.
1159         * config/fp-bit.h: Tidy comments.
1160
1161 2005-04-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1162
1163         * system.h: Poison PARAMS.
1164
1165 2005-04-07  Richard Sandiford  <rsandifo@redhat.com>
1166
1167         * config/vax/vax.h (target_flags, MASK_UNIX_ASM, MASK_VAXC_ALIGNMENT)
1168         (MASK_G_FLOAT, TARGET_UNIX_ASM, TARGET_VAXC_ALIGNMENT, TARGET_G_FLOAT)
1169         (TARGET_SWITCHES): Delete.
1170         * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Override default.
1171         * config/vax/vax.opt: New file.
1172
1173 2005-04-07  Daniel Berlin  <dberlin@dberlin.org>
1174
1175         * tree-ssa-dse.c (dse_optimize_stmt): Fix incorrect comment.
1176
1177 2005-04-07  Ian Lance Taylor  <ian@airs.com>
1178
1179         * config/iq2000/iq2000.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Don't
1180         define.
1181         * config/mips/mips.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Likewise.
1182         * config/sparc/sparc.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE):
1183         Likewise.
1184
1185 2005-04-07  Kazu Hirata  <kazu@cs.umass.edu>
1186
1187         * tree-ssa-sink.c (nearest_common_dominator_of_uses): Consider
1188         all immediate uses in PHI nodes.
1189
1190 2005-04-07  Richard Earnshaw  <richard.earnshaw@arm.com>
1191
1192         * arm.c (arm_const_double_inline_cost): Handle any constant by
1193         using gen_lowpart and gen_highpart_mode.
1194         (note_invalid_constants): All constants in an RTX with a constraint
1195         that permits memory are now pushed to the constant pool.
1196         (output_move_double): Delete code to handle reg to reg and 
1197         constant to reg moves.
1198         (const_double_needs_minipool, output_mov_immediate): Delete.
1199         * arm.h (EXTRA_CONSTRAINT_STR_ARM): All 'D' variants now handle
1200         CONST_INT and CONST_VECTOR.
1201         * arm.md (ANY64): New mode macro.
1202         (arm_movdi): Split reg-reg and const-reg moves.  Simplify constraints.
1203         (movdf_soft_insn): Split reg-reg and const-reg moves.
1204         (split patterns for 64-bit constant and register moves): New.
1205         * cirrus.md (cirrus_arm_movdi): Split reg-reg and const-reg moves.
1206         (cirrus_movdf_hard_insn): Likewise.
1207         * fpa.md (movdf_fpa): Likewise.
1208         * iwmmxt.md (iwmmxt_arm_movdi): Likewise.
1209         (movv8qi_internal, movv4hi_internal, movv2si_internal): Fix
1210         constraints.
1211         (movv2si_internal_2): Likewise.
1212         * vfp.md (arm_movdi_vfp): Split reg-reg and const-reg moves.
1213         (movdf_vfp): Likewise.
1214         * arm-protos.h (output_mov_immediate): Delete prototype.
1215
1216 2005-04-07  Joseph S. Myers  <joseph@codesourcery.com>
1217
1218         PR target/20093
1219         * simplify-rtx.c (simplify_unary_operation_1): Check
1220         SUBREG_PROMOTED_UNSIGNED_P (op) > 0 for zero-extension.
1221
1222 2005-04-06  James E Wilson  <wilson@specifixinc.com>
1223
1224         PR target/20717
1225         * cgraphunit.c (record_call_1, case FDESC_EXPR): Handle same as
1226         ADDR_EXPR.
1227
1228 2004-04-06  Richard Sandiford  <rsandifo@redhat.com>
1229
1230         * coverage.h (GCOV_TYPE_NODE): Delete.
1231         * coverage.c (coverage_counter_alloc, tree_coverage_counter_ref)
1232         (build_ctr_info_type): Use get_gcov_type () instead of GCOV_TYPE_NODE.
1233         * tree-profile.c (tree_gen_edge_profiler, tree_gen_interval_profiler)
1234         (tree_gen_pow2_profiler, tree_gen_one_value_profiler): Likewise.
1235         * value-prof.c (tree_divmod_fixed_value_transform): Delete.
1236
1237 2004-04-06  Richard Sandiford  <rsandifo@redhat.com>
1238
1239         PR other/20792
1240         * Makefile.in (gcc.pot): Remove options.c dependency.
1241         * optc-gen.awk: Don't quote help strings with N_().
1242
1243 2005-04-06  James A. Morrison  <phython@gcc.gnu.org>
1244
1245         * c-common.c (handle_malloc_atttribute): Only set DECL_IS_MALLOC if
1246         the function returns a pointer type.
1247
1248 2005-04-06  Daniel Berlin  <dberlin@dberlin.org>
1249
1250         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): New
1251         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): New
1252         * doc/invoke.texi: Documnet salias-max-implicit-fields.
1253         * tree-ssa-alias.c (struct used_part): Add implicit_uses and
1254         explicit_uses members.
1255         (get_or_create_used_part_for): Initialize new fields.
1256         (fieldoff_compare): New function.
1257         (create_overlap_variables_for): Count number of fields, use
1258         heuristic to determine whether to create subvars for vars with
1259         only implicit uses.
1260         Sort the field list by offset and avoid creating duplicate SFT's.
1261
1262 2005-04-06  Richard Sandiford  <rsandifo@redhat.com>
1263
1264         * c.opt (-F): Remove trailing whitespace from help string.
1265         (-finput-charset): Use a tab to separate the switch name and help
1266         string.
1267         * common.opt (-fsched-stalled-insns, -fsched-stalled-insns-dep)
1268         (-ftree-vectorizer-verbose): Likewise.
1269
1270 2005-04-06  Kazu Hirata  <kazu@cs.umass.edu>
1271
1272         * tree-ssa-sink.c (nearest_common_dominator_of_uses): Look at
1273         a PHI argument where a use occurs instead of all PHI arguments.
1274
1275 2005-04-06  Joseph S. Myers  <joseph@codesourcery.com>
1276
1277         * c-decl.c (finish_decl): Apply pending #pragma weak regardless of
1278         scope.
1279
1280 2005-04-06  Kazu Hirata  <kazu@cs.umass.edu>
1281
1282         * cse.c, tree-flow-inline.h, tree-flow.h, tree-ssa-operands.c,
1283         tree-ssa-sink.c, tree.h, config/bfin/bfin.c,
1284         config/bfin/bfin.h: Fix comment typos.
1285
1286 2005-04-06  Ranjit Mathew  <rmathew@hotmail.com>
1287
1288         * doc/install.texi: Update the URL for Jacks.
1289         * doc/sourcebuild.texi: Likewise.
1290
1291 2005-04-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
1292
1293         PR target/17245
1294         * config/sparc/sparc.c (legitimate_address_p): Remove 'imm2'.
1295         Revert 2004-10-08 patch.  Reject TFmode LO_SUM in 32-bit mode.
1296
1297 2005-04-06  Kelley Cook  <kcook@gcc.gnu.org>
1298
1299         * Makefile.in (LIBGCC2_CFLAGS): Revert -pipe change.
1300
1301 2005-04-06  Richard Sandiford  <rsandifo@redhat.com>
1302
1303         * config/v850/v850-protos.h (override_options): Delete.
1304         * config/v850/v850.h (target_flags, MASK_GHS, MASK_LONG_CALLS, MASK_EP)
1305         (MASK_PROLOG_FUNCTION, MASK_DEBUG, MASK_V850, MASK_V850E)
1306         (MASK_SMALL_SLD, MASK_BIG_SWITCH, MASK_NO_APP_REGS, MASK_DISABLE_CALLT)
1307         (MASK_STRICT_ALIGN, MASK_US_BIT_SET, MASK_US_MASK_SET, TARGET_GHS)
1308         (TARGET_LONG_CALLS, TARGET_EP, TARGET_PROLOG_FUNCTION, TARGET_V850)
1309         (TARGET_BIG_SWITCH, TARGET_DEBUG, TARGET_V850E, TARGET_US_BIT_SET)
1310         (TARGET_SMALL_SLD, TARGET_DISABLE_CALLT, TARGET_NO_APP_REGS)
1311         (TARGET_STRICT_ALIGN, TARGET_SWITCHES, TARGET_OPTIONS)
1312         (OVERRIDE_OPTIONS): Delete.
1313         (MASK_CPU): Redefine as MASK_V850 | MASK_V850E.
1314         (small_memory_info): Remove the value field.
1315         (CONDITIONAL_REGISTER_USAGE): Check !TARGET_APP_REGS rather than
1316         TARGET_NO_APP_REGS.
1317         * config/v850/v850.c (small_memory): Remove the value field.
1318         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
1319         (override_options): Delete.
1320         (v850_handle_memory_option, v850_handle_option): New functions.
1321         * config/v850/v850.opt: New file.
1322
1323 2005-04-06  Geoffrey Keating  <geoffk@apple.com>
1324
1325         * config.host: Add a section for generic hosts, and a subsection
1326         for Darwin.  Add a case for x86-darwin.  Update ppc-darwin case.
1327         * config/host-darwin.c: New, split out of config/rs6000/host-darwin.c.
1328         * config/host-darwin.h: New.
1329         * config/x-darwin: New.
1330         * config/i386/host-i386-darwin.c: New.
1331         * config/i386/x-darwin: New.
1332         * config/rs6000/host-darwin.c: Include host-darwin.h.
1333         (darwin_rs6000_gt_pch_get_address): Move to config/host-darwin.c.
1334         (darwin_rs6000_gt_pch_use_address): Likewise.
1335         * config/rs6000/x-darwin: Change name of .o built, update
1336         dependencies for changes to rs6000/host-darwin.c.
1337
1338 2005-04-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
1339
1340         PR target/17824
1341         * config/c4x/c4x.h (ASM_PROG, LD_PROG): Remove.
1342
1343 2005-04-06  Dorit Naishlos  <dorit@il.ibm.com>
1344
1345         * tree-vect-analyze.c (vect_analyze_loop_form): Call
1346         split_loop_exit_edge instead of loop_split_edge_with. 
1347
1348 2005-04-06  Paolo Bonzini  <bonzini@gnu.org>
1349
1350         * config/rs6000/altivec.md (UNSPEC_VSLW, UNSPEC_SUBS,
1351         UNSPEC_SET_VSCR): New constants, used throughout.
1352         (*andc3_v4sf): New.
1353         (altivec_vspltisb, altivec_vsplitish, altivec_vsplitisw):
1354         Replace with...
1355         (altivec_vspltis<VI_char>): ... this pattern, using
1356         a QImode const_int_operand for the immediate.
1357         (abs<mode>2, absv4sf2, altivec_abss_<mode>): Rewrite as
1358         define_expands.
1359
1360 2005-04-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
1361
1362         PR target/17822
1363         * config/avr/t-avr (AR_FOR_TARGET,RANLIB_FOR_TARGET): Remove.
1364
1365 2005-04-06  Kelley Cook  <kcook@gcc.gnu.org>
1366
1367         * Makefile.in (LIBGCC2_CFLAGS): Compile with -pipe.
1368
1369 2005-04-06  Ben Elliston  <bje@au.ibm.com>
1370
1371         * gcc.c: Correct comment about DEFAULT_SWITCH_TAKES_ARG and
1372         DEFAULT_WORD_SWITCH_TAKES_ARG which incorrectly reported these
1373         macros as living in "this file" and not gcc.h.
1374
1375 2005-04-06  Ben Elliston  <bje@au.ibm.com>
1376
1377         * doc/invoke.texi (Optimize Options): Mention -ftree-lrs, not
1378         -ftree-live_range_split.  Perhaps renamed at some point?
1379
1380 2005-04-06  Zdenek Dvorak  <dvorakz@suse.cz>
1381
1382         PR target/20625
1383         * tree-ssa-loop-ivopts.c (generic_type_for): New function.
1384         (add_candidate_1): Use generic_type_for instead of unsigned_type_for.
1385
1386 2005-04-06  Zdenek Dvorak  <dvorakz@suse.cz>
1387
1388         * tree-flow.h (number_of_iterations_cond): Declaration removed.
1389         * tree-ssa-loop-niter.c (number_of_iterations_cond): Made static.
1390         (number_of_iterations_special): New function.
1391         (number_of_iterations_exit): Use number_of_iterations_special.
1392         Use simplify_using_outer_evolutions only at -O3.
1393         (number_of_iterations_cond, tree_simplify_using_condition,
1394         simplify_using_initial_conditions, loop_niter_by_eval,
1395         compare_trees, can_count_iv_in_wider_type_bound,
1396         simplify_using_outer_evolutions): Use fold_build.
1397
1398 2005-04-05  Thomas Fitzsimmons  <fitzsim@redhat.com>
1399
1400         * doc/install.texi (Configuration): Document --with-java-home.
1401
1402 2005-04-05  Richard Henderson  <rth@redhat.com>
1403
1404         PR target/20342
1405         PR target/20447
1406         * config/i386/i386.c (print_operand): Handle vector zeros.
1407         (ix86_split_to_parts): Handle CONST_VECTOR.
1408         (ix86_hard_regno_mode_ok): Allow MMX modes in general regs.
1409         (ix86_modes_tieable_p): Use ix86_hard_regno_mode_ok to decide
1410         what modes to tie for MMX and SSE registers.
1411         * config/i386/i386.h (MMX_REG_MODE_P): Remove.
1412         * config/i386/i386.md: Extend move 0 -> xor peephole to apply
1413         to vector modes as well.
1414         * config/i386/predicates.md (const0_operand): Handle VOIDmode
1415         properly as an input mode.
1416
1417 2005-04-05  Andrew MacLeod  <amacleod@redhat.com>
1418
1419         * tree-ssa-operands.c (verify_abort): Use %p for pointers.
1420
1421 2005-04-05  Andrew MacLeod  <amacleod@redhat.com>
1422
1423         * tree-pretty-print.c (dump_generic_node): Use %p for pointer.
1424
1425 2005-04-05  Jakub Jelinek  <jakub@redhat.com>
1426
1427         * config/i386/i386.c (init_cumulative_args): For -m32 -mfpmath=sse
1428         and local functions, set sse_nregs to 8 and float_in_sse.
1429         (function_arg_advance, function_arg): If float_in_sse, pass
1430         SFmode and DFmode arguments in SSE registers.
1431         * config/i386/i386.h (CUMULATIVE_ARGS): Add float_in_sse field.
1432
1433         * config/i386/i386.c (ix86_value_regno): Only optimize local functions
1434         of -funit-at-a-time.
1435
1436 2005-04-05  Paolo Bonzini  <bonzini@gnu.org>
1437
1438         * config/i386/i386-protos.h (ix86_function_value): Accept two
1439         arguments, like the target macro.
1440         * config/i386/i386.h (FUNCTION_VALUE): Pass both arguments.
1441         * config/i386/i386.c (ix86_function_value): Accept the second
1442         argument of the target macro.
1443         (ix86_function_ok_for_sibcall): Pass a function pointer to
1444         ix86_function_value.
1445         (ix86_function_value, ix86_libcall_value) [!TARGET_64BIT]: Adjust
1446         call to ix86_value_regno).
1447         (ix86_value_regno): Add support for returning floating point values
1448         in SSE registers.
1449
1450 2005-04-05  Jakub Jelinek  <jakub@redhat.com>
1451
1452         PR tree-optimization/20076
1453         * tree-inline.c (inline_forbidden_p_1): Prevent inlining functions
1454         that call __builtin_return or __builtin_apply_args.
1455
1456 2005-04-05  Andrew MacLeod  <amacleod@redhat.com>
1457
1458         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use update_stmt.
1459         Use immediate use iterator.
1460         (stmt_is_bumper_for_loop): Use immediate use iterator.
1461         * predict.c (strip_builtin_expect): Use update_stmt.
1462         * tree-cfg.c (update_modified_stmts): New. Call update_stmt_if_modified
1463         on all elements of a STATEMENT_LIST.
1464         (bsi_insert_before, bsi_insert_after): Call update_modified_stmts.
1465         (bsi_remove): Remove imm_use links and mark the stmt as modified.
1466         (bsi_replace): Mark stmt as modified and the update it.
1467         * tree-complex.c (update_complex_assignment): Call mark_stmt_modified.
1468         (expand_complex_libcal): Call update_stmt.
1469         (expand_complex_comparison): Call mark_stmt_modified.
1470         (expand_complex_operations_1): Call update_stmt_if_modified.
1471         (expand_vector_operations_1): Call mark_stmt_modified.
1472         * tree-dfa.c (compute_immediate_uses, free_df_for_stmt, free_df,
1473         compute_immediate_uses_for_phi, compute_immediate_uses_for_stmt,
1474         add_immediate_use, redirect_immediate_use,
1475         redirect_immediate_uses, dump_immediate_uses, debug_immediate_uses,
1476         dump_immediate_uses_for, debug_immediate_uses_for): Delete.
1477         (mark_new_vars_to_rename): Call update_stmt.
1478         * tree-dump.c (dump_option_value_in): Add "stmtaddr".
1479         * tree-flow-inline.h (modify_stmt): Rename to mark_stmt_modified.  
1480         Ignore PHI nodes.
1481         (unmodify_stmt): Delete.
1482         (update_stmt): New.  Force an update of a stmt.
1483         (update_stmt_if_modified): update a stmt if it is out of date.
1484         (get_stmt_operands): Verify stmt is NOT modified. 
1485         (stmt_modified_p): Update comment.
1486         (delink_imm_use): Remove a use node from its immuse list.
1487         (link_imm_use_to_list): Link a use node to a specific list.
1488         (link_imm_use): Link a node to the correct list.
1489         (set_ssa_use_from_ptr): Set a use node to a specific value, and insert
1490         it in the correct list, if appropriate.
1491         (link_imm_use_stmt): Link a use node, and set the stmt pointer.
1492         (relink_imm_use): Link a use node in place of another node in a list.
1493         (relink_imm_use_stmt): LInk a node in place of another node, and set
1494         the stmt pointer.
1495         (end_safe_imm_use_traverse): New.  Terminate a safe immuse iterator.
1496         (end_safe_imm_use_p): New.  Check for the end of a safe immuse iterator.
1497         (first_safe_imm_use): New.  Initialize a safe immuse iterator.
1498         (next_safe_imm_use): New.  Proceed to next safe immuse iterator value.
1499         (end_readonly_imm_use_p): New.  Check for end of a fast immuse iterator.
1500         (first_readonly_imm_use): New.  Initialize a fast immuse iterator.
1501         (next_readonly_imm_use): New.  Get the next fast immuse iterator value.
1502         (has_zero_uses): New.  Return true if there are no uses of a var.
1503         (has_single_use): New.  Return true if there is only a single use of a
1504         variable.
1505         (single_imm_use): New.  Return the simgle immediate use.
1506         (num_imm_uses): New.  Return the number of immediate uses.
1507         (get_v_must_def_ops): Use is now a pointer.
1508         (use_operand_p, get_v_may_def_op_ptr, get_vuse_op_ptr,
1509         get_v_must_def_kill_ptr, get_phi_arg_def_ptr): Return the address of 
1510         the use node.
1511         (get_immediate_uses, num_immediate_uses, immediate_use): Delete.
1512         (delink_stmt_imm_use): Delink all immuses from a stmt.
1513         (phi_arg_index_from_use): New.  Return a phi arg index for a use.
1514         * tree-flow.h (struct dataflow_d): Delete.
1515         (immediate_use_iterator_d): New.  Immediate use iterator struct.
1516         (FOR_EACH_IMM_USE_FAST): New.  Macro for read only immuse iteration.
1517         (FOR_EACH_IMM_USE_SAFE): New.  Macro for write-safe immuse iteration.
1518         (BREAK_FROM_SAFE_IMM_USE): New.  Macro for earlyu exit from write-safe 
1519         iteration.
1520         (struct stmt_ann_d): Remove dataflow_t from struct.
1521         * tree-if-conv.c (tree_if_conversion).  Don't call free_df.
1522         (if_convertible_phi_p): Use FAST immuse iterator.
1523         (if_convertible_loop_p): Don't call compute_immediate_uses.
1524         (replace_phi_with_cond_modify_expr): Call update_stmt.
1525         * tree-into-ssa.c (mark_def_sites, ssa_mark_def_sites): Call 
1526         update_stmt_if_modified.
1527         (rewrite_all_into_ssa): Initialize ssa operands.
1528         * tree-loop-linear.c (linear_transform_loops): Don't call free_df or
1529         compute_immediate_uses.
1530         * tree-optimize.c (execute_todo): Call verify_ssa whenever the 
1531         ssa_property is available.
1532         (execute_one_pass):  Change parameters passed to execute_todo.
1533         * tree-outof-ssa.c (rewrite_trees): Don't call modify_stmt.
1534         (remove_ssa_form): Call fini_ssa_operands.
1535         (insert_backedge_copies): Delete call to modify_stmt.
1536         * tree-phinodes.c (make_phi_node): Initialize use nodes.
1537         (release_phi_node): Delink any use nodes before releasing.
1538         (resize_phi_node): Relink any use nodes.
1539         (remove_phi_arg_num): Delink the use node.
1540         (remove_phi_node): Release the ssa_name AFTER releasing the phi node.
1541         (remove_all_phi_nodes_for): Release phi node first.
1542         * tree-pretty-print.c (dump_generic_node): Print stmt address.
1543         * tree-sra.c (mark_all_v_defs): Call update_stmt_if_modified.
1544         (scalarize_use, scalarize_copy): Call update_stmt.
1545         * tree-ssa-alias.c (compute_may_aliases): Update all modified stmts.
1546         (compute_points_to_and_addr_escape): Call mark_stmt_modified.
1547         * tree-ssa-cpp.c (need_imm_uses_for): Delete.
1548         (ccp_initialize): Remove call to compute_immediate_uses.
1549         (substitute_and_fold, execute_fold_all_builtins): Call update_stmt.
1550         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Update all modified 
1551         stmts.
1552         (simplify_cond_and_lookup_avail_expr): Call mark_stmt_modified.
1553         (simplify_switch_and_lookup_avail_expr): Call mark_stmt_modified.
1554         (eliminate_redundant_computations): Call mark_stmt_modified.
1555         (cprop_operand): Call mark_stmt_modified.
1556         (optimize_stmt): Call update_stmt_if_modified and mark_stmt_modified.
1557         * tree-ssa-dse.c (fix_phi_uses, fix_stmt_v_may_defs): Delete.
1558         (dse_optimize_stmt): Use new immuse interface.
1559         (tree_ssa_dse): Remove calls to compute_immediate_uses and free_df.
1560         * tree-ssa-forwprop.c (need_imm_uses_for): Delete.
1561         (substitute_single_use_vars): Use new immuse interface.
1562         (tree_ssa_forward_propagate_single_use_vars): Remove calls to free_df
1563         and compute_immediate_uses.
1564         * tree-ssa-loop-im.c (single_reachable_address): Use new immuse 
1565         interface.
1566         (rewrite_mem_refs): Call update_stmt.
1567         (determine_lsm): Remove call to compute_imm_uses and free_df.
1568         * tree-ssa-loop-ivcanon.c (create_canonical_iv): Call update_stmt.
1569         (try_unroll_loop_completely): Call update_stmt.
1570         * tree-ssa-loop-ivopts.c (rewrite_address_base): Call update_stmt.
1571         (rewrite_use_compare): Call update_stmt.
1572         (compute_phi_arg_on_exit): Insert each stmt before trying to process.
1573         (rewrite_use) : Call update_stmt.
1574         * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Add arg to call.
1575         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Call 
1576         update_stmt.
1577         * tree-ssa-operands.c (NULL_USE_OPERAND_P): Remove declaration.
1578         (allocate_use_optype, allocate_vuse_optype): Adjust allocation size.
1579         (free_uses, free_vuses, free_v_may_defs, free_v_must_defs): Delink
1580         use nodes.
1581         (initialize_vuse_operand): New.  Initialize a vuse operand.
1582         (initialize_v_may_def_operand): New.  Initialize a maydef operand.
1583         (initialize_v_must_def_operand): New.  Initialize a mustdef operand.
1584         (finalize_ssa_defs): Use stmt parameter.
1585         (correct_use_link): Ensure a use node is in the correct list, and has
1586         the correct stmt pointer.
1587         (finalize_ssa_uses, finalize_ssa_v_may_defs, finalize_ssa_vuses,
1588         finalize_ssa_v_must_defs): Also initialize use nodes.
1589         (finalize_ssa_stmt_operands): Pass extra stmt operands.
1590         (build_ssa_operands): Seperate parsing from final operand construction.
1591         (parse_ssa_operands): New.  Parse entry point for operand building.
1592         (swap_tree_operands): New.  Swap 2 tree operands.
1593         (update_stmt_operands): Ranamed from get_stmt_operands.  Always builds
1594         operands.
1595         (get_expr_operands): Call swap_tree_operands when needed.
1596         (copy_virtual_operands): Use initialize routines for virtual use ops.
1597         (create_ssa_artficial_load_stmt): Add extra stmt parameter.
1598         (verify_abort): New.  Issue imm_use error.
1599         (verify_imm_links): New Verify imm_use links for a var.
1600         (dump_immediate_uses_for): New.  Dump imm_uses for a var to file.
1601         (dump_immediate_uses): New.  Dump imm_uses for all vars to file.
1602         (debug_immediate_uses): New.  Dump imm_uses for all vars to stderr.
1603         (debug_immediate_uses_for): New.  Dump imm_uses for a var to stderr.
1604         * tree-ssa-operands.h (struct use_operand_ptr): Delete.
1605         (NULL_USE_OPERAND_P) Define.
1606         (use_optype_d, v_def_use_operand_type, vuse_optype_d): Add immediate
1607         use node.
1608         (struct vuse_operand_type): New struct.
1609         (SET_USE): Call set_ssa_use_from_ptr.
1610         (USE_STMT): Define.
1611         (PHI_ARG_INDEX_FROM_USE): Define.
1612         * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Set the phi 
1613         argument via SET_USE, not PHI_ARG_DEF_TREE.
1614         * tree-ssa-pre.c (eliminate): Call update_stmt.
1615         * tree-ssa-propagate.c (cfg_blocks_get): Use imm_use iterators.  Don't
1616         call free_df.
1617         * tree-ssa-sink.c (all_immediate_uses_same_place): Use imm_use iterator.
1618         (nearest_common_dominator_of_uses): Use imm_use iterator.
1619         (statement_sink_location): Use imm_use iterator and interface.
1620         (execute_sink_code): Don't call compute_immediate_uses or free-df.
1621         * tree-ssa-threadupdate.c (create_edge_and_update_destination_phis): Use
1622         PHI_ARG_DEF, not PHI_ARG_DEF_TREE.
1623         * tree-ssa.c (verify_use, verify_phi_args): Verify some imm_use info.
1624         (verify_ssa): Ensure no stmt is marked modify after optimization pass
1625         if new parameter is true.
1626         (init_tree_ssa): Don't initialize operand cache here.
1627         (delete_tree_ssa): Don't destroy operand cache here.
1628         (propagate_into_addr): Pass in a use pointer, return true if anything
1629         was changed.
1630         (replace_immediate_uses): Use imm_use iterator, call update_stmt.
1631         (check_phi_redundancy): Use imm_use iterator.
1632         (kill_redundant_phi_nodes): Don't call compute_immediate_uses or 
1633         free_df.
1634         * tree-ssanames.c (make_ssa_name): Initialize imm_use node.
1635         (release_ssa_name): Delink node and all elements in its imm_use list.
1636         * tree-tailcall.c (adjust_return_value): Call update_stmt.
1637         * tree-vect-analyze.c (vect_stmt_relevant_p): Use imm_use iterator.
1638         * tree-vectorizer.c (need_imm_uses_for): Delete.
1639         (vectorize_loops): Dont call compute_immediate_uses or free_df.
1640         * tree.h (struct ssa_imm_use_d): Define.
1641         (SSA_NAME_IMM_USE_NODE): Define.
1642         (struct tree_ssa_name): Add imm_use node.
1643         (PHI_DF): Delete.
1644         (PHI_ARG_IMM_USE_NODE): Define.
1645         (struct phi_arg_d): Add imm_use node.
1646         (struct tree_phi_node): Remove struct dataflow_d element.
1647         (TDF_STMTADDR): Define.
1648
1649 2005-04-05  Dale Johannesen  <dalej@apple.com>
1650
1651         * doc/invoke.texi (Optimization Options):  Remove
1652         duplicate -fcse-follow-jumps.  Add -fweb.
1653         (-ftree-lim):  Fix spelling (-ftree-loop-im, invariants).
1654         (-fivcanon):  Fix spelling (-ftree-loop-ivcanon).
1655
1656 2005-04-05  Per Bothner  <per@bothner.com>
1657
1658         * tree-ssa.c (execute_early_warn_uninitialized): Pass context node
1659         to talk_tree as 'data' parameter, rather than EXPR_LOCUS.
1660         (warn_uninit): Get EXPR_LOCUS from context now instead.
1661         This fixes a USE_MAPPED_LOCATION testsuite failure.
1662
1663         * tree-ssa.c (warn_uninitialized_var): Remove useless local.
1664
1665 2005-04-05  Per Bothner  <per@bothner.com>
1666
1667         * c-decl.c (finish_function): If USE_MAPPED_LOCATION set the location
1668         of the artification 'return 0' in main() to BUILTINS_LOCATION.
1669         * tree-cfg.c (remove_bb): Check that location isn't BUILTINS_LOCATION
1670         before warning. 
1671
1672 2004-04-05  Devang Patel  <dpatel@apple.com>
1673
1674         * config/rs600/altivec.md (altivec_vsr<VI_char>): Rename to ..
1675         (lhsr<mode>3): ... new name.
1676         (altivec_vsra<VI_char>): Rename to ..
1677         (ashr<mode>3): ... new name.
1678         * config/rs6000/rs6000.c (builtin_description): Rename shift
1679         operations.
1680         
1681 2004-04-05  Paolo Bonzini  <bonzini@gnu.org>
1682
1683         * combine.c (RTL_HOOKS_GEN_LOWPART_NO_EMIT): Use
1684         gen_lowpart_for_combine.
1685         * cse.c (gen_lowpart_if_possible): Move...
1686         * rtlhooks.c (gen_lowpart_if_possible): ... here.  Also try
1687         gen_lowpart_SUBREG.
1688         (gen_lowpart_no_emit_general): Use it.
1689
1690 2005-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
1691
1692         * config/sparc/sparc.c (TARGET_ASM_FILE_END): Undefine before
1693         overriding.
1694
1695 2005-04-05  Paolo Bonzini  <bonzini@gnu.org>
1696
1697         * system.h: Fix typo.
1698
1699 2005-04-05  Bernd Schmidt  <bernd.schmidt@analog.com>
1700
1701         * config/bfin/bfin-modes.def: New file.
1702         * config/bfin/bfin-protos.h: New file.
1703         * config/bfin/bfin.c: New file.
1704         * config/bfin/bfin.h: New file.
1705         * config/bfin/bfin.md: New file.
1706         * config/bfin/bfin.opt: New file.
1707         * config/bfin/crti.s: New file.
1708         * config/bfin/crtn.s: New file.
1709         * config/bfin/elf.h: New file.
1710         * config/bfin/lib1funcs.asm: New file.
1711         * config/bfin/predicates.md: New file.
1712         * config/bfin/t-bfin: New file.
1713         * config/bfin/t-bfin-elf: New file.
1714         * doc/extend.texi (exception_handler, kspisusp, nesting, nmi_handler):
1715         Document new attributes.
1716         (interrupt, interrupt_handler, saveall): Update documentation for
1717         these attributes.
1718         * doc/install.texi (Specific): Add entry for the Blackfin.
1719         * doc/invoke.texi (Blackfin Options): New section.
1720         * doc/md.texi (Blackfin family): New section to document constraints.
1721         * config.gcc: Add bfin*-* and bfin*-elf configurations.
1722
1723 2005-04-05  Olivier Hainque  <hainque@adacore.com>
1724         
1725         * config/mips/iris6.h (DWARF_FRAME_RETURN_COLUMN): Redefine to
1726         match what the system unwinder expects.
1727         * config/mips/mips.c (mips_frame_set): If we're saving the return
1728         address register and the dwarf return address column number differs
1729         from the hard register number, adjust the note reg to refer to the
1730         former.
1731
1732 2004-04-05  Richard Sandiford  <rsandifo@redhat.com>
1733
1734         * config/mn10300/mn10300-protos.h (mn10300_override_options): Declare.
1735         * config/mn10300/mn10300.h (target_flags, TARGET_MULT_BUG)
1736         (TARGET_SWITCHES, TARGET_DEFAULT): Delete.
1737         (processor_type): New enum.
1738         (mn10300_processor): New variable.
1739         (TARGET_AM33, TARGET_AM33_2): Redefine in terms of mn10300_processor.
1740         (PROCESSOR_DEFAULT, OVERRIDE_OPTIONS): New macros.
1741         * config/mn10300/linux.h (TARGET_SWITCHES, TARGET_DEFAULT): Delete.
1742         (PROCESSOR_DEFAULT): New macro.
1743         * config/mn10300/mn10300.c (mn10300_processor): New variable.
1744         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
1745         (mn10300_handle_option, mn10300_override_options): New functions.
1746         * config/mn10300/mn10300.opt: New file.
1747
1748 2005-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
1749             Sebastian Pop <sebastian.pop@cri.ensmp.fr>
1750
1751         PR tree-optimization/19903
1752         * tree-chrec.c (chrec_convert): Return chrec_dont_know for constants
1753         that don't fit in their type after conversion.
1754
1755 2005-04-05  Uros Bizjak <uros@kss-loka.si>
1756
1757         PR target/20421
1758         * config/i386/i386.md (frndintxf2_floor, frndintxf2_ceil)
1759         (frndintxf2_trunc, frndintxf2_mask_pm): Add FLAGS_REG clobber.
1760         Allocate local stack slots here.  Set ix86_optimize_mode_switching.
1761         flag here. Implement using define_insn_and_split.  
1762         (frndintxf2_floor_i387, frndintxf2_ceil_i387, frndintxf2_trunc_i387)
1763         (frndintxf2_mask_pm_i387): New insn patterns.
1764         (floorsf2, floordf2, floorxf2): Remove local stack slot allocations.
1765         Do not set ix86_optimize_mode_switching flag.
1766         (ceilsf2, ceildf2, ceilxf2): Same.
1767         (btruncsf2, btruncdf2, btruncxf2): Same.
1768         (nearbyintsf2, nearbyintdf2, nearbyintxf2): Same.
1769
1770 2005-04-05  Ian Lance Taylor  <ian@airs.com>
1771
1772         PR debug/9963
1773         * config/i386/cygming.h (ASM_OUTPUT_EXTERNAL): Pass DECL to
1774         i386_pe_record_external_function.
1775         (i386_pe_record_external_function): Update declaration.
1776         * config/i386/winnt.c (struct extern_list): Add decl field.
1777         (i386_pe_record_external_function): Add decl parameter.
1778         (i386_pe_file_end): Check TREE_ASM_WRITTEN on decl, not
1779         identifier.
1780         * config/i386/i386-protos.h (i386_pe_record_external_function):
1781         Update declaration.
1782
1783 2005-04-05  Kazu Hirata  <kazu@cs.umass.edu>
1784
1785         * config/m68k/m68k-protos.h: Add a prototype for
1786         valid_dbcc_comparison_p_2.
1787         * config/m68k/m68k.c (not_sp_operand, symbolic_operand,
1788         extend_operator, const_uint32_operand, const_sint32_operand,
1789         general_src_operand, nonimmediate_src_operand,
1790         memory_src_operand, post_inc_operand, pre_dec_operand,
1791         pcrel_address): Move to predicates to predicates.md.
1792         * config/m68k/m68k.h (PREDICATE_CODES): Remove.
1793         * config/m68k/m68k.md: Include predicates.md.
1794         * config/m68k/predicates.md: New.
1795
1796 2005-04-04  Roger Sayle  <roger@eyesopen.com>
1797
1798         * config/i386/i386.md (*truncdfsf2_i387_1): New pattern.
1799
1800         * fold-const.c (maybe_lvalue_p): Delete orphaned comment.
1801
1802 2005-04-04  Ian Lance Taylor  <ian@airs.com>
1803
1804         * c-typeck.c (struct c_switch): Rename switch_stmt field to
1805         switch_expr.
1806         (c_start_case): Build SWITCH_EXPR, not SWITCH_STMT.
1807         (do_case): Use SWITCH_COND rather than SWITCH_STMT_COND.
1808         (c_finish_case): Use SWITCH_BODY rather than SWITCH_STMT_BODY.
1809         Call c_do_switch_expr_warnings rather than c_do_switch_warnings.
1810         * c-common.c (c_do_switch_warnings_1): New static function broken
1811         out of c_do_switch_warnings.
1812         (c_do_switch_warnings): Call c_do_switch_warnings_1.
1813         (c_do_switch_expr_warnings): New function.
1814         * c-common.h (c_do_switch_expr_warnings): Declare.
1815
1816 2005-04-04  David Edelsohn  <edelsohn@gnu.org>
1817             Daniel Jacobowitz  <dan@codesourcery.com>
1818
1819         * tree-eh.c (tree_could_trap_p): Allow non-constant floating point
1820         trapping divide.
1821         * rtlanal.c (may_trap_p): Same.
1822
1823 2005-04-04  Dale Johannesen  <dalej@apple.com>
1824
1825         * ChangeLog:  remove reference to ChangeLog.12.
1826
1827 2005-04-05  Hans-Peter Nilsson  <hp@axis.com>
1828
1829         CRIS epilogue as RTL.
1830         * config/cris/cris.md: Change all 0 in unspec 0 to
1831         CRIS_UNSPEC_PLT.
1832         (CRIS_UNSPEC_PLT, CRIS_UNSPEC_FRAME_DEALLOC): New constants.
1833         ("*cris_load_multiple", "cris_frame_deallocated_barrier"): New
1834         patterns.
1835         ("return"): Change to define_expand.  Call cris_expand_return for
1836         actual expansion.
1837         ("*return_expanded"): New pattern.
1838         ("epilogue"): New define_expand.
1839         * config/cris/cris.h (PREDICATE_CODES): Add
1840         cris_load_multiple_op.
1841         * config/cris/cris.c (ASSERT_PLT_UNSPEC): Correct test for unspec
1842         type.
1843         (enum cris_retinsn_type): New.
1844         (struct machine_function): New member return_type.
1845         (TARGET_ASM_FUNCTION_EPILOGUE): Don't override.
1846         (cris_target_asm_function_epilogue): Remove, moving RTLified
1847         contents to...
1848         (cris_expand_epilogue): New function.
1849         (cris_reg_saved_in_regsave_area, cris_movem_load_rest_p,
1850         (cris_gen_movem_load, cris_load_multiple_op)
1851         (cris_return_address_on_stack_for_return, cris_expand_return): New
1852         functions.
1853         (cris_target_asm_function_prologue)
1854         (cris_initial_frame_pointer_offset): Call
1855         cris_reg_saved_in_regsave_area instead of complicated expression.
1856         Call cris_return_address_on_stack instead of an expression.
1857         (cris_print_operand) <case 'o', case 'O'>: New cases.
1858         (cris_return_address_on_stack): Change return-type to bool.
1859         (cris_simple_epilogue): Ditto.  Return false if registers are
1860         saved.
1861         * config/cris/cris-protos.h (cris_simple_epilogue)
1862         (cris_return_address_on_stack): Adjust prototype return type.
1863         (cris_gen_movem_load, cris_expand_epilogue, cris_expand_return)
1864         (cris_return_address_on_stack_for_return): New prototypes.
1865
1866 2005-04-04  Kazu Hirata  <kazu@cs.umass.edu>
1867
1868         * config/frv/frv.h (PREDICATE_CODES): Add CONST to
1869         gpr_or_int12_operand.
1870
1871         * config/frv/frv-protos.h: Add a prototype to
1872         frv_legitimate_memory_operand and frv_const_unspec_p.
1873         (frv_unspec): Move from frv.c.
1874         * config/frv/frv.c (frv_unspec): Move to frv-protos.h.
1875         (frv_const_unspec_p, frv_legitimate_memory_operand_): Export.
1876         (ldd_address_operand, fdpic_fptr_operand, frv_load_operand,
1877         gpr_or_fpr_operand, gpr_or_int12_operand,
1878         gpr_fpr_or_int12_operand, fpr_or_int6_operand,
1879         gpr_or_int10_operand, gpr_or_int_operand, int12_operand,
1880         int6_operand, int5_operand, uint5_operand, uint4_operand,
1881         uint1_operand, int_2word_operand, uint16_operand,
1882         upper_int16_operand, integer_register_operand,
1883         gpr_no_subreg_operand, fpr_operand, even_reg_operand,
1884         odd_reg_operand, even_gpr_operand, odd_gpr_operand,
1885         quad_fpr_operand, even_fpr_operand, odd_fpr_operand,
1886         dbl_memory_one_insn_operand, dbl_memory_two_insn_operand,
1887         move_destination_operand, movcc_fp_destination_operand,
1888         frv_function_symbol_referenced_p, move_source_operand,
1889         condexec_dest_operand, condexec_source_operand,
1890         reg_or_0_operand, lr_operand, fdpic_operand, got12_operand,
1891         const_unspec_operand, gpr_or_memory_operand,
1892         gpr_or_memory_operand_with_scratch, fpr_or_memory_operand,
1893         icc_operand, fcc_operand, cc_operand, icr_operand,
1894         fcr_operand, cr_operand, call_operand, sibcall_operand,
1895         symbolic_operand, relational_operator,
1896         integer_relational_operator, float_relational_operator,
1897         ccr_eqne_operator, minmax_operator,
1898         condexec_si_binary_operator, condexec_si_media_operator,
1899         condexec_si_divide_operator, condexec_si_unary_operator,
1900         condexec_sf_conv_operator, condexec_sf_add_operator,
1901         condexec_memory_operand, intop_compare_operator, acc_operand,
1902         even_acc_operand, quad_acc_operand, accg_operand: Move to
1903         predicates.md.
1904         * config/frv/frv.h (PREDICATE_CODES): Remove.
1905         * config/frv/frv.md: Include predicates.md.
1906         * config/frv/predicates.md: New.
1907
1908 2004-04-04  Richard Sandiford  <rsandifo@redhat.com>
1909
1910         PR target/19537
1911         * Makefile.in (tree-ssa-loop-ivopts.o): Depend on langhooks.h.
1912         * tree-ssa-loop-ivopts.c: Include langhooks.h.
1913         (add_standard_iv_candidates_for_size): New function, extracting code
1914         from add_standard_iv_candidates and parameterizing it by type size.
1915         (add_standard_iv_candidates): Use add_standard_iv_candidates_for_size.
1916
1917 2004-04-04  Richard Sandiford  <rsandifo@redhat.com>
1918
1919         * system.h (GCOV_SIZE_TYPE): Unposion.
1920         * gcov-io.h (GCOV_TYPE_NODE): Delete, replacing with...
1921         (GCOV_TYPE_SIZE): ...this new macro.
1922         * coverage.h (get_gcov_type, GCOV_TYPE_NODE): Declare.
1923         * coverage.c (get_gcov_type, get_gcov_unsigned_t): New functions.
1924         (rtl_coverage_counter_ref): Use GCOV_TYPE_SIZE.
1925         (build_fn_info_type, build_fn_info_value, build_ctr_info_type)
1926         (build_ctr_info_value, build_gcov_info): Use get_gcov_unsigned_t
1927         instead of unsigned_intSI_type_node.
1928         * rtl-profile.c (rtl_gen_interval_profiler, rtl_gen_pow2_profiler)
1929         (rtl_gen_one_value_profiler_no_edge_manipulation)
1930         (rtl_gen_const_delta_profiler): Use GCOV_TYPE_SIZE.
1931         * value-prof.c: Include coverage.h.
1932
1933 2005-04-02  Daniel Berlin  <dberlin@dberlin.org>
1934             Diego Novillo <dnovillo@redhat.com>
1935             
1936         Fix PR tree-optimization/20703
1937         Fix PR tree-optimization/20725
1938         
1939         * tree-ssa-pre.c (phi_translate): Handle tcc_comparison.
1940         (create_expression_by_pieces): Ditto.
1941         (valid_in_set): Ditto. Also handle tcc_declaration.
1942         (find_or_generate_expression): Handle comparison class.
1943         (insert_into_preds_of_block): Ditto.
1944         (insert_aux): Ditto.
1945         (create_value_expr_from): Handle comparison class, recursively
1946         handle reference nodes.
1947         (compute_avail): Handle comparison classes, rewrite a little cleaner.
1948         (execute_pre): Fix spacing.
1949         (do_fre): Renamed to execute_fre.
1950
1951 2005-04-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
1952
1953         * doc/invoke.texi (SPARC options): Document that
1954         -mlittle-endian is not supported on Linux either.
1955
1956 2005-04-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
1957
1958         PR target/4198
1959         PR target/12027
1960         * config.gcc (Obsolete configurations): Remove
1961         sparclite-*-coff*, sparclite-*-elf* and sparc86x-*-elf*.
1962         (sparclite-*-coff*): Delete.
1963         (sparclite-*-elf*): Likewise.
1964         (sparc86x-*-elf*): Likewise.
1965         (target_cpu_default) <sparc*-*-*>: Remove sparc86x.
1966         * config/sparc/lite.h: Delete.
1967         * config/sparc/litecoff.h: Likewise.
1968         * config/sparc/liteelf.h: Likewise.
1969         * config/sparc/sp86x-elf.h: Likewise.
1970         * config/sparc/t-sparclite: Likewise.
1971         * config/sparc/t-sp86x: Likewise.
1972
1973 2005-04-04  Adrian Straetling  <straetling@de.ibm.com>
1974
1975         * config/s390/s390-protos.h: (s390_comparison,
1976         s390_alc_comparison, s390_slb_comparison, const0_operand,
1977         consttable_operand, larl_operand, s_operand,
1978         shift_count_operand, bras_sym_operand, load_multiple_operation,
1979         store_multiple_operation, s390_plus_operand): Remove prototypes.
1980         (s390_legitimate_address_without_index_p): New prototype.
1981         * config/s390/s390.c: (SYMBOL_FLAG_ALIGN1, DISP_IN_RANGE): Move
1982         to s390.h.
1983         (s390_comparison, s390_alc_comparison, s390_slb_comparison,
1984         const0_operand, consttable_operand, larl_operand, s_operand,
1985         shift_count_operand, bras_sym_operand, load_multiple_operation,
1986         store_multiple_operation, s390_plus_operand): Move to
1987         predicates.md.
1988         (check_mode): Remove.
1989         (s390_branch_condition_mask): Remove 'static'. Move prototype to
1990         s390-protos.h.
1991         (s390_legitimate_address_without_index_p): New.
1992         * config/s390/s390.h (PREDICATE_CODES): Remove.
1993         * config/s390/s390.md: Include predicates.md.
1994         * config/s390/predicates.md: New.
1995
1996 2005-04-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
1997
1998         PR target/20446
1999         * config/sparc/sparc.h (NEED_INDICATE_EXEC_STACK): Define to 0.
2000         * config/sparc/linux.h (TARGET_ASM_FILE_END): Delete.
2001         (NEED_INDICATE_EXEC_STACK): Define to 1.
2002         * config/sparc/linux64.h (TARGET_ASM_FILE_END): Delete.
2003         (NEED_INDICATE_EXEC_STACK): Define to 1.
2004         * config/sparc/sparc.c (TARGET_ASM_FILE_END): Set to sparc_file_end.
2005         (add_pc_to_pic_symbol): Rename into pic_helper_symbol.
2006         (add_pc_to_pic_symbol_name): Rename into pic_helper_symbol_name.
2007         (pic_helper_emitted_p): New global.
2008         (emit_pic_helper): New function extracted from...
2009         (load_pic_register): ...here.  Add 'delay_pic_helper' parameter.
2010         Do not call emit_pic_helper if delay_pic_helper is true.
2011         (sparc_expand_prologue): Pass 'false' to load_pic_register.
2012         (sparc_output_mi_thunk): Pass 'true' to load_pic_register.
2013         (sparc_file_end): New function.
2014
2015 2005-04-04  Kazu Hirata  <kazu@cs.umass.edu>
2016
2017         * config/mcore/mcore-protos.h: Remove the prototypes for
2018         mcore_arith_reg_operand, mcore_general_movsrc_operand,
2019         mcore_general_movdst_operand, mcore_reload_operand,
2020         mcore_arith_J_operand, mcore_arith_K_operand,
2021         mcore_arith_K_operand_not_0, mcore_arith_M_operand,
2022         mcore_arith_K_S_operand, mcore_arith_imm_operand,
2023         mcore_arith_any_imm_operand, mcore_arith_O_operand,
2024         mcore_literal_K_operand, mcore_addsub_operand,
2025         mcore_compare_operand, mcore_load_multiple_operation,
2026         mcore_store_multiple_operation, mcore_call_address_operand.
2027         Add a prototype for const_ok_for_mcore.
2028         * config/mcore/mcore.c (mcore_call_address_operand,
2029         mcore_general_movsrc_operand, mcore_general_movdst_operand,
2030         mcore_arith_reg_operand, mcore_reload_operand,
2031         mcore_arith_J_operand, mcore_arith_K_operand,
2032         mcore_arith_K_operand_not_0, mcore_arith_K_S_operand,
2033         mcore_arith_M_operand, mcore_arith_imm_operand,
2034         mcore_arith_any_imm_operand, mcore_arith_O_operand,
2035         mcore_literal_K_operand, mcore_addsub_operand,
2036         mcore_compare_operand, mcore_load_multiple_operation,
2037         mcore_store_multiple_operation): Move to predicates.md.
2038         (const_ok_for_mcore): Export.
2039         * config/mcore/mcore.h (PREDICATE_CODES): Remove.
2040         * config/mcore/mcore.md: Include predicates.md.
2041         * config/mcore/predicates.md: New.
2042
2043         * config/mcore/predicates.md: Fix a comment typo.
2044
2045 2005-04-04  Andreas Krebbel  <krebbel1@de.ibm.com>
2046             Adrian Straetling  <straetling@de.ibm.com>
2047
2048         * config/s390/2064.md ("z_mul", "z_inf"): New insn reservations.
2049         * config/s390/2084.md ("x_mul_hi", "x_mul_sidi", "x_div"): Likewise.
2050         * config/s390/s390.md ("imulhi", "imulsi", "imuldi"): Added to "type"
2051         attribute.
2052         ("imul"): Removed from "type" attribute.
2053         ("*muldi3_sign", "muldi3"): Changed type to imuldi.
2054         ("mulsi3/1", "mulsi3/3", "mulsi/4", "mulsidi3", "umulsidi3"): 
2055         Changed type to imulsi.
2056         ("*mulsi3_sign", "mulsi3/2"): Changed type to imulhi.
2057
2058 2005-04-04  Richard Sandiford  <rsandifo@redhat.com>
2059
2060         * config/mcore/mcore.h (target_flags, HARDLIT_BIT, ALIGN8_BIT, DIV_BIT)
2061         (RELAX_IMM_BIT, W_FIELD_BIT, OVERALIGN_FUNC_BIT, CGDATA_BIT)
2062         (SLOW_BYTES_BIT, LITTLE_END_BIT, M340_BIT, TARGET_HARDLIT)
2063         (TARGET_DIV, TARGET_RELAX_IMM, TARGET_W_FIELD, TARGET_OVERALIGN_FUNC)
2064         (TARGET_CG_DATA, TARGET_SLOW_BYTES, TARGET_LITTLE_END, TARGET_M340)
2065         (TARGET_SWITCHES, mcore_stack_increment_string)
2066         (TARGET_OPTIONS): Delete.
2067         (TARGET_DEFAULT, OPTIMIZATION_OPTIONS): Use MASK_* constants rather
2068         than *_BIT constants.
2069         (TARGET_8ALIGN): #undef old definition before redefining to 1.
2070         * config/mcore/mcore.c (mcore_stack_increment_string): Delete.
2071         (TARGET_DEFAULT_TARGET_FLAGS): Override default to TARGET_DEFAULT.
2072         (mcore_override_options): Delete mcore_stack_increment code.
2073         Change use of M340_BIT to MASK_M340.
2074         * config/mcore/mcore.opt: New file.
2075
2076 2005-04-04  Ian Lance Taylor  <ian@airs.com>
2077
2078         * config/arm/arm.c (replace_symbols_in_block): Remove static
2079         function.
2080
2081 2005-04-04  Kazu Hirata  <kazu@cs.umass.edu>
2082
2083         * config/fr30/fr30-protos.h: Remove the prototypes for
2084         stack_add_operand, add_immediate_operand,
2085         high_register_operand, low_register_operand, call_operand,
2086         di_operand, and nonimmediate_di_operand.
2087         * config/fr30/fr30.c (stack_add_operand,
2088         add_immediate_operand, high_register_operand,
2089         low_register_operand, call_operand, di_operand,
2090         nonimmediate_di_operand): Move to predicates.md.
2091         * config/fr30/fr30.h (PREDICATE_CODES): Remove.
2092         * config/fr30/fr30.md: Include predicates.md.
2093         * config/fr30/predicates.md: New.
2094
2095         * config/mcore/mcore.h (PREDICATE_CODES): Add SYMBOL_REF and
2096         LABEL_REF to mcore_general_movsrc_operand.  Add SYMBOL_REF to
2097         mcore_call_address_operand.
2098
2099         * config/sh/sh.h (PREDICATE_CODES): Add CONST to
2100         general_movsrc_operand.
2101
2102 2005-04-04  Alan Modra  <amodra@bigpond.net.au>
2103
2104         * passes.c (rest_of_handle_final): NULL unlikely_text_section_name
2105         after freeing.
2106
2107 2005-04-04  Richard Earnshaw  <richard.earnshaw@arm.com>
2108
2109         PR target/14812
2110         * arm.c (arm_select_cc_mode): Return CC_Zmode when comparing against
2111         a negated value.
2112
2113 2005-04-04  Richard Henderson  <rth@redhat.com>
2114             Jakub Jelinek  <jakub@redhat.com>
2115
2116         PR rtl-optimization/16104
2117         * fold-const.c (fold_unary): Fix folding of vector conversions.
2118
2119 2005-04-04  Richard Sandiford  <rsandifo@redhat.com>
2120
2121         * config.gcc (xstormy16-*-elf): Set extra_options.
2122         * config/stormy16/stormy16.h (target_flags, TARGET_SWITCHES): Delete.
2123         * config/stormy16/stormy16.opt: New file.
2124
2125 2005-04-04  Richard Sandiford  <rsandifo@redhat.com>
2126
2127         * config/pdp11/pdp11.h (target_flags, TARGET_SWITCHES, TARGET_DEFAULT)
2128         (TARGET_FPU, TARGET_SOFT_FLOAT, TARGET_AC0, TARGET_NO_AC0, TARGET_45)
2129         (TARGET_BCOPY_BUILTIN, TARGET_INT16, TARGET_INT32, TARGET_FLOAT32)
2130         (TARGET_FLOAT64, TARGET_ABSHI_BUILTIN, TARGET_BRANCH_EXPENSIVE)
2131         (TARGET_BRANCH_CHEAP, TARGET_SPLIT, TARGET_NOSPLIT)
2132         (TARGET_UNIX_ASM): Delete.
2133         (TARGET_40_PLUS): Redefine in terms of TARGET_40 and TARGET_45.
2134         * config/pdp11/2bsd.h (TARGET_UNIX_ASM_DEFAULT): Use MASK_UNIX_ASM.
2135         * config/pdp11/pdp11.c (pdp11_handle_option): New function.
2136         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
2137         * config/pdp11/pdp11.opt: New file.
2138
2139 2005-04-03  Roger Sayle  <roger@eyesopen.com>
2140             Alexandre Oliva  <aoliva@redhat.com>
2141
2142         PR c++/19199
2143         * fold-const.c (non_lvalue): Split tests into...
2144         (maybe_lvalue_p): New function.
2145         (fold_cond_expr_with_comparison): Preserve lvalue-ness for the
2146         C++ front-end prior to lowering into gimple form.
2147
2148 2005-04-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2149
2150         * builtins.def (BUILT_IN_STPNCPY, BUILT_IN_STRCASECMP,
2151         BUILT_IN_STRNCASECMP): New.
2152         * doc/extend.texi: Document stpncpy, strcasecmp, strncasecmp
2153         and strndup.
2154
2155 2005-04-03  Richard Earnshaw  <richard.earnshaw@arm.com>
2156
2157         PR target/14812
2158         * arm.md (addsi3_compare0_for_combiner): Delete.
2159         (addsi3_compare0_scratch_for_combiner): Delete.
2160         (cmpsi_neg_shiftsi): Delete.
2161         (compare_negsi_si): New pattern.
2162         (cmpsi_negshiftsi_si): New pattern.
2163         (negated_cbranchsi4): Restrict to equality_operator.
2164         
2165         * arm.md (movhi_insn_arch4): delete trailing white space from assembler
2166         template.
2167
2168 2005-04-03  Kazu Hirata  <kazu@cs.umass.edu>
2169
2170         * cfghooks.c, cfgrtl.c, modulo-sched.c, config/i386/winnt.c:
2171         Fix comment typos.
2172
2173         * doc/install.texi: Fix a typo.
2174
2175 2005-04-03  Steven Bosscher  <stevenb@suse.de>
2176
2177         PR middle-end/20648
2178         * bb-reorder.c (duplicate_computed_gotos): Do not unfactor
2179         a computed goto if the edge to the computed goto block has
2180         incoming abnormal edges.  Clarify how the function works.
2181
2182 2005-04-03  Nathan Sidwell  <nathan@codesourcery.com>
2183
2184         * params.c (set_param_value): Use gcc_assert & gcc_unreachable.
2185         * passes.c (open_dump_file, rest_of_handle_final): Likewise.
2186         * postreload-gcse.c (expr_equiv_p, oprs_unchanged_p,
2187         hash_scan_set, reg_set_between_after_reload_p,
2188         reg_used_between_after_reload_p, get_avail_load_store_reg,
2189         eliminate_partially_redundant_load): Likewise.
2190         * postreload.c (reload_cse_simplify_set,
2191         reload_combine_note_use): Likewise.
2192         * predict.c (predict_insn, expected_value_to_br_prob,
2193         propagate_freq, expensive_function_p): Likewise.
2194         * print-rtl.c (print_rtx): Likewise.
2195         * profile.c (instrument_edges, instrument_values,
2196         compute_branch_probabilities, branch_prob, union_groups,
2197         tree_register_profile_hooks, rtl_register_profile_hooks): Likewise.
2198         * protoize.c (in_system_include_dir, file_could_be_converted,
2199         file_normally_convertible, gen_aux_info_file, seek_to_line,
2200         do_cleaning): Likewise.
2201         * tree-ssa-alias.c (collect_points_to_info_r): Likewise.
2202         * tree-ssa-ccp.c (execute_fold_all_builtins): Likewise.
2203         * tree-ssa-loop-ivopts.c (produce_memory_decl_rtl): Likewise.
2204
2205 2005-04-03 Mostafa Hagog <mustafa@il.ibm.com>
2206
2207         * cfg.c (clear_bb_flags): Don't clear BB_DISABLE_SCHEDULE.
2208         * modulo-sched.c (undo_replace_buff_elem): New structure.
2209         (kernel_number_of_cycles, ps_unschedule_node,
2210         undo_generate_reg_moves,free_undo_replace_buff,
2211         undo_permute_partial_schedule,  loop_single_full_bb_p,
2212         SIMPLE_SMS_LOOP_P, loop_canon_p, canon_loop,
2213         build_loops_structure, get_sched_window): New.
2214         (generate_reg_moves): Return undo_replace_buff_elem and other
2215         fixes.
2216         (generate_prolog_epilog): Remove old loop versioning.
2217         (sms_schedule): Use loop information and loop_version.
2218         (sms_schedule_by_order): Split part of it to get_sched_window.
2219         * passes.c (rest_of_handle_sms): call cfg_layout_initialize
2220         cfg_layout_finalize and free_dominance_info before/after SMS.
2221
2222 2005-04-03 Mostafa Hagog <mustafa@il.ibm.com>
2223
2224         * cfghooks.c (lv_flush_pending_stmts,
2225         cfg_hook_duplicate_loop_to_header_edge, extract_cond_bb_edges,
2226         lv_adjust_loop_header_phi, lv_add_condition_to_bb): New.
2227         * cfghooks.h (cfg_hook_duplicate_loop_to_header_edge,
2228         lv_add_condition_to_bb,
2229         lv_adjust_loop_header_phi, extract_cond_bb_edges,
2230         flush_pending_stmts): New in cfg_hooks structure.
2231         (cfg_hook_duplicate_loop_to_header_edge, lv_flush_pending_stmts,
2232         extract_cond_bb_edges, lv_adjust_loop_header_phi,
2233         lv_add_condition_to_bb): New declarations.
2234         * cfgloop.h (duplicate_loop_to_header_edge): Change return type to
2235         bool.
2236         (loop_version): Declare.
2237         * cfgloopmanip.c (cfghooks.h): Include.
2238         (duplicate_loop_to_header_edge): Change return type to bool.
2239         (loop_version, lv_adjust_loop_entry_edge): Move here.
2240         * cfgrtl.c (cfgloop.h): Include.
2241         (rtl_verify_flow_info_1): Fix.
2242         (rtl_lv_add_condition_to_bb, rtl_extract_cond_bb_edges): New.
2243         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Add hooks to
2244         initialization.
2245         * tree-cfg.c (tree_lv_adjust_loop_header_phi,
2246         tree_lv_add_condition_to_bb): New.
2247         (tree_cfg_hooks): Add new hooks to initialization.
2248         * tree-ssa-loop-manip.c (lv_adjust_loop_header_phi,
2249         lv_adjust_loop_entry_edge, tree_ssa_loop_version): Remove.
2250
2251 2005-04-03  Kazu Hirata  <kazu@cs.umass.edu>
2252
2253         * config/stormy16/stormy16.h (PREDICATE_CODES): Add SUBREG to
2254         xstormy16_below100_or_register,
2255         xstormy16_splittable_below100_or_register, and
2256         nonimmediate_nonstack_operand.
2257
2258         * config/stormy16/stormy16-protos.h: Remove the prototypes for
2259         xstormy16_ineqsi_operator, equality_operator,
2260         inequality_operator, shift_operator,
2261         xstormy16_below100_operand, xstormy16_below100_or_register,
2262         xstormy16_splittable_below100_or_register,
2263         xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand.
2264         * config/stormy16/stormy16.c (xstormy16_ineqsi_operator,
2265         equality_operator, inequality_operator,
2266         xstormy16_below100_operand, xstormy16_below100_or_register,
2267         xstormy16_splittable_below100_or_register,
2268         xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand,
2269         nonimmediate_nonstack_operand, shift_operator): Move to
2270         predicates.md.
2271         * config/stormy16/stormy16.h (PREDICATE_CODES): Remove.
2272         * config/stormy16/stormy16.md: Include predicates.md.
2273         * config/stormy16/predicates.md: New.
2274
2275 2005-04-02  Kazu Hirata  <kazu@cs.umass.edu>
2276
2277         * config/iq2000/iq2000.c (uns_arith_operand, arith_operand,
2278         small_int, large_int, reg_or_0_operand, simple_memory_operand,
2279         equality_op, cmp_op, pc_or_label_operand, call_insn_operand,
2280         move_operand, power_of_2_operand): Move to predicates.md.
2281         * config/iq2000/iq2000.h (SPECIAL_MODE_PREDICATES,
2282         PREDICATE_CODE): Remove.
2283         * config/iq2000/iq2000.md: Include predicates.md.
2284         * config/iq2000/predicates.md: New.
2285
2286 2005-04-02  Richard Sandiford  <rsandifo@redhat.com>
2287
2288         * config/m68hc11/m68hc11.h (target_flags, MASK_SHORT)
2289         (MASK_AUTO_INC_DEC, MASK_M6811, MASK_M6812, MASK_M68S12)
2290         (MASK_NO_DIRECT_MODE, MASK_MIN_MAX, MASK_LONG_CALLS)
2291         (TARGET_SHORT, TARGET_M6811, TARGET_M6812, TARGET_M68S12)
2292         (TARGET_AUTO_INC_DEC, TARGET_MIN_MAX, TARGET_NO_DIRECT_MODE)
2293         (TARGET_LONG_CALLS, TARGET_SWITCHES, TARGET_OPTIONS)
2294         (SUBTARGET_SWITCHES, SUBTARGET_OPTIONS, m68hc11_regparm_string)
2295         (m68hc11_reg_alloc_order, m68hc11_soft_reg_count)
2296         (TARGET_M68HC11): Delete.
2297         (TARGET_DEFAULT): Change the default setting from MASK_M6811 to 0.
2298         * config/m68hc11/m68hc12.h (TARGET_M68HC12): Delete.
2299         * config/m68hc11/m68hc11.c (m68hc11_regparm_string)
2300         (m68hc11_reg_alloc_order, m68hc11_soft_reg_count)
2301         (nb_soft_regs): Delete.
2302         (TARGET_DEFAULT_TARGET_FLAGS): Override default with TARGET_DEFAULT.
2303         (m68hc11_override_options): Remove the code that caters for MASK_M6811
2304         and MASK_M6812 being set simultaneously.  Change the code that sets
2305         the default m68hc11_soft_reg_count to use integers instead of strings.
2306         (m68hc11_conditional_register_usage, hard_regno_mode_ok): Use
2307         m68hc11_soft_reg_count (which now has an int type) as the number
2308         of soft registers.
2309         * config/m68hc11/m68hc11.opt: New file.
2310
2311 2005-04-02  Kazu Hirata  <kazu@cs.umass.edu>
2312
2313         * config/fr30/fr30.h (PREDICATE_CODES): Remove
2314         fp_displacement_operand, sp_displacement_operand.
2315
2316         * config/m68hc11/m68hc11-protos.h: Add a prototype for
2317         m68hcc_auto_inc_p.
2318         Remove the prototypes for tst_operand, cmp_operand,
2319         stack_register_operand, d_register_operand,
2320         hard_addr_reg_operand, splitable_operand,
2321         m68hc11_logical_operator, m68hc11_arith_operator,
2322         m68hc11_non_shift_operator, m68hc11_shift_operator,
2323         m68hc11_unary_operator, m68hc11_eq_compare_operator,
2324         non_push_operand, hard_reg_operand, and
2325         reg_or_some_mem_operand.
2326         * config/m68hc11/m68hc11.c (m68hcc_auto_inc_p): Make it
2327         extern.
2328         (tst_operand, cmp_operand, non_push_operand,
2329         splitable_operand, reg_or_some_mem_operand,
2330         stack_register_operand, d_register_operand,
2331         hard_addr_reg_operand, hard_reg_operand,
2332         m68hc11_eq_compare_operator, m68hc11_logical_operator,
2333         m68hc11_arith_operator, m68hc11_non_shift_operator,
2334         m68hc11_shift_operator, m68hc11_unary_operator): Move to
2335         predicates.md.
2336         * config/m68hc11/m68hc11.h (PREDICATE_CODES): Remove.
2337         * config/m68hc11/m68hc11.md: Include predicates.md.
2338         * config/m68hc11/predicates.md: New.
2339
2340 2005-04-02  Alexandre Oliva  <aoliva@redhat.com>
2341
2342         PR debug/19345
2343         * dwarf2out.c (add_abstract_origin_attribute): Revert accidental
2344         change checked in along with 2005-03-03's patch for debug/20253.
2345         * tree-inline.c (remap_type): Remap TYPE_STUB_DECL.
2346         (remap_decl): Insert type decl in map earlier.
2347
2348 2005-04-02  Alexandre Oliva  <aoliva@redhat.com>
2349
2350         PR tree-optimization/20640
2351         * tree-ssa-dce.c (remove_dead_stmt): Don't redirect edge to
2352         post-dominator if it has phi nodes.
2353         (eliminate_unnecessary_stmts): Remove dead phis in all blocks
2354         before dead statements.
2355
2356 2005-04-02  Alexandre Oliva  <aoliva@redhat.com>
2357
2358         PR middle-end/20491
2359         * final.c (alter_subreg): Don't call subreg_regno for a non-REG.
2360
2361 2005-04-02  Alexandre Oliva  <aoliva@redhat.com>
2362
2363         PR rtl-optimization/20290
2364         * loop.c (for_each_insn_in_loop): Don't assume the loop body runs
2365         in every iteration if the entry point is the exit test.
2366
2367 2005-04-02  Hans-Peter Nilsson  <hp@axis.com>
2368
2369         * config/cris/cris.md (attribute "length"): Define.
2370
2371 2005-04-02  Geoffrey Keating  <geoffk@apple.com>
2372
2373         * config/rs6000/predicates.md (indexed_or_indirect_operand): New.
2374         (word_offset_memref_operand): New.
2375         * config/rs6000/rs6000-protos.h (word_offset_memref_operand): Delete.
2376         (indexed_or_indirect_operand): Delete.
2377         * config/rs6000/rs6000.c (word_offset_memref_operand): Delete.
2378         (indexed_or_indirect_operand): Delete.
2379
2380         * config/rs6000/t-darwin8: Comment out ppc64 multilib.
2381
2382         PR 20650
2383         * config/rs6000/rs6000.md (fix_truncdfsi2): Make destination
2384         a register.
2385
2386         * config/rs6000/t-darwin (TARGET_LIBGCC2_CFLAGS): Add -pipe.
2387         * config/t-darwin (TARGET_LIBGCC2_CFLAGS): Likewise.
2388
2389 2005-04-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
2390
2391         * gcc/config/vax/vax.md: Spellcheck, fix whitespace.
2392
2393 2005-04-01  Ian Lance Taylor  <ian@airs.com>
2394
2395         * gcc.c: Don't include <sys/resource.h> or declare getrusage.
2396         (rus, prus): Remove static variables.
2397         (execute): Use pex_run/pex_get_status rather than pexecute/pwait.
2398         (process_command): Permit report_times and use_pipes together.
2399
2400 2005-04-01  Joseph S. Myers  <joseph@codesourcery.com>
2401
2402         * c-decl.c (validate_proto_after_old_defn): Look at
2403         TYPE_MAIN_VARIANT of argument types.
2404
2405 2005-04-01  Paul Brook  <paul@codesourcery.com>
2406
2407         * config/arm/arm.c (thumb_call_via_label): Include space for SP.
2408         (arm_output_function_epilogue): Allow call_via_SP.
2409         (thumb_call_via_reg, arm_file_end): Ditto.
2410         * config/arm/arm.h (struct machine_function): Include space for SP.
2411         (thumb_call_via_label): Update declaration.
2412
2413 2005-04-01  Ian Lance Taylor  <ian@airs.com>
2414
2415         * final.c (final_scan_insn): Revert part of 2005-03-30 patch: when
2416         doing a peephole optimization, once again put any notes in the
2417         proper position.
2418
2419 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
2420
2421         * bb-reorder.c, fold-const.c, varasm.c: Fix comment typos.
2422
2423 2005-04-01  Nathan Sidwell  <nathan@codesourcery.com>
2424
2425         * local-alloc.c (update_equiv_regs): Use gcc_assert, gcc_unreachable.
2426         (block_alloc, find_free_reg): Likewise.
2427         * loop-doloop.c (doloop_modify): Likewise.
2428         * loop-invariant.c (record_use): Likewise.
2429         * loop-iv.c (get_biv_step_1, get_biv_step, iv_analyze,
2430         get_iv_value, canon_condition, eliminate_implied_condition,
2431         eliminate_implied_condition, simplify_using_initial_values,
2432         shorten_into_mode, canonicalize_iv_subregs,
2433         iv_number_of_iterations): Likewise.
2434         * loop-unroll.c (expand_var_during_unrolling): Likewise.
2435         * loop-unswitch.c (compare_and_jump_seq, unswitch_single_loop,
2436         unswitch_loop): Likewise.
2437         * loop.c (INSN_LUID, loop_optimize, rtx_equal_for_loop_p,
2438         move_movables, replace_call_address, find_and_verify_loops,
2439         rtx_equal_for_prefetch_p, fold_rtx_mult_add, loop_iterations,
2440         record_giv, final_giv_value, general_induction_var,
2441         simplify_giv_expr, extension_within_bounds_p, try_copy_prop,
2442         loop_giv_dump): Likewise.
2443
2444         * gcov-io.h (GCOV_CHECK, GCOV_CHECK_READING,
2445         GCOV_CHECK_WRITING): Remove.
2446         (gcov_position, gcov_rewrite): Use gcc_assert.
2447         * gcov-io.c (gcov_open, gcov_write_words, gcov_write_length,
2448         gcov_read_words, gcov_sync, gcov_seek): Use gcc_assert.
2449         * libgcov.c (__gcov_merge_single, __gcov_merge_delta): Use
2450         gcc_assert.
2451
2452 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
2453
2454         * tree-inline.c: Fix a typo.
2455
2456 2005-04-01  Nathan Sidwell  <nathan@codesourcery.com>
2457
2458         * configure.ac (enable-checking): Explicitly set all variables for
2459         collective switch values.  Alphabetize variables. Rename
2460         ac_checking_valgrind to ac_valgrind_checking.  Allow 'none' as
2461         synonym for 'no'.
2462         * doc/install.texi (enable-checking): Update documentation.
2463         * configure: Rebuilt.
2464
2465 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
2466
2467         * tree-inline.c (copy_body_r): Use CONSTANT_CLASS_P where
2468         possible.
2469
2470 2005-04-01  Richard Earnshaw  <richard.earnshaw@arm.com>
2471
2472         * arm.c (adjacent_mem_locations): Reject volatile memory refs.
2473         Also reject cases where this pattern will cause load delay stalls
2474         unless optimizing for size and it will produce a shorter sequence.
2475         * arm.md (arith_adjacent_mem): Make better use of ldm addressing
2476         variants to avoid pre-adjusting the base when possible.
2477
2478 2005-04-01  Richard Earnshaw  <richard.earnshaw@arm.com>
2479
2480         * arm.md (minmax_arithsi): Reject all eliminable registers, not just
2481         the frame and argument pointers.
2482         (strqi_preinc, strqi_predec, loadqi_preinc, loadqi_predec): Likewise.
2483         (loadqisi_preinc, loadqisi_predec, strsi_preinc): Likewise.
2484         (strsi_predec, loadsi_preinc, loadsi_predec): Likewise.
2485         (strqi_shiftpreinc, strqi_shiftpredec, loadqi_shiftpreinc): Likewise.
2486         (loadqi_shiftpredec, strsi_shiftpreinc, strsi_shiftpredec): Likewise.
2487         (loadsi_shiftpreinc, loadsi_shiftpredec): Likewise.
2488
2489 2005-04-01  Danny Smith  <dannysmith@users.sourceforge.net>
2490
2491         * config/i386/cygming.h (SUBTARGET_ATTRIBUTE_TABLE): Define,
2492         with entry for selectany attribute.
2493         * config/i386/i386-protos.h (ix86_handle_selectany_attribute):
2494         Declare.
2495         * config/i386/winnt.c (ix86_handle_selectany_attribute): Define.
2496         (i386_pe_asm_named_section): Handle sections generated by
2497         selectany attribute.
2498         * doc/extend.texi (selectany): Document attribute.
2499
2500 2005-04-01  Paolo Bonzini  <bonzini@gnu.org>
2501             Jan Hubicka  <jh@suse.cz>
2502
2503         * config/i386/i386.c (ix86_decompose_address): Look inside SUBREGs
2504         to fix addresses involving EBP and ESP.
2505         (aligned_operand, legitimate_address_p, ix86_address_cost): Be prepared
2506         for SUBREGed registers.
2507         (legitimate_address_p): Accept SUBREGed registers.
2508
2509 2005-04-01  Jakub Jelinek  <jakub@redhat.com>
2510
2511         PR c++/19406
2512         * dwarf2out.c (gen_type_die_for_member): Handle FIELD_DECL.
2513         (dwarf2out_imported_module_or_decl): Use gen_type_die_for_member
2514         for FIELD_DECLs.
2515
2516 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
2517
2518         * doc/contrib.texi, doc/invoke.texi, doc/tm.texi: Fix typos.
2519
2520 2005-04-01  James E Wilson  <wilson@specifixinc.com>
2521
2522         PR c++/20505
2523         * dwarf2out.c (rtl_for_decl_init): New function.
2524         (rtl_for_decl_location): Extracted from here.
2525         (tree_add_const_value_attribute): Call rtl_for_decl_init and
2526         add_const_value_attribute.  Delete initializer_constant_valid_p call.
2527
2528 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
2529
2530         * cgraphunit.c, dbxout.c, flow.c, gcse.c, gimplify.c,
2531         lambda-code.c, loop.c, machmode.def, mips-tfile.c,
2532         modulo-sched.c, passes.c, postreload-gcse.c, tree-eh.c,
2533         tree-ssa-ccp.c, varasm.c, config/frv/frv.c, config/frv/frv.h,
2534         config/frv/frv.md, config/i386/i386.c, config/i386/i386.h,
2535         config/i386/i386.md, config/rs6000/predicates.md,
2536         config/rs6000/rs6000.c, config/s390/fixdfdi.h,
2537         config/s390/s390.c, config/stormy16/stormy16.c,
2538         config/stormy16/stormy16.md, config/vax/vax.md: Fix comment
2539         typos.
2540
2541 2005-04-01  Joseph S. Myers  <joseph@codesourcery.com>
2542
2543         PR c/17855
2544         * gimplify.c (gimplify_expr): Create a temporary for lvalue
2545         COND_EXPR and CALL_EXPR.
2546
2547 2005-03-31  Vladimir Makarov  <vmakarov@redhat.com>
2548
2549         PR target/20632
2550         * genautomata.c (first_cycle_unit_presence): Check all alternative
2551         states for unit presence.
2552
2553         * doc/md.texi: Remove remark about impossibility to query unit
2554         presence in non nondeterministic automaton state.
2555         
2556         * config/ia64/ia64.c (get_template): Change order of unit querying.
2557
2558 2005-03-31  Kazu Hirata  <kazu@cs.umass.edu>
2559
2560         * tree-ssa-dom.c (cprop_into_successor_phis): Remove an
2561         obsolete comment.
2562
2563 2005-03-31  Zdenek Dvorak  <dvorakz@suse.cz>
2564
2565         * cfgloopanal.c (mark_loop_exit_edges): Clean EDGE_LOOP_EXIT
2566         flag for edges outside any loops.
2567
2568 2005-03-31  Janis Johnson  <janis187@us.ibm.com>
2569
2570         * doc/sourcebuild.texi (Test Directives): Describe cleanup-* procs.
2571
2572 2005-03-31  Kazu Hirata  <kazu@cs.umass.edu>
2573
2574         * tree-ssa-alias.c: Follow spelling conventions.
2575         * doc/tree-ssa.texi: Fix a typo.
2576
2577 2005-03-31  J"orn Rennecke <joern.rennecke@st.com>
2578
2579         * postreload-gcse.c: Include target.h.
2580         (gcse_after_reload_main): Return early if we cannot modify jumps.
2581         * Makefile.in (postreload-gcse.o): Depend on $(TARGET_H).
2582
2583 2005-03-31  David Edelsohn  <edelsohn@gnu.org>
2584
2585         * tree-ssa-loop-im.c (stmt_cost): Add RDIV_EXPR to list of
2586         expensive operations.
2587
2588 2005-03-31  Ian Lance Taylor  <ian@airs.com>
2589
2590         * collect2.c (lderrout): New variable.
2591         (collect_exit): Dump ldout to stdout.  Dump and unlink lderrout,
2592         if it is set, to stderr.
2593         (handler): Unlink lderrout if it is set.
2594         (dump_file): Add "to" parameter.  Change all callers.
2595         (main): Initialize lderrout.
2596         (collect_execute): Add errname parameter.  Change all callers.
2597         Rename redir parameter to outname.  Never pass
2598         PEX_STDERR_TO_STDOUT to pex_run.
2599         * collect2.h (collect_execute, dump_file): Update declarations.
2600         * tlink.c (tlink_execute): Add errname parameter.  Change all
2601         callers.
2602         (do_tlink): Check lderrout as well as ldout.
2603
2604 2005-03-31  Caroline Tice  <ctice@apple.com>
2605
2606         * Makefile.in (varasm.o): Add basic-block.h to list of requirements.
2607         (bb-reorder.o): Add errors.h to list of requirements.
2608         (STAGEFEEDBACK_FLAGS_TO_PASS): Add -freorder-blocks-and-partition to
2609         profiledbootstrap flags.
2610         * bb-reorder.c (errors.h): Add new include.
2611         (struct bbro_basic_block_data_def): Add new field, in_trace.
2612         (add_unlikely_executed_notes):  Remove function.
2613         (mark_bb_for_unlikely_executed_section): Remove function.
2614         (insert_section_boundary_note): New function.
2615         (verify_hot_cold_block_grouping): New function.
2616         (push_to_next_round_p): Remove variables and tests that push all
2617         cold blocks to last round.
2618         (find_traces): Remove code that added extra round of trace finding
2619         when doing partitioning.
2620         (find_traces_1_round) :  Remove variable last_round;  add code to 
2621         update new struct field, in_trace; correct trace_length where it was 
2622         incorrect before (after call to copy_bb); change code that pushed all 
2623         cold blocks to last round. Instead verify that all blocks going into 
2624         a trace belong in the same partition.
2625         (connect_traces): Modify to connect the traces in two passes, if the
2626         function contains both hot and cold blocks.  The first pass connects 
2627         all the traces for blocks in the partition that the first block in 
2628         the function belongs to; the second pass connnects all the traces 
2629         containing blocks that belong in the other partition.
2630         (find_rarely_executed_basic_blocks_and_crossing_edges):  Remove
2631         code that automatically put the first block in a function into the
2632         hot partition if the function had any hot blocks.
2633         (fix_crossing_unconditional_branches): Check number of succ edges 
2634         before attempting to get one.
2635         (fix_edges_for_rarely_executed_code):  Update comment describing
2636         function.
2637         (reorder_basic_blocks):  Add code to initialize new field (in_trace);
2638         remove call to add_unlikely_executed_notes; add call to 
2639         verify_hot_cold_block_grouping.
2640         (duplicate_computed_gotos): Don't change computed goto if it's a 
2641         crossing edge.
2642         (partition_hot_cold_basic_blocks):  Update function comment.
2643         * cfgcleanup.c (try_simplify_condjump): Remove redundacy from 
2644         condition.
2645         (try_forward_edges): Likewise.
2646         (merge_blocks_move_predecessor_nojumps): Likewise.
2647         (merge_blocks_move_successor_nojumps): Likewise.
2648         (merge_blocks_move): Likewise.
2649         (try_crossjump_bb): Likewise.
2650         * cfglayout.c (update_unlikely_executed_notes): Remove function.
2651         (fixup_reorder_chain): Remove code for adding UNLIKELY_EXECUTED_CODE
2652         notes to cold bb's; remove call to update_unlikely_executed_notes.
2653         (duplicate_insn_chain):  change NOTE_INSN_UNLIKELY_EXECUTED_CODE to
2654         NOTE_INSN_SWITCH_TEXT_SECTIONS.
2655         * cfglayout.h (scan_ahead_for_unlikely_executed_note): Remove
2656         function declaration.
2657         * cfgrtl.c (can_delete_note_p): Remove UNLIKELY_EXECUTED_CODE note
2658         from consideration.
2659         (rtl_can_merge_blocks): Remove redundancy from condition.
2660         (try_redirect_by_replacing_jump): Likewise.
2661         (force_nonfallthru_and_redirect): Remove code for adding
2662         UNLIKELY_EXECUTED_CODE notes to cold bb's.
2663         (commit_one_edge_insertion): Likewise.
2664         (cfg_layout_can_merge_blocks_p): Remove redundancy from condition.
2665         * dbxout.c (FORCE_TEXT): Replace function_section with 
2666         current_function_section.
2667         (struct dbx_debug_h): Add do_nothing function for new debug_hooks
2668         function, switch_text_section.
2669         (struct xcoff_debug): Likewise.
2670         (dbxout_function_end): Add code to put out label diffs for both
2671         hot and cold sections.
2672         * debug.c (struct do_nothing_debug_hooks): Add do_nothing function
2673         for new debug_hooks funciton, switch_text_section..
2674         * debug.h (struct gcc_debug_hooks):  Add new function to debug_hooks,
2675         switch_text_section.
2676         * dwarf2out.c (struct dw_fde_struct):  Add five new fields: 
2677         dw_fde_hot_section_label, dw_fde_hot_section_end_label, 
2678         dw_fde_unlikely_section_label, dw_fde_unlikely_section_end_label and 
2679         dw_fde_switched_sections.
2680         (output_call_frame_info):  Add test to see if function switches text
2681         sections in the middle; if so, use appropriate extra hot and cold 
2682         section labels to compute size deltas for the hot and cold sections.
2683         (dwarf2out_begin_prologue): Add code to initialize new fields in 
2684         dw_fde_struct.
2685         (dwarf2out_switch_text_section): New function (invoked through 
2686         debug_hook); updates new fields in dw_fde_struct appropriately and
2687         increments separate_line_info_table_in_use.
2688         (dwarf2_debug_hooks): Initialize switch_text_section function to be
2689         dwarf2out_switch_text_section.
2690         (struct var_loc_node): Add new field, section_label.
2691         (output_aranges): Add code to check whether in hot or cold section and
2692         use the appropriate label in calculating deltas.
2693         (output_ranges): Likewise.
2694         (output_line_info): Add code to check which section we're in and
2695         use appropriate hot/cold label.
2696         (add_location_or_constant_value_attribute): Likewise.
2697         (gen_subprogam_die): Modify arange attributes to use correct labels.
2698         (dwarf2out_begin_block): Change call to function_section into call to
2699         current_function_section.
2700         (dwarf2out_end_block): Likewise.
2701         (dwarf2out_source_line): Likewise.
2702         (dwarf2out_var_location): Add code to check whether in hot or cold 
2703         section and use the appropriate label.
2704         * except.c (output_function_exception_table): Change call to 
2705         function_section into call to current_function_section.
2706         * final.c (profile_function): Likewise.
2707         (scan_ahead_for_unlikely_executed_note): Remove function.
2708         (final_scan_insn):  Remove calls to 
2709         scan_ahead_for_unlikely_executed_note, and related code for switching 
2710         to cold section, except for the single time 
2711         NOTE_INSN_SWITCH_TEXT_SECTIONS may be encountered;  add calls to 
2712         debug_hooks->switch_text_sections; replace appropriate calls to 
2713         function_section with calls to current_function_section.
2714         * ifcvt.c (find_if_case_1): Remove redundancy from condition, add 
2715         test_bb to condition.
2716         (find_if_case_2): Likewise.
2717         * insn-notes.def: Change NOTE_INSN_UNLIKELY_EXECUTED_CODE to
2718         NOTE_INSN_SWITCH_TEXT_SECTIONS.  Update comment appropriately.
2719         * opts.c (decode_options): Change warning about hot/cold partitioning
2720         with exceptionss to inform (so as not to cause bootstrap failures);
2721         remove warning about partitioning with DWARF debug info.
2722         * output.h (current_function_section): Add new function decl.
2723         (insert_section_boundary_note): Likewise.
2724         (enum in_section): Move this declaration here from varasm.c.
2725         (unlikely_section_label): Likewise.
2726         (unlikely_text_section_name): Likewise.
2727         (last_text_section_name): New global variable.
2728         (last_text_section): Likewise.
2729         (hot_section_label): Likewise.
2730         (hot_section_end_label): Likewise.
2731         (cold_section_end_label): Likewise.
2732         * passes.c (rest_of_handle_final): Free unlikely_text_section_name.
2733         * print-rtl.c (print_rtx): Change NOTE_INSN_UNLIKELY_EXECUTED_CODE
2734         to NOTE_INSN_SWITCH_TEXT_SECTIONS.
2735         * reg-stack.c (emit_swap_insn): Remove UNLIKELY_EXECUTED_CODE note 
2736         insn from consideration.
2737         * sdbout.c (sdb_debug_hooks): Add do_nothing for new function, 
2738         switch_text_section.
2739         * varasm.c (basic-block.h): Add new include.
2740         (unlikely_section_label_printed): Remove global variable.
2741         (unlikely_section_label): Make global variable not be static any more.
2742         (unlikely_text_section_name): Likewise.
2743         (hot_section_end_label): New global variable (not static)
2744         (first_function_block_is_cold): Likewise.
2745         (hot_section_label): Likewise.
2746         (cold_section_end_label): Likewise..
2747         (last_text_section): New global variable, not static.
2748         (last_text_section_name): New global variable, not static.
2749         (initialize_cold_section_name): New function.
2750         (enum in_section): Move declaration to output.h.
2751         (text_section): Update last_text_section.
2752         (unlikely_text_section): Replace code to determine cold section name 
2753         with call to initialize_cold_section_name; Add code to update 
2754         last_text_section; remove code for printing out label.
2755         (named_section_real): Add code to update last_text_section and 
2756         last_text_section_name as appropriate.
2757         (function_section): Change test for 'unlikely' to depend on
2758         first_function_block_is_cold (moved old test to 
2759         current_function_section).
2760         (current_function_section): New function.
2761         (assemble_start_function): Move code that frees 
2762         unlikely_text_section_name; initialize hot_section_end_label; 
2763         print hot and cold section labels at the start of the function; 
2764         set first_function_block_is_cold, if appropriate; initialize l
2765         ast_text_section; add call to insert_section_boundary_note.
2766         (assemble_end_function):  Add code to write out hot and cold section
2767         end labels.
2768         *vmsdbgout.c (vmsdbg_debug_hooks): Add do_nothing for new function,
2769         switch_text_section.
2770         * config/darwin.c (machopic_select_section): Replace incorrect 
2771         function in base_funs; update reloc for cold sections if necessary.
2772         * config/darwin.h (SECTION_FUNCTION):  Add code to update 
2773         last_text_section if appropriate.
2774         (text_unlikely_section): Remove.
2775         * config/sparc/sparc.c (sparc_output_deferred_case_vectors): Likewise.
2776         * config/stormy16/stormy16.c (stormy_16_output_addr_vec): Likewise.
2777         * config/xtensa/xtensa.c (override_options): Turn off hot/cold
2778         partitioning for this architecture.
2779
2780 2005-03-31  Olivier Hainque  <hainque@adacore.com>
2781
2782         * dwarf2out.c (dwarf2out_frame_finish): Honor DWARF2_FRAME_INFO
2783         defined and non-zero.
2784
2785 2005-03-31  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2786
2787         PR c++/18644
2788         * doc/invoke.texi (-Wsynth): Don't document, as it now is void of
2789         semantics. 
2790
2791 2005-03-31  Alan Modra  <amodra@bigpond.net.au>
2792
2793         PR target/20611
2794         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Remove inline
2795         label operand.  Remove (use (unspec..)).  Don't emit a label on
2796         the offset word.
2797         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Don't
2798         generate inline label for load_toc_v4_PIC_1b.
2799         (rs6000_emit_load_toc_table): Likewise.
2800
2801 2005-03-31  Kazu Hirata  <kazu@cs.umass.edu>
2802
2803         * config.gcc: Obsolete i860-*-sysv4*, ip2k-*-elf,
2804         ns32k-*-netbsdelf*, and ns32k-*-netbsd*.
2805
2806 2005-03-29  Devang Patel  <dpatel@apple.com>
2807
2808         * tree-sra.c (decide_block_copy): Disable scalarization of
2809         sub-elements.
2810         
2811 2005-03-30  Stuart Hastings  <stuart@apple.com>
2812             Dale Johannesen  <dalej@apple.com>
2813
2814         * Makefile.in (print-tree.o):  Depend on tree-iterator.h.
2815         * print-tree.c (print_node):  Add case STATEMENT_LIST.
2816
2817 2005-03-31  Alan Modra  <amodra@bigpond.net.au>
2818
2819         * config.gcc (cpu_is_64bit): Set for 64-bit powerpc cpus.
2820         (powerpc64-*-linux*): Use it.  Rearrange tm_file assignment.
2821         (powerpc-*-linux*): Build a biarch compiler when --enable-targets
2822         is given with "powerpc64*" or "all", or when --with-cpu chooses
2823         a 64-bit cpu.
2824
2825 2005-03-30  James E. Wilson  <wilson@specifixinc.com>
2826
2827         PR debug/20268
2828         * dwarf2out.c (add_high_low_attributes): New function, extracted from
2829         gen_lexical_block_die.
2830         (gen_lexical_block_die, gen_inlined_subroutine_die): Call it.
2831
2832 2005-03-31  Jan Hubicka  <jh@suse.cz>
2833
2834         2004-11-02  Jan Hubicka  <jh@suse.cz>
2835
2836         * cgraph.c (cgraph_varpool_node_name): New function.
2837         (dump_cgraph_varpool_node): New function.
2838         (dump_varpool): New function.
2839         * cgraphunit.c (cgraph_optimize): Dump varpool.
2840
2841         2004-10-16  Jan Hubicka  <jh@suse.cz>
2842
2843         * cgraph.c (decide_is_variable_needed): New function.
2844         (cgraph_varpool_finalize_decl): Use it.
2845         * cgraphunit.c (cgraph_optimize): Assemble_pending_decls when not doing
2846         unit-at-a-time.
2847         * final.c (output_addr_const): Do not call mark_referenced.
2848         * passes.c (rest_of_decl_compilation): ifdef out DECL_RTL_SET_P hack;
2849         always go via cgraph.
2850         * toplev.c (wrapup_global_declarations): Kill non-unit-at-a-time code.
2851         (check_global_declarations): Ifdef out code clearing DECL_RTL.
2852         * tree-optimize.c (execute_inline): Mark functions called.
2853         * i386.c (output_pic_addr_const): Do not call mark_decl_referenced.
2854
2855         2004-10-11  Jan Hubicka  <jh@suse.cz>
2856
2857         * cgraph.c (cgraph_varpool_first_unanalyzed_node): New global voriable
2858         (cgraph_varpool_last_needed_node): New static variable.
2859         (enqueue_needed_varpool_node): Break out from ...; add items to the
2860         end of queue; update first pointers.
2861         (cgraph_varpool_mark_needed_node): ... here.
2862         (cgraph_varpool_finalize_decl): Use enqueue_needed_varpool_node.
2863         (cgraph_varpool_assemble_pending_decls): Move to cgraphunit.c
2864         * cgraph.h (cgraph_varpool_node): Add analyzed field.
2865         (cgraph_varpool_first_unanalyzed_node): Declare.
2866         * cgraphunit.c: Include output.h.
2867         (cgraph_varpool_analyze_pending_decls): New function.
2868         (cgraph_varpool_assemble_pending_decls): Move from cgraph.c; bail out
2869         for errors, analyze pending decls.
2870         (cgraph_finalize_compilation_unit): Only analyze decls.
2871         (cgraph_optimize): Assemble the decls after expanding.
2872
2873 2005-03-30  Daniel Berlin  <dberlin@dberlin.org>
2874
2875         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Make sure
2876         subvars get marked properly in tags for grouping.
2877         (add_pointed_to_var): Mark only actual pointed to
2878         variables/subvars in addresses needed.
2879         (create_overlap_variables_for): Clear call clobbered on original
2880         variable.
2881         * tree-ssa-operands.c (get_asm_expr_operands): Don't let regular
2882         addresable vars with subvars into list.
2883         * tree-ssa.c (verify_ssa_name): Verify original is not used where
2884         subvar should be.
2885
2886 2005-03-30  Richard Henderson  <rth@redhat.com>
2887
2888         * cgraph.h (struct cgraph_node): Add alias.
2889         * varasm.c (assemble_alias): Set it.
2890         * cgraphunit.c (cgraph_assemble_pending_functions): Check it and
2891         avoid calling cgraph_expand_function.
2892
2893 2005-03-30  Tom Tromey  <tromey@redhat.com>
2894
2895         * tree.def (FILE_TYPE): Removed.
2896         * typeclass.h (enum type_class): Removed file_type_class.
2897         * dwarf2out.c (is_base_type): Updated.
2898         (gen_type_die): Likewise.
2899         * dbxout.c (dbxout_type): Updated.
2900         * builtins.c (type_to_class): Updated.
2901         * tree.c (type_contains_placeholder_1): Updated.
2902         * config/sparc/sparc.c (sparc_type_code): Updated.
2903         * config/ia64/ia64.c (hfa_element_mode): Updated.
2904         * expr.c (count_type_elements): Updated.
2905         * stor-layout.c (layout_type): Updated.
2906         * tree-inline.c (remap_type): Updated.
2907         * tree-pretty-print.c (dump_generic_node): Updated.
2908
2909 2005-03-30 Fariborz Jahanian <fjahanian@apple.com>
2910
2911         * builtins.c (expand_builtin_powi): Fix mode of
2912         2nd argument to match int.
2913         * libgcc2.h (__powisf2, __powidf2, __powixf2, __powitf2): Change
2914         2nd argument type to int.
2915         * libgcc2.c: Change prototype of __powi* functions to use
2916         int.
2917
2918 2005-03-30  Dale Johannesen  <dalej@apple.com>
2919
2920         PR middle-end/19225
2921         * calls.c (expand_call):  Flush pending deferrals before
2922         throwing call.
2923
2924 2005-03-30  Joseph S. Myers  <joseph@codesourcery.com>
2925
2926         PR c/772
2927         PR c/17913
2928         * c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR,
2929         C_DECL_UNDEFINABLE_STMT_EXPR, struct c_label_list, struct
2930         c_label_context, label_context_stack): New.
2931         * c-decl.c (define_label): Check for jumps into statement
2932         expressions.  Add label to list of defined labels.
2933         (start_function): Push context on label_context_stack.
2934         (finish_function): Pop context from label_context_stack.
2935         * c-typeck.c (label_context_stack): New.
2936         (c_finish_goto_label): Check for jumps into statement
2937         expressions.  Add label to list of jumped to labels.
2938         (struct c_switch): Add blocked_stmt_expr.
2939         (c_start_case): Initialize it.
2940         (do_case): Check it.
2941         (c_finish_case): Verify !blocked_stmt_expr.
2942         (c_begin_stmt_expr):  Push context on label_context_stack.
2943         Increment blocked_stmt_expr.  Mark labels jumped to from outside
2944         as undefinable.
2945         (c_finish_stmt_expr): December blocked_stmt_expr.  Mark labels
2946         defined in the statement expression and no longer jumpable to.
2947         Mark labels jumped to from just outside the statement expression
2948         as again definable.  Pop context from label_context_stack.
2949         * doc/extend.texi (Statement Exprs): Update.
2950
2951 2005-03-30  Joseph S. Myers  <joseph@codesourcery.com>
2952
2953         PR c/20368
2954         * c-decl.c (start_function): Check for old_decl being
2955         error_mark_node.
2956
2957 2005-03-30  Ian Lance Taylor  <ian@airs.com>
2958
2959         * final.c (final): Remove prescan parameter.  Change all callers.
2960         (final_scan_insn): Remove prescan parameter.  Change all callers.
2961
2962 2005-03-30  Kazu Hirata  <kazu@cs.umass.edu>
2963
2964         * tree-vectorizer.c: Fix comment typos.
2965
2966 2005-03-30  Sebastian Pop  <pop@cri.ensmp.fr>
2967
2968         * tree-scalar-evolution.c (instantiate_parameters_1): Return
2969         as soon as a chrec_dont_know is detected.
2970
2971 2005-03-31  Danny Smith  <dannysmith@users.sourceforge.net>
2972
2973         Merge from csl-arm-branch.
2974         2004-02-12  Mark Mitchell  <mark@codesourcery.com>
2975
2976         * tlink.c (recompile_files): Do not assume that "rename" can
2977         overwrite an existing file.
2978
2979 2005-03-31  Paolo Bonzini  <bonzini@gnu.org>
2980
2981         * gcc/configure.ac (TL_AC_GNU_MAKE_GCC_LIB_PATH): Remove.
2982         * gcc/configure: Regenerate.
2983
2984 2005-03-30  Alan Modra  <amodra@bigpond.net.au>
2985
2986         * doc/install.texi: Update binutils requirement for powerpc*-linux.
2987
2988         * config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Update comments.
2989
2990         * calls.c (struct arg_data): Update "partial" comment.
2991         (load_register_parameters): Update "nregs" comment.
2992
2993 2005-03-30  Richard Sandiford  <rsandifo@redhat.com>
2994
2995         * config/iq2000/iq2000.h (target_flags, MASK_GPOPT, MASK_EMBEDDED_DATA)
2996         (MASK_UNINIT_CONST_IN_RODATA, TARGET_EMBEDDED_DATA, TARGET_SWITCHES)
2997         (TARGET_DEFAULT, TARGET_CPU_DEFAULT, SUBTARGET_TARGET_OPTIONS)
2998         (TARGET_OPTIONS, iq2000_cpu_string, iq2000_arch_string): Delete.
2999         (TARGET_DEBUG_MODE, TARGET_DEBUG_A_MODE, TARGET_DEBUG_B_MODE)
3000         (TARGET_DEBUG_C_MODE, TARGET_DEBUG_D_MODE): Define to 0 rather
3001         than target_flags & 0.
3002         * config/iq2000/iq2000.c (iq2000_cpu_string, iq2000_arch_string)
3003         (iq2000_arch, iq2000_parse_cpu): Delete.
3004         (TARGET_HANDLE_OPTION): Override default.
3005         (iq2000_handle_option): New function.
3006         (override_options): Remove -march= and -mcpu= handling.
3007         * config/iq2000/iq2000.opt: New file.
3008
3009 2005-03-30  Richard Sandiford  <rsandifo@redhat.com>
3010
3011         * config/c4x/c4x-protos.h (c4x_rpts_cycles, c4x_cpu_version): Delete.
3012         * config/c4x/c4x.h (SMALL_MEMORY_FLAG, MPYI_FLAG, FAST_FIX_FLAG)
3013         (RPTS_FLAG, C3X_FLAG, TI_FLAG, PARANOID_FLAG, MEMPARM_FLAG, DEVEL_FLAG)
3014         (RPTB_FLAG, BK_FLAG, DB_FLAG, DEBUG_FLAG, HOIST_FLAG)
3015         (LOOP_UNSIGNED_FLAG, FORCE_FLAG, PRESERVE_FLOAT_FLAG)
3016         (PARALLEL_INSN_FLAG, PARALLEL_MPY_FLAG, ALIASES_FLAG, C30_FLAG)
3017         (C31_FLAG, C32_FLAG, C33_FLAG, C40_FLAG, C44_FLAG, TARGET_SWITCHES)
3018         (TARGET_DEFAULT, TARGET_SMALL, TARGET_MPYI, TARGET_FAST_FIX)
3019         (TARGET_RPTS, TARGET_TI, TARGET_PARANOID, TARGET_MEMPARM, TARGET_DEVEL)
3020         (TARGET_RPTB, TARGET_BK, TARGET_DB, TARGET_DEBUG, TARGET_HOIST)
3021         (TARGET_LOOP_UNSIGNED, TARGET_FORCE, TARGET_PRESERVE_FLOAT)
3022         (TARGET_PARALLEL, TARGET_PARALLEL_MPY, TARGET_ALIASES)
3023         (c4x_rpts_cycles_string, c4x_cpu_version_string)
3024         (TARGET_OPTIONS): Delete.
3025         (c4x_rpts_cycles, c4x_cpu_version): Declare.
3026         (TARGET_C3X, TARGET_C30, TARGET_C31, TARGET_C32, TARGET_C33)
3027         (TARGET_C40, TARGET_C44): Redefine in terms of c4x_cpu_version.
3028         * config/c4x/c4x.c (c4x_rpts_cycles_string): Delete.
3029         (c4x_cpu_version_string): Delete.
3030         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
3031         (c4x_handle_option): New function.  Map -m3x and -m4x options to the
3032         equivalent -mcpu= option.
3033         (c4x_override_options): Remove -mrpts= and -mcpu= handling from here.
3034         Deal with the extra conditions in the old TARGET_MPYI, TARGET_RPTB,
3035         TARGET_DB, TARGET_PARALLEL and TARGET_PARALLEL_MPY macros by setting
3036         or clearing the appropriate MASK_* bit.
3037         (c4x_file_start): Use c4x_cpu_version.
3038         * config/c4x/c4x.opt: New file.
3039
3040 2005-03-30  Richard Sandiford  <rsandifo@redhat.com>
3041
3042         * doc/options.texi: Document the new MaskExists flag.
3043         * opth-gen.awk: Don't output MASK and TARGET macros for Mask(...)
3044         if the option has the MaskExists flag.
3045
3046 2005-03-30  Richard Sandiford  <rsandifo@redhat.com>
3047
3048         * opt-functions.awk (flag_set_p, test_flag): New functions.
3049         (switch_flags): Use them.
3050         * opth-gen.awk: Use flag_set_p to check for flags.
3051         * optc-gen.awk: Likewise.  Use opt_args to check for Init(...) flags.
3052
3053 2005-03-30  Ian Lance Taylor  <ian@airs.com>
3054
3055         * config.host (i[34567]86-*-mingw32*): Don't set
3056         host_can_use_collect2 to no.
3057
3058 2005-03-30  Alan Modra  <amodra@bigpond.net.au>
3059
3060         PR target/20203
3061         * builtins.c (get_memory_rtx): Expand address exp using EXPAND_NORMAL.
3062         Remove convert_memory_address call duplicating that in memory_address.
3063
3064 2005-03-29  Richard Henderson  <rth@redhat.com>
3065
3066         PR c/20519
3067         * c-decl.c (c_finish_incomplete_decl): Update complete_array_type call.
3068         (build_compound_literal): Likewise.  Propagate decl type into the
3069         initializer.
3070         (finish_decl): Likewise.  Use new return value from complete_array_type
3071         for zero sized arrays.
3072         (complete_array_type): Move ...
3073         * c-common.c (complete_array_type): ... here.  Change first argument
3074         to pointer-to-type-node.  Consistently use sizetype for the index
3075         except for zero sized arrays.  Detect zero sized arrays for pedantic
3076         mode diagnostics.  Create a new type node instead of modifying the
3077         old node in place.
3078         * c-tree.h (complete_array_type): Move decl ...
3079         * c-common.h (complete_array_type): ... here.
3080
3081 2005-03-29  Richard Henderson  <rth@redhat.com>
3082
3083         PR tree-opt/19108
3084         * tree-sra.c (generate_element_init_1): Handle RANGE_EXPR.
3085
3086 2005-03-29  Kazu Hirata  <kazu@cs.umass.edu>
3087
3088         * builtin-types.def, c-convert.c, c-format.c, ddg.c, debug.c,
3089         debug.h, et-forest.c, et-forest.h, gcov.c, rtl-profile.c,
3090         rtlhooks-def.h, rtlhooks.c, sdbout.c, tree-inline.h,
3091         tree-profile.c, tsystem.h, value-prof.h: Update copyright.
3092
3093 2005-03-29  Eric Christopher  <echristo@redhat.com>
3094
3095         * config/mips/mips.c (mips_gimplify_va_arg_expr): Update for
3096         truthvalue conversion removal.
3097
3098 2005-03-29  Ian Lance Taylor  <ian@airs.com>
3099
3100         PR bootstrap/14316
3101         * collect2.c: Never include <vfork.h>.
3102         (VFORK_STRING, vfork): Don't define.
3103         (pid): Remove global variable.
3104         (handler): Call raise instead of kill (getpid(), ...).
3105         (collect_wait): Add pex parameter.  Change all callers.  Use
3106         pex_get_status rather than pwait.
3107         (do_wait): Add pex parameter.  Change all callers.
3108         (collect_execute): Return struct pex_obj * rather than void.  Use
3109         pex routines rather than pexecute.
3110         (fork_execute): Get pex_obj from collect_execute, and pass it to
3111         do_wait.
3112         (scan_prog_file): Use pex routines rather than pipe/vfork/exec.
3113         Only declare quit_handler if SIGQUIT is defined.
3114         (scan_libraries): Likewise.
3115         * collect2.h (collect_execute): Update declaration.
3116         (collect_wait): Update declaration.
3117         * tlink.c (tlink_execute): Get pex_obj from collect_execute, and
3118         pass it to collect_wait.
3119
3120 2005-03-29  Joseph S. Myers  <joseph@codesourcery.com>
3121
3122         PR c/20672
3123         * c-parser.c (c_parser_compound_statement_nostart): Give error
3124         message for EOF instead of just setting parser->error.
3125
3126 2005-03-29  Dorit Naishlos  <dorit@il.ibm.com>
3127
3128         * tree-vectorizer.c (slpeel_update_phi_nodes_for_guard): Removed.
3129         (slpeel_update_phi_nodes_for_guard1): New function.
3130         (slpeel_update_phi_nodes_for_guard2): New function.
3131         (slpeel_tree_peel_loop_to_edge): Call above new functions instead
3132         of slpeel_update_phi_nodes_for_guard.
3133         (vectorize_loops): Remove call to loop_closed_rewrite.
3134         * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Remove
3135         assertion.
3136
3137 2005-03-29  Richard Sandiford  <rsandifo@redhat.com>
3138
3139         * config/m32r/little.h (TARGET_ENDIAN_DEFAULT): Delete.
3140         (TARGET_LITTLE_ENDIAN): New macro.
3141         * config/m32r/m32r.h (SUBTARGET_SWITCHES, target_flags)
3142         (TARGET_RELAX_MASK, TARGET_DEBUG_MASK, TARGET_DEBUG)
3143         (TARGET_ALIGN_LOOPS_MASK, TARGET_ALIGN_LOOPS)
3144         (TARGET_LOW_ISSUE_RATE_MASK, TARGET_LOW_ISSUE_RATE)
3145         (TARGET_BRANCH_COST_MASK, TARGET_BRANCH_COST, TARGET_M32RX_MASK)
3146         (TARGET_M32RX, TARGET_M32R2_MASK, TARGET_M32R2, LITTLE_ENDIAN_BIT)
3147         (TARGET_ENDIAN_DEFAULT, SUBTARGET_SWITCHES, TARGET_DEFAULT)
3148         (TARGET_SWITCHES, m32r_model_string, m32r_sdata_string)
3149         (m32r_cache_flush_trap_string, SUBTARGET_OPTIONS)
3150         (TARGET_OPTIONS): Delete.
3151         (M32R_MODEL_DEFAULT, M32R_SDATA_DEFAULT): Turn into enums.
3152         (CACHE_FLUSH_TRAP): Turn into an integer.
3153         (TARGET_LITTLE_ENDIAN): Define to 0 by default.
3154         (INITIALIZE_TRAMPOLINE): Check m32r_cache_trap >= 0 to see if
3155         -mflush-trap is in use.
3156         * config/m32r/m32r.c (m32r_model_string, m32r_sdata_string)
3157         (m32r_cache_flush_trap_string): Delete.
3158         (m32r_model) Initialize to M32R_MODEL_DEFAULT.
3159         (m32r_sdata): Likewise M32R_SDATA_DEFAULT.
3160         (m32r_cache_trap): Likewise CACHE_FLUSH_TRAP.
3161         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
3162         (m32r_handle_option): New function.  Move -mflush-trap=, -mflush-func=,
3163         -mmodel= and -msdata= handling from...
3164         (m32r_init): ...here.
3165         * config/m32r/m32r.opt: New file.
3166
3167 2005-03-29  Keith Besaw  <kbesaw@us.ibm.com>
3168
3169         * tree-ssanames.c (duplicate_ssa_name_ptr_info): New function.
3170         (duplicate_ssa_name): Call duplicate_ssa_name_ptr_info.
3171         * tree-vect-analyze.c (vect_object_analysis): additional parm
3172         pass back a "struct ptr_info_def *" with the points-to info.
3173         (vect_analyze_data_refs): set the STMT_VINFO_PTR_INFO for the
3174         statement using info returned from vect_object_analysis.
3175         * tree-vect-transform.c (update_vuses_to_preheader): New function.
3176         (vect_create_data_ref_ptr): Remove updates to vars_to_rename
3177         for virtual uses and defs when creating a replacement vector
3178         reference.  Call duplicate_ssa_name_ptr_info to define points-to
3179         info for vector pointer replacement using STMT_VINFO_PTR_INFO.
3180         (vectorizable_store): copy_virtual_operands and update
3181         definition statements.
3182         (vectorizable_load): copy_virtual_operands.  Remove call to
3183         mark_call_clobbered_vars_to_rename for call to "const" builtin.
3184         * tree-vectorizer.c (vectorize_loops): Remove calls to
3185         rewrite_into_ssa and bitmap_clear (vars_to_rename).
3186         (new_stmt_vec_info): initialize STMT_VINFO_PTR_INFO for stmt.
3187         * tree-vectorizer.h (_stmt_vec_info): add field ptr_info and
3188         define macro STMT_VINFO_PTR_INFO for use in accessing.
3189         * tree.h add export of duplicate_ssa_name_ptr_info.
3190         * rs6000.c (altivec_init_builtins): Declare builtin function
3191         __builtin_altivec_mask_for_load to be "const".
3192
3193 2005-03-29  Jakub Jelinek  <jakub@redhat.com>
3194
3195         PR middle-end/20622
3196         * cgraph.h (struct cgraph_varpool_node): Add alias field.
3197         * cgraph.c (cgraph_varpool_assemble_pending_decls): Don't call
3198         assemble_variable on aliases.
3199         * varasm.c (assemble_alias): Set node->alias.
3200         * toplev.c (wrapup_global_declarations): Don't call
3201         rest_of_decl_compilation on aliases again.
3202
3203 2005-03-29  Paul Brook  <paul@codesourcery.com>
3204
3205         * config/arm/arm-protos.h (arm_dbx_register_number): Add prototype.
3206         * config/arm/arm.c (arm_dbx_register_number): New function.
3207         * config/arm/arm.h (IS_FPA_REGNUM, DBX_REGISTER_NUMBER): Define.
3208
3209 2005-03-29  Eric Botcazou  <ebotcazou@libertysurf.fr>
3210
3211         PR middle-end/20263
3212         * varasm.c (make_decl_rtl) [ASM_DECLARE_REGISTER_GLOBAL]: Use
3213         the DECL_NAME, not the DECL_ASSEMBLER_NAME.
3214
3215 2005-03-29  Dale Johannesen <dalej@apple.com>
3216
3217         * Makefile.in (value-prof.o): New dependencies on $(DIAGNOSTIC_H)
3218         $(TREE_H) and $(COVERAGE_H).
3219         * coverage.c (compute_checksum): Use DECL_NAME not DECL_ASSEMBLER_NAME.
3220         * opts.c (common_handle_option): Enable tree-based value transforms.
3221         * toplev.c (process_options): Ditto.
3222         * value-prof.h (struct histogram_value_t): Redefine. "Adjust" below
3223         refers to references to this type.
3224         * tree-flow.h: (struct stmt_ann_d): Add histograms field.
3225         * rtl-profile.c (rtl_gen_interval_profiler): Adjust. Remove checks
3226         for may_be_more, may_be_less.
3227         (rtl_gen_pow2_profiler): Adjust.
3228         (rtl_gen_one_value_profiler_no_edge_manip): Adjust.
3229         (rtl_gen_one_value_profiler): Adjust.
3230         (rtl_gen_const_delta_profiler): Adjust.
3231         * tree-profile.c (tree_gen_interval_profiler): Implement.
3232         (tree_gen_pow2_profiler): Ditto.
3233         (tree_gen_one_value_profiler): Ditto.
3234         (tree_profiling): New.
3235         (pass_tree_profile): Reference it.
3236         * value-prof.c: Include tree-flow.h, tree-flow-inline.h, diagnostic.h,
3237         tree.h, gcov-io.h.
3238         (insn_divmod_values_to_profile): Rename to
3239         rtl_divmod_values_to_profile. Adjust.
3240         (insn_values_to_profile): Rename to rtl_values_to_profile. Adjust.
3241         (insn_prefetch_values_to_profile): Adjust.
3242         (rtl_value_profile_transformations): Adjust.
3243         (gen_divmod_fixed_value): Rename to rtl_divmod_fixed_value.
3244         (gen_mod_pow2): Rename to rtl_mod_pow2.
3245         (gen_mod_subtract): Rename to rtl_mod_subtract.
3246         (divmod_fixed_value_transform): Rename to
3247         rtl_divmod_fixed_value_transform.
3248         (mod_pow2_value_transform): Rename to rtl_mod_pow2_value_transform.
3249         (mod_subtract_transform): Rename to rtl_mod_subtract_transform.
3250         (rtl_find_values_to_profile): Adjust.
3251         (tree_value_profile_transformations): Implement.
3252         (tree_divmod_values_to_profile): New.
3253         (tree_values_to_profile): New.
3254         (tree_divmod_fixed_value): New.
3255         (tree_mod_pow2): New.
3256         (tree_mod_subtract): New.
3257         (tree_divmod_fixed_value_transform): New.
3258         (tree_mod_pow2_value_transform): New.
3259         (tree_mod_subtract_transform): New.
3260         (tree_find_values_to_profile): Implement.
3261         * profile.c (instrument_values):  Free histograms.
3262         (compute_value_histograms): Adjust. Implement tree version.
3263
3264 2005-03-29  Uros Bizjak  <uros@kss-loka.si>
3265
3266         * reg-stack.c (subst_stack_regs_pat): Handle <UNSPEC_FIST> case.
3267         * config/i386/i386.c (output_fix_trunc): Add new round_mode
3268         variable.  Output "fldcw" depending on round_mode.
3269         * config/i386/i386.md (UNSPEC_FIST): New.
3270         (fistdi2, fistdi2_with_temp, fist<mode>2, fist<mode>2_with_temp):
3271         New isns patterns to implement lrint and llrint built-ins as x87
3272         intrinsic function.
3273         (fistdi2, fist<mode>2 splitters): New splitters.
3274         (lrint<mode>2): New expanders.
3275
3276 2005-03-28  Ian Lance Taylor  <ian@airs.com>
3277
3278         * config/arc/arc.c (arc_output_function_epilogue): Pass prescan as
3279         0 when calling final_scan_insn.
3280
3281 2005-03-28  Jan Hubicka  <jh@suse.cz>
3282
3283         PR middle-end/20635
3284         * varasm.c (mark_decl_referenced): Do not mark extern inline functions
3285         as needed.
3286
3287         * tree-inline.c (estimate_num_insns_1): Use declaration to discover argument
3288         types where possible.
3289
3290 2005-03-26  Per Bothner  <per@bothner.com>
3291
3292         Make -f[no-]show-column also control non-cpp diagnostics.
3293         * c.opt (fshow-column): Move option from here ...
3294         * common.opt (fshow-column): ... to here.
3295         * diagnostic.c (diagnostic_build_prefix): Only print column number
3296         if flag_show_column.
3297
3298 2005-03-27  Steven Bosscher  <stevenb@suse.de>
3299
3300         * vax-protos.h (vax_output_int_move, vax_output_int_add,
3301         vax_output_conditional_branch): New prototypes.
3302         * vax.c (vax_output_int_move, vax_output_int_add): New functions,
3303         extracted from vax.md mov and add patterns.
3304         (vax_output_conditional_branch): New function to output conditional
3305         branch instructions.
3306         * vax.md: Use mode macros for arithmetic and mov patterns.
3307         Use code macros for the jump patterns.
3308
3309 2005-03-26  Andrew Pinski  <pinskia@physics.uc.edu>
3310
3311         * Makefile.in (libbackend.o): Depend on version files;
3312         add custom generation command.
3313
3314 2005-03-26  Andrew Pinski  <pinskia@physics.uc.edu>
3315
3316         PR target/20636
3317         * config/rs6000/rs6000.md (extendsfdf2_fpr): Check to make
3318         sure that we have a REG before getting its REGNO.
3319
3320 2005-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3321
3322         * builtin-types.def (BT_FN_STRING_CONST_STRING_SIZE): New.
3323         * builtins.def (BUILT_IN_STRNDUP): New.
3324
3325 2005-03-25  Pat Haugen  <pthaugen@us.ibm.com>
3326
3327         PR tree-optimization/20470
3328         * fold-const.c (fold_cond_expr_with_comparison): Recognize/fold
3329         ABS(x-y).
3330
3331 2005-03-25  Mike Stump  <mrs@apple.com>
3332
3333         * config/darwin.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Don't allow 0
3334         sized objects.
3335
3336 2005-03-25  Geoffrey Keating  <geoffk@apple.com>
3337
3338         * config/rs6000/darwin-fallback.c: Don't include <ucontext.h>.
3339         Use our own structure definitions.
3340
3341         * config/rs6000/rs6000.md (UNSPEC constants): Add UNSPEC_STFIWX.
3342         (fix_truncdfsi2): Allow registers or memory as destination.
3343         When TARGET_PPC_GFXOPT, generate simplified pattern.
3344         (fix_truncdfsi2_internal): Use define_insn_and_split.
3345         (fix_truncdfsi2_internal_gfxopt): New.
3346         (fctiwz): Don't confuse register allocation by giving it no choices.
3347         (stfiwx): New.
3348         * config/rs6000/rs6000.h (EXTRA_CONSTRAINT): Add 'Z'.
3349         (EXTRA_MEMORY_CONSTRAINT): Likewise.
3350         * config/rs6000/rs6000.c (indexed_or_indirect_operand): New.
3351         * config/rs6000/rs6000-protos.h (indexed_or_indirect_operand): New.
3352
3353 2005-03-25  Kazu Hirata  <kazu@cs.umass.edu>
3354
3355         * dominance.c (free_dominance_info): Speed up by freeing et
3356         data structures without maintaining other nodes.
3357         * et-forest.c (et_free_tree_force): New.
3358         * et-forest.h: Add a prototype for et_free_tree_force.
3359
3360         * tree.c (get_set_constructor_bits,
3361         get_set_constructor_bytes): Remove.
3362         * tree.h: Remove the corresponding prototypes.
3363
3364 2005-03-25  John David Anglin  <dave.anglin@nrc-crnc.gc.ca>
3365
3366         PR target/15491
3367         * vax.c (vax_rtx_costs_1): Merge with vax_rtx_costs.
3368         (vax_rtx_costs): Return false when passed unsupported rtx's.  Handle
3369         FLOAT_EXTEND, FLOAT_TRUNCATE and TRUNCATE.  Fix costs for POST_INC,
3370         PRE_DEC, NEG and NOT.
3371
3372 2005-03-25  Kazu Hirata  <kazu@cs.umass.edu>
3373
3374         * fold-const.c: Convert uses of fold (build (...)) to
3375         fold_buildN.
3376
3377 2005-03-25  Zdenek Dvorak  <dvorakz@suse.cz>
3378
3379         PR rtl-optimization/20249
3380         * cse.c (insert_regs): Do not record equivalence of registers in
3381         different modes.
3382
3383 2005-03-24  Kazu Hirata  <kazu@cs.umass.edu>
3384
3385         * emit-rtl.c (reverse_comparison): Remove.
3386         * rtl.h: Remove the corresponding prototype.
3387
3388 2005-03-24  James E Wilson  <wilson@specifixinc.com>
3389
3390         * doc/install.texi (--enable-altivec): Delete docs.
3391
3392 2005-03-24  David Edelsohn  <edelsohn@gnu.org>
3393
3394         * config/rs6000/predicates.md (easy_fp_constant): Return 0 for
3395         SFmode and DFmode before reload when
3396         flag_unsafe_math_optimizations not enabled.
3397
3398 2005-03-24  Geoffrey Keating  <geoffk@apple.com>
3399
3400         * c.opt (fvisibility-inlines-hidden): Allow for ObjC++.
3401
3402         * config/i386/darwin.h (TARGET_SUBTARGET_DEFAULT): Add
3403         MASK_128BIT_LONG_DOUBLE, MASK_ALIGN_DOUBLE.
3404
3405 2005-03-24  Nathan Sidwell  <nathan@codesourcery.com>
3406
3407         * configure.ac (enable-checking): Add 'runtime' option.
3408         * doc/install.texi (enable-checking): Document 'runtime' checking.
3409         * tsystem.h (gcc_assert, gcc_unreachable): Define.
3410         * config.in: Regenerated.
3411         * configure: Regenerated.
3412
3413 2005-03-23  Uros Bizjak  <uros@kss-loka.si>
3414
3415         * optabs.h (enum optab_index): Remove OTI_llrint.
3416         (llrint_optab): Remove macro.
3417         * optabs.c (init_optabs): Remove llrint_optab initialization.
3418         * genopinit.c (optabs): Remove llrint_optab implementation.
3419         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LLRINT{,F,L}
3420         using lrint_optab.
3421
3422 2005-03-24  Alexandre Oliva  <aoliva@redhat.com>
3423
3424         PR rtl-optimization/20532
3425         * simplify-rtx.c (simplify_binary_operation_1): Protect from
3426         overflow when adding coefficients for PLUS or MINUS.
3427         (simplify_binary_operation_1): Handle CONST_DOUBLE exact power of
3428         two as multiplier.
3429
3430 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
3431
3432         * langhooks.h (truthvalue_conversion): Remove.
3433         * langhooks-def.h (LANG_HOOKS_INITIALIZER): Remove
3434         LANG_HOOKS_TRUTHVALUE_CONVERSION.
3435         * system.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Poison.
3436         * gimplify.c (gimple_boolify): Don't use truthvalue_conversion.
3437         * c-objc-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
3438
3439 2005-03-23  Kazu Hirata  <kazu@cs.umass.edu>
3440
3441         * params.def: Fix a typo.
3442         * config/mips/mips.c: Follow the spelling convensions.
3443         * doc/invoke.texi: Fix typos.
3444
3445 2005-03-18  Dale Johannese  <dalej@apple.com>
3446
3447         * cp/tree.c (cp_tree_equal):  Handle SSA_NAME.
3448
3449 2005-03-23  Daniel Berlin  <dberlin@dberlin.org>
3450
3451         Fix PR tree-optimization/20601
3452
3453         * tree-ssa-pre.c (insert_aux): Add missing condition to
3454         constification.
3455
3456 2005-03-23  Ian Lance Taylor  <ian@airs.com>
3457
3458         * final.c (final_scan_insn): Don't remove no-op instructions.
3459         * reload1.c (reload): Remove simple no-op instructions even when
3460         not optimizing.
3461
3462 2005-03-23  Dorit Naishlos  <dorit@il.ib.com>
3463
3464         PR tree-optimization/20501
3465         * tree-vect-analyze.c (vect_enhance_data_refs_alignment): Debug print
3466         reporting that peeling for alignment is applied moved to...
3467         * (vect_analyze_data_refs_alignment): Here.
3468
3469 2005-03-23  Ian Lance Taylor  <ian@airs.com>
3470
3471         * reorg.c (dbr_schedule): Remove #if 0 code to call final.
3472
3473 2005-03-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3474
3475         * config.gcc (alpha*-dec-osf[45]*): Remove target_cpu_default.
3476         Define TARGET_SUPPORT_ARCH except on Tru64 UNIX V4.0A.
3477
3478 2005-03-23  Hans-Peter Nilsson  <hp@axis.com>
3479
3480         * doc/tm.texi (TARGET_MD_ASM_CLOBBERS): Adjust wording to not
3481         imply that this is called once, independent of asms in code.
3482         Adjust to now being pased output and input lists.  Mention helper
3483         function decl_overlaps_hard_reg_set_p.
3484         * hooks.c (hook_tree_tree_tree_tree_3rd_identity): Rename from
3485         hook_tree_tree_identity and to take three trees, returning third.
3486         * hooks.h (hook_tree_tree_tree_tree_3rd_identity): Adjust the
3487         prototype.
3488         * stmt.c: include hard-reg-set.h before tree.h.
3489         (decl_overlaps_hard_reg_set_p): New function, broken out from...
3490         (decl_conflicts_with_clobbers_p): Call
3491         decl_overlaps_hard_reg_set_p.
3492         (expand_asm_operands): Pass output and input lists in call to
3493         targetm.md_asm_clobbers.
3494         * target-def.h (TARGET_MD_ASM_CLOBBERS): Define as
3495         hook_tree_tree_tree_tree_3rd_identity.
3496         * target.h (struct gcc_target.md_asm_clobbers): Take three tree
3497         parameters.
3498         * tree.h [HARD_CONST] (decl_overlaps_hard_reg_set_p): Prototype.
3499         * config/i386/i386.c (ix86_md_asm_clobbers): Adjust to three
3500         parameters, first two unused.
3501         * config/cris/cris.c (cris_md_asm_clobbers): Adjust to added
3502         parameters.  Only add MOF to clobbers if there's no 'h' mentioned
3503         in constraint letters and MOF is not mentioned as a asm-declared
3504         register in neither of the input and output lists.
3505
3506 2005-03-23  DJ Delorie  <dj@redhat.com>
3507
3508         * optabs.c (expand_binop): Make sure the first subword's result
3509         gets stored.
3510
3511 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
3512
3513         * c-common.c (c_common_truthvalue_conversion): Adjust comment.
3514         Call c_common_truthvalue_conversion rather than
3515         lang_hooks.truthvalue_conversion.
3516         * c-convert.c (convert): Call c_objc_common_truthvalue_conversion.
3517         * c-objc-common.c (c_objc_common_truthvalue_conversion): Move to
3518         c-typeck.c.
3519         * c-objc-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Change to
3520         c_common_truthvalue_conversion.
3521         * c-parser.c (c_parser_paren_condition, c_parser_for_statement,
3522         c_parser_conditional_expression, c_parser_binary_expression): Call
3523         c_objc_common_truthvalue_conversion.
3524         * c-typeck.c (build_unary_op): Call
3525         c_objc_common_truthvalue_conversion.
3526         (build_conditional_expr): Do not call
3527         lang_hooks.truthvalue_conversion.
3528         (build_binary_op): Call c_common_truthvalue_conversion.
3529         (c_objc_common_truthvalue_conversion): Moved from
3530         c-objc-common.c.  Call default_function_array_conversion instead
3531         of default_conversion.
3532
3533 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
3534
3535         * c-common.h (default_conversion): Remove.
3536         (perform_integral_promotions): Add.
3537         * c-tree.h (default_conversion): Add.
3538         * c-typeck.c (perform_integral_promotions): New, split out from
3539         default_conversion.
3540         * c-common.c (check_case_value): Use perform_integral_promotions,
3541         not default_conversion.
3542         (c_add_case_label): Don't continue processing case label after
3543         found to be pointer.
3544
3545 2005-03-23  Mark Mitchell  <mark@codesourcery.com>
3546
3547         * gcc.c (do_spec_1): Do not add a -L path for a directory in
3548         the prefix list if we have already added a multilib directory
3549         based on that path.
3550         (main): Do not add MD_EXEC_PREFIX to the list of directories to
3551         search with -L.
3552
3553 2005-03-22  Kazu Hirata  <kazu@cs.umass.edu>
3554
3555         * reload1.c (indirect_symref_ok, reload_obstack): Make them
3556         static.
3557         * reload.h: Remove the prototype for indirect_symref_ok.
3558
3559         * reload1.c (indirect_symref_ok): Make it global.
3560         * reload.h: Add a prototype for indirect_symref_ok.
3561
3562 2005-03-22  Kaz Kojima  <kkojima@gcc.gnu.org>
3563
3564         * config/sh/sh.md (ashlhi3): Rename to *ashlhi3_n and add a new
3565         ashlhi3 expander.
3566
3567 2005-03-22  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
3568
3569         * tree.h (DECL_IGNORED_P, DECL_IN_SYSTEM_HEADER): Clarify comments.
3570
3571 2005-03-22  Daniel Berlin  <dberlin@dberlin.org>
3572
3573         * c-opts.c (c_common_parse_file): Only start/end main source file
3574         if debug hooks says the writer wants it.
3575         * dbxout.c (dbx_debug_hooks): Add start_end_main_source_file
3576         member.
3577         (xcoff_debug_hooks): Ditto.
3578         * debug.c (do_nothing_hooks): Ditto.
3579         * debug.h (gcc_debug_hooks): Ditto.
3580         * dwarf2out.c (dwarf2_debug_hooks): Ditto.
3581         * sdbout.c (sdb_debug_hooks): Ditto.
3582         * vmsdbgout.c (vmsdbg_debug_hooks): Ditto.
3583
3584 2005-03-22  Mark Mitchell  <mark@codesourcery.com>
3585
3586         * doc/extend.texi: Deprecate C++ min/max operators.
3587
3588 2005-03-22  Zdenek Dvorak  <dvorakz@suse.cz>
3589
3590         * tree-ssa-loop-ivopts.c (determine_iv_cost): Do not try to preserve
3591         artificial original candidates.
3592
3593 2005-03-22  Richard Guenther <rguenth@tat.physik.uni-tuebingen.de>
3594             Jan Hubicka  <jh@suse.cz>
3595             Steven Bosscher <stevenb@suse.de>
3596
3597         * cgraphunit.c (cgraph_estimate_size_after_inlining): Compute
3598         call cost based on argument sizes.
3599         (cgraph_mark_inline_edge): Avoid inline unit from shrinking by
3600         inlining.
3601         * params.def: (max-inline-inssn-single): Set to 450.
3602         (max-inline-insns-auto): Set to 90.
3603         (max-inline-insns-recursive): Set to 450
3604         (max-inline-insns-recursive-auto): Set to 450.
3605         (large-function-insns): Set to 2700.
3606         (inline-call-cost): New parameter.
3607         * tree-inline.c (estimate_move_cost): New function.
3608         (estimate_num_insns_1): Compute move sizes costs by estimate_move_cost
3609         for non-gimple-regs, set cost to 0 for gimple-regs.  Compute call size
3610         based on arguments.
3611         * tree-inline.h (estimate_move_cost): Declare.
3612         * invoke.texi: (max-inline-inssn-single): Change default to 450.
3613         (max-inline-insns-auto): Change default to 90.
3614         (max-inline-insns-recursive): Change default to 450
3615         (max-inline-insns-recursive-auto): Change default to 450.
3616         (large-function-insns): Change default to 2700.
3617         (inline-call-cost): Document new parameter.
3618
3619 2005-03-22  Richard Sandiford  <rsandifo@redhat.com>
3620
3621         * config/i860/i860.h (target_flags, TARGET_XP, TARGET_SWITCHES)
3622         (TARGET_DEFAULT): Delete.
3623         * config/i860/i860.opt: New file.
3624
3625 2005-03-22  Richard Sandiford  <rsandifo@redhat.com>
3626
3627         * config/frv/frv-protos.h (frv_branch_cost_string, frv_branch_cost_int)
3628         (frv_cpu_string, frv_condexec_insns_str, frv_condexec_insns)
3629         (frv_condexec_temps_str, frv_condexec_temps, frv_sched_lookahead_str)
3630         (frv_sched_lookahead): Delete.
3631         * config/frv/frv.h (MASK_DEFAULT_ALLOC_CC): Move to frv.c.
3632         (target_flags, MASK_GPR_32, MASK_FPR_32, MASK_SOFT_FLOAT)
3633         (MASK_ALLOC_CC, MASK_DWORD, MASK_DOUBLE, MASK_MEDIA, MASK_MULADD)
3634         (MASK_LIBPIC, MASK_ACC_4,  MASK_PACK, MASK_LONG_CALLS)
3635         (MASK_ALIGN_LABELS, MASK_LINKED_FP, MASK_BIG_TLS, MASK_DEBUG_ARG)
3636         (MASK_DEBUG_ADDR, MASK_DEBUG_STACK, MASK_DEBUG, MASK_DEBUG_LOC)
3637         (MASK_DEBUG_COND_EXEC, MASK_NO_COND_MOVE, MASK_NO_SCC)
3638         (MASK_NO_COND_EXEC, MASK_NO_VLIW_BRANCH, MASK_NO_MULTI_CE)
3639         (MASK_FDPIC, MASK_INLINE_PLT, MASK_GPREL_RO, MASK_DEFAULT)
3640         (TARGET_GPR_32, TARGET_FPR_32, TARGET_SOFT_FLOAT, TARGET_ALLOC_CC)
3641         (TARGET_DWORD, TARGET_DOUBLE, TARGET_MEDIA, TARGET_MULADD)
3642         (TARGET_LIBPIC, TARGET_ACC_4, TARGET_DEBUG_ARG, TARGET_DEBUG_ADDR)
3643         (TARGET_DEBUG_STACK, TARGET_DEBUG, TARGET_DEBUG_LOC)
3644         (TARGET_DEBUG_COND_EXEC, TARGET_NO_COND_MOVE, TARGET_NO_SCC)
3645         (TARGET_NO_COND_EXEC, TARGET_NO_VLIW_BRANCH, TARGET_NO_MULTI_CE)
3646         (TARGET_NO_NESTED_CE, TARGET_FDPIC, TARGET_INLINE_PLT, TARGET_BIG_TLS)
3647         (TARGET_GPREL_RO, TARGET_PACK, TARGET_LONG_CALLS, TARGET_ALIGN_LABELS)
3648         (TARGET_LINKED_FP, TARGET_GPR_64, TARGET_FPR_64, TARGET_HARD_FLOAT)
3649         (TARGET_FIXED_CC, TARGET_COND_MOVE, TARGET_SCC, TARGET_COND_EXEC)
3650         (TARGET_VLIW_BRANCH, TARGET_MULTI_CE, TARGET_NESTED_CE, TARGET_ACC_8)
3651         (TARGET_SWITCHES, TARGET_OPTIONS, DEFAULT_CONDEXEC_TEMPS)
3652         (DEFAULT_BRANCH_COST, DEFAULT_CONDEXEC_INSNS): Delete.
3653         * config/frv/frv.c (frv_branch_cost_string, frv_branch_cost_int)
3654         (frv_cpu_string, frv_condexec_insns_str, frv_condexec_insns)
3655         (frv_condexec_temps_str, frv_condexec_temps, frv_sched_lookahead_str)
3656         (frv_sched_lookahead): Delete.
3657         (MASK_DEFAULT_ALLOC_CC): Moved from frv.h.
3658         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
3659         (frv_handle_option): New function.  Move -mcpu= handling from...
3660         (frv_override_options): ...here.  Remove handling of other
3661         TARGET_OPTIONS.
3662         (frv_ifcvt_modify_tests): Check !TARGET_COND_EXEC instead of
3663         TARGET_NO_COND_EXEC and !TARGET_NESTED_CE to TARGET_NO_NESTED_CE.
3664         (frv_ifcvt_modify_multiple_tests): Likewise !TARGET_MULTI_CE
3665         and TARGET_NO_MULTI_CE.
3666         (frv_for_each_packet): Likewise TARGET_NO_VLIW_BRANCH and
3667         !TARGET_VLIW_BRANCH.
3668         * config/frv/frv.opt: New file.
3669
3670 2005-03-22  Kazu Hirata  <kazu@cs.umass.edu>
3671
3672         * fold-const.c (fold_ternary): Take decomposed arguments of
3673         CALL_EXPR.
3674         (fold): Update a call to fold_ternary.
3675
3676         * fold-const.c (fold_build1, fold_build2, fold_build3): New.
3677         * tree.h: Add corresponding prototypes.
3678
3679 2005-03-22  Jakub Jelinek  <jakub@redhat.com>
3680
3681         PR target/20561
3682         * cfglayout.c (reemit_insn_block_notes): Don't put block notes in
3683         between jump table and its label.
3684         * final.c (shorten_branches): Handle notes in between ADDR_VEC
3685         resp. ADDR_DIFF_VEC and the label preceeding it.
3686         (final_scan_insn): Likewise.  Ensure ADDR_VEC resp. ADDR_DIFF_VEC
3687         is emitted in the right section.
3688
3689 2005-03-22  Kazu Hirata  <kazu@cs.umass.edu>
3690
3691         * fold-const.c (fold_unary, fold_binary): Update comments
3692         about arguments.
3693
3694 2005-03-22  Hans-Peter Nilsson  <hp@axis.com>
3695
3696         PR rtl-optimization/20527
3697         * combine.c (can_combine_p) [AUTO_INC_DEC]: When INSN has an
3698         REG_INC note, test that the register also isn't mentioned in PRED
3699         or SUCC.
3700
3701 2005-03-22  Ben Elliston  <bje@au.ibm.com>
3702
3703         * dwarf2out.c (dwarf_type_encoding_name): Remove unused prototype
3704         and definition.
3705
3706 2005-03-21  Mike Stump  <mrs@apple.com>
3707
3708         * varasm.c (default_assemble_visibility): Remove extra ().
3709
3710 2005-03-21  Roger Sayle  <roger@eyesopen.com>
3711
3712         PR middle-end/20557
3713         * bb-reorder.c (duplicate_computed_gotos): Use can_duplicate_block_p
3714         to determine whether a block can be duplicated, rather than test
3715         whether the block contains noncopyable insns ourselves.
3716
3717 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
3718
3719         * config/i860/i860.h (PREDICATE_CODES): Remove nonexistent
3720         predicates.
3721
3722 2005-03-21  Richard Sandiford  <rsandifo@redhat.com>
3723
3724         * config/ip2k/ip2k.h (target_flags, TARGET_SWITCHES): Delete.
3725
3726 2005-03-21  Richard Sandiford  <rsandifo@redhat.com>
3727
3728         * config/fr30/fr30.h (TARGET_SMALL_MODEL_MASK, TARGET_SMALL_MODEL)
3729         (TARGET_DEFAULT, target_flags, TARGET_SWITCHES): Delete.
3730         * config/fr30/fr30.opt: New file.
3731
3732 2005-03-18  Daniel Berlin  <dberlin@dberlin.org>
3733
3734         Fix PR tree-optimization/20542
3735
3736         * tree-flow-inline.h (overlap_subvar): Move to here.
3737         * tree-ssa-operands.c: From here.
3738         * tree-flow.h (overlap_subvar): Declare.
3739         * tree-ssa-alias.c (add_pointed_to_var): Use overlap_subvar here.
3740         * tree-ssa-loop-im.c (is_call_clobbered_ref): Return proper answer
3741         for variables with subvars.
3742
3743 2005-03-21 Mostafa Hagog <mustafa@il.ibm.com>
3744
3745         PR middle-end/20177
3746         * ddg.c (create_ddg_dependence): Ignore reg-anti dependency.
3747         * modulo-sched.c (const_iteration_count): Return on NULL
3748         pre-header.
3749         (print_node_sched_params): Return on NULL dump_file.
3750         (generate_reg_moves): Handle reg-anti dependencies and disregard
3751         closing branch when generating register moves.
3752         (sms_schedule): Mark the SMSed block dirty.
3753         * passes.c (rest_of_handle_sms): Call update_life_info for all
3754         basic-blocks.
3755         * testsuite/gcc.dg/20050321-1.c: New test.
3756
3757 2005-03-21  Bob Wilson  <bob.wilson@acm.org>
3758
3759         * config/xtensa/lib1funcs.asm (__mulsi3): Use symbolic name for ACCLO.
3760         * config/xtensa/xtensa.md (movsi_internal, movhi_internal,
3761         movqi_internal): Likewise.
3762
3763 2005-03-21  Bob Wilson  <bob.wilson@acm.org>
3764
3765         * config/xtensa/xtensa-protos.h: (xtensa_simm7, xtensa_uimm8,
3766         xtensa_uimm8x2, xtensa_uimm8x4, xtensa_ai4const, xtensa_lsi4x4,
3767         xtensa_b4const): Delete prototypes.
3768         (xtensa_simm8, xtensa_simm8x256, xtensa_simm12b, xtensa_b4constu,
3769         xtensa_mask_immediate, xtensa_mem_offset): Update prototypes.
3770         (xtensa_b4const_or_zero, xtensa_const_ok_for_letter_p,
3771         xtensa_extra_constraint): New prototypes.
3772         (add_operand, arith_operand, nonimmed_operand, mem_operand,
3773         mask_operand, extui_fldsz_operand, sext_operand, sext_fldsz_operand,
3774         lsbitnum_operand, branch_operand, ubranch_operand, call_insn_operand,
3775         move_operand, const_float_1_operand, fpmem_offset_operand,
3776         branch_operator, ubranch_operator, boolean_operator): Delete prototypes.
3777         * config/xtensa/xtensa.c (b4const_or_zero): Rename to ...
3778         (xtensa_b4const_or_zero): ...this.  Change return type to bool and
3779         argument type to HOST_WIDE_INT.
3780         (xtensa_simm8, xtensa_simm8x256, xtensa_simm12b,
3781         xtensa_mask_immediate): Likewise.
3782         (xtensa_uimm8, xtensa_uimm8x2, xtensa_uimm8x4, xtensa_b4const):
3783         Likewise.  Also make these functions static.
3784         (xtensa_simm7, xtensa_ai4const, xtensa_lsi4x4): Delete.
3785         (xtensa_const_ok_for_letter_p): New.
3786         (add_operand, arith_operand, nonimmed_operand, mem_operand,
3787         mask_operand, extui_fldsz_operand, sext_operand, sext_fldsz_operand,
3788         lsbitnum_operand, branch_operand, ubranch_operand, call_insn_operand,
3789         move_operand, const_float_1_operand, fpmem_offset_operand,
3790         branch_operator, ubranch_operator, boolean_operator): Move to
3791         predicates.md.
3792         (smalloffset_mem_p): Inline code from xtensa_lsi4x4.
3793         (xtensa_mem_offset): Change return type to bool.
3794         (xtensa_extra_constraint): New.
3795         (gen_int_relational): Update type of const_range_p function pointer.
3796         Use xtensa_b4const_or_zero.
3797         * config/xtensa/xtensa.h (CONST_OK_FOR_LETTER_P): Define to
3798         xtensa_const_ok_for_letter_p.  Update comments.
3799         (EXTRA_CONSTRAINT): Define to xtensa_extra_constraint.
3800         (PREDICATE_CODES): Delete.
3801         * config/xtensa/xtensa.md: Include predicates.md.
3802         * config/xtensa/predicates.md: New file.
3803
3804 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
3805
3806         * config/v850/v850-protos.h: Remove the prototypes for
3807         reg_or_int9_operand, reg_or_const_operand,
3808         pattern_is_ok_for_prepare, pattern_is_ok_for_dispose,
3809         reg_or_0_operand, reg_or_int5_operand, call_address_operand,
3810         movsi_source_operand, power_of_two_operand,
3811         not_power_of_two_operand, special_symbolref_operand,
3812         pattern_is_ok_for_prologue, pattern_is_ok_for_epilogue, and
3813         register_is_ok_for_epilogue.
3814         * config/v850/v850.c (reg_or_0_operand, reg_or_int5_operand,
3815         reg_or_int9_operand, reg_or_const_operand,
3816         call_address_operand, special_symbolref_operand,
3817         movsi_source_operand, power_of_two_operand,
3818         not_power_of_two_operand, register_is_ok_for_epilogue,
3819         pattern_is_ok_for_epilogue, pattern_is_ok_for_prologue,
3820         pattern_is_ok_for_dispose, pattern_is_ok_for_prepare): Move to
3821         predicates.md.
3822         * config/v850/v850.h (PREDICATE_CODES): Remove.
3823         * config/v850/v850.md: Include predicates.md.
3824         * config/v850/predicates.md: New.
3825
3826 2005-03-21  Zack Weinberg  <zack@codesourcery.com>
3827
3828         * Makefile.in (BASEVER, DEVPHASE, DATESTAMP)
3829         (BASEVER_c, DEVPHASE_c, DATESTAMP_c)
3830         (BASEVER_s, DEVPHASE_s, DATESTAMP_s, version): Set with :=.
3831         (itoolsdir, itoolsdatadir): Move definition above new first use.
3832         (install-itoolsdirs): New rule.
3833         (install-mkheaders): Depend on install-itoolsdirs, not
3834         install-include-dir.
3835
3836 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
3837
3838         * tree-into-ssa.c: Remove obsolete comments.
3839
3840 2005-03-21  Richard Guenther  <rguenth@gcc.gnu.org>
3841
3842         * tree-ssa-loop.c (gate_tree_complete_unroll): Run complete
3843         unrolling if -fpeel-loops is specified, too.
3844         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
3845         Remove superfluous check for flag_unroll_loops.
3846
3847 2005-03-21  Uros Bizjak  <uros@kss-loka.si>
3848
3849         * optabs.h (enum optab_index): Add new OTI_lrint and OTI_llrint.
3850         (lrint_optab, llrint_optab): Define corresponding macros.
3851         * optabs.c (init_optabs): Initialize lrint_optab and llrint_optab.
3852         * genopinit.c (optabs): Implement lrint_optab using lrintsi2
3853         pattern and llrint_optab using llrintdi2 patterns.
3854         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LRINT{,F,L}
3855         using lrint_optab and BUILT_IN_LLRINT{,F,L} using llrint_optab.
3856         (expand_builtin): Expand BUILT_IN_LRINT{,F,L} and
3857         BUILT_IN_LLRINT{,F,L} using expand_builtin_mathfn if
3858         flag_unsafe_math_optimizations is set.
3859
3860 2005-03-21  Paolo Bonzini  <bonzini@gnu.org>
3861
3862         * combine.c (combine_simplify_rtx, simplify_if_then_else,
3863         simplify_logical, if_then_else_cond, known_cond,
3864         simplify_comparison): Adjust calls to reverse_comparison.
3865         Don't use combine_reversed_comparison_code).
3866         (combine_reversed_comparison_code): Remove.
3867         (reversed_comparison): Using reversed_comparison_code, move it...
3868         * jump.c (reversed_comparison): ... here.
3869         * rtl.h (reversed_comparison): Add prototype.
3870
3871 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
3872
3873         * builtins.c (fold_builtin): Take decomposed arguments of
3874         CALL_EXPR.
3875         * fold-const.c (fold_ternary): Update a call to fold_builtin.
3876         * gimplify.c (gimplify_call_expr): Likewise.
3877         * tree-ssa-ccp.c (ccp_fold, ccp_fold_builtin): Likewise.
3878         * tree.h: Update the prototype of fold_builtin.
3879
3880 2005-03-21  Paolo Bonzini  <bonzini@gnu.org>
3881
3882         * rtl.h (struct rtx_hooks): Add gen_lowpart_no_emit.
3883         * rtlhooks.c (gen_lowpart_no_emit_general): New.
3884         * rtlhooks-def.h (gen_lowpart_no_emit_general): Declare.
3885         (RTL_HOOKS_GEN_LOWPART_NO_EMIT): New.
3886         * simplify-rtx.c (simplify_binary_operation_1): Use it.
3887
3888 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
3889
3890         * builtins.c (fold_builtin_1): Take decomposed arguments of
3891         CALL_EXPR.
3892         (fold_builtin): Update a call to fold_builtin_1.
3893
3894 2005-03-21  Nathan Sidwell  <nathan@codesourcery.com>
3895
3896         PR other/20564
3897         * gcov.c (output_lines): Only output function block summary when
3898         outputting branch information.
3899         * doc/gcov.texi: Document format of preamble and additional block
3900         information lines.
3901
3902 2005-03-21  Richard Sandiford  <rsandifo@redhat.com>
3903
3904         * libgcc2.h (LIBGCC2_HAS_SF_MODE): New macro.
3905         (LIBGCC2_HAS_DF_MODE, LIBGCC2_HAS_TF_MODE, LIBGCC2_HAS_XF_MODE): Make
3906         the defaults false if BITS_PER_UNIT != 8.
3907         (SFtype, SCtype, __fixsfdi, __floatdisf, __fixunssfSI, __fixunssfDI)
3908         (__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE rather
3909         than BITS_PER_UNIT != 8.
3910         (L_fixdfdi, L_fixsfdi, L_fixtfdi, L_fixunsdfdi, L_fixunsdfsi)
3911         (L_fixunssfdi, L_fixunssfsi, L_fixunstfdi, L_fixunsxfdi, L_fixunsxfsi)
3912         (L_fixxfdi, L_floatdidf, L_floatdisf, L_floatditf, L_floatdixf): Remove
3913         #undefs.
3914         * libgcc2.c (__fixunssfDI, __fixsfdi, __floatdisf, __fixunssfSI)
3915         (__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE.
3916
3917 2005-03-20  Roger Sayle  <roger@eyesopen.com>
3918
3919         PR middle-end/20539
3920         * fold-const.c (fold_binary): Fix type mismatch between
3921         TRUTH_{AND,OR,XOR}_EXPR nodes an their operands' types.
3922         (fold_binary) <TRUTH_XOR_EXPR>: Avoid calling invert_truthvalue
3923         for non-truth-valued expressions.