OSDN Git Service

Prevent out-of-bounds array access in reload.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2005-04-28  Martin Koegler <mkoegler@auto.tuwien.ac.at>
2
3         PR rtl-optimization/18877
4         * reload.c (decompose) <case REG, case SUBREG>: Handle pseudo reg
5         number in val.start.
6
7 2005-04-28  David Edelsohn  <edelsohn@gnu.org>
8
9         PR target/20813
10         * config/rs6000/aix43.h (SUBSUBTARGET_SWITCHES, aix64): Add
11         MASK_PPC_GFXOPT.
12         * config/rs6000/aix51.h (SUBSUBTARGET_SWITCHES, aix64): Same.
13         * config/rs6000/aix52.h (SUBSUBTARGET_SWITCHES, aix64): Same.
14         * config/rs6000/sysv4.h (SUBTARGET_SWITCHES, 64): Same.
15
16 2005-04-28  Richard Earnshaw  <richard.earnshaw@arm.com>
17
18         * arm.c (legitimize_pic_address): Fix sense of assertion test for
19         creating pseudos when the base offset is too large.
20
21 2005-04-28  Kazu Hirata  <kazu@cs.umass.edu>
22
23         * global.c (earlyclobber_regclass): Change the type to
24         VEC(int,heap).
25         (check_earlyclobber): Update uses of earlyclobber_regclass.
26         (mark_reg_use_for_earlyclobber): Likewise.
27         (calculate_local_reg_bb_info): Allocate and free
28         earlyclobber_regclass using the VEC API.
29
30 2005-04-28  Nathan Sidwell  <nathan@codesourcery.com>
31
32         * tree-ssa-alias.c (push_fields_onto_fieldstack): Remove bogus
33         assert.
34
35 2005-04-28  Kazu Hirata  <kazu@cs.umass.edu>
36
37         * modulo-sched.c, tree-stdarg.c: Use targetm.foo instead of
38         (*targetm.foo).
39
40         * config.gcc: Obsolete c4x-* and tic4x-*.
41
42         * tree.h (edge_def): Remove.
43
44         * bt-load.c, cfgexpand.c, dwarf2out.c, emit-rtl.c, expr.c,
45         function.c, global.c, lcm.c, loop-invariant.c, optabs.c,
46         reorg.c, resource.c, tree-ssa-loop-ivopts.c, value-prof.c: Use
47         JUMP_P, LABEL_P, REG_P, MEM_P, NONJUMP_INSN_P, and INSN_P
48         where appropriate.
49
50         * attribs.c, c-pragma.c, caller-save.c, cfghooks.h,
51         coverage.c, cselib.h, domwalk.c, domwalk.h, errors.c,
52         errors.h, gcov-dump.c, gcov-io.c, gcov-io.h, gen-protos.c,
53         genattrtab.h, genextract.c, gthr-win32.h, insn-notes.def,
54         integrate.c, lambda-mat.c, lambda.h, libgcov.c, local-alloc.c,
55         machmode.def, mips-tfile.c, params.c, pretty-print.c,
56         print-rtl.c, protoize.c, regmove.c, sched-vis.c, tree-chrec.h,
57         tree-data-ref.h, vec.h, config/darwin-c.c, config/sol2-c.c,
58         config/sol2.c, config/arm/arm-cores.def, config/arm/cirrus.md,
59         config/arm/symbian.h, config/c4x/c4x.c, config/c4x/c4x.h,
60         config/i386/cygming.h, config/i386/djgpp.h,
61         config/i386/lynx.h, config/i386/netware.c,
62         config/i386/winnt.c, config/ia64/ia64-c.c,
63         config/iq2000/iq2000.c, config/m32r/little.h,
64         config/m68k/m68k-protos.h, config/m68k/m68k.h,
65         config/m68k/m68k.md, config/mcore/mcore.c,
66         config/mcore/mcore.h, config/mmix/mmix.c, config/mmix/mmix.md,
67         config/mn10300/mn10300-protos.h, config/mn10300/mn10300.c,
68         config/mn10300/mn10300.h, config/ns32k/netbsd.h,
69         config/ns32k/ns32k.c, config/ns32k/ns32k.h,
70         config/pa/pa-hpux11.h, config/pdp11/pdp11.c,
71         config/pdp11/pdp11.h, config/rs6000/darwin.h,
72         config/rs6000/default64.h, config/rs6000/rs6000-c.c,
73         config/s390/2064.md, config/s390/2084.md,
74         config/s390/s390-modes.def, config/s390/s390-protos.h,
75         config/s390/tpf.h, config/sh/sh.h, config/sh/symbian.c,
76         config/stormy16/stormy16.c, config/vax/vax-protos.h,
77         config/vax/vax.c, config/vax/vax.h,
78         config/xtensa/lib1funcs.asm, config/xtensa/xtensa.md: Update
79         copyright.
80
81 2005-04-28  Joseph S. Myers  <joseph@codesourcery.com>
82
83         * c-typeck.c (build_compound_expr): Correct logic in last change.
84
85 2005-04-27  James E. Wilson  <wilson@specifixinc.com>
86
87         * config/ia64/ia64.c (update_set_flags): Delete ppred and pcond
88         parameters.  Replace conditional move code with assert checking for
89         ar.lc.  Delete obsolete comments.
90         (set_src_needs_barrier): Delete cond parameter, and code using it.
91         (rtx_needs_barrier): Delete initialization of cond.  Fix typo in
92         assert checking for PR_REGS.  Fix calls to update_set_flags and
93         set_src_needs_barrier.
94         (group_barrier_needed): Renamed from group_barrier_needed_p.  Fix all
95         callers.  Rewrite explanatory comment before the function.
96         (safe_group_barrier_needed): Renamed from safe_group_barrier_needed_p.
97         Fix all callers.
98
99 2005-04-27  Mike Stump  <mrs@apple.com>
100
101         * doc/cpp.texi: gcc now implements universal character names.
102
103 2005-04-27  Joseph S. Myers  <joseph@codesourcery.com>
104
105         PR c/21159
106         * c-typeck.c (build_compound_expr): Don't warn for left-hand side
107         being a compound expression whose right-hand side is cast to void.
108
109 2005-04-27  Caroline Tice  <ctice@apple.com>
110
111         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
112         Remove targetm.have_named_sections test.
113         (fix_edges_for_rarely_executed_code): Likewise.
114         (insert_section_boundary_note): Likewise.
115         (reorder_basic_blocks): Check partitioning flag before calling
116         verify_hot_cold_block_grouping.
117         * dbxout.c (dbxout_function_end): Get hot/cold section labels from
118         the function struct rather than global variables.
119         * dwarf2out.c (COLD_TEXT_SECTION_LABEL): New macro.
120         (COLD_END_LABEL): Likewise
121         (cold_text_section_label): New static global variable.
122         (cold_end_label): Likewise.
123         (dwarf2out_switch_text_section): Get hot/cold section labels from
124         the function struct rather than global variables; test to make sure
125         cfun is defined.
126         (output_aranges): Use cold_text_section_label and cold_end_label;
127         check partitioning flag before putting out delta.
128         (output_ranges): Remove incorrect code attempting to use
129         hot/cold labels.
130         (output_line_info): Get cold section label from function struct; test
131         to make sure cfun is defined.
132         (add_location_or_const_value_attribute): Likewise.
133         (dwarf2out_var_location): Likewise.
134         (dwarf2out_init): Generate cold_text_section_label and cold_end_label;
135         write out cold_text_section_label if partition flag is set.
136         (dwarf2out_finish): Write out cold_end_label if partition flag is set;
137         * function.h (struct function): Add new fields to point to hot/cold
138         section labels: hot_section_label, cold_section_label,
139         hot_section_end_label and cold_section_end_label; also add new field
140         for cold text section name, unlikely_text_section_name.
141         * opts.c (decode_options): Turn off partitioning flag if
142         !targetm.have_named_sections.
143         * output.h (hot_section_label): Remove.
144         (hot_section_end_label): Remove.
145         (cold_section_end_label): Remove.
146         (unlikely_section_label): Remove.
147         (unlikely_text_section_name): Remove.
148         * passes.c (rest_of_handle_final):  Remove extra blank line.
149         * varasm.c (unlikely_section_label): Remove.
150         (hot_section_label): Remove.
151         (hot_section_end_label): Remove.
152         (cold_section_end_label): Remove.
153         (unlikely_text_section_name):  Remove.
154         (initialize_cold_section_name): Modify to call
155         targetm.strip_name_encoding; to store cold section name in current
156         function struct, if it exists; and to only use the decl_section_name
157         if flag_named_sections is true.
158         (unlikely_text_section): Modify to get section name out of current
159         function struct, if there is one; otherwise build it from
160         UNLIKELY_EXECUTED_TEXT_SECTION_NAME.
161         (in_unlikely_text_section): Likewise.
162         (named_section): Modify to get/put cold section name in current function
163         struct, if there is one.
164         (function_section):  Change 'bool unlikely' to 'int reloc'; check
165         targetm.have_named_sections before calling named_section.
166         (current_function_section): Likewise.
167         (assemble_start_function): Modify to get/put unlikely_text_section_name
168         in current function struct; modify to get hot/cold section labels
169         from function struct; initialize labels using
170         ASM_GENERATE_INTERNAL_LABEL;
171         test partitioning flag before writing out hot section label.
172         (assemble_end_function): Test partitioning flag before writing out
173         hot/cold section labels.
174         (default_section_type_flags_1):  Get cold text section name from
175         function struct if there is one; Set flags correctly for
176         cold text section if there is not a current function struct.
177         
178 2005-04-27  Richard Guenther  <rguenth@gcc.gnu.org>
179
180         * tree-ssa-propagate.c (set_rhs): Revert last change.
181
182 2005-04-27  Steve Ellcey  <sje@cup.hp.com>
183
184         * explow.c (convert_memory_address): Add gcc_assert.
185
186 2005-04-27  Mark Mitchell  <mark@codesourcery.com>
187
188         * configure.ac: Check for ld --sysroot support.
189         * gcc.c: Document %R specifier for specs.
190         (SYSROOT_SPEC): New macro.
191         (sysroot_spec): New variable.
192         (static_specs): Add sysroot_spec.
193         (main): Pass the sysroot spec to the linker if appropriate.
194         * configure: Regenerated.
195         * config.in: Likewise.
196
197 2005-04-27  Richard Guenther  <rguenth@gcc.gnu.org>
198
199         * fold-const.c (fold_binary): Use build_fold_addr_expr
200         for address calculation and INDIRECT_REF handling.
201
202 2005-04-27  Andrew Haley  <aph@redhat.com>
203
204         * postreload-gcse.c (hash_scan_set): Remove bogus assertion.
205
206 2005-04-27  Nathan Sidwell  <nathan@codesourcery.com>
207
208         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Reserve arm frame
209         pointer when thumb backtracing is on.
210
211         * config/fp-bit.c (abort): Revert change.
212
213 2005-04-27  Ian Lance Taylor  <ian@airs.com>
214
215         * c-semantics.c (add_stmt): Don't test STATEMENT_CODE_P.
216
217 2005-04-27  Kazu Hirata  <kazu@cs.umass.edu>
218
219         * tree-ssa-dce.c: Fix a comment typo.
220
221 2005-04-27  David S. Miller  <davem@davemloft.net>
222
223         * explow.c (allocate_dynamic_stack_space SETJMP_VIA_SAVE_AREA):
224         Kill setjmpless_size.  current_function_calls_setjmp is completely
225         computed when we are called, so just use the optimized size value
226         instead of using REG_SAVE_AREA notes.
227         (optimize_save_area_alloca): Delete....
228         * rtl.h (optimize_save_area_alloca): Likewise...
229         * passes.c (rest_of_compilation): and don't call it any more.
230         * reg-notes.def (SAVE_AREA): Delete.
231         
232 2005-04-27  Nathan Sidwell  <nathan@codesourcery.com>
233
234         * config/fp-bit.c (abort): Add noreturn attribute.
235
236         * config/avr/avr.c (avr_naked_function_p): Use gcc_assert and
237         gcc_unreachable as appropriate.
238         (ptrreg_to_str, cond_string, avr_normalize_condition): Likewise.
239         * config/avr/avr.h (ASM_OUTPUT_REG_PUSH,
240         ASM_OUTPUT_REG_POP): Likewise.
241
242 2005-04-27  Paolo Bonzini  <bonzini@gnu.org>
243
244         * tree-complex.c (expand_vector_operations_1): Do not build
245         VIEW_CONVERT_EXPR's for the lhs.
246
247 2005-04-27  Nathan Sidwell  <nathan@codesourcery.com>
248
249         * config/pa/pa.h (PRINT_OPERAND_ADDRESS): Use gcc_assert, remove
250         unnecessary noncanonical RTL handling.
251         * config/pa/pa64-linux.h (INITIAL_ELIMINATION_OFFSET): Use
252         gcc_assert and gcc_unreachable.
253
254         * config/arm/arm.h (ARM_PRINT_OPERAND_ADDRESS): Use gcc_assert and
255         gcc_unreachable as appropriate.
256         (THUMB_PRINT_OPERAND_ADDRESS): Likewise.
257         * config/arm/arm.c (arm_override_options, arm_compute_func_type,
258         use_return_insn, const_ok_for_op, arm_gen_constant,
259         arm_canonicalize_comparison, legitimize_pic_address,
260         thumb_find_work_register, arm_load_pic_register, arm_rtx_costs_1,
261         arm_cirrus_insn_p, cirrus_reorg, minmax_code,
262         load_multiple_sequence, emit_ldm_seq, store_multiple_sequence,
263         emit_stm_seq, arm_gen_movmemqi, arm_select_dominance_cc_mode,
264         arm_select_cc_mode, arm_reload_in_hi, arm_reload_out_hi,
265         move_minipool_fix_forward_ref, move_minipool_fix_backward_ref,
266         dump_minipool, create_fix_barrier, push_minipool_fix, arm_reorg,
267         fp_immediate_constant, fp_const_from_val, vfp_output_fstmx,
268         output_call, output_mov_long_double_fpa_from_arm,
269         output_mov_long_double_arm_from_fpa,
270         output_mov_double_fpa_from_arm, output_mov_double_arm_from_fpa,
271         output_move_double, arithmetic_instr, shift_op, int_log2,
272         output_return_instruction, arm_output_function_prologue,
273         arm_output_epilogue, arm_output_function_epilogue,
274         emit_multi_reg_push, arm_get_frame_offsets,
275         arm_compute_initial_elimination_offset, arm_expand_prologue,
276         arm_print_operand, arm_assemble_integer, get_arm_condition_code,
277         arm_final_prescan_insn, arm_init_iwmmxt_builtins,
278         arm_expand_binop_builtin, thumb_pushpop, thumb_far_jump_used_p,
279         thumb_compute_initial_elimination_offset,
280         thumb_output_function_prologue, thumb_load_double_from_address,
281         thumb_output_move_mem_multiple, thumb_reload_out_hi,
282         arm_emit_vector_const, arm_dbx_register_number): Likewise.
283         * config/arm/pe.c (arm_mark_dllexport, arm_mark_dllimport): Likewise.
284         * config/arm/arm.md (thumb_extendhisi2,
285         *thumb_extendhisi2_insn_v6, *thumb_extendqisi2,
286         *thumb_extendqisi2_v6, movhi, *thumb_movhi_insn,
287         thumb_movhi_clobber, movqi, *arm_buneq, *arm_bltgt,
288         *arm_buneq_reversed, *arm_bltgt_reversed, suneq, sltgt): Likewise.
289         * config/arm/cirrus.md (*cirrus_arm_movdi,
290         *cirrus_movdf_hard_insn): Likewise.
291         * config/arm/vfp.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
292
293 2005-04-27  Kazu Hirata  <kazu@cs.umass.edu>
294
295         * tree-flow.h (ssa_names): Change the type to VEC(tree,gc).
296         (num_ssa_names): Use VEC_length.
297         (ssa_names): Use VEC_index.
298         * tree-ssanames.c (ssa_names): Change the type to
299         VEC(tree,gc).
300         (init_ssanames, fini_ssa_names, make_ssanames,
301         release_ssa_name): Update uses of ssa_names.
302
303         * dojump.c, emit-rtl.c, expmed.c, expr.c, stmt.c, stor-layout.c:
304         Use fold_buildN instead of fold (buildN (...)).
305
306 2005-04-27  Devang Patel <dpatel@apple.com>
307
308         * dbxout.c (dbxout_type): Check use_gnu_debug_info_extensions.
309
310 2005-04-27  Matt Thomas <matt@3am-software.com>
311             Jan-Benedict Glaw <jbglaw@microdata-pos.de>
312
313         * config/vax/vax.c (vax_rtx_costs): Whitespace cleanup.
314         (vax_output_mi_thunk): Ditto.
315         (vax_notice_cc_update): Ditto.
316         (INDEX_REGISTER_P): Add trailing \.
317         (BASE_REGISTER_P): Add trailing \.
318         (legitimate_address_p): Whitespace cleanup.  Remove trailing \.
319
320 2005-04-27  Richard Guenther  <rguenth@gcc.gnu.org>
321
322         * tree-ssa-propagate.c (set_rhs): Check operand of
323         ADDR_EXPR for gimpliness, too.
324
325 2005-04-27  Kazu Hirata  <kazu@cs.umass.edu>
326
327         * tree-ssa-pre.c: Fix a comment typo.
328
329 2005-04-27  Zdenek Dvorak  <dvorakz@suse.cz>
330
331         PR tree-optimization/21171
332         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Do not
333         record address uses if the reference is volatile.
334
335 2004-04-27  Paolo Bonzini  <bonzini@gnu.org>
336
337         * tree-complex.c (expand_vector_operation): New, extracted from
338         expand_vector_operations_1.
339         (tree_vec_extract): Build a NOP_EXPR.
340         (expand_vec_parallel): Do not care about returning the correct type.
341         (expand_vector_operations_1): Call expand_vector_operation.
342         Build the VIEW_CONVERT_EXPR on the left side of MODIFY_EXPRs.
343
344         * tree-complex.c (gate_expand_vector_operations): New.
345         (pass_lower_vector_ssa): Use it.
346         * tree-optimize.c (init_tree_optimization_passes): Include
347         pass_lower_vector_ssa.
348         * tree-vect-transform.c (vect_min_worthwhile_factor): New.
349         (vectorizable_operation): Use it.
350         * tree-vectorizer.c (get_vectype_for_scalar_type): Accept
351         integer modes for the vector type.
352
353         * defaults.h (UNITS_PER_SIMD_WORD): Default to UNITS_PER_WORD.
354         * tree-vect-analyze.c (vect_enhance_data_refs_alignment):
355         Do not cope with UNITS_PER_SIMD_WORD == 0.
356         * tree-vectorizer.c (get_vectype_for_scalar_type): Check
357         if the scalar type is not bigger than UNITS_PER_SIMD_WORD.
358         (vectorize_loops): Do not check that UNITS_PER_SIMD_WORD > 0.
359         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Default to UNITS_PER_WORD.
360         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
361         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
362         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
363
364         * config/alpha/alpha.h (UNITS_PER_SIMD_WORD): Remove.
365         * config/bfin/bfin.h (UNITS_PER_SIMD_WORD): Remove.
366         * config/ia64/ia64.h (UNITS_PER_SIMD_WORD): Remove.
367
368         * doc/tm.texi (UNITS_PER_WORD): Rephrase more accurately.
369         (UNITS_PER_SIMD_WORD): New.
370
371 2005-04-27  Nathan Sidwell  <nathan@codesourcery.com>
372
373         * config/ia64/ia64.c (ia64_encode_addr_area): Use gcc_assert and
374         gcc_unreachable as appropriate.
375         (ia64_expand_load_address, ia64_expand_tls_address,
376         ia64_split_tmode, ia64_split_tmode_move, ia64_expand_compare,
377         ia64_expand_vecint_compare, ia64_expand_vecint_minmax,
378         next_scratch_gr_reg, ia64_initial_elimination_offset,
379         ia64_expand_prologue, ia64_expand_epilogue,
380         ia64_output_dwarf_dtprel, ia64_print_operand,
381         ia64_register_move_cost, first_instruction, rws_access_regno,
382         update_set_flags, rtx_needs_barrier, group_barrier_needed_p,
383         ia64_sched_init, ia64_variable_issue,
384         ia64_first_cycle_multipass_dfs_lookahead_guard,
385         ia64_dfa_new_cycle, issue_nops_and_insn, get_template, bundling,
386         ia64_st_address_bypass_p, ia64_ld_address_bypass_p, process_set,
387         process_for_unwind_directive, ia64_hpux_file_end): Likewise.
388         * config/ia64/ia64.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise.
389         * config/ia64/ia64.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
390         * config/ia64/predicates.md (got_symbolic_operand,
391         sdata_symbolic_operand): Likewise.
392         * config/ia64/vect.md (vcondv2sf): Likewise.
393
394 2005-04-27  Matt Thomas <matt@3am-software.com>
395
396         * config/vax/vax.c (legitimate_constant_address_p): New.  Formerly
397         CONSTANT_ADDRESS_P in config/vax/vax.h
398         (legitimate_constant_p): Added.  Formerly CONSTANT_P in vax.h. 
399         (INDEX_REGISTER_P): New.
400         (BASE_REGISTER_P): New.
401         (indirectable_constant_address_p): New.  Adapted from
402         INDIRECTABLE_CONSTANT_ADDRESS_P in vax.h. Use SYMBOL_REF_LOCAL_P.
403         (indirectable_address_p): New.  Adapted from
404         INDIRECTABLE_ADDRESS_P in vax.h.
405         (nonindexed_address_p): New.  Adapted from
406         GO_IF_NONINDEXED_ADDRESS in vax.h.
407         (index_temp_p): New.  Adapted from INDEX_TERM_P in vax.h.
408         (reg_plus_index_p): New.  Adapted from GO_IF_REG_PLUS_INDEX in vax.h.
409         (legitimate_address_p): New.  Adapted from
410         GO_IF_LEGITIMATE_ADDRESS in vax.h.
411         (vax_mode_dependent_address_p): New.  Adapted from
412         GO_IF_MODE_DEPENDENT_ADDRESS in vax.h.
413         * config/vax/vax.h (CONSTANT_ADDRESS_P): Use
414         legitimate_constant_address_p.
415         (CONSTANT_P): Use legitimate_constant_p.
416         (INDIRECTABLE_CONSTANT_ADDRESS_P): Removed.
417         (INDIRECTABLE_ADDRESS_P): Removed.
418         (GO_IF_NONINDEXED_ADDRESS): Removed.
419         (INDEX_TEMP_P): Removed.
420         (GO_IF_REG_PLUS_INDEX): Removed.
421         (GO_IF_LEGITIMATE_ADDRESS): Use legitimate_address_p. Two
422         definitions, depending on whether REG_OK_STRICT is defined.
423         (GO_IF_MODE_DEPENDENT_ADDRESS): Use vax_mode_dependent_address_p.
424         Two definitions, depending on whether REG_OK_STRICT is defined.
425         * config/vax/vax-protos.h (legitimate_constant_address_p): Prototype
426         added.
427         (legitimate_constant_p): Prototype added.
428         (legitimate_address_p): Prototype added.
429         (vax_mode_dependent_address_p): Prototype added.
430
431 2005-04-27  Kazu Hirata  <kazu@cs.umass.edu>
432
433         * tree.h (phi_arg_d): Expand a comment in phi_arg_d.
434
435 2005-04-27  Joseph S. Myers  <joseph@codesourcery.com>
436
437         PR c/21213
438         * c-decl.c (finish_struct): Don't dereference NULL TYPE_FIELDS of
439         transparent union.
440
441 2005-04-27  Joseph S. Myers  <joseph@codesourcery.com>
442
443         PR c/20740
444         * c-format.c (init_dynamic_asm_fprintf_info): Give errors, not
445         assertion failures, if __gcc_host_wide_int__ is not properly
446         defined.
447         (init_dynamic_diag_info): Give errors, not assertion failures, if
448         location_t, tree or __gcc_host_wide_int__ are not properly
449         defined.
450
451 2005-04-26  Kazu Hirata  <kazu@cs.umass.edu>
452
453         * tree-ssa-loop-ivopts.c (ivopts_data, decl_rtl_to_reset,
454         n_iv_uses, iv_use, n_iv_cands, iv_cand,
455         tree_ssa_iv_optimize_init, record_use, add_candidate_1,
456         prepare_decl_rtl, free_loop_data,
457         tree_ssa_iv_optimize_finalize): Use the VEC API instead of
458         VARRAY.
459
460         * tree.h (tree_phi_node): Add a comment about the order of PHI
461         arguments.
462
463 2005-04-26  Paul Brook  <paul@codesourcery.com>
464
465         * config/arm/arm.md (thumb_mulsi3): Use two-operand assembly form.
466
467 2005-04-26  Nathan Sidwell  <nathan@codesourcery.com>
468
469         * config/mips.mips.c (mips_legitimize_tls_address): Use
470         gcc_unreachable.
471
472         * config/mmix/mmix.c (mmix_assemble_integer): Use gcc_assert.
473         * config/mmix/crti.asm (_init): Reword comment to avoid 'abort'.
474         * config/mmix/mmix.md (nonlocal_goto_receiver): Likewise.
475
476         * config/sparc/sparc.h (enum reg_class): Reword comment to avoid
477         'abort'.
478
479 2005-04-26  Jeff Law  <law@redhat.com>
480
481         * tree-flow-inline.h (op_iter_next_must_and_may_def): New.
482         (op_iter_init_must_and_may_def): Likewise.
483         (unmodifiable_var_p): Move to a later point in the file.
484         * tree-ssa-operands.h (FOR_EACH_SSA_MUST_AND_MAY_DEF_OPERAND): New.
485         * tree-ssa-dse.c (need_imm_uses_for): Remove, no longer needed.
486         (dse_record_phis): Directly check for virtual operands rather than
487         using need_imm_uses_for.
488         (dse_optimize_stmt): Handle V_MUST_DEF operands.  Handle case where
489         store has multiple V_{MAY,MUST}_DEF operands.
490
491 2005-04-26  Andrew MacLeod  <amacleod@redhat.com>
492
493         * tree-cfg.c (bsi_replace): Delink immediate uses for the original
494         stmt.
495
496 2005-04-26  Kazu Hirata  <kazu@cs.umass.edu>
497
498         * tree-cfg.c (lv_adjust_loop_header_phi): Speed up moving a
499         call to find_edge outside a loop to go through a PHI chain.
500
501 2004-04-26  Richard Guenther  <rguenth@gcc.gnu.org>
502
503         PR tree-optimization/17598
504         * fold-const.c (fold_binary): Fold comparisons of addresses
505         of COMPONENT_REFs which reference the same field to
506         comparisons of the addresses of the base objects.
507
508 2005-04-26  Julian Brown  <julian@codesourcery.com>
509
510         * config/arm/arm.c (arm_return_in_msb): New function.
511         (arm_must_pass_in_stack): New function.
512         (TARGET_RETURN_IN_MSB): Define target hook.
513         (TARGET_MUST_PASS_IN_STACK): Define target hook.
514         (arm_function_value): Pad small aggregate return.
515         (arm_pad_arg_upward): New function.
516         (arm_pad_reg_upward): New function.
517         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Include complex values.
518         (FUNCTION_ARG_PADDING): Define macro.
519         (BLOCK_REG_PADDING): Define macro.
520         (PAD_VARARGS_DOWN): Correct padding for AAPCS.
521         * config/arm/arm-protos.h (arm_pad_arg_upward): Declare function.
522         (arm_pad_reg_upward): Declare function.
523
524 2005-04-26  Kazu Hirata  <kazu@cs.umass.edu>
525
526         * basic-block.h (ei_cond): New.
527         (FOR_EACH_EDGE): Call ei_cond.
528
529         PR tree-optimization/21047
530         * fold-const.c (fold_binary): Abort on ASSERT_EXPR.
531         (fold): Don't handle ASSERT_EXPR.
532
533 2005-04-25  Roger Sayle  <roger@eyesopen.com>
534
535         * sched-deps.c (sched_analyze_1): On STACK_REGS targets, x87, treat
536         all writes to any stack register as a read/write dependency on
537         FIRST_STACK_REG.
538         (sched_analyze_2): Likewise, for reads from any stack register.
539
540 2005-04-25  Richard Henderson  <rth@redhat.com>
541
542         * final.c (output_addr_const): Revert 2005-04-09 change.
543
544 2005-04-25  Mike Stump  <mrs@apple.com>
545
546         * config/darwin.c (darwin_encode_section_info): Always set
547         MACHO_SYMBOL_STATIC for all ! TREE_PUBLIC symbols.
548
549 2005-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
550
551         * collect2.c, gcc.c, gcov-dump.c, gcov.c, gen-protos.c,
552         gensupport.c, protoize.c, toplev.c: Replace calls to
553         `unlock_stream' with `unlock_std_streams'.
554
555 2005-04-25  Devang Patel <dpatel@apple.com>
556
557         * dbxout.c (dbxout_type): Emit attribute vector.
558         
559 2005-04-05  Paul Brook  <paul@codesourcery.com>
560
561         * target-def.h (TARGET_CXX_USE_AEABI_ATEXIT): Define.
562         * target.h (struct gcc_target): Add cxx.use_aeabi_atexit.
563         * config/arm/arm.c (arm_cxx_atexit_name): New function.
564         (TARGET_CXX_USE_AEABI_ATEXIT): New macro.
565         * cp/decl.c (get_atexit_node): Reorder arguments for __aeabi_atexit.
566         (register_dtor_fn): Likewise.
567         * doc/tm.texi: Document TARGET_CXX_USE_AEABI_ATEXIT.
568
569 2005-04-25  Ian Lance Taylor  <ian@airs.com>
570
571         * c-common.def (EXPR_STMT): Remove, moved to C++ frontend.
572         * c-common.h (EXPR_STMT_EXPR): Don't define.
573         (c_common_stmt_codes): Don't define.
574         * c-dump.c (c_dump_tree): Remove EXPR_STMT case.
575         * c-gimplify.c (gimplify_expr_stmt): Remove.
576         (c_gimplify_expr): Remove EXPR_STMT case.
577         * c-objc-common.c (c_objc_common_init): Remove stmt_codes and call
578         to INIT_STATEMENT_CODES.
579         * c-pretty-print.c (pp_c_statement): Just call dump_generic_node.
580
581 2005-04-25  Jan Hubicka  <jh@suse.cz>
582
583         * tree-cfg.c (tree_duplicate_bb): Duplicate EH region too.
584
585         * except.c: Include diagnostic.h
586         (dump_eh_tree, verify_eh_tree): New functions.
587         * except.h (verify_eh_tree, dump_eh_tree, verify_eh_edges): Declare.
588         * tree-cfg.c (tree_verify_flow_info): verify eh edges.
589         (dump_function_to_file): dump eh tree.
590         * tree-eh.c (mark_eh_edge): New function.
591         (mark_eh_edge_found_error): New static variable.
592         (verify_eh_edges): New function.
593
594 2005-04-25  Nathan Sidwell  <nathan@codesourcery.com>
595
596         * tree-ssa-alias.c (fieldoff_t): Remove.
597         (fieldoff_s): typedef the structure itself.  Create a vector of
598         objects.
599         (push_fields_onto_fieldstack): Return count of fields pushed.
600         Remove peeling of first field.  Adjust.
601         (fieldoff_compare): Adjust.
602         (create_overlap_variables_for): Adjust.
603
604 2005-04-25  Joseph S. Myers  <joseph@codesourcery.com>
605
606         * doc/invoke.texi (Blackfin Options): Avoid empty @opindex line.
607
608 2005-04-25  Joseph S. Myers  <joseph@codesourcery.com>
609
610         PR bootstrap/21215
611         * doc/install.texi: Document correct assembler and linker to use
612         on i?86-*-solaris2.10.
613
614 2005-04-25  Steven Bosscher  <stevenb@suse.de>
615
616         Fix PR tree-optimization/21173
617
618         * tree-ssa-pre.c (create_expression_by_pieces): Simplify code.
619         Unshare expression we pass to force_gimple_operand.
620
621 2005-04-25  J"orn Rennecke <joern.rennecke@st.com>
622             Stephen Clarke <stevec@superh.com>
623             Roger Sayle <roger@eyesopen.com>
624
625         PR rtl-optimization/20413
626         * cfgrtl.c (redirect_edge_and_branch): Use Pmode instead of
627         VOIDmode for LABEL_REF.
628         * final.c (shorten_branches): Likewise.
629         * jump.c (mark_all_labels, redirect_exp_1): Likewise.
630         * loop.c (reg_dead_after_loop): Likewise.
631         * varasm.c (decode_addr_const): Likewise.
632         * doc/rtl.texi: Document mode requirement for LABEL_REF.
633
634 2005-04-25  Ralf Corsepius  <ralf.corsepius@rtems.org>
635
636         * config.gcc (avr-*-*): Remove redundant "case".
637
638 2005-04-25  Kazu Hirata  <kazu@cs.umass.edu>
639
640         * tree-vect-analyze.c (vect_mark_relevant): Take
641         VEC(tree,heap) instead of varray_type as an argument.
642         (vect_mark_stmts_to_be_vectorized): Change the type of
643         worklist to VEC(tree,heap).  Adjust uses of worklist.
644
645 2005-04-24  Devang Patel  <dpatel@apple.com>
646
647         *  config/rs6000/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New.
648         
649 2005-04-24  Ian Lance Taylor  <ian@airs.com>
650
651         * c-semantics.c (build_stmt): Remove test of specific tree codes
652         for TREE_SIDE_EFFECTS handling.
653
654 2005-04-24  Per Bothner  <per@bothner.com>
655
656         * c-opts.c (finish_options):  Make the line-number of the <built-in>
657         location 0, as assumed elsewhere, rather than 1.
658
659 2005-04-24  Kazu Hirata  <kazu@cs.umass.edu>
660
661         * tree-ssa-uncprop.c (equiv_stack): Change the type o
662         VEC(tree,heap).
663         (tree_ssa_uncprop, uncprop_finalize_block,
664         uncprop_initialize_block): Update uses of equiv_stack.
665
666 2005-04-24  Richard Henderson  <rth@redhat.com>
667
668         PR rtl-opt/21163
669         * simplify-rtx.c (simplify_binary_operation) <IOR>: Check
670         for SCALAR_INT_MODE_P instead of not MODE_CC before returning
671         constm1_rtx.
672         <AND, LSHIFTRT, UMIN>: Use CONST0_RTX.
673         <UDIV, UMOD>: Use CONST0_RTX and CONST1_RTX.
674         <DIV, MOD>: Likewise.
675
676 2005-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
677
678         * collect2.c (main): Unlock the stdio streams.
679         * gcc.c (main): Likewise.
680         * gcov-dump.c (main): Likewise.
681         * gcov.c (main): Likewise.
682         * gen-protos.c (main): Likewise.
683         * gensupport.c (init_md_reader_args_cb): Likewise.
684         * protoize.c (main): Likewise.
685         * toplev.c (general_init): Likewise.
686
687 2005-04-24  Jakub Jelinek  <jakub@redhat.com>
688
689         PR middle-end/20991
690         * cgraph.h (cgraph_local_info): Add vtable_method field.
691         * varasm.c (mark_decl_referenced): If cgraph_global_info_ready
692         and node is vtable_method, finalized and not reachable, don't do
693         anything.
694
695 2005-04-24  Kazu Hirata  <kazu@cs.umass.edu>
696
697         * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Use
698         COMPARISON_CLASS_P.
699         * tree-ssa-pre.c (create_value_expr_from): Use
700         CONSTANT_CLASS_P and REFERENCE_CLASS_P.
701         * tree-ssa-propagate.c (stmt_makes_single_load,
702         stmt_makes_single_store): Use REFERENCE_CLASS_P.
703         * tree-vect-transform.c (vect_is_simple_cond): Use
704         COMPARISON_CLASS_P.
705         * tree-vrp.c (extract_range_from_assert,
706         build_assert_expr_for, fp_predicate, has_assert_expr): Use
707         COMPARISON_CLASS_P.
708
709         * tree-ssa-live.c (build_tree_conflict_graph): Change the type
710         of tpa_to_clear to VEC(int,heap).  Update uses of
711         tpa_to_clear.  Free tpa_to_clear at the end.
712
713 2005-04-24  Andrew Pinski  <pinskia@physics.uc.edu>
714
715         * tree.h (TREE_THIS_VOLATILE): Document the effect on a
716         function decl.
717
718 2005-04-24  Nathan Sidwell  <nathan@codesourcery.com>
719
720         * config/rs6000/rs6000.c (rs6000_override_options): Use gcc_assert
721         and gcc_unreachable as appropriate.
722         (num_insns_constant, output_vec_const_move,
723         build_mask64_2_operands, rs6000_output_dwarf_dtprel,
724         rs6000_emit_set_const, rs6000_emit_move,
725         spe_build_register_parallel, function_arg,
726         rs6000_move_block_from_reg, altivec_expand_predicate_builtin,
727         spe_expand_predicate_builtin, spe_expand_evsel_builtin,
728         rs6000_expand_builtin, spe_init_builtins, altivec_init_builtins,
729         rs6000_common_init_builtins, expand_block_clear,
730         expand_block_move, validate_condition_mode, ccr_bit, extract_MB,
731         extract_ME, rs6000_get_some_local_dynamic_name,
732         rs6000_output_function_entry, print_operand,
733         print_operand_address, rs6000_generate_compare, rs6000_emit_sCOND,
734         output_cbranch, output_e500_flip_gt_bit,
735         rs6000_emit_vector_compare, rs6000_emit_vector_compare,
736         rs6000_emit_cmove, rs6000_emit_minmax, rs6000_split_multireg_move,
737         compute_save_world_info, rs6000_stack_info,
738         rs6000_emit_load_toc_table, rs6000_frame_related,
739         spe_synthesize_frame_save, rs6000_emit_epilogue,
740         rs6000_output_function_epilogue, rs6000_hash_constant, output_toc,
741         output_function_profiler, rs6000_trampoline_size,
742         rs6000_initialize_trampoline, find_addr_reg,
743         rs6000_machopic_legitimize_pic_address,
744         rs6000_initial_elimination_offset,
745         rs6000_dbx_register_number): Likewise.
746         * config/rs6000/rs6000.md (*fix_truncdfsi2_internal,
747         *movdf_hardfloat32, *movdf_softfloat32, *fix_trunctfsi2_internal,
748         *movti_power, *movti_string, call, call_value, sibcall,
749         sibcall_value): Likewise.
750         * config/rs6000/spe.md (*movdf_e500_double,
751         *movv2si_internal): Likewise.
752         * config/rs6000/rs6000.h (PREFERRED_RELOAD_CLASS): Remove 'abort'
753         from comment.
754
755 2005-04-24  Richard Henderson  <rth@redhat.com>
756
757         PR target/21101
758         * config/i386/i386.h (CANNOT_CHANGE_MODE_CLASS): Move guts to ...
759         * config/i386/i386.c (ix86_cannot_change_mode_class): ... here.
760         Deny modes smaller than 4 bytes.
761         * config/i386/i386-protos.h: Update.
762
763 2005-04-24  Ralf Corsepius  <ralf.corsepius@rtems.org>
764
765         * config.gcc (h8300-*-rtems*): Add h8300-*-rtemscoff*.
766         Switch h8300-*-rtems* to ELF.
767
768 2005-04-24  Kazu Hirata  <kazu@cs.umass.edu>
769
770         * vec.h (VEC_safe_grow): Replace grow with safe_grow.
771
772 2005-04-23  Kazu Hirata  <kazu@cs.umass.edu>
773
774         * ipa-inline.c, tree-ssa-operands.h: Fix comment typos.
775
776 2005-04-23  Richard Guenther  <rguenth@gcc.gnu.org>
777
778         PR middle-end/21082
779         * fold-const.c: Fold &a[i]-&a[j] to i-j.
780
781 2005-04-23  Zdenek Dvorak  <dvorakz@suse.cz>
782
783         * tree-ssa-loop-niter.c (tree_simplify_using_condition): Expand simple
784         definitions of ssa names in condition.  Split recusive part to ...
785         (tree_simplify_using_condition_1): New function.
786         (expand_simple_operations): New function.
787
788 2005-04-23  Zdenek Dvorak  <dvorakz@suse.cz>
789
790         * tree-ssa-loop-ivopts.c (struct cost_pair): Add value field.
791         (find_interesting_uses_cond): Do not use integer_zerop and
792         integer_nonzerop to check for integer constants.
793         (set_use_iv_cost): Record the value field.
794         (determine_use_iv_cost_generic, determine_use_iv_cost_address,
795         determine_use_iv_cost_outer): Set the value field of the cost pair.
796         (may_eliminate_iv): Do not return the comparison code.
797         (iv_elimination_compare): New function.
798         (determine_use_iv_cost_condition): Set the value field.  Record
799         noneliminable invariants correctly.
800         (rewrite_use_compare, rewrite_use_outer): Use the value field.
801
802 2005-04-23  DJ Delorie  <dj@redhat.com>
803
804         * diagnostic.c (warning): Accept parameter to classify warning option.
805         (warning0): New, for when a pointer to an error() like function is needed.
806         * errors.c (warning): Likewise.
807         * errors.h (warning, warning0): Adjust prototypes.
808         * toplev.h (warning, warning0): Likewise.
809
810         * attribs.c, builtins.c, c-common.c, c-decl.c, c-format.c,
811         c-gimplify.c, c-lex.c, c-objc-common.c, c-opts.c, c-parser.c,
812         c-pragma.c, c-typeck.c, calls.c, cgraph.c, coverage.c, emit-rtl.c,
813         fold-const.c, fortran/trans-decl.c, function.c, gcse.c,
814         genautomata.c, haifa-sched.c, opts.c, passes.c, regclass.c,
815         reload1.c, stmt.c, stor-layout.c, toplev.c, tree-cfg.c,
816         tree-dump.c, tree-inline.c, tree-mudflap.c, tree-optimize.c,
817         tree-ssa.c, tree.c, varasm.c: Adjust warning() callers.
818
819         * config/alpha/alpha.c, config/arc/arc.c, config/arm/arm.c,
820         config/avr/avr.c, config/bfin/bfin.c, config/c4x/c4x-c.c,
821         config/c4x/c4x.c, config/cris/cris.c, config/darwin-c.c,
822         config/darwin.c, config/darwin.h, config/h8300/h8300.c,
823         config/i386/cygming.h, config/i386/djgpp.h, config/i386/i386.c,
824         config/i386/winnt.c, config/ia64/ia64-c.c, config/ia64/ia64.c,
825         config/ip2k/ip2k.c, config/m32r/m32r.c, config/m68hc11/m68hc11.c,
826         config/m68k/m68k.c, config/mcore/mcore.c, config/mips/mips.c,
827         config/mmix/mmix.c, config/ns32k/ns32k.c, config/pa/pa-hpux11.h,
828         config/pa/pa.c, config/rs6000/aix43.h, config/rs6000/aix51.h,
829         config/rs6000/aix52.h, config/rs6000/darwin.h,
830         config/rs6000/rs6000-c.c, config/rs6000/rs6000.c,
831         config/s390/s390.c, config/sh/sh.c, config/sh/sh.h,
832         config/sh/symbian.c, config/sol2-c.c, config/sol2.c,
833         config/stormy16/stormy16.c, config/v850/v850-c.c,
834         config/v850/v850.c, config/xtensa/xtensa.c: Adjust warning()
835         callers.
836         
837 2005-04-23  Richard Henderson  <rth@redhat.com>
838
839         PR rtl-opt/21102
840         * simplify-rtx.c (simplify_binary_operation): Fix mode check before
841         performing some integral scalar simplifications.
842
843 2005-04-23  Richard Henderson  <rth@redhat.com>
844
845         PR target/21099
846         * config/i386/i386.c (ix86_split_to_parts): Use proper mode when
847         simplifying CONST_VECTOR.
848
849 2005-04-23  Kazu Hirata  <kazu@cs.umass.edu>
850
851         * tree-ssa-live.c (live_worklist): Take a stack allocated on
852         heap as an argument.  Update uses of stack.
853         (calculate_live_on_entry): Allocate stack on heap.
854
855         * tree-ssa-live.c (build_tree_conflict_graph): Allocate
856         partition_link and tpa_nodes on heap.
857
858         * tree-ssa-dce.c (worklist): Change to VEC(tree,heap).
859         (mark_stmt_necessary, propagate_necessity,
860         mark_really_necessary_kill_operand_phis): Update uses of
861         worklist.
862         (tree_dce_init): Allocate worklist using VEC_alloc.
863         (tree_dce_done): Free worklist using VEC_free.
864
865 2005-04-23  Mike Stump  <mrs@apple.com>
866
867         * config/darwin.c (machopic_indirection_name): Don't use
868         quotes needlessly.
869         (darwin_emit_unwind_label): Use user_label_prefix instead of
870         "_".
871
872 2005-04-23  Kazu Hirata  <kazu@cs.umass.edu>
873
874         * final.c, ipa-inline.c, varasm.c: Fix comment typos.
875
876 2005-04-23  Hans-Peter Nilsson  <hp@axis.com>
877
878         * config.gcc <cris-*>: Specify .opt files.
879         * config/cris/cris.opt, config/cris/elf.opt, config/cris/aout.opt,
880         config/cris/linux.opt: New files.
881         * config/cris/aout.h (CRIS_SUBTARGET_SWITCHES)
882         (CRIS_SUBTARGET_LONG_OPTIONS): Don't define.
883         (TARGET_ELF): Override to 0.
884         (CRIS_SUBTARGET_HANDLE_OPTION): Override to handle -melinux and
885         -melinux-stacksize=N.
886         * config/cris/cris.c: (cris_handle_option): New function.
887         (TARGET_DEFAULT_TARGET_FLAGS): Override.
888         (TARGET_HANDLE_OPTION): Override to cris_handle_option.
889         (cris_override_options): Use MASK_*, not TARGET_MASK_*.
890         * config/cris/cris.h (TARGET_MASK_SVINTO, TARGET_SVINTO,
891         (TARGET_MASK_CCINIT, TARGET_CCINIT, TARGET_MASK_PDEBUG)
892         (TARGET_PDEBUG, TARGET_MASK_SIDE_EFFECT_PREFIXES)
893         (TARGET_SIDE_EFFECT_PREFIXES, TARGET_MASK_EXPAND_MUL)
894         (TARGET_EXPAND_MUL, TARGET_MASK_STACK_ALIGN, TARGET_STACK_ALIGN)
895         (TARGET_MASK_CONST_ALIGN, TARGET_CONST_ALIGN)
896         (TARGET_MASK_DATA_ALIGN, TARGET_DATA_ALIGN)
897         (TARGET_MASK_PROLOGUE_EPILOGUE, TARGET_PROLOGUE_EPILOGUE)
898         (TARGET_MASK_ETRAX4_ADD, TARGET_ETRAX4_ADD)
899         (TARGET_MASK_ALIGN_BY_32, TARGET_ALIGN_BY_32, TARGET_MASK_ELF)
900         (TARGET_ELF, TARGET_MASK_LINUX, TARGET_LINUX)
901         (TARGET_MASK_AVOID_GOTPLT, TARGET_AVOID_GOTPLT)
902         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG, TARGET_SWITCHES)
903         (CRIS_SUBTARGET_SWITCHES, TARGET_OPTIONS)
904         (CRIS_SUBTARGET_LONG_OPTIONS): Don't define.
905         (TARGET_LINUX): Define 0.
906         (TARGET_DEFAULT): Use MASK_*, not TARGET_MASK_*.
907         (CRIS_SUBTARGET_DEFAULT): Define to 0, not TARGET_MASK_ELF.
908         (CRIS_SUBTARGET_DEFAULT): New empty default macro.
909         * config/cris/linux.h (CRIS_SUBTARGET_SWITCHES): Don't define.
910         (TARGET_LINUX): Override to 1.
911         (CRIS_SUBTARGET_DEFAULT): Use MASK_*, not TARGET_MASK_*.
912
913 2005-04-23  Nathan Sidwell  <nathan@codesourcery.com>
914
915         * haifa-sched.c (schedule_block): Fix thinko in previous
916         assertification patch.
917
918 2005-04-23  Richard Sandiford  <rsandifo@redhat.com>
919
920         * config.gcc (hppa[12]*-*-hpux10*): Add pa/pa-hpux.opt to
921         $extra_options.  Also add pa/pa-hpux1010.opt for hpux10.[1-9]*.
922         (hppa*64*-*-hpux11*): Add pa/pa-hpux1010.h to $tm_file.  Add
923         pa/pa-hpux.opt, pa/pa-hpux1010.opt and pa/pa64-hpux.opt to
924         $extra_options.  Also add pa/pa-hpux1111.opt for hpux11.[1-9]*.
925         (hppa[12]*-*-hpux11*): Add pa/pa-hpux1010.h to $tm_file.  Add
926         pa/pa-hpux.opt to $extra_options.  Also add pa/pa-hpux1111.opt
927         for hpux11.[1-9]*.
928         * config/pa/pa.h (architecture_type, rtx_def, pa_arch_string, pa_arch)
929         (pa_fixed_range_string, pa_cpu_string, pa_unix_string, target_flags)
930         (MASK_PA_11, MASK_DISABLE_FPREGS, TARGET_DISABLE_FPREGS)
931         (MASK_NO_SPACE_REGS, TARGET_NO_SPACE_REGS, MASK_JUMP_IN_DELAY)
932         (TARGET_JUMP_IN_DELAY, MASK_DISABLE_INDEXING, TARGET_DISABLE_INDEXING)
933         (MASK_PORTABLE_RUNTIME, TARGET_PORTABLE_RUNTIME, MASK_GAS, TARGET_GAS)
934         (MASK_SOFT_FLOAT, TARGET_SOFT_FLOAT, MASK_LONG_LOAD_STORE)
935         (TARGET_LONG_LOAD_STORE, MASK_FAST_INDIRECT_CALLS)
936         (TARGET_FAST_INDIRECT_CALLS, MASK_BIG_SWITCH, TARGET_BIG_SWITCH)
937         (MASK_PA_20, MASK_SIO, TARGET_SIO, MASK_GNU_LD, TARGET_GNU_LD)
938         (MASK_LONG_CALLS, TARGET_LONG_CALLS, TARGET_PA_11, TARGET_PA_20)
939         (TARGET_SWITCHES, SUBTARGET_SWITCHES, TARGET_OPTIONS)
940         (SUBTARGET_OPTIONS): Delete.
941         (TARGET_PA_10): Redefine in terms of TARGET_PA_11 and TARGET_PA_20.
942         (TARGET_SCHED_DEFAULT): Define to a PROCESSOR_* enum (PROCESSOR_8000)
943         instead of a string.
944         * config/pa/pa.c (pa_arch, pa_arch_string, pa_fixed_range_string)
945         (pa_cpu_string, pa_unix_string): Delete.
946         (pa_cpu): Initialize to TARGET_SCHED_DEFAULT.
947         (flag_pa_unix): Initialize based on TARGET_HPUX_11_11 and
948         TARGET_HPUX_10_10.
949         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
950         (pa_handle_option): New function.
951         (override_options): Remove handling of -march=, -mfixed-range=,
952         -mschedule= and -munix=.
953         * config/pa/pa-hpux.h (SUBTARGET_SWITCHES): Delete.
954         * config/pa/pa-hpux1010.h (SUBTARGET_OPTIONS): Delete.
955         * config/pa/pa-hpux10.h (SUBTARGET_OPTIONS): Delete.
956         * config/pa/pa-hpux1111.h (SUBTARGET_OPTIONS): Delete.
957         * config/pa/pa-hpux11.h (SUBTARGET_OPTIONS): Delete.
958         * config/pa/pa64-hpux.h (SUBTARGET_SWITCHES): Delete.
959         * config/pa/pa64-start.h (TARGET_PA_11, TARGET_PA_20): #undef before
960         redefining.
961         * config/pa/pa.opt: New file.
962         * config/pa/pa-hpux.opt: New file.
963         * config/pa/pa-hpux1010.opt: New file.
964         * config/pa/pa-hpux1111.opt: New file.
965         * config/pa/pa64-hpux.opt: New file.
966
967 2005-04-22  David S. Miller  <davem@davemloft.net>
968
969         * rtl.h (CONST_DOUBLE): Fix comment, a CONST_DOUBLE holds an
970         integer when it's mode is VOIDmode not DImode.
971
972 2005-04-22  Geoffrey Keating  <geoffk@apple.com>
973
974         * config/rs6000/rs6000.md (sync_add<mode>_internal,
975         sync_addshort_internal, sync_sub<mode>_internal, sync_andsi_internal,
976         sync_anddi_internal, sync_boolsi_internal, sync_booldi_internal,
977         sync_boolc<mode>_internal, sync_boolc<mode>_internal2,
978         sync_boolcc<mode>_internal, sync_lock_test_and_set<mode>): Use
979         "bne- $-xxx" rather than local labels.
980         (sync_lock_release<mode>): Add second operand.
981         (lwsync): Use .long rather than a more meaningful opcode.
982         * doc/md.texi (Standard Names): Add description of second
983         parameter to sync_lock_test_and_set.
984
985 2005-04-23  Kazu Hirata  <kazu@cs.umass.edu>
986
987         PR tree-optimization/21088
988         * fold-const.c (fold_unary, fold_binary, fold_ternary):
989         Export.
990         * tree-vrp.c (compare_values): Use fold_binary to compare
991         pointers.  Use boolean_type_node as the type of a comparison
992         expression being folded.
993         * tree.h: Add prototypes for fold_unary, fold_binary,
994         fold_ternary.
995
996         * tree-ssa-dom.c: Fix formatting.
997
998 2005-04-22  Diego Novillo  <dnovillo@redhat.com>
999
1000         * Makefile.in (tree-into-ssa.o): Add dependency on PARAMS_H.
1001         * lambda-code.c (perfect_nestify): Mark virtual operands in
1002         the moved statement for renaming.
1003         * params.def (PARAM_MIN_VIRTUAL_MAPPINGS): Define.
1004         (PARAM_VIRTUAL_MAPPINGS_TO_SYMS_RATIO): Define.
1005         * params.h (MIN_VIRTUAL_MAPPINGS): Define.
1006         (VIRTUAL_MAPPINGS_TO_SYMS_RATIO): Define.
1007         * tree-flow.h (struct var_ann_d): Update comments.
1008         (rewrite_to_new_ssa_names_bb, rewrite_to_new_ssa_names,
1009         allocate_ssa_names, find_phi_node_for, dump_tree_ssa,
1010         debug_tree_ssa, debug_def_blocks, dump_tree_ssa_stats,
1011         debug_tree_ssa_stats, rewrite_ssa_into_ssa,
1012         dump_repl_tbl, debug_repl_tbl, dump_names_replaced_by,
1013         debug_names_replaced_by): Remove declarations.
1014         (delete_update_ssa, get_current_def, set_current_def): Declare.
1015         (rewrite_into_loop_closed_ssa): Add new argument.  Update
1016         all callers.
1017         * tree-into-ssa.c: Include params.h.
1018         (old_virtual_ssa_names): Remove.  Update all users.
1019         (need_to_replace_names_p): Remove.  Update all users.
1020         (struct update_ssa_stats_d): Declare.
1021         (update_ssa_stats): New local.
1022         (dump_tree_ssa, debug_tree_ssa, debug_def_blocks,
1023         dump_tree_ssa_stats, debug_tree_ssa_stats,
1024         dump_update_ssa, debug_update_ssa,
1025         dump_names_replaced_by, debug_names_replaced_by): Declare.
1026         (get_current_def, set current_def): Make extern.
1027         (is_old_name, is_new_name): Protect against references
1028         past the end of the sets.
1029         (add_new_name_mapping): Assert that OLD and NEW are
1030         different SSA names for the same symbol.
1031         When adding a virtual mapping, update stats for virtual
1032         mapping heuristic.
1033         (insert_phi_nodes_for): If UPDATE_P is true, create the
1034         LHS of the new PHI by duplicating SSA name VAR.
1035         (insert_phi_nodes_1): Remove.  Update all users.
1036         (insert_phi_nodes): Remove second argument.  Update all
1037         users.
1038         (maybe_replace_use, maybe_replace_def): New.
1039         (rewrite_update_stmt): Call them.
1040         (mark_def_interesting): Remove calls to is_gimple_reg.
1041         (prepare_phi_args_for_update): Remove.  Update all users.
1042         (prepare_block_for_update): Only process virtual operands
1043         and GIMPLE registers in normal form.
1044         (prepare_use_sites_for): New.
1045         (prepare_names_to_update): Rename from prepare_def_sites.
1046         Call prepare_use_sites_for.
1047         (dump_update_ssa): Rename from dump_repl_tbl.
1048         Update all users.
1049         Show statistics for virtual mapping heuristic.
1050         (debug_update_ssa): Rename from debug_debug_repl_tbl.
1051         (init_update_ssa): Initialize UPDATE_SSA_STATS.
1052         (delete_update_ssa): Make extern.
1053         (mark_set_for_renaming): If the set is empty, do nothing.
1054         (release_ssa_name_after_update_ssa): Update comment.
1055         (insert_updated_phi_nodes_for): Do not remove existing
1056         PHI nodes for symbols.
1057         (switch_virtuals_to_full_rewrite_p): New.
1058         (switch_virtuals_to_full_rewrite): New.
1059         (update_ssa): Call them.
1060         Clear REWRITE_THIS_STMT and REGISTER_DEFS_IN_THIS_STMT
1061         for every statement before updating.
1062         If all the names in NEW_SSA_NAMES have been marked for
1063         removal, do nothing.
1064         Only start at the top of the CFG if there are symbols in
1065         SYMS_TO_RENAME.
1066         (ssa_rewrite_finalize_block): Remove.
1067         (ssa_register_new_def): Remove.
1068         (ssa_rewrite_stmt): Remove.
1069         (ssa_rewrite_phi_arguments): Remove.
1070         (ssa_rewrite_initialize_block): Remove.
1071         (ssa_mark_def_sites): Remove.
1072         (ssa_mark_def_sites_initialize_block): Remove.
1073         (ssa_mark_phi_uses): Remove.
1074         (rewrite_ssa_into_ssa): Remove.
1075         * tree-phinodes.c (find_phi_node_for): Remove.
1076         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
1077         Call update_ssa.
1078         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops):
1079         Remove calls to verify_dominators and
1080         verify_loop_structure.
1081         (tree_unswitch_single_loop): Call update_ssa.
1082         * tree-ssa.c (verify_ssa): Assert that need_ssa_update_p
1083         returns false.
1084         Call verify_stmts.
1085         (delete_tree_ssa): Assert that need_ssa_update_p returns
1086         false.
1087         * tree-vect-transform.c (vect_transform_loop): Call update_ssa.
1088         * tree-vectorizer.c (allocate_new_names, rename_def_op,
1089         free_new_names): Remove.  Update all users.
1090         (rename_use_op): Call get_current_def.
1091         (rename_variables_in_bb): Do not handle any real or
1092         virtual definition.
1093         (slpeel_update_phis_for_duplicate_loop): Call
1094         get_current_def and set_current_def instead of using
1095         SSA_NAME_AUX.
1096         (slpeel_update_phi_nodes_for_guard2): Reformat comments.
1097         (slpeel_can_duplicate_loop_p): Call need_ssa_update_p,
1098         ssa_names_to_replace and delete_update_ssa.
1099         * doc/invoke.texi: Document --param min-virtual-mappings
1100         and --param virtual-mappings-ratio.
1101
1102 2005-04-22  Diego Novillo  <dnovillo@redhat.com>
1103
1104         * tree-cfg.c (tree_duplicate_bb): Call create_new_def_for
1105         for newly created PHI nodes.
1106         Call create_new_def_for for every new V_MAY_DEF and
1107         V_MUST_DEF on the copied statement.
1108         (struct ssa_name_map_entry): Remove.
1109         (ssa_name_map_entry_hash): Remove.
1110         (ssa_name_map_entry_eq): Remove.
1111         (allocate_ssa_names): Remove.
1112         (rewrite_to_new_ssa_names_def): Remove.
1113         (rewrite_to_new_ssa_names_use): Remove.
1114         (rewrite_to_new_ssa_names_bb): Remove.
1115         (rewrite_to_new_ssa_names): Remove.
1116         (tree_duplicate_sese_region): Remove variables ver,
1117         definitions, phi, ssa_name_map and bi.
1118         Call need_ssa_update_p instead of any_marked_for_rewrite_p.
1119         Call update_ssa.
1120         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
1121         update_ssa instead of rewrite_ssa_into_ssa.
1122         * tree-ssa-loop-manip.c (add_exit_phis_edge): Call
1123         create_new_def_for.
1124         (find_uses_to_rename_use): Add argument 'need_phis'.
1125         (find_uses_to_rename_stmt): Do not scan virtual operands.
1126         (find_uses_to_rename): Only scan PHI nodes for
1127         non-virtual names.
1128         (rewrite_into_loop_closed_ssa): Call update_ssa.
1129         (check_loop_closed_ssa_use): Ignore virtual operands.
1130         (check_loop_closed_ssa_stmt): Likewise.
1131         (verify_loop_closed_ssa): Do nothing if CURRENT_LOOPS is
1132         NULL.
1133         (rename_variables, set_phi_def_stmts): Remove.
1134         (tree_duplicate_loop_to_header_edge): Reformat comment.
1135         Remove variables BB, I and DEFINITIONS.
1136         Call need_ssa_update_p.
1137         Call update_ssa.
1138         (lv_adjust_loop_header_phi): Reformat comment.
1139         * tree-ssanames.c (ssa_names_to_rewrite): Remove.
1140         (marked_for_rewrite_p, any_marked_for_rewrite_p,
1141         mark_for_rewrite, unmark_all_for_rewrite,
1142         marked_ssa_names): Remove.  Update all users.
1143         (release_ssa_name): If VAR has been registered for SSA
1144         updating, do nothing.
1145         * tree-vrp.c (new_ssa_names, old_ssa_names): Remove.
1146         (build_assert_expr_for): Call register_new_name_mapping.
1147         (insert_range_assertions): Update call to update_ssa.
1148         * tree.h (mark_for_rewrite, unmark_all_for_rewrite,
1149         marked_for_rewrite_p, any_marked_for_rewrite_p,
1150         marked_ssa_names): Remove.
1151
1152 2005-04-22  Jeff Law  <law@redhat.com>
1153
1154         * tree-ssa-dom.c (block_defs_stack): Remove, no longer needed.
1155         (restore_currdefs_to_original_value): Likewise.
1156         (register_definitions_for_stmt): Likewise.
1157         (tree_ssa_dominator_optimize): No longer initialize CURRENT_DEF
1158         for each variable.  Do not allocate/free block_defs_stack either.
1159         Do not iterate if we just thread jumps.  Only iterate if the
1160         tree_cleanup_cfg does useful work (temporary).
1161         (dom_opt_initialize_block): No longer push a marker on
1162         BLOCK_DEFS_STACK.
1163         (dom_opt_finalize_block): Removal call to restore currdefs.
1164         Relax restrictions for recording edge equivalences.
1165         (record_equivalences_from_phis): No longer need to track
1166         CURRENT_DEF.
1167         (optimize_stmt): Similarly.
1168         (thread_across_edge): Simplify by removing the requirement that
1169         statements in the block we are threading through must be nops.
1170         (initialize_hash_element): Handle GOTO_EXPR.
1171
1172 2005-04-22  David S. Miller  <davem@davemloft.net>
1173
1174         * sched-vis.c (print_value): Use CONST_DOUBLE_LOW and
1175         CONST_DOUBLE_HIGH.
1176         * config/sparc/sparc.c (sparc_rtx_costs): Likewise, and
1177         fix check on CONST_DOUBLE mode.  It should be VOIDmode
1178         when it is representing an integer.
1179
1180 2005-04-22  Nathan Sidwell  <nathan@codesourcery.com>
1181
1182         * builtins.c (gimplify_va_arg_expr): Reword comments to avoid
1183         'abort'. Use gcc_assert and gcc_unreachable as appropriate.
1184         * c-format.c (get_constant, decode_format_attr, get_flag_spec, 
1185         find_char_info_specifier_index,
1186         find_length_info_modifier_index): Likewise.
1187         * c-typeck.c (composite_type, pop_init_level): Likewise.
1188         * combine.c (cant_combine_insn_p, try_combine): Likewise.
1189         * cse.c (cse_insn): Likewise
1190         * dominance.c (calc_dfs_tree): Likewise
1191         dwarf2out.c (loc_descriptor_from_tree_1,
1192         add_abstract_origin_attribute, force_decl_die,
1193         force_type_die): Likewise
1194         emit-rtl.c (operand_subword_force): Likewise
1195         explow.c (hard_function_value): Likewise
1196         expmed.c (store_bit_field, expand_divmod,
1197         emit_store_flag_force): Likewise
1198         expr.c (emit_move_multi_word, store_expr,
1199         expand_expr_real_1): Likewise
1200         final.c (this_is_asm_operands, shorten_branches, final_scan_insn,
1201         output_operand): Likewise
1202         flow.c (recompute_reg_usage): Likewise
1203         * function.c (assign_stack_temp_for_type, assign_temp, 
1204         handle_epilogue_set): Likewise
1205         * genextract.c (main): Likewise
1206         * gimplify.c (mostly_copy_tree_r, gimplify_return_expr,
1207         gimplify_modify_expr_rhs, gimplify_expr): Likewise
1208         * haifa-sched.c (ready_lastpos, ready_remove_first, ready_element,
1209         ready_remove, rm_line_notes, rm_other_notes,
1210         schedule_block): Likewise
1211         mips-tfile.c (copy_object, out_of_bounds): Likewise
1212
1213 2005-04-22 David Edelsohn  <edelsohn@gnu.org>
1214
1215         PR target/20813
1216         * config/rs6000/default64.h (TARGET_DEFAULT): Add MASK_PPC_GFXOPT.
1217         * config/rs6000/rs6000.c (processor_target_table): Rename rs64a to
1218         rs64.  Add MASK_PPC_GFXOPT to powerpc64 and rs64.
1219         (rs6000_init_libfuncs): Set TFmode optabs to xlq names if
1220         TARGET_XL_COMPAT.
1221         * doc/invoke.texi (PowerPC options): Change rs64a to rs64.
1222
1223 2005-04-22  Nathan Sidwell  <nathan@codesourcery.com>
1224
1225         * lambda-code.c: Define VEC(int,heap), VEC(lambda_loop,heap).
1226         (gcc_tree_to_linear_expression): Convert to heap allocated
1227         vectors.
1228         (gcc_loop_to_lambda_loop, gcc_loopnest_to_lambda_loopnest,
1229         lbv_to_gcc_expression, lle_to_gcc_expression,
1230         lambda_loopnest_to_gcc_loopnest, can_convert_to_perfect_nest, 
1231         perfect_nestify): Likewise.
1232         lambda.h (gcc_loopnest_to_lambda_loopnest,
1233         lambda_loopnest_to_gcc_loopnest): Likewise.
1234         tree-loop-linear.c (linear_transform_loops): Likewise.
1235
1236 2005-04-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
1237
1238         * config/sparc/predicates.md (arith_double_operand): Use
1239         trunc_int_for_mode if HOST_BITS_PER_WIDE_INT >=64.
1240         * config/sparc/sparc.md (movqi, movhi, movsi, movqi): Use gen_int_mode.
1241         (DImode, DFmode constant splitters): Likewise.  Remove code for
1242         TARGET_ARCH64 && HOST_BITS_PER_WIDE_INT < 64.
1243         (logical constant splitters): Use const_int_operand predicate.
1244         (lshrsi3_extend): Remove code for TARGET_ARCH64 &&
1245         HOST_BITS_PER_WIDE_INT < 64.
1246
1247 2005-04-22  Nathan Sidwell  <nathan@codesourcery.com>
1248
1249         * config/pa/pa.c (legitimize_pic_address): Use gcc_assert and
1250         gcc_unreachable as appropriate.
1251         (force_mode, emit_move_sequence, singlemove_string,
1252         output_move_double, output_fp_move_double, find_addr_reg,
1253         output_block_move, output_block_clear, output_and,
1254         output_64bit_and, output_ior, output_64bit_ior, store_reg_modify,
1255         pa_adjust_cost, pa_issue_rate, print_operand,
1256         output_global_address, output_arg_descriptor, output_cbranch,
1257         output_lbranch, output_bb, output_bvb, output_dbra, output_movb,
1258         output_call): Likewise.
1259         * config/pa/pa.md (call, call_value, sibcall, sibcall_value,
1260         prefetch, prefetch_cc, prefetch_nocc): Likewise.
1261
1262 2005-04-22  Zdenek Dvorak  <dvorakz@suse.cz>
1263
1264         * Makefile.in (LIBGCOV): Add _gcov_interval_profiler,
1265         _gcov_pow2_profiler and _gcov_one_value_profiler.
1266         (tree-profile.o): Add GGC_H and gt-tree-profile.h dependency.
1267         (GTFILES): Add $(srcdir)/tree-profile.c.
1268         * gcov-io.h (__gcov_interval_profiler, __gcov_pow2_profiler,
1269         __gcov_one_value_profiler): Declare.
1270         * gimplify.c (force_gimple_operand): Check whether the statements
1271         should be produced in ssa form.
1272         (force_gimple_operand_bsi): New function.
1273         * libgcov.c (__gcov_interval_profiler, __gcov_pow2_profiler,
1274         __gcov_one_value_profiler): New functions.
1275         * rtl-profile.c (rtl_gen_pow2_profiler): Only measure whether
1276         the profiled value is a power of two or not.
1277         * tree-cfg.c (tree_block_ends_with_condjump_p): Handle empty blocks.
1278         * tree-flow.h (in_ssa_p): Declare.
1279         (force_gimple_operand_bsi): Declare.
1280         * tree-into-ssa.c (in_ssa_p): New variable.
1281         (rewrite_into_ssa): Set in_ssa_p.
1282         * tree-outof-ssa.c (rewrite_out_of_ssa): Set in_ssa_p.
1283         * tree-profile.c: Include ggc.h and gt-tree-profile.h.
1284         (gcov_type_node, tree_interval_profiler_fn, tree_pow2_profiler_fn,
1285         tree_one_value_profiler_fn): New variables.
1286         (tree_init_edge_profiler): Initialize the profiler function decls.
1287         (tree_gen_edge_profiler): Use global gcov_type_node.
1288         (prepare_instrumented_value): New function.
1289         (tree_gen_interval_profiler, tree_gen_interval_profiler,
1290         tree_gen_one_value_profiler): Call the library functions instead of
1291         creating instrumentation code.
1292         * tree.c (build_fn_decl): New function.
1293         * tree.h (build_fn_decl): Declare.
1294         * value-prof.c (rtl_divmod_values_to_profile,
1295         rtl_find_values_to_profile, rtl_mod_pow2_value_transform,
1296         tree_mod_pow2_value_transform, tree_find_values_to_profile):
1297         Do not handle may_be_other and precise values of exponents at pow2
1298         profiler.
1299         (tree_mod_subtract_transform): Reflect that value field of
1300         histogram has changed meaning.
1301         (tree_divmod_values_to_profile): Record the values correctly.
1302         (tree_values_to_profile): Update comment.
1303         * value-prof.h (struct histogram_value_t): Remove pow2 data.
1304
1305 2005-04-22  Joseph S. Myers  <joseph@codesourcery.com>
1306
1307         * varasm.c (do_assemble_alias): Return early if TREE_ASM_WRITTEN
1308         (decl).
1309
1310 2005-04-22  Nathan Sidwell  <nathan@codesourcery.com>
1311
1312         * config/i386/i386.md (length_immediate): Use gcc_assert or
1313         gcc_unreachable, as appropriate.
1314         (*movsi_1, *movqi_1, reload_outqi, *movdi_1_rex64, *pushsf,
1315         *pushsf_rex64, *truncxfsf2_mixed, *truncxfsf2_i387,
1316         *truncxfdf2_mixed, *truncxfdf2_i387, *adddi_1_rex64,
1317         *adddi_2_rex64, *adddi_3_rex64, *adddi_4_rex64, *adddi_5_rex64,
1318         *addsi_1, addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
1319         *addsi_3_zext, *addsi_4, *addsi_5, *addhi_1_lea, *addhi_1,
1320         *addhi_2, *addhi_3, *addhi_4, *addhi_5, *addqi_1_lea, *addqi_1,
1321         *addqi_1_slp, *addqi_2, *addqi_3, *addqi_4, *addqi_5, addqi_ext_1,
1322         *addqi_ext_1_rex64, *anddi_1_rex64, *andsi_1, *andhi_1,
1323         *ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashlsi3_1, *ashlsi3_1_zext,
1324         *ashlsi3_cmp, *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1,
1325         *ashlhi3_cmp, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
1326         pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64,
1327         pro_epilogue_adjust_stack_rex64_2, prefetch, *prefetch_sse,
1328         *prefetch_sse_rex): Likewise.
1329         * config/i386/predicates.md (x86_64_immediate_operand,
1330         x86_64_zext_immediate_operand, symbolic_operand,
1331         no_seg_address_operand, aligned_operand,
1332         memory_displacement_operand): Likewise.
1333         * config/i386/sse.md (*mov<mode>_internal,
1334         *movv2df_internal): Likewise.
1335
1336 2005-04-22  Jan Hubicka  <jh@suse.cz>
1337
1338         * Makefile.in (ipa.o, ipa-inline.o): New files.
1339         * cgraph.h (cgraph_remove_unreachable_nodes, cgraph_postorder,
1340         cgraph_decide_inlining_incrementally, cgraph_clone_inlined_nodes,
1341         cgraph_mark_inline_edge, cgraph_default_inline_p): Declare.
1342         * cgraphunit.c (cgraph_default_inline_p,
1343         cgraph_decide_inlining_incrementally,  ncalls_inlined,
1344         nfunctions_inlined, initial_insns, overall_insns, 
1345         cgraph_estimate_size_after_inlining, cgraph_estimate_growth,
1346         cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
1347         cgraph_mark_inline, cgraph_check_inline_limits,
1348         cgraph_default_inline_p, cgraph_recursive_inlining_p,
1349         update_callee_keys, lookup_recursive_calls,
1350         cgraph_decide_recursive_inlining, cgraph_set_inline_failed,
1351         cgraph_decide_inlining_of_small_functions, cgraph_decide_inlining,
1352         cgraph_decide_inlining_incrementally, cgraph_gate_inlining,
1353         pass_ipa_inline): Move to ipa-inline.c
1354         (cgraph_postorder, cgraph_remove_unreachable_nodes): Move to ipa.c
1355         * ipa.c: New file.
1356         * ipa-inline.c: New file.
1357
1358 2005-04-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
1359
1360         * doc/invoke.texi (SPARC options): Document that -mapp-regs
1361         is turned off by default on Solaris.
1362
1363 2005-04-21  Roger Sayle  <roger@eyesopen.com>
1364
1365         * c-common.h (objc_build_method_signature): Update prototype.
1366         * stub-objc.c (objc_build_method_signature): Update the stub
1367         implementation to accept and ignore additional parameter.
1368         * c-parser.c (c_parser_objc_method_decl): Reorgnize to pass
1369         the value of ellipsis to objc_build_method_signature instead
1370         of setting TREE_OVERFLOW on the parms TREE_LIST node.
1371
1372 2005-04-21  Geoffrey Keating  <geoffk@apple.com>
1373
1374         * config/rs6000/rs6000-protos.h (rs6000_emit_sync): New.
1375         * config/rs6000/rs6000.c (rs6000_emit_vector_compare): Use
1376         gen_rtx_* not gen_rtx_fmt_*.
1377         (rs6000_emit_vector_select): Likewise.
1378         (rs6000_emit_sync): New.
1379         * config/rs6000/rs6000.md (GPR, INT, INT1): New mode macros.
1380         (larx, stcx, cmp): New mode substitutions.
1381         (UNSPEC_SYNC, UNSPEC_SYNC_OP, UNSPEC_SYNC_SWAP, UNSPEC_LWSYNC,
1382         UNSPEC_ISYNC): New constants.
1383         (rlwinm): Give name.
1384         (memory_barrier, isync, lwsync): New insns.
1385         (sync_compare_and_swap<mode>, sync_lock_test_and_set<mode>): New insn.
1386         (sync_lock_release<mode>): New expander.
1387         (sync_add<mode>, sync_sub<mode>, sync_ior<mode>, sync_and<mode>,
1388         sync_xor<mode>, sync_nand<mode>, sync_old_add<mode>,
1389         sync_old_sub<mode>, sync_old_ior<mode>, sync_old_and<mode>,
1390         sync_old_xor<mode>, sync_old_nand<mode>, sync_new_add<mode>,
1391         sync_new_sub<mode>, sync_new_ior<mode>, sync_new_and<mode>,
1392         sync_new_xor<mode>, sync_new_nand<mode>): New expanders.
1393         (sync_add<mode>_internal, sync_addshort_internal,
1394         sync_sub<mode>_internal, sync_andsi_internal, sync_anddi_internal,
1395         sync_boolsi_internal, sync_booldi_internal, sync_boolc<mode>_internal,
1396         sync_boolc<mode>_internal2, sync_boolcc<mode>_internal): New insns.
1397
1398         * doc/md.texi (Standard Names): sync_compare_and_swap's operand 0
1399         is the memory before, not after, the operation.  Clarify
1400         barrier requirements.
1401
1402 2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
1403
1404         * cfghooks.h (struct cfg_hooks): Reword comments to avoid 'abort'.
1405         * lambda.h (lambda_vector_min_nz): Likewise.
1406         * langhooks.h (struct lang_hooks_for_types,
1407         struct lang_hooks): Likewise.
1408         * output.h (assemble_integer, this_is_asm_operands): Likewise.
1409         * tree.h: Likewise.
1410         * vec.h: Likewise.
1411         * tree-flow-inline.h (relink_imm_use): Use gcc_assert.
1412         
1413         * optabs.c (prepare_cmp_insn, emit_cmp_and_jump_insns): Reword
1414         comments to avoid 'abort'.  Use gcc_assert as necessary.
1415         * opts.c (common_handle_option): Likewise.
1416         * pretty-print.c (pp_base_format_text): Likewise.
1417         * print-rtl.c (print_rtx): Likewise.
1418         * read-rtl.c (read_rtx_filename, read_rtx_1): Likewise.
1419         * regmove.c (try_auto_increment): Likewise.
1420         * reload.c (find_valid_class, find_reloads_toplev,
1421         find_equiv_reg): Likewise.
1422         * reload1.c (reload, forget_old_reloads_1, function_invariant_p, 
1423         merge_assigned_reloads): Likewise.
1424         * tree-inline.c (inline_forbidden_p_1,
1425         estimate_num_insns_1): Likewise.
1426         * tree-optimize.c (execute_todo): Likewise.
1427         * tree-outof-ssa.c (eliminate_phi): Likewise.
1428         * tree-ssa-alias.c (add_pointed_to_expr): Likewise.
1429         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Likewise.
1430         * tree-ssa-operands.c (parse_ssa_operands,
1431         get_indirect_ref_operands, create_ssa_artficial_load_stmt): Likewise.
1432         * tree-ssa-pre.c (find_or_generate_expression): Likewise.
1433         * tree-ssanames.c (release_ssa_name): Likewise.
1434         * tree.c (int_bit_position, int_byte_position, tree_low_cst, 
1435         walk_tree): Likewise.
1436
1437         * tree-ssa-operands.c (verify_abort): Fold into ..
1438         (verify_imm_links): ... here.
1439
1440 2005-04-21  Richard Henderson  <rth@redhat.com>
1441
1442         * config/alpha/sync.md (sync_new_nand<I48MODE>): Fix constraints
1443         on non-memory operand for previous inversion.
1444
1445 2005-04-21  Devang Patel  <dpatel@apple.com>
1446
1447         PR optimization/20994
1448         * tree-if-conv.c (find_phi_replacement_condition): Avoid generating
1449         x = !(a == b) : p , q;.
1450         (pass_if_conversion): Verify stmts and flow.
1451         
1452 2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
1453
1454         * optabs.c (gen_conditional_trap): Restore #define.
1455
1456         * alias.c (true_dependence): Remove 'abort' from comments. Use
1457         gcc_assert and gcc_unreachable as appropriate.
1458         (canon_true_dependence): Likewise.
1459         * bb-reorder.c (connect_traces): Likewise.
1460         * c-common.c (c_add_case_label): Likewise.
1461         * c-decl.c (finish_function): Likewise.
1462         * caller-save.c (insert_restore, insert_save): Likewise.
1463         * cfg.c (update_bb_profile_for_threading): Likewise.
1464         * cfganal.c (flow_active_insn_p): Likewise.
1465         * cfgexpand.c (add_reg_br_prob_note): Likewise.
1466         * cfgrtl.c (rtl_redirect_edge_and_branch_force, rtl_split_edge,
1467         cfg_layout_merge_blocks): Likewise.
1468         * ifcvt.c (cond_exec_process_insns, merge_if_block,
1469         find_if_block): Likewise.
1470         * integrate.c (allocate_initial_values): Likewise.
1471         * jump.c (reverse_condition, reverse_condition_maybe_unordered,
1472         swap_condition, unsigned_condition, signed_condition,
1473         mark_jump_label, invert_jump_1, rtx_renumbered_equal_p,
1474         reg_or_subregno): Likewise.
1475         * lambda-code.c (lambda_compute_auxillary_space,
1476         lambda_transform_legal_p): Likewise.
1477         * lambda-mat.c (lambda_matrix_inverse_hard): Likewise.
1478         * langhooks.c (lhd_set_decl_assembler_name, lhd_type_promotes_to,
1479         lhd_incomplete_type_error, lhd_expand_expr,
1480         lhd_types_compatible_p, lhd_tree_size): Likewise.
1481         * lcm.c (create_pre_exit, optimize_mode_switching): Likewise.
1482         * local-alloc.c (update_equiv_regs): Likewise.
1483         * loop-unroll.c (peel_loop_completely
1484         unroll_loop_constant_iterations, unroll_loop_runtime_iterations,
1485         peel_loop_simple, unroll_loop_stupid,
1486         analyze_iv_to_split_insn): Likewise.
1487         * loop.c (gen_prefetch, find_and_verify_loops,
1488         basic_induction_var): Likewise.
1489         * modulo-sched.c (normalize_sched_times, check_nodes_order): Likewise.
1490         * value-prof.c (tree_find_values_to_profile): Likewise.
1491         * varasm.c (named_section, default_assemble_integer,
1492         decode_addr_const): Likewise.
1493
1494 2005-04-21 Alan Modra  <amodra@bigpond.net.au>
1495            Fariborz Jahanian <fjahanian@apple.com>
1496
1497         * config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Fix size of
1498         portion of argument passed in fpr.
1499         * expr.c (emit_push_insn): Fix computation of 'offset' used to
1500         decide on partial argument save on stack.
1501
1502 2005-04-21  Kazu Hirata  <kazu@cs.umass.edu>
1503
1504         * config/sparc/predicates.md, config/sparc/sparc.md: Fix
1505         comment typos.
1506
1507 2005-04-21  Jan Hubicka  <jh@suse.cz>
1508
1509         * cgraphunit.c: Include tree-pass.h
1510         (cgraph_decide_recursive_inlining,
1511         cgraph_decide_inlining_of_small_function, cgraph_set_inline_failed,
1512         cgraph_decide_inlining): Dump goes to dump_file.
1513         (cgraph_optimize): Call ipa passes instead of inliner.
1514         (cgraph_gate_inlining, pass_ipa_inline): New.
1515         * tree-optimize.c (all_ipa_passes): New static variable.
1516         (register_one_dump_file): Dead with IPA passes.
1517         (register_dump_files): Likewise.
1518         (init_tree_optimization_passes): Initialize IPA passes.
1519         (execute_todo): Do cgraph dump when asked to, do not dump function body
1520         for IPA pass.
1521         * tree-pass.h (TODO_dump_cgraph): New macro.
1522         (ipa_passes): Declare.
1523         * Makefile.in (cgraphunit.o): Add dependency on cgraphunit.h
1524
1525 2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
1526
1527         * config/i386/i386.c (type_natural_mode): Use gcc_unreachable and
1528         gcc_assert instead of abort.
1529         (classify_argument, examine_argument, construct_container,
1530         contains_128bit_aligned_vector_p, ix86_check_movabs,
1531         standard_80387_constant_opcode, standard_80387_constant_rtx,
1532         ix86_initial_elimination_offset, ix86_compute_frame_layout,
1533         pro_epilogue_adjust_stack, ix86_expand_epilogue,
1534         ix86_address_cost, legitimate_address_p, legitimize_pic_address,
1535         legitimize_tls_address, output_pic_addr_const,
1536         i386_output_dwarf_dtprel, put_condition_code, print_reg,
1537         get_some_local_dynamic_name, print_operand, print_operand_address,
1538         output_387_binary_op, emit_i387_cw_initialization,
1539         output_fix_trunc, output_fp_compare, ix86_output_addr_vec_elt,
1540         ix86_expand_clear, ix86_expand_binary_operator,
1541         ix86_expand_unary_operator, ix86_match_ccmode, ix86_cc_mode,
1542         ix86_cc_modes_compatible, ix86_fp_comparison_codes,
1543         ix86_fp_comparison_arithmetics_cost, ix86_expand_fp_compare,
1544         ix86_expand_branch, ix86_expand_setcc,
1545         ix86_expand_carry_flag_compare, ix86_expand_fp_movcc,
1546         ix86_expand_int_addcc, ix86_split_to_parts, ix86_split_long_move,
1547         ix86_expand_movmem, ix86_expand_call, assign_386_stack_local,
1548         memory_address_length, ix86_attr_length_immediate_default,
1549         ix86_attr_length_address_default, ix86_agi_dependant,
1550         x86_initialize_trampoline, ix86_init_mmx_sse_builtins,
1551         ix86_expand_binop_builtin, ix86_force_to_memory,
1552         ix86_secondary_memory_needed, ix86_avoid_jump_misspredicts,
1553         x86_emit_floatuns): Likewise.
1554         * config/i386/netware.c (gen_regparm_prefix,
1555         i386_nlm_strip_name_encoding): Likewise.
1556         * config/i386/winnt.c (i386_pe_mark_dllexport): Likewise.
1557
1558 2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
1559
1560         * optabs.c (gen_condiational_trap): Remove #define.
1561         (add_equal_note): Assertify. Remove explicit indirection from
1562         call via function pointer.
1563         (expand_ternary_op, expand_simple_binop, expand_binop,
1564         expand_twoval_unop, expand_twoval_binop,
1565         expand_twoval_binop_libfunc, expand_simple_unop expand_unop,
1566         emit_unop_insn,  emit_no_conflict_block,  prepare_cmp_insn,
1567         prepare_operand emit_cmp_and_jump_insn_1, emit_cmp_and_jump_insns,
1568         prepare_float_lib_cmp, emit_conditional_move,
1569         emit_conditional_add, gen_add2_insn, gen_add3_insn,
1570         have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn,
1571         expand_float, expand_fix, debug_optab_libfuncs, gen_cond_trap,
1572         vector_compare_rtx, expand_vec_cond_expr): Likewise.
1573
1574 2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
1575
1576         * vec.h: Update API to separate allocation mechanism from type.
1577         (VEC_safe_grow): New.
1578         * vec.c (calculate_allocation): New.
1579         (vec_gc_o_reserve, vec_heap_o_reserve): Adjust.
1580         (vec_gc_free, vec_heap_free): Remove.
1581         * gengtype-lex.l (DEF_VEC_): Process mult-argument macros.  Adjust.
1582         (VEC): Likewise.
1583         (mangle_macro_name): New.
1584         (struct macro_def): New.
1585         (struct macro): Add multiple argument values.
1586         (macro_expans_end): New.
1587         (push_macro_expansion):  Chain on new macro. Process multiple
1588         args, create follow on expansion. Return follow on argument.
1589         (macro_input): Deal with multiple arguments.
1590         
1591         * tree.h: Define VEC(tree,heap) and VEC(tree,gc).
1592         (struct tree_binfo): Adjust.
1593         * basic-block.h: Define VEC(edge,gc).
1594         (struct edge_def): Adjust.
1595         (struct basic_block_def, struct edge_iterator): Likewise.
1596         (ei_container, ei_start_1, ei_last_1): Likewise.
1597         * cfg.c (connect_src, connect_dest): Likewise.
1598         * cfgrtl.c (force_nonfallthru_and_redirect)
1599         * dbxout.c (dbxout_type)
1600         * dwarf2out.c (gen_member_die)
1601         * lambda-code.c: Define VEC(int,gc), VEC(lambda_loop,gc).
1602         (gcc_tree_to_linear_expression): Adjust.
1603         (gcc_loop_to_lambda_loop, gcc_loopnest_to_lambda_loopnest,
1604         lbv_to_gcc_expression, lle_to_gcc_expression,
1605         lambda_loopnest_to_gcc_loopnest, can_convert_to_perfect_nest,
1606         perfect_nestify): Likewise.
1607         * lambda.h (gcc_loopnest_to_lambda_loopnest,
1608         lambda_loopnest_to_gcc_loopnest): Adjust prototypes.
1609         * profile.c (instrument_values): Adjust.
1610         * tree-cfg.c (modified_noreturn_calls): Adjust.
1611         (remove_fallthru_edge): Likewise.
1612         * tree-dump.c (dequeue_and_dump): Adjust.
1613         * tree-flow-inline.h (mark_stmt_modified): Adjust.
1614         * tree-flow.h (modified_noreturn_calls): Adjust.
1615         (tree_on_heap): Remove. (yay!)
1616         (register_new_def): Adjust.
1617         * tree-into-ssa.c: Define VEC(int,heap).
1618         (block_defs_stack): Adjust.
1619         (find_idf, insert_phi_nodes, register_new_def,
1620         rewrite_initialize_block, rewrite_finalize_block,
1621         register_new_update_single, rewrite_update_init_block,
1622         rewrite_update_fini_block, rewrite_blocks,
1623         ssa_rewrite_finalize_block, ssa_register_new_def,
1624         ssa_rewrite_initialize_block, rewrite_ssa_into_ssa): Likewise.
1625         * tree-loop-linear.c (linear_transform_loops): Adjust.
1626         * tree-ssa-alias.c: Define VEC(fieldoff_t,heap).
1627         (push_fields_onto_fieldstack, create_overlap_variables_for): Adjust.
1628         * tree-ssa-dom.c (avail_exprs_stack, block_defs_stack,
1629         stmts_to_rescan, const_and_copies_stack, nonzero_vars_stack,
1630         vrp_variables_stack): Adjust declarations.
1631         (tree_ssa_dominator_optimize): Adjust.
1632         (dom_opt_initialize_block, remove_local_expressions_from_table,
1633         restore_nonzero_vars_to_original_value,
1634         restore_vars_to_original_value,
1635         restore_currdefs_to_original_value, dom_opt_finalize_block,
1636         record_var_is_nonzero, record_cond, record_const_or_copy_1,
1637         optimize_stmt, update_rhs_and_lookup_avail_expr,
1638         lookup_avail_expr, record_range): Likewise.
1639         * tree-ssa-pre.c: Define VEC(basic_block,heap).
1640         (compute_antic_aux): Adjust.
1641         (inserted_exprs, create_expression_by_pieces, 
1642         insert_into_preds_of_block, eliminate, mark_operand_necessary, 
1643         remove_dead_inserted_code, fini_pre): Likewise.
1644         * tree-ssa-propagate.c (interesting_ssa_edges): Adjust.
1645         (varying_ssa_edges, add_ssa_edge, process_ssa_edge_worklist. 
1646         ssa_prop_init): Likewise.
1647         * tree-ssa.c: Define VEC(bitmap,heap).
1648         (verify_name_tags): Adjust.
1649         * value-prof.c (rtl_divmod_values_to_profile): Adjust.
1650         (insn_prefetch_values_to_profile, rtl_find_values_to_profile,
1651         tree_divmod_values_to_profile, tree_find_values_to_profile,
1652         value_profile_transformations): Likewise.
1653         * value-prof.h: Define VEC(histogram_value,heap).
1654         * varasm.c: Remove alias_pair pointer typedef, define
1655         VEC(alias_pair,gc).
1656         (finish_aliases_1, finish_aliases_2, assemble_alias): Adjust.
1657         
1658         * config/pa/pa.c (typedef extern_symbol): Typedef the structure,
1659         not a pointer to it.  Create an object vector.
1660         (extern_symbols): Turn into an object vector.
1661         (pa_hpux_asm_output_external, pa_hpux_file_end): Adjust.
1662
1663 2005-04-21  Sebastian Pop  <pop@cri.ensmp.fr>
1664
1665         PR/20742
1666         * Makefile.in (tree-chrec.o): Depend on params.h.
1667         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): New parameter with
1668         default value 20.
1669         * tree-chrec.c: Depend on params.h.  Replace build with buildN,
1670         and fold build with fold_buildN.
1671         (chrec_fold_plus_1): Fail with a chrec_don_know when the size of
1672         the expression exceeds PARAM_SCEV_MAX_EXPR_SIZE.
1673         (tree_contains_chrecs): Compute an estimation of the size of the
1674         given expression.
1675         * tree-chrec.h (tree_contains_chrecs): Modify its declaration.
1676         (tree_does_not_contain_chrecs): Update the use of tree_contains_chrecs.
1677         * tree-scalar-evolution.c (simple_iv): Ditto.
1678         * doc/invoke.texi (scev-max-expr-size): Documented.
1679
1680 2005-04-21  Richard Sandiford  <rsandifo@redhat.com>
1681
1682         * config.gcc (*-*-darwin*): Add darwin.opt to $extra_options.
1683         (i[34567]86-pc-msdosdjgpp*): Likewise i386/djgpp.opt.
1684         (i[34567]86-*-lynxos*, powerpc-*-lynxos*): Likewise lynx.opt.
1685         (i[34567]86-*-sco3.2v5*): Likewise i386/sco5.opt.
1686         (i[34567]86-*-pe, i[34567]86-*-cygwin*, i[34567]86-*-mingw32*)
1687         (i[34567]86-*-uwin*): Likewise i386/cygming.opt.
1688         * config/darwin.h (darwin_one_byte_bool, darwin_fix_and_continue)
1689         (darwin_fix_and_continue_switch, SUBTARGET_OPTIONS): Delete.
1690         * config/darwin.c (darwin_one_byte_bool, darwin_fix_and_continue)
1691         (darwin_fix_and_continue_switch): Delete.
1692         * config/lynx.h (SUBTARGET_OS_LYNX_SWITCHES): Delete.
1693         (SUBTARGET_SWITCHES): Delete.
1694         * config/i386/i386.h (target_flags, MASK_80387, MASK_RTD)
1695         (MASK_ALIGN_DOUBLE, MASK_SVR3_SHLIB, MASK_IEEE_FP, MASK_FLOAT_RETURNS)
1696         (MASK_NO_FANCY_MATH_387, MASK_OMIT_LEAF_FRAME_POINTER)
1697         (MASK_STACK_PROBE, MASK_NO_ALIGN_STROPS, MASK_INLINE_ALL_STROPS)
1698         (MASK_NO_PUSH_ARGS, MASK_ACCUMULATE_OUTGOING_ARGS, MASK_MMX)
1699         (MASK_SSE, MASK_SSE2, MASK_SSE3, MASK_3DNOW, MASK_3DNOW_A)
1700         (MASK_128BIT_LONG_DOUBLE, MASK_64BIT, MASK_MS_BITFIELD_LAYOUT)
1701         (MASK_TLS_DIRECT_SEG_REFS, MASK_NO_RED_ZONE, TARGET_80387)
1702         (TARGET_RTD, TARGET_ALIGN_DOUBLE, TARGET_PUSH_ARGS)
1703         (TARGET_ACCUMULATE_OUTGOING_ARGS, TARGET_SVR3_SHLIB, TARGET_IEEE_FP)
1704         (TARGET_128BIT_LONG_DOUBLE, TARGET_NO_FANCY_MATH_387)
1705         (TARGET_USE_FANCY_MATH_387, TARGET_OMIT_LEAF_FRAME_POINTER)
1706         (TARGET_DEBUG_ADDR, TARGET_DEBUG_ARG): Delete.
1707         (TARGET_FLOAT_RETURNS_IN_80387): Make an alias of TARGET_FLOAT_RETURNS.
1708         (TARGET_64BIT): Undef before redefining.
1709         (TARGET_TLS_DIRECT_SEG_REFS, TARGET_STACK_PROBE)
1710         (TARGET_ALIGN_STRINGOPS, TARGET_INLINE_ALL_STRINGOPS, TARGET_SSE)
1711         (TARGET_SSE2, TARGET_SSE3, TARGET_MMX, TARGET_3DNOW, TARGET_3DNOW_A)
1712         (TARGET_RED_ZONE, TARGET_USE_MS_BITFIELD_LAYOUT, TARGET_SWITCHES)
1713         (TARGET_OPTIONS, SUBTARGET_SWITCHES, SUBTARGET_OPTIONS)
1714         (ix86_fpmath_string, ix86_tls_dialect_string, ix86_cmodel_string)
1715         (ix86_asm_string, ix86_regparm, ix86_regparm_string)
1716         (ix86_preferred_stack_boundary_string, ix86_branch_cost_string)
1717         (ix86_debug_arg_string, ix86_debug_addr_string)
1718         (ix86_align_loops_string, ix86_align_jumps_string)
1719         (ix86_align_funcs_string): Delete.
1720         * config/i386/cygming.h (MASK_NOP_FUN_DLLIMPORT)
1721         (TARGET_NOP_FUN_DLLIMPORT, SUBTARGET_SWITCHES): Delete.
1722         * config/i386/djgpp.h (MASK_BNU210, SUBTARGET_SWITCHES): Delete.
1723         (SUBTARGET_OVERRIDE_OPTIONS): Check TARGET_BNU210.
1724         * config/i386/lynx.h (SUBTARGET_SWITCHES): Delete.
1725         * config/i386/sco5.h (MASK_COFF, TARGET_ELF)
1726         (SUBTARGET_SWITCHES): Delete.
1727         * config/i386/i386.c (ix86_debug_arg_string): Delete.
1728         (ix86_debug_addr_string): Delete.
1729         (ix86_cmodel_string, ix86_asm_string, ix86_tls_dialect_string)
1730         (ix86_fpmath_string, ix86_regparm_string, ix86_regparm)
1731         (ix86_align_loops_string, ix86_align_jumps_string)
1732         (ix86_preferred_stack_boundary_string, ix86_branch_cost_string)
1733         (ix86_align_funcs_string): Make static.
1734         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
1735         (ix86_handle_option): New function.
1736         (TARGET_USE_MS_BITFIELD_LAYOUT): Delete.
1737         (ix86_ms_bitfield_layout_p): Check TARGET_MS_BITFIELD_LAYOUT.
1738         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Remove handling
1739         of darwin_fix_and_continue_switch.
1740         (darwin_one_byte_bool): Delete.
1741         * config/rs6000/lynx.h (EXTRA_SUBTARGET_SWITCHES): Delete.
1742         * config/rs6000/rs6000.c (rs6000_override_options): Update assignment
1743         to darwin_one_byte_bool.
1744         * config/darwin.opt, config/lynx.opt, config/i386/cygming.opt,
1745         * config/i386/djgpp.opt, config/i386/i386.opt,
1746         * config/i386/sco5.opt: New files.
1747
1748 2005-04-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
1749
1750         * config/sparc/sparc.c (reg_or_0_operand, const1_operand,
1751         fp_zero_operand, fp_register_operand, intreg_operand,
1752         fcc_reg_operand, fcc0_reg_operand, icc_or_fcc_reg_operand,
1753         call_operand, call_operand_address, tgd_symbolic_operand,
1754         tld_symbolic_operand, tie_symbolic_operand, tle_symbolic_operand,
1755         symbolic_operand, symbolic_memory_operand, label_ref_operand,
1756         sp64_medium_pic_operand, data_segment_operand,
1757         text_segment_operand, splittable_symbolic_memory_operand,
1758         reg_or_nonsymb_mem_operand, splittable_immediate_memory_operand,
1759         eq_or_neq, normal_comp_operator, noov_compare_op,
1760         noov_compare64_op, v9_regcmp_op, extend_op, cc_arithop,
1761         cc_arithopn, arith_operand, arith_4096_operand, arith_add_operand,
1762         const64_operand, const64_high_operand, arith11_operand,
1763         arith10_operand, arith_double_operand, arith_double_4096_operand,
1764         arith_double_add_operand, arith11_double_operand,
1765         arith10_double_operand, small_int, small_int_or_double,
1766         uns_small_int, uns_arith_operand, clobbered_register,
1767         input_operand, compare_operand): Delete.
1768         (sparc_emit_set_const32): Use predicates in assertion.  Remove special
1769         code for TARGET_ARCH64 && HOST_BITS_PER_WIDE_INT != 64.
1770         (sparc_emit_set_const64): Call gcc_unreachable if H_B_P_W_I == 32.
1771         (GEN_HIGHINT64, GEN_INT64): Delete.
1772         (sparc_emit_set_safe_HIGH64, gen_safe_SET64, gen_safe_OR64,
1773         gen_safe_XOR64): Adjust for above deletion.
1774         (sparc_emit_set_const64): Support only H_B_P_W_I == 64 and CONST_INTs.
1775         Use 'unsigned HOST_WIDE_INT' instead of 'long' for bitmask.
1776         (legitimate_constant_p): Use const_zero_operand instead.
1777         (sparc_extra_constraint_check): Likewise.
1778         * config/sparc/sparc.h (CONST_DOUBLE_OK_FOR_LETTER_P): Remove 'O'.
1779         (PREFERRED_RELOAD_CLASS): Use const_zero_operand.
1780         (PREDICATE_CODES): Delete.
1781         * config/sparc/sparc.md: Include predicates.md.
1782         (All patterns): Adjust for new predicate names.
1783         (cmpdi, cmpdi_sp64): Use arith_operand predicate.
1784         (movhi_const64_special, movsi_const64_special): Add 'K' constraint.
1785         (movdi): Use general_operand predicate.
1786         (movdi_sp64_dbl): Delete.
1787         (movdi_const64_special): Add 'N' constraint.
1788         (movdicc): Use arith10_operand predicate.
1789         (movdi_cc_sp64, movdi_cc_sp64_trunc): Use arith11_operand predicate.
1790         (movdi_cc_reg_sp64): Use arith10_operand predicate.
1791         (movdi_cc_reg_sp64_trunc): Delete.
1792         (cmp_zero_extract, cmp_zero_extract_sp64): Use small_int_operand.
1793         (adddi3_sp64, cmp_ccx_plus, cmp_ccx_plus_set): Use arith_operand.
1794         (subdi3_sp32): Delete.
1795         (subdi3_insn_sp32): Change to define_insn_and_split.
1796         (subdi3_sp64, cmp_minus_ccx, cmp_minus_ccx_set): Use arith_operand.
1797         (muldi3, muldi3_sp64, muldi3_v8plus): Likewise.
1798         (smulsi3_highpart_v8plus, const_smulsi3_highpart_v8plus,
1799         umulsi3_highpart_v8plus, const_umulsi3_highpart_v8plus): Use
1800         small_int_operand predicate.
1801         (divdi3, udivdi3): Use arith_operand predicate.
1802         (udivsi3, udivsi3_sp32, udivsi3_sp64): Use nonimmediate_operand.
1803         (and<V64I>3_sp64, ior<V64I>3_sp64, xor<V64I:mode>3_sp64,
1804         xor_not_<V64I:mode>_sp64) : Use arith_operand predicate.
1805         (xordi3_sp64_dbl): Delete.
1806         (cmp_ccx_arith_op, cmp_ccx_arith_op_set, cmp_ccx_xor_not,
1807         cmp_ccx_xor_not_set, cmp_ccx_arith_op_not, cmp_ccx_arith_op_not_set,
1808         cmp_ccx_neg, cmp_ccx_set_neg, one_cmpl<V64I>2_sp64, cmp_ccx_not,
1809         cmp_ccx_set_not): Use arith_operand predicate.
1810         (ashrsi3_extend2, lshrsi3_extend2 et al.): Use small_int_operand.
1811         * config/sparc/predicates.md: New file.
1812
1813 2005-04-21  Kazu Hirata  <kazu@cs.umass.edu>
1814
1815         PR tree-optimization/14846
1816         * fold-const.c (fold_single_bit_test_into_sign_test): New,
1817         split out from ...
1818         (fold_single_bit_test): ... here.
1819         (fold_binary): Call fold_single_bit_test_into_sign_test
1820         instead of fold_single_bit_test.
1821
1822 2005-04-20  James E Wilson  <wilson@specifixinc.com>
1823
1824         PR c++/20805
1825         * dwarf2out.c (gen_variable_die): Don't emit a specification if this
1826         is another declaration.
1827
1828 2005-04-21  Hans-Peter Nilsson  <hp@axis.com>
1829
1830         * config/cris/predicates.md: New file.
1831         * config/cris/cris-protos.h (cris_store_multiple_op_p)
1832         (cris_movem_load_rest_p): Declare.
1833         * config/cris/cris.c (cris_store_multiple_op): Return bool, not int.
1834         (cris_movem_load_rest_p): Ditto.  Globalize.
1835         (cris_bdap_operand, cris_bdap_biap_operand,
1836         cris_orthogonal_operator, cris_commutative_orth_op,
1837         cris_operand_extend_operator,
1838         cris_additive_operand_extend_operator, cris_extend_operator,
1839         cris_plus_or_bound_operator, cris_mem_op,
1840         cris_general_operand_or_symbol,
1841         cris_general_operand_or_gotless_symbol,
1842         cris_general_operand_or_plt_symbol, cris_mem_call_operand,
1843         cris_load_multiple_op): Remove predicate functions.
1844         (cris_symbol, cris_gotless_symbol) <case UNSPEC>: Return 0, don't
1845         abort, for UNSPECs other than CRIS_UNSPEC_PLT.
1846         * config/cris/cris.h (PREDICATE_CODES): Don't define.
1847         * config/cris/cris.md: Include predicates.md.
1848         ("call", "call_value"): Generate CONSTs of Pmode, not VOIDmode.
1849
1850 2005-04-20  Ian Lance Taylor  <ian@airs.com>
1851
1852         * c-common.def: Remove STMT_EXPR (moved to cp/cp-tree.def).
1853         * c-common.h (STMT_EXPR_STMT): Don't define.
1854         (STMT_EXPR_NO_SCOPE): Don't define.
1855         * c-dump.c (c_dump_tree): Don't handle STMT_EXPR.
1856         * c-pretty-print.c (pp_c_primary_expression): Likewise.
1857         (pp_c_expression): Likewise.
1858
1859 2005-04-20  Richard Henderson  <rth@redhat.com>
1860
1861         PR target/21100
1862         * config/i386/mmx.md (push<MMXMODE>1): Fix predicate thinko.
1863
1864 2005-04-20  Jeff Law  <law@redhat.com>
1865
1866         * reload1.c (reload): Ignore equivalences between pseudos and
1867         read only memory.
1868
1869 2005-04-20  Joseph S. Myers  <joseph@codesourcery.com>
1870
1871         PR c/12913
1872         * c-tree.h (struct c_label_list): Update comment.
1873         (struct c_label_context): Rename to struct c_label_context_se.
1874         (label_context_stack): Rename to label_context_stack_se.
1875         (C_DECL_UNJUMPABLE_VM, C_DECL_UNDEFINABLE_VM, struct
1876         c_label_context_vm, label_context_stack_vm, c_begin_vm_scope,
1877         c_end_vm_scope): New.
1878         (C_DECL_DECLARED_BUILTIN, C_DECL_USED): Use FUNCTION_DECL_CHECK.
1879         * c-decl.c (pop_scope): Call c_end_vm_scope.
1880         (pushdecl): Call c_begin_vm_scope for variably modified
1881         declarations.
1882         (define_label): Check for jumping into scope of identifier with
1883         variably modified type.  Push label on stack for those defined at
1884         current context of identifiers with variably modified type.
1885         (start_function): Create stack level for context of identifiers
1886         with variably modified type.
1887         (finish_function): Pop stack level for context of identifiers with
1888         variably modified type.
1889         * c-typeck.c (label_context_stack): Rename to
1890         label_context_stack_se.
1891         (label_context_stack_vm, c_begin_vm_scope, c_end_vm_scope): New.
1892         (c_finish_goto_label): Check for jumping into scope of identifier
1893         with variably modified type.  Push label on stack for those jumped
1894         to from current context of identifiers with variably modified
1895         type.
1896         (struct c_switch): Add blocked_vm.
1897         (c_start_case): Initialize blocked_vm.
1898         (do_case): Check blocked_vm.
1899         (c_finish_case): Add comment.
1900         (c_begin_stmt_expr, c_finish_stmt_expr): Update for renamed
1901         variable label_context_stack.
1902
1903 2005-04-20  Kazu Hirata  <kazu@cs.umass.edu>
1904
1905         * tree-ssa-phiopt.c (tree_ssa_phi_opt): Update calls to
1906         conditional_replacement, value_replacement, abs_replacement,
1907         minmax_replacement.
1908         (replace_phi_edge_with_variable): Remove argument BB.
1909         (conditional_replacement, value_replacement,
1910         minmax_replacement, abs_replacement): Remove argument PHI_BB.
1911         Update a call to replace_phi_edge_with_variable.
1912
1913         * tree-ssa-phiopt.c: Fix comments.
1914
1915 2005-04-20  Michael Matz  <matz@suse.de>
1916
1917         PR20973
1918         * reload.c (push_reload, find_dummy_reload): Check for uninitialized
1919         pseudos.
1920
1921 2005-04-20  Kazu Hirata  <kazu@cs.umass.edu>
1922
1923         * tree-ssa-phiopt.c: Fix comment typos.
1924
1925         PR tree-optimization/21116
1926         * tree-ssa-phiopt.c: Fix a typo.
1927
1928 2005-04-19  Richard Henderson  <rth@redhat.com>
1929
1930         * builtins.c (expand_builtin_sync_operation): Revert last change.
1931         * optabs.c (expand_bool_compare_and_swap): Compare vs old value,
1932         not vs new value.
1933         (expand_compare_and_swap_loop): Likewise.
1934         (expand_sync_operation): Remove fallback from NAND to AND; invert
1935         memory operand when expanding from cmpxchg.
1936         (expand_sync_fetch_operation): Likewise.
1937         * doc/extend.texi (Atomic Builtins): Fix docs for nand and
1938         compare-and-swap.
1939
1940         * config/alpha/alpha.c (alpha_split_atomic_op): Invert memory operand
1941         when implementing NAND.  Fix double-add for AFTER.
1942         * config/alpha/sync.md (sync_nand<I48MODE>): Invert memory operand.
1943         (sync_old_nand<I48MODE>, sync_new_nand<I48MODE>): Likewise.
1944         (sync_compare_and_swap<I48MODE>): Fix compare vs zero.  Return old
1945         memory value.
1946         (sync_lock_test_and_set<I48MODE>): Remove extra label and last
1947         memory barrier.
1948
1949         * config/i386/sync.md (sync_compare_and_swap<IMODE>): Fix pattern
1950         to return old memory value.
1951         (sync_compare_and_swap_cc<IMODE>): Likewise.
1952
1953         * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Early
1954         return pre-reload.  Don't consider output or anti dependencies.
1955         * config/ia64/sync.md (IMODE): New.
1956         (modesuffix): Add QI and HI.
1957         (memory_barrier): Simplify expansion.
1958         (sync_compare_and_swap<IMODE>): Use IMODE, not I48MODE.
1959         (cmpxchg_acq_<IMODE>): Likewise.
1960         (sync_lock_test_and_set<IMODE>): Likewise.
1961         (sync_lock_release<IMODE>): Likewise.
1962
1963 2005-04-19  James A. Morrison  <phython@gcc.gnu.org>
1964
1965         * fold-const.c (fold_binary): Fold ~(X ^ Y) to ~X ^ Y or X ^ ~Y if
1966         ~X or ~Y simplify.
1967
1968 2005-04-19  James A. Morrison  <phython@gcc.gnu.org>
1969
1970         * fold-const (fold_binary):  Fold ~X ^ ~ Y to X ^ Y.
1971
1972 2005-04-20  Michael Pogue  <michael.pogue@sun.com>
1973             Joseph S. Myers  <joseph@codesourcery.com>
1974
1975         * c.opt (Wint-to-pointer-cast, Wpointer-to-int-cast): New options.
1976         * c-typeck.c (build_c_cast): Check these options.
1977         * doc/invoke.texi: Document these options.
1978
1979 2005-04-20  Kazu Hirata  <kazu@cs.umass.edu>
1980
1981         * tree-ssa-phiopt.c: Update a comment about the pass.
1982
1983 2005-04-19  Kazu Hirata  <kazu@cs.umass.edu>
1984
1985         * tree-ssa-phiopt.c, config/arm/arm.c, config/fr30/fr30.md,
1986         config/mcore/mcore.c: Fix comment typos.
1987
1988 2005-04-19  Daniel Jacobowitz  <dan@codesourcery.com>
1989
1990         * Makefile.in (libgcc.mk): Pass GCC_FOR_TARGET.
1991         * mklibgcc.in: Use $GCC_FOR_TARGET instead of ./xgcc.
1992
1993 2005-04-19  Paul Brook  <paul@codesourcery.com>
1994
1995         * config/arm/arm.c (arm_init_libfuncs): Clear mod optabs. 
1996
1997 2005-04-19  Andrew Haley  <aph@redhat.com>
1998
1999         PR java/21022
2000         * dbxout.c (dbxout_type_fields): Check DECL_IGNORED_P before
2001         looking at a field's bitpos.
2002
2003 2005-04-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2004
2005         * system.h (fopen, fdopen, freopen): Define these to the unlocked
2006         libiberty functions.
2007
2008 2005-04-19  Kazu Hirata  <kazu@cs.umass.edu>
2009
2010         PR tree-optimization/21096
2011         * tree-ssa-copy.c (fini_copy_prop): Free cached_last_copy_of.
2012
2013 2005-04-19  Alan Modra  <amodra@bigpond.net.au>
2014
2015         PR target/21098
2016         * config/rs6000/rs6000.c (rs6000_elf_end_indicate_exec_stack): New.
2017         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Use the above.
2018
2019 2005-04-19  Alexandre Oliva  <aoliva@redhat.com>
2020
2021         * tree-cfg.c (dump_function_to_file): Use cfun info only if it
2022         refers to the function being dumped.
2023
2024 2005-04-18  Daniel Jacobowitz  <dan@codesourcery.com>
2025
2026         * varasm.c (assemble_start_function): Remove reset of in_section.
2027
2028 2005-04-18  James A. Morrison  <phython@gcc.gnu.org>
2029
2030         PR tree-optimization/21085
2031         * fold-const (fold_binary): Don't change X % -C to X % C if C has
2032         overflowed.
2033
2034 2005-04-19  Ben Elliston  <bje@au.ibm.com>
2035
2036         * doc/invoke.texi (Optimize Options): Refer to the correct
2037         optimisation flag -ftree-dominator-opts, not -ftree-dom.
2038
2039 2005-04-18  Christopher Jaillet <christophe.jaillet@wanadoo.fr>
2040
2041         * config/rs6000/rs6000.c (machopic_output_stub):  Increase
2042         alloca argument to be big enough.
2043
2044 2005-04-18  Alexandre Oliva  <aoliva@redhat.com>
2045
2046         PR middle-end/21049
2047         * tree-cfg.c (dump_function_to_file): Do not crash if cfun or
2048         cfun->cfg are NULL.
2049
2050 2005-04-18  Tom Tromey  <tromey@redhat.com>
2051
2052         * cgraphunit.c (cgraph_finalize_compilation_unit): Fix a comment
2053         typo.
2054
2055 2005-04-18  Richard Henderson  <rth@redhat.com>
2056
2057         * config/alpha/alpha.c (alpha_split_atomic_op): New.
2058         (alphaev5_insn_pipe): Add LD_L, ST_C, MB types.
2059         (alphaev4_insn_pipe): Likewise.  Correct IST and LDSYM pipes.
2060         * config/alpha/alpha-protos.h: Update.
2061         * config/alpha/alpha.md (UNSPECV_MB, UNSPECV_LL, UNSPECV_SC): New.
2062         (UNSPECV_ATOMIC, UNSPECV_CMPXCHG, UNSPECV_XCHG): New.
2063         (attr type): Add ld_l, st_c, mb.
2064         (andsi_internal, andnotsi3, iorsi_internal, one_cmplsi_internal,
2065         iornotsi3, xorsi_internal, xornotsi3): New.
2066         * config/alpha/ev4.md (ev4_ld): Add ld_l.
2067         (ev4_ist_c, ev4_mb): New.
2068         * config/alpha/ev5.md (ev5_st): Add st_c, mb.
2069         (ev5_ld_l): New.
2070         * config/alpha/ev6.md (ev6_ild): Add ld_l.
2071         (ev6_ist): Add st_c.
2072         (ev6_mb): New.
2073         * config/alpha/sync.md: New file.
2074
2075 2005-04-18  Richard Henderson  <rth@redhat.com>
2076
2077         * builtins.c (expand_builtin_sync_operation): Fold nand to and
2078         for constants.
2079
2080         * optabs.c (expand_sync_operation): Fix typo expanding nand to and.
2081
2082 2005-04-18  Devang Patel  <dpatel@apple.com>
2083
2084         * config/rs6000/atlivec.md (mulv4si3): New pattern.
2085         
2086 2005-04-18  James A. Morrison  <phython@gcc.gnu.org>
2087
2088         PR tree-optimization/20922
2089         * fold-const.c (fold_binary): Fold X - c > X and X + c < X to false.
2090         Fold X + c >= X and fold X - c <= X to true.
2091
2092 2005-04-18  James A. Morrison  <phython@gcc.gnu.org>
2093
2094         * config/ia64/unwind-ia64.c (emergency_reg_state_free): Make an
2095         unsigned int.
2096         (emergency_labeled_state_free): Likewise.
2097
2098 2005-04-18  Nick Clifton  <nickc@redhat.com>
2099
2100         * config/h8300/h8300.md (jump): Remove prescan parameter from
2101         calls to final_scan_insn.
2102
2103         * config/arc/arc.c (arc_output_function_epilogue): Remove prescan
2104         parameter from calls to final_scan_insn.
2105
2106         * config.gcc (m68hc12): Use the m68hc11.opt file for target
2107         specific options.
2108         (v850e, v850e1): Use the v850.opt file for target specific
2109         options.
2110
2111 2005-04-18  Kazu Hirata  <kazu@cs.umass.edu>
2112
2113         PR tree-optimization/21001
2114         * tree-optimize.c (init_tree_optimization_passes): Move the
2115         first pass_forwprop immediately before pass_vrp.
2116
2117 2005-04-17  Ian Lance Taylor  <ian@airs.com>
2118
2119         * c-common.def (SIZEOF_EXPR, ARROW_EXPR, ALIGNOF_EXPR): Remove.
2120         * c-common.c (c_sizeof_or_alignof_type): Change second parameter
2121         from enum tree_code op to bool is_sizeof.
2122         * c-common.h (c_sizeof_or_alignof_type): Update declaration.
2123         (c_sizeof, c_alignof): Update calls to c_sizeof_or_alignof_type.
2124         * c-pretty-print.c (pp_c_postfix_expression): Remove ARROW_EXPR
2125         case.
2126         (pp_c_unary_expression): Remove SIZEOF_EXPR and ALIGNOF_EXPR
2127         cases.
2128         (pp_c_expression): Remove ARROW_EXPR, SIZEOF_EXPR, and
2129         ALIGNOF_EXPR cases.
2130
2131 2005-04-17  Ian Lance Taylor  <ian@airs.com>
2132
2133         * system.h: Poison DONT_ACCESS_GBLS_AFTER_EPILOGUE.
2134
2135 2005-04-17  Richard Henderson  <rth@redhat.com>
2136
2137         * config/alpha/alpha.c (va_list_skip_additions): Only define if
2138         TARGET_ABI_OSF.
2139         (TARGET_STDARG_OPTIMIZE_HOOK): Likewise.
2140         (alpha_stdarg_optimize_hook): Likewise.  Allow for one more round
2141         of indirection through ssa names while looking for the gpr counter
2142         field.
2143         (alpha_setup_incoming_varargs) <TARGET_ABI_OSF>: Make use of the
2144         saved va_list_gpr_size and va_list_fpr_size.
2145
2146 2005-04-17  Kazu Hirata  <kazu@cs.umass.edu>
2147
2148         * tree-vrp.c (compare_values): Check that VAL1 and VAL2 are
2149         both pointers or both integers.
2150
2151         * tree-vrp.c (maybe_add_assert_expr): Don't assert
2152         ASSERT_EXPRs for single-use variable.
2153
2154         * tree-into-ssa.c: Fix a comment typo.
2155
2156 2005-04-17  Richard Sandiford  <rsandifo@redhat.com>
2157
2158         * config/mips/iris6.h (DRIVER_SELF_SPECS): Check -march as well as
2159         -mipsN before forcing a default of -mips2.
2160
2161 2005-04-17  Kazu Hirata  <kazu@cs.umass.edu>
2162
2163         * predict.h (IS_TAKEN): Remove.
2164         * rtl.h (NOTE_PREDICTION): Likewise.
2165
2166         * modulo-sched.c (CFG_HOOKS): Remove.
2167
2168         * c-parser.c (N_C_TTYPES): Remove.
2169
2170         * tree-flow-inline.h (get_stmt_operands): Remove.
2171         * lambda-code.c, tree-ssa-loop-unswitch.c,
2172         tree-ssa-operands.c, tree-ssa-pre.c, tree-ssa-propagate.c,
2173         tree-ssa-sink.c, tree-ssa.c, tree-tailcall.c,
2174         tree-vect-transform.c, tree-vectorizer.c, tree-vrp.c): Remove
2175         calls to get_stmt_operands.
2176         * doc/tree-ssa.texi: Don't mention get_stmt_operands.
2177
2178 2005-04-17  Richard Henderson  <rth@redhat.com>
2179
2180         PR target/20375
2181         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Advance a copy
2182         of CUMULATIVE_ARGS past the last named argument.
2183         (alpha_va_start): Expect pretend_args_size only if strictly less than
2184         6 named arguments.
2185
2186 2005-04-17  Kazu Hirata  <kazu@cs.umass.edu>
2187
2188         PR middle-end/21024
2189         * builtins.c (expand_builtin_strcat): Convert the result of
2190         strlen to the right type.
2191         * fold-const.c (fold_binary) <PLUS_EXPR>: Use fold_convert to
2192         avoid creating type mismatches.
2193         <GE_EXPR>: Pass op0 and op1 to fold_build2 to avoid creating
2194         type mismatches.
2195
2196         * c-lex.c (WCHAR_TYPE_SIZE, WCHAR_BYTES): Remove.
2197
2198 2005-04-16  Richard Henderson  <rth@redhat.com>
2199
2200         PR target/21051
2201         * builtins.c (expand_builtin) <BUILT_IN_BOOL_COMPARE_AND_SWAP_*>:
2202         Use the mode of boolean_type_node when the user doesn't provide one.
2203         * config/ia64/sync.md (sync_lock_release<I48MODE>): Use operand 1.
2204
2205 2005-04-16  Alexandre Oliva  <aoliva@redhat.com>
2206
2207         PR target/20126
2208         * loop.c (loop_givs_rescan): Handle non-replaceable (plus (reg)
2209         (const)).
2210
2211         * tree-scalar-evolution.c (interpret_rhs_modify_expr): Fix typo in
2212         comment.
2213
2214 2005-04-16  Roger Sayle  <roger@eyesopen.com>
2215             Steven Bosscher  <stevenb@suse.de>
2216
2217         * fold-const.c (fold_binary_to_constant): Delete obsolete comment.
2218         (fold_unary_to_constant): Likewise.
2219
2220 2005-04-16  Kazu Hirata  <kazu@cs.umass.edu>
2221
2222         * basic-block.h: Adjust the value of PROP_SCAN_DEAD_STORES,
2223         PROP_ASM_SCAN.
2224
2225 2005-04-16  Gerald Pfeifer  <gerald@pfeifer.com>
2226
2227         * doc/install.texi (Specific): Avoid using asterisks in @anchor
2228         names related to target triplets.
2229         Remove i?86-*-esix from platform directory.
2230         Remove powerpc-*-eabiaix from platform directory.
2231
2232 2005-04-16  Joseph S. Myers  <joseph@codesourcery.com>
2233
2234         PR middle-end/20491
2235         * config/ia64/ia64.c (rtx_needs_barrier): Recurse instead of
2236         falling through from SUBREG case to REG.
2237
2238 2005-04-15  Roger Sayle  <roger@eyesopen.com>
2239
2240         * fold-const.c (fold_relational_hi_lo): Delete function and prototype.
2241         (fold_binary): Update comment mentioning fold_relational_hi_lo.
2242         (fold_binary_to_constant): Simplify using fold_binary.
2243         (fold_unary_to_constant): Likewise, simplify using fold_unary.
2244
2245 2005-04-15  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2246
2247         * gthr-posix.c (pthread_cancel): Define.
2248         (pthread_mutexattr_init): Likewise.
2249         (pthread_mutexattr_settype): Likewise.
2250         (pthread_mutexattr_destroy): Likewise.
2251
2252 2005-04-15  David S. Miller  <davem@davemloft.net>
2253
2254         PR target/20673
2255         * config/sparc/sparc.h (sparc_hard_reg_printed): Mark as GTY(()).
2256
2257 2005-04-15  Kazu Hirata  <kazu@cs.umass.edu>
2258
2259         PR tree-optimization/21031
2260         * tree-ssa-forwprop.c (ssa_name_defined_by_comparison_p): New.
2261         (forward_propagate_into_cond_1): Call it.  Forward propagate
2262         integer-integer casts into COND_EXPRs.
2263
2264 2005-04-15  Dave Korn  <dave.korn@artimi.com>
2265
2266         * gcc.c (default_compilers): Clarify obscure error message when
2267         reading from standard input.
2268
2269 2005-04-15  Kazu Hirata  <kazu@cs.umass.edu>
2270
2271         * basic-block.h (PROP_EQUAL_NOTES): Remove.
2272         * flow.c (propagate_one_insn): Don't use PROP_EQUAL_NOTES.
2273
2274         * tree-ssa-alias.c (init_alias_info): Remove a call to
2275         get_stmt_operands.
2276
2277 2005-04-15  Andrew MacLeod  <amacleod@redhat.com>
2278
2279         * tree-vect-analyze.c (vect_stmt_relevant_p): Process immediate uses
2280         of non-virtual PHI nodes like we use to.
2281
2282 2005-05-15  Paolo Bonzini  <bonzini@gnu.org>
2283
2284         * genattrtab.c (ATTR_EQ_ATTR_P): Remove.
2285         (attr_copy_rtx): Do not use it.
2286
2287 2005-04-15  Andrew Macleod  <amacleod@redhat.com>
2288
2289         * doc/tree-ssa.texi: Grammer/abbreviation updates.
2290
2291 2005-04-15  Diego Novillo  <dnovillo@redhat.com>
2292
2293         * tree-vect-transform.c (vectorizable_store): Mark necessary
2294         objects in the vectorized store needing renaming.  Update the
2295         SSA graph for V_MAY_DEF operands in the original store.
2296
2297 2005-04-14  Daniel Berlin <dberlin@dberlin.org>
2298
2299         * tree-ssa-pre.c (compute_avail): It's okay to have
2300         TREE_INVARIANT's here, and value number the resulting expressions.
2301         (create_expression_by_pieces): Make sure operands that were
2302         min_invariant when we started, stay that way.
2303
2304 2005-04-15  David Edelsohn  <edelsohn@gnu.org>
2305
2306         * doc/install.texi (*-ibm-aix*): Add comment about system limits.
2307
2308 2005-04-15  Kazu Hirata  <kazu@cs.umass.edu>
2309
2310         PR tree-optimization/20936.
2311         * tree-ssa-ccp.c (visit_assignment): Fix a typo.
2312
2313 2005-04-15  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2314
2315         * doc/invoke.texi: Fix typos.
2316         * doc/md.texi: Likewise.
2317         * doc/rtl.texi: Likewise.
2318         * doc/sourcebuild.texi: Likewise.
2319         * doc/tm.texi: Likewise.
2320
2321 2005-04-15  Uros Bizjak  <uros@kss-loka.si>
2322
2323         PR tree-optimization/21004
2324         * convert.c (convert_to_integer): Convert ceilf, ceill, floorf
2325         and floorl in c99 mode only.
2326         * builtins.c (expand_builtin_int_roundingfn): Assert that
2327         fallback_fndecl is not NULL_TREE.
2328
2329 2005-04-15  Kazu Hirata  <kazu@cs.umass.edu>
2330
2331         * cfgrtl.c (purge_all_dead_edge): Remove an unused argument.
2332         * basic-block.h: Update the prototype for
2333         purge_all_dead_edges.
2334         * cfgexpand.c (tree_expand_cfg): Update a call to
2335         purge_all_dead_edges.
2336         * combine.c (combine_instructions): Likewise.
2337         * passes.c (rest_of_handle_old_regalloc, rest_of_handle_cse,
2338         rest_of_handle_cse2, rest_of_handle_gcse,
2339         rest_of_handle_postreload): likewise.
2340
2341 2005-04-15  Alexandre Oliva  <aoliva@redhat.com>
2342
2343         PR middle-end/20739
2344         * gimplify.c (gimplify_addr_expr): Compensate for removal of
2345         e.g. cv-qualification conversions.
2346
2347 2005-04-14  Mike Stump  <mrs@apple.com>
2348
2349         * config/darwin-c.c (framework_construct_pathname): We must
2350         find all headers of a framework in the first instance of it
2351         found in the seach path.
2352
2353 2005-04-14  Kazu Hirata  <kazu@cs.umass.edu>
2354
2355         PR tree-optimization/21021
2356         * tree-vrp.c (compare_values): Work around a bug in the front
2357         end that produces a comparison of mismatched types.
2358
2359 2004-04-14  Richard Henderson  <rth@redhat.com>
2360
2361         * config/ia64/ia64.h (enum fetchop_code): Remove.
2362         (enum ia64_builtins): Move ...
2363         * config/ia64/ia64.c (enum ia64_builtins): ... here.  Remove all
2364         members except BSP and FLUSHRS.
2365         (ia64_init_builtins): Remove __sync builtins.
2366         (ia64_expand_builtin): Likewise.
2367         (ia64_expand_fetch_and_op, ia64_expand_op_and_fetch): Remove.
2368         (ia64_expand_compare_and_swap, ia64_expand_lock_test_and_set): Remove.
2369         (ia64_expand_lock_release): Remove.
2370         * config/ia64/ia64.md (mf): Move to sync.md.
2371         (mf_internal, fetchadd_acq_si, fetchadd_acq_di, cmpxchg_acq_si,
2372         cmpxchg_acq_di, xchgsi, xchgdi): Likewise.
2373         * config/ia64/sync.md: New file.
2374         (memory_barrier): Rename from mf.
2375         (fetchadd_acq_<I48MODE>): Macroize from _si/_di patterns.
2376         (cmpxchg_acq_<I48MODE>): Likewise.
2377         (sync_lock_test_and_set<I48MODE>): Likewise.
2378
2379         * config/ia64/ia64intrin.h: Define nothing for C; limit #defines
2380         to c++.  Remove __sync* declarations.  s/_si/_4/.  s/_di/_8/.
2381
2382 2004-04-14  Richard Henderson  <rth@redhat.com>
2383
2384         * config/i386/i386.c (x86_cmpxchg, x86_xadd): New.
2385         (ix86_compare_emitted): New.
2386         (ix86_expand_compare): Use ix86_compare_emitted if set.
2387         (ix86_expand_setcc): Only emit REG_EQUAL if both ix86_compare_op0
2388         and ix86_compare_op0 are set.
2389         * config/i386/i386.h (x86_cmpxchg, x86_xadd): Declare.
2390         (TARGET_CMPXCHG, TARGET_XADD): New.
2391         (ix86_compare_emitted): Declare.
2392         * config/i386/i386.md: Include sync.md
2393         (UNSPECV_CMPXCHG_1, UNSPECV_CMPXCHG_2): New.
2394         (UNSPECV_XCHG, UNSPECV_LOCK): New.
2395         * config/i386/sync.md: New file.
2396
2397 2004-04-14  Richard Henderson  <rth@redhat.com>
2398
2399         PR middle-end/14311
2400         * builtin-types.def (BT_BOOL, BT_VOLATILE_PTR, BT_I1, BT_I2,
2401         BT_I4, BT_I8, BT_FN_VOID_VPTR, BT_FN_I1_VPTR_I1, BT_FN_I2_VPTR_I2,
2402         BT_FN_I4_VPTR_I4, BT_FN_I8_VPTR_I8, BT_FN_BOOL_VPTR_I1_I1,
2403         BT_FN_BOOL_VPTR_I2_I2, BT_FN_BOOL_VPTR_I4_I4, BT_FN_BOOL_VPTR_I8_I8,
2404         BT_FN_I1_VPTR_I1_I1, BT_FN_I2_VPTR_I2_I2, BT_FN_I4_VPTR_I4_I4,
2405         BT_FN_I8_VPTR_I8_I8): New.
2406         * builtins.def (DEF_SYNC_BUILTIN): New.
2407         (BUILT_IN_FETCH_AND_ADD_N, BUILT_IN_FETCH_AND_ADD_1,
2408         BUILT_IN_FETCH_AND_ADD_2, BUILT_IN_FETCH_AND_ADD_4,
2409         BUILT_IN_FETCH_AND_ADD_8, BUILT_IN_FETCH_AND_SUB_N,
2410         BUILT_IN_FETCH_AND_SUB_1, BUILT_IN_FETCH_AND_SUB_2,
2411         BUILT_IN_FETCH_AND_SUB_4, BUILT_IN_FETCH_AND_SUB_8,
2412         BUILT_IN_FETCH_AND_OR_N, BUILT_IN_FETCH_AND_OR_1,
2413         BUILT_IN_FETCH_AND_OR_2, BUILT_IN_FETCH_AND_OR_4,
2414         BUILT_IN_FETCH_AND_OR_8, BUILT_IN_FETCH_AND_AND_N,
2415         BUILT_IN_FETCH_AND_AND_1, BUILT_IN_FETCH_AND_AND_2,
2416         BUILT_IN_FETCH_AND_AND_4, BUILT_IN_FETCH_AND_AND_8,
2417         BUILT_IN_FETCH_AND_XOR_N, BUILT_IN_FETCH_AND_XOR_1,
2418         BUILT_IN_FETCH_AND_XOR_2, BUILT_IN_FETCH_AND_XOR_4,
2419         BUILT_IN_FETCH_AND_XOR_8, BUILT_IN_FETCH_AND_NAND_N,
2420         BUILT_IN_FETCH_AND_NAND_1, BUILT_IN_FETCH_AND_NAND_2,
2421         BUILT_IN_FETCH_AND_NAND_4, BUILT_IN_FETCH_AND_NAND_8,
2422         BUILT_IN_ADD_AND_FETCH_N, BUILT_IN_ADD_AND_FETCH_1,
2423         BUILT_IN_ADD_AND_FETCH_2, BUILT_IN_ADD_AND_FETCH_4,
2424         BUILT_IN_ADD_AND_FETCH_8, BUILT_IN_SUB_AND_FETCH_N,
2425         BUILT_IN_SUB_AND_FETCH_1, BUILT_IN_SUB_AND_FETCH_2,
2426         BUILT_IN_SUB_AND_FETCH_4, BUILT_IN_SUB_AND_FETCH_8,
2427         BUILT_IN_OR_AND_FETCH_N, BUILT_IN_OR_AND_FETCH_1,
2428         BUILT_IN_OR_AND_FETCH_2, BUILT_IN_OR_AND_FETCH_4,
2429         BUILT_IN_OR_AND_FETCH_8, BUILT_IN_AND_AND_FETCH_N,
2430         BUILT_IN_AND_AND_FETCH_1, BUILT_IN_AND_AND_FETCH_2,
2431         BUILT_IN_AND_AND_FETCH_4, BUILT_IN_AND_AND_FETCH_8,
2432         BUILT_IN_XOR_AND_FETCH_N, BUILT_IN_XOR_AND_FETCH_1,
2433         BUILT_IN_XOR_AND_FETCH_2, BUILT_IN_XOR_AND_FETCH_4,
2434         BUILT_IN_XOR_AND_FETCH_8, BUILT_IN_NAND_AND_FETCH_N,
2435         BUILT_IN_NAND_AND_FETCH_1, BUILT_IN_NAND_AND_FETCH_2,
2436         BUILT_IN_NAND_AND_FETCH_4, BUILT_IN_NAND_AND_FETCH_8,
2437         BUILT_IN_BOOL_COMPARE_AND_SWAP_N, BUILT_IN_BOOL_COMPARE_AND_SWAP_1,
2438         BUILT_IN_BOOL_COMPARE_AND_SWAP_2, BUILT_IN_BOOL_COMPARE_AND_SWAP_4,
2439         BUILT_IN_BOOL_COMPARE_AND_SWAP_8, BUILT_IN_VAL_COMPARE_AND_SWAP_N,
2440         BUILT_IN_VAL_COMPARE_AND_SWAP_1, BUILT_IN_VAL_COMPARE_AND_SWAP_2,
2441         BUILT_IN_VAL_COMPARE_AND_SWAP_4, BUILT_IN_VAL_COMPARE_AND_SWAP_8,
2442         BUILT_IN_LOCK_TEST_AND_SET_N, BUILT_IN_LOCK_TEST_AND_SET_1,
2443         BUILT_IN_LOCK_TEST_AND_SET_2, BUILT_IN_LOCK_TEST_AND_SET_4,
2444         BUILT_IN_LOCK_TEST_AND_SET_8, BUILT_IN_LOCK_RELEASE_N,
2445         BUILT_IN_LOCK_RELEASE_1, BUILT_IN_LOCK_RELEASE_2,
2446         BUILT_IN_LOCK_RELEASE_4, BUILT_IN_LOCK_RELEASE_8,
2447         BUILT_IN_SYNCHRONIZE: New.
2448         * builtins.c (called_as_built_in): Rewrite from CALLED_AS_BUILT_IN
2449         as a function.  Accept __sync_ as a prefix as well.
2450         (expand_builtin_sync_operation, expand_builtin_compare_and_swap,
2451         expand_builtin_lock_test_and_set, expand_builtin_synchronize,
2452         expand_builtin_lock_release): New.
2453         (expand_builtin): Call them.
2454         * c-common.c (DEF_BUILTIN): Don't require __builtin_ prefix if
2455         neither BOTH_P nor FALLBACK_P are defined.
2456         (builtin_type_for_size): New.
2457         (sync_resolve_size, sync_resolve_params, sync_resolve_return): New.
2458         (resolve_overloaded_builtin): New.
2459         * c-common.h (resolve_overloaded_builtin): Declare.
2460         (builtin_type_for_size): Declare.
2461         * c-typeck.c (build_function_call): Invoke resolve_overloaded_builtin.
2462         * expr.c (sync_add_optab, sync_sub_optab, sync_ior_optab,
2463         sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab,
2464         sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab,
2465         sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab,
2466         sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab,
2467         sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap,
2468         sync_compare_and_swap_cc, sync_lock_test_and_set,
2469         sync_lock_release): New.
2470         * optabs.h: Declare them.
2471         * expr.h (expand_val_compare_and_swap, expand_bool_compare_and_swap,
2472         expand_sync_operation, expand_sync_fetch_operation,
2473         expand_sync_lock_test_and_set): Declare.
2474         * genopinit.c (optabs): Add sync optabs.
2475         * optabs.c (init_optabs): Initialize sync optabs.
2476         (expand_val_compare_and_swap_1, expand_val_compare_and_swap,
2477         expand_bool_compare_and_swap, expand_compare_and_swap_loop,
2478         expand_sync_operation, expand_sync_fetch_operation,
2479         expand_sync_lock_test_and_set): New.
2480         * doc/extend.texi (Atomic Builtins): New section
2481         * doc/md.texi (Standard Names): Add sync patterns.
2482
2483 2005-04-14  Alexandre Oliva  <aoliva@redhat.com>
2484
2485         * tree-eh.c (lower_try_finally_copy): Generate new code in
2486         response to goto_queue entries as if the queue was sorted by
2487         index, not pointers.
2488         (lower_try_finally_switch): Likewise.
2489
2490 2005-04-14  Richard Henderson  <rth@redhat.com>
2491
2492         * config/i386/i386.c (ix86_expand_sse_cmp): Split out from ...
2493         (ix86_expand_sse_movcc): ... here.  Take cmp as a pre-computed
2494         register.
2495         (ix86_expand_fp_movcc): Update to match.
2496         (ix86_expand_fp_vcond, ix86_expand_int_vcond): New.
2497         * config/i386/i386-protos.h: Update.
2498         * config/i386/sse.md (vcondv4sf, vcondv2df): New.
2499         (vcond<SSEMODE124>, vcondu<SSEMODE12>): New.
2500
2501 2005-04-14  Joseph S. Myers  <joseph@codesourcery.com>
2502
2503         * doc/cpp.texi, doc/install.texi: Change references to GCC 3.5 to
2504         refer to 4.0.
2505
2506 2005-04-14  Julian Brown  <julian@codesourcery.com>
2507
2508         * Revert elfos.h part of my patch from 2005-04-13 for causing libstdc++
2509         link failures on ppc64 Linux.
2510
2511 2005-04-14  Andreas Krebbel  <krebbel1@de.ibm.com>
2512
2513         * config.gcc: Set cpu_type for s390.
2514
2515 2005-04-14  Daniel Berlin  <dberlin@dberlin.org>
2516
2517         Fix PR tree-optimization/20963
2518         * tree-ssa-pre.c (compute_avail): Remove special case for
2519         TREE_INVARIANT.
2520         (create_expression_by_pieces): Add value numbers for forced out
2521         statements.
2522
2523 2005-04-14  Hans-Peter Nilsson  <hp@axis.com>
2524
2525         * config/cris/cris.md: Replace references to (reg:SI 16) with
2526         (reg:SI CRIS_SRP_REGNUM).
2527
2528 2005-04-14  Kazu Hirata  <kazu@cs.umass.edu>
2529
2530         PR tree-optimization/20657
2531         * tree-vrp.c (extract_range_from_expr): Notice INTEGER_CST to
2532         create an appropriate range from it.
2533
2534 2005-04-14  Uros Bizjak  <uros@kss-loka.si>
2535
2536         * reg-stack.c (subst_stack_regs_pat): Handle <UNSPEC_FIST_FLOOR> and
2537         <UNSPEC_FIST_CEIL> case.
2538
2539         * config/i386/i386.md (UNSPEC_FIST_FLOOR, UNSPEC_FIST_CEIL): New.
2540         (*fist<mode>2_floor_1, fistdi2_floor, fistdi2_floor_with_temp)
2541         (fist<mode>2_floor, fist<mode>2_floor_with_temp): New isns patterns
2542         to implement lfloor and llfloor built-ins as x87 intrinsic function.
2543         (fistdi2_floor, fist<mode>2_floor splitters): New splitters.
2544         (lfloor<mode>2): New expanders.
2545         (*fist<mode>2_ceil_1, fistdi2_ceil, fistdi2_ceil_with_temp)
2546         (fist<mode>2_ceil, fist<mode>2_ceil_with_temp): New isns patterns
2547         to implement lceil and llceil built-ins as x87 intrinsic function.
2548         (fistdi2_ceil, fist<mode>2_ceil splitters): New splitters.
2549         (lceil<mode>2): New expanders.
2550
2551 2005-04-14  Uros Bizjak  <uros@kss-loka.si>
2552
2553         * convert.c (convert_to_integer): Convert (long int)trunc{,f,l},
2554         and (long long int)ceil{,f,l} into FIX_TRUNC_EXPR.
2555
2556 2005-04-14  Ulrich Weigand  <uweigand@de.ibm.com>
2557
2558         PR target/20927
2559         * config/s390/s390-modes.def: Define TFmode.
2560
2561 2005-04-13  Richard Sandiford  <rsandifo@redhat.com>
2562
2563         * config/mips/mips.h (ASM_OUTPUT_CASE_LABEL): Delete.
2564         (JUMP_TABLES_IN_TEXT_SECTION): Define.
2565         * config/mips/mips.c (mips16_insn_length): Remove reference to
2566         JUMP_TABLES_IN_TEXT_SECTION.
2567
2568 2005-04-13 Fariborz Jahanian <fjahanian@apple.com>
2569
2570         * simplify-rtx.c (simplify_binary_operation_1): Return
2571         scalar or vector of constant 0, depending on the xor's
2572         mode.
2573
2574 2005-04-13  Dale Johannesen  <dalej@apple.com>
2575
2576         * objc/Make-lang.in (objc-lang.o):  Depend on tree-gimple.h.
2577         (objc-act.o):  Ditto.
2578         * objc/objc-act.c (objc_gimplify_expr):  New.
2579         (objc_get_callee_fndecl):  New.
2580         * objc/objc-act.h:  Include tree-gimple.h.  Declare new functions.
2581         * objc/objc-lang.c (LANG_HOOKS_GIMPLIFY_EXPR):  Define.
2582         (LANG_HOOKS_GET_CALLEE_FNDECL):  Define.
2583
2584 2005-04-13  Devang Patel  <dpatel@apple.com>
2585
2586         * tree-if-conv.c (tree_if_convert_cond_expr): Do not create extra
2587         temp variables.
2588
2589 2005-04-13  Hans-Peter Nilsson  <hp@axis.com>
2590
2591         CRIS prologue as RTL.
2592         * config/cris/cris-protos.h (cris_emit_movem_store)
2593         (cris_expand_prologue): Prototype.
2594         * config/cris/cris.c (struct machine_function): New member
2595         stdarg_regs.
2596         (cfa_label_num, cris_target_asm_function_prologue): Remove.
2597         (TARGET_ASM_FUNCTION_PROLOGUE): Don't override.
2598         (cris_general_operand_or_gotless_symbol): Accept CRIS_UNSPEC_GOT.
2599         (cris_load_multiple_op, cris_return_address_on_stack)
2600         (cris_return_address_on_stack_for_return): ISO-Cify.
2601         (cris_store_multiple_op): New predicate function.
2602         (cris_expand_prologue, cris_emit_movem_store): New functions.
2603         (cris_print_operand) <case 'O'>: Handle modifications other than
2604         post-increment.
2605         (cris_symbol, cris_got_symbol): Return 0 for CRIS_UNSPEC_GOT.
2606         (cris_gotless_symbol): Return 1 for CRIS_UNSPEC_GOT.
2607         (cris_gen_movem_load): Rearrange slightly to make local variable
2608         src a parameter, removing osrc.
2609         (cris_setup_incoming_varargs): Set machine_function member
2610         stdarg_regs to correspond to the number of registers that need to
2611         be saved.
2612         * config/cris/cris.h (EXTRA_CONSTRAINT_S): Accept
2613         CRIS_UNSPEC_GOT.
2614         (PREDICATE_CODES): Add cris_store_multiple_op.  Make
2615         cris_general_operand_or_gotless_symbol accept UNSPEC.
2616         * config/cris/cris.md (CRIS_UNSPEC_GOT): New constant.
2617         ("*movsi_internal") <alternative 8>: Handle CRIS_UNSPEC_GOT.
2618         ("*cris_store_multiple"): New pattern.  Tweak common comment above
2619         this and "*cris_load_multiple".
2620         ("prologue"): New define_expand.
2621
2622         * config/cris/cris.md ("epilogue"): Conditionalize on
2623         TARGET_PROLOGUE_EPILOGUE.
2624
2625 2005-04-13  Steve Ellcey  <sje@cup.hp.com>
2626
2627         PR target/20924
2628         * config/ia64/ia64.md (divsf3_internal_lat): Generate frcpa with
2629         fpsr 0 instead of fpsr 1.
2630         (divsf3_internal_thr): Ditto.
2631         (divdf3_internal_lat): Ditto.
2632         (divdf3_internal_thr): Ditto.
2633         (divxf3_internal_lat): Ditto.
2634         (divxf3_internal_thr): Ditto.
2635
2636 2005-04-13  Kazu Hirata  <kazu@cs.umass.edu>
2637
2638         PR tree-optimization/20913
2639         * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Fold COND_EXPR.
2640
2641         PR tree-optimization/20702
2642         * tree-vrp.c (maybe_add_assert_expr): Recurse into
2643         dominator children that haven't been walked into.
2644
2645 2005-04-13  Julian Brown  <julian@codesourcery.com>
2646
2647         * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK from
2648         being used for symbols with vague linkage when HAVE_GAS_COMDAT_GROUP
2649         is true.
2650
2651 2005-04-13  Kazu Hirata  <kazu@cs.umass.edu>
2652
2653         * basic-block.h, tree-ssa-uncprop.c, varasm.c,
2654         config/i386/sse.md: Fix comment typos.
2655
2656         * genattrtab.c (NULL_ATTR): Remove.
2657         * ifcvt.c (NULL_EDGE): Likewise.
2658
2659         * rtl.h (RTX_EXPR_FIRST, RTX_EXPR_LAST): Remove.
2660
2661         * rtl.h (NOTE_PREDICTION_ALG, NOTE_PREDICTION_FLAGS,
2662         NOTE_PREDICT): Remove.
2663
2664 2005-04-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
2665
2666         * configure.ac (gcc_AC_CHECK_DECLS): Add vsnprintf.
2667         * configure: Regenerate.
2668         * config.in: Likewise.
2669         * system.h: Declare vsnprintf if not already declared.
2670
2671 2005-04-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
2672
2673         * optc-gen.awk: Handle stand-alone Mask records.
2674         * opth-gen.awk: Likewise.
2675         * doc/options.texi (Option file format): Document them.
2676         * config.gcc (sparc-*-netbsdelf*, sparc-*-linux*, sparc64-*-freebsd*,
2677         sparc64-*-linux*, sparc64-*-netbsd*): Add long-double-switch.opt.
2678         (sparc64-*-openbsd*, sparc64-*-elf*): Add little-endian.opt.
2679         * config/sparc/sparc.h (MASK_FPU, MASK_UNALIGNED_DOUBLES,
2680         MASK_V8, MASK_SPARCLITE, MASK_SPARCLET, MASK_V9,
2681         MASK_DEPRECATED_V8_INSNS, MASK_IMPURE_TEXT, MASK_APP_REGS,
2682         MASK_HARD_QUAD, MASK_LITTLE_ENDIAN, MASK_PTR64, MASK_64BIT,
2683         MASK_STACK_BIAS, MASK_FPU_SET, MASK_VIS, MASK_V8PLUS,
2684         MASK_FASTER_STRUCTS, MASK_LONG_DOUBLE_128): Delete.
2685         (TARGET_FPU, TARGET_UNALIGNED_DOUBLES, TARGET_V8, TARGET_SPARCLITE,
2686         TARGET_SPARCLET, TARGET_V9, TARGET_DEPRECATED_V8_INSNS,
2687         TARGET_IMPURE_TEXT, TARGET_APP_REGS, MASK_HARD_QUAD,
2688         TARGET_LITTLE_ENDIAN, TARGET_PTR64, TARGET_64BIT, MASK_STACK_BIAS,
2689         TARGET_FPU_SET, TARGET_VIS, TARGET_V8PLUS, TARGET_FASTER_STRUCTS,
2690         TARGET_LONG_DOUBLE_128): Likewise.
2691         (TARGET_SWITCHES, SUBTARGET_SWITCHES): Likewise.
2692         (TARGET_OPTIONS, SUBTARGET_OPTIONS): Likewise.
2693         * config/sparc/freebsd.h (SUBTARGET_SWITCHES): Likewise.
2694         * config/sparc/linux.h (SUBTARGET_SWITCHES): Likewise.
2695         * config/sparc/linux64.h (SUBTARGET_SWITCHES): Likewise.
2696         * config/sparc/netbsd-elf.h (SUBTARGET_SWITCHES): Likewise.
2697         * config/sparc/sp64-elf.h (SUBTARGET_SWITCHES): Likewise.
2698         * config/sparc/sparc.c (fpu_option_set): New global.
2699         (sparc_handle_option): New function.
2700         (sparc_override_options): Test fpu_option_set.
2701         (TARGET_DEFAULT_TARGET_FLAGS): Set to TARGET_DEFAULT.
2702         (TARGET_HANDLE_OPTION): Set to sparc_handle_option.
2703         * config/sparc/sparc.opt: New file.
2704         * config/sparc/little-endian.opt: Likewise.
2705         * config/sparc/long-double-switch.opt: Likewise.
2706
2707 2005-04-13  Bernd Schmidt  <bernd.schmidt@analog.com>
2708
2709         * config/bfin/bfin.c (bfin_lib_id_given): New static variable.
2710         (bfin_handle_options): Set it if -mshared-library-id= is seen.
2711         * config/bfin/bfin.opt (mshared-library-id=): Lose
2712         Var(bfin_lib_id_given).
2713
2714 2005-04-13  Matt Thomas  <matt@3am-software.com>
2715
2716         * config/rs6000/sysv4.h (NO_IMPLICIT_EXTERN_C): undefine before
2717         defining.
2718
2719 2005-04-13  Kazu Hirata  <kazu@cs.umass.edu>
2720
2721         * rtl.h (CLEAR_RTX_FLAGS): Remove.
2722
2723         * cgraphunit.c (INSNS_PER_CALL): Remove.
2724
2725         * tree-ssa-forwprop.c (vars,
2726         record_single_argument_cond_exprs,
2727         substitute_single_use_vars): Remove.
2728         (forward_propagate_into_cond_1, forward_propagate_into_cond):
2729         New.
2730         (tree_ssa_forward_propagate_single_use_vars): Call
2731         forward_propagate_into_cond for each COND_EXPR.
2732
2733         * tree-inline.c (INSNS_PER_STMT): Remove.
2734
2735 2005-04-12  Richard Henderson  <rth@redhat.com>
2736
2737         * config/i386/i386.c (ix86_prepare_sse_fp_compare_args): Split ...
2738         (ix86_expand_sse_fp_minmax): ... from ...
2739         (ix86_expand_fp_movcc): ... here.
2740         (ix86_expand_sse_movcc): Rewrite from ix86_split_sse_movcc.
2741         * config/i386/i386-protos.h: Update.
2742         * config/i386/i386.md (UNSPEC_IEEE_MIN, UNSPEC_IEEE_MAX): New.
2743         (sse_setccsf, sse_setccdf): Allow before reload.
2744         (movsfcc_1_sse_min, movsfcc_1_sse_max, movsfcc_1_sse): Remove.
2745         (movdfcc_1_sse_min, movdfcc_1_sse_max, movdfcc_1_sse): Remove.
2746         (ieee_sminsf3, ieee_smaxsf3, ieee_smindf3, ieee_smaxdf3): New.
2747         * config/i386/sse.md (andsf3, nandsf3, iorsf3, xorsf3): New.
2748         (anddf3, nanddf3, iordf3, xordf3): New.
2749
2750 2005-04-12  Jeff Law  <law@redhat.com>
2751
2752         * Makefile.in (OBJS-common): Add tree-ssa-uncprop.o.
2753         (tree-ssa-uncprop.o): Add dependencies.
2754         * tree-cfg.c (remove_useless_stmts_bb, remove_useless_stmts): Remove.
2755         * tree-flow.h (remove_useless_stmts): Remove prototype.
2756         * tree-outof-ssa.c (rewrite_out_of_ssa): Remove call to
2757         remove_useless_stmts.
2758         * timevar.def (TV_TREE_SSA_UNCPROP): New timevar.
2759         * tree-optimize.c (init_tree_optimization_passes): Add uncprop pass.
2760         * tree-pass.h (pass_uncprop): Declare.
2761         * tree-ssa-uncprop.c: New file.
2762
2763 2005-04-12  James E. Wilson  <wilson@specifixinc.com>
2764
2765         PR target/20670
2766         * unwind-ia64.c (uw_intall_context): Add missing load of r27.
2767
2768 2005-04-12  Caroline Tice  <ctice@apple.com>
2769
2770         Temporary fix for partitioning problems.
2771         * passes.c (rest_of_handle_final): Remove code that
2772         frees unlikely_text_section_name,
2773         * varasm.c (assemble_start_function): Test for partitioning
2774         flag before writing out section labels.
2775         (assemble_end_function): Test for partitioning flag before
2776         writing out section labels.
2777
2778 2005-04-12  Steven Bosscher  <stevenb@suse.de>
2779             Stuart Hastings <stuart@apple.com>
2780             Jan Hubicka  <jh@suse.cz>
2781
2782         * Makefile.in: Add function.h to BASIC_BLOCK_H.  Remove all
2783         references to gt-tree-cfg.h.
2784         * basic-block.h (struct basic_block_def): Don't skip rbi
2785         for garbage collection.
2786         (struct reorder_block_def): Make GTY-able.
2787         (struct control_flow_graph): New structure.
2788         (n_edges, n_basic_blocks, last_basic_block, basic_block_info,
2789         BASIC_BLOCK, EXIT_BLOCK_PTR, ENTRY_BLOCK_PTR): No longer vars,
2790         but instead defines to the control_flow_graph for cfun.
2791         (label_to_block_map): New define, points to the label map of
2792         the control_flow_graph for cfun.
2793         (n_edges_for_function, n_basic_blocks_for_function,
2794         last_basic_block_for_function, basic_block_info_for_function,
2795         EXIT_BLOCK_PTR_FOR_FUNCTION, ENTRY_BLOCK_PTR_FOR_FUNCTION,
2796         basic_block_info_for_function, label_to_block_map_for_function):
2797         Counterparts for the above, taking a struct function as an extra
2798         argument.
2799         (alloc_rbi_pool, free_rbi_pool): Remove prototypes.
2800         * cfg.c: (n_edges, n_basic_blocks, last_basic_block,
2801         basic_block_info, ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Remove.
2802         (alloc_rbi_pool, free_rbi_pool): Remove.
2803         (initialize_bb_rbi): Use ggc_alloc_cleared instead of pool_alloc.
2804         * cfglayout.c: (cfg_layout_initialize): Don't allocate the rbi pool
2805         here...
2806         (cfg_layout_finalize) ... and don't free it here.
2807         * cfgrtl.c (cfg_layout_delete_block): Zero out rbi so it gets
2808         garbage collected.
2809         * flow.c (free_basic_block_vars): Set label_to_block_map and
2810         n_edges to zero too.
2811         * function.h (struct function): Add cfg field.
2812         * function.c (allocate_struct_function): Allocate the cfg.
2813         * tree-cfg.c (label_to_block_map): Remove.
2814         (build_tree_cfg): Don't allocate the rbi pool here...
2815         (delete_tree_cfg_annotations): ...and don't free it here.
2816         Also don't nullify label_to_block_map for cfun.
2817
2818 2005-04-12  Caroline Tice  <ctice@apple.com>
2819
2820         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
2821         Revert my patch from April 9.
2822         (fix_edges_for_rarely_executed_code): Revert my patch from April 9.
2823         (reorder_basic_blocks): Revert my patch from April 9.
2824         (insert_section_boundary_note): Revert my patch from April 9.
2825         * dbxout.c (dbxout_function_end): Revert my patch from April 9.
2826         * dwarf2out.c (COLD_TEXT_SECTION_LABEL): Revert my patch from April 9.
2827         (COLD_END_LABEL):  Revert my patch from April 9.
2828         (cold_text_section_label):  Revert my patch from April 9.
2829         (cold_end_label): Revert my patch from April 9.
2830         (dwarf2out_switch_text_section): Revert my patch from April 9.
2831         (output_aranges): Revert my patch from April 9.
2832         (output_ranges):  Revert my patch from April 9.
2833         (output_line_info): Revert my patch from April 9.
2834         (add_location_or_const_value_attribute):  Revert my patch from April 9.
2835         (dwarf2out_var_location): Revert my patch from April 9.
2836         (dwarf2out_init):  Revert my patch from April 9.
2837         (dwarf2out_finish): Revert my patch from April 9.
2838         * function.h (struct function): Revert my patch from April 9.
2839         * opts.c (decode_options): Revert my patch from April 9.
2840         * output.h (unlikely_section_label, hot_section_label,
2841         hot_section_end_label, cold_section_end_label,
2842         unlikely_text_section_name): Revert my patch from April 9.
2843         * passes.c (rest_of_handle_final): Revert my patch from April 9.
2844         * varasm.c (unlikely_section_label, hot_section_label,
2845         hot_section_end_label, cold_section_end_label,
2846         unlikely_text_section_name): Revert my patch from April 9.
2847         (initialize_cold_section_name): Revert my patch from April 9.
2848         (unlikely_text_section): Revert my patch from April 9.
2849         (in_unlikely_text_section): Revert my patch from April 9.
2850         (named_section): Revert my patch from April 9.
2851         (function_section): Revert my patch from April 9.
2852         (current_function_section): Revert my patch from April 9.
2853         (assemble_start_function): Revert my patch from April 9.
2854         (assemble_end_function): Revert my patch from April 9.
2855         (default_section_type_flags_1): Revert my patch from April 9.
2856
2857 2005-04-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
2858
2859         * config/sparc/sparc.h (APPLY_RESULT_SIZE): Set to 24 in 64-bit mode.
2860         * config/sparc/sparc.md (untyped_call): Save the registers manually.
2861
2862         * config/sparc/sparc.c (legitimate_address_p): Use TARGET_ARCH32.
2863
2864 2005-04-12  Ulrich Weigand  <uweigand@de.ibm.com>
2865
2866         PR middle-end/20917
2867         * config/s390/s390.md ("*set_tp"): Use SET in pattern.
2868         ("set_tp_64", "set_tp_31"): Adapt expanded pattern.
2869
2870 2004-04-12  Richard Henderson  <rth@redhat.com>
2871
2872         * config/i386/i386.md (UNSPEC_FIX, UNSPEC_MOVA, UNSPEC_SHUFFLE,
2873         UNSPEC_PSHUFLW, UNSPEC_PSHUFHW, UNSPEC_ADDSUB, UNSPEC_HADD,
2874         UNSPEC_HSUB, UNSPEC_MOVSHDUP, UNSPEC_MOVSLDUP, UNSPEC_MOVDDUP): Remove.
2875         (UNSPEC_*, UNSPECV_*): Renumber.
2876
2877 2005-04-12  Frank Ch. Eigler  <fche@redhat.com>
2878
2879         PR mudflap/19266
2880         From Richard Henderson <rth@redhat.com>:
2881         * tree-mudflap.c (mf_build_check_statement_for): Correct block
2882         splitting logic.
2883
2884 2005-04-12  Dorit Naishlos  <dorit@il.ibm.com>
2885
2886         * tree-cfg.c (tree_verify_flow_info): Use LABEL_EXPR_LABEL.
2887
2888 2005-04-12  Bernd Schmidt  <bernd.schmidt@analog.com>
2889
2890         * config/bfin/bfin.c (bfin_library_id_string): Remove.
2891         (bfin_library_id): New variable.
2892         (bfin_expand_prologue): Use bfin_library_id and bfin_lib_id_given
2893         instead of bfin_library_id_string.
2894         (bfin_handle_option): New function.
2895         (override_options): Remove most code to deal with shared library IDs,
2896         just check they aren't used without -mid-shared-library.
2897         (TARGET_HANDLE_OPTION): Define.
2898         * config/bfin/bfin.h (TARGET_OPTIONS): Delete macro.
2899         * config/bfin/bfin.opt (mshared-library-id=): New.
2900
2901 2005-04-12  Kazu Hirata  <kazu@cs.umass.edu>
2902
2903         * tree-vect-transform.c: Fix comment typos.
2904
2905 2005-04-12 Mostafa Hagog <mustafa@il.ibm.com>
2906
2907         * postreload-gcse.c (eliminate_partially_redundant_load): Don't
2908         split critical edges when not possible/profitable.
2909
2910 2005-04-12  Richard Sandiford  <rsandifo@redhat.com>
2911
2912         * config/ns32k/ns32k.h (target_flags, MASK_32081, MASK_RTD)
2913         (MASK_REGPARM, MASK_32532, MASK_32332, MASK_NO_SB, MASK_NO_BITFIELD)
2914         (MASK_HIMEM, MASK_32381, MASK_MULT_ADD, MASK_SRC, MASK_IEEE_COMPARE)
2915         (TARGET_32081, TARGET_32381, TARGET_MULT_ADD, TARGET_RTD)
2916         (TARGET_REGPARM, TARGET_32532, TARGET_32332, TARGET_SB, TARGET_HIMEM)
2917         (TARGET_BITFIELD, TARGET_IEEE_COMPARE, TARGET_SWITCHES): Delete.
2918         (OVERRIDE_OPTIONS): Clear MASK_SB instead of setting MASK_NO_SB.
2919         * config/ns32k/netbsd.h (TARGET_DEFAULT): Remove MASK_NO_SB and
2920         MASK_NO_BITFIELD.
2921         * config/ns32k/ns32k.c (ns32k_handle_option): New function.
2922         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
2923         * config/ns32k/ns32k.opt: New file.
2924
2925 2005-04-12  Richard Sandiford  <rsandifo@redhat.com>
2926
2927         * config.gcc (m68k-*-linux*): Add m68k/ieee.opt to $extra_options.
2928         * config/m68k/m68k.h (target_flags, MASK_68020, TARGET_68020)
2929         (MASK_68030, TARGET_68030, MASK_68040, TARGET_68040, MASK_68040_ONLY)
2930         (TARGET_68040_ONLY, MASK_68060, TARGET_68060, MASK_5200, TARGET_5200)
2931         (MASK_CFV3, TARGET_CFV3, MASK_CFV4, TARGET_CFV4, MASK_528x)
2932         (TARGET_528x, MASK_CF_HWDIV, TARGET_CF_HWDIV, MASK_68881, TARGET_68881)
2933         (MASK_BITFIELD, TARGET_BITFIELD, MASK_SHORT, TARGET_SHORT)
2934         (MASK_ALIGN_INT, TARGET_ALIGN_INT, MASK_PCREL, TARGET_PCREL)
2935         (MASK_NO_STRICT_ALIGNMENT, TARGET_STRICT_ALIGNMENT, MASK_RTD)
2936         (TARGET_RTD, MASK_SEP_DATA, TARGET_SEP_DATA, MASK_ID_SHARED_LIBRARY)
2937         (TARGET_ID_SHARED_LIBRARY, MASK_ALL_CF_BITS, TARGET_SWITCHES)
2938         (TARGET_OPTIONS, SUBTARGET_SWITCHES, SUBTARGET_OPTIONS): Delete.
2939         (MASK_COLDFIRE): Formatting fixes.
2940         (TARGET_COLDFIRE): Turn into a boolean value for consistency.
2941         * config/m68k/linux.h (SUBTARGET_SWITCHES): Delete.
2942         * config/m68k/m68k.c (m68k_library_id_string): Initialize to
2943         "_current_shared_library_a5_offset_".
2944         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
2945         (MASK_ALL_CPU_BITS): New macro.
2946         (m68k_handle_option): New function.
2947         (override_options): Remove handling of m68k_library_id_string.
2948         * config/m68k/m68k.opt: New file.
2949         * config/m68k/ieee.opt: New file.
2950
2951 2005-04-11  Mark Mitchell  <mark@codesourcery.com>
2952
2953         * target-def.h (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
2954         (TARGET_CXX_DETERMINE_CLASS_VISIBILITY): New macro.
2955         (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
2956         (TARGET_CXX): Adjust accordingly.
2957         * target.h (struct gcc_target): Remove epxort_class_data.  Add
2958         determine_class_data_visibility and class_data_always_comdat.
2959         * doc/tm.texi (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
2960         (TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY): Document.
2961         (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
2962         * config/arm/arm.c (arm_cxx_export_class_data): Remove.
2963         (arm_cxx_determine_class_data_visibility): New.
2964         (arm_cxx_class_data_always_comdat): Likewise.
2965         (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
2966         (TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY): Define.
2967         (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
2968         * config/arm/arm.h (TARGET_ARM_DYNAMIC_VAGUE_LINKAGE_P): Define.
2969         * config/arm/symbian.h (TARGET_ARM_DYNAMIC_VAGUE_LINKAGE_P):
2970         Define.
2971
2972 2005-04-11  Devang Patel  <dpatel@apple.com>
2973
2974         * tree-data-ref.c (build_classic_dist_vector,
2975         compute_subscript_distance): Make externally visible.
2976         * tree-data-ref.h (build_classic_dist_vector,
2977         compute_subscript_distance): Same.
2978         * tree-vect-analyze.c (vect_analyze_data_ref_dependence):
2979         Check distance vector against vectorization factor.
2980         (vect_analyze_loop): Determine vectorizaion factor before
2981         analyzing data dependences.
2982         * tree-vectorizer.c (loops_num): Make it externally visible and
2983         rename ...
2984         * tree-vectorizer.c (vect_loops_num): ... new name.
2985         * tree-vectorizer.h  (vect_loops_num): New.
2986
2987 2005-04-11  Devang Patel  <dpatel@apple.com>
2988
2989         * tree-vect-analyze.c (vect_analyze_operations): Check
2990         vectorizable codition.
2991         * tree-vect-transform.c (vect_is_simple_cond): New function.
2992         (vectorizable_condition): New function.
2993         (vect_transform_stmt): Handle condition_vec_info_type.
2994         * tree-vectorizer.h (enum stmt_vec_info_type): Add
2995         condition_vec_info_type.
2996         (vectorizable_condition): New.
2997
2998 2005-04-11  Geoffrey Keating  <geoffk@apple.com>
2999
3000         * config/i386/i386.h (TARGET_FPMATH_DEFAULT): New.
3001         * config/i386/darwin.h (TARGET_FPMATH_DEFAULT): New.
3002         * config/i386/i386.c (override_options): Use TARGET_FPMATH_DEFAULT.
3003
3004         * config/i386/darwin.h (ASM_SPEC): Use -arch i386 not -arch i686.
3005         (SUBTARGET_EXTRA_SPECS): Always 'i386'.
3006
3007         * dwarf2out.c (output_line_info): Don't try to dereference
3008         a NULL current_function_decl.
3009
3010         * config/t-slibgcc-darwin: Don't put shared libraries in
3011         directories other than $(slibdir).
3012         * config/rs6000/darwin.h: Find -m64 libgcc under the name the
3013         OS uses for it.
3014
3015 2005-04-11  Diego Novillo  <dnovillo@redhat.com>
3016
3017         PR tree-optimization/20933
3018         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Move
3019         logic to reject aliases between read-only and writable
3020         variables ...
3021         (may_alias_p): ... here.
3022         (get_tmt_for): Do not associate read-only tags to pointers
3023         whose pointed-to type is not read-only.
3024         * tree-ssa.c (verify_ssa): Check that memory stores have at
3025         least one V_MAY_DEF or V_MUST_DEF.
3026
3027 2005-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3028
3029         PR/17092
3030         * configure.ac (gcc_UNLOCKED_FUNCS): New.
3031         (AC_CHECK_FUNCS, AC_CHECK_DECLS): Check for gcc_UNLOCKED_FUNCS.
3032         * system.h (putchar, getc, getchar, clearerr, feof, fileno,
3033         fflush, fgetc, fgets, ferror, fread): Redefine to the associated
3034         _unlocked function.
3035         (fwrite_unlocked): Fix prototype.
3036
3037         * configure, config.in: Regenerate.
3038
3039 2005-04-11  David Edelsohn  <edelsohn@gnu.org>
3040
3041         * tree-ssa-loop-im.c: Include real.h.
3042         (determine_invariantness_stmt): If real division divisor is
3043         invariant and flag_unsafe_math_optimizations enabled, generate
3044         invariant reciprocal for hoisting.
3045         * Makefile.in (tree-ssa-loop-im.o): Add real.h dependency.
3046
3047 2005-04-11  Daniel Berlin  <dberlin@dberlin.org>
3048
3049         Fix PR tree-optimization/20926
3050
3051         * tree-ssa-alias.c (add_type_alias): Handle subvars.
3052
3053 2005-04-11  Devang Patel  <dpatel@apple.com>
3054
3055         * config/rs6000.c (rs6000_emit_vector_select): Fix vector select
3056         operand ordering.
3057
3058 2005-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
3059
3060         * fold-const.c (fold_binary_op_with_conditional_arg):
3061         use fold_buildN instead of "fold (buildN" in some
3062         non obvious places.
3063         (fold_unary): Likewise.
3064         (fold_binary): Likewise.
3065
3066 2005-04-11  Daniel Berlin  <dberlin@dberlin.org>
3067
3068         Fix PR tree-optimization/20612
3069         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Fix increment
3070         handling
3071         (perfect_nestify): preheaderbb is *not* part of loop of the
3072         old destination.
3073
3074 2005-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
3075
3076         * tree-ssa-alias.c (may_alias_p): If the variable
3077         is a global variable and the pointer is parameter
3078         and -fargument-noalias-global is used, then
3079         the pointer cannot alias the variable.
3080
3081 2005-04-11  James A. Morrison  <phython@gcc.gnu.org>
3082
3083         * config/sparc/sparc.c: Use gcc_assert and gcc_unreachable.
3084         * config/sparc/sparc.h: Likewise.
3085         * config/sparc/sparc.md: Likewise.
3086
3087 2005-04-11  Kazu Hirata  <kazu@cs.umass.edu>
3088
3089         * tree-vrp.c (maybe_add_assert_expr): Move a comment.
3090
3091         * tree-vrp.c: Fix a comment typo.
3092
3093 2005-04-11  Diego Novillo  <dnovillo@redhat.com>
3094
3095         PR tree-optimization/20920
3096         * tree-pretty-print.c (dump_generic_node): Show '(ab)' if an
3097         SSA_NAME flows through an abnormal edge.
3098         * tree-vrp.c (infer_value_range): Ignore SSA names that flow
3099         through abnormal edges.
3100         (maybe_add_assert_expr): Likewise.
3101
3102 2005-04-11  Richard Sandiford  <rsandifo@redhat.com>
3103
3104         * config/s390/s390.h (s390_tune_string, s390_arch_string)
3105         (s390_warn_framesize_string, s390_warn_dynamicstack_string)
3106         (s390_stack_size_string, s390_stack_guard_string, target_flags)
3107         (MASK_HARD_FLOAT, MASK_SMALL_EXEC, MASK_DEBUG_ARG, MASK_64BIT)
3108         (MASK_ZARCH, MASK_MVCLE, MASK_TPF_PROFILING, MASK_NO_FUSED_MADD)
3109         (MASK_BACKCHAIN, MASK_PACKED_STACK, TARGET_HARD_FLOAT)
3110         (TARGET_SOFT_FLOAT, TARGET_SMALL_EXEC, TARGET_DEBUG_ARG)
3111         (TARGET_64BIT, TARGET_ZARCH, TARGET_MVCLE, TARGET_TPF_PROFILING)
3112         (TARGET_NO_FUSED_MADD, TARGET_FUSED_MADD, TARGET_BACKCHAIN)
3113         (TARGET_PACKED_STACK, TARGET_SWITCHES, TARGET_OPTIONS): Delete.
3114         * config/s390/s390.c (TARGET_DEFAULT_TARGET_FLAGS): Override default.
3115         (TARGET_HANDLE_OPTION): Likewise.
3116         (s390_tune): Initialize to PROCESSOR_max.
3117         (s390_arch_string): Make static.
3118         (s390_tune_string, s390_warn_framesize_string): Delete.
3119         (s390_warn_dynamicstack_string, s390_stack_size_string): Delete.
3120         (s390_stack_guard_string, s390_warn_dynamicstack_p): Delete.
3121         (s390_handle_arch_option, s390_handle_option): New functions.
3122         (override_options): Remove parsing of option strings.
3123         * config/s390/s390.opt: New file.
3124
3125 2005-04-11  Paolo Bonzini  <bonzini@gnu.org>
3126
3127         * tree-complex.c (expand_vector_operations): Call
3128         update_stmt_if_modified.
3129
3130 2005-04-11  Paolo Bonzini  <bonzini@gnu.org>
3131
3132         * tree-vect-analyze (vect_determine_vectorization_factor):
3133         Do not use GET_MODE_NUNITS.
3134         * tree-vect-transform.c (vect_get_vec_def_for_operand,
3135         (vectorizable_load, vect_transform_loop): Likewise.
3136
3137 2005-04-11  Uros Bizjak  <uros@kss-loka.si>
3138
3139         * builtins.def (BUILT_IN_LCEIL, BUILT_IN_LCEILF, BUILT_IN_LCEILL)
3140         (BUILT_IN_LLCEIL, BUILT_IN_LLCEILF, BUILT_IN_LLCEILL): New.
3141         * optabs.h (enum optab_index): Add new OTI_lceil.
3142         (lceil_optab): Define corresponding macro.
3143         * optabs.c (init_optabs): Initialize lceil_optab.
3144         * genopinit.c (optabs): Implement lceil_optab using lceilsi2
3145         and lceildi2 patterns.
3146         * builtins.c (expand_builtin_int_roundingfn): Handle
3147         BUILT_IN_LCEIL{,F,L} and BUILT_IN_LLCEIL{,F,L}.
3148         (fold_builtin_int_roundingfn): Handle BUILT_IN_LCEIL{,F,L} and
3149         BUILT_IN_LLCEIL{,F,L}.
3150         (fold_builtin_1): Fold BUILT_IN_LCEIL{,F,L} and
3151         BUILT_IN_LLCEIL{,F,L} using fold_builtin_int_roundingfn.
3152         (mathfn_built_in): Handle BUILT_IN LCEIL and BUILT_IN_LLCEIL.
3153         (expand_builtin): Expand BUILT_IN_LCEIL{,F,L} and
3154         BUILT_IN_LLCEIL{,F,L} using expand_builtin_int_roundingfn.
3155         * convert.c (convert_to_integer): Convert (long int)ceil{,f,l},
3156         into lceil built-in function and (long long int)ceil{,f,l} into
3157         llceil built-in function.
3158         * fold-const.c (tree_expr_nonnegative_p): Add BUILT_IN_LCEIL and
3159         BUILT_IN_LLCEIL.
3160
3161 2005-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3162
3163         * pa/quadlib.c (_U_Qfneg): Toggle sign bit instead of subtracting from
3164         zero.
3165
3166 2005-04-10  Kazu Hirata  <kazu@cs.umass.edu>
3167
3168         * config/arm/arm.c: Fix a comment typo.
3169         * doc/tree-ssa.texi: Fix a typo.
3170
3171 2005-04-10  Steven Bosscher  <stevenb@suse.de>
3172
3173         * cselib.c (clear_table): Rename to cselib_clear_table.
3174         * cselib.h (cselib_clear_table): Add prototype.
3175         * gcse.c (gcse_main): Make 'f' argument unused.
3176         (alloc_gcse_mem): Do not walk the insn chain, walk the contents
3177         of each basic block instead.
3178         (compute_sets, compute_hash_table_work): Likewise.
3179         (constprop_register): Change int 'alter_jumps' argument to bool.
3180         (do_local_cprop): Likewise.
3181         (local_cprop_pass): Likewise.  Also walk basic blocks instead of
3182         the insn chain.  Explicitly clear the cselib tables after finishing
3183         one basic block.  Make sure there are no unterminated libcall blocks.
3184         Update compute_sets call.
3185         (cprop): Walk basic blocks instead of the insn chain.
3186         (one_cprop_pass, compute_ld_motion_mems, compute_store_table):
3187         Likewise.
3188         (bypass_jumps): Update alloc_gcse_mem, compute_sets, and
3189         one_cprop_pass calls.
3190
3191 2005-04-10  Richard Sandiford  <rsandifo@redhat.com>
3192
3193         * combine.c (combine_simplify_rtx): Remove a transformation that
3194         relies on an invalid assumption about rtl sign-extension semantics.
3195
3196 2005-04-10  Richard Sandiford  <rsandifo@redhat.com>
3197
3198         * value-prof.c (tree_divmod_fixed_value_transform): Fix arguments
3199         to build_int_cst_wide.
3200
3201 2005-04-09  Alexandre Oliva  <aoliva@redhat.com>
3202
3203         PR target/20126
3204         * loop.c (loop_givs_rescan): If replacement of DEST_ADDR failed,
3205         set the original address pseudo to the correct value before the
3206         original insn, if possible, and leave the insn alone, otherwise
3207         create a new pseudo, set it and replace it in the insn.
3208         * recog.c (validate_change_maybe_volatile): New.
3209         * recog.h (validate_change_maybe_volatile): Declare.
3210
3211 2005-04-09  Caroline Tice  <ctice@apple.com>
3212
3213         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
3214         Remove targetm.have_named_sections test.
3215         (fix_edges_for_rarely_executed_code): Likewise.
3216         (insert_section_boundary_note): Likewise.
3217         (reorder_basic_blocks): Check partitioning flag before calling
3218         verify_hot_cold_block_grouping.
3219         * dbxout.c (dbxout_function_end): Get hot/cold section labels from
3220         the function struct rather than global variables.
3221         * dwarf2out.c (COLD_TEXT_SECTION_LABEL): New macro.
3222         (COLD_END_LABEL): Likewise
3223         (cold_text_section_label): New static global variable.
3224         (cold_end_label): Likewise.
3225         (dwarf2out_switch_text_section): Get hot/cold section labels from
3226         the function struct rather than global variables.
3227         (output_aranges): Use cold_text_section_label and cold_end_label;
3228         check partitioning flag before putting out delta.
3229         (output_ranges): Remove incorrect code attempting to use
3230         hot/cold labels.
3231         (output_line_info): Get cold section label from function struct.
3232         (add_location_or_const_value_attribute): Likewise.
3233         (get_subprogram_die): Get hot/cold section labels from function struct.
3234         (dwarf2out_var_location): Likewise.
3235         (dwarf2out_init): Generate cold_text_section_label and cold_end_label;
3236         write out cold_text_section_label if partition flag is set.
3237         (dwarf2out_finish): Write out cold_end_label if partition flag is set;
3238         * function.h (struct function): Add new fields to point to hot/cold
3239         section labels: hot_section_label, cold_section_label,
3240         hot_section_end_label and cold_section_end_label; also add new field
3241         for cold text section name, unlikely_text_section_name.
3242         * opts.c (decode_options): Turn off partitioning flag if
3243         !targetm.have_named_sections.
3244         * output.h (hot_section_label): Remove.
3245         (hot_section_end_label): Remove.
3246         (cold_section_end_label): Remove.
3247         (unlikely_section_label): Remove.
3248         (unlikely_text_section_name): Remove.
3249         * passes.c (rest_of_handle_final):  Remove code that frees
3250         unlikely_text_section_name.
3251         * varasm.c (unlikely_section_label): Remove.
3252         (hot_section_label): Remove.
3253         (hot_section_end_label): Remove.
3254         (cold_section_end_label): Remove.
3255         (unlikely_text_section_name):  Remove.
3256         (initialize_cold_section_name): Modify to call
3257         targetm.strip_name_encoding; to store cold section name in current
3258         function struct, if it exists; and to only use the decl_section_name
3259         if flag_named_sections is true.
3260         (unlikely_text_section): Modify to get section name out of current
3261         function struct, if there is one; otherwise build it from
3262         UNLIKELY_EXECUTED_TEXT_SECTION_NAME.
3263         (in_unlikely_text_section): Likewise.
3264         (named_section): Modify to get/put cold section name in current function
3265         struct, if there is one.
3266         (function_section):  Change 'bool unlikely' to 'int reloc'; check
3267         targetm.have_named_sections before calling named_section.
3268         (current_function_section): Likewise.
3269         (assemble_start_function): Modify to get/put unlikely_text_section_name
3270         in current function struct; modify to get hot/cold section labels
3271         from function struct; initialize labels using
3272         ASM_GENERATE_INTERNAL_LABEL;
3273         test partitioning flag before writing out hot section label.
3274         (assemble_end_function): Test partitioning flag before writing out
3275         hot/cold section labels.
3276         (default_section_type_flags_1):  Modify to use array instead of
3277          char* for unlikely_text_section_name; set flags correctly for
3278          cold text section if there is not a current function decl.
3279
3280 2005-04-09  Jakub Jelinek  <jakub@redhat.com>
3281
3282         * tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD
3283         and TI_VA_LIST_FPR_COUNTER_FIELD.
3284         (va_list_gpr_counter_field, va_list_fpr_counter_field): Define.
3285         * tree-pass.h (pass_stdarg): Add.
3286         * tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg.
3287         * tree-stdarg.c: New file.
3288         * tree-stdarg.h: New file.
3289         * Makefile.in (OBJS-common): Add tree-stdarg.o.
3290         (tree-stdarg.o): Add dependencies.
3291         * function.h (struct function): Add va_list_gpr_size and
3292         va_list_fpr_size fields.
3293         * function.c (allocate_struct_function): Initialize them.
3294         * target.h (struct gcc_target): Add stdarg_optimize_hook.
3295         * target-def.h (TARGET_STDARG_OPTIMIZE_HOOK): Define.
3296         (TARGET_INITIALIZER): Add it.
3297
3298         * config/i386/i386.c (ix86_build_builtin_va_list): Initialize
3299         va_list_{g,f}pr_counter_field.
3300         (ix86_setup_incoming_varargs): Don't do anything if reg_save
3301         area will not be used.  Only save registers that tree-stdarg.c
3302         detected they need saving.
3303         (ix86_va_start): Don't set up fields that won't be used.
3304
3305         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize
3306         va_list_{g,f}pr_counter_field.
3307         (setup_incoming_varargs): Don't do anything if reg_save
3308         area will not be used.  Only save registers that tree-stdarg.c
3309         detected they need saving.
3310         (rs6000_va_start): Don't set up fields that won't be used.
3311
3312         * config/alpha/alpha.c: Include tree-flow.h and tree-stdarg.h.
3313         (alpha_build_builtin_va_list): Initialize va_list_gpr_counter_field.
3314         (va_list_skip_additions, alpha_stdarg_optimize_hook): New functions.
3315         (TARGET_STDARG_OPTIMIZE_HOOK): Define.
3316
3317 2005-04-09  Jakub Jelinek  <jakub@redhat.com>
3318
3319         PR target/20795
3320         * config/i386/i386.c (construct_container): Pass empty aligned
3321         struct, union or class in memory.
3322
3323 2005-04-09  Kazu Hirata  <kazu@cs.umass.edu>
3324
3325         * dominance.c, gthr-win32.h, reg-stack.c, tree-ssa-copy.c,
3326         tree-ssa-operands.c, tree-ssa.c, tree-vrp.c, varasm.c,
3327         config/alpha/alpha.c, config/arm/arm.c, config/m32r/m32r.h,
3328         config/rs6000/predicates.md: Fix comment typos.
3329
3330         * sched-int.h (haifa_insn_data): Remove blockage and units.
3331         (INSN_UNIT, INSN_BLOCKAGE, UNIT_BITS, BLOCKAGE_MASK,
3332         ENCODE_BLOCKAGE, UNIT_BLOCKED, BLOCKAGE_RANGE,
3333         MIN_BLOCKAGE_COST, MAX_BLOCKAGE_COST): Remove.
3334
3335 2005-04-09  Jan Hubicka  <jh@suse.cz>
3336             Steven Bosscher  <stevenb@suse.de>
3337
3338         * cfglayout.c (copy_bbs): Rename n_edges to num_edges.
3339         * cfgloop.c (get_loop_exit_edges): Likewise.
3340         * cfgloopmanip.c (fix_irreducible_loops): Likewise.
3341         (unloop): Likewise.
3342         * loop-unroll.c (analyze_insns_in_loop): Likewise.
3343         * tree-cfg.c (dump_cfg_status): Likewise.
3344
3345 2005-04-09  David Edelsohn  <edelsohn@gnu.org>
3346
3347         * config/rs6000/predicates.md (altivec_register_operand): Remove
3348         redundant match_code test.
3349         (gpc_reg_operand): Same.
3350         (cc_reg_operand): Same.
3351         (cc_reg_not_cr0_operand): Same.
3352
3353 2005-04-09  Jan Hubicka  <jh@suse.cz>
3354
3355         Forgotten hunk from my last merge patch:
3356         * final.c (output_addr_const): Do not call mark_referenced.
3357
3358 2005-04-09  Andrew MacLeod  <amacleod@redhat.com>
3359
3360         * doc/tree-ssa.texi: Add immediate use documentation.
3361
3362 2005-04-09  Richard Earnshaw <richard.earnshaw@arm.com>
3363
3364         * arm.c (FL_WBUF): Define.
3365         (arm_tune_strongarm): Renamed from arm_is_strong.  All uses changed.
3366         (arm_is_6_or_7): Delete.
3367         (arm_tune_wbuf): New.
3368         (arm_override_options): Set arm_tune_wbuf.
3369         * arm.h (arm_tune_strongarm): Renamed from arm_is_strong.
3370         (arm_is_6_or_7): Delete declaration.
3371         (arm_tune_wbuf): New declartion.
3372         * arm.md (is_strongarm): Derive from arm_tune_strongarm.
3373         (model_wbuf): Derive from arm_tune_wbuf.
3374         * arm-cores.def (arm600, arm610, arm620, arm700, arm700i, arm710)
3375         (arm720, arm710c, arm7100, arm7500, arm7500fe, arm710t, arm720t)
3376         (arm740t): Mark CPUs as having a write buffer.
3377
3378 2005-04-09  Uros Bizjak  <uros@kss-loka.si>
3379
3380         * config/i386/i386.md (*fp_jcc_7_387): Use 'const0_operand' instead
3381         of 'const_double_operand' in operand 2 constraints.  Update enable
3382         condition.
3383
3384 2005-04-09  Uros Bizjak  <uros@kss-loka.si>
3385
3386         * built