OSDN Git Service

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