OSDN Git Service

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