OSDN Git Service

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