OSDN Git Service

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