OSDN Git Service

Index: ChangeLog
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2005-06-13  Geoffrey Keating  <geoffk@apple.com>
2
3         * Makefile.in (install-man): Doesn't really depend on installdirs.
4         (various rules for installing manpages): Do depend on installdirs.
5
6 2005-06-14  Nathan Sidwell  <nathan@codesourcery.com>
7
8         * unwind-dw2-fde-darwin.c (examine_objects): Fix aliasing in
9         read_encoded_value_with_base call.
10         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Likewise.
11         * unwind-dw2-fde.c (_Unwind_Find_FDE): Likewise.
12         * unwind-dw2.c (extract_cie_info): Fix aliasing in
13         read_encoded_value call.
14         (execute_cfa_program, uw_frame_state_for): Likewise.
15
16 2005-06-13  Roger Sayle  <roger@eyesopen.com>
17
18         PR rtl-optimization/22053
19         * reg-stack.c (compensate_edge): Correct mistake in the assertion
20         checking of EDGE_ABNORMAL_CALL edges; complex return values can
21         result in the top two stack slots, st(0) and st(1), being live.
22
23 2005-06-13  Jeff Law  <law@redhat.com>
24
25         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): No longer
26         simplify DIV, MOD or ABS expressions using VRP information.
27         Remove WALK_DATA parameter.  Prototype and all callers updated.
28         (eliminate_redundant_computations): Remove WALK_DATA parameter.
29         Prototype and all callers updated.
30         (optimize_stmt): WALK_DATA parameter is now unused.
31
32         * tree-vrp.c (local_fold): New function.  Like fold, but
33         strips useless type conversions in the result.
34         (simplify_using_ranges): New function, largely cribbed from
35         tree-ssa-dom.c::simplify_rhs_and_lookup_avail_expr.
36         (vrp_finalize): Call simplify_using_ranges.
37
38 2005-06-13  Mark Mitchell  <mark@codesourcery.com>
39
40         * config/i386/x86-64.h (ASM_SPEC): Explicitly pass --64 to the
41         assembler in 64-bit mode.
42
43 2005-06-13  David Edelsohn  <edelsohn@gnu.org>
44
45         Revert scc_operand patch.
46         * config/rs6000/predicates.md (scc_operand): Delete.
47         * config/rs6000/rs6000.md (scc_operand): Change to scc_eq_operand.
48
49 2005-06-13  Jakub Jelinek  <jakub@redhat.com>
50
51         * trans-expr.c (gfc_conv_function_call): Return int instead of
52         void.  Use a local variable for has_alternate_specifier and
53         return it.  Avoid modification of function type's return value
54         in place, since it may be shared.
55         * trans.h (has_alternate_specifier): Remove.
56         (gfc_conv_function_call): Change return type.
57         * trans-stmt.c (has_alternate_specifier): Remove.
58         (gfc_trans_call): Add a local has_alternate_specifier variable,
59         set it from gfc_conv_function_call return value.
60
61 2005-06-13  Zdenek Dvorak  <dvorakz@suse.cz>
62
63         PR middle-end/21985
64         * fold-const.c (split_address_to_core_and_offset): Always return
65         the address of the base object.
66
67 2005-06-13  Bernd Schmidt  <bernd.schmidt@analog.com>
68
69         * doc/invoke.texi (Blackfin Options): Document -mlong-calls.
70
71 2005-06-12  Richard Henderson  <rth@redhat.com>
72
73         PR tree-opt/21994
74         * tree-complex.c (update_complex_components_on_edge): New.
75         (update_parameter_components): Use it.
76         (update_phi_components): Likewise.
77         (expand_complex_move): Likewise for is_ctrl_altering_stmt.
78
79 2005-06-12  James A. Morrison  <phython@gcc.gnu.org>
80
81         PR tree-optimization/14796
82         * fold-const (fold_binary): Transform (X << C) >> C into X & (-1>>C)
83         for unsigned types.
84
85 2005-06-12  Kazu Hirata  <kazu@codesourcery.com>
86
87         * cgraphunit.c, tree-ssa-loop-ivopts.c,
88         tree-ssa-structalias.c, tree-vectorizer.c, tree-vectorizer.h,
89         config/sparc/sparc.c: Fix comment typos.
90
91 2005-06-12  Richard Earnshaw  <richard.earnshaw@arm.com>
92
93         * arm/ieee754-df.s (aeabi_dcmpeq, aeabi_dcmplt, aeabi_dcmple)
94         (aeabi_dcmpge, aeabi_dcmpgt): Maintain 8-byte stack alignment.
95         * arm/ieee754-sf.s (aeabi_l2f, aeabi_fcmpeq, aeabi_fcmplt)
96         (aeabi_fcmple, aeabi_fcmpge, aeabi_fcmpgt): Likewise.
97
98 2005-06-12  James A. Morrison  <phython@gcc.gnu.org>
99
100         PR tree-optimization/14796
101         * fold-const.c (fold_binary): Transform (A >> C) << C into
102         one BIT_AND_EXPR.
103         <shift>: Transform (A OP c1) OP c2 into A OP (c1 + c2).
104
105 2005-06-11  Geoffrey Keating  <geoffk@apple.com>
106
107         * config/rs6000/predicates.md (reg_or_arith_cint_operand): Delete.
108         (reg_or_add_cint_operand): Rename from reg_or_add_cint64_operand.
109         Handle SImode.
110         (reg_or_sub_cint_operand): Likewise.
111         (mask_operand): Handle DImode.
112         (mask64_operand): Delete.
113         (and64_operand): Delete.
114         * config/rs6000/rs6000.c (num_insns_constant): Use mask_operand
115         instead of mask64_operand.
116         (print_operand): Likewise.
117         (rs6000_rtx_costs): Use mask_operand and reg_or_add_cint_operand and
118         reg_or_sub_cint_operand instead of *64_* variants.
119         * config/rs6000/rs6000.h (EXTRA_CONSTRAINT): Use mask_operand
120         instead of mask64_operand.
121         * config/rs6000/rs6000.md: Use mask_operand and and_operand instead
122         of *64_* variants.
123         (FP): New.
124         (add_op2): Delete.
125         (add<mode>3): Use reg_or_add_cint_operand.
126         (sub_op2): Delete.
127         (sub<mode>3): Use reg_or_sub_cint_operand.
128         (udiv<mode>3, div<mode>3, div<mode>3_no_mq, mod<mode>3,
129         mov<mode>_internal2, mov<mode>, cmp<mode>, cmp<mode>,
130         cmp<mode>_internal1, indirect_jump<mode>, ctr<mode>,
131         ctr<mode>_internal1, ctr<mode>_internal2, ctr<mode>_internal5,
132         ctr<mode>_internal6, save_fpregs_<mode>, return_internal_<mode>,
133         return_and_restore_fpregs_<mode>, eh_set_lr_<mode>,
134         various unnamed patterns): New.
135         (udivsi3, divsi3, divsi3_no_mq, modsi3, movsi_internal2, movsi,
136         cmpsi, cmpsi_internal1, indirect_jumpsi, ctrsi, ctrsi_internal1,
137         ctrsi_internal2, ctrsi_internal5, ctrsi_internal6, save_fpregs_si,
138         return_internal_si, return_and_restore_fpregs_si, eh_set_lr_si,
139         udivdi3, divdi3, divdi3_no_mq, moddi3, movdi_internal2, movdi,
140         cmpdi, cmpdi_internal1, indirect_jumpdi, ctrdi, ctrdi_internal1,
141         ctrdi_internal2, ctrdi_internal5, ctrdi_internal6, save_fpregs_di,
142         return_internal_di, return_and_restore_fpregs_di, eh_set_lr_di,
143         movhi, movqi, cmpsf, cmpdf, cmptf, various unnamed patterns):
144         Delete.
145
146 2005-06-11  Gabriel Dos Reis  <gdr@integrable-solutions.net>
147
148         * rtl.h (to_rtx_code): Remove.
149         * machmode.h (to_machine_mode): Likewise.
150         * read-rtl.c (apply_mode_macro): Replace to_machine_mode with
151         explicit cast.
152         (apply_mode_maps): Likewise.
153         (read_rtx_1): Likewise.
154         (apply_code_macro): Replace to to_rtx_code with explicit cast.
155         (check_code_macro): Likewise.
156         (read_rtx_1): Likewise.
157
158 2005-06-11  Gabriel Dos Reis  <gdr@integrable-solutions.net>
159
160         * c-typeck.c (convert_for_assignment): Avoid checking
161         OPT_Wc___compat, as it is always true.
162
163 2005-06-11  David Edelsohn  <edelsohn@gnu.org>
164
165         * config/rs6000/rs6000.md (eq<mode>_compare): Restrict to Pmode.
166
167 2005-06-11  Daniel Berlin  <dberlin@dberlin.org>
168
169         Fix PR tree-optimization/22005
170         Fix PR tree-optimization/22025
171         
172         * tree-ssa-structalias.c (struct variable_info): Add has_union
173         member.
174         (create_variable_info_for):  Mark variables containing unions.
175         Don't sort the field stack if notokay is true.
176         (find_what_p_points_to): Convert variables containing unions back
177         to their SFT's if necessary.
178         
179 2005-06-11  Daniel Berlin  <dberlin@dberlin.org>
180
181         * lambda-code.c (replace_uses_equiv_to_x_with_y): Verify the step
182         is an INTEGER_CST before calling int_cst_value.
183
184 2005-06-10  Uros Bizjak  <uros@kss-loka.si>
185
186         PR target/21981
187         * config/i386/i386.c (ix86_function_value_regno_p): Return true
188         for FIRST_MMX_REG if TARGET_MMX.
189         (ix86_return_in_memory): Return 1 for MMX/3dNow vectors. Delete
190         wrong comment.
191         (ix86_struct_value_rtx): Emit warning for MMX ABI violations.
192         (ix86_value_regno): Return FIRST_MMX_REG for MMX vector modes.
193
194 2005-06-10  Daniel Berlin  <dberlin@dberlin.org>
195
196         * lambda-code.c (replace_uses_equiv_to_x_with_y): Check step
197         and access function against chrec_dont_know.
198           
199 2005-06-10  Daniel Berlin  <dberlin@dberlin.org>
200
201         * lambda-code.c (replace_uses_of_x_with_y): Renamed and rewritten
202         slightly.
203         (exit_phi_for_loop_p): New function.
204         (can_put_in_inner_loop): Ditto.
205         (can_convert_to_perfect_nest): Ditto.
206         (perfect_nestify): Create iv with right type.
207         Rewrite statements in correct order.    
208
209 2005-06-10  Keith Besaw  <kbesaw@us.ibm.com>
210
211         * tree-ssa-alias.c (new_type_alias): Use existing type
212         tag if VAR has just one in its may_aliases list.
213
214 2005-06-10  Fariborz Jahanian <fjahanian@apple.com>
215
216         * rs6000/predicates.md (scc_operand): New.
217         * rs6000/rs6000.md : Use scc_operand for eq:SI compares.
218
219 2005-06-10  Dorit Nuzman  <dorit@il.ibm.com>
220
221         * tree-vect-analyze.c (vect_analyze_data_ref_dependence): DRs whose
222         dependence-distance modulo VF is 0 are recorded in the 
223         SAME_ALIGN_REFs VEC in each DR.
224         (vect_enhance_data_refs_alignment): Avoid 80 column overflow. The
225         alignment information of DRs that are in the SAME_ALIGN_REFs VEC of the
226         DR we want to peel for, is set to 0.
227         * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Fix printout.
228         * tree-vectorizer.c (destroy_loop_vec_info): Free the SAME_ALIGN_REFs
229         VEC.
230         * tree-vectorizer.h (dr_p): New type. Defined to use the VEC API.
231         (_stmt_vec_info): Added new field same_align_refs.
232         (STMT_VINFO_SAME_ALIGN_REFS): New macro.
233
234 2005-06-10  Nathan Sidwell  <nathan@codesourcery.com>
235
236         * vec.h (VEC_safe_grow): Append MEM_STAT_INFO.
237
238 2005-06-10  Alan Modra  <amodra@bigpond.net.au>
239
240         * config/rs6000/linux.h (NO_PROFILE_COUNTERS): Define.
241         * config/rs6000/linux64.h (NO_PROFILE_COUNTERS): Define as 1.
242         * config/rs6000/rs6000.c (output_function_profiler): Obey
243         NO_PROFILE_COUNTERS.  Handle TARGET_SECURE_PLT.  Use "bcl 20,31"
244         for -fPIC.  Delete save_lr and substitute its value into strings.
245
246 2005-06-09  Dale Johannesen  <dalej@apple.com>
247
248         * config/i386/i386.c (optimization_options):  Make -fno-math-errno
249         the default on Darwin.
250         * config/rs6000/rs6000.c (optimization_options):  Ditto.
251         * doc/invoke.texi (-fno-math-errno): Document.
252
253 2005-06-09  Dale Johannesen  <dalej@apple.com>
254
255         * config/rs6000/rs6000.c (TARGET_INSN_VALID_WITHIN_DOLOOP):
256         Change to TARGET_INVALID_WITHIN_DOLOOP.
257
258 2005-06-09  David Edelsohn  <edelsohn@gnu.org>
259
260         * config/rs6000/rs6000.md (eq): Convert to define_insn_and_split.
261         * config/rs6000/predicates.md (scc_eq_operand): New.
262
263 2005-06-09  Kaz Kojima  <kkojima@gcc.gnu.org>
264
265         * config/sh/sh.md (mextr_rl): Set buffer size properly.
266         (*mextr_lr): Likewise.
267
268 2005-06-09  Gabriel Dos Reis  <gdr@integrable-solutions.net>
269
270         PR c/21759
271         * c.opt (Wc++-compat): New.
272         * doc/invoke.texi (-Wc++-compat): Document.
273         * c-typeck.c (convert_for_assignment): Check for implicit
274         conversion void* -> T*.
275
276 2005-06-09  Gabriel Dos Reis  <gdr@integrable-solutions.edu>
277
278         * machmode.h (to_machine_mode): New.
279         * rtl.h (to_rtx_code): Likewise.
280         * read-rtl.c (apply_mode_macro): Convert mode to machine_mode.
281         (print_c_condition): Convert return value of htab_find().
282         (apply_code_macro): Add explicit cast when convertin to enums.
283         (apply_mode_maps): Likewise.
284         (check_code_macro): Likewise.
285         (read_rtx_1): Likewise.
286
287 2005-06-09  Richard Henderson  <rth@redhat.com>
288
289         * config/ia64/ia64.c (update_set_flags): Just return for IF_THEN_ELSE.
290         Use SCALAR_FLOAT_MODE_P.
291         * config/ia64/vect.md (vcondv2sf): Remove code check on comparison.
292         (fselect): Rename from fpcmp; use %F.
293         (fpcmp): New.
294
295 2005-06-09  Jan Hubicka  <jh@suse.cz>
296
297         * cgraphunit.c (cgraph_create_edges): Do not walk BLOCK; finalize
298         local statics when doing unit-at-a-time.
299         (cgraph_varpool_assemble_pending_decls): Output debug info.
300         * dwarf2out.c (decls_for_scope): Skip local statics.
301         (dwarf2out_decl): Handle local statics.
302         * passes.c (rest_of_decl_compilation): Do not differentiate
303         local and global statics in unit-at-a-time.
304         * tree-inline.c (remap_decls): Put local static into
305         unexpanded_vars_list rather than introducing duplicated VAR_DECL
306         node.
307
308 2005-06-09  Daniel Berlin  <dberlin@dberlin.org>
309
310         * config/rs6000/rs6000.c: (rs6000_insn_valid_within_doloop): Fix
311         prototype.
312
313 2005-06-08  Daniel Berlin  <dberlin@dberlin.org>
314
315         * Makefile.in (OBJS-common): Add tree-ssa-structalias.o.
316         * tree-flow.h (find_what_p_points_to): Add prototype.
317         (push_fields_onto_fieldstack): Ditto.
318         (sort_fieldstack): Ditto.
319         * tree-optimize.c (init_tree_optimization_passes): Add
320         pass_build_pta and pass_del_pta.
321         * tree-pass.h (pass_build_pta): New structure.
322         (pass_del_pta): Ditto.
323         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Disambiguate
324         using new alias analyzer.
325         (push_fields_onto_fieldstack): Removed from here.
326         (bitpos_of_field): Ditto.
327         (fieldoff_compare): Ditto.
328         * tree-ssa-structalias.c: New file.
329         * tree-ssa-structalias.h: Ditto.
330
331 2005-06-09  Nathan Sidwell  <nathan@codesourcery.com>
332
333         * c-typeck.c (build_c_cast): Check type punning on COMPONENT_REF
334         too.
335
336 2005-06-09  Bernd Schmidt  <bernd.schmidt@analog.com>
337
338         * config/bfin/bfin.c (enum bfin_builtins): Moved here from...
339         * config/bfin/bfin.h (enum bfin_builtins): ... here.
340
341 2005-06-09  Adrian Straetling  <straetling@de.ibm.com>
342
343         * target.h (insn_valid_within_doloop): Rename into
344         "invalid_within_doloop".  Change return type to "const char *".
345         Update Comment.
346         * targhooks.h (default_insn_valid_within_doloop): Rename into
347         "default_invalid_within_doloop". 
348         * targhooks.c (default_insn_valid_within_doloop): Likewise.
349         Update Comment.
350         * target-def.h (TARGET_INSN_VALID_WITHIN_DOLOOP): Rename target hook
351         into "TARGET_INVALID_WITHIN_DOLOOP". Default it to
352         "default_invalid_within_doloop".
353         * hooks.c (hook_constcharptr_rtx_null): New function.
354         (hook_bool_rtx_true): Remove.
355         * hooks.h (hook_constcharptr_rtx_null): Declare.
356         (hook_bool_rtx_true): Remove.
357         * loop-doloop.c (doloop_valid_p): Temporarily store return value of
358         "invalid_within_doloop" and print error message if non-null.
359         Update Comment.
360         * doc/tm.texi: Update documentation.
361         * config/s390/s390.c: Adjust to new hook name and new default hook.
362         * config/rs6000/rs6000.c: (rs6000_insn_valid_within_doloop): Rename
363         into "rs6000_invalid_within_doloop".
364         (rs6000_invalid_within_doloop): Change return type to "static const
365         char *" and replace return values.  Update Comment.
366
367 2005-06-09  Bernd Schmidt  <bernd.schmidt@analog.com>
368
369         * config/bfin/bfin.opt (mlong-calls): New.
370         * config/bfin/predicates.md (call_insn_operand): Disallow SYMBOL_REF
371         if TARGET_LONG_CALLS.
372
373 2005-06-09  Richard Henderson  <rth@redhat.com>
374
375         PR tree-opt/20610
376         * tree.h (DECL_COMPLEX_GIMPLE_REG_P): New.
377         (struct tree_decl): Add gimple_reg_flag.
378         * integrate.c (copy_decl_for_inlining): Copy it.
379         * gimplify.c (internal_get_tmp_var): Set it.
380         (gimplify_bind_expr): Likewise.
381         (gimplify_function_tree): Likewise.
382         (gimplify_modify_expr_complex_part): New.
383         (gimplify_modify_expr): Use it.
384         * tree-gimple.c (is_gimple_reg_type): Allow complex.
385         (is_gimple_reg): Allow complex with DECL_COMPLEX_GIMPLE_REG_P set.
386
387         * tree-complex.c (complex_lattice_t): New.
388         (complex_lattice_values, complex_variable_components): New.
389         (some_nonzerop, find_lattice_value, is_complex_reg,
390         init_parameter_lattice_values, init_dont_simulate_again, 
391         complex_visit_stmt, complex_visit_phi, create_components,
392         update_complex_components, update_parameter_components, 
393         update_phi_components, update_all_vops, expand_complex_move): New.
394         (extract_component): Handle INDIRECT_REF, COMPONENT_REF, ARRAY_REF,
395         SSA_NAME.
396         (update_complex_assignment): Use update_complex_components;
397         handle updates of return_expr properly.
398         (expand_complex_addition): Use complex lattice values.
399         (expand_complex_multiplication): Likewise.
400         (expand_complex_division): Likewise.
401         (expand_complex_libcall): Use update_complex_components.
402         (expand_complex_comparison): Use update_stmt.
403         (expand_complex_operations_1): Use expand_complex_move, retrieve
404         lattice values.
405         (tree_lower_complex): Compute lattice values.
406         (tree_lower_complex_O0): Duplicate from tree_lower_complex.
407         (pass_lower_complex_O0): Rename from pass_lower_complex.
408         (pass_lower_complex, gate_no_optimization): New.
409         * tree-optimize.c (init_tree_optimization_passes): Update for
410         complex pass changes.
411         * tree-pass.h (pass_lower_complex_O0): Declare.
412
413 2005-06-08  Dale Johannesen  <dalej@apple.com>
414
415         * config/darwin.c (darwin_binds_local_p):  New.
416         * config/darwin-protos.h (darwin_binds_local_p):  Declare it.
417         * config/i386/i386.c (TARGET_BINDS_LOCAL_P):  Use it for TARGET_MACHO.
418         * config/rs6000/rs6000.c (rs6000_binds_local_p):  Remove.
419         (TARGET_BINDS_LOCAL_P):  Change it to darwin_binds_local_p.
420
421 2005-06-08  Aldy Hernandez  <aldyh@redhat.com>
422
423         * config/rs6000/rs6000.h: Remove rs6000_long_double_size_string,
424         rs6000_isel, rs6000_spe, rs6000_alignment_string,
425         rs6000_sched_restricted_insns_priority_str,
426         rs6000_sched_restricted_insns_priority, rs6000_abi_string.
427
428 2005-06-08  Zdenek Dvorak  <dvorakz@suse.cz>
429
430         * tree-ssa-address.c (addr_for_mem_ref): Use LAST_VIRTUAL_REGISTER
431         instead of FIRST_PSEUDO_REGISTER for creating pseudoregisters.
432         * tree-ssa-loop-ivopts.c (add_cost, multiply_by_cost,
433         multiplier_allowed_in_address_p, get_address_cost): Ditto.
434
435 2005-06-08  Richard Henderson  <rth@redhat.com>
436
437         * config/ia64/ia64.h (NO_PROFILE_COUNTERS): New.
438         * config/ia64/ia64.c (ia64_output_function_profiler): Honor it.
439         Emit out3 load right after alloc.
440
441 2005-06-08  Aldy Hernandez  <aldyh@redhat.com>
442
443         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
444         rs6000_explicit_options.
445
446 2005-06-08  Richard Henderson  <rth@redhat.com>
447
448         * config/ia64/ia64.h (FUNCTION_PROFILER): Move implementation ...
449         * config/ia64/ia64.c (ia64_output_function_profiler): ... here; add
450         unwind markup.
451         * config/ia64/ia64-protos.h (ia64_output_function_profiler): Declare.
452
453 2005-06-08  Joseph S. Myers  <joseph@codesourcery.com>
454
455         * config/sol2-c.c (cmn_err_char_table): Allow width for %b
456         formats.
457
458 2005-06-08  James A. Morrison  <phython@gcc.gnu.org>
459
460         PR target/20666
461         * config/sparc/sparc.c (sparc_fold_builtin): New function
462         (sparc_vis_mul8x16): New function.
463         (sparc_handle_vis_mul8x16): New function.
464         (TARGET_FOLD_BUILTIN): Define to sparc_fold_builtin.
465
466 2005-06-08  David Edelsohn  <edelsohn@gnu.org>
467
468         * config/rs6000/rs6000.md (call_indirect_nonlocal_aix32): Prefer
469         CTR to LR.
470         (call_indirect_nonlocal_aix64): Same.
471         (call_value_indirect_nonlocal_aix32): Same.
472         (call_value_indirect_nonlocal_aix64): Same.
473
474         PR target/10588
475         (eq): Use CLZ splitter for compare with zero.
476
477 2005-06-08  Bernd Schmidt  <bernd.schmidt@analog.com>
478
479         * config/bfin/bfin.c (bfin_return_in_memory): Simplify; return
480         everything larger than 8 bytes in memory.
481
482         * config/bfin/bfin.h (enum bfin_builtins): New.
483         * config/bfin/bfin.md (UNSPEC_VOLATILE_CSYNC, UNSPEC_VOLATILE_SSYNC):
484         New constants.
485         (csync, ssync): New insn patterns.
486         * config/bfin/bfin.c (bfin_init_builtins, bfin_expand_builtin):
487         New functions.
488         (def_builtin): New macro.
489         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
490
491         From Jie Zhang  <jie.zhang@analog.com>
492         * config/bfin/bfin.h (ASM_OUTPUT_ALIGN): Gas now emulates the
493         behavior of the native assembler in VDSP. So change accordingly.
494         
495 2005-06-08  Sebastian Pop  <pop@cri.ensmp.fr>
496
497         * tree-data-ref.c (compute_estimated_nb_iterations,
498         analyze_array_indexes, compute_overlap_steps_for_affine_1_2,
499         analyze_subscript_affine_affine, find_data_references_in_loop):
500         Fixed to use chrec_contains_undetermined to test the values of
501         loop->estimated_nb_iterations.
502         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
503         Compute the estimation only when loop->estimated_nb_iterations
504         has not yet been initialized.
505         (convert_step_widening, scev_probably_wraps_p): Add a call to
506         estimate_numbers_of_iterations_loop.
507         * tree-vrp.c (execute_vrp): Don't call estimate_numbers_of_iterations.
508
509 2005-06-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
510
511         PR debug/21946
512         * dwarf2out.c (add_loc_descr_op_piece): Move to the
513         DWARF2_DEBUGGING_INFO section.
514
515 2005-06-08  Richard Henderson  <rth@redhat.com>
516
517         PR target/21721
518         * config/ia64/ia64.c (emit_predicate_relation_info): Skip p0.
519
520 2005-06-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
521
522         PR target/21889
523         * target.h (gcc_target) <asm_out>: New field output_dwarf_dtprel.
524         * target-def.h (TARGET_ASM_OUTPUT_DWARF_DTPREL): New macro.
525         (TARGET_ASM_OUT): Add it.
526         * doc/tm.texi (Debugging Info): Document it.
527         * dwarf2out.c (output_loc_operands) <INTERNAL_DW_OP_tls_addr>:
528         Test it instead of ASM_OUTPUT_DWARF_DTPREL.
529         (loc_descriptor_from_tree_1) <VAR_DECL>: Likewise.
530         * system.h: Poison ASM_OUTPUT_DWARF_DTPREL.
531         * config/frv/frv-protos.h (frv_output_dwarf_dtprel): Delete.
532         * config/frv/frv.c (frv_output_dwarf_dtprel): Make static and unused.
533         (gen_inlined_tls_plt): Remove unused variable MEM.
534         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to frv_output_dwarf_dtprel.
535         * config/frv/frv.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
536         * config/i386/i386-protos.h (i386_output_dwarf_dtprel): Delete.
537         * config/i386/i386.c (i386_output_dwarf_dtprel): Make static and
538         unused.
539         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to i386_output_dwarf_dtprel.
540         * config/i386/i386.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
541         * config/ia64/ia64-protos.h (ia64_output_dwarf_dtprel): Delete.
542         * config/ia64/ia64.c (ia64_output_dwarf_dtprel): Make static and
543         unused.
544         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to ia64_output_dwarf_dtprel.
545         * config/ia64/ia64.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
546         * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Delete.
547         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): Make static and
548         unused.
549         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to rs6000_output_dwarf_dtprel
550         * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
551         * config/s390/s390-protos.h (s390_output_dwarf_dtprel): Delete.
552         * config/s390/s390.c (s390_output_dwarf_dtprel): Make static and
553         unused.
554         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to s390_output_dwarf_dtprel.
555         * config/s390/s390.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
556         * config/sparc/sol2-gas.h (TARGET_SUN_TLS): Define to 0.
557         (TARGET_GNU_TLS): Define to 1.
558         * config/sparc/sparc-protos.h (sparc_output_dwarf_dtprel): Delete.
559         * config/sparc/sparc.c (sparc_output_dwarf_dtprel): Make static and
560         unused.
561         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to sparc_output_dwarf_dtprel
562         if TARGET_GNU_TLS only.
563         * config/sparc/sparc.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
564
565         * config.gcc (sparc64-*-solaris2*): Include tm-dwarf2.h last.
566         (sparc-*-solaris2*): Likewise on Solaris 7 and up.
567
568 2005-06-07  Dale Johannesen  <dalej@apple.com>
569
570         * config/i386/i386.md (movqi_1):  Fix case where source
571         is memory and destination EDI.
572
573 2005-06-08  Kazu Hirata  <kazu@codesourcery.com>
574
575         * config/c4x/c4x.h (PREDICATE_CODES): Remove mem_operand.
576
577 2005-06-07  Eric Christopher  <echristo@redhat.com>
578
579         * system.h: Poison EXTRA_CC_MODES.
580         * config/frv/frv.h (SELECT_CC_MODE): Rewrite comment.
581         * config/ia64/ia64.h (SELECT_CC_MODE): Ditto.
582         * doc/md.texi (Jump Patterns): Replace reference to
583         EXTRA_CC_MODES with machine-modes.def.
584         * doc/rtl.texi (Machine Modes): Ditto.
585
586 2005-06-07  Richard Henderson  <rth@redhat.com>
587
588         * varasm.c (initialize_cold_section_name): Fix alloca buffer overflow.
589         (assemble_start_function): Fix strcmp confusion.
590
591 2005-06-07  Uros Bizjak  <uros@kss-loka.si>
592
593         * config/i386/i386.h (enum ix86_entity): New.
594         (enum ix86_stack_slot): New.
595         (OPTIMIZE_MODE_SWITCHING): Redefine to use
596         ix86_optimize_mode_switching[] array.
597         (NUM_MODES_FOR_MODE_SWITCHING): Redefine for 4 entities.
598         (MODE_NEEDED): Use ix86_mode_needed() function.
599         (EMIT_MODE_SET): Redefine for changed emit_i387_cw_initialization ()
600         function.
601         (struct machine_function): Use optimize_mode_switching[] array.
602
603         * config/i386/i386.c (MAX_386_STACK_LOCALS): Remove.
604         (ix86_mode_needed): New function.
605         (emit_i387_cw_initialization): Cleanup. Use mode to calculate
606         correct stack positions for stored control words.
607         (assign_386_stack_local): Use enum ix86_stack_slot. Change assert.
608         (ix86_expand_builtin) [IX86_BUILTIN_LDMXCSR]: Change constant to
609         SLOT_TEMP.
610         [IX86_BUILTIN_STMXCSR]: Same.
611
612         * config/i386/i386-protos.h (assign_stack_local): Change prototype.
613         (emit_i387_cw_initialization): Change prototype.
614         (ix86_mode_needed): New prototype.
615
616         * config/i386/i386.md (i387_cw attribute): Change order of elements.
617         (truncdfsf2, truncxfsf2, truncxfdf2, fix_trunc<mode>_fisttp_i387_1)
618         (*fix_trunc<mode>_i387_1, lrint<mode>2, *fist<mode>2_floor_1)
619         (*fist<mode>2_ceil_1): Change constant in call to
620         assign_386_stack_local to SLOT_TEMP.
621         (*fix_trunc<mode>_i387_1): Change constant in call to
622         assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_TRUNC.
623         Use new ix86_optimize_mode_switching[] array.
624         (frndintxf2_floor, *fist<mode>2_floor_1): Change constants in call to
625         assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_FLOOR.
626         Use new ix86_optimize_mode_switching[] array.
627         (frndintxf2_ceil, *fist<mode>2_ceil_1):  Change constants in call to
628         assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_CEIL.
629         Use new ix86_optimize_mode_switching[] array.
630         (frndintxf2_trunc): Change constants in call to
631         assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_TRUNC.
632         Use new ix86_optimize_mode_switching[] array.
633         (frndintxf2_mask_pm): Change constants in call to
634         assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_MASK_PM.
635         Use new ix86_optimize_mode_switching[] array.
636
637         (define_peephole2): Change constant from 17 to FLAGS_REG;
638
639 2005-06-07  Richard Henderson  <rth@redhat.com>
640
641         PR rtl-opt/21528
642         * rtlanal.c (reg_overlap_mentioned_p) <MEM>: Handle 'E' formats.
643
644 2005-06-07  Dale Johannesen  <dalej@apple.com>
645
646         * tree-nested.c (finalize_nesting_tree_1):  Disable
647         warn_padded around layout_type call.
648
649 2005-06-08  Zdenek Dvorak  <dvorakz@suse.cz>
650
651         * tree-ssa-loop-ivopts.c (rewrite_use_outer): Unshare the expression
652         before emiting it.
653
654 2005-06-07  Eric Christopher  <echristo@redhat.com>
655
656         * config/mips/predicates.md: Revert previous patch.
657
658 2005-06-07  Jakub Jelinek  <jakub@redhat.com>
659
660         PR middle-end/21850
661         * tree.c (get_unwidened): Stop at NOP_EXPR/CONVERT_EXPR that convert
662         from vector types.
663
664 2005-06-07  Diego Novillo  <dnovillo@redhat.com>
665
666         * tree-ssa-threadupdate.c (struct thread_stats_d): Declare.
667         (thread_stats): New local variable.
668         (redirect_edges): Increment count of threaded edges.
669         (thread_through_all_blocks): Initialize thread_stats.
670         Display number of threaded jumps if TDF_STATS is enabled.
671
672 2005-06-07  Kazu Hirata  <kazu@codesourcery.com>
673
674         * sbitmap.h (sbitmap_iter_init): Consistently treat bit_num as
675         the current bit index with no modulo.
676
677 2005-06-07  Sebastian Pop  <pop@cri.ensmp.fr>
678
679         PR 18403 and meta PR 21861.
680         * Makefile.in (tree-chrec.o): Depend on CFGLOOP_H and TREE_FLOW_H.
681         * tree-chrec.c: Include cfgloop.h and tree-flow.h.
682         (evolution_function_is_invariant_rec_p,
683         evolution_function_is_invariant_p): New.
684         (chrec_convert): Use an extra parameter AT_STMT for refining the
685         information that is passed down to convert_step.  Integrate the 
686         code that was in count_ev_in_wider_type.
687         * tree-chrec.h (count_ev_in_wider_type): Removed.
688         (chrec_convert): Modify its declaration.
689         (evolution_function_is_invariant_p): Declared.
690         (evolution_function_is_affine_p): Use evolution_function_is_invariant_p.
691         * tree-flow.h (can_count_iv_in_wider_type): Renamed convert_step.
692         (scev_probably_wraps_p): Declared.
693         * tree-scalar-evolution.c (count_ev_in_wider_type): Removed.
694         (follow_ssa_edge_in_rhs, interpret_rhs_modify_expr):
695         Use an extra parameter AT_STMT for refining the information that is
696         passed down to convert_step.
697         (follow_ssa_edge_inner_loop_phi, follow_ssa_edge,
698         analyze_scalar_evolution_1): Initialize AT_STMT with the current
699         analyzed statement.
700         (instantiate_parameters_1): Don't know yet how to initialize AT_STMT.
701         * tree-ssa-loop-ivopts.c (idx_find_step): Update the use of 
702         can_count_iv_in_wider_type to use convert_step.
703         * tree-ssa-loop-niter.c (can_count_iv_in_wider_type_bound): Move 
704         code that is independent of the loop over the known iteration
705         bounds to convert_step_widening, the rest is moved to
706         proved_non_wrapping_p.
707         (scev_probably_wraps_p): New.
708         (can_count_iv_in_wider_type): Renamed convert_step.
709         * tree-vrp.c (adjust_range_with_scev): Take an extra AT_STMT parameter.
710         Use scev_probably_wraps_p for computing init_is_max.
711         (vrp_visit_assignment): Pass the current analyzed statement to 
712         adjust_range_with_scev.
713         (execute_vrp): Call estimate_numbers_of_iterations for refining the 
714         information provided by scev analyzer.
715
716 2005-06-07  Eric Christopher  <echristo@redhat.com>
717
718         * config/mips/predicates.md (sleu_operand): Use
719         IN_RANGE to specify range of operand.
720
721 2005-06-07  Steven Bosscher  <stevenb@suse.de>
722
723         PR tree-optimization/21847
724         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): With
725         -fnon-call-exceptions, also mark statements inherently
726         necessary if they may throw.
727
728 2005-06-07  Adrian Straetling  <straetling@de.ibm.com>
729
730         * config/s390/s390.md: ("UNSPECV_MB", "UNSPECV_CAS"): New constants.
731         ("type"): Add "sem" to 'type' attribute.
732         ("memory_barrier", "*memory_barrier", "sync_compare_and_swapdi",
733         "sync_compare_and_swapsi", "sync_compare_and_swap_ccdi",
734         "sync_compare_and_swap_ccsi", "*sync_compare_and_swap_ccdi",
735         "*sync_compare_and_swap_ccsi"): New patterns.
736         * config/s390/2064.md: ("z_sem"): New insn_reservation.
737         * config/s390/2084.md: ("x_sem"): New insn_reservation.
738         * config/s390/s390.c: (s390_compare_emitted): New global variable.
739         (s390_emit_compare): Do not emit comparison again after cas.
740         * config/s390/s390.h (s390_compare_emitted): Declare.
741
742 2005-06-07  Kazu Hirata  <kazu@codesourcery.com>
743
744         * sbitmap.h (sbitmap_iterator, sbitmap_iter_init,
745         sbitmap_iter_cond, sbitmap_iter_next): New.
746         * bt-load.c, cfganal.c, combine.c, ddg.c, flow.c,
747         modulo-sched.c, sbitmap.c, sched-rgn.c, tree-into-ssa.c,
748         tree-outof-ssa.c, tree-ssa-alias.c, tree-ssa-live.c: Update
749         uses of EXECUTE_IF_SET_IN_SBITMAP to the new style.
750
751 2005-06-07  Zdenek Dvorak  <dvorakz@suse.cz>
752
753         * tree-ssa-address.c: New file.
754         * Makefile.in (tree-ssa-address.o): Add.
755         * expr.c (expand_expr_real_1): Do not handle REF_ORIGINAL on
756         INDIRECT_REFs.  Handle TARGET_MEM_REFs.
757         * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REFs.
758         * tree-flow.h (struct mem_address): New.
759         (struct affine_tree_combination): Moved from tree-ssa-loop-ivopts.c.
760         (create_mem_ref, addr_for_mem_ref, get_address_description,
761         maybe_fold_tmr, multiplier_allowed_in_address_p,
762         multiply_by_cost):  Declare.
763         * tree-mudflap.c (mf_xform_derefs_1): Handle TARGET_MEM_REFs.
764         * tree-pretty-print.c (dump_generic_node): Ditto.
765         * tree-ssa-loop-im.c (for_each_index): Ditto.
766         * tree-ssa-loop-ivopts.c (may_be_unaligned_p,
767         find_interesting_uses_address): Ditto.
768         (rewrite_address_base, build_addr_strip_iref): Removed.
769         (struct affine_tree_combination): Moved to tree-flow.h.
770         (get_ref_tag, copy_ref_info): New functions.
771         (rewrite_use_address): Produce TARGET_MEM_REFs.
772         (tree_ssa_iv_optimize): Do not call update_ssa
773         and rewrite_into_loop_closed_ssa.
774         (tree_to_aff_combination): Use build_fold_addr_expr instead of
775         build_addr_strip_iref.
776         (unshare_aff_combination): New function.
777         (fold_affine_sum): Removed.
778         (get_computation_at): Use get_computation_aff.  Unshare the result.
779         (get_computation_aff, multiplier_allowed_in_address_p): New function.
780         (multiply_by_cost): Exported.
781         (get_address_cost): Use multiplier_allowed_in_address_p.
782         * tree-ssa-operands.c (get_tmr_operands): New function.
783         (get_expr_operands): Handle TARGET_MEM_REFs.
784         * tree.c (copy_node_stat): Copy annotations for TARGET_MEM_REFs.
785         (build): Handle 7 arguments.
786         (build7_stat): New function.
787         * tree.def (TARGET_MEM_DEF): New.
788         * tree.h (REF_ORIGINAL): Removed.
789         (TMR_SYMBOL, TMR_BASE, TMR_INDEX, TMR_STEP, TMR_OFFSET, TMR_ORIGINAL,
790         TMR_TAG, build7): New macros.
791         (build7_stat, tree_mem_ref_addr, copy_mem_ref_info): Declare.
792         * tree-ssa-ccp.c (fold_stmt_r): Call maybe_fold_tmr.
793         * doc/c-tree.texi: Document TARGET_MEM_REF.
794         * doc/tree-ssa.texi: Add TARGET_MEM_REF to gimple grammar.
795
796 2005-06-07  Jakub Jelinek  <jakub@redhat.com>
797
798         PR debug/21946
799         * dwarf2out.c (add_loc_descr_op_piece): New function.
800         (multiple_reg_loc_descriptor, concat_loc_descriptor,
801         loc_descriptor): Use it.
802         * var-tracking.c: Include regs.h and expr.h.
803         (emit_note_insn_var_location): Skip over pieces where offset
804         is smaller than previous offset plus previous piece mode size.
805         Optimize adjacent hard registers or memory locations.
806         * Makefile.in (var-tracking.o): Depend on $(REGS_H) and $(EXPR_H).
807
808 2005-06-07  Richard Guenther  <rguenth@gcc.gnu.org>
809
810         * c-typeck.c (c_finish_if_stmt): Use void_type_node as type
811         for COND_EXPR.
812         * gimplify.c (gimplify_cond_expr): No need to fix up the
813         type of COND_EXPRs.
814
815 2005-06-07  Richard Guenther  <rguenth@gcc.gnu.org>
816
817         * tree-ssa.c (tree_ssa_useless_type_conversion_1): Fix
818         comments.
819
820 2005-06-07  Geoffrey Keating  <geoffk@apple.com>
821
822         * config/rs6000/host-darwin.c (segv_handler): Widen the possible
823         'stwux' instructions that are considered to be stack decrements.
824
825         * rtlanal.c (subreg_offset_representable_p): Handle objects
826         with holes.
827
828 2005-06-06  Uros Bizjak  <uros@kss-loka.si>
829
830         * mode-switching.c (optimize_mode_switching): Fix n_exprs parameter
831         in call to pre_edge_lcm.
832
833 2005-06-06  Kaz Kojima  <kkojima@gcc.gnu.org>
834
835         * config/sh/linux-unwind.h (SH_DWARF_FRAME_XD0): Remove for SH5.
836         (SH_DWARF_FRAME_PR, SH_DWARF_FRAME_GBR, SH_DWARF_FRAME_MACL)
837         (SH_DWARF_FRAME_MACH, SH_DWARF_FRAME_PC, SH_DWARF_FRAME_FPUL):
838         Likewise.
839         (SH_DWARF_FRAME_FP0, SH_DWARF_FRAME_FPSCR): Define to the correct
840         dwarf register number for SHmedia.
841         (shmedia_fallback_frame_state): New.
842         (MD_FALLBACK_FRAME_STATE_FOR): Define to it for SH5.
843
844         * config/sh/linux.h (FUNCTION_PROFILER): Provide SHMEDIA version.
845
846 2005-06-06  Gabriel Dos Reis  <gdr@integrable-solutions.net>
847
848         * c-lex.c (lex_string): Use XOBFINISH.
849         * collect2.c (extract_string, dump_file): Likewise.
850         * dbxout.c (dbxout_finish_complex_stabs): Likewise.
851         * gcc.c (init_spec, build_search_list, convert_filename, 
852         set_collect_gcc_options, do_spec_2, do_spec_1, main): Likewise.
853         * genpreds.c (write_predicate_subfunction): Likewise.
854         * genflags.c (main): Likewise.
855         * read-rtl.c (mode_attr_index, apply_macro_to_string, 
856         join_c_conditions, read_quoted_string, read_braced_string, 
857         read_rtx_1): Likewise.
858         * stringpool.c (ggc_alloc_string): Likewise.
859         * tlink.c (obstack_fgets, recompile_files): Likewise.
860
861 2005-06-06  Jakub Jelinek  <jakub@redhat.com>
862
863         * intl.h (G_): New macro.
864         * rtl-error.c (error_for_asm, warning_for_asm): Use gmsgid
865         instead of msgid for argument name.
866         * tree-ssa.c (warn_uninit): Likewise.
867         * c-parser.c (c_parser_error): Likewise.
868         * config/rs6000/rs6000-c.c (SYNTAX_ERROR): Likewise.
869         * config/darwin-c.c (BAD): Likewise.
870         * config/c4x/c4x-c.c (BAD): Likewise.
871         * c-pragma.c (GCC_BAD, GCC_BAD2): Likewise.
872         * c-errors.c (pedwarn_c99, pedwarn_c90): Likewise.
873         * c-common.c (c_parse_error): Likewise.
874         * diagnostic.c (diagnostic_set_info, verbatim, inform, warning,
875         warning0, pedwarn, error, sorry, fatal_error, internal_error):
876         Likewise.
877         (fnotice): Use cmsgid instead of msgid for argument name.
878         * gcov.c (fnotice): Likewise.
879         * protoize.c (notice): Likewise.
880         * final.c (output_operand_lossage): Likewise.
881         * gcc.c (fatal, notice): Likewise.
882         (error): Use gmsgid instead of msgid for argument name.
883         * collect2.c (notice, fatal_perror, fatal): Use cmsgid instead
884         of msgid for argument name.
885         (error): Use gmsgid instead of msgid for argument name.
886         * c-decl.c (locate_old_decl, implicit_decl_warning): Use G_()
887         instead of N_().
888         * c-typeck.c (readonly_error, convert_for_assignment): Likewise.
889         * tree-inline.c (inline_forbidden_p_1): Likewise.
890         * ABOUT-GCC-NLS: Require gettext 0.14.5 or later.  Mention the new
891         conventions for marking translations.
892         * doc/install.texi: Mention gettext 0.14.5 or later requirement.
893
894         * tree-chrec.c (reset_evolution_in_loop): Use build3 instead of
895         build2.
896
897         * fold-const.c (operand_equal_p): Don't return 1, if element
898         chains for 2 VECTOR_CSTs are not the same length.
899
900         PR regression/21897
901         * fold-const.c (fold_ternary) <case BIT_FIELD_REF>: Don't crash if
902         not all VECTOR_CST elements are given.
903
904         * combine.c (try_combine): Use hard_regno_nregs array instead of
905         HARD_REGNO_NREGS macro.
906         * config/rs6000/rs6000.c (rs6000_split_multireg_move,
907         rs6000_register_move_cost, rs6000_memory_move_cost): Likewise.
908         * config/ia64/ia64.c (mark_reg_gr_used_mask): Likewise.
909
910 2005-06-06  Daniel Berlin  <dberlin@dberlin.org>
911
912         * tree-ssa-reassoc.o: New.
913         (OBJS-common): Add tree-ssa-reassoc.o
914         * timevar.def: Add TV_TREE_REASSOC
915         * tree-optimize.c (pass_reassoc): Add call.
916         * tree-pass.h (pass_reassoc): Add.
917         * tree-ssa-reassoc.c: New file.
918
919 2005-06-06  Eric Christopher  <echristo@redhat.com>
920
921         target/21927
922         * expr.c (do_store_flag): Remove check for non-negative BRANCH_COST.
923
924 2005-06-06  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
925
926         * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Guard with
927         HAVE_GAS_MAX_SKIP_P2ALIGN.
928         (HAVE_AS_DWARF2_DEBUG_LINE): Remove.
929
930 2005-06-06  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
931
932         * Makefile.in (mips-tfile.o): Add $(srcdir)/../include prefix to
933         getopt.h dependency.
934         (mips-tdump.o): Likewise.
935
936 2005-06-06  Jan Hubicka  <jh@suse.cz>
937
938         * predict.c (tree_predict_edge): Don't drop useless predictions;
939         check that it is not called too late in the game.
940         (gate_estimate_probability): New gate.
941         (pass_profile): Gate.
942         * tree-mudflap.c (mf_build_check_statement_for): Do not drop
943         predictions; update CFG instead.
944         * cfgrtl.c (rtl_verify_flow_info): Check that predcitions are consumed.
945
946 2005-06-06  Jie Zhang  <jie.zhang@analog.com>
947
948         * config.gcc (bfin*-uclinux*): New.
949         * config/bfin/uclinux.h: New file.
950
951 2005-06-06  Ben Elliston  <bje@au.ibm.com>
952
953         * doc/md.texi (Insn Splitting): Fix some wording.
954
955 2005-06-05  David Edelsohn  <edelsohn@gnu.org>
956
957         * config/rs6000/rs6000.c (rs6000_emit_swdivsf): New function.
958         (rs6000_emit_swdivdf): New function.
959         * config/rs6000/rs6000.md (fres): New pattern.
960         (divsf3): Add approximation through rs6000_emit_swdivsf.
961         (fred): New pattern.
962         (divdf3): Add approximation through rs6000_emit_swdivdf.
963         * config/rs6000/rs6000-protos.h (rs6000_emit_swdivsf): Declare.
964         (rs6000_emit_swdivdf): Declare.
965         * config/rs6000/rs6000.opt (mswdiv): New option.
966         * doc/invoke.texi (RS/6000 and PowerPC Options): Document mswdiv.
967
968 2005-06-05  Zdenek Dvorak  <dvorakz@suse.cz>
969
970         PR tree-optimization/21846
971         * tree-cfg.c (replace_uses_by): Update information stored at loops.
972         * tree-flow.h (substitute_in_loop_info): Declare.
973         * tree-scalar-evolution.c (initialize_scalar_evolutions_analyzer):
974         Ensure that chrec_dont_know and chrec_known have a type.
975         * tree-ssa-loop-niter.c (substitute_in_loop_info): New function.
976
977 2005-06-05  Steven Bosscher  <stevenb@suse.de>
978
979         * config/i386/i386.c (x86_use_loop): Remove.
980         * config/i386/i386.h (x86_use_loop): Remove extern decl.
981         (TARGET_USE_LOOP): Remove.
982         * config/i386/i386.md (doloop_end, doloop_end_internal): Remove.
983         Also remove related define_splits.
984
985 2005-06-05  Dorit Nuzman  <dorit@il.ibm.com>
986
987         * tree-flow.h (stmt_ann_d): Move aux to ...
988         (tree_ann_common_d): ... here.
989         * tree-ssa-loop-im.c (LIM_DATA, determine_invariantness_stmt,
990         move_computations_stmt, schedule_sm): Update references to
991         aux.
992         * tree-vectorizer.h (set_stmt_info, vinfo_for_stmt): Likewise.
993         * tree-vect-transform.c (vect_create_index_for_vector_ref): Update
994         call to set_stmt_info.
995         (vect_transform_loop): Likewise.
996         * tree-vectorizer.c (new_loop_vec_info, destroy_loop_vec_info):
997         Likewise.
998
999         * tree-vect-analyze.c (vect_analyze_scalar_cycles): Made void instead of
1000         bool.
1001         (vect_mark_relevant): Takes two additional arguments - live_p and
1002         relevant_p. Set RELEVANT_P and LIVE_P according to these arguments.
1003         (vect_stmt_relevant_p): Differentiate between a live stmt and a
1004         relevant stmt. Return two values = live_p and relevant_p.
1005         (vect_mark_stmts_to_be_vectorized): Call vect_mark_relevant and
1006         vect_stmt_relevant_p with additional arguments. Phis are no longer
1007         put into the worklist (analyzed seperately in analyze_scalar_cycles).
1008         (vect_determine_vectorization_factor): Also check for LIVE_P, because a
1009         stmt that is marked as irrelevant and live, cause it's only used out
1010         side the loop, may need to be vectorized (e.g. reduction).
1011         (vect_analyze_operations): Examine phis. Call
1012         vectorizable_live_operation for for LIVE_P stmts. Check if
1013         need_to_vectorize.
1014         (vect_analyze_scalar_cycles): Update documentation. Don't fail
1015         vectorization - just classify the scalar cycles created by the loop
1016         phis. Call vect_is_simple_reduction.
1017         (vect_analyze_loop): Call to analyze_scalar_cycles moved earlier.
1018         * tree-vect-transform.c (vect_create_index_for_vector_ref): Update
1019         call to set_stmt_info.
1020         (vect_get_vec_def_for_operand): Code reorganized - the code that
1021         classifies the type of use was factored out to vect_is_simple_use.
1022         (vectorizable_store, vect_is_simple_cond): Call vect_is_simple_use with
1023         additional arguments.
1024         (vectorizable_assignment): Likewise. Also make sure the stmt is relevant
1025         and computes a loop_vec_def.
1026         (vectorizable_operation, vectorizable_load, vectorizable_condition):
1027         Likewise.
1028         (vectorizable_live_operation): New.
1029         (vect_transform_stmt): Handle LIVE_P stmts.
1030         * tree-vectorizer.c (new_stmt_vec_info): Initialize the new fields
1031         STMT_VINFO_LIVE_P and STMT_VINFO_DEF_TYPE.
1032         (new_loop_vec_info, destroy_loop_vec_info): Also handle phis.
1033         (vect_is_simple_use): Determine the type of the def and return it
1034         in a new function argument. Consider vect_reduction_def and
1035         vect_induction_def, but for now these are not supported.
1036         (vect_is_simple_reduction): New. Empty for now.
1037         * tree-vectorizer.h (vect_def_type): New enum type.
1038         (_stmt_vec_info): Added new fields - live and _stmt_vec_info.
1039         (STMT_VINFO_LIVE_P, STMT_VINFO_DEF_TYPE): New accessor macros.
1040         (vect_is_simple_use): New arguments added to function declaration.
1041         (vect_is_simple_reduction): New function declaration.
1042         (vectorizable_live_operation): New function declaration.
1043
1044         * tree-vect-analyze.c (vect_can_advance_ivs_p): Add debug printout.
1045         (vect_can_advance_ivs_p): Likewise.
1046         * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Likewise.
1047
1048 2005-06-05  Eric Christopher  <echristo@redhat.com>
1049
1050         * config/mips/mips.c (mips_rtx_costs): Remove unused variable.
1051
1052 2005-06-05  Hans-Peter Nilsson  <hp@bitrange.com>
1053
1054         PR target/21914
1055         * config/mmix/mmix.md ("*movdicc_real_foldable")
1056         ("*movdfcc_real_foldable", "*bCC_foldable")
1057         ("*bCC_inverted_foldable"): Specify DImode for register being
1058         compared.
1059
1060 2005-06-04  Roger Sayle  <roger@eyesopen.com>
1061
1062         * reg-stack.c (struct block_info_def): Correct grammar typo.
1063         (compensate_edge): Clean-up.  Perform as little work as possible
1064         when src and dest stacks match.  Avoid modifying block_info.
1065         Reorder and simplify assertion checks.  Avoid unnecessary copying
1066         of regstack structure.
1067         (convert_regs_1): Set the done flag here...
1068         (convert_regs_2): ... instead of here.
1069
1070 2005-06-04  Dale Johannesen  <dalej@apple.com>
1071
1072         * config/rs6000/rs6000.c (no_global_regs_above): New.
1073         (rs6000_emit_prologue):  Use it; cosmetic formatting fixes.
1074         (rs6000_emit_epilogue):  Use it; cosmetic formatting fixes.
1075         (rs6000_conditional_register_usage): Don't put Darwin PIC
1076         register in global_regs.
1077         (rs6000_stack_info):  Don't set lr_save_p just because Darwin 
1078         PIC reg used.
1079         (rs6000_emit_prologue):  Save LR in R0 around Darwin PIC setup,
1080         if not done by lr_save_p.
1081         * config/rs6000/rs6000.md (insnv1_internal1):  Back out 05-18 patch.
1082         Use rotate instead of ashift.
1083         (call_indirect_nonlocal_sysv):  Prefer CTR to LR.
1084         (call_value_indirect_nonlocal_sysv):  Ditto.
1085
1086 2005-06-04  Jan Hubicka  <jh@suse.cz>
1087
1088         * cgraphunit.c (cgraph_reset_node): Break out from ...
1089         (cgraph_finalize_function): ... here.
1090         (cgraph_finalize_compilation_unit): Reset nodes where backend
1091         removed the body.
1092
1093 2005-06-04  Richard Henderson  <rth@redhat.com>
1094
1095         PR target/21888
1096         * config/alpha/alpha.c (alpha_align_insns): Don't insert nops
1097         until we've passed initial ldgp.
1098
1099 2005-06-04  Daniel Berlin  <dberlin@dberlin.org>
1100
1101         * cfgexpand.c (expand_one_var): Use DECL_HAS_VALUE_EXPR_P.
1102         * dwarf2out.c (loc_descriptor_from_tree_1): Ditto.
1103         * expr.c (expand_var): Ditto.   
1104         * function.c (gimplify_parameters): Use SET_DECL_VALUE_EXPR too.
1105         * gimplify.c (gimplify_decl_expr): Ditto.
1106         (gimplify_expr): Ditto.
1107         * tree-mudflap.c (mf_decl_eligible_p): Use DECL_HAS_VALUE_EXPR_P.
1108         * tree.c (value_expr_for_decl): New.
1109         (print_value_expr_statistics): New.
1110         (init_ttree): Init value_expr_for_decl.
1111         (decl_value_expr_lookup): New.
1112         (decl_value_expr_insert): Ditto.
1113         (copy_node_stat): Copy DECL_VALUE_EXPR status.
1114         * tree.h (DECL_VALUE_EXPR): Use hashtable.
1115         (SET_DECL_VALUE_EXPR): New.
1116         (DECL_HAS_VALUE_EXPR_P): New.
1117
1118 2005-06-04  Steven Bosscher  <stevenb@suse.de>
1119
1120         * lcm.c: Move all mode-switching related functions from here...
1121         * mode-switching.c: ...to this new file.
1122         * doc/passes.texi: Update accordingly.
1123
1124         * basic-block.h (label_value_list): Remove extern decl.
1125         * cfgrtl.c (label_value_list): Remove.
1126         (can_delete_label_p): Don't look at it.
1127         * cfgcleanup.c (cleanup_cfg): Don't free it.
1128
1129         * common.opt: Don't refer to non-existing flag_alias_check.
1130
1131 2005-06-04  David Edelsohn  <edelsohn@gnu.org>
1132
1133         * config/rs6000/aix52.h (ASM_CPU_SPEC): Add power5.
1134
1135 2005-06-04  Kazu Hirata  <kazu@codesourcery.com>
1136
1137         * function.c (prologue, epilogue, sibcall_epilogue): Change
1138         their types to VEC(int,heap)*.
1139         (free_after_compilation): Free the three vectors above.
1140         (init_function_for_compilation, record_insns, contains,
1141         prologue_epilogue_contains, sibcall_epilogue_contains,
1142         reposition_prologue_and_epilogue_notes): Use VEC instead of
1143         VARRAY.  (init_function_once): Remove.
1144         * function.h: Remove the prototype for init_function_once.
1145         * toplev.c (backend_init): Don't call init_function_once.
1146
1147 2005-06-04  Jan Hubicka  <jh@suse.cz>
1148
1149         * predict.c (tree_predict_edge): Do not predict entry edge and
1150         single succestor edge.
1151
1152 2005-06-04  Joseph S. Myers  <joseph@codesourcery.com>
1153
1154         PR c/21873
1155         * c-typeck.c (push_init_level): Don't pop levels without braces if
1156         implicit == 1.
1157
1158 2005-06-03  Sebastian Pop  <pop@cri.ensmp.fr>
1159         
1160         * tree-data-ref.c (compute_self_dependence): New function.
1161         (compute_all_dependences): Use it.
1162
1163 2005-06-03  Geoffrey Keating  <geoffk@apple.com>
1164
1165         * c-parser.c (c_parser_parms_declarator): Don't use chainon().
1166         (c_parser_expr_list): Don't use chainon().
1167
1168         * config/darwin.h (LINK_SPEC): Pass -syslibroot to linker
1169         when -isysroot passed.
1170
1171 2005-06-03  Joseph S. Myers  <joseph@codesourcery.com>
1172
1173         PR c/21879
1174         * c-decl.c (start_function): Restore label_context_stack_se and
1175         label_context_stack_vm  if returning with an error.
1176
1177 2005-06-03  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1178
1179         * configure.ac: Check declaration for asprintf, needed by
1180         libiberty.h. 
1181         * configure: Regenerate.
1182         * config.in: Likewise.
1183
1184 2005-06-03  Diego Novillo  <dnovillo@redhat.com>
1185
1186         * tree-ssa-dom.c (record_edge_info): Use last_basic_block to
1187         allocate info array.
1188         * tree-vrp.c (extract_range_from_unary_expr): Set resulting
1189         range to varying in cast expressions that change
1190         TYPE_PRECISION.
1191
1192 2005-06-03  Eric Christopher  <echristo@redhat.com>
1193
1194         * config/mips/mips.opt: Add RejectNegative to divide-breaks and
1195         divide-traps.
1196
1197 2005-06-03  Jan Hubicka  <jh@suse.cz>
1198
1199         * basic-block.h (remove_predictions_associated_with_edge): Declare.
1200         * cfg.c (remove_edge): Use it.
1201         * predict.c (remove_predictions_associated_with_edge): New function.
1202
1203 2005-06-03  Pat Haugen  <pthaugen@us.ibm.com>
1204
1205         * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
1206         Clear call_realy_used_regs[r2] when ABI_AIX.
1207
1208 2005-06-03  Richard Guenther  <rguenth@gcc.gnu.org>
1209
1210         PR middle-end/21858
1211         * fold-const.c (fold_binary): Fix type mismatches in folding
1212         of comparisons.
1213
1214 2005-06-03  Kazu Hirata  <kazu@codesourcery.com>
1215
1216         * cgraph.c, cgraphunit.c, config/mips/mips.c: Fix comment
1217         typos.
1218
1219 2005-06-03  Joseph S. Myers  <joseph@codesourcery.com>
1220
1221         * collect2.c (maybe_unlink): Use unlink_if_ordinary.
1222
1223 2005-06-02  Bernd Schmidt  <bernd.schmidt@analog.com>
1224
1225         * reload1.c (reload): Revert my previous patch.
1226
1227 2005-06-03  Nick Clifton  <nickc@redhat.com>
1228
1229         * config/arm/semi.h (ASM_SPEC): Fix typo passing -mfloat-abi to
1230         assembler.
1231
1232 2005-06-03  Kazu Hirata  <kazu@codesourcery.com>
1233
1234         PR tree-optimization/21849
1235         * tree-ssa-copy.c (dump_copy_of): Call sbitmap_zero.
1236
1237 2005-06-02  Richard Henderson  <rth@redhat.com>
1238
1239         * Makefile.in (tree-vect-generic.o): New.
1240         (OBJS-common, GTFILES, s-gtype): Add it.
1241         * tree-complex.c (build_replicated_const, vector_inner_type,
1242         vector_last_type, vector_last_nunits, build_word_mode_vector_type,
1243         elem_op_func, tree_vec_extract, do_unop, do_binop, do_plus_minus,
1244         do_negate, expand_vector_piecewise, expand_vector_parallel, 
1245         expand_vector_addition, expand_vector_operation, 
1246         type_for_widest_vector_mode, expand_vector_operations_1, 
1247         gate_expand_vector_operations, expand_vector_operations, 
1248         pass_lower_vector_ssa): Move to tree-vect-generic.c.
1249         (tree_lower_complex): Rename from tree_lower_operations.
1250         (pass_lower_complex): Rename from pass_pre_expand.
1251         * tree-vect-generic.c: New file.
1252         * tree-pass.h (pass_lower_complex): Rename from pass_pre_expand.
1253         (pass_lower_vector): New.
1254         * tree-optimize.c (init_tree_optimization_passes): Update to match.
1255
1256 2005-06-02  Richard Henderson  <rth@redhat.com>
1257
1258         * modulo-sched.c (doloop_register_get): Protect against 
1259         doloop_end not defined.
1260
1261 2005-06-02  Kazu Hirata  <kazu@codesourcery.com>
1262
1263         * config/sh/sh.c (general_movsrc_operand,
1264         general_movdst_operand, arith_reg_operand, arith_reg_dest,
1265         logical_reg_operand, int_gpr_dest, fp_arith_reg_operand,
1266         fp_arith_reg_dest, arith_operand, arith_reg_or_0_operand,
1267         xor_operand, cmp_operand, logical_operand, and_operand,
1268         fpscr_operand, fpul_operand, symbol_ref_operand,
1269         commutative_float_operator, noncommutative_float_operator,
1270         unary_float_operator, binary_float_operator,
1271         binary_logical_operator, equality_comparison_operator,
1272         greater_comparison_operator, less_comparison_operator,
1273         shift_operator, logical_operator, target_reg_operand,
1274         target_operand, mextr_bit_offset, extend_reg_operand,
1275         trunc_hi_operand, extend_reg_or_0_operand, minuend_operand,
1276         general_extend_operand, ua_address_operand,
1277         cache_address_operand, inqhi_operand, sh_rep_vec, sh_1el_vec,
1278         sh_const_vec, ua_offset, sh_register_operand, cmpsi_operand,
1279         shift_count_reg_operand, shift_count_operand,
1280         unaligned_load_operand): Move to ...
1281         * config/sh/predicates.md: ... here.
1282         * config/sh/sh.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES):
1283         Remove.
1284
1285 2005-06-02  Andrew Pinski  <pinskia@physics.uc.edu>
1286
1287         * tree.c (build_common_builtin_nodes): Fix the return type on
1288         __builtin_memcmp.
1289
1290 2005-06-02  Richard Guenther  <rguenth@gcc.gnu.org>
1291
1292         * tree-ssa-loop-ivopts.c (build_addr_strip_iref): Remove.
1293         (find_interesting_uses_address): Use build_fold_addr_expr instead.
1294         (strip_offset_1): Likewise.
1295         (tree_to_aff_combination): Likewise.
1296
1297 2005-06-02  DJ Delorie  <dj@redhat.com>
1298
1299         * convert.c (convert_to_pointer): Avoid recursion if no conversion
1300         is needed.
1301
1302 2005-06-02  Richard Guenther  <rguenth@gcc.gnu.org>
1303
1304         * tree-chrec.c (chrec_fold_plus_1): Ensure we build
1305         binary operations with the correct types.
1306         * tree-ssa-loo-ivopts.c (idx_find_step): Use sizetype
1307         for all computation.
1308
1309 2005-06-02  Kazu Hirata  <kazu@codesourcery.com>
1310
1311         * tree-vrp.c, config/arm/arm.md, config/arm/arm1020e.md,
1312         config/rs6000/rs6000.md: Fix comment typos.  Follow splling
1313         conventions.
1314         * doc/install.texi: Fix a typo.
1315
1316 2005-06-02  Jan Hubicka  <jh@suse.cz>
1317
1318         * cgraphunit.c (cgraph_function_and_variable_visibility): Extern
1319         inline functions are not local.
1320
1321 2005-06-02  Kazu Hirata  <kazu@codesourcery.com>
1322
1323         * gimplify.c (gimplify_ctx): Change the type of case_labels to
1324         VEC from VARRAY.
1325         (gimplify_switch_expr, gimplify_case_label_expr): Adjust uses
1326         of case_labels.
1327
1328 2005-06-02  Richard Guenther  <rguenth@gcc.gnu.org>
1329
1330         * c-typeck.c (build_indirect_ref): Build INDIRECT_REF
1331         with correct type.
1332
1333 2005-06-02  Ulrich Weigand  <uweigand@de.ibm.com>
1334
1335         * config/s390/s390.c (s390_add_execute): Do not handle out-of-pool
1336         execute templates.
1337         (s390_dump_pool): Likewise.
1338         (s390_mainpool_start, s390_mainpool_finish): Likewise.
1339         (s390_chunkify_start): Likewise.
1340         (s390_dump_execute): Remove.
1341         (s390_reorg): Handle out-of-pool execute templates.
1342
1343 2005-06-02  Adrian Straetling  <straetling@de.ibm.com>
1344
1345         * optabs.c: (expand_bool_compare_and_swap): Emit barrier after
1346           unconditional jump.
1347
1348 2005-06-02  Jan Hubicka  <jh@suse.cz>
1349
1350         * cgraph.c (cgraph_node): Maintain master clones.
1351         (cgraph_remove_node): Likewise.
1352         (availability_names): New static variable.
1353         (dump_cgraph_node): Dump availability.
1354         (dump_cgraph_varpool_node): Likewise.
1355         (cgraph_is_master_clone, cgraph_master_clone,
1356         cgraph_function_body_availability,
1357         cgraph_variable_initializer_availability): New functions.
1358         * cgraph.h (availability): New enum.
1359         (struct cgraph_node): Add master_clone.
1360         (cgraph_is_master_clone, cgraph_master_clone,
1361         cgraph_function_body_availability,
1362         cgraph_variable_initializer_availability): Declare.
1363         * cgraphunit.c (cgraph_expand_function): Setcgraph_function_flags_ready.
1364         (cgraph_remove_unreachable_nodes): Remove unreachable nodes.
1365         * ipa-inline.c (cgraph_decide_inlining): Do not call
1366         cgraph_remove_unreachable_nodes.
1367
1368         * cgraphunit.c (cgraph_function_and_variable_visibility): Fix typo in
1369         previous patch.
1370
1371 2005-06-02  Diego Novillo  <dnovillo@redhat.com>
1372
1373         PR 21582
1374         * tree-vrp.c (nonnull_arg_p): New.
1375         (get_value_range): Call it.
1376
1377 2005-06-02  Eric Christopher  <echristo@redhat.com>
1378
1379         * config/mips/mips.h (processor_type): Remove PROCESSOR_DEFAULT,
1380         add PROCESSOR_MAX.
1381         (mips_rtx_cost_data): New datatype.
1382         (MEMORY_MOVE_COST): Use data from structure.
1383         (BRANCH_COST): Ditto.
1384         (LOGICAL_OP_NON_SHORT_CIRCUIT): Define to zero.
1385         * config/mips/mips.md (cpu): Rework for processor_type changes.
1386         * config/mips/mips.c (mips_cost): New variable.
1387         (DEFAULT_COSTS): Define.
1388         (mips_rtx_cost_data): New.
1389         (mips_rtx_costs): Use. Minor formatting changes. Use COSTS_N_INSNS
1390         for NEG cost. Add support for FLOAT, UNSIGNED_FLOAT, FIX,
1391         FLOAT_EXTEND, FLOAT_TRUNCATE, and SQRT.
1392         (override_options): Set cost data.
1393         (mips_register_move_cost): Formatting changes.
1394         (bdesc_arrays): Use PROCESSOR_MAX.
1395         (mips_init_builtins): Ditto.
1396
1397 2005-06-02  Diego Novillo  <dnovillo@redhat.com>
1398
1399         PR 21765
1400         * doc/invoke.texi: Document -ftree-vrp.
1401
1402 2005-06-02  Dorit Nuzman  <dorit@il.ibm.com>
1403
1404         PR tree-optimization/21734
1405         * tree-vectorizer.c (slpeel_update_phis_for_duplicate_loop): Use the
1406         phi_result when current_def is not available.
1407         (slpeel_update_phi_nodes_for_guard1): Don't fail if current_def is not
1408         available.      
1409
1410 2005-06-02  David Edelsohn  <edelsohn@gnu.org>
1411
1412         * config/rs6000/rs6000.c (rs6000_insn_valid_within_doloop): New.
1413         (TARGET_INSN_VALID_WITHIN_DOLOOP): Define.
1414
1415 2005-06-02  Diego Novillo  <dnovillo@redhat.com>
1416
1417         * tree-vrp.c (has_assert_expr, maybe_add_assert_expr): Remove.
1418
1419 2005-06-02  Jan Hubicka  <jh@suse.cz>
1420
1421         * cgraph.c (dump_cgraph_node): Print new flags.
1422         (dump_cgraph_varpool_node): Likewise.
1423         (decide_variable_is_needed): Initialize externally_visible flag.
1424         * cgraph.h (cgraph_local_info): Add externally_visible flag.
1425         (cgraph_varpool_node): Likewise.
1426         (cgraph_function_flags_ready): Declare.
1427         * cgraph.c (cgraph_mark_local_functions): Rename to ...
1428         (cgraph_function_and_variable_visibility) ... this one; handle
1429         externally_visible flags.
1430         (decide_is_function_needed): Set externally_visible flag.
1431         (cgraph_finalize_function): Deal properly with early cleanups.
1432         (cgraph_optimize): Update call of
1433         cgraph_function_and_variable_visibility.
1434
1435 2005-06-02 Steven Bosscher  <stevenb@suse.de>
1436            Mostafa Hagog <mustafa@il.ibm.com>
1437
1438         * cfgloop.h (doloop_condition_get): Make external.
1439         * loop-doloop.c (doloop_condition_get): Generalize to make it
1440         usable in modulo-sched.c.
1441         * modulo-sched.c (doloop_register_get): Use
1442         doloop_condition_get instead of duplicating it.
1443
1444 2005-06-02  Bernd Schmidt  <bernd.schmidt@analog.com>
1445
1446         * reload1.c (reload): Undo 2005-04-20 change.  Make sure we detect
1447         the correct set of init_insns that need deletion.
1448         * local-alloc.c (update_equiv_regs): When substituting sole definition
1449         into sole use of a reg, delete it from liveness information.
1450
1451 2005-06-02  Kaz Kojima  <kkojima@gcc.gnu.org>
1452
1453         * config/sh/sh.h (TARGET_FPU_DOUBLE): Use MASK_SH4.
1454
1455 2005-06-01  Diego Novillo  <dnovillo@redhat.com>
1456
1457         PR 14341, PR 21332, PR 20701, PR 21029, PR 21086, PR 21090
1458         PR 21289, PR 21348, PR 21367, PR 21368, PR 21458.
1459         * fold-const.c (invert_tree_comparison): Make extern.
1460         * tree-flow.h (enum value_range_type): Move to tree-ssa-propagate.
1461         (struct value_range_def): Limewise.
1462         (get_value_range): Remove.
1463         (dump_value_range): Remove.
1464         (dump_all_value_ranges): Remove.
1465         (debug_all_value_ranges): Remove.
1466         (vrp_evaluate_conditional): Declare.
1467         * tree-ssa-propagate.c (struct prop_stats_d): Add field
1468         num_pred_folded.
1469         (substitute_and_fold): Add argument use_ranges_p.
1470         Update all callers.
1471         If use_ranges_p is true, call fold_predicate_in to fold
1472         predicates using range information.
1473         Ignore ASSERT_EXPRs.
1474         Change debugging output to only show statements that have been
1475         folded.
1476         (replace_phi_args_in): Move debugging output code from
1477         substitute and fold.
1478         (fold_predicate_in): New local function.
1479         * tree-ssa-propagate.h (enum value_range_type): Move from
1480         tree-flow.h.
1481         (struct value_range_d): Likewise.
1482         Add field 'equiv'. 
1483         (value_range_t): Rename from value_range.
1484         * tree-vrp.c (found_in_subgraph): Rename from found.
1485         (get_opposite_operand): Remove.
1486         (struct assert_locus_d): Declare.
1487         (assert_locus_t): Declare.
1488         (need_assert_for): Declare.
1489         (asserts_for): Declare.
1490         (blocks_visited): Declare.
1491         (vr_value): Declare.
1492         (set_value_range): Add argument 'equiv'.
1493         Don't drop to VARYING ranges that cover all values in the
1494         type.
1495         Make deep copy of equivalence set 'equiv'.
1496         (copy_value_range): New local function.
1497         (set_value_range_to_undefined): New local function.
1498         (compare_values): Return -2 if either value has overflowed.
1499         (range_includes_zero_p): New local function.
1500         (extract_range_from_assert): Flip the predicate code if the
1501         name being asserted is on the RHS of the predicate.
1502         Avoid creating unnecessary symbolic ranges if the comparison
1503         includes another name with a known numeric range.
1504         Update the equivalnce set of the new range when asserting
1505         EQ_EXPR predicates.
1506         (extract_range_from_ssa_name): Update the equivalence set of
1507         the new range with VAR.
1508         (extract_range_from_binary_expr): Also handle TRUTH_*_EXPR.
1509         If -fwrapv is used, set the resulting range to VARYING if the
1510         operation overflows.  Otherwise, use TYPE_MIN_VALUE and
1511         TYPE_MAX_VALUE to represent -INF and +INF.
1512         Fix handling of *_DIV_EXPR.
1513         (extract_range_from_unary_expr): Handle MINUS_EXPR and
1514         ABS_EXPR properly by switching the range around if necessary.
1515         (extract_range_from_comparison): New local function.
1516         (extract_range_from_expr): Call it.
1517         (adjust_range_with_scev): Do not adjust the range if using
1518         wrapping arithmetic (-fwrapv).
1519         (dump_value_range): Also show equivalence set.
1520         Show -INF and +INF for TYPE_MIN_VALUE and TYPE_MAX_VALUE.
1521         (build_assert_expr_for): Also build ASSERT_EXPR for EQ_EXPR.
1522         (infer_value_range): Change return value to bool.
1523         Add arguments 'comp_code_p' and 'val_p'.
1524         Do not attempt to infer ranges from statements that may throw.
1525         Store the comparison code in comp_code_p.
1526         Store the other operand to be used in the predicate in val_p.
1527         (dump_asserts_for): New.
1528         (debug_asserts_for): New.
1529         (dump_all_asserts): New.
1530         (debug_all_asserts): New.
1531         (register_new_assert_for): New.
1532         (register_edge_assert_for): New.
1533         (find_conditional_asserts): New.
1534         (find_assert_locations): New.
1535         (process_assert_insertions_for): New.
1536         (process_assert_insertions): New.
1537         (insert_range_assertions): Initialize found_in_subgraph,
1538         blocks_visited, need_assert_for and asserts_for.
1539         Call find_assert_locations and process_assert_insertions.
1540         (remove_range_assertions): Add more documentation.
1541         (vrp_initialize): Change return type to void.
1542         Do not try to guess if running VRP is worth it.  
1543         (compare_name_with_value): New.
1544         (compare_names): New.
1545         (vrp_evaluate_conditional): Add argument 'use_equiv_p'.  If
1546         use_equiv_p is true, call compare_names and
1547         compare_name_with_value to compare all the ranges for every
1548         name in the equivalence set of the predicate operands.
1549         Update all callers.
1550         (vrp_meet): Try harder not to derive a VARYING range.
1551         If two values meet, the resulting equivalence set is the
1552         intersection of the two equivalence sets.
1553         (vrp_visit_phi_node): Call copy_value_range to get the current
1554         range information of the LHS.
1555         (vrp_finalize): Create a value vector representing all the
1556         names that ended up with exactly one value in their range.
1557         Call substitute_and_fold.
1558         (execute_vrp): Document equivalence sets in ranges.
1559         * tree.h (SSA_NAME_VALUE_RANGE): Remove.
1560         (struct tree_ssa_name): Remove field value_range.
1561         (invert_tree_comparison): Declare.
1562
1563 2005-06-01  Daniel Berlin  <dberlin@dberlin.org>
1564
1565         Fix PR tree-optimization/21839
1566
1567         * gimplify.c (zero_sized_field_decl): New function.
1568         (gimplify_init_ctor_eval): Use it.
1569
1570 2005-06-01  Josh Conner <jconner@apple.com>
1571
1572         PR 21478
1573         * gimplify.c (gimplify_init_constructor): Don't spill initializer
1574         to read-only memory if it's sparse.
1575
1576 2005-06-01  Ramana Radhakrishnan  <ramana@codito.com>
1577
1578         * doc/rtl.texi: Remove references to NOTE_INSN_SETJMP. 
1579         Add documentation for REG_SETJMP
1580
1581 2005-06-01  Richard Guenther  <rguenth@gcc.gnu.org>
1582
1583         * stmt.c (expand_case): Use build_int_cst.
1584         (node_has_low_bound): Likewise, and correct type mismatch.
1585         (node_has_high_bound): Likewise.
1586         * fold-const.c (fold_binary): Ensure we build trees
1587         with the correct types - undo what STRIP_NOPS possibly did.
1588
1589 2005-06-01  Richard Guenther  <rguenth@gcc.gnu.org>
1590
1591         * tree.h (fold_indirect_ref_1): Export from fold-const.c.
1592         * fold-const.c (fold_indirect_ref_1): No longer static.
1593         * tree-inline.c (copy_body_r): Use fold_indirect_ref_1 for
1594         folding, if possible.
1595
1596 2005-06-01  Joseph S. Myers  <joseph@codesourcery.com>
1597
1598         * common.opt (fjump-tables): New.
1599         * doc/invoke.texi (-fno-jump-tables): Document.
1600         * stmt.c (expand_end_case_type): Do not emit jump tables unless
1601         flag_jump_tables.
1602
1603 2005-06-01  Richard Earnshaw  <richard.earnshaw@arm.com>
1604
1605         * arm.md (bunordered, bordered, bungt, bunlt, bunge, bunle, buneq)
1606         (bltgt, arm_buneq, arm_bltgt, sunordered, sordered, sungt, sunge)
1607         (sunlt, sunle): Enable patterns on VFP.
1608
1609         * arm.md (attribute 'type'): Add new types - f_loads floadd, f_stores,
1610         f_stored, f_flag, f_cvt.
1611         (generic_sched): No-longer used for the arm1020e and arm1022e cores.
1612         Include arm1020e.md.
1613         * vfp.md (fmstat): New cpu unit.  Add an exclusion set between it and
1614         the ds and fmac pipelines.  Re-work all load and store patterns and
1615         all conversion patterns to use new attributes.  Adjust reservation
1616         descriptions accordingly.
1617         * arm1020e.md: New file.
1618         * t-arm: Add dependency.
1619
1620 2005-06-01  Jan Hubicka  <jh@suse.cz>
1621
1622         * except.c (struct eh_region): Kill unused fields.
1623         * basic-block.h (struct basic_block_def): Likewise.
1624
1625 2005-06-01  J"orn Rennecke <joern.rennecke@st.com>
1626
1627         PR rtl-optimization/21767
1628         * rtl.h (function_invariant_p): Re-add declaration.
1629         * reload1.c (function_invariant_p): No longer static.
1630         * ifcvt.c (dead_or_predicable): Remove REG_EQUAL notes that
1631         might have become invalid.
1632
1633 2005-06-01  Jakub Jelinek  <jakub@redhat.com>
1634
1635         PR c/21536
1636         PR c/20760
1637         * gimplify.c (gimplify_decl_expr): Call gimplify_type_sizes
1638         on variable sizes types if a decl is a pointer to a VLA.
1639         (gimplify_type_sizes): Handle POINTER_TYPE and REFERENCE_TYPE.
1640         Call gimplify_type_sizes on aggregate fields.  Prevent infinite
1641         recursion.
1642
1643         * fold-const.c (fold_ternary): Optimize BIT_FIELD_REF of VECTOR_CST.
1644
1645         * config/i386/xmmintrin.h (_mm_setzero_ps, _mm_set_ss, _mm_set1_ps,
1646         _mm_set_ps, _mm_setr_ps): Add __extension__.
1647         * config/i386/emmintrin.h (_mm_set_sd, _mm_set1_pd, _mm_set_pd,
1648         _mm_setr_pd, _mm_setzero_pd, _mm_set_epi64x, _mm_set_epi64x,
1649         _mm_set_epi32, _mm_set_epi16, _mm_set_epi8, _mm_setzero_si128):
1650         Likewise.
1651         (_mm_clflush): Don't use return in void function.
1652
1653         * config/i386/emmintrin.h (_mm_castpd_ps, _mm_castpd_si128,
1654         _mm_castps_pd, _mm_castps_si128, _mm_castsi128_ps, _mm_castsi128_pd):
1655         Use __inline instead of inline.
1656
1657 2005-06-01  Richard Guenther  <rguenth@gcc.gnu.org>
1658
1659         * fold-const.c (fold_binary): Fix types in strlen vs.
1660         zero comparison folding.
1661
1662 2005-06-01  Richard Henderson  <rth@redhat.com>
1663
1664         * configure.ac (HAVE_AS_JSRDIRECT_RELOCS): New.
1665         * config.in, configure: Rebuild.
1666         * config/alpha/alpha.c (print_operand): Add 'j'.
1667         * alpha.md (divmodsi_internal_er_1): Use it.
1668         (divmoddi_internal_er_1): Likewise.
1669
1670 2005-06-01  Richard Sandiford  <rsandifo@redhat.com>
1671
1672         * system.h (TARGET_OPTIONS, TARGET_SWITCHES): Poison.
1673         * opts.h (print_filtered_help): Delete.
1674         * opts.c (handle_option, decode_options): Remove calls to
1675         set_target_switch.
1676         (print_target_help): New function.
1677         (common_option, print_help): Call print_target_help instead of
1678         display_target_options.
1679         (print_filtered_help): Make static.
1680         * toplev.h (display_target_options, set_target_switch): Delete.
1681         * toplev.c (target_switches, target_options, display_target_options)
1682         (set_target_switch): Delete.
1683         (print_switch_values): Remove handling of TARGET_SWITCHES and
1684         TARGET_OPTIONS.
1685         (default_get_pch_validity): Likewise.  Only treat target_flags
1686         specially if targetm.check_pch_target_flags is nonnull.
1687         (pch_option_mismatch): New function.
1688         (default_pch_valid_p): Use it.  Remove handling of TARGET_SWITCHES
1689         and TARGET_OPTIONS.  Only treat target_flags specially if
1690         targetm.check_pch_target_flags is nonnull.
1691         * config/ia64/ia64.c (ia64_override_options): Don't mention
1692         TARGET_OPTIONS in comment.
1693         * config/m68k/m68k-none.h (CC1_SPEC): Likewise.
1694         * doc/invoke.texi: Remove a reference to TARGET_SWITCHES.
1695         * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS): Don't mention the
1696         interaction with TARGET_SWITCHES.
1697         (TARGET_@var{featurename}, TARGET_SWITCHES, TARGET_OPTIONS): Delete.
1698
1699 2005-06-01  Richard Sandiford  <rsandifo@redhat.com>
1700
1701         * config/sh/sh.c (multcosts): Check sh_multcost rather than
1702         sh_multcost_str.
1703         (sh_register_move_cost): Likewise sh_gettrcost and sh_gettrcost_str.
1704         (sh_multcost_str, sh_gettrcost_str, sh_div_str, sh_divsi3_libfunc)
1705         (cut2_workaround_str): Delete.
1706         * config/sh/sh.h (SUBTARGET_OPTIONS, TARGET_OPTIONS)
1707         (TARGET_SH5_CUT2_WORKAROUND, sh_multcost_str, sh_gettrcost_str)
1708         (sh_div_str, sh_divsi3_libfunc, cut2_workaround_str): Delete.
1709         * config/sh/sh.opt (mcut2-workaround, mdiv=, mdivsi3_libfunc=)
1710         (mgettrcost=, multcost=): New options.
1711
1712 2005-06-01  Richard Sandiford  <rsandifo@redhat.com>
1713
1714         * opts.h (cl_option_state): New structure.
1715         (get_option_state): Declare.
1716         * opts.c (get_option_state): New function.
1717         * toplev.c (option_affects_pch_p): New function.
1718         (default_get_pch_validity): Store the state of all options for which
1719         option_affects_pch_p returns true.
1720         (default_pch_valid_p): Check the state of those options here.
1721         Only check target_flags separately if targetm.check_pch_target_Flags
1722         is nonnull or if TARGET_SWITCHES is defined.
1723
1724 2005-06-01  Richard Sandiford  <rsandifo@redhat.com>
1725
1726         * config/mips/mips-protos.h (mips_use_ins_ext_p): Remove parameter
1727         names.
1728
1729 2005-06-01 Mostafa Hagog <mustafa@il.ibm.com>
1730
1731         * modulo-sched.c (undo_generate_reg_moves ): Fix PR 21138.
1732
1733 2005-06-01 Mostafa Hagog <mustafa@il.ibm.com>
1734
1735         * gcse.c (compute_transp, load_killed_in_block): Use 
1736         MEM_READONLY_P.
1737
1738 2005-06-01  David.Billinghurst  <David.Billinghurst@riotinto.com>
1739
1740         PR target/21854
1741         * config/mips/mips-protos.h: Declare mips_use_ins_ext_p
1742         
1743 2005-05-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1744
1745         * errors.h (warning, error, fatal, internal_error): Add printf
1746         attribute.
1747         * genmodes.c (make_vector_mode): Fix format arguments.
1748
1749 2005-05-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1750
1751         * basic-block.h, bb-reorder.c, c-gimplify.c, config/darwin.c,
1752         config/rs6000/rs6000-c.c, dominance.c, gimple-low.c, gimplify.c,
1753         lambda-code.c, lambda-trans.c, tree-browser.c, tree-cfg.c,
1754         tree-chrec.c, tree-data-ref.c, tree-dfa.c, tree-eh.c,
1755         tree-if-conv.c, tree-into-ssa.c, tree-loop-linear.c,
1756         tree-mudflap.c, tree-nomudflap.c, tree-outof-ssa.c,
1757         tree-pretty-print.c, tree-scalar-evolution.c, tree-sra.c,
1758         tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
1759         tree-ssa-dse.c, tree-ssa-forwprop.c, tree-ssa-live.c,
1760         tree-ssa-operands.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
1761         tree-ssa-propagate.c, tree-ssa-sink.c, tree-ssa-threadupdate.c,
1762         tree-ssa-uncprop.c, tree-ssa.c, tree-vect-analyze.c,
1763         tree-vect-transform.c, tree-vectorizer.c, vec.c: Don't include
1764         errors.h and include toplev.h if necessary.
1765         
1766         * rtl.c, varray.c: If we're compiling as a GENERATOR_FILE, include
1767         errors.h otherwise include toplev.h.
1768         
1769         * Makefile.in: Update dependencies.
1770         
1771 2005-06-01  Danny Smith  <dannysmith@users.sourceforge.net>
1772
1773         * config/i386/cygming.h (NO_PROFILE_COUNTERS): Define.
1774
1775 2005-05-31  Geoffrey Keating  <geoffk@geoffk.org>
1776
1777         * config/rs6000/rs6000.md (sync_boolcshort_internal): New.
1778         * config/rs6000/rs6000.c (rs6000_emit_sync): Shift count must
1779         be complemented for big-endian.  Mask for AND must be rotated,
1780         not shifted.  Handle short operands with NOT on the memory
1781         operation.
1782
1783 2005-05-30  Daniel Berlin  <dberlin@dberlin.org>
1784
1785         * c-objc-common.c (c_tree_printer): Check flag before hashtable.
1786         Use DECL_DEBUG_EXPR and SET_DECL_DEBUG_EXPR.
1787         * dwarf2out.c (dwarf2out_var_location): Ditto.
1788         * toplev.c (default_tree_printer): Ditto.
1789         * tree-outof-ssa.c (create_temp): Ditto.
1790         * tree-sra.c (instantiate_element): Ditto.
1791         * var-tracking.c (track_expr_p): Ditto.
1792         * tree.c (struct tree_map): New structure.
1793         (debug_expr_for_decl): New.
1794         (tree_map_eq): New function.
1795         (tree_map_hash): Ditto.
1796         (tree_map_marked_p): Ditto.
1797         (print_debug_expr_statistics): Ditto.
1798         (decl_debug_expr_lookup): Ditto.
1799         (decl_debug_expr_insert): Ditto.
1800         (dump_tree_statistics): Dump debug_expr hashtable stats.
1801         * tree.h (DECL_DEBUG_EXPR): Change
1802         (SET_DECL_DEBUG_EXPR): Add.
1803         
1804 2005-06-01  Alan Modra  <amodra@bigpond.net.au>
1805
1806         * configure.ac: Add --enable-secureplt.
1807         (HAVE_AS_REL16): Test for R_PPC_REL16 relocs.
1808         * config.in: Regenerate.
1809         * configure: Regenerate.
1810         * config.gcc (powerpc64-*-linux*, powerpc-*-linux*): Add
1811         rs6000/secureplt.h to tm_file when enable_secureplt.
1812         * doc/invoke.texi (msecure-plt, mbss-plt): Document.
1813         * doc/install.texi: Document --enable-targets and --enable-secureplt.
1814         Correct xrefs to "Using the GNU Compiler Collection (GCC)".
1815         * config/rs6000/secureplt.h: New file.
1816         * config/rs6000/sysv4.h (TARGET_SECURE_PLT): Define.
1817         (SUBTARGET_OVERRIDE_OPTIONS): Error if -msecure-plt given without
1818         assembler support.
1819         (CC1_SECURE_PLT_DEFAULT_SPEC): Define.
1820         (CC1_SPEC): Delete duplicate mno-sdata.  Invoke cc1_secure_plt_default.
1821         (SUBTARGET_EXTRA_SPECS): Add cc1_secure_plt_default.
1822         * config/rs6000/sysv4.opt (msecure-plt, bss-plt): Add options.
1823         * config/rs6000/rs6000.h (TARGET_SECURE_PLT): Define.
1824         * config/rs6000/rs6000.c (rs6000_emit_load_toc_table): Handle
1825         TARGET_SECURE_PLT got register load sequence.
1826         (rs6000_emit_prologue): Call rs6000_emit_load_toc_table when
1827         TARGET_SECURE_PLT.
1828         (rs6000_elf_declare_function_name): Don't emit toc address offset
1829         word when TARGET_SECURE_PLT.
1830         * config/rs6000/rs6000.md (elf_high, elf_low): Move past load_toc_*.
1831         (load_toc_v4_PIC_1) Enable for TARGET_SECURE_PLT.
1832         (load_toc_v4_PIC_3b, load_toc_v4_PIC_3c): New insns.
1833         (call, call_value): Mark pic_offset_table_rtx used for sysv pic and
1834         TARGET_SECURE_PLT.
1835         (call_nonlocal_sysv, call_value_nonlocal_sysv, sibcall_nonlocal_sysv,
1836         sibcall_value_nonlocal_sysv): Add 32768 offset when TARGET_SECURE_PLT
1837         and -fPIC.
1838         * config/rs6000/tramp.asm (trampoline_initial): Use "bcl 20,31".
1839         (__trampoline_setup): Likewise.  Init r30 before plt call.
1840
1841 2005-05-31  DJ Delorie  <dj@redhat.com>
1842
1843         * expr.c (convert_move): When a partial_int requires multiple
1844         conversion steps, make sure successive steps convert the
1845         intermediate value, not the original value.
1846
1847         * expmed.c (expand_mult): Convert partial_int multiplies to
1848         shift/add combinations too.
1849
1850         * genmodes.c (mode_data): Add wider_2x.
1851         (calc_wider_mode): Calculate twice-wider mode too.
1852         (emit_mode_wider): Emit twice-wider mode too.
1853         * machmode.h (mode_2xwider, GET_MODE_2XWIDER_MODE): New.
1854         * expr.c (expand_expr_real_1): Use it for expanding
1855         multiplies.
1856
1857 2005-05-31  Zdenek Dvorak  <dvorakz@suse.cz>
1858
1859         PR tree-optimization/21817
1860         * tree-ssa-loop-im.c (for_each_index): Handle VECTOR_CST.
1861
1862 2005-05-31  Pat Haugen  <pthaugen@us.ibm.com>
1863
1864         * loop.c (loop_invariant_p, valid_initial_value_p): Revert last
1865         change.
1866
1867 2005-05-31  Andrew Pinski  <pinskia@physics.uc.edu>
1868
1869         PR middle-end/20931
1870         PR middle-end/20946
1871         * fold-const.c (fold_checksum_tree): Copy types also if
1872         TYPE_CONTAINS_PLACEHOLDER_INTERNAL is set.
1873         Don't call fold_checksum_tree for TREE_LIST's TREE_CHAIN
1874         first.
1875         Tail recurse TREE_LIST's TREE_CHAIN.
1876
1877 2005-05-31  Andrew Pinski  <pinskia@physics.uc.edu>
1878
1879         PR tree-opt/21732
1880         * tree-ssa-copy.c (dump_copy_of): Create a bitmap and don't visit a
1881         SSA_NAME twice and cause the loop to become finite.  Remove the test
1882         for val.
1883
1884 2005-05-31  Andrew Pinski  <pinskia@physics.uc.edu>
1885
1886         * tree-cfg.c (verify_expr): Add checking for COND_EXPR's conditional
1887         expression.
1888
1889 2005-05-31  Richard Sandiford  <rsandifo@redhat.com>
1890
1891         * doc/tm.texi (TARGET_GET_PCH_VALIDITY, TARGET_PCH_VALID_P): Tweak
1892         the documentation to make it more future-proof.
1893         (TARGET_CHECK_PCH_TARGET_FLAGS): Document this new hook.
1894         * target.h (gcc_target): Add check_pch_target_flags.
1895         * target-def.h (TARGET_CHECK_PCH_TARGET_FLAGS): New macro.
1896         (TARGET_INITIALIZER): Include it.
1897         * toplev.c (default_pch_valid_p): Use targetm.check_pch_target_flags.
1898         * config/sh/sh-protos.h (sh_pch_valid_p): Delete.
1899         * config/sh/sh.c (TARGET_PCH_VALID_P, sh_pch_valid_p): Delete.
1900         (sh_check_pch_target_flags): New function.
1901         (TARGET_CHECK_PCH_TARGET_FLAGS): Override default.
1902
1903 2005-05-31  Richard Guenther  <rguenth@gcc.gnu.org>
1904
1905         * fold-const.c (extract_array_ref): Handle more cases,
1906         do some useful canonicalization of the base.
1907         (fold_binary): Explicitly deal with arrays of zero-sized
1908         structures during folding of &a[i] == &a[j].
1909
1910 2005-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
1911
1912         * doc/install.texi (sparc-sun-solaris2*): Update note
1913         about Sun bug 4910101.
1914         (sparc-sun-solaris2.7): Document bootstrap
1915         failure with Sun WorkShop 6 99/08/18 as.
1916
1917 2005-05-30  Pat Haugen  <pthaugen@us.ibm.com>
1918
1919         * loop.c (loop_invariant_p, valid_initial_value_p): Use
1920         regs_invalidated_by_call instead of call_used_regs.
1921
1922 2005-05-30  Paolo Carlini  <pcarlini@suse.de>
1923
1924         PR middle-end/21743
1925         * builtins.def (BUILT_IN_CLOG, BUILT_IN_CLOGF, BUILT_IN_CLOGL):
1926         Enable.
1927         * doc/extend.texi: Add clog, clogf, clogl.
1928
1929 2005-05-30  H.J. Lu  <hongjiu.lu@intel.com>
1930
1931         PR middle-end/20303
1932         * c-pragma.c: Include "vec.h".
1933         (handle_pragma_visibility): Use VEC.
1934
1935         * doc/invoke.texi: Remove the nested visibility push limit.
1936
1937 2005-05-30  Roger Sayle  <roger@eyesopen.com>
1938
1939         PR rtl-optimization/15422
1940         * reg-stack.c (starting_stack_p): New static global.
1941         (straighten_stack): Delete prototype. Change to update the stack
1942         before the current insn.
1943         (subst_stack_regs): Update call to straighten stack.
1944         (emit_swap_insn): Delete prototype.  For the first insn in a
1945         basic block, update stack_in instead of emitting a real swap.
1946         (change_stack): When changing the stack before the first insn
1947         in a basic block, update stack_in instead of emitting real code.
1948         (compensate_edges): Clear starting_stack_p during compensation.
1949         (convert_regs_1): Keep track of starting_stack_p whilst processing
1950         a basic block.
1951
1952 2005-05-30  Kazu Hirata  <kazu@cs.umass.edu>
1953
1954         * tree-ssa-ccp.c (const_val): Make it static.
1955
1956 2005-05-29  Geoffrey Keating  <geoffk@apple.com>
1957
1958         PR target/21761
1959         * config/rs6000/rs6000.md: Remove stray TARGET_32BIT from
1960         pattern involving `:P'.
1961
1962         * Makefile.in (install-cpp): Depend on installdirs.
1963
1964 2005-05-30  Kazu Hirata  <kazu@cs.umass.edu>
1965
1966         * tree-outof-ssa.c (_elim_graph): Change the type of edge_list
1967         to VEC(int,heap)*.
1968         (new_elim_graph, clear_elim_graph, delete_elim_graph,
1969         elim_graph_add_edge, elim_graph_remove_succ_edge,
1970         FOR_EACH_ELIM_GRAPH_SUCC, FOR_EACH_ELIM_GRAPH_PRED): Use VEC
1971         instead of VARRAY.
1972
1973 2005-05-29  Kazu Hirata  <kazu@cs.umass.edu>
1974
1975         * cgraphunit.c, ipa-inline.c, loop-iv.c, modulo-sched.c,
1976         opts.c, postreload-gcse.c, tree-browser.def, tree-eh.c,
1977         tree-ssa-copyrename.c, tree-vect-analyze.c: Fix typos and
1978         follow spelling conventions in error/dump messages.
1979
1980 2005-05-29  Roger Sayle  <roger@eyesopen.com>
1981             Richard Henderson  <rth@redhat.com>
1982
1983         * ifcvt.c (noce_emit_move_insn): Construct a SET pattern directly
1984         if the RHS isn't suitable for calling emit_move_insn.
1985
1986 2005-05-29  Kazu Hirata  <kazu@cs.umass.edu>
1987
1988         * tree-ssa-ccp.c (ccp_fold): Return immediately after calling
1989         fold_unary and fold_binary.
1990
1991 2005-05-29  Roger Sayle  <roger@eyesopen.com>
1992
1993         * reg-stack.c (propagate_stack): Always copy the source stack to
1994         the destination.  This routine is now only called when this is safe.
1995         (better_edge): New function split out from convert_regs_1 to
1996         determine which of two edges is better to propagate across.
1997         (convert_regs_1):  We need only search for a best edge if the
1998         stack layout hasn't been defined yet.  Use better_edge to help
1999         find beste.  No longer traverse unnecessary edges.
2000
2001 2005-05-29  Keith Besaw  <kbesaw@us.ibm.com>
2002
2003         * tree-ssa-alias.c (new_type_alias): New procedure to
2004         create a type memory tag for a pointer with a may-alias
2005         set determined from a variable declaration.
2006         * tree-flow.h: export declaration of new_type_alias
2007         * tree-optimize.c (init_tree_optimization_passes): document
2008         that pass_may_alias cannot be called after pass_vectorize.
2009         * tree-vect-transform (vect_create_data_ref_ptr): Call
2010         new_type_alias when an type memory tag isn't available
2011         for a reference.
2012         (vectorizable_store): Use copy_virtual_operands to update
2013         virtual defs in place (so that loop_version can be called).
2014         Call mark_for_renaming for the virtual defs in case peeling
2015         is done and virtual uses outside the loop need to be updated.
2016
2017 2005-05-29  Dorit Naishlos  <dorit@il.ibm.com>
2018
2019         PR tree-optimization/21639
2020         * tree-complex.c (pass_lower_vector_s): Remove TODO_ggc_collect.
2021
2022 2005-05-29  Jan Hubicka  <jh@suse.cz>
2023
2024         PR tree-optimization/21562
2025         * cfgexpand.c (construct_init_block): Deal properly with the case
2026         of entry edge not pointing to very first basic block.
2027
2028 2005-05-28  Kazu Hirata  <kazu@cs.umass.edu>
2029
2030         * tree-ssa-ccp.c (ccp_fold): Remove code that produces
2031         non-gimple min invariant.
2032
2033         * Makefile.in (OBJS-common): Add tree-cfgcleanup.o.
2034         * tree-flow.h: Add prototypes for start_recording_case_labels
2035         and end_recording_case_labels.
2036         * tree-cfg.c (start_recording_case_labels,
2037         end_recording_case_labels): Export.
2038         (cleanup_tree_cfg_loop, modified_noreturn_calls,
2039         cleanup_control_flow, cleanup_control_expr_graph,
2040         remove_fallthru_edge, phi_alternatives_equal,
2041         tree_forwarder_block_p, has_abnormal_incoming_edge_p,
2042         remove_forwarder_block, cleanup_forwarder_blocks,
2043         remove_forwarder_block_with_phi, merge_phi_nodes,
2044         gate_merge_phi, pass_merge_phi): Move to ...
2045         * tree-cfgcleanup.c: ... here.
2046
2047         * basic-block.h: Remove forward declaration of bb_ann_d.
2048
2049 2005-05-28  Jan Hubicka  <jh@suse.cz>
2050
2051         * tree-ssa-threadupdate.c: (create_edge_and_update_destination_phis):
2052         Update profile.
2053         * value-prof.c (tree_divmod_fixed_value_transform): Be more verbose in
2054         debug output.
2055         (tree_mod_subtract): Fix profile updating code.
2056         (tree_divmod_values_to_profile): Do not produce useless value profilers
2057         for divisions.
2058
2059 2005-05-28  Kazu Hirata  <kazu@cs.umass.edu>
2060
2061         * tree-ssa-dom.c (vrp_element_p): Define.
2062         (vrp_hash_elt): Change the type of records to
2063         VEC(vrp_element_p,heap).
2064         (vrp_free): New.
2065         (tree_ssa_dominator_optimize): Pass vrp_free to htab_create.
2066         Update uses of VRP records.
2067         (simplify_cond_and_lookup_avail_expr, record_range): Update
2068         uses of VRP records.
2069
2070         * tree-inline.c (cfun_stack): Change the type to
2071         VEC(function_p,heap).
2072         (push_cfun, pop_cfun): Use VEC instead of VARRAY.
2073
2074 2005-05-27  Ian Lance Taylor  <ian@airs.com>
2075
2076         * c-decl.c (add_stmt): Add C frontend specific version.
2077         (stmts_are_full_exprs_p): Remove.
2078         * c-common.h (STMT_IS_FULL_EXPR_P): Remove.
2079         (stmts_are_full_exprs_p): Don't declare.
2080         * c-semantics.c (add_stmt): Remove.
2081
2082 2005-05-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2083
2084         * config/mips/mips-protos.h (mips_declare_object): Add printf
2085         attribute.
2086         * config/mips/mips.c (mips_declare_object_name): Fix format
2087         argument.
2088
2089 2005-05-27  Roger Sayle  <roger@eyesopen.com>
2090
2091         * reg-stack.c (compensate_edge): Remove original prototype.
2092         (propagate_stack): New function to copy the stack layout
2093         at the start of a basic block from the layout at the end of
2094         one of its predecessors.
2095         (compensate_edge): Assume that both source and destination
2096         blocks have already had their stack layouts defined.
2097         (compensate_edges): Traverse all non-entry edges in the CFG
2098         and call compensate_edge on each in turn.
2099         (convert_regs_1): Change return type to void.  Call
2100         propagate_stack instead of compensate_edge.
2101         (convert_regs_2): Change return type to void.  Update call
2102         to convert_regs_1 to ignore the (now void) return value.
2103         (convert_regs): Update calls to convert_regs_2 to ignore
2104         the (now void) return value.  After all the basic blocks have
2105         been processed, call compensate_edges to actually emit new
2106         insns.
2107         (reg_to_stack): Initialize the aux info for each basic block
2108         with FOR_EACH_BB instead of which FOR_EACH_BB_REVERSE.
2109
2110 2005-05-28  Jan Hubicka  <jh@suse.cz>
2111
2112         * except.c (can_throw_internal_1, can_throw_external_1): Add 
2113         "is_resx" argument.
2114         (can_throw_external, can_throw_internal): Bring into sync wrt
2115         dealing resx.
2116         * except.h (can_throw_internal_1, can_throw_external_1): Update
2117         prototype.
2118         * tree-eh.c (tree_can_throw_internal, tree_can_throw_external):
2119         Deal properly with resx.
2120
2121 2005-05-27  Kazu Hirata  <kazu@cs.umass.edu>
2122
2123         * basic-block.h (basic_block_def): Add phi_nodes and
2124         predictions.  Remove tree_annotations.
2125         * predict.c (tree_predicted_by_p, tree_predict_edge,
2126         combine_predictions_for_bb): Adjust references to predictions.
2127         * tree-cfg.c (init_empty_tree_cfg, create_bb): Don't call
2128         create_block_annotation.
2129         (create_block_annotation, free_blocks_annotatios,
2130         clear_blocks_annotations): Remove.
2131         (dump_cfg_stats): Don't print out the memory spent on
2132         bb_ann_d.
2133         (delete_tree_cfg_annotations): Don't call free_blocks_annotations.
2134         * tree-flow-inline.h (bb_ann): Remove.
2135         (phi_nodes, set_phi_nodes): Update references to phi_nodes.
2136         * tree-flow.h (bb_ann_d): Remove.
2137         * tree-if-conv.c (process_phi_nodes): Update a reference to
2138         phi_nodes.
2139         * tree-phinodes.c (reserve_phi_args_for_new_edge,
2140         create_phi_node, remove_phi_node): Likewise.
2141         * tree-pretty-print.c (dump_generic_bb_buff): Don't call bb_ann.
2142         * tree-ssa-dom.c (threaded_blocks): New.
2143         (tree_ssa_dominator_optimize): Initialize, clear, and free
2144         threaded_blocks. Update a call to thread_through_all_blocks.
2145         (thread_across_edge): Use threaded_blocks instead of setting
2146         incoming_edge_threaded.
2147         * tree-ssa-threadupdate.c (threaded_through_all_blocks): Take
2148         a bitmap of blocks that are threaded through.
2149         * tree.h: Move the prototype of threaded_through_blocks to
2150         tree-flow.h.
2151
2152         * domwalk.c (walk_dominator_tree, init_walk_dominator_tree,
2153         fini_walk_dominator_tree): Use VEC instead of VARRAY.
2154         * domwalk.h (dom_walk_data): Change the type of
2155         block_data_stack and free_block_data to VEC(void_p,heap)*.
2156         * tree-ssa-dse.c (dse_initialize_block_local_data,
2157         dse_optimize_stmt, dse_record_phis, dse_finalize_block): Use
2158         VEC instead of VARRAY.
2159
2160 2005-05-27  Jan Hubicka  <jh@suse.cz>
2161
2162         * cgraph.c: Include tree-gimple.h
2163         (cgraph_edge): Rename expr to stmt.
2164         (cgraph_create_edge): Likewise.
2165         (cgraph_clone_node): Likewise.
2166         * cgraph.h (cgraph_node): Use call_stmt instead of call_expr.
2167         * cgraphunit.c (record_call_1): Rename to ...
2168         (record_reference): ... this one; do not build edges.
2169         (cgraph_varpool_analyze_pending_decls): Call record_reference directly.
2170         (current_basic_block): Kill.
2171         (cgraph_create_edges): Rewrite to work on gimple statements nicely.
2172         (verify_cgraph_node): Likewise.
2173         * tree-inline.c (copy_body_r): Do not mess up with cgraph edges.
2174         (copy_bb): Mess up with cgraph edges here; simplify EH handling.
2175         (copy_edges_for_bb): Simplify EH handling.
2176         (expand_call_inline): Pass statement to cgraph_edge and
2177         cgraph_create_edge.
2178
2179 2005-05-27  Richard Guenther  <rguenth@gcc.gnu.org>
2180
2181         * tree-inline.c (copy_body_r): Manually fold *& to deal
2182         with ADDR_EXPRs with mismatched types for now.
2183
2184         * gimplify.c (fold_indirect_ref_rhs): New function.
2185         (gimplify_modify_expr_rhs): Use it instead of pessimistic
2186         fold_indirect_ref.
2187
2188         * fold-const.c (fold_indirect_ref_1): Add type argument;
2189         make sure the resulting expression is of this type.
2190         (build_fold_indirect_ref, fold_indirect_ref): Adjust callers.
2191
2192 2005-05-27  Kazu Hirata  <kazu@cs.umass.edu>
2193
2194         PR tree-optimization/21658
2195         * tree-ssa-ccp.c (ccp_fold): Call fold_binary instead of
2196         fold_binary_to_constant.  Likewise, call fold_unary instead of
2197         fold_unary_to_constant.
2198
2199 2005-05-27  Nathan Sidwell  <nathan@codesourcery.com>
2200
2201         * vec.h: Implement integral type vector specialization.
2202         (VEC_T): Define a non-GTY structure.
2203         (VEC_T_GTY): Define a GTY structure.
2204         (VEC_TA): Rename to ...
2205         (VEC_TA_GTY): ... here.
2206         (DEF_VEC_I, DEF_VEC_ALLOC_I): New.
2207         (DEF_VEC_P, DEF_VEC_ALLOC_P): Adjust.
2208         (DEF_VEC_FUNC_P, DEF_VEC_ALLOC_FUNC_P): New, broken out of
2209         DEF_VEC_P and DEF_VEC_ALLOC_P.
2210         (DEF_VEC_O, DEF_VEC_ALLOC_O): Adjust.
2211         (DEF_VEC_FUNC_O, DEF_VEC_ALLOC_FUNC_O): New, broken out of
2212         DEF_VEC_O and DEF_VEC_ALLOC_O.
2213         * global.c: Use DEF_VEC_I, DEF_VEC_ALLOC_I.
2214         * lambda-code.c: Likewise.
2215         * tree-into-ssa.c: Likewise.
2216         * tree-ssa-live.c: Likewise.
2217
2218 2005-05-27  Kazu Hirata  <kazu@cs.umass.edu>
2219
2220         * tree-into-ssa.c (update_ssa): Ensure that the operand cache
2221         is up-to-date.
2222         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
2223         update_stmt_if_modified before calling update_ssa.
2224
2225 2005-05-27  Ralf Corsepius  <ralf.corsepius@rtems.org>
2226
2227         * config/rs6000/t-rtems: Remove roe multilib variant.
2228
2229 2005-05-26  Roger Sayle  <roger@eyesopen.com>
2230
2231         PR tree-optimization/9814
2232         * ifcvt.c (noce_emit_move_insn): If we fail to recognize the move
2233         instruction, add the necessary clobbers by re-expanding the RTL
2234         for arithmetic operations via optab.c's expand_unop/expand_binop.
2235         (noce_try_bitop): New function to optimize bit manipulation idioms
2236         of the form "if (x & C) x = x op C" and "if (!(x & C) x = x op C".
2237         (noce_process_if_block): Call noce_try_bitop.
2238
2239 2005-05-26  Roger Sayle  <roger@eyesopen.com>
2240
2241         * reg-stack.c (convert_regs_entry, convert_regs_exit,
2242         convert_regs_1, convert_regs_2, convert_regs): Delete prototypes.
2243         (reg_to_stack): Move to end of the file.  Initialize the per
2244         basic block information here, instead of...
2245         (convert_regs_entry): Here.
2246         (convert_regs): Change unused return type to void.
2247
2248 2005-05-27  Kazu Hirata  <kazu@cs.umass.edu>
2249
2250         * c-pch.c, timevar.c, timevar.h, unwind-compat.c,
2251         unwind-dw2-fde-compat.c, unwind-dw2-fde.c, config/mmix/mmix.h,
2252         config/rs6000/eabispe.h, config/rs6000/lynx.h,
2253         config/sh/elf.h, config/sh/symbian-pre.h,
2254         config/sparc/sparc-protos.h: Update copyright.
2255
2256 2005-05-26  Mike Stump  <mrs@apple.com>
2257
2258         * darwin.h (ASM_OUTPUT_LABELREF): Handle quoted non-lazy pointers
2259         for Objective-C++.
2260         
2261 2005-05-26  Richard Guenther  <rguenth@gcc.gnu.org>
2262
2263         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
2264         See through ADDR_EXPR in finding place to propagate into.
2265
2266 2005-05-26  Kazu Hirata  <kazu@cs.umass.edu>
2267
2268         * c-common.c, c-parser.c, cfgbuild.c, cfghooks.c, cfghooks.h,
2269         cfgrtl.c, cgraphunit.c, ddg.c, expr.h, gcse.c, ggc-page.c,
2270         ggc-zone.c, gimplify.c, ipa-inline.c, longlong.h, targhooks.c,
2271         tree-flow-inline.h, tree-pass.h, tree-ssa-dse.c,
2272         tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c,
2273         tree-ssa-operands.c, tree-vect-analyze.c,
2274         tree-vect-transform.c, tree-vectorizer.c, tree.c,
2275         config/arm/arm.c, config/bfin/bfin.c, config/frv/frv.c,
2276         config/frv/frv.md, config/i386/i386.c, config/i386/sse.md,
2277         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
2278         config/mcore/mcore.c, config/mips/mips.c, config/mips/mips.md,
2279         config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
2280         config/rs6000/rs6000.h, config/sh/sh.c, config/sh/sh.md,
2281         config/sh/ushmedia.h, config/sparc/sparc.c,
2282         config/sparc/sparc.md, config/stormy16/stormy-abi: Fix comment
2283         typos.  Follow spelling conventions.
2284         * doc/invoke.texi, doc/tm.texi, doc/tree-ssa.texi: Fix typos.
2285         Follow spelling conventions.
2286
2287 2005-05-26  David Ung  <davidu@mips.com>
2288
2289         * config/mips/mips.c (mips_use_ins_ext_p): New helper function
2290         that determines whether the MIPS32/64 R2 ext/ins should be used.
2291         * config/mips/mips.h (ISA_HAS_EXT_INS): New macro.
2292         * config/mips/mips.md (extzv): Changed predicate for operand to
2293         nonimmediate_operand. Add code to generate insn patterns for
2294         extzvsi and extzvdi.
2295         (extzv<mode>): New pattern to match mips32/64 r2 ext insn.
2296         (insv): Similarly for insertion.
2297         (insv<mode>): Similarly.
2298
2299 2005-05-26  Paolo Bonzini  <bonzini@gnu.org>
2300
2301         * simplify-rtx.c (avoid_constant_pool_reference): Support
2302         offsetted addresses in the constant pool.
2303
2304 2005-05-26  Paolo Bonzini  <bonzini@gnu.org>
2305
2306         * df.h (DF_SUBREGS, df_local_def_available_p, df_insn_modified_p): New.
2307         * df.c (DF_SUBREGS, df_local_def_available_p, df_insn_modified_p): New.
2308
2309 2005-05-26  Jakub Jelinek  <jakub@redhat.com>
2310
2311         PR target/21716
2312         * reg-stack.c (swap_rtx_condition): Don't crash if %ax user was not
2313         found in the basic block and last insn in the basic block is not
2314         INSN_P.  Remove explicit unspec numbers that are no longer valid
2315         from comments.
2316
2317 2005-05-26  Paolo Bonzini  <bonzini@gnu.org>
2318
2319         * tree-vect-transform.c (vectorizable_operation): Try word_mode
2320         vectorization if UNITS_PER_WORD == UNITS_PER_SIMD_WORD, even
2321         if a vector mode is available.
2322
2323 2005-05-25  Roger Sayle  <roger@eyesopen.com>
2324
2325         PR middle-end/21709
2326         * fold-const.c (const_binop): Check for division by zero during
2327         complex division.
2328
2329 2005-05-26  Ian Lance Taylor  <ian@airs.com>
2330
2331         * reload1.c (verify_initial_elim_offsets): Add braces to avoid
2332         having a declaration after a statement.
2333
2334 2005-05-26  Richard Sandiford  <rsandifo@redhat.com>
2335
2336         * opt-functions.awk (var_type): New function.
2337         (var_set): Use CLVC_STRING if var_type returns "const char *".
2338         * opth-gen.awk: Use var_type to find out the types of variables.
2339         Don't print comments above each "extern" definition.
2340         * optc-gen.awk: Use var_type in the same way.
2341         * opts.h (cl_var_cond): Rename to...
2342         (cl_var_type): ...this.  Add CLVC_STRING.
2343         (cl_option): Make "flag_var" a "void *" pointer.  Replace "var_cond"
2344         with "var_type".
2345         * opts.c (handle_option, option_enabled): Update after above name
2346         change.  Cast flag_var before using it.  Handle CLVC_STRING.
2347         
2348         * config/alpha/alpha.h (alpha_tls_size): Delete.
2349         * config/alpha/alpha.c (alpha_tls_size, alpha_cpu_string)
2350         (alpha_tune_string, alpha_tp_string, alpha_fprm_string)
2351         (alpha_fptm_string, alpha_mlat_string): Delete.
2352         (alpha_handle_option): Don't set the above variables here.  Use the
2353         integer argument to check the validity of -mtls-size=.
2354         * config/alpha/alpha.opt (mcpu=, mtune=, mfp-rounding-mode=)
2355         (mfp-trap-mode=, mtrap-precision=, mmemory-latency=): Add Var()s.
2356         (mtls-size=): Likewise.  Convert to a UInteger and initialize the
2357         variable to 32.
2358
2359         * config/arc/arc.c (arc_cpu_string, arc_text_string)
2360         (arc_data_string, arc_rodata_string): Delete.
2361         (arc_handle_option): Don't set the above variables here.
2362         * config/arc/arc.opt (mcpu=, mtext=, mdata=, mrodata=): Add Var()s
2363         and initialize them.
2364
2365         * config/arm/arm.c (target_fpu_name, target_fpe_name)
2366         (target_float_abi_name, target_abi_name, structure_size_string)
2367         (arm_pic_register_string): Delete.
2368         (arm_handle_option): Don't set the above variables here, except
2369         in the handling of -mhard-float and -msoft-float.
2370         * config/arm/arm.opt (mabi=, mfloat-abi=, mfp=, mfpe=, mfpu=)
2371         (mpic-register=, mstructure-size-boundary=): Add Var()s.
2372
2373         * config/avr/avr.c (avr_init_stack, avr_mcu_name, TARGET_HANDLE_OPTION)
2374         (avr_handle_option): Delete.
2375         * config/avr/avr.opt (mmcu=, minit-stack=): Add Var()s and initialize
2376         them.
2377
2378         * config/bfin/bfin.c (bfin_library_id): Delete.
2379         (bfin_handle_option): Don't set it.
2380         * config/bfin/bfin.opt (mshared-library-id=): Add Var().
2381
2382         * config/c4x/c4x.h (c4x_rpts_cycles): Delete.
2383         * config/c4x/c4x.c (c4x_rpts_cycles): Delete.
2384         (c4x_handle_option): Don't set c4x_rpts_cycles here.
2385         * config/c4x/c4x.opt (mrpts=): Add Var().
2386
2387         * config/cris/aout.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't set
2388         cris_elinux_stacksize_str here.
2389         * config/cris/aout.opt (melinux-stacksize=): Add Var().
2390         * config/cris/cris.h (cris_max_stackframe_str, cris_cpu_str)
2391         (cris_tune_str, cris_elinux_stacksize_str): Delete.
2392         * config/cris/cris.c (cris_max_stackframe_str, cris_cpu_str)
2393         (cris_tune_str, cris_elinux_stacksize_str): Delete.
2394         (cris_handle_option): Don't set the above variables here.
2395         * config/cris/cris.opt (mcpu=, march=, mtune=, mmax-stackframe=)
2396         (max-stackframe=): Add Var()s.
2397
2398         * config/i386/i386.h (ix86_tune_string, ix86_arch_string): Delete.
2399         * config/i386/i386.c (ix86_cmodel_string, ix86_asm_string)
2400         (ix86_tls_dialect_string, ix86_tune_string, ix86_arch_string)
2401         (ix86_fpmath_string, ix86_regparm_string, ix86_align_loops_string)
2402         (ix86_align_jumps_string, ix86_preferred_stack_boundary_string)
2403         (ix86_branch_cost_string, ix86_align_funcs_string): Delete.
2404         (ix86_handle_option): Don't set the above variables here.
2405         * config/i386/i386.opt (malign-functions=, malign-jumps=)
2406         (malign-loops=, march=, masm=, mbranch-cost=, mcmodel=, mfpmath=)
2407         (mpreferred-stack-boundary=, mregparm=, mtls-dialect=, mtune=): Add
2408         Var()s.
2409
2410         * config/ia64/ia64.h (ia64_tls_size): Delete.
2411         * config/ia64/ia64.c (ia64_tls_size): Delete.
2412         (ia64_handle_option): Treat -mtls-size= as a UInteger option,
2413         reading the integer argument from the "value" parameter.  Don't
2414         set ia64_tls_size here.
2415         * config/ia64/ia64.opt (mtls-size=): Turn into a UInteger option.
2416         Add Var() and Init().
2417
2418         * config/m32r/m32r.h (m32r_cache_flush_func): Delete.
2419         (m32r_cache_flush_trap): Delete.
2420         * config/m32r/m32r.c (m32r_cache_flush_func): Delete.
2421         (m32r_cache_flush_trap): Delete.
2422         (m32r_handle_option): Don't set the above variables when handling
2423         -mflush-func= and -mflush-trap=.
2424         * config/m32r/m32r.opt (-mflush-func=, -mflush-trap=): Add Var()s
2425         and Init()s.
2426
2427         * config/mips/mips.h (mips_cache_flush_func): Delete.
2428         * config/mips/mips.c (mips_arch_string, mips_tune_string)
2429         (mips_cache_flush_func): Delete.
2430         (mips_handle_option): Don't set the above variables when handling
2431         -march=, -mtune= and -mflush-func=.
2432         * config/mips/mips.opt (march=, mflush-func=, mtune=): Add Var()s.
2433
2434         * config/s390/s390.c (s390_arch_string): Delete.
2435         (s390_handle_option): Don't set it here.
2436         * config/s390/s390.opt (march=): Add Var().
2437
2438         * config/sparc/sparc.h (sparc_cmodel_string): Delete.
2439         * config/sparc/sparc.c (sparc_cmodel_string): Delete.
2440         (sparc_handle_option): Don't set it here.
2441         * config/sparc/sparc.opt (mcmodel=): Add Var().
2442
2443 2005-05-25  Roger Sayle  <roger@eyesopen.com>
2444
2445         * convert.c (convert_to_integer) <POINTER_TYPE>: Avoid recursive
2446         call to convert_to_integer by building the NOP_EXPR directly.
2447
2448 2005-05-25  Richard Sandiford  <rsandifo@redhat.com>
2449
2450         * config/rs6000/rs6000.opt (mprioritize-restricted-insns=): Fix typo.
2451
2452 2005-05-25  Daniel Berlin  <dberlin@dberlin.org>
2453             Jeff Law  <law@redhat.com>
2454
2455         * tree-cfg.c (verify_expr, case ADDR_EXPR): Verify invariant,
2456         constant and side_effects of the ADDR_EXPR are consistent.
2457
2458         * tree-nested.c (convert_local_reference): Set CURRENT_FUNCTION_DECL
2459         appropriately around calls to recompute_tree_invarant_for_addr_expr.
2460
2461 2005-05-25  Ulrich Weigand  <uweigand@de.ibm.com>
2462
2463         * config/s390/s390.c (GP_ARG_NUM_REG, FP_ARG_NUM_REG): New defines.
2464         (s390_function_arg, s390_gimplify_va_arg): Use them.
2465         (s390_register_info): Save only required subset of argument
2466         registers into save area for va_list.
2467         (s390_va_start): Initialize only required elements of va_list struct.
2468         (s390_build_builtin_va_list): Set va_list_[gf]pr_counter_field.
2469
2470 2005-05-25  Ulrich Weigand  <uweigand@de.ibm.com>
2471
2472         * reload1.c (verify_initial_elim_offsets): Return boolean status
2473         instead of aborting.
2474         (reload): Adapt verify_initial_elim_offsets call site.  Restart
2475         main loop if some initial elimination offsets changed.
2476
2477 2005-05-25  Adam Nemet  <anemet@lnxw.com>
2478
2479         * config/rs6000/lynx.h (CC1_SPEC): Use -maix-struct-return instead
2480         of -mno-svr4-struct-return.
2481
2482 2005-05-25  Daniel Berlin  <dberlin@dberlin.org>
2483
2484         Fix PR tree-optimization/21705
2485         
2486         * tree-ssa-pre.c (in_fre): New static variable.
2487         (create_value_expr_from): Recursively value number reference ops
2488         in argument lists.
2489         (can_value_number_call): Temporary restrict only exists for
2490         PRE, not FRE.
2491
2492 2005-05-25  Kazu Hirata  <kazu@cs.umass.edu>
2493
2494         * tree-into-ssa.c (rewrite_into_ssa, update_ssa): Replace
2495         sizeof (bitmap *) with sizeof (bitmap).
2496
2497 2005-05-25  Daniel Berlin <dberlin@dberlin.org>
2498
2499         * lambda-code.c (perfect_nestify): Call update_stmt on the exit
2500         condition.
2501
2502 2005-05-25  Adrian Straetling  <straetling@de.ibm.com>
2503
2504         * config/s390/s390.c (TARGET_INSN_VALID_WITHIN_DOLOOP): Set to
2505         hook_bool_rtx_true.
2506
2507 2005-05-25  Jan Hubicka  <jh@suse.cz>
2508
2509         * Makefile.in (ipa-inline.o): Add COEVERAGE_H dependency.
2510         * cgraph.c (cgraph_create_node): Reset estimated_growth.
2511         * cgraph.h (cgraph_global_info): Add estimated_growth.
2512         * ipa-inline.c: Include coverage.h
2513         (max_insns, max_count): New static variables.
2514         (cgraph_estimate_size_after_inlining): Cache the result.
2515         (cgraph_estimate_growth):
2516         * passes.c (rest_of_clean_state): Kill coverage_end_function.
2517         * timevar.def (TV_INLINE_HEURISTICS): New timevar.
2518         * tree-optimize.c (init_tree_optimization_passes): Move profiling before
2519         inlining.
2520         (ipa_passes): Initialize bitmaps.
2521
2522 2005-05-25  Adrian Straetling  <straetling@de.ibm.com>
2523
2524         * loop-doloop.c: Include "target.h". 
2525           (doloop_valid_p): Move tests to function in targhooks.c.
2526         * target.h (struct gcc_target): New target hook
2527           "insn_valid_within_doloop".
2528         * target-def.h: Define default value for "insn_valid_within_doloop".
2529           (TARGET_INITIALIZER): Insert new target hook into initializer.
2530         * targhooks.c (default_insn_valid_within_doloop): New function.
2531         * targhooks.h (default_insn_valid_within_doloop): Declare.
2532         * hooks.c (hook_bool_rtx_true): New function.
2533         * hooks.h (hook_bool_rtx_true): Declare.
2534         * doc/tm.texi: Add documentation for new target hook.
2535
2536 2005-05-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
2537
2538         PR target/21412
2539         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): New macro
2540         * config/sparc/sparc-protos.h (tls_symbolic_operand): Delete.
2541         (sparc_tls_referenced_p): New prototype.
2542         * config/sparc/sparc.c (tls_symbolic_operand): Delete.
2543         (sparc_expand_move): Look for TLS addresses with constant offsets.
2544         (legitimate_constant_p): Use SPARC_SYMBOL_REF_TLS_P instead of
2545         tls_symbolic_operand.
2546         (legitimate_pic_operand_p): Likewise.
2547         (legitimate_address_p): Likewise.
2548         (legitimize_address): Likewise.
2549         (sparc_tls_symbol_ref_1): New function.
2550         (sparc_tls_referenced_p): New function.
2551         * config/sparc/predicates.md (tgd_symbolic_operand): Use
2552         SYMBOL_REF_TLS_MODEL instead of tls_symbolic_operand.
2553         (tld_symbolic_operand): Likewise.
2554         (tie_symbolic_operand): Likewise.
2555         (tle_symbolic_operand): Likewise.
2556
2557 2005-05-24  DJ Delorie  <dj@redhat.com>
2558         
2559         * common.opt (-Wattributes): New.  Default true.
2560         * doc/invoke.texi (-Wno-attributes): Document.
2561         
2562         * attribs.c (decl_attributes): Move warning control from if() to
2563         warning(OPT_*).
2564         * c-common.c (handle_packed_attribute): Likewise.
2565         (handle_nocommon_attribute): Likewise.
2566         (handle_common_attribute): Likewise.
2567         (handle_noreturn_attribute): Likewise.
2568         (handle_noinline_attribute): Likewise.
2569         (handle_always_inline_attribute): Likewise.
2570         (handle_used_attribute): Likewise.
2571         (handle_unused_attribute): Likewise.
2572         (handle_const_attribute): Likewise.
2573         (handle_transparent_union_attribute): Likewise.
2574         (handle_constructor_attribute): Likewise.
2575         (handle_destructor_attribute): Likewise.
2576         (handle_mode_attribute): Likewise.
2577         (handle_alias_attribute): Likewise.
2578         (handle_visibility_attribute): Likewise.
2579         (handle_tls_model_attribute): Likewise.
2580         (handle_malloc_attribute): Likewise.
2581         (handle_returns_twice_attribute): Likewise.
2582         (handle_pure_attribute): Likewise.
2583         (handle_deprecated_attribute): Likewise.
2584         (handle_vector_size_attribute): Likewise.
2585         (handle_nothrow_attribute): Likewise.
2586         (handle_cleanup_attribute): Likewise.
2587         (handle_warn_unused_result_attribute): Likewise.
2588         (handle_sentinel_attribute): Likewise.
2589         * c-decl.c (diagnose_mismatched_decls): Likewise.
2590         (start_decl): Likewise.
2591         (grokdeclarator): Likewise.
2592         (start_function): Likewise.
2593         * c-format.c (check_function_format): Likewise.
2594         * stor-layout.c (place_field): Likewise.
2595         (finalize_record_size): Likewise.
2596         * tree.c (handle_dll_attribute)): Likewise.
2597         * varasm.c (default_assemble_visibility): Likewise.
2598         * config/darwin.c (darwin_handle_weak_import_attribute): Likewise.
2599         (darwin_assemble_visibility): Likewise.
2600         * config/arc/arc.c (arc_handle_interrupt_attribute): Likewise.
2601         * config/arm/arm.c (arm_handle_fndecl_attribute): Likewise.
2602         (arm_handle_isr_attribute): Likewise.
2603         * config/avr/avr.c (avr_handle_progmem_attribute): Likewise.
2604         (avr_handle_fndecl_attribute): Likewise.
2605         * config/bfin/bfin.c (handle_int_attribute): Likewise.
2606         * config/c4x/c4x.c (c4x_handle_fntype_attribute): Likewise.
2607         * config/h8300/h8300.c (h8300_handle_fndecl_attribute): Likewise.
2608         (h8300_handle_eightbit_data_attribute): Likewise.
2609         (h8300_handle_tiny_data_attribute): Likewise.
2610         * config/i386/i386.c (ix86_handle_cdecl_attribute): Likewise.
2611         (ix86_handle_regparm_attribute): Likewise.
2612         (ix86_handle_struct_attribute): Likewise.
2613         * config/i386/winnt.c (ix86_handle_shared_attribute): Likewise.
2614         (i386_pe_encode_section_info): Likewise.
2615         * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
2616         * config/ip2k/ip2k.c (ip2k_handle_progmem_attribute): Likewise.
2617         (ip2k_handle_fndecl_attribute): Likewise.
2618         * config/m32r/m32r.c (m32r_handle_model_attribute): Likewise.
2619         * config/m68hc11/m68hc11 (m68hc11_handle_page0_attribute): Likewise.
2620         (m68hc11_handle_fntype_attribute): Likewise.
2621         (m68hc11_encode_section_info): Likewise.
2622         * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
2623         * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
2624         * config/ns32k/ns32k.c (ns32k_handle_fntype_attribute): Likewise.
2625         * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute): Likewise.
2626         * config/sh/sh.c (sh_handle_interrupt_handler_attribute): Likewise.
2627         (sh_handle_sp_switch_attribute): Likewise.
2628         (sh_handle_trap_exit_attribute): Likewise.
2629         * config/sh/symbian.c (sh_symbian_dllimport_p): Likewise.
2630         (sh_symbian_handle_dll_attribute): Likewise.
2631         * config/stormy16/stormy16.c (xstormy16_handle_interrupt_attribute): Likewise.
2632         (xstormy16_handle_below100_attribute): Likewise.
2633         * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
2634
2635         * c-common.c (unsigned_conversion_warning): Move warning control
2636         from if() to warning(OPT_*).
2637         (c_common_truthvalue_conversion): Likewise.
2638         (c_do_switch_warnings): Likewise.
2639         * c-decl.c (diagnose_mismatched_decls): Likewise.
2640         (diagnose_mismatched_decls): Likewise.
2641         (define_label): Likewise.
2642         (grokdeclarator): Likewise.
2643         * c-format.c (check_format_info): Likewise.
2644         * c-lex.c (interpret_integer): Likwise.
2645         (lex_string): Likewise.
2646         * c-opts.c (c_common_post_options): Likewise.
2647         * c-parser.c (c_parser_unary_expression): Likewise.
2648         * c-pragma.c (handle_pragma_redefine_extname): Likewise.
2649         (handle_pragma_extern_prefix): Likewise.
2650         * c-typeck.c (build_binary_op): Likewise.
2651         * gcse.c (is_too_expensive): Likewise.
2652         * opts.c (decode_options): Likewise.
2653         * stor-layout.c (place_field): Likewise.
2654         * tree-cfg.c (remove_bb): Likewise.
2655
2656         * c.opt (-Wreturn-type): Add Var(warn_return_type).
2657         * flags.h (warn_return_type): Remove.
2658         * toplev.c (warn_return_type): Likewise.
2659
2660 2005-05-24  Kelley Cook  <kcook@gcc.gnu.org>
2661
2662         * configure.ac: Don't use gcc_AC_C_LONG_LONG.  Check for
2663         existence of long long and __int64 before determining their size.
2664         * aclocal.m4: Delete gcc_AC_C_LONG_LONG.
2665         * configure, config.h.in:  Regenerate.
2666
2667 2005-05-24  Kelley Cook  <kcook@gcc.gnu.org>
2668
2669         * configure: Regenerate.
2670
2671 2005-05-24  Ziemowit Laski  <zlaski@apple.com>
2672
2673         * c-common.h (objc_comptypes): Remove prototype.
2674         (objc_compare_types): New prototype.
2675         (objc_volatilized_decl): Likewise.
2676         (objc_type_quals_match): Likewise.
2677         * c-decl.c (objc_mark_locals_volatile): Streamline by calling
2678         objc_volatilize_decl().
2679         * c-typeck.c (comp_target_types): Remove third parameter; do
2680         not call objc_comptypes().
2681         (comptypes): Remove calls to objc_comptypes().
2682         (build_function_call): Extend compatible prototype check to ObjC.
2683         (build_conditional_expr): Adjust call to comp_target_types().
2684         (convert_for_assignment): Call objc_compare_types() instead of
2685         objc_comptypes(); adjust calls to comp_target_types(); call
2686         objc_type_quals_match() before issuing qualifier mismatch
2687         warnings.
2688         (build_binary_op): Call objc_compare_types() before issuing
2689         pointer mismatch warnings; adjust calls to
2690         comp_target_types().
2691         * stub-objc.c (objc_comptypes): Remove stub.
2692         (objc_compare_types): New stub.
2693         (objc_volatilized_decl): Likewise.
2694         (objc_type_quals_match): Likewise.
2695
2696 2005-05-24  Paolo Carlini  <pcarlini@suse.de>
2697
2698         * config/ia64/ia64intrin.h: Define nothing for C++:
2699         overloaded builtins have been ported to C++.
2700
2701 2005-05-24  Jeff Law  <law@redhat.com>
2702
2703         * tree-nested.c (build_addr): New "context" argument.  Temporarily
2704         set current_function_decl around the call to build the ADDR_EXPR.
2705         (get_static_chain): Pass proper context to build_addr.
2706         (convert_nl_goto_reference): Likewise.
2707         (convert_tramp_reference): Likewise.
2708         (final_nesting_tree_1): Likewise.
2709         * tree-profile.c (tree_gen_interval_profiler): Likewise.
2710         (tree_gen_pow2_profiler): Likewise.
2711         (tree_gen_one_value_profiler): Likewise.
2712         * tree-ssa-loop-ivopts.c (build_addr_strip_iref): Likewise.
2713         * tree.h (build_addr): Update prototype.
2714
2715 2005-05-24  Kazu Hirata  <kazu@cs.umass.edu>
2716
2717         * tree-flow.h (bb_ann_d): Remove has_escape_site.
2718         * tree-ssa-alias.c (compute_points_to_addr_escape): Don't
2719         write to has_escape_site.
2720
2721 2005-05-24  Jeff Law  <law@redhat.com>
2722
2723         * Makefile.in (tree-cfg.o): Depend on tree-ssa-propagate.h.
2724         * tree-cfg.c: Include tree-ssa-propagate.h.
2725         (replace_uses_by): Call recompute_tree_invarant_for_addr_expr as
2726         needed.
2727
2728 2005-05-24  Nick Clifton  <nickc@redhat.com>
2729
2730         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
2731         __NO_FPRS__ when 'f' class registers will not be available. 
2732
2733 2005-05-24  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
2734
2735         * config/m32r/m32r.c (m32r_expand_block_move):  Return 0 if
2736         nothing was done.
2737         * config/m32r/m32r.md (movmemsi):  If m32r_expand_block_move did
2738         nothing then FAIL.
2739         * config/m32r/m32r/m32r-protos.h  (m32r_expand_block_move): Update
2740         prototype.
2741
2742 2005-05-23  Jeff Law  <law@redhat.com>
2743
2744         * tree-ssa-dom.c (cprop_into_stmt): Do not call
2745         recompute_tree_invariant_for_addr_expr here.
2746         (optimize_stmt): Call it here instead and do so if anything
2747         at all has changed in the statement and the RHS is an ADDR_EXPR.
2748         * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): If
2749         needed, call recompute_tree_invariant_for_addr_expr.
2750         * tree-ssa-propagate.c (substitute_and_fold): Call
2751         recompute_tree_invariant_for_addr_expr as needed.
2752
2753 2005-05-23  Andreas Krebbel  <krebbel1@de.ibm.com>
2754
2755         * config/s390/s390.c (s390_optimize_prologue): Don't replace an insn
2756         saving less registers than the replacement.
2757
2758 2005-05-23  Jan Hubicka  <jh@suse.cz>
2759
2760         * tree-flow.h (stmt_ann_d): Kill GTY ((skip)) mark on BB.
2761
2762 2005-05-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
2763
2764         * config/sparc/sparc-protos.h (sparc_expand_move): New prototype.
2765         * config/sparc/sparc.c (sparc_expand_move): New function.
2766         (sparc_emit_set_const64): Rewrite assert condition on entry.
2767         (legitimate_constant_p) <CONST_VECTOR>: New case.
2768         (legitimize_pic_address): Use TARGET_ARCH64 to select the mode.
2769         * config/sparc/sparc.md (movqi, movhi, movsi, movdi, movV32,
2770         movV64, movtf): Use nonimmediate_operand for the first operand.
2771         Rewrite.  Only invoke sparc_expand_move.
2772         * config/sparc/predicates.md (input_operand): Reorder tests.
2773
2774 2005-05-23  Jan Beulich  <jbeulich@novell.com>
2775
2776         * gthr-posix.h (__gthread_recursive_mutex_init_function): Add
2777         missing return statement.
2778
2779 2005-05-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
2780
2781         * config/sparc/sparc.c (sparc_emit_float_lib_cmp): Use
2782         emit_move_insn for moves to TFmode stack slots.
2783
2784 2005-05-21  Richard Guenther  <rguenth@gcc.gnu.org>
2785
2786         * tree-stdarg.c (execute_optimize_stdarg): Handle references
2787         to va_list of the form &va[0].
2788
2789 2005-05-20  Jan Hubicka  <jh@suse.cz>
2790
2791         * Makefile.in (insn-emit.o): Add basic-block.h dependency.
2792         * genemit.c (main): Make insn-emit to include basic-block.h too.
2793
2794 2005-05-20  Jan Hubicka  <jh@suse.cz>
2795
2796         * cgraphunit.c (cgraph_expand_function): Force function being lowered.
2797
2798 2005-05-19  Richard Henderson  <rth@redhat.com>
2799
2800         * config/alpha/alpha.c (emit_unlikely_jump, emit_load_locked,
2801         emit_store_conditional): Split out from ...
2802         (alpha_split_atomic_op): ... here.
2803         (alpha_split_compare_and_swap): New; extract from .md file.
2804         (alpha_split_lock_test_and_set): Likewise.
2805         * config/alpha/alpha-protos.h: Update.
2806         * config/alpha/sync.md (sync_compare_and_swap<I48MODE>): Move
2807         split code into alpha.c.
2808         (sync_lock_test_and_set<I48MODE>): Likewise.
2809
2810 2005-05-19  Richard Henderson  <rth@redhat.com>
2811
2812         * unwind.h, unwind-pe.h: Revert gcc_unreachable change of 05-17.
2813
2814 2005-05-19  Richard Henderson  <rth@redhat.com>
2815
2816         * config/i386/sse.md (mulv4si3): Use all register inputs.
2817         (mulv2di3): Likewise.
2818
2819 2005-05-19  Richard Guenther  <rguenth@gcc.gnu.org>
2820
2821         * tree-ssa-loop-ivopts.c (determine_base_object): Use
2822         build_fold_addr_expr to generate trees of correct type.
2823         Use fold_buildN if possible.
2824
2825 2005-05-19  Jan Hubicka  <jh@suse.cz>
2826
2827         * basic-block.h (REG_BR_PROB_BASE): Define.
2828         * cgraph.c (cgraph_create_edge): Initialize loop_nest and count.
2829         (dump_cgraph_node): Dump count.
2830         (cgraph_clone_edge): Rescale counts.
2831         (cgraph_clone_node): Likewise.
2832         * cgraph.h: Include basic-block.h
2833         (cgraph_node): Add count.
2834         (cgraph_edge): Add count and loop_nest.
2835         (cgraph_node, cgraph_edge, cgraph_clone_edge, cgraph_clone_node):
2836         Update prototypes.
2837         * cgraphunit.c: Kill now redundant inlining comment.
2838         (cgraph_create_edges): Make static, maintain current basic block;
2839         fix pasto.
2840         (record_call_1): Fill in new fields.
2841         * ipa-inline.c (cgraph_clone_inlined_nodes): Update call of
2842         cgraph_clone_node.
2843         (cgraph_decide_recursive_inlining): Likewise.
2844         * rtl.h (REG_BR_PROB_BASE): Kill.
2845         * tree-inline.c (copy_body_r): Update call of cgraph_clone_edge.
2846         (expand_call_inline): Update call of cgraph_create_edge.
2847         * tree-optimize.c (tree_rest_of_compilation): Likewise.
2848
2849 2005-05-19  Nick Clifton  <nickc@redhat.com>
2850
2851         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use the
2852         new rs6000_explicit_options structure.
2853
2854 2005-05-19  Richard Henderson  <rth@redhat.com>
2855
2856         PR target/21390
2857         * config/alpha/alpha.c (alpha_emit_conditional_branch): Move 
2858         TFmode code swapping ...
2859         (alpha_emit_xfloating_compare): ... here.
2860         (alpha_emit_setcc): Update to match.
2861         (alpha_lookup_xfloating_lib_func): Assert TARGET_HAS_XFLOATING_LIBS.
2862
2863 2005-05-19  Richard Henderson  <rth@redhat.com>
2864
2865         PR target/21657
2866         * config/ia64/ia64.c (ia64_expand_tls_address): Remove extra
2867         memory indirection in local-dynamic case.
2868
2869 2005-05-18  Jie Zhang  <jie.zhang@analog.com>
2870             Bernd Schmidt  <bernd.schmidt@analog.com>
2871
2872         * config/bfin/bfin.c (branch_dest): Add comment why it's
2873         necessary.
2874         * config/bfin/bfin.md (attr "length" default): Change the offset of
2875         forward conditional branch of length 4 from 4096 to 4092.
2876
2877 2005-05-19  Jan Beulich  <jbeulich@novell.com>
2878
2879         * unwind-compat.c: Include tconfig.h and tsystem.h.
2880         * unwind-dw2-fde-compat.c: Likewise.
2881
2882 2005-05-18  Richard Henderson  <rth@redhat.com>
2883
2884         PR 21541
2885         * ifcvt.c (noce_process_if_block): Avoid conversion when the
2886         memory destination is readonly.
2887
2888 2005-05-18  Richard Henderson  <rth@redhat.com>
2889
2890         PR 21541
2891         * tree-ssa-operands.c (opf_non_specific): New.
2892         (get_asm_expr_operands): Set it.
2893         (add_call_clobber_ops, add_call_read_ops): Likewise.
2894         (add_stmt_operand): Test it instead of opf_kill_def when
2895         considering unmodifiable variables.
2896
2897         * tree-ssa-operands.c (get_expr_operands): Fix exact test.
2898
2899 2005-05-19  Kazu Hirata  <kazu@cs.umass.edu>
2900
2901         * cfgexpand.c, tree-cfg.c, tree-inline.c, tree-optimize.c,
2902         tree-ssa-forwprop.c: Fix comment typos.
2903         * doc/invoke.texi: Fix a typo.
2904
2905 2005-05-18  Richard Henderson  <rth@redhat.com>
2906
2907         * config.gcc (powerpc-*-linux*): Include linux64.opt when
2908         including linux64.h.
2909
2910 2005-05-18  Richard Henderson  <rth@redhat.com>
2911
2912         * tree-cfg.c (pass_remove_useless): Revert last change.
2913         * tree-optimize.c (init_tree_optimization_passes): Initialize
2914         all_lowering_passes with PROP_gimple_any.
2915
2916 2005-05-18  Devang Patel  <dpatel@apple.com>
2917
2918         * config/rs6000/rs6000.md (insvsi_internal1): Subtract shift from
2919         the mask end.
2920         
2921 2005-05-18  Richard Henderson  <rth@redhat.com>
2922
2923         * tree-ssa-forwprop.c (cfg_changed): New.
2924         (tidy_after_forward_propagate_addr): New.
2925         (forward_propagate_addr_expr): Use it, and fold_stmt_inplace.
2926         (forward_propagate_addr_into_variable_array_index): Likewise.
2927         (tree_ssa_forward_propagate_single_use_vars): Cleanup cfg if
2928         edges were removed.
2929
2930 2005-05-18  Geoffrey Keating  <geoffk@apple.com>
2931
2932         * dummy-checksum.c: New.
2933         * genchecksum.c: New.
2934         * c.opt (print_pch_checksum): New flag.
2935         * c-pch.c (struct c_pch_validity): Make much shorter.
2936         (no_checksum): New.
2937         (host_machine): Remove.
2938         (target_machine): Remove.
2939         (get_ident): Change PCH version number.
2940         (pch_init): When -fverbose-asm, print out the compiler fingerprint.
2941         Don't put triplets or version string in PCH validity data.
2942         Do put the compiler checksum in the validity data.
2943         (c_common_valid_pch): Don't check triplets or version string.  Do
2944         check checksum.
2945         (c_common_print_pch_checksum): New.
2946         * c-opts.c (c_common_handle_option): Add OPT_print_pch_checksum.
2947         Print fingerprint with -v.
2948         * c-common.h (c_common_print_pch_checksum): New.
2949         (executable_checksum): New.
2950         * Makefile.in (STAGEMOVESTUFF): Add cc1*-dummy, *-checksum.c.
2951         (cc1-dummy): New rule.
2952         (cc1-checksum.c): New rule.
2953         (cc1-checksum.o): New rule.
2954         (cc1): Add checksum support.
2955         (build/genchecksum): New.
2956         (build/genchecksum.o): New.
2957         (dummy-checksum.o): New.
2958         (genobjnames): Add genchecksum.o.
2959         (mostlyclean): Remove *-checksum.c.
2960         (gnucompare): Add libgcc to list of directories checked.
2961         Make comparison problems in libgcc/ and with checksum files only
2962         be warnings.
2963         * doc/invoke.texi (Precompiled Headers): Remove caution.
2964         Document that it must be the exact same binary.  Add a few
2965         known-safe flags to the list.
2966
2967         * rs6000/predicates.md (fix_trunc_dest_operand): New.
2968         * rs6000/rs6000.md (fix_truncdfsi2): Use fix_trunc_dest_operand.
2969         Check that a memory operand is valid before trying to use it.
2970         
2971         * tree-cfg.c (pass_remove_useless): This pass works on trees.
2972
2973 2005-05-18  Richard Guenther  <rguenth@gcc.gnu.org>
2974
2975         * tree.c (build1_stat): Don't try to handle two-operand
2976         tree codes.
2977
2978 2005-05-18  Richard Sandiford  <rsandifo@redhat.com>
2979
2980         * config.gcc (sh*-*-*): Define SUPPORT_* macros to 1.
2981         * config/sh/sh.h: Update mask names throughout.
2982         (target_flags, ISIZE_BIT, DALIGN_BIT, SH1_BIT, SH2_BIT, SH3_BIT)
2983         (SH_E_BIT, HARD_SH4_BIT, FPU_SINGLE_BIT, SH4_BIT, SH4A_BIT, FMOVD_BIT)
2984         (SH5_BIT, SPACE_BIT, BIGTABLE_BIT, RELAX_BIT, USERMODE_BIT)
2985         (HITACHI_BIT, NOMACSAVE_BIT, PREFERGOT_BIT, PADSTRUCT_BIT)
2986         (LITTLE_ENDIAN_BIT, IEEE_BIT, SAVE_ALL_TR_BIT, HARD_SH2A_BIT)
2987         (HARD_SH2A_DOUBLE_BIT, INDEXED_ADDRESS_BIT, PT_FIXED_BIT)
2988         (INVALID_SYMBOLS_BIT, ADJUST_UNROLL_BIT, TARGET_DUMPISIZE)
2989         (TARGET_ALIGN_DOUBLE, TARGET_SH1, TARGET_SH2, TARGET_SH3)
2990         (TARGET_HARD_SH4, TARGET_FPU_SINGLE, TARGET_SH5, TARGET_FMOVD)
2991         (TARGET_IEEE, TARGET_SMALLCODE, TARGET_BIGTABLE, TARGET_RELAX)
2992         (TARGET_HITACHI, TARGET_NOMACSAVE, TARGET_PADSTRUCT)
2993         (TARGET_LITTLE_ENDIAN, TARGET_USERMODE, TARGET_PREFERGOT)
2994         (TARGET_SAVE_ALL_TARGET_REGS, TARGET_ALLOW_INDEXED_ADDRESS)
2995         (TARGET_PT_FIXED, TARGET_INVALID_SYMBOLS, TARGET_ADJUST_UNROLL)
2996         (TARGET_SWITCH_SH1, TARGET_SWITCH_SH2, TARGET_SWITCH_SH2E)
2997         (TARGET_SWITCH_SH2A, TARGET_SWITCH_SH2A_SINGLE_ONLY)
2998         (TARGET_SWITCH_SH2A_SINGLE, TARGET_SWITCH_SH2A_NOFPU)
2999         (TARGET_SWITCH_SH3, TARGET_SWITCH_SH3E, TARGET_SWITCH_SH4_SINGLE_ONLY)
3000         (TARGET_SWITCH_SH4_SINGLE, TARGET_SWITCH_SH4_NOFPU, TARGET_SWITCH_SH4)
3001         (TARGET_SWITCH_SH4A, TARGET_SWITCH_SH4A_SINGLE_ONLY)
3002         (TARGET_SWITCH_SH4A_SINGLE, TARGET_SWITCH_SH4A_NOFPU)
3003         (TARGET_SWITCH_SH4AL, TARGET_SWITCH_SH5_64MEDIA)
3004         (TARGET_SWITCH_SH5_64MEDIA_NOFPU, TARGET_SWITCHES_SH5_32MEDIA)
3005         (TARGET_SWITCHES_SH5_32MEDIA_NOFPU, TARGET_SWITCH_SH5_32_ANY_EXTRA)
3006         (TARGET_SWITCH_SH5_MEDIA_ANY_EXTRA, TARGET_SWITCHES)
3007         (SUBTARGET_SWITCHES): Delete.
3008         (TARGET_SH2E, TARGET_SH2A, TARGET_SH2A_SINGLE, TARGET_SH2A_DOUBLE)
3009         (TARGET_SH3E, TARGET_CACHE32, TARGET_SUPERSCALAR, TARGET_HARVARD)
3010         (TARGET_FPU_DOUBLE, TARGET_SH4A_ARCH, TARGET_SHMEDIA32)
3011         (TARGET_SHMEDIA64): Redefine using other TARGET_* macros.
3012         (TARGET_SH4): Undefine options.h definition and check MASK_SH1 as well.
3013         (SUPPORT_SH1, SUPPORT_SH2E, SUPPORT_SH4, SUPPORT_SH4_SINGLE)
3014         (SUPPORT_SH2A, SUPPORT_SH2A_SINGLE): Make numeric.
3015         (SUPPORT_SH2): Define to 1 if SUPPORT_SH1.
3016         (SUPPORT_SH3): Likewise SUPPORT_SH2.
3017         (SUPPORT_SH4_NOFPU): Likewise SUPPORT_SH3.
3018         (SUPPORT_SH4A_NOFPU, SUPPORT_SH4AL, SUPPORT_SH2A_NOFPU): Likewise
3019         SUPPORT_SH4_NOFPU.
3020         (SUPPORT_SH3E): Likewise SUPPORT_SH2E.
3021         (SUPPORT_SH4_SINGLE_ONLY, SUPPORT_SH4A_SINGLE_ONLY)
3022         (SUPPORT_SH2A_SINGLE_ONLY): Likewise SUPPORT_SH3E.
3023         (SUPPORT_SH4A): Likewise SUPPORT_SH4.
3024         (SUPPORT_SH4A_SINGLE): Likewise SUPPORT_SH4_SINGLE.
3025         (SUPPORT_SH5_32MEDIA): Likewise SUPPORT_SH5_COMPACT.
3026         (SUPPORT_SH5_32MEDIA_NOFPU): Likewise SUPPORT_SH5_COMPACT_NOFPU.
3027         (SUPPORT_ANY_SH5_32MEDIA, SUPPORT_ANY_SH5_64MEDIA)
3028         (SUPPORT_ANY_SH5): New macros.
3029         (TARGET_NONE): Replace with...
3030         (MASK_ARCH): ...this new macro.
3031         * config/sh/elf.h: Update mask names
3032         * config/sh/linux.h: Likewise.
3033         * config/sh/little.h: Likewise.
3034         * config/sh/netbsd-elf.h: Likewise.
3035         * config/sh/symbian-pre.h: Likewise.
3036         * config/sh/sh.c (sh_handle_option): New function.
3037         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
3038         (calc_live_regs): Use MASK_FPU_SINGLE instead of FPU_SINGLE_BIT.
3039         (sh_target_switches, target_switches): Delete.
3040         (sh_pch_valid_p): Check for specific differences in the target_flags
3041         settings.
3042         (sh_init_cumulative_args): Use MASK_HITACHI instead of HITACHI_BIT.
3043         * config/sh/sh.opt: New file.
3044
3045 2005-05-18  Richard Henderson  <rth@redhat.com>
3046
3047         PR target/21632
3048         * config/ia64/ia64.c (ia64_extra_constraint) <'T'>: Use
3049         small_addr_symbolic_operand.
3050
3051 2005-05-18  Jeff Law  <law@redhat.com>
3052
3053         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Do not
3054         propagate an ADDR_EXPR if the definition and use sites are
3055         in different EH regions.
3056
3057 2005-05-18  Ian Lance Taylor  <ian@airs.com>
3058
3059         * read-rtl.c (mode_attr_index): Use obstack_grow0, not
3060         obstack_grow.
3061
3062 2005-05-18  Daniel Berlin  <dberlin@dberlin.org>
3063
3064         * cfgrtl.c (purge_dead_edges): Don't remove fake edges.
3065
3066 2005-05-18  Daniel Berlin  <dberlin@dberlin.org>
3067         
3068         Fix PR tree-optimization/21407
3069
3070         * tree-ssa-operands.c (note_addressable): Change
3071         COMPONENT_REF handling in response to aliasing
3072         discussion.
3073
3074 2005-05-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
3075
3076         * config/sparc/sol2.h (TARGET_DEFAULT): Add back MASK_APP_REGS.
3077         * config/sparc/sol2-64.h (TARGET_DEFAULT): Likewise.
3078         * config/sparc/sp-elf.h (TARGET_DEFAULT): Delete.
3079         * doc/invoke.texi (SPARC options): Document that -mapp-regs is
3080         the default on Solaris too.
3081
3082 2005-05-17  Daniel Berlin  <dberlin@dberlin.org>
3083
3084         * tree-ssa-pre.c (find_or_generate_expression): CALL_EXPR
3085         is okay too.
3086
3087 2005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
3088
3089         * timevar.def (TV_SCEV_CONST): New timevar.
3090         * tree-optimize.c (init_tree_optimization_passes): Add
3091         pass_scev_cprop.
3092         * tree-pass.h (pass_scev_cprop): Declare.
3093         * tree-scalar-evolution.c (scev_const_prop): New function.
3094         * tree-scalar-evolution.h (scev_const_prop): Declare.
3095         * tree-ssa-loop.c (gate_scev_const_prop, pass_scev_cprop):
3096         New.
3097         * tree-cfg.c (replace_uses_by): Export.
3098         * tree-flow.h (replace_uses_by): Declare.
3099
3100 2005-05-17  Ziemowit Laski  <zlaski@apple.com>
3101             Mike Stump  <mrs@apple.com>
3102
3103         Yet more Objective-C++...
3104
3105         * c-common.h (objc_finish_try_stmt): Add.
3106         (objc_build_synchronized): Add.
3107         (objc_generate_write_barrier): Add.
3108         * stub-objc.c (objc_build_synchronized): Add return value.
3109         (objc_finish_try_stmt): Likewise.
3110         (objc_generate_write_barrier): Add.
3111
3112         * c-common.h (objc_rewrite_function_call): Add.
3113         * c-typeck.c (build_function_call): Allow objc to rewrite
3114         FUNCTION_DECLs.
3115         (build_modify_expr): Allow objc to generate write barriers.
3116         * c.opt (Wassign-intercept): Add.
3117         (Wstrict-selector-match): Add.
3118         (fobjc-call-cxx-cdtors): Add.
3119         (fobjc-direct-dispatch): Add.
3120         (fobjc-gc): Add.
3121         * dbxout.c (get_lang_number): Add Objective-C++ support.
3122         * doc/invoke.texi (-fobjc-call-cxx-cdtors): Likewise.
3123         (-Wstrict-selector-match): Likewise.
3124         (-fobjc-direct-dispatch): Likewise.
3125         (-Wassign-intercept): Likewise.
3126         (Overall Options): Likewise.
3127         * gengtype.c (get_output_file_with_visibility): Likewise.
3128         * stub-objc.c (objc_rewrite_function_call): Add.
3129         * config/darwin.h (ASM_OUTPUT_LABELREF): Improved quoting support.
3130
3131         * c-common.c (flag_objc_exceptions): Remove.
3132         (flag_objc_sjlj_exceptions): Remove.
3133         * c-decl.c (objc_mark_locals_volatile): Don't change decls
3134         that are already ok.
3135         * c-opts.c (c_common_handle_option, case
3136         OPT_fobjc_exceptions): Remove.
3137         (case OPT_fobjc_sjlj_exceptions): Remove
3138         * c.opt (fobjc-call-cxx-cdtors): Have opt create the flag.
3139         (fobjc-exceptions): Likewise.
3140         (fobjc-sjlj-exceptions): Likewise.
3141         * config/rs6000/darwin.h (OFFS_MSGSEND_FAST): Add.
3142         (OFFS_ASSIGNIVAR_FAST): Add.
3143         
3144 2005-05-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
3145
3146         * config/sparc/sparc.md (movhi): Do not test constness
3147         of operand #1 twice.
3148         (movsi): Likewise.
3149         (movdi): Unconditionally accept zero as second operand
3150         when the first is memory.
3151         (movdi_insn_sp32): Handle above case.
3152         (DImode splitter): Use predicates.
3153         (DImode splitter): Use const_zero_operand predicate.
3154         (movsf_insn): Swap 2 alternatives.
3155
3156 2005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
3157
3158         * tree-ssa-loop-ivopts.c (find_bivs, find_givs_in_stmt_scev): Apply
3159         expand_simple_operations to bases of the ivs.
3160         (tree_int_cst_sign_bit): Export.
3161         * tree-flow.h (expand_simple_operations): Declare.
3162         * tree-ssa-loop-niter.c (number_of_iterations_cond): Use
3163         tree_int_cst_sign_bit.
3164         (expand_simple_operations): Export.
3165         * tree.h (tree_int_cst_sign_bit): Declare.
3166
3167 2005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
3168
3169         * tree-cfg.c (tree_can_merge_blocks_p): Allow phi nodes in the
3170         merged block.
3171         (replace_uses_by): New function.
3172         (tree_merge_blocks): Eliminate the phi nodes in the merged block.
3173         * tree-flow.h (fold_stmt_inplace): Declare.
3174         * tree-ssa-ccp.c (fold_stmt_inplace): New function.
3175         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Update dominance
3176         info after cfg cleanup.
3177
3178 2005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
3179
3180         * cfgloop.h (just_once_each_iteration_p): Declaration changed.
3181         * cfgloopanal.c (just_once_each_iteration_p): Make the loop argument
3182         const.
3183
3184 2005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
3185
3186         * ggc-page.c (ggc_alloc_stat): Record amount of memory allocated.
3187         * ggc-zone.c (ggc_alloc_zone_1): Ditto.
3188         * timevar.c (timevar_ggc_mem_total): New variable.
3189         (GGC_MEM_BOUND): New constant.
3190         (get_time): Record ggc memory status.
3191         (timevar_accumulate): Accumulate amount of ggc memory.
3192         (timevar_print): Print consumption of ggc memory.
3193         * timevar.def (TV_FIND_REFERENCED_VARS, TV_TREE_REDPHI,
3194         TV_TREE_LOOP_BOUNDS, TV_TREE_LOOP_IVCANON, TV_TREE_VECTORIZATION,
3195         TV_TREE_LINEAR_TRANSFORM): Shorten strings to fit in 22 characters.
3196         * timevar.h (struct timevar_time_def): Add ggc_mem field.
3197         (timevar_ggc_mem_total): Declare.
3198
3199 2005-05-17  Kazu Hirata  <kazu@cs.umass.edu>
3200
3201         * tree-into-ssa.c (update_ssa): Clean up by shortening the
3202         live range of DFS.
3203
3204 2005-05-17  Hans-Peter Nilsson  <hp@axis.com>
3205
3206         * config/cris/cris.md (ncond, ocode, rcond): Remove separate
3207         define_code_attr.
3208         ("b<ncond:code>", "b<ocond:code>", "b<rcond:code>")
3209         ("*b<ncond:code>_reversed", "*b<ocond:code>_reversed")
3210         ("*b<rcond:code>_reversed", "s<ncond:code>", "s<rcond:code>")
3211         ("s<ocond:code>"): Rename from respectively "b<ncond>",
3212         "b<ocond>", "b<rcond>", ("*b<ncond>_reversed",
3213         "*b<ocond>_reversed", "*b<rcond>_reversed", "s<ncond>",
3214         "s<rcond>" and "s<ocond>".
3215         ("b<ocond:code>", "*b<ocond:code>_reversed")
3216         ("*b<rcond:code>_reversed"): Remove extraneous backslashes in
3217         output statement section.
3218
3219 2005-05-17  Roger Sayle  <roger@eyesopen.com>
3220
3221         * c-typeck.c (common_type): Also handle BOOLEAN_TYPEs.
3222
3223 2005-05-17  Steven Bosscher  <stevenb@suse.de>
3224             Stuart Hastings <stuart@apple.com>
3225             Jan Hubicka  <jh@suse.cz>
3226             Dale Johannesen  <dalej@apple.com>
3227
3228         * cgraph.h (cgraph_node): Add 'lowered' state.
3229         (cgraph_lower_function): Declare.
3230         * cgraphunit.c (cgraph_finalize_function): Initialize lowered flag.
3231         (cgraph_lower_function): New function.
3232         (cgraph_create_edges): Deal with lowered function bodies.
3233         (verify_cgraph_node): Likewise.
3234         (cgraph_analyze_function): Do lowering job.
3235         (cgraph_build_static_cdtor): Likewise.
3236         * function.h (struct function): Add saved_eh and saved_cfg.
3237         * integrate.c (copy_decl_for_inlining): Kill LABEL_DECL_UID field.
3238         * tree-cfg.c (fold_cond_expr_cond): Export.
3239         * tree-flow.h (fold_cond_expr_cond): Declare.
3240         * tree-inline.c: Include basic-block, ggc, tree-flow, except.h and
3241         pointer-set.
3242         (struct_inline_data): Kill fnd, first_inlined_fn, ret_label,
3243         in_target_cleanup_p, tree_pruner, tsi; add callee, caller and
3244         callee_cfun, block, eh_region, eh_region_offset.
3245         (inlining_p): New predicate.
3246         (remap_decl): Update for new inline_data; declare newly created inline
3247         vars in low gimple way.
3248         (copy_body_r): Update for new datastructure, simplify some of handling
3249         when we are in gimple; remap LABEL_DECLs for EH; copy TREE_BLOCK;
3250         deal with RESX_EXPRs.
3251         (copy_bb): New.
3252         (copy_edges_for_bb): Likewise.
3253         (remap_decl_1): New.
3254         (copy_cfg_body): New.
3255         (copy_generic_body): Rewrite to work on low gimple.
3256         (copy_body): Turn into simple wrapper around copy_cfg_body.
3257         (setup_one_parameter): Insert new statements into given basic block.
3258         (initialize_initialized_parameters): Likewise, reorganize way things are
3259         gimplified.
3260         (declare_return_variable): Update for new inline data datastructure.
3261         (inline_forbidden_p): Work on low gimple.
3262         (estimate_num_insns): Likewise.
3263         (expand_call_inline): Work on CFG.
3264         (push_cfun, pop_cfun): New functions.
3265         (cfun_stack): New stack.
3266         (add_lexical_block): New function.
3267         (gimple_expand_calls_inline): Work on basic block.
3268         (optimize_inline_calls): Likewise.
3269         (clone_body, save_body, unsave_ewpr_now): Update for new
3270         datastructures.
3271         (declare_inline_vars): Work on block instead of bind_expr.
3272         (inlining_p): New predicate.
3273         * tree-inline.h (push_cfun, pop_cfun): Declare.
3274         * tree-optimize.c: Include except.h
3275         (all_lowering_passes): New variable.
3276         (execute_fixup_cfg, pass_fixup_cfg): New pass.
3277         (init_tree_optimization_passes): Move some to all_lowering_passes.
3278         (tree_lowering_passes): New function.
3279         (tree_rest_of_compilation): Register cfg hooks; save/unsave eh.
3280         * tree-pass.h (tree_lowering_passes): Declare
3281
3282 2005-05-17  Nathan Sidwell  <nathan@codesourcery.com>
3283
3284         * unwind-dw2-fde-darwin.c: Include tsystem.h.
3285
3286 2005-05-17  Jeff Law  <law@redhat.com>
3287
3288         * Makefile.in (tree-ssa-forwprop.o): Depend on langhooks.h.
3289         * tree-ssa-forwprop.c: Include langhooks.h.
3290         (forward_propagate_addr_expr_into_variable_array_index): New.
3291         (forward_propagate_addr_expr): New.
3292         (tree_ssa_forward_propagate_single_use_vars): Loop over all
3293         the statements in the block instead of just the last statement.
3294         Call forward_propagate_addr_expr as needed.
3295         (pass_forwprop): Update the SSA graph after forward propagation is
3296         complete.
3297
3298 2005-05-17  Nathan Sidwell  <nathan@codesourcery.com>
3299
3300         * unwind-dw2-fde-glibc.c (base_from_cb_data,
3301         _Unwind_IteratePhdrCallback): Use gcc_assert and gcc_unreachable as
3302         appropriate.
3303         * unwind-dw2-fde.c (__deregister_frame_info_bases,
3304         base_from_object, fde_split, end_fde_sort): Likewise.
3305         * unwind-dw2.c (_Unwind_GetGR, _Unwind_SetGR, execute_stack_op, 
3306         execute_cfa_program, _Unwind_SetSpColumn, uw_update_context_1,
3307         uw_init_context_1): Likewise.
3308         * unwind.inc (_Unwind_RaiseException_Phase2, _Unwind_Resume,
3309         _Unwind_Resume_or_Rethrow): Likewise.
3310         * unwind-pe.h (__gxx_abort): Do not define.
3311         (size_of_encoded_value, base_of_encoded_value,
3312         read_encoded_value_with_base): Use gcc_unreachable.
3313         * unwind.h (_Unwind_GetTextRelBase): Likewise.
3314
3315 2005-05-17  Daniel Jacobowitz  <dan@codesourcery.com>
3316
3317         * config/arm/lib1funcs.asm (cfi_pop, cfi_push, cfi_start)
3318         (cfi_end): New macros.
3319         (RETLDM): Use cfi_pop.  Expect an eight byte stack frame.
3320         (ARM_LDIV0, THUMB_LDIV0, DIV_FUNC_END): Use CFI macros.  Create
3321         an eight byte stack frame.
3322         (__NR_tkill): Define.
3323         (__div0): Use gettid tkill on GNU/Linux.
3324         (_arm_return): Add CFI.
3325         (Lchange_\register, .Lchange_lr): Create an eight byte stack frame.
3326
3327 2005-05-17  Daniel Jacobowitz  <dan@codesourcery.com>
3328
3329         * configure.ac: Remove spaces around assignment to
3330         gcc_cv_ld_sysroot.
3331         * configure: Regenerated.
3332
3333 2005-05-17  David Edelsohn  <edelsohn@gnu.org>
3334
3335         * config/rs6000/aix.h (TARGET_ALTIVEC_VRSAVE): Delete.
3336         * config/rs6000/rs6000.c (rs6000_explicit_options): Add
3337         aix_struct_ret.
3338         (rs6000_override_options): Do not protect TARGET_ALTIVEC_VRSAVE.
3339         Modify aix_struct_return variable, not target_flags.
3340         (rs6000_handle_option): Do not protect TARGET_ALTIVEC_VRSAVE.
3341         (rs6000_return_in_memory): Test aix_struct_return.
3342         * config/rs6000/rs6000.opt (maix-struct-return): Convert to
3343         independent variable.  Report mxl-compat.
3344
3345 2005-05-17  Bernd Schmidt  <bernd.schmidt@analog.com>
3346
3347         * config/bfin/bfin.md (eh_return): Add missing DONE.
3348
3349 2005-05-17  Ian Lance Taylor  <ian@airs.com>
3350
3351         * read-rtl.c (struct macro_traverse_data): Add unknown_mode_attr
3352         field.
3353         (mode_attr_index): Remove check for defined attribute.  Remove
3354         infile parameter.  Change all callers.
3355         (apply_mode_maps): Add unknown parameter.  Change caller.  Always
3356         return after finding attribute.
3357         (apply_macro_to_rtx): Add unknown_mode_attr parameter.  Change
3358         callers.
3359         (apply_macro_traverse): Set mtd->unknown_mode_attr.
3360         (read_rtx): Use mtd.unknown_mode_attr to check for an undefined
3361         attribute used for a mode.
3362
3363 2005-05-17  Paolo Bonzini  <bonzini@gnu.org>
3364
3365         * tree-ssa-math-opts.c: New file.
3366
3367 2005-05-17  Paolo Bonzini  <bonzini@gnu.org>
3368
3369         * tree-ssa-math-opts.c: New file.
3370
3371 2005-05-17  Paolo Bonzini  <bonzini@gnu.org>
3372
3373         * Makefile.in: Add tree-ssa-math-opts.c.
3374         * expr.c (expand_expr_real_1) <case RDIV_EXPR>: Never emit as a*(1/b).
3375         * fold-const.c (distribute_real_division): New.
3376         (fold_binary) <case PLUS_EXPR, case MINUS_EXPR>: Use it.
3377         * tree-pass.h (pass_cse_reciprocals): New.
3378         * tree-optimize.c (init_tree_optimization_passes): Run it.
3379         * doc/passes.texi: Document the new pass.
3380
3381 2005-05-17  Richard Guenther  <rguenth@gcc.gnu.org>
3382
3383         PR middle-end/21595
3384         * builtins.c (fold_builtin_constant_p): Handle
3385         &"string cst"[0] as constant.
3386
3387 2005-05-17  Richard Henderson  <rth@redhat.com>
3388
3389         * config/i386/sse.md (mulv16qi3, mulv2di3): New.
3390
3391 2005-05-17  Jakub Jelinek  <jakub@redhat.com>
3392
3393         PR middle-end/21492
3394         * cfgcleanup.c (try_crossjump_to_edge): update_forwarder_flag for
3395         src2 if src2 has been split.
3396
3397         PR tree-optimization/21610
3398         * c-typeck.c (decl_constant_value_for_broken_optimization): If not
3399         returning DECL, call unshare_expr.
3400
3401 2005-05-17  Hans-Peter Nilsson  <hp@axis.com>
3402
3403         * config/cris/cris.md: Unquote preparation and output statements.
3404         (BWD, WD, BW): New, mode-macros.
3405         (S, s, m, mm, nbitsm1): New, mode-attrs.
3406         (szext, shift, shiftrt, ncond, ocond, rcond): New, code-macros.
3407         (u, su, shlr, slr, ncond, ocond, rcond, rCC, oCC, roCC): New,
3408         code-attrs.
3409         ("tst<mode>"): Replace "tstqi", "tsthi" and "tstsi".
3410         ("*cmp_ext<mode>"): Replace "*cmp_extsi" and "*cmp_exthi".
3411         ("*cmp_swapext<mode>"): Replace "*cmp_swapextqi" and
3412         "*cmp_swapexthi".
3413         ("cmp<mode>"): Replace "cmphi&