OSDN Git Service

Fix doc bug pointed out by Sergei Organov.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2005-07-01  James E. Wilson  <wilson@specifixinc.com>
2
3         * doc/invoke.texi (-funit-at-a-time): Correct grammar in second bullet.
4
5 2005-07-01  Andrew Pinski  <pinskia@physics.uc.edu>
6
7         PR tree-opt/22269
8         * tree-ssa-reassoc.c (should_transpose): Fix which operand
9         we check for SSA_NAME for.
10
11 2005-06-29  Daniel Berlin  <dberlin@dberlin.org>
12
13         Fix PR tree-optimization/22071
14         
15         * tree-ssa-structalias.c (offset_overlaps_with_access): New
16         function.
17         (get_constraint_for_component_ref): Use it.
18
19 2005-07-01  Andrew Pinski  <pinskia@physics.uc.edu>
20
21         PR other/22264
22         * diagnostic.c (diagnostic_report_current_module): Use pp_newline to
23         print out the last new line.
24
25 2005-07-01  Hans-Peter Nilsson  <hp@axis.se>
26
27         * config/cris/cris.md (CRIS_CC0_REGNUM): New constant.
28         Swap numbers for CRIS_AP_REGNUM and CRIS_MOF_REGNUM.
29         * config/cris/cris.c (cris_conditional_register_usage): Adjust
30         reg_names[CRIS_CC0_REGNUM] for early CRIS versions.
31         (cris_print_operand) <case REG>: Handle CRIS_CC0_REGNUM.
32         (cris_md_asm_clobbers): Clobber CRIS_CC0_REGNUM for all asms.
33         * config/cris/cris.h (CRIS_CANONICAL_CC0_REGNUM): New macro.
34         (enum reg_class): New member CC0_REGS.
35         (REG_CLASS_FROM_LETTER): Add 'c' for CC0_REGS.
36         (FIRST_PSEUDO_REGISTER, CALL_USED_REGISTERS, REG_ALLOC_ORDER)
37         (HARD_REGNO_MODE_OK, MODES_TIEABLE_P, REG_CLASS_NAMES)
38         (CRIS_SPECIAL_REGS_CONTENTS, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
39         (PREFERRED_RELOAD_CLASS, REGISTER_NAMES, DBX_REGISTER_NUMBER):
40         Adjust for register now described.
41
42 2005-07-01  Jakub Jelinek  <jakub@redhat.com>
43
44         PR target/22262
45         * config/i386/i386.md (stack_protect_test_si,
46         stack_protect_test_di): Add earlyclobber for scratch 3.
47         * config/rs6000/rs6000.md (stack_protect_testsi,
48         stack_protect_testdi): Add earlyclobber for scratch 3,
49         remove earlyclobber from scratch 4.
50
51 2005-06-30  Diego Novillo  <dnovillo@redhat.com>
52
53         PR 21584
54         PR 22219
55         * tree-ssa-alias.c (create_name_tags): Also process
56         non-dereferenced pointers.
57         Remove argument 'ai'.  Update all callers.
58
59 2005-06-30  Andrew Pinski  <pinskia@physics.uc.edu>
60
61         * config/rs6000/darwin.h (STARTING_FRAME_OFFSET):
62         Set to 0 for FRAME_GROWS_DOWNWARD.
63         (REGISTER_NAMES): Add sfp.
64
65 2005-07-01  Kelley Cook  <kcook@gcc.gnu.org>
66
67         * config/arm/libunwind.S, config/arm/pr-support.c,
68         config/arm/unwind-arm.c, config/arm/unwind-arm.h,
69         config/c4x/predicates.md, tree-object-size.c: Update FSF address.
70
71 2005-06-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
72
73         PR target/22260
74         * config/sparc/sparc.c (emit_and_preserve): Add 2nd register.
75         Preserve the 2nd register too, if present.
76         (sparc_output_mi_thunk) <PIC case>: Preserve the PIC register too.
77         Adjust call to emit_and_preserve.
78
79 2005-06-30  Zack Weinberg  <zack@codesourcery.com>
80             Jakub Jelinek  <jakub@redhat.com>
81
82         * pretty-print.h (PP_NL_ARGMAX): New.
83         (text_info): Add locus.
84         (struct chunk_info): New.
85         (output_buffer): Add formatted_obstack, chunk_obstack, and
86         cur_chunk_array. Change obstack to a pointer.
87         (pp_wrapping_mode_t, pp_wrapping_mode, pp_set_verbatim_wrapping): New.
88         (struct pretty_print_info): Replace ideal_maximum_length and
89         prefixing_rule with wrapping.
90         (pp_line_cutoff, pp_prefixing_rule): Update to match.
91         Update prototypes and wrapper macros throughout.
92         * pretty-print.c (pp_formatted_text_data, pp_append_r)
93         (pp_base_clear_output_area, pp_construct, pp_base_formatted_text)
94         (pp_base_last_position_in_text, pp_base_newline, pp_base_character):
95         Update for changes to pp structure.
96         (pp_base_prepare_to_format, pp_base_format_text): Delete.
97         (pp_base_format, pp_base_output_formatted_text): New functions.
98         (pp_base_format_verbatim): Use pp_set_verbatim_wrapping.
99         (pp_verbatim): Clear text.locus.
100         (pp_printf): Likewise.  Use pp_format and pp_output_formatted_text.
101         * c-objc-common.c (c_tree_printer): Update function signature.
102         * diagnostic.c (diagnostic_initialize): Update for changes to
103         pp structure.
104         (diagnostic_report_diagnostic): Call pp_format and then
105         pp_output_formatted_text.
106         (verbatim): Clear text.locus.
107         * diagnostic.h (diagnostic_prefixing_rule, diagnostic_line_cutoff):
108         Update for changes to pp structure.
109
110         * c-lang.c: No need to include c-pretty-print.h.
111         * Makefile.in: Remove bogus line containing only a tab.
112         (c-lang.o): Update dependencies.
113         * toplev.c (announce_function): Don't use verbatim.
114         (default_tree_printer): Update signature.
115
116         * objc/objc-lang.c: No need to include c-pretty-print.h.
117         * objc/Make-lang.in: Update dependencies.
118
119 2005-06-29  Daniel Berlin  <dberlin@dberlin.org>
120
121         * tree-complex.c (complex_variable_components): Now a hashtable.
122         (cvc_lookup): Ditto.
123         (cvc_insert): Ditto.
124         (create_components): Use referenced var iterator.
125         Initialize hashtable.   Use cvc_insert/lookup.
126         (extract_components): Use cvc_insert/lookup.
127         (update_complex_components): Ditto.
128         (update_complex_components_on_edge): Ditto.
129         * tree-dfa.c (referenced_vars): Now a hashtable.
130         (dump_referenced_vars): Use iterator.
131         (referenced_var_lookup): New function.
132         (referenced_var_insert): Ditto.
133         (add_referenced_var): Use referenced_var_insert.
134         (mark_new_vars_to_rename): Use DECL_UID.
135         * tree-flow-inline.h (first_htab_element): New function.
136         (end_htab_p): Ditto.
137         (next_htab_element): Ditto.
138         (first_referenced_var): Ditto.
139         (end_referenced_vars_p): Ditto.
140         (next_referenced_var): Ditto.
141         (is_call_clobbered): Use DECL_UID.
142         (mark_call_clobbered): Ditto.
143         (clear_call_clobbered): Ditto.
144         (mark_non_addressable): Ditto.
145         * tree-flow.h (htab_iterator): New struct.
146         (FOR_EACH_HTAB_ELEMENT): New macro.
147         (struct int_tree_map): New struct.
148         (int_tree_map_hash): Prototype.
149         (int_tree_map_eq): Ditto.
150         (referenced_var_iterator): Ditto.
151         (FOR_EACH_REFERENCED_VAR): New macro.
152         (referenced_vars): Now a hashtable.
153         * tree-into-ssa.c (symbol_marked_for_renaming): Use DECL_UID.
154         (add_new_name_mapping): Ditto.
155         (mark_def_sites): Ditto.
156         (insert_phi_nodes): Use referenced_var iterator.
157         (mark_def_site_blocks): Ditto.
158         (mark_sym_for_renaming): Use DECL_UID.
159         * tree-sra.c (is_sra_candidate_decl): Use DECL_UID.
160         (lookup_element): Ditto.
161         (find_candidates_for_sra): Use referenced_vars iterator.
162         Use DECL_UID.
163         * tree-ssa-alias.c (NUM_REFERENCES): New macro.
164         (NUM_REFERENCES_CLEAR): Ditto.
165         (NUM_REFERENCES_INC): Ditto.
166         (NUM_REFERENCES_SET): Ditto.
167         (alias_obstack): New bitmap obstack.
168         (struct alias_map_d): Use bitmap, not sbitmap.
169         (struct alias_info): Remove num_references.
170         (init_alias_info): Use referenced_var iterator.
171         Initialize bitmap obstack.
172         (delete_alias_info): Use referenced_var iterator.
173         Free bitmap obstack.
174         (compute_points_to_and_addr_escape): Use DECL_UID.
175         Use new NUM_REFERENCES macros.
176         (compute_flow_sensitive_aliasing): may_aliases is now a bitmap.
177         Use new NUM_REFERENCES macros.
178         (group_aliases_into): Update prototype to use bitmap.
179         (setup_pointers_and_addressables): Use referenced_vars iterator.
180         Use DECL_UID. Use new NUM_REFERENCES macros.
181         (add_pointed_to_var): Use DECL_UID.
182         (dump_alias_info): Use referenced_var iterator.
183         (add_type_alias): Ditto.
184         (used_portions): Now a hashtable.
185         (used_part_map_eq): New function.
186         (used_part_map_hash): Ditto.
187         (free_used_part_map): Ditto.
188         (up_lookup): Ditto.
189         (up_insert): Ditto.
190         (get_or_create_used_part_for): Use up_lookup.
191         (create_overlap_variables_for): Ditto.
192         (find_used_portions): Use up_insert.
193         Use DECL_UID.
194         (create_structure_vars): Init used_portions hashtable, use
195         referenced_vars iterator.
196         * tree-ssa-live.c (create_ssa_var_map): sbitmaps became bitmaps.
197         Use DECL_UID.
198         * tree-ssa-loop-im.c (gather_mem_refs_stmt): Use DECL_UID.
199         * tree-ssa-operands.c (get_asm_expr_operands): Ditto.
200         (note_addressable): Ditto.
201         * tree-ssa-structalias.c (set_uids_in_ptset): Ditto.
202         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
203         referenced_var iterator.
204         Use DECL_UID.
205         (delete_tree_ssa): Ditto.
206         (int_tree_map_eq): New function.
207         (int_tree_map_hash): Ditto.
208         * tree-stdarg.c (find_va_list_reference): Use DECL_UID.
209         (va_list_ptr_read): Ditto.
210         (va_list_counter_struct_op): Ditto.
211         (va_list_ptr_write): Ditto.
212         (check_va_list_escapes): Ditto.
213         (check_all_va_list_escapes): Ditto.
214         (execute_optimize_stdarg): Ditto.
215         * tree-tailcall.c (suitable_for_tail_opt_p): Used referenced_var
216         iterator. 
217
218 2005-06-30  Andrew Pinski  <pinskia@physics.uc.edu>
219
220         * config/rs6000/darwin.h (FRAME_POINTER_REGNUM): Rename to ...
221         (HARD_FRAME_POINTER_REGNUM): this.
222
223 2005-06-30  Jan Hubicka  <jh@suse.cz>
224
225         * ipa-inline.c (cgraph_clone_inlined_nodes): Revert previous patch.
226
227 2005-06-30  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
228
229         PR middle-end/22247
230         * tree-ssa-structalias.c (build_constraint_graph, scc_visit,
231         process_unification_queue, init_topo_info, topo_visit,
232         init_scc_info, free_scc_info, perform_var_substitution,
233         solve_graph): Use unsigned instead of uint.
234         
235 2005-06-30  Jakub Jelinek  <jakub@redhat.com>
236
237         * function.c (gen_stack_protect_test): Add third argument.
238
239 2005-06-30  J. D. Johnston  <jjohnst@us.ibm.com>
240
241         * gthr-tpf.h (CE2THRCPTR): Change field offset to 16.
242
243 2005-06-30  Kazu Hirata  <kazu@codesourcery.com>
244
245         * config/c4x/c4x-protos.h: Remove the prototypes for those
246         functions removed from c4x.c.  Add prototypes for those
247         functions exported in c4x.c.
248         * config/c4x/c4x.c (any_operand, fp_zero_operand,
249         const_operand, stik_const_operand, not_const_operand,
250         reg_operand, r0r1_reg_operand, r2r3_reg_operand,
251         ext_low_reg_operand, ext_reg_operand, std_reg_operand,
252         std_or_reg_operand, addr_reg_operand, index_reg_operand,
253         dp_reg_operand, sp_reg_operand, st_reg_operand,
254         rc_reg_operand, call_address_operand,
255         symbolic_address_operand, dst_operand, src_operand,
256         src_hi_operand, lsrc_operand, tsrc_operand,
257         nonimmediate_src_operand, nonimmediate_lsrc_operand,
258         reg_or_const_operand, par_ind_operand, parallel_operand):
259         Remove.
260         (c4x_immed_float_p, c4x_a_register, c4x_x_register,
261         c4x_K_constant, c4x_N_constant, c4x_O_constant,
262         c4x_S_indirect): Export.
263         * config/c4x/c4x.h (PREDICATE_CODES): Remove.
264         * config/c4x/c4x.md: Include predicates.md.
265         * config/c4x/predicates.md: New.
266
267 2005-06-30  Jakub Jelinek  <jakub@redhat.com>
268
269         * function.c (stack_protect_epilogue): Pass label to
270         stack_protect_test, assume it emitted also the conditional
271         branch.
272         * doc/md.texi (stack_protect_test): Adjust documentation.
273         * config/i386/i386.md (stack_protect_test): Add third argument,
274         emit beq with operands[2].
275         * config/rs6000/rs6000.h (FRAME_GROWS_DOWNWARD): Define to
276         flag_stack_protect != 0.
277         * config/rs6000/rs6000.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): New
278         constants.
279         (stack_protect_set, stack_protect_test): New expanders.
280         (stack_protect_setsi, stack_protect_setdi, stack_protect_testsi,
281         stack_protect_testdi): New insns.
282         * config/rs6000/rs6000.c (rs6000_stack_protect_fail): New function.
283         (TARGET_STACK_PROTECT_FAIL): Define.
284         (rs6000_generate_compare): Handle UNSPEC_SP_TEST.
285
286         * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Increment.
287         (DWARF_FRAME_REGISTERS, DWARF_REG_TO_UNWIND_COLUMN): Adjust, so
288         that addition of sfp doesn't change these.
289         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
290         REG_ALLOC_ORDER): Add sfp.
291         (INT_REGNO_P): Include FRAME_POINTER_REGNUM.
292         (FRAME_POINTER_REGNUM): Define to 113.
293         (HARD_FRAME_POINTER_REGNUM): Define to 31.
294         (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add sfp.
295         (STARTING_FRAME_OFFSET): Set to 0 for FRAME_GROWS_DOWNWARD.
296         (ELIMINABLE_REGS): Never eliminate to
297         FRAME_POINTER_REGNUM, but HARD_FRAME_POINTER_REGNUM
298         instead.  Add eliminations from FRAME_POINTER_REGNUM.
299         (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P):
300         Include FRAME_POINTER_REGNUM.
301         (REGISTER_NAMES): Add sfp.
302         * config/rs6000/rs6000.c (rs6000_reg_names): Add sfp.
303         (alt_reg_names): Likewise.
304         (rs6000_stack_info): Handle FRAME_GROWS_DOWNWARD.
305         (rs6000_emit_prologue): Use HARD_FRAME_POINTER_REGNUM
306         instead of FRAME_POINTER_REGNUM.
307         (rs6000_initial_elimination_offset): Never eliminate to
308         FRAME_POINTER_REGNUM, but HARD_FRAME_POINTER_REGNUM
309         instead.  Add elimination offsets from FRAME_POINTER_REGNUM.
310
311         * config/rs6000/sysv4.h (RS6000_VARARGS_AREA): Only return non-zero
312         if DEFAULT_ABI == ABI_V4.
313
314 2005-06-30  Steven Bosscher  <stevenb@suse.de>
315
316         * coretypes.h (tls_model): Add TLS_MODEL_NONE as 0.
317         * tree.h (struct tree_decl): New field `tls_model'.
318         (DECL_TLS_MODEL): New.
319         (DECL_THREAD_LOCAL_P): Rename from DECL_THREAD_LOCAL, make it
320         a predicate.
321         * rtl.h (decl_default_tls_model): Add prototype for it.
322         * varasm.c (decl_tls_model): Rewritten and renamed to ...
323         (decl_default_tls_model): ... this.
324         (default_encode_section_info): Use DECL_TLS_MODEL instead of
325         decl_tls_model.
326         (assemble_variable): Replace DECL_THREAD_LOCAL with
327         DECL_THREAD_LOCAL_P.
328         (default_section_type_flags_1): Likewise.
329         (categorize_decl_for_section): Likewise.
330         * tree.c (staticp): Likewise.
331         (recompute_tree_invarant_for_addr_expr): Likewise.
332         * drawf2out (loc_descriptor_from_tree_1): Likewise.
333         * c-decl.c (diagnose_mismatched_decls): Likewise.
334         with DECL_THREAD_LOCAL_P.
335         (start_decl): Likewise.
336         * print-tree.c (print_node): Likewise.  Print the TLS model.
337         (grokdeclarator): Set the default DECL_TLS_MODEL here.
338         * c-common.c (handle_tls_model_attribute): Rewrite to set the
339         TLS model up based on the attribute.  Never add the attribute
340         to the decl's attributes list.
341         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): Replace
342         DECL_THREAD_LOCAL with DECL_THREAD_LOCAL_P.
343
344 2005-06-30  Zdenek Dvorak  <dvorakz@suse.cz>
345
346         PR testsuite/21967
347         * tree-ssa-live.c (mark_all_vars_used_1): Ignore variables in
348         TMR_ORIGINAL.
349
350 2005-06-30  Bernd Schmidt  <bernd.schmidt@analog.com>
351
352         * config/bfin/bfin.md (addv2hi3, subv2hi3, sminv2hi3, smaxv2hi3,
353         mulv2hi3, negv2hi2, absv2hi2): Pattern names fixed by appending the
354         necessary digit.
355
356 2005-06-29  David Edelsohn  <edelsohn@gnu.org>
357
358         * config/rs6000/rs6000.c (rs6000_file_start): Use PPC405_ERRATUM77.
359
360 2005-06-29  Diego Novillo  <dnovillo@redhat.com>
361
362         PR 22234
363         * tree-ssa-copy.c (fini_copy_prop): Do not overwrite copy_of
364         when following copy-of chains.
365
366 2005-06-30  Jan Hubicka  <jh@suse.cz>
367
368         * function.h (struct function): Add saved blocks/unexpanded var list.
369         * gimple-low.c (record_vars): Insert only VAR_DECLs.
370         * tree-inline.c (add_lexical_block): Declare; do not clear sublocks.
371         (remap_decl): Do not declare vars.
372         (remap_block): Do not care inserting blocks.
373         (remap_blocks): New function.
374         (copy_body_r): Update debug info.
375         (expand_call_inline): Duplicate callee block tree into caller;
376         copy all the unexpanded_var_list.
377         (save_body): Save unexpanded_var_list and blocks.
378         * tree-optimize.c (tree_rest_of_optimization): Restore
379         blocks/unexpanded_var_list.
380
381 2005-06-29  Richard Henderson  <rth@redhat.com>
382
383         * config/ia64/ia64.c (ia64_expand_vecint_minmax): Use us_minus and
384         plus for V4HImode UMAX.
385
386 2005-06-29  Joseph S. Myers  <joseph@codesourcery.com>
387
388         * c-tree.h (default_function_array_conversion): Take and return
389         struct c_expr.
390         * c-typeck.c (default_function_array_conversion): Split into
391         array_to_pointer_conversion and function_to_pointer_conversion.
392         Take and return struct c_expr.
393         (array_to_pointer_conversion): Do not handle type qualifiers or
394         COMPOUND_EXPRs specially.
395         (build_function_call): Call function_to_pointer_conversion for
396         function designators.
397         (build_unary_op): Call array_to_pointer_conversion, not
398         default_function_array_conversion.
399         (digest_init, output_init_element): Likewise.
400         * c-parser.c: All callers of default_function_array_conversion
401         changed.
402
403 2005-06-29  Ziemowit Laski  <zlaski@apple.com>
404
405         * config/darwin.c (machopic_select_section): constant ObjC string
406         objects now always have type "__builtin_ObjCString".
407
408 2005-06-29  Richard Henderson  <rth@redhat.com>
409
410         * config/alpha/alpha.md (vec_shl_<VEC>, vec_shr_<VEC>): New.
411
412 2005-06-29  Richard Henderson  <rth@redhat.com>
413
414         * tree-vect-transform.c (vect_min_worthwhile_factor): Declare.
415         (vect_create_epilog_for_reduction): Don't use vec_shr if the
416         operation is emulated.
417         (vectorizable_reduction): Duplicate vect_min_worthwhile_factor
418         tests from vectorizable_operation.
419
420 2005-06-29  Caroline Tice  <ctice@apple.com>
421
422         Fix PR 21956
423         * varasm.c (assemble_start_function):  Add "L" to beginning of
424         local labels, so assembler & linker treat them as local.
425         
426 2005-06-29  Richard Henderson  <rth@redhat.com>
427
428         * config/i386/i386.c (ix86_expand_int_vcond): Remove unsignedp
429         argument.  Simplify canonicalization of condition.  Use unsigned
430         saturating subtraction for QI and HImode unsigned compares.  Use
431         bit arithmetic tricks for SImode unsigned compares.
432         * config/i386/i386-protos.h (ix86_expand_int_vcond): Update decl.
433         * config/i386/sse.md (SSEMODE14): New.
434         (umaxv8hi3): Use us_minus+plus to avoid vcond.
435         (umaxv4si3): New.
436         (smax<SSEMODE14>3): Rename from smaxv16qi3 and macroize.
437         (smin<SSEMODE14>3): Similarly with sminv16qi3.
438         (umin<SSEMODE24>3): Similarly with uminv8hi3.
439
440 2005-06-29  Ian Lance Taylor  <ian@airs.com>
441
442         * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes): Change
443         GEN_INT to gen_int_for_mode when storing register size to memory.
444
445 2005-06-29  Stuart Hastings  <stuart@apple.com>
446
447         * gcc/config/i386/mmintrin.h: Mark vector intrinsics always_inline.
448         * gcc/config/i386/emmintrin.h: Likewise.
449         * gcc/config/i386/pmmintrin.h: Likewise.
450         * gcc/config/i386/xmmintrin.h: Likewise.
451                                         
452 2005-06-29  Steve Ellcey  <sje@cup.hp.com>
453
454         PR middle-end/21969
455         * tree.h (TYPE_VECTOR_SUBPARTS): Change to shift expression.
456         (SET_TYPE_VECTOR_SUBPARTS): New.
457         * tree.c (make_vector_type): Replace TYPE_VECTOR_SUBPARTS with
458         SET_TYPE_VECTOR_SUBPARTS.
459         * tree-vect-transform.c (vect_transform_loop): Add cast.
460
461 2005-06-29  Andreas Krebbel  <krebbel1@de.ibm.com>
462
463         * config/s390/s390.c (s390_decompose_address): Accept invalid
464         displacements for addresses containing frame_pointer_rtx or
465         virtual_stack_vars_rtx.
466         (s390_frame_info): Replaced use of STARTING_FRAME_OFFSET.
467         (s390_initial_elimination_offset): New offset when eliminating the 
468         soft frame pointer.
469         * config/s390/s390.h (FRAME_GROWS_DOWNWARD): Defined as 1.
470         (STARTING_FRAME_OFFSET, STACK_DYNAMIC_OFFSET): Definitions changed.
471
472 2006-06-28  Ziemowit Laski  <zlaski@apple.com>
473
474         * c-common.c (flag_next_runtime): Move...
475         * toplev.c (flag_next_runtime): ... here.
476         * c-common.h (flag_next_runtime): Move...
477         * flags.h (flag_next_runtime): ... here.
478         * config/darwin-c.c: Include flags.h.
479         * config/t-darwin (darwin-c.o): Depend on flags.h.
480
481 2005-06-29  Kaz Kojima  <kkojima@gcc.gnu.org>
482
483         * config/sh/linux-unwind.h (shmedia_fallback_frame_state):
484         Disable aliasing warning with void * cast.
485         (sh_fallback_frame_state): Likewise.
486
487 2005-06-29  Kaz Kojima  <kkojima@gcc.gnu.org>
488
489         * target.h (gcc_target): New field allocate_initial_value.
490         * target-def.h (TARGET_ALLOCATE_INITIAL_VALUE): New macro.
491         (TARGET_INITIALIZER): Include it.
492         * integrate.c (allocate_initial_values): Use
493         targetm.allocate_initial_value.
494         * system.h: Poison ALLOCATE_INITIAL_VALUE.
495         * config/sh/sh-protos.h (sh_pr_n_sets): Delete.
496         * config/sh/sh.c (sh_pr_n_sets): Make it static.
497         (sh_allocate_initila_value): New function.
498         (TARGET_ALLOCATE_INITIAL_VALUE): Override default.
499         * config/sh/sh.h (ALLOCATE_INITIAL_VALUE): Delete.
500         * doc/tm.texi (TARGET_ALLOCATE_INITIAL_VALUE): Rename and
501         update from ALLOCATE_INITIAL_VALUE.
502
503 2005-06-28  Richard Henderson  <rth@redhat.com>
504
505         * tree-vectorizer.c (vect_is_simple_reduction): Compare types
506         using TYPE_MAIN_VARIANT.
507
508 2005-06-28  Richard Henderson  <rth@redhat.com>
509
510         * config/ia64/ia64.c (ia64_expand_vecint_compare): Decompose to EQ
511         when using psubN.uuu.
512
513 2005-06-29  Kelley Cook <kcook@gcc.gnu.org>
514
515         * doc/gcc.texi: Update FSF address.
516
517 2005-06-28  Eric Christopher  <echristo@redhat.com>
518
519         PR c/22052
520         PR c/21975
521         * c-decl.c (diagnose_mismatched_decls): Define DECL_EXTERN_INLINE.
522         Use. Fix detection of invalid extern inline redefinition.
523
524 2005-06-28  Diego Novillo  <dnovillo@redhat.com>
525
526         * tree-optimize.c (init_tree_optimization_passes): Fix typo.
527
528 2005-06-28  Andrew Pinski  <pinskia@physics.uc.edu>
529
530         * config/rs6000/rs6000.md (setmemsi): s/operand/operands/.
531
532 2005-06-28  Richard Henderson  <rth@redhat.com>
533
534         * config/ia64/ia64.c (ia64_expand_vecint_compare): Use unsigned
535         saturating subtraction for QI and HImode unsigned compares.  Use
536         bit arithmetic tricks for SImode unsigned compares.
537         (ia64_expand_vcondu_v2si): Remove.
538         (ia64_expand_vecint_cmov): Don't call it.
539
540 2005-06-28  Richard Henderson  <rth@redhat.com>
541
542         * rtlanal.c (nonzero_bits1): Use the mode of the value for
543         determining integral-ness for comparisons.
544
545 2005-06-28  Andrew Pinski  <pinskia@physics.uc.edu>
546
547         * config/rs6000/rs6000.md (setmemsi): Fix operand 2.
548
549 2005-06-28  Joseph S. Myers  <joseph@codesourcery.com>
550
551         * target.h (invalid_conversion, invalid_unary_op,
552         invalid_binary_op): New hooks.
553         * target-def.h (TARGET_INVALID_CONVERSION,
554         TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP,
555         TARGET_INITIALIZER): Likewise.
556         * hooks.h (hook_constcharptr_tree_tree_null,
557         hook_constcharptr_int_tree_null,
558         hook_constcharptr_int_tree_tree_null): New.
559         * hooks.c (hook_constcharptr_tree_tree_null,
560         hook_constcharptr_int_tree_null,
561         hook_constcharptr_int_tree_tree_null): Likewise.
562         * gcc/doc/tm.texi (TARGET_INVALID_CONVERSION,
563         TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Document.
564         * c-convert.c (convert): Use invalid_conversion hook.
565         * c-typeck.c (build_unary_op): Use invalid_unary_op hook.
566         (build_binary_op): Use invalid_binary_op hook.
567         * config/ia64/ia64-modes.def: Define RFmode.
568         * config/ia64/ia64-protos.h (spill_xfmode_operand): Remove.
569         (ia64_expand_movxf_movrf): New.
570         * config/ia64/ia64.md (movxf): Move code to
571         ia64_expand_movxf_movrf.
572         (movrf, movrf_internal): New.
573         * ia64.c (ia64_invalid_conversion, ia64_invalid_unary_op,
574         ia64_invalid_binary_op, TARGET_INVALID_CONVERSION,
575         TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): New.
576         (spill_xfmode_operand): Rename to spill_xfmode_rfmode_operand.
577         Add mode parameter.  Make static.
578         (ia64_expand_movxf_movrf): New, moved from ia64.md.  Handle RFmode
579         as well as XFmode.
580         (ia64_function_arg, ia64_function_value, ia64_register_move_cost,
581         ia64_scalar_mode_supported_p): Handle RFmode as well as XFmode.
582         (ia64_init_builtins): Set up __fpreg as RFmode.
583         (ia64_mangle_fundamental_type): Mangle __fpreg as u7__fpreg.
584
585 2006-06-28  Adrian Straetling  <straetling@de.ibm.com>
586
587         * builtins.c: (expand_builtin_memset): Rewrite to support
588         'set_storage_via_setmem'.
589         * expr.c: (enum insn_code setmem_optab): Define.
590         (enum insn_code clrmem_optab): Remove.
591         (set_storage_via_setmem): New function.
592         (clear_storage_via_setmem): Remove.
593         (clear_storage): Replace call to "clear_storage_via_clrmem" with
594         "set_storage_via_setmem".
595         * expr.h: (set_storage_via_setmem): Declare.
596         (CLEAR_RATIO): Redefine using HAVE_setmemM.
597         * optabs.h: (enum insn_code setmem_optab): Declare.
598         (enum insn_code clrmem_optab): Remove.
599         * optabs.c: (init_optabs): Initialize setmem_optab.
600         (enum insn_code clrmem_optab): Remove.
601         * genopinit.c: (otabs): Likewise.
602         * doc/md.texi: Document new standard pattern 'setmem'. Remove
603           'clrmem'.
604         * config/alpha/alpha.c: (alpha_expand_block_clear): Adjust
605         'operands' ordering.
606         * config/frv/frv.c: (frv_expand_block_clear): Likewise.
607         * config/rs6000/rs6000.c: (expand_block_clear): Likewise.
608         * config/alpha/alpha.md: ("clrmemqi", "clrmemdi"): Rename to "setmemM".
609         FAIL on operands[2]!=const0_rtx. Adjust 'operands' ordering.
610         * config/avr/avr.md: ("clrmemhi"): Likewise.
611         * config/frv/frv.md: ("clrmemsi"): Likewise.
612         * config/i386/i386.md: ("clrmemsi", "clrmemdi"): Likewise.
613         * config/pa/pa.md: ("clrmemsi", "clrmemdi"): Likewise.
614         * config/rs6000/rs6000.md: ("clrmemsi"): Likewise.
615         * config/s390/s390.md: ("clrmem<mode>"): Likewise.
616
617 2005-06-28  Paul Brook  <paul@codesourcery.com>
618
619         * Makefile.in: Set and use UNWIND_H.  Install as unwind.h.
620         * c-decl.c (finish_decl): Call default_init_unwind_resume_libfunc.
621         * except.c (add_ehspec_entry): Generate arm eabi filter lists.
622         (assign_filter_values): Ditto.
623         (output_ttype): New function.
624         (output_function_exception_table): Use output_ttype.  Generate arm
625         eabi filter lists.
626         (default_init_unwind_resume_libfunc): New function.
627         * except.h (default_init_unwind_resume_libfunc): Add prototype.
628         * optabs.c (init_optabs): Don't set unwind_resume_libfunc.
629         * opts.c (decode_options): Use targetm.unwind_tables_default.
630         * target-def.h (TARGET_ASM_TTYPE): Provide and use definition.
631         (TARGET_ARM_EABI_UNWINDER, TARGET_UNWIND_TABLES_DEFAULT): Ditto.
632         * target.h (struct gcc_target): Add asm.ttype, unwind_tables_default
633         and arm_eabi_unwinder.
634         * unwind-c.c: Support Arm EABI unwinder.
635         * unwind.h: Rename ...
636         * unwind-generic.h: ... To this.
637         * doc/tm.texi (TARGET_ASM_TTYPE, TARGET_ARM_EABI_UNWINDER): Document.
638         (TARGET_UNWID_TABLES_DEFAULT): Document.
639
640         * config/arm/arm-protos.h (arm_output_fn_unwind): Add prototype.
641         * config/arm/arm.c (arm_unwind_emit, arm_output_ttype): New functions.
642         (TARGET_UNWIND_EMIT, TARGET_ASM_TTYPE, TARGET_ARM_EABI_UNWINDER):
643         Define.
644         (thumb_pushpop, thumb_output_function_prologue): Output unwinding
645         directives.
646         (arm_unwind_emit_stm, arm_unwind_emit_set): New functions.
647         * config/arm/arm.h (MUST_USE_SJLJ_EXCEPTIONS): Only define when
648         !TARGET_UNWIND_INFO.
649         (ARM_OUTPUT_FN_UNWIND, ARM_EABI_UNWIND_TABLES): Define.
650         * config/arm/bpabi.h (TARGET_UNWIND_INFO): Define.
651         * config/arm/elf.h (ASM_DECLARE_FUNCTION_NAME,
652         ASM_DECLARE_FUNCTION_SIZE): Use ARM_OUTPUT_FN_UNWIND.
653         * config/arm/lib1funcs.asm: Include libunwind.S.
654         * config/arm/libgcc-bpabi.ver: Add unwinding routines.
655         * config/arm/libunwind.S: New file.
656         * config/arm/pr-support.c: New file.
657         * config/arm/t-bpabi (LIB1ASMFUNCS): Add _unwind.
658         (UNWIND_H, LIB2ADDEH, LIB2ADDEHDEP): Set.
659         * config/arm/t-symbian (UNWIND_H, LIB2ADDEH, LIB2ADDEHDEP): Set.
660         * config/arm/unwind-arm.c: New file.
661         * config/arm/unwind-arm.h: New file.
662         * config/i386/t-netware (USER_H): Remove unwind.h.
663         * config/ia64/ia64.h (TARGET_UNWIND_TABLES_DEFAULT): Define.
664
665 2005-06-28  DJ Delorie  <dj@redhat.com>
666
667         * c-decl.c (pop_scope): Move warning control into warning call.
668         (diagnose_mismatched_decls): Likewise.
669         (pushdecl): Likewise.
670         (start_decl): Likewise.
671         (grokparms): Likewise.
672         (start_function): Likewise.
673         (store_parm_decls_newstyle): Likewise.
674         (store_parm_decls_oldstyle): Likewise.
675         (finish_function): Likewise.
676         (declspecs_add_scspec): Likewise.
677         * c-format.c (decode_format_attr): Likewise.
678         (maybe_read_dollar_number): Likewise.
679         (avoid_dollar_number): Likewise.
680         (finish_dollar_format_checking): Likewise.
681         (check_format_info): Likewise.
682         (check_format_info_main): Likewise.
683         (check_format_types): Likewise.
684         (format_type_warning): Likewise.
685         * c-typeck.c (function_types_compatible_p): Likewise.
686         (build_array_ref): Likewise.
687         (convert_arguments): Likewise.
688         (build_c_cast): Likewise.
689         (store_init_value): Likewise.
690         (process_init_element): Likewise.
691         (c_start_case): Likewise.
692         * stor-layout.c (finalize_record_size): Likewise.
693         * tree-cfg.c (execute_warn_function_noreturn): Likewise.
694         * tree-inline.c (expand_call_inline): Likewise.
695
696 2005-06-28  Uros Bizjak  <uros@kss-loka.si>
697
698         PR target/22134
699         * config/i386/i386.md (fist<mode>2_with_temp splitter):
700         Clobber memory operand, not scratch register.
701
702 2005-06-28  Andreas Krebbel  <krebbel1@de.ibm.com>
703
704         * config/s390/s390.c (machine_function): New field has_landing_pad_p.
705         (s390_set_has_landing_pad_p, s390_reg_clobbered_rtx,
706          s390_regs_ever_clobbered): New functions.
707         (s390_return_addr_rtx): Use get_hard_reg_initial_value.
708         (s390_register_info, s390_init_frame_layout, s390_update_frame_layout):
709         Use s390_regs_ever_clobbered.
710         (s390_emit_prologue): Don't use r14 as temp reg if its content is used
711         for builtin_return_address.
712         * config/s390/s390.md ("exception_receiver"): New expander.
713         * config/s390/s390-protos.h (s390_set_has_landing_pad_p): Prototype
714         added.
715
716 2005-06-28  Andreas Krebbel  <krebbel1@de.ibm.com>
717
718         * except.c (current_function_has_exception_handlers): Function 
719         description added and if statements merged.
720
721 2005-06-28  Richard Henderson  <rth@redhat.com>
722
723         * config/i386/sse.md (smaxv16qi3): Fix buffer overflow.
724         (sminv16qi3, umaxv8hi3, uminv8hi3): Likewise.
725
726 2005-06-27  Richard Henderson  <rth@redhat.com>
727
728         * config/ia64/ia64.c (ia64_expand_vcondu_v2si): Generate proper
729         comparison operations.
730         (ia64_expand_vecint_minmax): Fix size of xops.
731         * config/ia64/vect.md (umax<VECINT>3): Fix fallback pattern typo.
732         (vec_shl_<VECINT>, vec_shr_<VECINT>): New.
733
734 2005-06-27  Richard Henderson  <rth@redhat.com>
735
736         * tree-vect-transform.c (get_initial_def_for_reduction): Use correct
737         type for DEF and INIT_VAL.  Pretend MIN/MAX need epilogue adjustment.
738
739 2005-06-27  Richard Henderson  <rth@redhat.com>
740
741         * config/i386/sse.md (vec_shl_<SSEMODEI>, vec_shr_<SSEMODEI>): New.
742         (smaxv16qi3, umaxv8hi3, sminv16qi3, uminv8hi3): New.
743
744 2005-06-27  Richard Henderson  <rth@redhat.com>
745
746         * tree-vect-transform.c (vect_create_epilog_for_reduction): Remove
747         duplicate little-endian adjustment.
748
749 2005-06-28  Kelley Cook  <kcook@gcc.gnu.org>
750
751         * doc/include/texinfo.tex: Import from upstream CVS.
752
753 2005-06-28  Jan Hubicka  <jh@suse.cz>
754
755         * cgraph.c (cgraph_remove_node): Do not release function bodies until
756         full cgraph is built.
757         * cgraph.h (cgraph_decide_inlining_incrementally): Add early argument.
758         * cgraphunit.c (cgraph_finalize_function): Update call of
759         cgraph_decide_inlining_incrementally.
760         (initialize_inline_failed): Break out of ...
761         (cgraph_analyze_function): ... here.
762         (rebuild_cgraph_edges): New function.
763         (pass_rebuild_cgraph_edges): New pass.
764         * common.opt (fearly-inlining): New flag.
765         * ipa-inline.c: Include ggc.h
766         (cgraph_clone_inlined_nodes): Avoid re-using of original copy
767         when cgraph is not fully built.
768         (cgraph_decide_inlining_incrementally): Add early mode.
769         (cgraph_early_inlining): New function.
770         (cgraph_gate_early_inlining): Likewise.
771         (pass_early_ipa_inline): New pass.
772         * ipa.c (cgraph_postorder): NULLify aux pointer.
773         * tree-inline.c (expand_call_inline): Avoid warning early.
774         * tree-optimize.c (pass_early_local_passes): New.
775         (execute_cleanup_cfg_pre_ipa): New.
776         (pass_cleanup_cfg): New.
777         (register_dump_files): Fix handling subpasses of IPA pass.
778         (init_tree_optimization_passes): Add early passes.
779         (execute_ipa_pass_list): Fix handling of subpasses of IPA pass.
780         * passes.h (pass_early_tree_profile, pass_rebuild_cgraph_edges,
781         pass_early_ipa_inline): New passes.
782         * tree-profile.c (do_early_tree_profiling, pass_early_tree_profile): New.
783
784         * invoke.texi: Document early-inlining.
785
786 2005-06-28  Kelley Cook  <kcook@gcc.gnu.org>
787
788         * doc/include/fdl.texi: Merge in changes from upstream.
789         * doc/include/gpl.texi: Likewise.
790
791 2005-06-27  Diego Novillo  <dnovillo@redhat.com>
792
793         PR 21959
794         * tree-ssa-loop-niter.c (scev_probably_wraps_p): Handle type
795         casts between unsigned and signed types with different size
796         or precision.
797
798 2005-06-28  Jan Hubicka  <jh@suse.cz>
799
800         * tree-optimize.c (exercute_free_datastructures):
801         Do not disband implicit edges; do not attempt to build insn list;
802         do not free cfg annotations.
803         (execute_free_cfg_annotations); Disband implicit edges here;
804         free cfg annotations here too.
805         (pass_free_cfg_annotations); New pass.
806         (init_tree_optimization_passes); Add pass_free_cfg_annotations.
807         * tree-ssa-operands.c (free_ssa_operands); Recover; export.
808         * tree-ssa-operands.h (free_ssa_operands); declare.
809         * tree-ssa.c (delete_tree_ssa); Free SSA operand; mark stmt modified;
810         kill PHI nodes.
811         * tree-ssanames.c (release_defs): Kill addresses_taken.
812
813         * basic-block.h (basic_block_def): Kill rbi.
814         (reorder_block_def): Kill; Remove next field (replaced by aux);
815         move other fields to ...
816         (rtl_bb_info): ... here.
817         * bb-reorder.c (find_traces, rotate_loop, find_traces_1_round,
818         copy_bb, connect_traces, add_labels_and_missing_jumps
819         fix_up_fall_thru_edges, fix_crossing_conditional_branches,
820         duplicate_computed_gotos, partition_hot_cold_basic-blocks):
821         Update to new fields.
822         * cfg.c (initialize_bb_rbi): Kill.
823         * cfglayout.c (record_effective_endpoints, fixup_reorder_chain,
824         fixup_fallthru_exit_predecessor, cfg_layout_duplicate_bb): Update.
825         * cfgrtl.c (cfg_layout_create_basic_block): Do not initialize rbi.
826         (try_redirect_by_replacing_jump): Update rbi references.
827         (cfg_layout_split_block): Likewise.
828         (cfg_layout_delete_block): Likewise.
829         (cfg_layout_merge_blocks): Likewise.
830         * function.c (thread_prologue_and_epilogue_insns): Likewise.
831         * passes.c (rest_of_handle_sms): Likewise.
832         * tracer.c (seen, tail_duplicate, layout_superblocks): Likewise.
833
834 2005-06-27  David Edelsohn  <edelsohn@gnu.org>
835
836         * config/rs6000/rs6000.c (rs6000_file_start): Note PPC405 erratum
837         in verbose_asm output.
838         * config/rs6000/rs6000.h (PPC405_ERRATUM77): Bracket with
839         CONFIG_PPC405CR.
840         * config.gcc (powerpc with_which): Define CONFIG_PPC405CR for
841         405cr.
842
843 2005-06-27  Jakub Jelinek  <jakub@redhat.com>
844
845         * builtin-attrs.def (DEF_ATTR_FOR_INT): Add for 5 and 6.
846         (DEF_LIST_INT_INT): Add for 4,0, 4,5, 5,0, 5,6.
847         (ATTR_NOTHROW_NONNULL_4, ATTR_NOTHROW_NONNULL_5): Define.
848         (ATTR_FORMAT_PRINTF_4_0, ATTR_FORMAT_PRINTF_4_5,
849         ATTR_FORMAT_PRINTF_5_0, ATTR_FORMAT_PRINTF_5_6): Define.
850         * builtins.c: Include tree-flow.h.
851         (expand_builtin_mempcpy, expand_builtin_memmove): Comment fixes.
852         (expand_builtin_object_size, expand_builtin_memory_chk,
853         maybe_emit_chk_warning, maybe_emit_sprintf_chk_warning,
854         compute_object_offset, compute_builtin_object_size,
855         fold_builtin_object_size): New functions.
856         (expand_builtin): Handle BUILT_IN_OBJECT_SIZE and BUILT_IN_*_CHK.
857         (fold_builtin_1): Likewise.  Handle BUILT_IN_{,V}{,F}PRINTF
858         and BUILT_IN_{,F}PRINTF_UNLOCKED.
859         (fold_builtin_memory_chk, fold_builtin_stxcpy_chk,
860         fold_builtin_strncpy_chk, fold_builtin_strcat_chk,
861         fold_builtin_strncat_chk, fold_builtin_sprintf_chk,
862         fold_builtin_snprintf_chk, fold_builtin_printf, fold_builtin_fprintf):
863         New functions.
864         * builtins.def (BUILT_IN_OBJECT_SIZE, BUILT_IN_MEMCPY_CHK,
865         BUILT_IN_MEMMOVE_CHK, BUILT_IN_MEMPCPY_CHK, BUILT_IN_MEMSET_CHK,
866         BUILT_IN_STPCPY_CHK, BUILT_IN_STRCAT_CHK, BUILT_IN_STRCPY_CHK,
867         BUILT_IN_STRNCAT_CHK, BUILT_IN_STRNCPY_CHK, BUILT_IN_SNPRINTF_CHK,
868         BUILT_IN_SPRINTF_CHK, BUILT_IN_VSNPRINTF_CHK, BUILT_IN_VSPRINTF_CHK,
869         BUILT_IN_FPRINTF_CHK, BUILT_IN_PRINTF_CHK, BUILT_IN_VFPRINTF_CHK,
870         BUILT_IN_VPRINTF_CHK): New builtins.
871         * builtin-types.def (DEF_FUNCTION_TYPE_5, DEF_FUNCTION_TYPE_VAR_4):
872         Document.
873         (BT_FN_SIZE_CONST_PTR_INT, BT_FN_INT_INT_CONST_STRING_VALIST_ARG,
874         BT_FN_PTR_PTR_CONST_PTR_SIZE_SIZE, BT_FN_PTR_PTR_INT_SIZE_SIZE,
875         BT_FN_STRING_STRING_CONST_STRING_SIZE_SIZE,
876         BT_FN_INT_FILEPTR_INT_CONST_STRING_VALIST_ARG,
877         BT_FN_INT_STRING_INT_SIZE_CONST_STRING_VALIST_ARG,
878         BT_FN_INT_STRING_SIZE_INT_SIZE_CONST_STRING_VALIST_ARG,
879         BT_FN_INT_INT_CONST_STRING_VAR, BT_FN_INT_FILEPTR_INT_CONST_STRING_VAR,
880         BT_FN_INT_STRING_INT_SIZE_CONST_STRING_VAR,
881         BT_FN_INT_STRING_SIZE_INT_SIZE_CONST_STRING_VAR): New types.
882         * c-common.c (DEF_FUNCTION_TYPE_5, DEF_FUNCTION_TYPE_6,
883         DEF_FUNCTION_TYPE_VAR_4, DEF_FUNCTION_TYPE_VAR_5): Define.
884         * Makefile.in (OBJS-common): Add tree-object-size.o.
885         (tree-object-size.o): Add dependencies.
886         * tree-pass.h (pass_object_sizes): Add.
887         * tree-optimize.c (init_tree_optimization_passes): Add
888         pass_object_sizes.
889         * tree-object-size.c: New file.
890         * tree.h (fold_builtin_memory_chk, fold_builtin_stxcpy_chk,
891         fold_builtin_strncpy_chk, fold_builtin_snprintf_chk,
892         compute_builtin_object_size, init_object_sizes, fini_object_sizes):
893         New prototypes.
894         * tree-ssa-ccp.c (get_strlen): Rename to ...
895         (get_maxval_strlen): ...this function.  Handle also computing of maximum
896         string length and maximum integral value.
897         (ccp_fold_builtin): Handle BUILT_IN_*_CHK.  Use get_maxval_strlen
898         instead of get_strlen.  Pass CALLEE and ARGLIST variables to the
899         folding functions instead of computing them again.
900         (execute_fold_all_builtins): Retry ccp_fold_builtin if a builtin changed
901         into some other builtin.
902         * doc/extend.texi (Object Size Checking): Document.
903
904         * regrename.c (copy_value): Fix comment.
905
906         * toplev.c (process_options): Use if (FRAME_GROWS_DOWNWARD)
907         instead of preprocessor conditionals.
908
909         * targhooks.c (default_hidden_stack_protect_fail): Fall back to
910         default_external_stack_protect_fail if visibility is not supported
911         or not flag_pic.
912         * config/i386/i386.c (ix86_stack_protect_fail): New function.
913         (TARGET_STACK_PROTECT_FAIL): Define.
914         * config/i386/i386.md (stack_protect_si): Change CLOBBER into
915         SET to zero.
916         (stack_protect_di): Likewise.  Use %k2 instead of %2 to avoid
917         invalid instruction xorl %rax, %rax.
918
919 2005-06-27  Richard Henderson  <rth@redhat.com>
920
921         * c-cppbuiltin.c (c_cpp_builtins): Add __SSP_ALL__ and __SSP__.
922         * cfgexpand.c: Include params.h.
923         (has_protected_decls, has_short_buffer): New.
924         (expand_stack_vars): Take a predicate to determine what to expand.
925         (defer_stack_allocation): True when flag_stack_protect on.
926         (SPCT_HAS_LARGE_CHAR_ARRAY, SPCT_HAS_SMALL_CHAR_ARRAY): New.
927         (SPCT_HAS_ARRAY, SPCT_HAS_AGGREGATE): New.
928         (stack_protect_classify_type, stack_protect_decl_phase): New.
929         (stack_protect_decl_phase_1, stack_protect_decl_phase_2): New.
930         (add_stack_protection_conflicts, create_stack_guard): New.
931         (expand_used_vars): Add stack protection logic.
932         (tree_expand_cfg): Likewise.
933         * common.opt (Wstack-protector): New.
934         (fstack-protector, fstack-protector-all): New.
935         * function.c: Include predict.h.
936         (assign_parm_adjust_stack_rtl): Zap stack_parm when stack protect
937         wants to copy the parameter into the stack frame.
938         (stack_protect_prologue, stack_protect_epilogue): New.
939         (expand_function_end): Call stack_protect_epilogue.  Do 
940         sjlj_emit_function_exit_after after naked_return_label.
941         * function.h (struct function): Add stack_protect_guard.
942         * params.def (PARAM_SSP_BUFFER_SIZE): New.
943         * toplev.c (process_options): Disable flag_stack_protect and/or
944         warn_stack_protect based on FRAME_GROWS_DOWNWARD.
945         * tree.h (stack_protect_prologue): Declare.
946
947         * target-def.h (TARGET_STACK_PROTECT_GUARD): New.
948         (TARGET_STACK_PROTECT_FAIL): New.
949         (TARGET_INITIALIZER): Add them.
950         * target.h (struct gcc_target): Add stack_protect_guard and
951         stack_protect_fail.
952         * targhooks.c: Include ggc.h, gty header.
953         (stack_chk_guard_decl, default_stack_protect_guard): New.
954         (stack_chk_fail_decl, default_external_stack_protect_fail): New.
955         (default_hidden_stack_protect_fail): New.
956         * targhooks.h (default_stack_protect_guard): Declare.
957         (default_external_stack_protect_fail): Declare.
958         (default_hidden_stack_protect_fail): Declare.
959         * config/i386/i386.c (TARGET_STACK_PROTECT_FAIL): New.
960         * config/i386/i386.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): New.
961         (trap): Use ud2.
962         (conditional_trap, conditional_trap_1): Remove.
963         (stack_protect_set, stack_protect_set_si, stack_protect_set_di): New.
964         (stack_protect_test, stack_protect_test_si, stack_protect_test_di): New.
965         * doc/md.texi (stack_protect_set, stack_protect_test): New.
966         * doc/tm.texi (TARGET_STACK_PROTECT_GUARD): New.
967         (TARGET_STACK_PROTECT_FAIL): New.
968
969         * libgcc-std.ver (GCC_4.1.0): New.
970         * libgcc.h (__stack_chk_guard): Declare.
971         (__stack_chk_fail, __stack_chk_fail_local): Declare.
972         * libgcc2.c (L_stack_chk, L_stack_chk_local): New.
973         * mklibgcc.in (lib2funcs): Add them.
974
975 2005-06-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
976
977         PR c/21911
978         * c-common.c (check_function_sentinel): Pass in named argument
979         list, skip over named arguments before looking for a sentinel.
980         (check_function_arguments): Pass in named argument list.
981         * c-common.h (check_function_arguments): Likewise.
982         * c-typeck.c (build_function_call): Likewise.
983
984 2005-06-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
985
986         * genautomata.c (decl_mode_check_failed,
987         regexp_mode_check_failed): Add noreturn attribute.
988
989 2005-06-26  Kazu Hirata  <kazu@codesourcery.com>
990
991         * cfg.c, tree-vect-transform.c, tree.def: Fix comment typos.
992         * doc/invoke.texi: Fix typos.
993
994         * builtins.c, c-common.c, c-convert.c, c-decl.c, c-typeck.c,
995         convert.c, lambda-code.c, predict.c, tree-cfg.c,
996         tree-complex.c, tree-data-ref.c, tree-if-conv.c,
997         tree-mudflap.c, tree-scalar-evolution.c, tree-ssa-ccp.c,
998         tree-ssa-loop-ivcanon.c, tree-ssa-loop-ivopts.c,
999         tree-ssa-loop-manip.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
1000         tree-vect-analyze.c, tree-vect-transform.c, tree-vectorizer.c,
1001         tree.c: Use fold_buildN instead of fold (buildN (...)).
1002
1003 2005-06-26  Gerald Pfeifer  <gerald@pfeifer.com>
1004
1005         * doc/install.texi (Specific): Do not specify the concrete
1006         versions of GCC provided by Cygwin.  Simplify the part on
1007         building on Cygwin.
1008
1009 2005-06-26  Kazu Hirata  <kazu@codesourcery.com>
1010
1011         * config/arc/arc-protos.c: Remove the prototype for
1012         arc_finalize_pic.
1013         * config/arc/arc.c (arc_finalize_pic): Remove.
1014         * config/arc/arc.h (FINALIZE_PIC): Likewise.
1015         * config/bfin/bfin.h (FINALIZE_PIC): Likewise.
1016         * config/rs6000/rs6000.h (FINALIZE_PIC): Likewise.
1017
1018 2005-06-26  Jakub Jelinek  <jakub@redhat.com>
1019
1020         PR middle-end/17965
1021         * calls.c (expand_call, emit_library_call_value_1): Use xmalloc/free
1022         instead of alloca for really big argument sizes.
1023
1024         PR middle-end/22028
1025         * gimplify.c (gimplify_type_sizes): Check for type == error_mark_node
1026         earlier in the function.
1027
1028         * regrename.c (copy_value): Don't replace fixed or global
1029         regs with older regs.
1030
1031         * defaults.h (FRAME_GROWS_DOWNWARD): Define to 0 if not defined.
1032         * function.c (get_func_frame_size): Use if (FRAME_GROWS_DOWNWARD)
1033         instead of preprocessor conditionals.
1034         (assign_stack_local_1, assign_stack_temp_for_type): Likewise.
1035         * cfgexpand.c (FRAME_GROWS_DOWNWARD): Don't redefine to 1 or 0
1036         depending on if it was or was not defined previously.
1037         * doc/rtl.texi (VIRTUAL_STACK_VARS_REGNUM): Mention that only non-zero
1038         definition of FRAME_GROWS_DOWNWARD means frame grows downward.
1039         * doc/tm.texi (FRAME_GROWS_DOWNWARD): Likewise.
1040         * config/m68hc11/m68hc11.h (FRAME_GROWS_DOWNWARD): Define to 0.  Update
1041         comment.
1042         * config/pa/pa.h (FRAME_GROWS_DOWNWARD): Likewise.
1043         * config/rs6000/rs6000.h (FRAME_GROWS_DOWNWARD): Likewise.
1044         * config/stormy16/stormy16.h (FRAME_GROWS_DOWNWARD): Define to 0.
1045         * config/c4x/c4x.h (FRAME_GROWS_DOWNWARD): Likewise.
1046         * config/sh/sh.h (FRAME_GROWS_DOWNWARD): Likewise.
1047         * config/ia64/ia64.h (FRAME_GROWS_DOWNWARD): Likewise.
1048         * config/iq2000/iq2000.h (FRAME_GROWS_DOWNWARD): Likewise.
1049         * config/pdp11/pdp11.h (FRAME_GROWS_DOWNWARD): Define to 1.  Update
1050         comment.
1051         * config/i860/i860.h (FRAME_GROWS_DOWNWARD): Likewise.
1052         * config/h8300/h8300.h (FRAME_GROWS_DOWNWARD): Likewise.
1053         * config/arc/arc.h (FRAME_GROWS_DOWNWARD): Likewise.
1054         * config/vax/vax.h (FRAME_GROWS_DOWNWARD): Likewise.
1055         * config/sparc/sparc.h (FRAME_GROWS_DOWNWARD): Likewise.
1056         * config/i386/i386.h (FRAME_GROWS_DOWNWARD): Likewise.
1057         * config/fr30/fr30.h (FRAME_GROWS_DOWNWARD): Likewise.
1058         * config/frv/frv.h (FRAME_GROWS_DOWNWARD): Likewise.
1059         * config/mn10300/mn10300.h (FRAME_GROWS_DOWNWARD): Likewise.
1060         * config/bfin/bfin.h (FRAME_GROWS_DOWNWARD): Likewise.
1061         * config/ns32k/ns32k.h (FRAME_GROWS_DOWNWARD): Likewise.
1062         * config/v850/v850.h (FRAME_GROWS_DOWNWARD): Likewise.
1063         * config/alpha/alpha.h (FRAME_GROWS_DOWNWARD): Update comment.
1064         * config/s390/s390.h (FRAME_GROWS_DOWNWARD): Likewise.
1065         * config/arm/arm.h (FRAME_GROWS_DOWNWARD): Likewise.
1066         * config/alpha/unicosmk.h (FRAME_GROWS_DOWNWARD): Define to 1.
1067         * config/cris/cris.h (FRAME_GROWS_DOWNWARD): Likewise.
1068         * config/m68k/m68k.h (FRAME_GROWS_DOWNWARD): Likewise.
1069         * config/mmix/mmix.h (FRAME_GROWS_DOWNWARD): Likewise.
1070
1071 2005-06-26  Kazu Hirata  <kazu@codesourcery.com>
1072
1073         PR tree-optimization/22026
1074         * tree-vrp.c (extract_range_from_binary_expr): Drop to
1075         VR_VARYING if a binary expression involving VR_ANTI_RANGE is
1076         PLUS_EXPR, MINUS_EXPR, or unsigned MULT_EXPR.
1077
1078 2005-06-26  Kazu Hirata  <kazu@codesourcery.com>
1079
1080         * Makefile.in (OBJS-common): Remove duplicate object file
1081         names.
1082
1083 2005-06-25  Jan Hubicka  <jh@suse.cz>
1084
1085         * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Update profile.
1086         * cfg.c (update_bb_profile_for_threading): Fix rescaling.
1087
1088         * passes.c (rest_of_handle_branch_prob): Do not rebuild profiling info
1089         when not neecesary
1090         (rest_of_compilation): Fix conditional on branch prob pass.
1091         * predict.c (tree_estimate_probability): Enable strip_builtin_expect
1092         when not loop optimizing.
1093
1094 2005-06-25  Bernd Schmidt  <bernd.schmidt@analog.com>
1095
1096         * config/bfin/bfin.md (ror_one, rol_one, ashrdi3, ashldi3, lshrdi3):
1097         New patterns.
1098         (movbi): Add alternative to set CC to zero.
1099         (compare_eq, compare_ne, compare_le, compare_lt, compare_leu,
1100         compare_ltu): Now named patterns.
1101
1102 2005-06-25  Kelley Cook  <kcook@gcc.gnu.org>
1103
1104         * all files: Update FSF address in copyright headers.
1105
1106 2005-06-25  Kelley Cook  <kcook@gcc.gnu.org>
1107
1108         * gengtype.c: Update FSF address in copyright header.
1109         (create_file): Update FSF in outputed copyright header.
1110
1111 2005-06-24  Kazu Hirata  <kazu@codesourcery.com>
1112
1113         * cfglayout.c (block_locators_locs, line_locators_locs,
1114         line_locators_lines, file_locators_locs): Change the type to
1115         VEC(int,heap)*.
1116         (insn_locators_initialize, change_scope, insn_scope,
1117         locator_line, insn_line, locator_file): Use VEC instead of
1118         VARRAY.
1119
1120 2005-06-24  Jason Merrill  <jason@redhat.com>
1121
1122         * tree-nrv.c (tree_nrv): Fix to check assignments to the
1123         RESULT_DECL rather than just RETURN_EXPRs.
1124         (finalize_nrv_r): Adjust.
1125
1126 2005-06-24  Jan Hubicka  <jh@suse.cz>
1127
1128         * tree-optimize.c (init_tree_optimization_passes): Fix flags of
1129         all_passes and all_ipa_passes.
1130
1131         * c-common.c: Include cgraph.h
1132         (handle_externally_visible_attribute): New function.
1133         (c_common_att): Add "externally_visible" attribute.
1134         * cgraph.c (decide_is_variable_needed): Obey externally
1135         visible flag.
1136         (cgraph_varpool_finalize_decl): Avoid redundant checking.
1137         * cgraph.h (struct cgraph_node): New flag externally_visible.
1138         (decide_is_function_needed): Obey externally visible flag.
1139         (cgraph_finalize_function): Avoid redundant checks.
1140         (cgraph_function_and_variable_visibility): Bring symbols local
1141         when asked for.
1142         * common.opt (fwhole-program): New flag.
1143
1144         * doc/invoke.texi (-fwhole-program): Document.
1145
1146 2005-06-24  Mark Mitchell  <mark@codesourcery.com>
1147
1148         PR 22171
1149         * tree-ssa-operands.c (get_expr_operands): Check s_ann for NULL
1150         before use.
1151
1152 2005-06-23  Mark Mitchell  <mark@codesourcery.com>
1153
1154         PR 22000
1155         * tree-ssa-operands.c (get_expr_operands): Check the volatility of
1156         the FIELD_DECL and set s_ann->has_volatile_ops accordingly.
1157
1158 2005-06-24  Jan Hubicka  <jh@suse.cz>
1159
1160         * opts.c (decode_options): Enable unit-at-a-time by default at -O1.
1161
1162 2005-06-23  Jeff Law  <law@redhat.com>
1163
1164         * tree-optimize.c (init_tree_optimization_passes): Move
1165         copy prop pass to run just before VRP.
1166         * tree-vrp.c (remove_range_assertions): Remove copies created
1167         by ASSERT_EXPR removal.
1168
1169 2005-06-23  Kazu Hirata  <kazu@codesourcery.com>
1170
1171         PR tree-optimization/22117
1172         * tree-vrp.c (extract_range_from_binary_expr): Compute a
1173         correct range when adding two pointers.
1174
1175 2005-06-23  Jason Merrill  <jason@redhat.com>
1176
1177         PR c++/19317
1178         Leave the return slot target in the MODIFY_EXPR rather than making
1179         it an argument, but only use it if the CALL_EXPR has a flag set.
1180         * tree.h (CALL_EXPR_HAS_RETURN_SLOT_ADDR): Rename to
1181         CALL_EXPR_RETURN_SLOT_OPT.
1182         * calls.c (expand_call): Adjust.
1183         * tree-inline.c (expand_call_inline): Adjust.
1184         * tree-pretty-print.c (dump_generic_node): Adjust.
1185
1186         And set the flag as appropriate.
1187         * gimplify.c (gimplify_modify_expr_rhs): Set
1188         CALL_EXPR_HAS_RETURN_SLOT_ADDR where the LHS is obviously safe.
1189         * tree-nrv.c (execute_return_slot_opt): Set
1190         CALL_EXPR_HAS_RETURN_SLOT_ADDR based on escape analysis.
1191         * tree-pass.h: Declare pass_return_slot.
1192         * tree-optimize.c (init_tree_optimization_passes): Add it.
1193         
1194 2005-06-23  David Edelsohn  <edelsohn@gnu.org>
1195
1196         PR target/21760
1197         * config/rs6000/rs6000.h (PPC405_ERRATUM77): New.
1198         * config/rs6000/rs6000.md: Move atomic instructions to ...
1199         * config/rs6000/sync.md: Here.
1200         Change sync_compare_and_swap<mode> to define_expand.  All stwcx
1201         patterns test PPC405_ERRATUM77.
1202
1203 2005-06-23  Jan Hubicka  <jh@suse.cz>
1204         
1205         * tree-inline.c (copy_body_r): Remap labels correctly.
1206
1207 2005-06-22  Alan Modra  <amodra@bigpond.net.au>
1208
1209         * config/rs6000/sysv4.h (TARGET_ASM_EXCEPTION_SECTION): Delete.
1210
1211 2005-06-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1212
1213         PR middle-end/20593
1214         * varasm.c (compute_reloc_for_constant): Treat VIEW_CONVER_EXPR
1215         the same as the other cast operands.
1216         (output_addressed_constants): Likewise.
1217
1218 2005-06-21  Jeff Law  <law@redhat.com>
1219
1220         * tree-vrp.c (extract_range_from_unary_expr): Handle type
1221         conversions better.
1222
1223 2005-06-21  Dorit Nuzman  <dorit@il.ibm.com>
1224
1225         * genopinit.c (vec_shl_optab, vec_shr_optab): Initialize new optabs.
1226         (reduc_plus_optab): Removed.  Replcaed with...
1227         (reduc_splus_optab, reduc_uplus_optab): Initialize new optabs.
1228         * optabs.c (optab_for_tree_code): Return reduc_splus_optab or
1229         reduc_uplus_optab instead of reduc_plus_optab.
1230         (expand_vec_shift_expr): New function.
1231         (init_optabs): Initialize new optabs. Remove initialization of
1232         reduc_plus_optab.
1233         (optab_for_tree_code): Return vec_shl_optab/vec_shr_optab
1234         for VEC_LSHIFT_EXPR/VEC_RSHIFT_EXPR.
1235         * optabs.h (OTI_reduc_plus): Removed. Replaced with...
1236         (OTI_reduc_splus, OTI_reduc_uplus): New.
1237         (reduc_plus_optab): Removed.  Replcaed with...
1238         (reduc_splus_optab, reduc_uplus_optab): New optabs.
1239         (vec_shl_optab, vec_shr_optab): New optabs.
1240         (expand_vec_shift_expr): New function declaration.
1241
1242         * tree.def (VEC_LSHIFT_EXPR, VEC_RSHIFT_EXPR): New tree-codes.
1243         * tree-inline.c (estimate_num_insns_1): Handle new tree-codes.
1244         * expr.c (expand_expr_real_1): Handle new tree-codes.
1245         * tree-pretty-print.c (dump_generic_node, op_symbol, op_prio): Likewise.
1246         * tree-vect-generic.c (expand_vector_operations_1): Add assert.
1247
1248         * tree-vect-transform.c (vect_create_epilog_for_reduction): Add two
1249         alternatives for generating reduction epilog code.
1250         (vectorizable_reduction): Don't fail of direct reduction support is
1251         not available.
1252         (vectorizable_target_reduction_pattern): Likewise.
1253
1254         * config/rs6000/altivec.md (reduc_smax_v4si, reduc_smax_v4sf,
1255         reduc_umax_v4si, reduc_smin_v4si, reduc_smin_v4sf, reduc_umin_v4si,
1256         reduc_plus_v4si, reduc_plus_v4sf): Removed.
1257         (vec_shl_<mode>, vec_shr_<mode>, altivec_vsumsws_nomode,
1258         reduc_splus_<mode>, reduc_uplus_v16qi): New.
1259
1260 2005-06-20  Daniel Berlin  <dberlin@dberlin.org>
1261
1262         * c-typeck.c (build_function_call): Set fundecl = function again.
1263         * tree-ssa-alias.c (find_used_portions): Address taking causes the
1264         entire variable to be used.
1265         * tree-ssa-structalias.c (do_structure_copy): Fix handling of
1266         unknown size variables, and structure copies from addressof
1267         operations.  Simplify how we do *a = *b type structure copies.
1268         (init_base_vars): Add ANYTHING = &ANYTHING constraint the right
1269         way.  READONLY's address is not taken by default.
1270         INTEGER dereference should point to anything.
1271         (create_variable_info_for): It's okay for the first field to not start
1272         at 0.
1273
1274 2005-06-20  Kaz Kojima  <kkojima@gcc.gnu.org>
1275
1276         config/sh/linux.h (FUNCTION_PROFILER): Constify a char*.
1277
1278 2005-06-20  Roger Sayle  <roger@eyesopen.com>
1279             Fariborz Jahanian <fjahanian@apple.com>
1280
1281         * combine.c (simplify_set): Simplify setting of CC register
1282         by removing redundant compare with 0 on RHS.
1283
1284 2005-06-20  Jan Beulich  <jbeulich@novell.com>
1285
1286         * config/i386/netware-libgcc.def: Update copyright.
1287         * config/i386/netware-libgcc.exp (__divdc3, __divsc3, __divxc3,
1288         __muldc3, __mulsc3, __mulxc3, __powidf2, __powisf2, __powixf2): Add.
1289         * config/i386/netware.c (gen_stdcall_decoration,
1290         gen_fastd_decoration): Merge into ...
1291         (gen_stdcall_or_fastcall_decoration): ... this. Adjust to match
1292         WinNT's changes.
1293         (gen_regparm_prefix): Adjust to match i386_nlm_encode_section_info.
1294         (i386_nlm_encode_section_info): Adjust to match WinNT's changes.
1295         * config/i386/t-nwld (SHLIB_LINK): Also create libgcc.imp alias of
1296         libgcc_s.imp. Use 'expr' rather than $(()) shell expressions.
1297         * gthr-nks.h (__gthread_objc_mutex_allocate): Kill another dubious
1298         use of NX_MUTEX_RECURSIVE.
1299
1300 2005-06-19  Roger Sayle  <roger@eyesopen.com>
1301
1302         * fold-const.c (swap_tree_comparison): Add support for unordered
1303         floating point comparisons.
1304         * tree-vrp.c (opposite_comparison): Delete.
1305         (extract_range_from_assert): Replace calls to opposite_comparison
1306         with calls to swap_tree_comparison.
1307         (register_edge_assert_for): Likewise.
1308         (vrp_evaluate_conditional): Likewise.
1309
1310 2005-06-20  Kaz Kojima  <kkojima@gcc.gnu.org>
1311
1312         * integrate.c (allocate_initial_values): Update the references
1313         to global_live_at_start and global_live_at_end.
1314
1315 2005-06-20  Jan Hubicka  <jh@suse.cz>
1316
1317         * cfgloop.h (DLTHE_RECORD_COPY_NUMBER): New flag.
1318         * cfgloopmanip.c (duplicate_loop_to_header_edge): Set aux flags only
1319         when asked for.
1320         * loop-unroll.c (peel_loop_completely, unroll_loop_constant_iterations,
1321         unroll_loop_runtime_iterations, peel_loop_simple, unroll_loop_stupid):
1322         Update call of duplicate_loop_to_header_edge.
1323         (apply_opt_in_copies): Clear out aux pointers.
1324
1325 2005-06-19  Joseph S. Myers  <joseph@codesourcery.com>
1326
1327         * config/i386/i386.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
1328         (ix86_mangle_fundamental_type): New.
1329         * config/ia64/ia64.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
1330         (ia64_mangle_fundamental_type): New.
1331
1332 2005-06-19  Roger Sayle  <roger@eyesopen.com>
1333
1334         * c-decl.c (grokdeclarator): Only check TREE_OVERFLOW on
1335         INTEGER_CST nodes.
1336         * c-typeck.c (build_c_cast): Only preserve TREE_OVERFLOW on
1337         CONSTANT_CLASS_P nodes.
1338
1339 2005-06-19  Richard Henderson  <rth@redhat.com>
1340
1341         * config/ia64/vect.md (vec_extractv2sf_1): Fix cut-and-paste error;
1342         the shift is always required.
1343
1344 2005-06-19  Richard Henderson  <rth@redhat.com>
1345
1346         * config/ia64/ia64-modes.def (V4SF): Add.
1347         * config/ia64/ia64.c (ia64_legitimate_constant_p): Handle CONST_VECTOR.
1348         * config/ia64/ia64.h (CANNOT_CHANGE_MODE_CLASS): Allow vector to 
1349         integer mode changes in fp regs.
1350         * config/ia64/ia64.md (UNSPEC_VECT_EXTR): New.
1351         * config/ia64/vect.md (smaxv2sf3, sminv2sf3): Fix typos in names.
1352         (reduc_plus_v2sf, reduc_smax_v2sf, reduc_smin_v2sf): New.
1353         (vcondv2sf): Use gen_fpack
1354         (fpack): Remove * from name.
1355         (fswap, fmix_l, fmix_r, fmix_lr): New.
1356         (vec_setv2sf, vec_extractv2sf_0_le, vec_extractv2sf_0_be): New.
1357         (vec_extractv2sf_1, vec_extractv2sf): New.
1358
1359 2005-06-19  Andreas Krebbel  <krebbel1@de.ibm.com>
1360
1361         * combine.c (make_compound_operation): Use simplify_subreg.  Delete
1362         a optimization already done by simplify_subreg.
1363
1364 2005-06-19  Ulrich Weigand  <uweigand@de.ibm.com>
1365
1366         * loop.c (scan_loop): Do not consider insns setting the frame
1367         pointer to be candidates for hoisting.
1368
1369 2005-06-19  Uros Bizjak  <uros@kss-loka.si>
1370
1371         * config/i386/i386.md (*cmpfp_0_sf, *cmpfp_0_df, cmpfp_0_xf):
1372         Remove instruction patterns.
1373         (*cmpfp_0): New instruction pattern. Set "unit" attribute to "i387".
1374         (*cmpfp_sf, *cmpfp_df, *cmpfp_xf, *cmpfp_u, *_cmpfp_<mode>):
1375         Set "unit" attribute to "i387".
1376         (*pushsf, *pushsf_rex64, *pushdf_nointeger, *pushdf_integer)
1377         (*pushxf_nointeger, *pushxf_integer): Set "unit" attribute to "i387"
1378         for alternative 0.
1379         (*truncdfsf_mixed, *truncdfsf_i387, *truncxfsf2_mixed)
1380         (*truncxfsf2_i387, *truncxfdf2_mixed, *truncxfdf2_i387): Set "unit"
1381         attribute to "i387" when "type" attribute equals "multi".
1382         (*floathisf2_i387, *floatsisf2_mixed, *floatsisf2_i387)
1383         (*floatdisf2_mixed, *floatdisf2_i387, *floathidf2_i387)
1384         (*floatsidf2_mixed, *floatsidf2_i387, *floatdidf2_mixed)
1385         (*floatdidf2_i387, floathixf2, floatsixf2, floatdixf2): Set "unit"
1386         attribute to "i387" when "type" attribute equals "multi".
1387         * config/i386/mmx.md (*mov<mode>_internal_rex64)
1388         (*mov<mode>_internal, *movv2sf_internal_rex64, *movv2sf_internal):
1389         Set "unit" attribute to "mmx" when "type" attribute equals "ssecvt".
1390         (mmx_pmovmskb): Correct wrong "type" and "mode" attributes.
1391         * config/i386/sse.md (sse_cvtps2pi, sse_cvttps2pi, sse_cvtpd2di)
1392         (sse_cvttpd2pi): Set "unit" attribute to "mmx".
1393         (sse2_cvtpi2pd): Split register constraints. Set "unit" attribute
1394         to "mmx" for "y" operand 1.
1395
1396 2005-06-19  Uros Bizjak  <uros@kss-loka.si>
1397
1398         * config/i386/i386.c (ix86_function_arg_regno_p): Add MMX_REGNO_P
1399         for TARGET_MMX.  Use MMX_REGPARM_MAX and SSE_REGPARM_MAX for MMX
1400         and SSE registers to determine if regno is valid.
1401         (ix86_function_value_regno_p): Depend FIRST_FLOAT_REG on
1402         TARGET_FLOAT_RETURNS_IN_80387 also for TARGET_64BIT. Clean up.
1403
1404 2005-06-18  Richard Henderson  <rth@redhat.com>
1405
1406         * tree-complex.c (init_dont_simulate_again): Clear DONT_SIMULATE_AGAIN
1407         for control-altering statements; set it again for returns.
1408         (complex_visit_stmt): Return SSA_PROP_VARYING for stmts that are
1409         not MODIFY_EXPR.
1410
1411 2005-06-18  Richard Henderson  <rth@redhat.com>
1412
1413         PR tree-opt/22116
1414         * tree-ssa-pre.c (create_expression_by_pieces): Set
1415         DECL_COMPLEX_GIMPLE_REG_P.
1416         (insert_into_preds_of_block): Likewise.
1417
1418 2005-06-18  Steven Bosscher  <stevenb@suse.de>
1419
1420         * Makefile.in: Fix tree-cfgcleanup.c dependencies.
1421
1422 2005-06-18  Richard Henderson  <rth@redhat.com>
1423
1424         * expr.c (store_constructor): Use store of 0 to indicate value
1425         death instead of a clobber.
1426
1427         * config/i386/i386.c (ix86_expand_reduc_v4sf): New.
1428         * config/i386/i386-protos.h (ix86_expand_reduc_v4sf): Declare.
1429         * config/i386/sse.md (reduc_plus_v4sf): New.
1430         (reduc_smax_v4sf, reduc_smin_v4sf): New.
1431
1432 2005-06-18  James A. Morrison  <phython@gcc.gnu.org>
1433
1434         * fold_const (fold_binary): Fold X % (2**N) to X & (2**N - 1) for
1435         nonnegative values of X.
1436
1437 2005-06-18  Uros Bizjak  <uros@kss-loka.si>
1438
1439         * doc/md.texi (Standard Names): Change insn pattern name
1440         from truncM2 to btruncM2 for 'trunc' built-in description.
1441         Add rintM2 insn pattern description.
1442
1443 2005-06-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1444
1445         * c-decl.c (locate_old_decl): Add format attribute.
1446         (implicit_decl_warning): Likewise.
1447
1448         * diagnostic.h (verbatim): Move ...
1449         * toplev.h (verbatim): ... here.  Add ATTRIBUTE_GCC_DIAG.
1450         * pretty-print.h (pp_verbatim): Add ATTRIBUTE_GCC_PPDIAG.
1451
1452 2005-06-18  Roger Sayle  <roger@eyesopen.com>
1453
1454         PR target/22083
1455         * config/rs6000/aix51.h (TARGET_C99_FUNCTIONS): Remove definition.
1456
1457 2005-06-18  Dorit Nuzman  <dorit@il.ibm.com>
1458
1459         * tree.def (REDUC_MAX_EXPR, REDUC_MIN_EXPR, REDUC_PLUS_EXPR): New
1460         tree-codes.
1461         * optabs.h (OTI_reduc_smax, OTI_reduc_umax, OTI_reduc_smin,
1462         OTI_reduc_umin, OTI_reduc_plus): New optabs for reduction. 
1463         (reduc_smax_optab, reduc_umax_optab, reduc_smin_optab, reduc_umin_optab,
1464         reduc_plus_optab): New optabs for reduction.
1465         * expr.c (expand_expr_real_1): Handle new tree-codes.
1466         * tree-inline.c (estimate_num_insns_1): Handle new tree-codes.
1467         * tree-pretty-print.c (dump_generic_node, op_prio, op_symbol): Handle
1468         new tree-codes.
1469         * optabs.c (optab_for_tree_code): Handle new tree-codes.
1470         (init_optabs): Initialize new optabs.
1471         * genopinit.c (optabs): Define handlers for new optabs. 
1472
1473         * tree-vect-analyze.c (vect_analyze_operations): Fail vectorization in
1474         case of a phi that is marked as relevant. Call vectorizable_reduction.
1475         (vect_mark_relevant): Phis may be marked as relevant.
1476         (vect_mark_stmts_to_be_vectorized): The use corresponding to the 
1477         reduction variable in a reduction stmt does not mark its defining phi
1478         as relevant. Update documentation accordingly.
1479         (vect_can_advance_ivs_p): Skip reduction phis.
1480         * tree-vect-transform.c (vect_get_vec_def_for_operand): Takes
1481         additional argument. Handle reduction.
1482         (vect_create_destination_var): Update call to vect_get_new_vect_var.
1483         Handle non-vector argument.
1484         (get_initial_def_for_reduction): New function.
1485         (vect_create_epilog_for_reduction): New function. 
1486         (vectorizable_reduction): New function.
1487         (vect_get_new_vect_var): Handle new vect_var_kind.       
1488         (vectorizable_assignment, vectorizable_operation, vectorizable_store,
1489         vectorizable_condition): Update call to vect_get_new_vect_var.
1490         (vect_transform_stmt): Call vectorizable_reduction.
1491         (vect_update_ivs_after_vectorizer): Skip reduction phis.
1492         (vect_transform_loop): Skip if stmt is both not relevant and not live.
1493         * tree-vectorizer.c (reduction_code_for_scalar_code): New function.
1494         (vect_is_simple_reduction): Was empty - added implementation.
1495         * tree-vectorizer.h (vect_scalar_var): New enum vect_var_kind value.
1496         (reduc_vec_info_type): New enum vect_def_type value.
1497         * config/rs6000/altivec.md (reduc_smax_v4si, reduc_smax_v4sf,
1498         reduc_umax_v4si, reduc_smin_v4si, reduc_umin_v4sf, reduc_smin_v4sf,
1499         reduc_plus_v4si, reduc_plus_v4sf): New define_expands.
1500
1501         * tree-vect-analyze.c (vect_determine_vectorization_factor): Remove
1502         ENABLE_CHECKING around gcc_assert.
1503         * tree-vect-transform.c (vect_do_peeling_for_loop_bound,
1504         (vect_do_peeling_for_alignment, vect_transform_loop, 
1505         vect_get_vec_def_for_operand): Likewise.
1506
1507 2005-06-18  Joseph S. Myers  <joseph@codesourcery.com>
1508
1509         * config/ia64/ia64.c (ia64_function_arg): Set up a PARALLEL for a
1510         big-endian unnamed __float80 value.
1511
1512 2005-06-18  Richard Henderson  <rth@redhat.com>
1513
1514         PR tree-opt/22103
1515         * tree-sra.c (generate_copy_inout): Handle SSA_NAME complex
1516         destinations.
1517
1518 2005-06-17  Richard Henderson  <rth@redhat.com>
1519
1520         * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Use
1521         initialize_original_copy_tables and free_original_copy_tables.
1522         (vect_do_peeling_for_alignment): Likewise.
1523
1524 2005-06-17  Pat Haugen  <pthaugen@us.ibm.com>
1525
1526         * bb-reorder.c (find_traces_1_round): Use succ block frequency
1527         instead of edge frequency for calls to better_edge_p.
1528
1529 2005-06-17  Andrew Pinski  <pinskia@physics.uc.edu>
1530
1531         PR tree-opt/22105
1532         * tree-ssa-loop-im.c (for_each_index): Handle COMPLEX_CST.
1533
1534 2005-06-17  Steve Ellcey  <sje@cup.hp.com>
1535
1536         PR target/19889
1537         * config/ia64/hpux.h (FUNCTION_PROFILER): New (dummy).
1538         (PROFILE_HOOK): New.
1539         (PROFILE_BEFORE_PROLOGUE): Undef.
1540         (NO_PROFILE_COUNTERS): New.
1541         * config/ia64/ia64-protos.h (ia64_profile_hook): New.
1542         * config/ia64/ia64.c (ia64_compute_frame_size): Add ifdef.
1543         (gen_mcount_func_rtx): New.
1544         (ia64_profile_hook): New.
1545         * config/ia64/ia64.md (ip_value): New.
1546
1547 2005-06-17  Devang Patel  <dpatel@apple.com>
1548
1549         * config/rs6000/predicates.md (s5bit_cint_operand,
1550         u5bit_cint_operand): New.
1551         * config/rs6000/altivec.md (altivec_vspltb, altivec_vsplth,
1552         altivec_vspltisw_v4sf): Use new 5 bit constant operand predicates.
1553         * config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Fix signed
1554         5 bit constant check.
1555         
1556 2005-06-17  Richard Henderson  <rth@redhat.com>
1557
1558         * local-alloc.c (update_equiv_regs): Update reg_equiv_init
1559         properly when moving an initialization insn.
1560
1561 2005-06-17  Paolo Bonzini  <bonzini@gnu.org>
1562
1563         * aclocal.m4 (gcc_AC_CHECK_TOOL): Do not overwrite the
1564         passed variable.
1565         * configure.ac: Regenerate.
1566
1567 2005-06-17  Jan Hubicka  <jh@suse.cz>
1568
1569         * tree-optimize.c (execute_ipa_pass_list): New.
1570         (ipa_passes): Use it.
1571
1572 2005-06-16  Richard Henderson  <rth@redhat.com>
1573
1574         PR tree-opt/22022
1575         * tree-complex.c (update_phi_components): Avoid no-op moves.
1576
1577 2005-06-16  Joseph S. Myers  <joseph@codesourcery.com>
1578
1579         * Makefile.in (cc1-checksum.c): Use
1580         build/genchecksum$(build_exeext), not build/genchecksum$(exeext).
1581
1582 2005-06-16  Geoffrey Keating  <geoffk@apple.com>
1583
1584         * gengtype.c (adjust_field_rtx_def): Don't add a skip to
1585         basic_block types.
1586
1587         * config/t-slibgcc-darwin (SHLIB_SOVERSION): Rename from
1588         SHLIB_MINOR.
1589         (SHLIB_REVISION): Delete.
1590         (SHLIB_VERSTRING): Update to compensate.
1591         (SHLIB_SONAME): Just use one '.' in the name.
1592
1593 2005-06-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
1594
1595         PR tree-optimization/22018
1596         * tree-vrp.c (vrp_int_const_binop): Overhaul handling of overflow.
1597
1598 2005-06-16  Richard Henderson  <rth@redhat.com>
1599
1600         PR tree-opt/22035
1601         * builtins.c (fold_builtin_complex_mul): Remove.
1602         (fold_builtin_complex_div): Remove.
1603         (fold_builtin_1): Don't call them.
1604         * fold-const.c (fold_complex_add, fold_complex_mult_parts,
1605         fold_complex_mult, fold_complex_div_parts, fold_complex_div): Remove.
1606         (fold_binary): Don't call them.  Don't expand complex comparisons to
1607         elementary comparisons.
1608         * tree-complex.c (init_dont_simulate_again): Enhance search for 
1609         stmts that require decomposition.
1610         (complex_visit_stmt): Handle RETURN_EXPR properly.
1611         (create_components): Handle no referenced variables properly.
1612         * tree.h (fold_complex_mult_parts): Remove.
1613         (fold_complex_div_parts): Remove.
1614
1615 2005-06-16  Richard Guenther  <rguenth@gcc.gnu.org>
1616
1617         * doc/extend.texi: Document sseregparm target attribute.
1618         Clarify fastcall and regparm documentation.
1619         * config/i386/i386.h: Adjust float_in_sse documentation.
1620         * config/i386/i386.c: Add new target attribute sseregparm.
1621         (ix86_handle_cdecl_attribute, ix86_handle_regparm_attribute):
1622         Merge into ...
1623         (ix86_handle_cconv_attribute): ... here.  Also handle
1624         sseregparm attribute.
1625         (ix86_comp_type_attributes): Compare sseregparm attributes.
1626         (ix86_function_sseregparm): New function, split out from ...
1627         (init_cumulative_args): ... here.  Use to decide use
1628         of SSE registers and error in case of missing support.
1629         (ix86_value_regno): Likewise.
1630         (function_arg_advance): Do not bail out for DFmode if we need
1631         to pass doubles in registers.
1632         (function_arg): Likewise.
1633
1634 2005-06-16  Paolo Bonzini  <bonzini@gnu.org>
1635             Daniel Jacobowitz  <dan@codesourcery.com>
1636             Alan Modra <amodra.bigpond.net.au>
1637
1638         * configure.ac (gcc_version): Set near the beginning.
1639         (as, ld, nm): Do not link in-tree tools.  Set gcc_cv_* if tools are
1640         found in the tree.  Use gcc_AC_PROG to find the tools in the system.
1641         (objdump): Do not look for it.
1642         * Makefile.in (NM_FOR_TARGET): Point to ./nm
1643         (ORIGINAL_AS_FOR_TARGET, ORIGINAL_LD_FOR_TARGET,
1644         ORIGINAL_NM_FOR_TARGET): Substitute from autoconf.
1645         (as, ld, nm): New rules.
1646         (libgcc.mk): Depend on them.
1647         * aclocal.m4 (gcc_AC_TOOL_DIRS, gcc_AC_CHECK_TOOL,
1648         gcc_AC_BUILD_EXEEXT): New.
1649         (gcc_AC_CHECK_PROG_VER): Use gcc_AC_BUILD_EXEEXT.
1650         * configure: Regenerate.
1651
1652 2005-06-16  Jan Hubicka  <jh@suse.cz>
1653
1654         * basic-block.h (rtl_bb_info): Break out head_, end_,
1655         global_live_at_start, global_live_at_end from ...
1656         (basic_block_def): ... here; update all references
1657         (BB_RTL): New flag.
1658         (init_rtl_bb_info): Declare.
1659         * cfgexpand.c (expand_gimple_basic_block): Init bb info, set BB_RTL
1660         flag.
1661         * cfgrtl.c: Include ggc.h
1662         (create_basic_block_structure): Init bb info.
1663         (rtl_verify_flow_info_1): Check BB_RTL flag and rtl_bb_info pointer.
1664         (init_rtl_bb_info): New function.
1665         (rtl_merge_block, cfglayout_merge_block): Copy global_live_at_end here.
1666         * cfghooks.c (merge_block): Do not copy global_live_at_end here.
1667         * cfg.c (clear_bb_flags): Skip BB_RTL flag.
1668         (dump_flow_info): Gueard global_live_* dumping.
1669
1670         * Makefile.in (cfg.o): Add new dependencies.
1671         * basic-block.h (reorder_block_def): Kill
1672         original/copy/duplicated/copy_number fields.
1673         (BB_DUPLICATED): New flag.
1674         (initialize_original_copy_tables, free_original_copy_tables,
1675         set_bb_original, get_bb_original, set_bb_copy, get_bb_copy): New.
1676         * cfg.c: Include hashtab.h and alloc-pool.h
1677         (bb_original, bb_copy, original_copy_bb_pool): New static vars.
1678         (htab_bb_copy_original_entry): New struct.
1679         (bb_copy_original_hash, bb_copy_original_eq): New static functions.
1680         (initialize_original_copy_tables, free_original_copy_tables,
1681         set_bb_original, get_bb_original, set_bb_copy, get_bb_copy): New
1682         global functions.
1683         * cfghooks.c (duplicate_block): Update original/copy handling.
1684         * cfglayout.c (fixup_reorder_chain): Likewise.
1685         (cfg_layout_initialize): Initialize orignal_copy tables.
1686         (cfg_layout_finalize): FInalize original_copy tables.
1687         (can_copy_bbs_p): Use BB_DUPLICATED flag.
1688         (copy_bbs): Likewise.
1689         * cfgloopmanip.c (update-single_exits_after_duplication): Likewise.
1690         (duplicate_loop_to_header_edge): Likewise; update handling of
1691         copy_number.
1692         (loop_version): Likewise.
1693         * dominance.c (get_dominated_by_region): Use BB_DUPLICATED_FLAG.
1694         * except.c (expand_resx_expr): Check that reg->resume is not set.
1695         * loop-unroll.c (unroll_loop_constant_iterations,
1696         unroll_loop_runtime_iterations, apply_opt_in_copies): Update
1697         copy/original handling.
1698         * loop-unwitch.c (unswitch_loop): Likewise.
1699         * tree-cfg.c (create_bb): Do not initialize RBI.
1700         (disband_implicit_edges): Do not kill RBI.
1701         (add_phi_args_after_copy_bb): Use new original/copy mapping.
1702         (add_phi_args_after_copy): Use BB_DUPLICATED flag.
1703         (tree_duplicate_sese_region): Update original/copy handling.
1704         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise.
1705         * tree-ssa-loop-manip.c (copy_phi_node_args): Likewise.
1706         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Likewise.
1707
1708 2005-06-15  Andrew Pinski  <pinskia@physics.uc.edu>
1709
1710         PR tree-opt/21923
1711         * tree-ssa.c (tree_ssa_useless_type_conversion_1): Conversions between
1712         integer types whos ranges are different are not useless.
1713
1714 2005-06-15  Andrew Pinski  <pinskia@physics.uc.edu>
1715
1716         PR tree-opt/22024
1717         * tree-ssa-reassoc.c (init_reassoc): Also give chain decl a distint
1718         rank.
1719
1720 2005-06-15  Diego Novillo  <dnovillo@redhat.com>
1721
1722         * tree-ssa-structalias.c (dump_solution_for_var): Reformat
1723         output.
1724         (dump_sa_points_to_info): Make extern.
1725         (debug_sa_points_to_info): New.
1726         * tree-ssa-structalias.h (TREE_SSA_STRUCTALIAS_H): Rename from
1727         TREE_ALIAS_COMMON.
1728         (dump_sa_points_to_info): Declare.
1729         (debug_sa_points_to_info): Declare.
1730
1731 2005-06-15  Joseph S. Myers  <joseph@codesourcery.com>
1732
1733         * c-tree.h (default_function_array_conversion): Declare.
1734         * c-typeck.c (default_function_array_conversion): Export.  Correct
1735         comment.
1736         (default_conversion): Do not call
1737         default_function_array_conversion.  Do not allow FUNCTION_TYPE.
1738         (build_function_call): Call default_function_array_conversion on
1739         the function.
1740         (convert_arguments): Do not call it on the function arguments.
1741         (build_unary_op): Do not allow ARRAY_TYPE or FUNCTION_TYPE for
1742         TRUTH_NOT_EXPR.  Call default_function_array_conversion for taking
1743         address of ARRAY_REF.
1744         (build_compound_expr): Do not call
1745         default_function_array_conversion.
1746         (build_c_cast): Do not call default_function_array_conversion.
1747         (convert_for_assignment): Do not call default_conversion.
1748         (digest_init): Call default_function_array_conversion to convert
1749         string constants and compound literals to pointers, but not
1750         otherwise.
1751         (output_init_element): Likewise.
1752         (build_asm_expr): Do not call default_function_array_conversion.
1753         (c_process_expr_stmt): Likewise.
1754         (c_objc_common_truthvalue_conversion): Likewise.  Do not allow
1755         FUNCTION_TYPE.
1756         * c-parser.c (c_parser_expression_conv): New.
1757         (c_parser_asm_operands, c_parser_expr_list): Add convert_p
1758         argument.  All callers changed.  Call
1759         default_function_array_conversion if convert_p.
1760         (c_parser_initializer, c_parser_initval): Call
1761         default_function_array_conversion except for string constants and
1762         compound literals.
1763         (c_parser_initelt): Call default_function_array_conversion for
1764         ObjC expression received.
1765         (c_parser_statement_after_labels): Call c_parser_expression_conv
1766         for return and expression statements.
1767         (c_parser_paren_condition, c_parser_for_statement,
1768         c_parser_conditional_expression): Call c_parser_expression_conv.
1769         (c_parser_expr_no_commas, c_parser_conditional_expression,
1770         c_parser_binary_expression, c_parser_cast_expression,
1771         c_parser_unary_expression): Call
1772         default_function_array_conversion.
1773
1774 2005-06-15  Diego Novillo  <dnovillo@redhat.com>
1775
1776         * tree-vrp.c (vrp_int_const_binop): Do not handle MAX_EXPR
1777         when the result overflows.
1778
1779 2005-06-15  David Ung  <davidu@mips.com>
1780
1781         * config/mips/mips.c (mips_rtx_cost_data): Add cost for 4kc, 4kp,
1782         24k and 24kx.
1783         
1784 2005-06-15  Richard Sandiford  <richard@codesourcery.com>
1785
1786         * doc/invoke.texi (-mips16): Fix typo.
1787
1788 2005-06-15  David Ung  <davidu@mips.com>
1789
1790         * config/mips/mips.h (GENERATE_MIPS16E): New definition.
1791         * config/mips/mips.md (zero_extend<SHORT:mode><GPR:mode>2):
1792         Changed expand condition to exclude generating of "and" if
1793         GENERATE_MIPS16E is true.
1794         (*zero_extend<SHORT:mode><GPR:mode>2_mips16e): New pattern for
1795         matching mips16e zeb/zeh.
1796         (*extend<SHORT:mode><GPR:mode>2_mips16e): New pattern for matching
1797         mips16e seb/seh. 
1798         (*extend<SHORT:mode><GPR:mode>2): Disable this pattern for
1799         GENERATE_MIPS16E. 
1800         * doc/invoke.texi (MIPS Options): Add comment to -mips16
1801         indicating MIPS16e ASE is used if targetting for MIPS32 or MIPS64.
1802         
1803 2005-06-15  Diego Novillo  <dnovillo@redhat.com>
1804
1805         PR 22018
1806         * tree-vrp.c (vrp_int_const_binop): New.
1807         (extract_range_from_binary_expr): Call it.
1808         Unify handling division and multiplication.
1809
1810 2005-06-15  Aldy Hernandez  <aldyh@redhat.com>
1811
1812         * c-common.h (same_scalar_type_ignoring_signedness): Protoize.
1813
1814         * c-common.c (same_scalar_type_ignoring_signedness): New.
1815
1816         * c-typeck.c (build_binary_op): Check compatability of vector
1817         types.  Move error report after switch.
1818         Do not clobber code[01] on *_DIV_EXPR case.
1819
1820         * testsuite/gcc.dg/simd-1.c: Update error messages.
1821         * testsuite/gcc.dg/simd-1b.c: Re-enable tests.  Update error
1822         messages.
1823         * testsuite/gcc.dg/simd-2.c: Update error messages.
1824         * testsuite/gcc.dg/simd-4.c: New.
1825
1826 2005-06-15  Bernd Schmidt  <bernd.schmidt@analog.com>
1827
1828         * Makefile.in (local-alloc.o): Depend on $(GGC_H) and reload.h.
1829         * local-alloc.c: Include "ggc.h" and "reload.h".
1830         (struct equivalence): New member is_arg_equivalence.
1831         (local_alloc): Always call update_equiv_regs.
1832         (update_equiv_regs): Allocate reg_equiv_init; set reg_equiv_init_size.
1833         Detect equivalences made by stores to memory in a second pass.
1834         Return early if not optimizing.
1835         Initialize reg_equiv_init for all equivalences; treat equivalences for
1836         REG_EQUIV notes existing before this pass specially.
1837         (no_equiv): Don't clear reg_equiv_init or remove notes if the
1838         is_arg_equivalence field is set.
1839         * reload.h (reg_equiv_init, reg_equiv_init_size): Declare.
1840         * reload1.c (reg_equiv_init): No longer static.
1841         (reg_equiv_init_size): New variable.
1842         (reload): Don't allocate reg_equiv_init; don't free it when done but
1843         clear it.
1844         Restructure equivalence set up code not to set reg_equiv_init, but to
1845         clear it when we can't use an equivalence.
1846         Undo change disabling equivalences for MEM_READONLY_P memrefs.
1847         Dump equivalencing insns to dump_file.
1848
1849 2005-06-14  Richard Sandiford  <richard@codesourcery.com>
1850
1851         * config/mips/mips.c (machine_function): Add varargs_size field.
1852         (mips_setup_incoming_varargs): Store the amount of extra stack space
1853         there rather than in *pretend_size.  When saving registers, always
1854         expect virtual_incoming_args_rtx to point to the start of the
1855         pretend arguments.
1856         (mips_va_start): Remove alignment hack.  Handle all
1857         !EABI_FLOAT_VARARGS_P cases in the same way.
1858         (compute_frame_size): Handle varargs_size.  Remove the redundant
1859         !TARGET_OLDABI condition in the handling of pretend_args_size.
1860         (mips_initial_elimination_offset): Remove the now-redundant check
1861         of TARGET_NEWABI.
1862
1863 2005-06-14  Jeff Law  <law@redhat.com>
1864
1865         * tree-vrp.c (local_fold): Remove.
1866         (simplify_using_ranges): Use fold_convert, not local_fold.  Tweak
1867         DIV/MOD case slightly for readability.
1868
1869 2005-06-14  Frank Ch. Eigler  <fche@redhat.com>
1870
1871         PR mudflap/21023
1872         * tree-mudflap.c (mudflap_finish_file): Exclude non-public
1873         rather than static objects (!) from libmudflap registration.
1874
1875 2005-06-14  Richard Sandiford  <richard@codesourcery.com>
1876
1877         * opt-functions.awk (global_state_p, needs_state_p, static_var): New.
1878         (var_ref): Take the option's flags as a second parameter.  Check
1879         static_var.
1880         * optc-gen.awk: Declare local state variables.  Pass flags to var_ref.
1881
1882 2005-06-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
1883
1884         PR target/20301
1885         * config/sparc/sol2.h (ASM_GENERATE_INTERNAL_LABEL): Emit
1886         unsigned index numbers.
1887
1888 2005-06-13  Geoffrey Keating  <geoffk@apple.com>
1889
1890         * Makefile.in (install-man): Doesn't really depend on installdirs.
1891         (various rules for installing manpages): Do depend on installdirs.
1892
1893 2005-06-14  Nathan Sidwell  <nathan@codesourcery.com>
1894
1895         * unwind-dw2-fde-darwin.c (examine_objects): Fix aliasing in
1896         read_encoded_value_with_base call.
1897         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Likewise.
1898         * unwind-dw2-fde.c (_Unwind_Find_FDE): Likewise.
1899         * unwind-dw2.c (extract_cie_info): Fix aliasing in
1900         read_encoded_value call.
1901         (execute_cfa_program, uw_frame_state_for): Likewise.
1902
1903 2005-06-13  Roger Sayle  <roger@eyesopen.com>
1904
1905         PR rtl-optimization/22053
1906         * reg-stack.c (compensate_edge): Correct mistake in the assertion
1907         checking of EDGE_ABNORMAL_CALL edges; complex return values can
1908         result in the top two stack slots, st(0) and st(1), being live.
1909
1910 2005-06-13  Jeff Law  <law@redhat.com>
1911
1912         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): No longer
1913         simplify DIV, MOD or ABS expressions using VRP information.
1914         Remove WALK_DATA parameter.  Prototype and all callers updated.
1915         (eliminate_redundant_computations): Remove WALK_DATA parameter.
1916         Prototype and all callers updated.
1917         (optimize_stmt): WALK_DATA parameter is now unused.
1918
1919         * tree-vrp.c (local_fold): New function.  Like fold, but
1920         strips useless type conversions in the result.
1921         (simplify_using_ranges): New function, largely cribbed from
1922         tree-ssa-dom.c::simplify_rhs_and_lookup_avail_expr.
1923         (vrp_finalize): Call simplify_using_ranges.
1924
1925 2005-06-13  Mark Mitchell  <mark@codesourcery.com>
1926
1927         * config/i386/x86-64.h (ASM_SPEC): Explicitly pass --64 to the
1928         assembler in 64-bit mode.
1929
1930 2005-06-13  David Edelsohn  <edelsohn@gnu.org>
1931
1932         Revert scc_operand patch.
1933         * config/rs6000/predicates.md (scc_operand): Delete.
1934         * config/rs6000/rs6000.md (scc_operand): Change to scc_eq_operand.
1935
1936 2005-06-13  Zdenek Dvorak  <dvorakz@suse.cz>
1937
1938         PR middle-end/21985
1939         * fold-const.c (split_address_to_core_and_offset): Always return
1940         the address of the base object.
1941
1942 2005-06-13  Bernd Schmidt  <bernd.schmidt@analog.com>
1943
1944         * doc/invoke.texi (Blackfin Options): Document -mlong-calls.
1945
1946 2005-06-12  Richard Henderson  <rth@redhat.com>
1947
1948         PR tree-opt/21994
1949         * tree-complex.c (update_complex_components_on_edge): New.
1950         (update_parameter_components): Use it.
1951         (update_phi_components): Likewise.
1952         (expand_complex_move): Likewise for is_ctrl_altering_stmt.
1953
1954 2005-06-12  James A. Morrison  <phython@gcc.gnu.org>
1955
1956         PR tree-optimization/14796
1957         * fold-const (fold_binary): Transform (X << C) >> C into X & (-1>>C)
1958         for unsigned types.
1959
1960 2005-06-12  Kazu Hirata  <kazu@codesourcery.com>
1961
1962         * cgraphunit.c, tree-ssa-loop-ivopts.c,
1963         tree-ssa-structalias.c, tree-vectorizer.c, tree-vectorizer.h,
1964         config/sparc/sparc.c: Fix comment typos.
1965
1966 2005-06-12  Richard Earnshaw  <richard.earnshaw@arm.com>
1967
1968         * arm/ieee754-df.s (aeabi_dcmpeq, aeabi_dcmplt, aeabi_dcmple)
1969         (aeabi_dcmpge, aeabi_dcmpgt): Maintain 8-byte stack alignment.
1970         * arm/ieee754-sf.s (aeabi_l2f, aeabi_fcmpeq, aeabi_fcmplt)
1971         (aeabi_fcmple, aeabi_fcmpge, aeabi_fcmpgt): Likewise.
1972
1973 2005-06-12  James A. Morrison  <phython@gcc.gnu.org>
1974
1975         PR tree-optimization/14796
1976         * fold-const.c (fold_binary): Transform (A >> C) << C into
1977         one BIT_AND_EXPR.
1978         <shift>: Transform (A OP c1) OP c2 into A OP (c1 + c2).
1979
1980 2005-06-11  Geoffrey Keating  <geoffk@apple.com>
1981
1982         * config/rs6000/predicates.md (reg_or_arith_cint_operand): Delete.
1983         (reg_or_add_cint_operand): Rename from reg_or_add_cint64_operand.
1984         Handle SImode.
1985         (reg_or_sub_cint_operand): Likewise.
1986         (mask_operand): Handle DImode.
1987         (mask64_operand): Delete.
1988         (and64_operand): Delete.
1989         * config/rs6000/rs6000.c (num_insns_constant): Use mask_operand
1990         instead of mask64_operand.
1991         (print_operand): Likewise.
1992         (rs6000_rtx_costs): Use mask_operand and reg_or_add_cint_operand and
1993         reg_or_sub_cint_operand instead of *64_* variants.
1994         * config/rs6000/rs6000.h (EXTRA_CONSTRAINT): Use mask_operand
1995         instead of mask64_operand.
1996         * config/rs6000/rs6000.md: Use mask_operand and and_operand instead
1997         of *64_* variants.
1998         (FP): New.
1999         (add_op2): Delete.
2000         (add<mode>3): Use reg_or_add_cint_operand.
2001         (sub_op2): Delete.
2002         (sub<mode>3): Use reg_or_sub_cint_operand.
2003         (udiv<mode>3, div<mode>3, div<mode>3_no_mq, mod<mode>3,
2004         mov<mode>_internal2, mov<mode>, cmp<mode>, cmp<mode>,
2005         cmp<mode>_internal1, indirect_jump<mode>, ctr<mode>,
2006         ctr<mode>_internal1, ctr<mode>_internal2, ctr<mode>_internal5,
2007         ctr<mode>_internal6, save_fpregs_<mode>, return_internal_<mode>,
2008         return_and_restore_fpregs_<mode>, eh_set_lr_<mode>,
2009         various unnamed patterns): New.
2010         (udivsi3, divsi3, divsi3_no_mq, modsi3, movsi_internal2, movsi,
2011         cmpsi, cmpsi_internal1, indirect_jumpsi, ctrsi, ctrsi_internal1,
2012         ctrsi_internal2, ctrsi_internal5, ctrsi_internal6, save_fpregs_si,
2013         return_internal_si, return_and_restore_fpregs_si, eh_set_lr_si,
2014         udivdi3, divdi3, divdi3_no_mq, moddi3, movdi_internal2, movdi,
2015         cmpdi, cmpdi_internal1, indirect_jumpdi, ctrdi, ctrdi_internal1,
2016         ctrdi_internal2, ctrdi_internal5, ctrdi_internal6, save_fpregs_di,
2017         return_internal_di, return_and_restore_fpregs_di, eh_set_lr_di,
2018         movhi, movqi, cmpsf, cmpdf, cmptf, various unnamed patterns):
2019         Delete.
2020
2021 2005-06-11  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2022
2023         * rtl.h (to_rtx_code): Remove.
2024         * machmode.h (to_machine_mode): Likewise.
2025         * read-rtl.c (apply_mode_macro): Replace to_machine_mode with
2026         explicit cast.
2027         (apply_mode_maps): Likewise.
2028         (read_rtx_1): Likewise.
2029         (apply_code_macro): Replace to to_rtx_code with explicit cast.
2030         (check_code_macro): Likewise.
2031         (read_rtx_1): Likewise.
2032
2033 2005-06-11  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2034
2035         * c-typeck.c (convert_for_assignment): Avoid checking
2036         OPT_Wc___compat, as it is always true.
2037
2038 2005-06-11  David Edelsohn  <edelsohn@gnu.org>
2039
2040         * config/rs6000/rs6000.md (eq<mode>_compare): Restrict to Pmode.
2041
2042 2005-06-11  Daniel Berlin  <dberlin@dberlin.org>
2043
2044         Fix PR tree-optimization/22005
2045         Fix PR tree-optimization/22025
2046         
2047         * tree-ssa-structalias.c (struct variable_info): Add has_union
2048         member.
2049         (create_variable_info_for):  Mark variables containing unions.
2050         Don't sort the field stack if notokay is true.
2051         (find_what_p_points_to): Convert variables containing unions back
2052         to their SFT's if necessary.
2053         
2054 2005-06-11  Daniel Berlin  <dberlin@dberlin.org>
2055
2056         * lambda-code.c (replace_uses_equiv_to_x_with_y): Verify the step
2057         is an INTEGER_CST before calling int_cst_value.
2058
2059 2005-06-10  Uros Bizjak  <uros@kss-loka.si>
2060
2061         PR target/21981
2062         * config/i386/i386.c (ix86_function_value_regno_p): Return true
2063         for FIRST_MMX_REG if TARGET_MMX.
2064         (ix86_return_in_memory): Return 1 for MMX/3dNow vectors. Delete
2065         wrong comment.
2066         (ix86_struct_value_rtx): Emit warning for MMX ABI violations.
2067         (ix86_value_regno): Return FIRST_MMX_REG for MMX vector modes.
2068
2069 2005-06-10  Daniel Berlin  <dberlin@dberlin.org>
2070
2071         * lambda-code.c (replace_uses_equiv_to_x_with_y): Check step
2072         and access function against chrec_dont_know.
2073           
2074 2005-06-10  Daniel Berlin  <dberlin@dberlin.org>
2075
2076         * lambda-code.c (replace_uses_of_x_with_y): Renamed and rewritten
2077         slightly.
2078         (exit_phi_for_loop_p): New function.
2079         (can_put_in_inner_loop): Ditto.
2080         (can_convert_to_perfect_nest): Ditto.
2081         (perfect_nestify): Create iv with right type.
2082         Rewrite statements in correct order.    
2083
2084 2005-06-10  Keith Besaw  <kbesaw@us.ibm.com>
2085
2086         * tree-ssa-alias.c (new_type_alias): Use existing type
2087         tag if VAR has just one in its may_aliases list.
2088
2089 2005-06-10  Fariborz Jahanian <fjahanian@apple.com>
2090
2091         * rs6000/predicates.md (scc_operand): New.
2092         * rs6000/rs6000.md : Use scc_operand for eq:SI compares.
2093
2094 2005-06-10  Dorit Nuzman  <dorit@il.ibm.com>
2095
2096         * tree-vect-analyze.c (vect_analyze_data_ref_dependence): DRs whose
2097         dependence-distance modulo VF is 0 are recorded in the 
2098         SAME_ALIGN_REFs VEC in each DR.
2099         (vect_enhance_data_refs_alignment): Avoid 80 column overflow. The
2100         alignment information of DRs that are in the SAME_ALIGN_REFs VEC of the
2101         DR we want to peel for, is set to 0.
2102         * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Fix printout.
2103         * tree-vectorizer.c (destroy_loop_vec_info): Free the SAME_ALIGN_REFs
2104         VEC.
2105         * tree-vectorizer.h (dr_p): New type. Defined to use the VEC API.
2106         (_stmt_vec_info): Added new field same_align_refs.
2107         (STMT_VINFO_SAME_ALIGN_REFS): New macro.
2108
2109 2005-06-10  Nathan Sidwell  <nathan@codesourcery.com>
2110
2111         * vec.h (VEC_safe_grow): Append MEM_STAT_INFO.
2112
2113 2005-06-10  Alan Modra  <amodra@bigpond.net.au>
2114
2115         * config/rs6000/linux.h (NO_PROFILE_COUNTERS): Define.
2116         * config/rs6000/linux64.h (NO_PROFILE_COUNTERS): Define as 1.
2117         * config/rs6000/rs6000.c (output_function_profiler): Obey
2118         NO_PROFILE_COUNTERS.  Handle TARGET_SECURE_PLT.  Use "bcl 20,31"
2119         for -fPIC.  Delete save_lr and substitute its value into strings.
2120
2121 2005-06-09  Dale Johannesen  <dalej@apple.com>
2122
2123         * config/i386/i386.c (optimization_options):  Make -fno-math-errno
2124         the default on Darwin.
2125         * config/rs6000/rs6000.c (optimization_options):  Ditto.
2126         * doc/invoke.texi (-fno-math-errno): Document.
2127
2128 2005-06-09  Dale Johannesen  <dalej@apple.com>
2129
2130         * config/rs6000/rs6000.c (TARGET_INSN_VALID_WITHIN_DOLOOP):
2131         Change to TARGET_INVALID_WITHIN_DOLOOP.
2132
2133 2005-06-09  David Edelsohn  <edelsohn@gnu.org>
2134
2135         * config/rs6000/rs6000.md (eq): Convert to define_insn_and_split.
2136         * config/rs6000/predicates.md (scc_eq_operand): New.
2137
2138 2005-06-09  Kaz Kojima  <kkojima@gcc.gnu.org>
2139
2140         * config/sh/sh.md (mextr_rl): Set buffer size properly.
2141         (*mextr_lr): Likewise.
2142
2143 2005-06-09  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2144
2145         PR c/21759
2146         * c.opt (Wc++-compat): New.
2147         * doc/invoke.texi (-Wc++-compat): Document.
2148         * c-typeck.c (convert_for_assignment): Check for implicit
2149         conversion void* -> T*.
2150
2151 2005-06-09  Gabriel Dos Reis  <gdr@integrable-solutions.edu>
2152
2153         * machmode.h (to_machine_mode): New.
2154         * rtl.h (to_rtx_code): Likewise.
2155         * read-rtl.c (apply_mode_macro): Convert mode to machine_mode.
2156         (print_c_condition): Convert return value of htab_find().
2157         (apply_code_macro): Add explicit cast when convertin to enums.
2158         (apply_mode_maps): Likewise.
2159         (check_code_macro): Likewise.
2160         (read_rtx_1): Likewise.
2161
2162 2005-06-09  Richard Henderson  <rth@redhat.com>
2163
2164         * config/ia64/ia64.c (update_set_flags): Just return for IF_THEN_ELSE.
2165         Use SCALAR_FLOAT_MODE_P.
2166         * config/ia64/vect.md (vcondv2sf): Remove code check on comparison.
2167         (fselect): Rename from fpcmp; use %F.
2168         (fpcmp): New.
2169
2170 2005-06-09  Jan Hubicka  <jh@suse.cz>
2171
2172         * cgraphunit.c (cgraph_create_edges): Do not walk BLOCK; finalize
2173         local statics when doing unit-at-a-time.
2174         (cgraph_varpool_assemble_pending_decls): Output debug info.
2175         * dwarf2out.c (decls_for_scope): Skip local statics.
2176         (dwarf2out_decl): Handle local statics.
2177         * passes.c (rest_of_decl_compilation): Do not differentiate
2178         local and global statics in unit-at-a-time.
2179         * tree-inline.c (remap_decls): Put local static into
2180         unexpanded_vars_list rather than introducing duplicated VAR_DECL
2181         node.
2182
2183 2005-06-09  Daniel Berlin  <dberlin@dberlin.org>
2184
2185         * config/rs6000/rs6000.c: (rs6000_insn_valid_within_doloop): Fix
2186         prototype.
2187
2188 2005-06-08  Daniel Berlin  <dberlin@dberlin.org>
2189
2190         * Makefile.in (OBJS-common): Add tree-ssa-structalias.o.
2191         * tree-flow.h (find_what_p_points_to): Add prototype.
2192         (push_fields_onto_fieldstack): Ditto.
2193         (sort_fieldstack): Ditto.
2194         * tree-optimize.c (init_tree_optimization_passes): Add
2195         pass_build_pta and pass_del_pta.
2196         * tree-pass.h (pass_build_pta): New structure.
2197         (pass_del_pta): Ditto.
2198         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Disambiguate
2199         using new alias analyzer.
2200         (push_fields_onto_fieldstack): Removed from here.
2201         (bitpos_of_field): Ditto.
2202         (fieldoff_compare): Ditto.
2203         * tree-ssa-structalias.c: New file.
2204         * tree-ssa-structalias.h: Ditto.
2205
2206 2005-06-09  Nathan Sidwell  <nathan@codesourcery.com>
2207
2208         * c-typeck.c (build_c_cast): Check type punning on COMPONENT_REF
2209         too.
2210
2211 2005-06-09  Bernd Schmidt  <bernd.schmidt@analog.com>
2212
2213         * config/bfin/bfin.c (enum bfin_builtins): Moved here from...
2214         * config/bfin/bfin.h (enum bfin_builtins): ... here.
2215
2216 2005-06-09  Adrian Straetling  <straetling@de.ibm.com>
2217
2218         * target.h (insn_valid_within_doloop): Rename into
2219         "invalid_within_doloop".  Change return type to "const char *".
2220         Update Comment.
2221         * targhooks.h (default_insn_valid_within_doloop): Rename into
2222         "default_invalid_within_doloop". 
2223         * targhooks.c (default_insn_valid_within_doloop): Likewise.
2224         Update Comment.
2225         * target-def.h (TARGET_INSN_VALID_WITHIN_DOLOOP): Rename target hook
2226         into "TARGET_INVALID_WITHIN_DOLOOP". Default it to
2227         "default_invalid_within_doloop".
2228         * hooks.c (hook_constcharptr_rtx_null): New function.
2229         (hook_bool_rtx_true): Remove.
2230         * hooks.h (hook_constcharptr_rtx_null): Declare.
2231         (hook_bool_rtx_true): Remove.
2232         * loop-doloop.c (doloop_valid_p): Temporarily store return value of
2233         "invalid_within_doloop" and print error message if non-null.
2234         Update Comment.
2235         * doc/tm.texi: Update documentation.
2236         * config/s390/s390.c: Adjust to new hook name and new default hook.
2237         * config/rs6000/rs6000.c: (rs6000_insn_valid_within_doloop): Rename
2238         into "rs6000_invalid_within_doloop".
2239         (rs6000_invalid_within_doloop): Change return type to "static const
2240         char *" and replace return values.  Update Comment.
2241
2242 2005-06-09  Bernd Schmidt  <bernd.schmidt@analog.com>
2243
2244         * config/bfin/bfin.opt (mlong-calls): New.
2245         * config/bfin/predicates.md (call_insn_operand): Disallow SYMBOL_REF
2246         if TARGET_LONG_CALLS.
2247
2248 2005-06-09  Richard Henderson  <rth@redhat.com>
2249
2250         PR tree-opt/20610
2251         * tree.h (DECL_COMPLEX_GIMPLE_REG_P): New.
2252         (struct tree_decl): Add gimple_reg_flag.
2253         * integrate.c (copy_decl_for_inlining): Copy it.
2254         * gimplify.c (internal_get_tmp_var): Set it.
2255         (gimplify_bind_expr): Likewise.
2256         (gimplify_function_tree): Likewise.
2257         (gimplify_modify_expr_complex_part): New.
2258         (gimplify_modify_expr): Use it.
2259         * tree-gimple.c (is_gimple_reg_type): Allow complex.
2260         (is_gimple_reg): Allow complex with DECL_COMPLEX_GIMPLE_REG_P set.
2261
2262         * tree-complex.c (complex_lattice_t): New.
2263         (complex_lattice_values, complex_variable_components): New.
2264         (some_nonzerop, find_lattice_value, is_complex_reg,
2265         init_parameter_lattice_values, init_dont_simulate_again, 
2266         complex_visit_stmt, complex_visit_phi, create_components,
2267         update_complex_components, update_parameter_components, 
2268         update_phi_components, update_all_vops, expand_complex_move): New.
2269         (extract_component): Handle INDIRECT_REF, COMPONENT_REF, ARRAY_REF,
2270         SSA_NAME.
2271         (update_complex_assignment): Use update_complex_components;
2272         handle updates of return_expr properly.
2273         (expand_complex_addition): Use complex lattice values.
2274         (expand_complex_multiplication): Likewise.
2275         (expand_complex_division): Likewise.
2276         (expand_complex_libcall): Use update_complex_components.
2277         (expand_complex_comparison): Use update_stmt.
2278         (expand_complex_operations_1): Use expand_complex_move, retrieve
2279         lattice values.
2280         (tree_lower_complex): Compute lattice values.
2281         (tree_lower_complex_O0): Duplicate from tree_lower_complex.
2282         (pass_lower_complex_O0): Rename from pass_lower_complex.
2283         (pass_lower_complex, gate_no_optimization): New.
2284         * tree-optimize.c (init_tree_optimization_passes): Update for
2285         complex pass changes.
2286         * tree-pass.h (pass_lower_complex_O0): Declare.
2287
2288 2005-06-08  Dale Johannesen  <dalej@apple.com>
2289
2290         * config/darwin.c (darwin_binds_local_p):  New.
2291         * config/darwin-protos.h (darwin_binds_local_p):  Declare it.
2292         * config/i386/i386.c (TARGET_BINDS_LOCAL_P):  Use it for TARGET_MACHO.
2293         * config/rs6000/rs6000.c (rs6000_binds_local_p):  Remove.
2294         (TARGET_BINDS_LOCAL_P):  Change it to darwin_binds_local_p.
2295
2296 2005-06-08  Aldy Hernandez  <aldyh@redhat.com>
2297
2298         * config/rs6000/rs6000.h: Remove rs6000_long_double_size_string,
2299         rs6000_isel, rs6000_spe, rs6000_alignment_string,
2300         rs6000_sched_restricted_insns_priority_str,
2301         rs6000_sched_restricted_insns_priority, rs6000_abi_string.
2302
2303 2005-06-08  Zdenek Dvorak  <dvorakz@suse.cz>
2304
2305         * tree-ssa-address.c (addr_for_mem_ref): Use LAST_VIRTUAL_REGISTER
2306         instead of FIRST_PSEUDO_REGISTER for creating pseudoregisters.
2307         * tree-ssa-loop-ivopts.c (add_cost, multiply_by_cost,
2308         multiplier_allowed_in_address_p, get_address_cost): Ditto.
2309
2310 2005-06-08  Richard Henderson  <rth@redhat.com>
2311
2312         * config/ia64/ia64.h (NO_PROFILE_COUNTERS): New.
2313         * config/ia64/ia64.c (ia64_output_function_profiler): Honor it.
2314         Emit out3 load right after alloc.
2315
2316 2005-06-08  Aldy Hernandez  <aldyh@redhat.com>
2317
2318         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
2319         rs6000_explicit_options.
2320
2321 2005-06-08  Richard Henderson  <rth@redhat.com>
2322
2323         * config/ia64/ia64.h (FUNCTION_PROFILER): Move implementation ...
2324         * config/ia64/ia64.c (ia64_output_function_profiler): ... here; add
2325         unwind markup.
2326         * config/ia64/ia64-protos.h (ia64_output_function_profiler): Declare.
2327
2328 2005-06-08  Joseph S. Myers  <joseph@codesourcery.com>
2329
2330         * config/sol2-c.c (cmn_err_char_table): Allow width for %b
2331         formats.
2332
2333 2005-06-08  James A. Morrison  <phython@gcc.gnu.org>
2334
2335         PR target/20666
2336         * config/sparc/sparc.c (sparc_fold_builtin): New function
2337         (sparc_vis_mul8x16): New function.
2338         (sparc_handle_vis_mul8x16): New function.
2339         (TARGET_FOLD_BUILTIN): Define to sparc_fold_builtin.
2340
2341 2005-06-08  David Edelsohn  <edelsohn@gnu.org>
2342
2343         * config/rs6000/rs6000.md (call_indirect_nonlocal_aix32): Prefer
2344         CTR to LR.
2345         (call_indirect_nonlocal_aix64): Same.
2346         (call_value_indirect_nonlocal_aix32): Same.
2347         (call_value_indirect_nonlocal_aix64): Same.
2348
2349         PR target/10588
2350         (eq): Use CLZ splitter for compare with zero.
2351
2352 2005-06-08  Bernd Schmidt  <bernd.schmidt@analog.com>
2353
2354         * config/bfin/bfin.c (bfin_return_in_memory): Simplify; return
2355         everything larger than 8 bytes in memory.
2356
2357         * config/bfin/bfin.h (enum bfin_builtins): New.
2358         * config/bfin/bfin.md (UNSPEC_VOLATILE_CSYNC, UNSPEC_VOLATILE_SSYNC):
2359         New constants.
2360         (csync, ssync): New insn patterns.
2361         * config/bfin/bfin.c (bfin_init_builtins, bfin_expand_builtin):
2362         New functions.
2363         (def_builtin): New macro.
2364         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
2365
2366         From Jie Zhang  <jie.zhang@analog.com>
2367         * config/bfin/bfin.h (ASM_OUTPUT_ALIGN): Gas now emulates the
2368         behavior of the native assembler in VDSP. So change accordingly.
2369         
2370 2005-06-08  Sebastian Pop  <pop@cri.ensmp.fr>
2371
2372         * tree-data-ref.c (compute_estimated_nb_iterations,
2373         analyze_array_indexes, compute_overlap_steps_for_affine_1_2,
2374         analyze_subscript_affine_affine, find_data_references_in_loop):
2375         Fixed to use chrec_contains_undetermined to test the values of
2376         loop->estimated_nb_iterations.
2377         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
2378         Compute the estimation only when loop->estimated_nb_iterations
2379         has not yet been initialized.
2380         (convert_step_widening, scev_probably_wraps_p): Add a call to
2381         estimate_numbers_of_iterations_loop.
2382         * tree-vrp.c (execute_vrp): Don't call estimate_numbers_of_iterations.
2383
2384 2005-06-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
2385
2386         PR debug/21946
2387         * dwarf2out.c (add_loc_descr_op_piece): Move to the
2388         DWARF2_DEBUGGING_INFO section.
2389
2390 2005-06-08  Richard Henderson  <rth@redhat.com>
2391
2392         PR target/21721
2393         * config/ia64/ia64.c (emit_predicate_relation_info): Skip p0.
2394
2395 2005-06-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
2396
2397         PR target/21889
2398         * target.h (gcc_target) <asm_out>: New field output_dwarf_dtprel.
2399         * target-def.h (TARGET_ASM_OUTPUT_DWARF_DTPREL): New macro.
2400         (TARGET_ASM_OUT): Add it.
2401         * doc/tm.texi (Debugging Info): Document it.
2402         * dwarf2out.c (output_loc_operands) <INTERNAL_DW_OP_tls_addr>:
2403         Test it instead of ASM_OUTPUT_DWARF_DTPREL.
2404         (loc_descriptor_from_tree_1) <VAR_DECL>: Likewise.
2405         * system.h: Poison ASM_OUTPUT_DWARF_DTPREL.
2406         * config/frv/frv-protos.h (frv_output_dwarf_dtprel): Delete.
2407         * config/frv/frv.c (frv_output_dwarf_dtprel): Make static and unused.
2408         (gen_inlined_tls_plt): Remove unused variable MEM.
2409         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to frv_output_dwarf_dtprel.
2410         * config/frv/frv.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
2411         * config/i386/i386-protos.h (i386_output_dwarf_dtprel): Delete.
2412         * config/i386/i386.c (i386_output_dwarf_dtprel): Make static and
2413         unused.
2414         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to i386_output_dwarf_dtprel.
2415         * config/i386/i386.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
2416         * config/ia64/ia64-protos.h (ia64_output_dwarf_dtprel): Delete.
2417         * config/ia64/ia64.c (ia64_output_dwarf_dtprel): Make static and
2418         unused.
2419         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to ia64_output_dwarf_dtprel.
2420         * config/ia64/ia64.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
2421         * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Delete.
2422         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): Make static and
2423         unused.
2424         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to rs6000_output_dwarf_dtprel
2425         * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
2426         * config/s390/s390-protos.h (s390_output_dwarf_dtprel): Delete.
2427         * config/s390/s390.c (s390_output_dwarf_dtprel): Make static and
2428         unused.
2429         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to s390_output_dwarf_dtprel.
2430         * config/s390/s390.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
2431         * config/sparc/sol2-gas.h (TARGET_SUN_TLS): Define to 0.
2432         (TARGET_GNU_TLS): Define to 1.
2433         * config/sparc/sparc-protos.h (sparc_output_dwarf_dtprel): Delete.
2434         * config/sparc/sparc.c (sparc_output_dwarf_dtprel): Make static and
2435         unused.
2436         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to sparc_output_dwarf_dtprel
2437         if TARGET_GNU_TLS only.
2438         * config/sparc/sparc.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
2439
2440         * config.gcc (sparc64-*-solaris2*): Include tm-dwarf2.h last.
2441         (sparc-*-solaris2*): Likewise on Solaris 7 and up.
2442
2443 2005-06-07  Dale Johannesen  <dalej@apple.com>
2444
2445         * config/i386/i386.md (movqi_1):  Fix case where source
2446         is memory and destination EDI.
2447
2448 2005-06-08  Kazu Hirata  <kazu@codesourcery.com>
2449
2450         * config/c4x/c4x.h (PREDICATE_CODES): Remove mem_operand.
2451
2452 2005-06-07  Eric Christopher  <echristo@redhat.com>
2453
2454         * system.h: Poison EXTRA_CC_MODES.
2455         * config/frv/frv.h (SELECT_CC_MODE): Rewrite comment.
2456         * config/ia64/ia64.h (SELECT_CC_MODE): Ditto.
2457         * doc/md.texi (Jump Patterns): Replace reference to
2458         EXTRA_CC_MODES with machine-modes.def.
2459         * doc/rtl.texi (Machine Modes): Ditto.
2460
2461 2005-06-07  Richard Henderson  <rth@redhat.com>
2462
2463         * varasm.c (initialize_cold_section_name): Fix alloca buffer overflow.
2464         (assemble_start_function): Fix strcmp confusion.
2465
2466 2005-06-07  Uros Bizjak  <uros@kss-loka.si>
2467
2468         * config/i386/i386.h (enum ix86_entity): New.
2469         (enum ix86_stack_slot): New.
2470         (OPTIMIZE_MODE_SWITCHING): Redefine to use
2471         ix86_optimize_mode_switching[] array.
2472         (NUM_MODES_FOR_MODE_SWITCHING): Redefine for 4 entities.
2473         (MODE_NEEDED): Use ix86_mode_needed() function.
2474         (EMIT_MODE_SET): Redefine for changed emit_i387_cw_initialization ()
2475         function.
2476         (struct machine_function): Use optimize_mode_switching[] array.
2477
2478         * config/i386/i386.c (MAX_386_STACK_LOCALS): Remove.
2479         (ix86_mode_needed): New function.
2480         (emit_i387_cw_initialization): Cleanup. Use mode to calculate
2481         correct stack positions for stored control words.
2482         (assign_386_stack_local): Use enum ix86_stack_slot. Change assert.
2483         (ix86_expand_builtin) [IX86_BUILTIN_LDMXCSR]: Change constant to
2484         SLOT_TEMP.
2485         [IX86_BUILTIN_STMXCSR]: Same.
2486
2487         * config/i386/i386-protos.h (assign_stack_local): Change prototype.
2488         (emit_i387_cw_initialization): Change prototype.
2489         (ix86_mode_needed): New prototype.
2490
2491         * config/i386/i386.md (i387_cw attribute): Change order of elements.
2492         (truncdfsf2, truncxfsf2, truncxfdf2, fix_trunc<mode>_fisttp_i387_1)
2493         (*fix_trunc<mode>_i387_1, lrint<mode>2, *fist<mode>2_floor_1)
2494         (*fist<mode>2_ceil_1): Change constant in call to
2495         assign_386_stack_local to SLOT_TEMP.
2496         (*fix_trunc<mode>_i387_1): Change constant in call to
2497         assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_TRUNC.
2498         Use new ix86_optimize_mode_switching[] array.
2499         (frndintxf2_floor, *fist<mode>2_floor_1): Change constants in call to
2500         assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_FLOOR.
2501         Use new ix86_optimize_mode_switching[] array.
2502         (frndintxf2_ceil, *fist<mode>2_ceil_1):  Change constants in call to
2503         assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_CEIL.
2504         Use new ix86_optimize_mode_switching[] array.
2505         (frndintxf2_trunc): Change constants in call to
2506         assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_TRUNC.
2507         Use new ix86_optimize_mode_switching[] array.
2508         (frndintxf2_mask_pm): Change constants in call to
2509         assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_MASK_PM.
2510         Use new ix86_optimize_mode_switching[] array.
2511
2512         (define_peephole2): Change constant from 17 to FLAGS_REG;
2513
2514 2005-06-07  Richard Henderson  <rth@redhat.com>
2515
2516         PR rtl-opt/21528
2517         * rtlanal.c (reg_overlap_mentioned_p) <MEM>: Handle 'E' formats.
2518
2519 2005-06-07  Dale Johannesen  <dalej@apple.com>
2520
2521         * tree-nested.c (finalize_nesting_tree_1):  Disable
2522         warn_padded around layout_type call.
2523
2524 2005-06-08  Zdenek Dvorak  <dvorakz@suse.cz>
2525
2526         * tree-ssa-loop-ivopts.c (rewrite_use_outer): Unshare the expression
2527         before emiting it.
2528
2529 2005-06-07  Eric Christopher  <echristo@redhat.com>
2530
2531         * config/mips/predicates.md: Revert previous patch.
2532
2533 2005-06-07  Jakub Jelinek  <jakub@redhat.com>
2534
2535         PR middle-end/21850
2536         * tree.c (get_unwidened): Stop at NOP_EXPR/CONVERT_EXPR that convert
2537         from vector types.
2538
2539 2005-06-07  Diego Novillo  <dnovillo@redhat.com>
2540
2541         * tree-ssa-threadupdate.c (struct thread_stats_d): Declare.
2542         (thread_stats): New local variable.
2543         (redirect_edges): Increment count of threaded edges.
2544         (thread_through_all_blocks): Initialize thread_stats.
2545         Display number of threaded jumps if TDF_STATS is enabled.
2546
2547 2005-06-07  Kazu Hirata  <kazu@codesourcery.com>
2548
2549         * sbitmap.h (sbitmap_iter_init): Consistently treat bit_num as
2550         the current bit index with no modulo.
2551
2552 2005-06-07  Sebastian Pop  <pop@cri.ensmp.fr>
2553
2554         PR 18403 and meta PR 21861.
2555         * Makefile.in (tree-chrec.o): Depend on CFGLOOP_H and TREE_FLOW_H.
2556         * tree-chrec.c: Include cfgloop.h and tree-flow.h.
2557         (evolution_function_is_invariant_rec_p,
2558         evolution_function_is_invariant_p): New.
2559         (chrec_convert): Use an extra parameter AT_STMT for refining the
2560         information that is passed down to convert_step.  Integrate the 
2561         code that was in count_ev_in_wider_type.
2562         * tree-chrec.h (count_ev_in_wider_type): Removed.
2563         (chrec_convert): Modify its declaration.
2564         (evolution_function_is_invariant_p): Declared.
2565         (evolution_function_is_affine_p): Use evolution_function_is_invariant_p.
2566         * tree-flow.h (can_count_iv_in_wider_type): Renamed convert_step.
2567         (scev_probably_wraps_p): Declared.
2568         * tree-scalar-evolution.c (count_ev_in_wider_type): Removed.
2569         (follow_ssa_edge_in_rhs, interpret_rhs_modify_expr):
2570         Use an extra parameter AT_STMT for refining the information that is
2571         passed down to convert_step.
2572         (follow_ssa_edge_inner_loop_phi, follow_ssa_edge,
2573         analyze_scalar_evolution_1): Initialize AT_STMT with the current
2574         analyzed statement.
2575         (instantiate_parameters_1): Don't know yet how to initialize AT_STMT.
2576         * tree-ssa-loop-ivopts.c (idx_find_step): Update the use of 
2577         can_count_iv_in_wider_type to use convert_step.
2578         * tree-ssa-loop-niter.c (can_count_iv_in_wider_type_bound): Move 
2579         code that is independent of the loop over the known iteration
2580         bounds to convert_step_widening, the rest is moved to
2581         proved_non_wrapping_p.
2582         (scev_probably_wraps_p): New.
2583         (can_count_iv_in_wider_type): Renamed convert_step.
2584         * tree-vrp.c (adjust_range_with_scev): Take an extra AT_STMT parameter.
2585         Use scev_probably_wraps_p for computing init_is_max.
2586         (vrp_visit_assignment): Pass the current analyzed statement to 
2587         adjust_range_with_scev.
2588         (execute_vrp): Call estimate_numbers_of_iterations for refining the 
2589         information provided by scev analyzer.
2590
2591 2005-06-07  Eric Christopher  <echristo@redhat.com>
2592
2593         * config/mips/predicates.md (sleu_operand): Use
2594         IN_RANGE to specify range of operand.
2595
2596 2005-06-07  Steven Bosscher  <stevenb@suse.de>
2597
2598         PR tree-optimization/21847
2599         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): With
2600         -fnon-call-exceptions, also mark statements inherently
2601         necessary if they may throw.
2602
2603 2005-06-07  Adrian Straetling  <straetling@de.ibm.com>
2604
2605         * config/s390/s390.md: ("UNSPECV_MB", "UNSPECV_CAS"): New constants.
2606         ("type"): Add "sem" to 'type' attribute.
2607         ("memory_barrier", "*memory_barrier", "sync_compare_and_swapdi",
2608         "sync_compare_and_swapsi", "sync_compare_and_swap_ccdi",
2609         "sync_compare_and_swap_ccsi", "*sync_compare_and_swap_ccdi",
2610         "*sync_compare_and_swap_ccsi"): New patterns.
2611         * config/s390/2064.md: ("z_sem"): New insn_reservation.
2612         * config/s390/2084.md: ("x_sem"): New insn_reservation.
2613         * config/s390/s390.c: (s390_compare_emitted): New global variable.
2614         (s390_emit_compare): Do not emit comparison again after cas.
2615         * config/s390/s390.h (s390_compare_emitted): Declare.
2616
2617 2005-06-07  Kazu Hirata  <kazu@codesourcery.com>
2618
2619         * sbitmap.h (sbitmap_iterator, sbitmap_iter_init,
2620         sbitmap_iter_cond, sbitmap_iter_next): New.
2621         * bt-load.c, cfganal.c, combine.c, ddg.c, flow.c,
2622         modulo-sched.c, sbitmap.c, sched-rgn.c, tree-into-ssa.c,
2623         tree-outof-ssa.c, tree-ssa-alias.c, tree-ssa-live.c: Update
2624         uses of EXECUTE_IF_SET_IN_SBITMAP to the new style.
2625
2626 2005-06-07  Zdenek Dvorak  <dvorakz@suse.cz>
2627
2628         * tree-ssa-address.c: New file.
2629         * Makefile.in (tree-ssa-address.o): Add.
2630         * expr.c (expand_expr_real_1): Do not handle REF_ORIGINAL on
2631         INDIRECT_REFs.  Handle TARGET_MEM_REFs.
2632         * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REFs.
2633         * tree-flow.h (struct mem_address): New.
2634         (struct affine_tree_combination): Moved from tree-ssa-loop-ivopts.c.
2635         (create_mem_ref, addr_for_mem_ref, get_address_description,
2636         maybe_fold_tmr, multiplier_allowed_in_address_p,
2637         multiply_by_cost):  Declare.
2638         * tree-mudflap.c (mf_xform_derefs_1): Handle TARGET_MEM_REFs.
2639         * tree-pretty-print.c (dump_generic_node): Ditto.
2640         * tree-ssa-loop-im.c (for_each_index): Ditto.
2641         * tree-ssa-loop-ivopts.c (may_be_unaligned_p,
2642         find_interesting_uses_address): Ditto.
2643         (rewrite_address_base, build_addr_strip_iref): Removed.
2644         (struct affine_tree_combination): Moved to tree-flow.h.
2645         (get_ref_tag, copy_ref_info): New functions.
2646         (rewrite_use_address): Produce TARGET_MEM_REFs.
2647         (tree_ssa_iv_optimize): Do not call update_ssa
2648         and rewrite_into_loop_closed_ssa.
2649         (tree_to_aff_combination): Use build_fold_addr_expr instead of
2650         build_addr_strip_iref.
2651         (unshare_aff_combination): New function.
2652         (fold_affine_sum): Removed.
2653         (get_computation_at): Use get_computation_aff.  Unshare the result.
2654         (get_computation_aff, multiplier_allowed_in_address_p): New function.
2655         (multiply_by_cost): Exported.
2656         (get_address_cost): Use multiplier_allowed_in_address_p.
2657         * tree-ssa-operands.c (get_tmr_operands): New function.
2658         (get_expr_operands): Handle TARGET_MEM_REFs.
2659         * tree.c (copy_node_stat): Copy annotations for TARGET_MEM_REFs.
2660         (build): Handle 7 arguments.
2661         (build7_stat): New function.
2662         * tree.def (TARGET_MEM_DEF): New.
2663         * tree.h (REF_ORIGINAL): Removed.
2664         (TMR_SYMBOL, TMR_BASE, TMR_INDEX, TMR_STEP, TMR_OFFSET, TMR_ORIGINAL,
2665         TMR_TAG, build7): New macros.
2666         (build7_stat, tree_mem_ref_addr, copy_mem_ref_info): Declare.
2667         * tree-ssa-ccp.c (fold_stmt_r): Call maybe_fold_tmr.
2668         * doc/c-tree.texi: Document TARGET_MEM_REF.
2669         * doc/tree-ssa.texi: Add TARGET_MEM_REF to gimple grammar.
2670
2671 2005-06-07  Jakub Jelinek  <jakub@redhat.com>
2672
2673         PR debug/21946
2674         * dwarf2out.c (add_loc_descr_op_piece): New function.
2675         (multiple_reg_loc_descriptor, concat_loc_descriptor,
2676         loc_descriptor): Use it.
2677         * var-tracking.c: Include regs.h and expr.h.
2678         (emit_note_insn_var_location): Skip over pieces where offset
2679         is smaller than previous offset plus previous piece mode size.
2680         Optimize adjacent hard registers or memory locations.
2681         * Makefile.in (var-tracking.o): Depend on $(REGS_H) and $(EXPR_H).
2682
2683 2005-06-07  Richard Guenther  <rguenth@gcc.gnu.org>
2684
2685         * c-typeck.c (c_finish_if_stmt): Use void_type_node as type
2686         for COND_EXPR.
2687         * gimplify.c (gimplify_cond_expr): No need to fix up the
2688         type of COND_EXPRs.
2689
2690 2005-06-07  Richard Guenther  <rguenth@gcc.gnu.org>
2691
2692         * tree-ssa.c (tree_ssa_useless_type_conversion_1): Fix
2693         comments.
2694
2695 2005-06-07  Geoffrey Keating  <geoffk@apple.com>
2696
2697         * config/rs6000/host-darwin.c (segv_handler): Widen the possible
2698         'stwux' instructions that are considered to be stack decrements.
2699
2700         * rtlanal.c (subreg_offset_representable_p): Handle objects
2701         with holes.
2702
2703 2005-06-06  Uros Bizjak  <uros@kss-loka.si>
2704
2705         * mode-switching.c (optimize_mode_switching): Fix n_exprs parameter
2706         in call to pre_edge_lcm.
2707
2708 2005-06-06  Kaz Kojima  <kkojima@gcc.gnu.org>
2709
2710         * config/sh/linux-unwind.h (SH_DWARF_FRAME_XD0): Remove for SH5.
2711         (SH_DWARF_FRAME_PR, SH_DWARF_FRAME_GBR, SH_DWARF_FRAME_MACL)
2712         (SH_DWARF_FRAME_MACH, SH_DWARF_FRAME_PC, SH_DWARF_FRAME_FPUL):
2713         Likewise.
2714         (SH_DWARF_FRAME_FP0, SH_DWARF_FRAME_FPSCR): Define to the correct
2715         dwarf register number for SHmedia.
2716         (shmedia_fallback_frame_state): New.
2717         (MD_FALLBACK_FRAME_STATE_FOR): Define to it for SH5.
2718
2719         * config/sh/linux.h (FUNCTION_PROFILER): Provide SHMEDIA version.
2720
2721 2005-06-06  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2722
2723         * c-lex.c (lex_string): Use XOBFINISH.
2724         * collect2.c (extract_string, dump_file): Likewise.
2725         * dbxout.c (dbxout_finish_complex_stabs): Likewise.
2726         * gcc.c (init_spec, build_search_list, convert_filename, 
2727         set_collect_gcc_options, do_spec_2, do_spec_1, main): Likewise.
2728         * genpreds.c (write_predicate_subfunction): Likewise.
2729         * genflags.c (main): Likewise.
2730         * read-rtl.c (mode_attr_index, apply_macro_to_string, 
2731         join_c_conditions, read_quoted_string, read_braced_string, 
2732         read_rtx_1): Likewise.
2733         * stringpool.c (ggc_alloc_string): Likewise.
2734         * tlink.c (obstack_fgets, recompile_files): Likewise.
2735
2736 2005-06-06  Jakub Jelinek  <jakub@redhat.com>
2737
2738         * intl.h (G_): New macro.
2739         * rtl-error.c (error_for_asm, warning_for_asm): Use gmsgid
2740         instead of msgid for argument name.
2741         * tree-ssa.c (warn_uninit): Likewise.
2742         * c-parser.c (c_parser_error): Likewise.
2743         * config/rs6000/rs6000-c.c (SYNTAX_ERROR): Likewise.
2744         * config/darwin-c.c (BAD): Likewise.
2745         * config/c4x/c4x-c.c (BAD): Likewise.
2746         * c-pragma.c (GCC_BAD, GCC_BAD2): Likewise.
2747         * c-errors.c (pedwarn_c99, pedwarn_c90): Likewise.
2748         * c-common.c (c_parse_error): Likewise.
2749         * diagnostic.c (diagnostic_set_info, verbatim, inform, warning,
2750         warning0, pedwarn, error, sorry, fatal_error, internal_error):
2751         Likewise.
2752         (fnotice): Use cmsgid instead of msgid for argument name.
2753         * gcov.c (fnotice): Likewise.
2754         * protoize.c (notice): Likewise.
2755         * final.c (output_operand_lossage): Likewise.
2756         * gcc.c (fatal, notice): Likewise.
2757         (error): Use gmsgid instead of msgid for argument name.
2758         * collect2.c (notice, fatal_perror, fatal): Use cmsgid instead
2759         of msgid for argument name.
2760         (error): Use gmsgid instead of msgid for argument name.
2761         * c-decl.c (locate_old_decl, implicit_decl_warning): Use G_()
2762         instead of N_().
2763         * c-typeck.c (readonly_error, convert_for_assignment): Likewise.
2764         * tree-inline.c (inline_forbidden_p_1): Likewise.
2765         * ABOUT-GCC-NLS: Require gettext 0.14.5 or later.  Mention the new
2766         conventions for marking translations.
2767         * doc/install.texi: Mention gettext 0.14.5 or later requirement.
2768
2769         * tree-chrec.c (reset_evolution_in_loop): Use build3 instead of
2770         build2.
2771
2772         * fold-const.c (operand_equal_p): Don't return 1, if element
2773         chains for 2 VECTOR_CSTs are not the same length.
2774
2775         PR regression/21897
2776         * fold-const.c (fold_ternary) <case BIT_FIELD_REF>: Don't crash if
2777         not all VECTOR_CST elements are given.
2778
2779         * combine.c (try_combine): Use hard_regno_nregs array instead of
2780         HARD_REGNO_NREGS macro.
2781         * config/rs6000/rs6000.c (rs6000_split_multireg_move,
2782         rs6000_register_move_cost, rs6000_memory_move_cost): Likewise.
2783         * config/ia64/ia64.c (mark_reg_gr_used_mask): Likewise.
2784
2785 2005-06-06  Daniel Berlin  <dberlin@dberlin.org>
2786
2787         * tree-ssa-reassoc.o: New.
2788         (OBJS-common): Add tree-ssa-reassoc.o
2789         * timevar.def: Add TV_TREE_REASSOC
2790         * tree-optimize.c (pass_reassoc): Add call.
2791         * tree-pass.h (pass_reassoc): Add.
2792         * tree-ssa-reassoc.c: New file.
2793
2794 2005-06-06  Eric Christopher  <echristo@redhat.com>
2795
2796         target/21927
2797         * expr.c (do_store_flag): Remove check for non-negative BRANCH_COST.
2798
2799 2005-06-06  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2800
2801         * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Guard with
2802         HAVE_GAS_MAX_SKIP_P2ALIGN.
2803         (HAVE_AS_DWARF2_DEBUG_LINE): Remove.
2804
2805 2005-06-06  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2806
2807         * Makefile.in (mips-tfile.o): Add $(srcdir)/../include prefix to
2808         getopt.h dependency.
2809         (mips-tdump.o): Likewise.
2810
2811 2005-06-06  Jan Hubicka  <jh@suse.cz>
2812
2813         * predict.c (tree_predict_edge): Don't drop useless predictions;
2814         check that it is not called too late in the game.
2815         (gate_estimate_probability): New gate.
2816         (pass_profile): Gate.
2817         * tree-mudflap.c (mf_build_check_statement_for): Do not drop
2818         predictions; update CFG instead.
2819         * cfgrtl.c (rtl_verify_flow_info): Check that predcitions are consumed.
2820
2821 2005-06-06  Jie Zhang  <jie.zhang@analog.com>
2822
2823         * config.gcc (bfin*-uclinux*): New.
2824         * config/bfin/uclinux.h: New file.
2825
2826 2005-06-06  Ben Elliston  <bje@au.ibm.com>
2827
2828         * doc/md.texi (Insn Splitting): Fix some wording.
2829
2830 2005-06-05  David Edelsohn  <edelsohn@gnu.org>
2831
2832         * config/rs6000/rs6000.c (rs6000_emit_swdivsf): New function.
2833         (rs6000_emit_swdivdf): New function.
2834         * config/rs6000/rs6000.md (fres): New pattern.
2835         (divsf3): Add approximation through rs6000_emit_swdivsf.
2836         (fred): New pattern.
2837         (divdf3): Add approximation through rs6000_emit_swdivdf.
2838         * config/rs6000/rs6000-protos.h (rs6000_emit_swdivsf): Declare.
2839         (rs6000_emit_swdivdf): Declare.
2840         * config/rs6000/rs6000.opt (mswdiv): New option.
2841         * doc/invoke.texi (RS/6000 and PowerPC Options): Document mswdiv.
2842
2843 2005-06-05  Zdenek Dvorak  <dvorakz@suse.cz>
2844
2845         PR tree-optimization/21846
2846         * tree-cfg.c (replace_uses_by): Update information stored at loops.
2847         * tree-flow.h (substitute_in_loop_info): Declare.
2848         * tree-scalar-evolution.c (initialize_scalar_evolutions_analyzer):
2849         Ensure that chrec_dont_know and chrec_known have a type.
2850         * tree-ssa-loop-niter.c (substitute_in_loop_info): New function.
2851
2852 2005-06-05  Steven Bosscher  <stevenb@suse.de>
2853
2854         * config/i386/i386.c (x86_use_loop): Remove.
2855         * config/i386/i386.h (x86_use_loop): Remove extern decl.
2856         (TARGET_USE_LOOP): Remove.
2857         * config/i386/i386.md (doloop_end, doloop_end_internal): Remove.
2858         Also remove related define_splits.
2859
2860 2005-06-05  Dorit Nuzman  <dorit@il.ibm.com>
2861
2862         * tree-flow.h (stmt_ann_d): Move aux to ...
2863         (tree_ann_common_d): ... here.
2864         * tree-ssa-loop-im.c (LIM_DATA, determine_invariantness_stmt,
2865         move_computations_stmt, schedule_sm): Update references to
2866         aux.
2867         * tree-vectorizer.h (set_stmt_info, vinfo_for_stmt): Likewise.
2868         * tree-vect-transform.c (vect_create_index_for_vector_ref): Update
2869         call to set_stmt_info.
2870         (vect_transform_loop): Likewise.
2871         * tree-vectorizer.c (new_loop_vec_info, destroy_loop_vec_info):
2872         Likewise.
2873
2874         * tree-vect-analyze.c (vect_analyze_scalar_cycles): Made void instead of
2875         bool.
2876         (vect_mark_relevant): Takes two additional arguments - live_p and
2877         relevant_p. Set RELEVANT_P and LIVE_P according to these arguments.
2878         (vect_stmt_relevant_p): Differentiate between a live stmt and a
2879         relevant stmt. Return two values = live_p and relevant_p.
2880         (vect_mark_stmts_to_be_vectorized): Call vect_mark_relevant and
2881         vect_stmt_relevant_p with additional arguments. Phis are no longer
2882         put into the worklist (analyzed seperately in analyze_scalar_cycles).
2883         (vect_determine_vectorization_factor): Also check for LIVE_P, because a
2884         stmt that is marked as irrelevant and live, cause it's only used out
2885         side the loop, may need to be vectorized (e.g. reduction).
2886         (vect_analyze_operations): Examine phis. Call
2887         vectorizable_live_operation for for LIVE_P stmts. Check if
2888         need_to_vectorize.
2889         (vect_analyze_scalar_cycles): Update documentation. Don't fail
2890         vectorization - just classify the scalar cycles created by the loop
2891         phis. Call vect_is_simple_reduction.
2892         (vect_analyze_loop): Call to analyze_scalar_cycles moved earlier.
2893         * tree-vect-transform.c (vect_create_index_for_vector_ref): Update
2894         call to set_stmt_info.
2895         (vect_get_vec_def_for_operand): Code reorganized - the code that
2896         classifies the type of use was factored out to vect_is_simple_use.
2897         (vectorizable_store, vect_is_simple_cond): Call vect_is_simple_use with
2898         additional arguments.
2899         (vectorizable_assignment): Likewise. Also make sure the stmt is relevant
2900         and computes a loop_vec_def.
2901         (vectorizable_operation, vectorizable_load, vectorizable_condition):
2902         Likewise.
2903         (vectorizable_live_operation): New.
2904         (vect_transform_stmt): Handle LIVE_P stmts.
2905         * tree-vectorizer.c (new_stmt_vec_info): Initialize the new fields
2906         STMT_VINFO_LIVE_P and STMT_VINFO_DEF_TYPE.
2907         (new_loop_vec_info, destroy_loop_vec_info): Also handle phis.
2908         (vect_is_simple_use): Determine the type of the def and return it
2909         in a new function argument. Consider vect_reduction_def and
2910         vect_induction_def, but for now these are not supported.
2911         (vect_is_simple_reduction): New. Empty for now.
2912         * tree-vectorizer.h (vect_def_type): New enum type.
2913         (_stmt_vec_info): Added new fields - live and _stmt_vec_info.
2914         (STMT_VINFO_LIVE_P, STMT_VINFO_DEF_TYPE): New accessor macros.
2915         (vect_is_simple_use): New arguments added to function declaration.
2916         (vect_is_simple_reduction): New function declaration.
2917         (vectorizable_live_operation): New function declaration.
2918
2919         * tree-vect-analyze.c (vect_can_advance_ivs_p): Add debug printout.
2920         (vect_can_advance_ivs_p): Likewise.
2921         * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Likewise.
2922
2923 2005-06-05  Eric Christopher  <echristo@redhat.com>
2924
2925         * config/mips/mips.c (mips_rtx_costs): Remove unused variable.
2926
2927 2005-06-05  Hans-Peter Nilsson  <hp@bitrange.com>
2928
2929         PR target/21914
2930         * config/mmix/mmix.md ("*movdicc_real_foldable")
2931         ("*movdfcc_real_foldable", "*bCC_foldable")
2932         ("*bCC_inverted_foldable"): Specify DImode for register being
2933         compared.
2934
2935 2005-06-04  Roger Sayle  <roger@eyesopen.com>
2936
2937         * reg-stack.c (struct block_info_def): Correct grammar typo.
2938         (compensate_edge): Clean-up.  Perform as little work as possible
2939         when src and dest stacks match.  Avoid modifying block_info.
2940         Reorder and simplify assertion checks.  Avoid unnecessary copying
2941         of regstack structure.
2942         (convert_regs_1): Set the done flag here...
2943         (convert_regs_2): ... instead of here.
2944
2945 2005-06-04  Dale Johannesen  <dalej@apple.com>
2946
2947         * config/rs6000/rs6000.c (no_global_regs_above): New.
2948         (rs6000_emit_prologue):  Use it; cosmetic formatting fixes.
2949         (rs6000_emit_epilogue):  Use it; cosmetic formatting fixes.
2950         (rs6000_conditional_register_usage): Don't put Darwin PIC
2951         register in global_regs.
2952         (rs6000_stack_info):  Don't set lr_save_p just because Darwin 
2953         PIC reg used.
2954         (rs6000_emit_prologue):  Save LR in R0 around Darwin PIC setup,
2955         if not done by lr_save_p.
2956         * config/rs6000/rs6000.md (insnv1_internal1):  Back out 05-18 patch.
2957         Use rotate instead of ashift.
2958         (call_indirect_nonlocal_sysv):  Prefer CTR to LR.
2959         (call_value_indirect_nonlocal_sysv):  Ditto.
2960
2961 2005-06-04  Jan Hubicka  <jh@suse.cz>
2962
2963         * cgraphunit.c (cgraph_reset_node): Break out from ...
2964         (cgraph_finalize_function): ... here.
2965         (cgraph_finalize_compilation_unit): Reset nodes where backend
2966         removed the body.
2967
2968 2005-06-04  Richard Henderson  <rth@redhat.com>
2969
2970         PR target/21888
2971         * config/alpha/alpha.c (alpha_align_insns): Don't insert nops
2972         until we've passed initial ldgp.
2973
2974 2005-06-04  Daniel Berlin  <dberlin@dberlin.org>
2975
2976         * cfgexpand.c (expand_one_var): Use DECL_HAS_VALUE_EXPR_P.
2977         * dwarf2out.c (loc_descriptor_from_tree_1): Ditto.
2978         * expr.c (expand_var): Ditto.   
2979         * function.c (gimplify_parameters): Use SET_DECL_VALUE_EXPR too.
2980         * gimplify.c (gimplify_decl_expr): Ditto.
2981         (gimplify_expr): Ditto.
2982         * tree-mudflap.c (mf_decl_eligible_p): Use DECL_HAS_VALUE_EXPR_P.
2983         * tree.c (value_expr_for_decl): New.
2984         (print_value_expr_statistics): New.
2985         (init_ttree): Init value_expr_for_decl.
2986         (decl_value_expr_lookup): New.
2987         (decl_value_expr_insert): Ditto.
2988         (copy_node_stat): Copy DECL_VALUE_EXPR status.
2989         * tree.h (DECL_VALUE_EXPR): Use hashtable.
2990         (SET_DECL_VALUE_EXPR): New.
2991         (DECL_HAS_VALUE_EXPR_P): New.
2992
2993 2005-06-04  Steven Bosscher  <stevenb@suse.de>
2994
2995         * lcm.c: Move all mode-switching related functions from here...
2996         * mode-switching.c: ...to this new file.
2997         * doc/passes.texi: Update accordingly.
2998
2999         * basic-block.h (label_value_list): Remove extern decl.
3000         * cfgrtl.c (label_value_list): Remove.
3001         (can_delete_label_p): Don't look at it.
3002         * cfgcleanup.c (cleanup_cfg): Don't free it.
3003
3004         * common.opt: Don't refer to non-existing flag_alias_check.
3005
3006 2005-06-04  David Edelsohn  <edelsohn@gnu.org>
3007
3008         * config/rs6000/aix52.h (ASM_CPU_SPEC): Add power5.
3009
3010 2005-06-04  Kazu Hirata  <kazu@codesourcery.com>
3011
3012         * function.c (prologue, epilogue, sibcall_epilogue): Change
3013         their types to VEC(int,heap)*.
3014         (free_after_compilation): Free the three vectors above.
3015         (init_function_for_compilation, record_insns, contains,
3016         prologue_epilogue_contains, sibcall_epilogue_contains,
3017         reposition_prologue_and_epilogue_notes): Use VEC instead of
3018         VARRAY.  (init_function_once): Remove.
3019         * function.h: Remove the prototype for init_function_once.
3020         * toplev.c (backend_init): Don't call init_function_once.
3021
3022 2005-06-04  Jan Hubicka  <jh@suse.cz>
3023
3024         * predict.c (tree_predict_edge): Do not predict entry edge and
3025         single succestor edge.
3026
3027 2005-06-04  Joseph S. Myers  <joseph@codesourcery.com>
3028
3029         PR c/21873
3030         * c-typeck.c (push_init_level): Don't pop levels without braces if
3031         implicit == 1.
3032
3033 2005-06-03  Sebastian Pop  <pop@cri.ensmp.fr>
3034         
3035         * tree-data-ref.c (compute_self_dependence): New function.
3036         (compute_all_dependences): Use it.
3037
3038 2005-06-03  Geoffrey Keating  <geoffk@apple.com>
3039
3040         * c-parser.c (c_parser_parms_declarator): Don't use chainon().
3041         (c_parser_expr_list): Don't use chainon().
3042
3043         * config/darwin.h (LINK_SPEC): Pass -syslibroot to linker
3044         when -isysroot passed.
3045
3046 2005-06-03  Joseph S. Myers  <joseph@codesourcery.com>
3047
3048         PR c/21879
3049         * c-decl.c (start_function): Restore label_context_stack_se and
3050         label_context_stack_vm  if returning with an error.
3051
3052 2005-06-03  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3053
3054         * configure.ac: Check declaration for asprintf, needed by
3055         libiberty.h. 
3056         * configure: Regenerate.
3057         * config.in: Likewise.
3058
3059 2005-06-03  Diego Novillo  <dnovillo@redhat.com>
3060
3061         * tree-ssa-dom.c (record_edge_info): Use last_basic_block to
3062         allocate info array.
3063         * tree-vrp.c (extract_range_from_unary_expr): Set resulting
3064         range to varying in cast expressions that change
3065         TYPE_PRECISION.
3066
3067 2005-06-03  Eric Christopher  <echristo@redhat.com>
3068
3069         * config/mips/mips.opt: Add RejectNegative to divide-breaks and
3070         divide-traps.
3071
3072 2005-06-03  Jan Hubicka  <jh@suse.cz>
3073
3074         * basic-block.h (remove_predictions_associated_with_edge): Declare.
3075         * cfg.c (remove_edge): Use it.
3076         * predict.c (remove_predictions_associated_with_edge): New function.
3077
3078 2005-06-03  Pat Haugen  <pthaugen@us.ibm.com>
3079
3080         * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
3081         Clear call_realy_used_regs[r2] when ABI_AIX.
3082
3083 2005-06-03  Richard Guenther  <rguenth@gcc.gnu.org>
3084
3085         PR middle-end/21858
3086         * fold-const.c (fold_binary): Fix type mismatches in folding
3087         of comparisons.
3088
3089 2005-06-03  Kazu Hirata  <kazu@codesourcery.com>
3090
3091         * cgraph.c, cgraphunit.c, config/mips/mips.c: Fix comment
3092         typos.
3093
3094 2005-06-03  Joseph S. Myers  <joseph@codesourcery.com>
3095
3096         * collect2.c (maybe_unlink): Use unlink_if_ordinary.
3097
3098 2005-06-02  Bernd Schmidt  <bernd.schmidt@analog.com>
3099
3100         * reload1.c (reload): Revert my previous patch.
3101
3102 2005-06-03  Nick Clifton  <nickc@redhat.com>
3103
3104         * config/arm/semi.h (ASM_SPEC): Fix typo passing -mfloat-abi to
3105         assembler.
3106
3107 2005-06-03  Kazu Hirata  <kazu@codesourcery.com>
3108
3109         PR tree-optimization/21849
3110         * tree-ssa-copy.c (dump_copy_of): Call sbitmap_zero.
3111
3112 2005-06-02  Richard Henderson  <rth@redhat.com>
3113
3114         * Makefile.in (tree-vect-generic.o): New.
3115         (OBJS-common, GTFILES, s-gtype): Add it.
3116         * tree-complex.c (build_replicated_const, vector_inner_type,
3117         vector_last_type, vector_last_nunits, build_word_mode_vector_type,
3118         elem_op_func, tree_vec_extract, do_unop, do_binop, do_plus_minus,
3119         do_negate, expand_vector_piecewise, expand_vector_parallel, 
3120         expand_vector_addition, expand_vector_operation, 
3121         type_for_widest_vector_mode, expand_vector_operations_1, 
3122         gate_expand_vector_operations, expand_vector_operations, 
3123         pass_lower_vector_ssa): Move to tree-vect-generic.c.
3124         (tree_lower_complex): Rename from tree_lower_operations.
3125         (pass_lower_complex): Rename from pass_pre_expand.
3126         * tree-vect-generic.c: New file.
3127         * tree-pass.h (pass_lower_complex): Rename from pass_pre_expand.
3128         (pass_lower_vector): New.
3129         * tree-optimize.c (init_tree_optimization_passes): Update to match.
3130
3131 2005-06-02  Richard Henderson  <rth@redhat.com>
3132
3133         * modulo-sched.c (doloop_register_get): Protect against 
3134         doloop_end not defined.
3135
3136 2005-06-02  Kazu Hirata  <kazu@codesourcery.com>
3137
3138         * config/sh/sh.c (general_movsrc_operand,
3139         general_movdst_operand, arith_reg_operand, arith_reg_dest,
3140         logical_reg_operand, int_gpr_dest, fp_arith_reg_operand,
3141         fp_arith_reg_dest, arith_operand, arith_reg_or_0_operand,
3142         xor_operand, cmp_operand, logical_operand, and_operand,
3143         fpscr_operand, fpul_operand, symbol_ref_operand,
3144         commutative_float_operator, noncommutative_float_operator,
3145         unary_float_operator, binary_float_operator,
3146         binary_logical_operator, equality_comparison_operator,
3147         greater_comparison_operator, less_comparison_operator,
3148         shift_operator, logical_operator, target_reg_operand,
3149         target_operand, mextr_bit_offset, extend_reg_operand,
3150         trunc_hi_operand, extend_reg_or_0_operand, minuend_operand,
3151         general_extend_operand, ua_address_operand,
3152         cache_address_operand, inqhi_operand, sh_rep_vec, sh_1el_vec,
3153         sh_const_vec, ua_offset, sh_register_operand, cmpsi_operand,
3154         shift_count_reg_operand, shift_count_operand,
3155         unaligned_load_operand): Move to ...
3156         * config/sh/predicates.md: ... here.
3157         * config/sh/sh.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES):
3158         Remove.
3159
3160 2005-06-02  Andrew Pinski  <pinskia@physics.uc.edu>
3161
3162         * tree.c (build_common_builtin_nodes): Fix the return type on
3163         __builtin_memcmp.
3164
3165 2005-06-02  Richard Guenther  <rguenth@gcc.gnu.org>
3166
3167         * tree-ssa-loop-ivopts.c (build_addr_strip_iref): Remove.
3168         (find_interesting_uses_address): Use build_fold_addr_expr instead.
3169         (strip_offset_1): Likewise.
3170         (tree_to_aff_combination): Likewise.
3171
3172 2005-06-02  DJ Delorie  <dj@redhat.com>
3173
3174         * convert.c (convert_to_pointer): Avoid recursion if no conversion
3175         is needed.
3176
3177 2005-06-02  Richard Guenther  <rguenth@gcc.gnu.org>
3178
3179         * tree-chrec.c (chrec_fold_plus_1): Ensure we build
3180         binary operations with the correct types.
3181         * tree-ssa-loo-ivopts.c (idx_find_step): Use sizetype
3182         for all computation.
3183
3184 2005-06-02  Kazu Hirata  <kazu@codesourcery.com>
3185
3186         * tree-vrp.c, config/arm/arm.md, config/arm/arm1020e.md,
3187         config/rs6000/rs6000.md: Fix comment typos.  Follow splling
3188         conventions.
3189         * doc/install.texi: Fix a typo.
3190
3191 2005-06-02  Jan Hubicka  <jh@suse.cz>
3192
3193         * cgraphunit.c (cgraph_function_and_variable_visibility): Extern
3194         inline functions are not local.
3195
3196 2005-06-02  Kazu Hirata  <kazu@codesourcery.com>
3197
3198         * gimplify.c (gimplify_ctx): Change the type of case_labels to
3199         VEC from VARRAY.
3200         (gimplify_switch_expr, gimplify_case_label_expr): Adjust uses
3201         of case_labels.
3202
3203 2005-06-02  Richard Guenther  <rguenth@gcc.gnu.org>
3204
3205         * c-typeck.c (build_indirect_ref): Build INDIRECT_REF
3206         with correct type.
3207
3208 2005-06-02  Ulrich Weigand  <uweigand@de.ibm.com>
3209
3210         * config/s390/s390.c (s390_add_execute): Do not handle out-of-pool
3211         execute templates.
3212         (s390_dump_pool): Likewise.
3213         (s390_mainpool_start, s390_mainpool_finish): Likewise.
3214         (s390_chunkify_start): Likewise.
3215         (s390_dump_execute): Remove.
3216         (s390_reorg): Handle out-of-pool execute templates.
3217
3218 2005-06-02  Adrian Straetling  <straetling@de.ibm.com>
3219
3220         * optabs.c: (expand_bool_compare_and_swap): Emit barrier after
3221           unconditional jump.
3222
3223 2005-06-02  Jan Hubicka  <jh@suse.cz>
3224
3225         * cgraph.c (cgraph_node): Maintain master clones.
3226         (cgraph_remove_node): Likewise.
3227         (availability_names): New static variable.
3228         (dump_cgraph_node): Dump availability.
3229         (dump_cgraph_varpool_node): Likewise.
3230         (cgraph_is_master_clone, cgraph_master_clone,
3231         cgraph_function_body_availability,
3232         cgraph_variable_initializer_availability): New functions.
3233         * cgraph.h (availability): New enum.
3234         (struct cgraph_node): Add master_clone.
3235         (cgraph_is_master_clone, cgraph_master_clone,
3236         cgraph_function_body_availability,
3237         cgraph_variable_initializer_availability): Declare.
3238         * cgraphunit.c (cgraph_expand_function): Setcgraph_function_flags_ready.
3239         (cgraph_remove_unreachable_nodes): Remove unreachable nodes.
3240         * ipa-inline.c (cgraph_decide_inlining): Do not call
3241         cgraph_remove_unreachable_nodes.
3242
3243         * cgraphunit.c (cgraph_function_and_variable_visibility): Fix typo in
3244         previous patch.
3245
3246 2005-06-02  Diego Novillo  <dnovillo@redhat.com>
3247
3248         PR 21582
3249         * tree-vrp.c (nonnull_arg_p): New.
3250         (get_value_range): Call it.
3251
3252 2005-06-02  Eric Christopher  <echristo@redhat.com>
3253
3254         * config/mips/mips.h (processor_type): Remove PROCESSOR_DEFAULT,
3255         add PROCESSOR_MAX.
3256         (mips_rtx_cost_data): New datatype.
3257         (MEMORY_MOVE_COST): Use data from structure.
3258         (BRANCH_COST): Ditto.
3259         (LOGICAL_OP_NON_SHORT_CIRCUIT): Define to zero.
3260         * config/mips/mips.md (cpu): Rework for processor_type changes.
3261         * config/mips/mips.c (mips_cost): New variable.
3262         (DEFAULT_COSTS): Define.
3263         (mips_rtx_cost_data): New.
3264         (mips_rtx_costs): Use. Minor formatting changes. Use COSTS_N_INSNS
3265         for NEG cost. Add support for FLOAT, UNSIGNED_FLOAT, FIX,
3266         FLOAT_EXTEND, FLOAT_TRUNCATE, and SQRT.
3267         (override_options): Set cost data.
3268         (mips_register_move_cost): Formatting changes.
3269         (bdesc_arrays): Use PROCESSOR_MAX.
3270         (mips_init_builtins): Ditto.
3271
3272 2005-06-02  Diego Novillo  <dnovillo@redhat.com>
3273
3274         PR 21765
3275         * doc/invoke.texi: Document -ftree-vrp.
3276
3277 2005-06-02  Dorit Nuzman  <dorit@il.ibm.com>
3278
3279         PR tree-optimization/21734
3280         * tree-vectorizer.c (slpeel_update_phis_for_duplicate_loop): Use the
3281         phi_result when current_def is not available.
3282         (slpeel_update_phi_nodes_for_guard1): Don't fail if current_def is not
3283         available.      
3284
3285 2005-06-02  David Edelsohn  <edelsohn@gnu.org>
3286
3287         * config/rs6000/rs6000.c (rs6000_insn_valid_within_doloop): New.
3288         (TARGET_INSN_VALID_WITHIN_DOLOOP): Define.
3289
3290 2005-06-02  Diego Novillo  <dnovillo@redhat.com>
3291
3292         * tree-vrp.c (has_assert_expr, maybe_add_assert_expr): Remove.
3293
3294 2005-06-02  Jan Hubicka  <jh@suse.cz>
3295
3296         * cgraph.c (dump_cgraph_node): Print new flags.
3297         (dump_cgraph_varpool_node): Likewise.
3298         (decide_variable_is_needed): Initialize externally_visible flag.
3299         * cgraph.h (cgraph_local_info): Add externally_visible flag.
3300         (cgraph_varpool_node): Likewise.
3301         (cgraph_function_flags_ready): Declare.
3302         * cgraph.c (cgraph_mark_local_functions): Rename to ...
3303         (cgraph_function_and_variable_visibility) ... this one; handle
3304         externally_visible flags.
3305         (decide_is_function_needed): Set externally_visible flag.
3306         (cgraph_finalize_function): Deal properly with early cleanups.
3307         (cgraph_optimize): Update call of
3308         cgraph_function_and_variable_visibility.
3309
3310 2005-06-02 Steven Bosscher  <stevenb@suse.de>
3311            Mostafa Hagog <mustafa@il.ibm.com>
3312
3313         * cfgloop.h (doloop_condition_get): Make external.
3314         * loop-doloop.c (doloop_condition_get): Generalize to make it
3315         usable in modulo-sched.c.
3316         * modulo-sched.c (doloop_register_get): Use
3317         doloop_condition_get instead of duplicating it.
3318
3319 2005-06-02  Bernd Schmidt  <bernd.schmidt@analog.com>
3320
3321         * reload1.c (reload): Undo 2005-04-20 change.  Make sure we detect
3322         the correct set of init_insns that need deletion.
3323         * local-alloc.c (update_equiv_regs): When substituting sole definition
3324         into sole use of a reg, delete it from liveness information.
3325
3326 2005-06-02  Kaz Kojima  <kkojima@gcc.gnu.org>
3327
3328         * config/sh/sh.h (TARGET_FPU_DOUBLE): Use MASK_SH4.
3329
3330 2005-06-01  Diego Novillo  <dnovillo@redhat.com>
3331
3332         PR 14341, PR 21332, PR 20701, PR 21029, PR 21086, PR 21090
3333         PR 21289, PR 21348, PR 21367, PR 21368, PR 21458.
3334         * fold-const.c (invert_tree_comparison): Make extern.
3335         * tree-flow.h (enum value_range_type): Move to tree-ssa-propagate.
3336         (struct value_range_def): Limewise.
3337         (get_value_range): Remove.
3338         (dump_value_range): Remove.
3339         (dump_all_value_ranges): Remove.
3340         (debug_all_value_ranges): Remove.
3341         (vrp_evaluate_conditional): Declare.
3342         * tree-ssa-propagate.c (struct prop_stats_d): Add field
3343         num_pred_folded.
3344         (substitute_and_fold): Add argument use_ranges_p.
3345         Update all callers.
3346         If use_ranges_p is true, call fold_predicate_in to fold
3347         predicates using range information.
3348         Ignore ASSERT_EXPRs.
3349         Change debugging output to only show statements that have been
3350         folded.
3351         (replace_phi_args_in): Move debugging output code from
3352         substitute and fold.
3353         (fold_predicate_in): New local function.
3354         * tree-ssa-propagate.h (enum value_range_type): Move from
3355         tree-flow.h.
3356         (struct value_range_d): Likewise.
3357         Add field 'equiv'. 
3358         (value_range_t): Rename from value_range.
3359         * tree-vrp.c (found_in_subgraph): Rename from found.
3360         (get_opposite_operand): Remove.
3361         (struct assert_locus_d): Declare.
3362         (assert_locus_t): Declare.
3363         (need_assert_for): Declare.
3364         (asserts_for): Declare.
3365         (blocks_visited): Declare.
3366         (vr_value): Declare.
3367         (set_value_range): Add argument 'equiv'.
3368         Don't drop to VARYING ranges that cover all values in the
3369         type.
3370         Make deep copy of equivalence set 'equiv'.
3371         (copy_value_range): New local function.
3372         (set_value_range_to_undefined): New local function.
3373         (compare_values): Return -2 if either value has overflowed.
3374         (range_includes_zero_p): New local function.
3375         (extract_range_from_assert): Flip the predicate code if the
3376         name being asserted is on the RHS of the predicate.
3377         Avoid creating unnecessary symbolic ranges if the comparison
3378         includes another name with a known numeric range.
3379         Update the equivalnce set of the new range when asserting
3380         EQ_EXPR predicates.
3381         (extract_range_from_ssa_name): Update the equivalence set of
3382         the new range with VAR.
3383         (extract_range_from_binary_expr): Also handle TRUTH_*_EXPR.
3384         If -fwrapv is used, set the resulting range to VARYING if the
3385         operation overflows.  Otherwise, use TYPE_MIN_VALUE and
3386         TYPE_MAX_VALUE to represent -INF and +INF.
3387         Fix handling of *_DIV_EXPR.
3388         (extract_range_from_unary_expr): Handle MINUS_EXPR and
3389         ABS_EXPR properly by switching the range around if necessary.
3390         (extract_range_from_comparison): New local function.
3391         (extract_range_from_expr): Call it.
3392         (adjust_range_with_scev): Do not adjust the range if using
3393         wrapping arithmetic (-fwrapv).
3394         (dump_value_range): Also show equivalence set.
3395         Show -INF and +INF for TYPE_MIN_VALUE and TYPE_MAX_VALUE.
3396         (build_assert_expr_for): Also build ASSERT_EXPR for EQ_EXPR.
3397         (infer_value_range): Change return value to bool.
3398         Add arguments 'comp_code_p' and 'val_p'.
3399         Do not attempt to infer ranges from statements that may throw.
3400         Store the comparison code in comp_code_p.
3401         Store the other operand to be used in the predicate in val_p.
3402         (dump_asserts_for): New.
3403         (debug_asserts_for): New.
3404         (dump_all_asserts): New.
3405         (debug_all_asserts): New.