OSDN Git Service

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