OSDN Git Service

2004-08-15 Andreas Tobler <a.tobler@schweiz.ch>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-08-15  Andreas Tobler  <a.tobler@schweiz.ch>
2             Andrew Pinski  <pinskia@physics.uc.edu>
3
4         PR target/14931
5         * config/rs6000/darwin-tramp.asm (L_abort$stub): Change to new stub
6         style.
7
8 2004-08-15  Nathan Sidwell  <nathan@codesourcery.com>
9
10         * tree.h (build_int_cst): New.
11         (build_int_2): Remove.
12         * tree.c (build_int_2): Remove.
13         (build_int_cst): New.
14         (make_vector_type, build_common_tree_nodes,
15         build_common_tree_nodes_2): Use build_int_cst.
16         * builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
17         expand_builtin_strpbrk, expand_builtin_fputs,
18         build_string_literal, expand_builtin_printf,
19         expand_builtin_sprintf, fold_builtin_lround, fold_builtin_bitop,
20         fold_builtin_bitop, fold_builtin_isascii, fold_builtin_toascii,
21         fold_builtin_isdigit, simplify_builtin_strstr,
22         simplify_builtin_strpbrk, fold_builtin_fputs,
23         simplify_builtin_sprintf): Use build_int_cst.
24         * c-common.c (start_fname_decls, fix_string_type,
25         c_common_nodes_and_builtins, c_init_attributes,
26         shorten_compare): Likewise.
27         * c-decl.c (complete_array_type,
28         check_bitfield_type_and_width): Likewise.
29         * c-lex.c (interpret_integer, lex_charconst): Likewise.
30         * c-parse.in (primary): <TYPES_COMPATIBLE_P> Likewise.
31         * c-pretty-print.c (pp_c_integer_constant): Likewise.
32         * c-typeck.c (really_start_incremental_init, push_init_level,
33         set_nonincremental_init_from_string): Likewise.
34         * calls.c (load_register_parameters): Likewise.
35         * convert.c (convert_to_pointer): Likewise.
36         * coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
37         build_fn_info_type, build_ctr_info_value, build_gcov_info):
38         Likewise.
39         * except.c (init_eh, assign_filter_values, assign_filter_values):
40         Likewise.
41         * expmed.c (store_fixed_bit_field, extract_bit_field,
42         extract_fixed_bit_field, extract_split_bit_field, expand_shift,
43         expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
44         expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
45         * expr.c (convert_move, emit_group_load, emit_group_store,
46         expand_assignment, store_constructor, store_field,
47         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
48         * fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
49         invert_truthvalue, optimize_bit_field_compare,
50         decode_field_reference, all_ones_mask_p, constant_boolean_node,
51         fold_div_compare, fold, fold_read_from_constant_string,
52         fold_negate_const, fold_abs_const, fold_not_const): Likewise.
53         * function.c (assign_parm_setup_block): Likewise.
54         * stmt.c (shift_return_value, expand_end_case_type,
55         estimate_case_costs): Likewise.
56         * stor-layout.c (layout_type, initialize_sizetypes,
57         set_min_and_max_values_for_integral_type): Likewise.
58         * tree-chrec.c (chrec_fold_multiply_poly_poly,
59         reset_evolution_in_loop): Likewise.
60         * tree-chrec.h (build_polynomial_chrec): Likewise.
61         * tree-complex.c (build_replicated_const): Likewise.
62         * tree-eh.c (honor_protect_cleanup_actions,
63         lower_try_finally_onedest, lower_try_finally_copy,
64         lower_try_finally_switch): Likewise.
65         * tree-mudflap.c (mf_build_string, mx_register_decls,
66         mudflap_register_call, mudflap_enqueue_constant): Likewise.
67         * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
68         * tree-pretty-print.c (dump_generic_node): Likewise.
69         * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
70         Likewise.
71         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
72         * tree-ssa-loop-niter.c (number_of_iterations_cond,
73         loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
74         Likewise.
75         
76         * config/alpha/alpha.c (alpha_initialize_trampoline,
77         alpha_va_start, alpha_gimplify_va_arg_1): Use build_int_cst.
78         * config/arm/arm.c (arm_get_cookie_size): Likewise.
79         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
80         * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
81         * config/i860/i860.c (i860_va_start): Likewise.
82         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
83         * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
84         mips_gimplify_va_arg_expr): Likewise.
85         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
86         * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
87         add_compiler_branch_island): Likewise.
88         * config/s390/s390.c (s390_va_start): Likewise.
89         * config/sh/sh.c (sh_va_start): Likewise.
90         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
91         Likewise.
92         * config/xtensa/xtensa.c (xtensa_va_start,
93         xtensa_gimplify_va_arg_expr): Likewise.
94         
95         * objc/objc-act.c (build_objc_string_object,
96         build_objc_symtab_template, init_def_list, init_objc_symtab,
97         init_module_descriptor, generate_static_references,
98         build_selector_translation_table, get_proto_encoding,
99         build_typed_selector_reference, build_selector_reference,
100         build_next_objc_exception_stuff,
101         build_method_prototype_list_template, generate_descriptor_table,
102         generate_protocols, build_protocol_initializer,
103         build_ivar_list_template, build_method_list_template,
104         build_ivar_list_initializer, generate_ivars_list,
105         generate_dispatch_table, generate_protocol_list,
106         build_category_initializer, build_shared_structure_initializer,
107         generate_shared_structures, handle_impent,
108         generate_objc_image_info): Use build_int_cst.
109
110 2004-08-15  Ben Elliston  <bje@au.ibm.com>
111
112         * vec.h: Comment improvements.
113
114 2004-08-14  Roger Sayle  <roger@eyesopen.com>
115
116         * c-common.c (shorten_compare, pointer_int_sum,
117         c_common_truthvalue_conversion, boolean_increment): Replace calls
118         to build with calls to buildN.
119         * c-decl.c (complete_array_type, grokdeclarator): Likewise.
120         * c-gimplify.c (c_build_bind_expr, gimplify_c_loop,
121         gimplify_switch_stmt): Likewise.
122         * c-typeck.c (default_function_array_conversion,
123         build_component_ref, build_array_ref, build_function_call,
124         pointer_diff, build_unary_op, build_conditional_expr,
125         build_compound_expr, build_modify_expr, c_finish_goto_label,
126         c_finish_goto_ptr, c_finish_return, c_finish_loop,
127         c_finish_bc_stmt, c_finish_stmt_expr, c_end_compound_stmt,
128         build_binary_op): Likewise.
129
130 2004-08-15  Steven Bosscher  <stevenb@suse.de>
131
132         * rtl.c (note_insn_name): Add NOTE_DISABLE_SCHED_OF_BLOCK.
133
134 2004-08-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
135
136         * fixinc/inclhack.def (stdio_va_list): Also fix com_err.h, cps.h,
137         curses.h, krb5.h, lc_core.h, pfmt.h, wchar.h and curses_colr/curses.h.
138         * fixinc/fixincl.x: Rebuilt.
139
140 2004-08-14  Richard Sandiford  <rsandifo@redhat.com>
141
142         * config/mips/mips-protos.h (mips_symbolic_constant_p)
143         (mips_atomic_symbolic_constant_p, mips_stack_address_p)
144         (mips_small_data_pattern_p): Declare.
145         * config/mips/mips.h (CONST_GP_P): Moved from mips.c.
146         (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete.
147         * config/mips/mips.c (mips_symbolic_constant_p): Make global.
148         (mips_atomic_symbolic_constant_p, mips_stack_address_p): New functions.
149         (uns_arith_operand, const_arith_operand, arith_operand, sle_operand)
150         (sleu_operand, small_int, reg_or_0_operand, const_float_1_operand)
151         (reg_or_const_float_1_operand, hilo_operand, extend_operator)
152         (macc_msac_operand, equality_op, cmp_op, trap_cmp_op)
153         (pc_or_label_operand, call_insn_operand, move_operand)
154         (consttable_operand, symbolic_operand, general_symbolic_operand)
155         (global_got_operand, local_got_operand, stack_operand)
156         (fp_register_operand, lo_operand, fcc_register_operand): Delete.
157         (mips_small_data_pattern_1): Renamed from small_data_pattern_1.
158         (mips_small_data_pattern_p): Replace previous small_data_pattern
159         predicate.  Turn into a bool () (rtx) function.
160         * config/mips/predicates.md: New file.
161         * config/mips/mips.md: Include it.  Use the target-independent
162         comparison_operator instead of cmp_op.  Rename trap_cmp_op to
163         trap_comparison_operator and equality_op to equality_operator.
164         Replace uses of small_int with the equivalent const_arith_operand.
165         Rename reg_or_const_float_1_operand to reg_or_1_operand.  Rename
166         const_float_1_operand to const_1_operand.  Rename fcc_register_operand
167         to fcc_reload_operand.
168         * config/mips/sb1.md: Rename fp_register_operand to fpr_operand.
169
170 2004-08-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
171
172         PR libstdc++/17005 partial fix.
173         * pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define _INCLUDE__STDC_A1_SOURCE
174         except when generating ANSI/C89 code.
175
176 2004-08-14  Nathan Sidwell  <nathan@codesourcery.com>
177
178         * c-common.c (shorten_compare): Use force_fit_type directly.
179
180 2004-08-14  Gerald Pfeifer  <gerald@pfeifer.com>
181             Dimitri Papadopoulos-Orfanos  <papadopo@shfj.cea.fr>
182             Dave Korn  <dk@artimi.com>
183
184         * doc/install.texi (Building): Avoid duplicate reference to GNU
185         make requirement.
186         (*-*-solaris2*): Do not recommend GNU make any longer.  Simplify.
187
188 2004-08-14  Richard Henderson  <rth@redhat.com>
189
190         * config/alpha/alpha.h (PROMOTE_MODE): Don't promote vector types.
191         * config/alpha/alpha.c (function_value): Use PROMOTE_MODE.
192
193 2004-08-13  Richard Henderson  <rth@redhat.com>
194
195         * config/i386/i386.md (call_1, sibcall_1, call_1_rex64): Use Pmode
196         for constant_call_address_operand.
197         (call_value_pop_1, call_value_1): Likewise.
198         (sibcall_value_1, call_value_1_rex64): Likewise.
199
200 2004-08-13  James E Wilson  <wilson@specifixinc.com>
201
202         * config/mips/sb1.md (ir_sb1_divdf_2pipes, ir_sb1_divdf_1pipe):
203         Correct mode from SFmode to DFmode.
204
205 2004-08-13  Ziemowit Laski  <zlaski@apple.com>
206
207         * config/darwin.h (EXTRA_SECTION_FUNCTIONS): Mark the __sel_fixup,
208         __cstring_object and __image_info sections with the no_dead_strip
209         attribute.
210
211 2004-08-13  Roger Sayle  <roger@eyesopen.com>
212             David Billinghurst  <David.Billinghurst@riotinto.com>
213
214         PR libgfortran/15930
215         * fixinc/inclhack.def (irix___generic1, irix___generic2): New.
216         * fixinc/fixincl.x: Regenerate.
217         * fixinc/tests/base/internal/math_core.h: New file.
218
219 2004-08-13  Richard Henderson  <rth@redhat.com>
220
221         * dbxout.c (NO_DBX_FUNCTION_END): Default to zero.
222         (dbxout_function_end): Remove ifdefs for it.
223         (dbxout_begin_prologue): Protect N_BNSYM with it, and gdb extensions.
224
225 2004-08-13  Richard Henderson  <rth@redhat.com>
226
227         * Makefile.in (insn-preds.o): Depend on TREE_H.
228         * genpreds.c (write_insn_preds_c): Include tree.h.
229         * config/alpha/alpha.c (reg_or_0_operand, reg_or_6bit_operand,
230         reg_or_8bit_operand, cint8_operand, add_operand, sext_add_operand,
231         const48_operand, and_operand, or_operand, mode_width_operand,
232         mode_mask_operand, mul8_operand, const0_operand,
233         hard_fp_register_operand, hard_int_register_operand,
234         reg_or_cint_operand, some_operand, some_ni_operand, input_operand,
235         samegp_function_operand, direct_call_operand, small_symbolic_operand,
236         global_symbolic_operand, call_operand, symbolic_operand, 
237         dtp16_symbolic_operand, dtp32_symbolic_operand,
238         gotdtp_symbolic_operand, tp16_symbolic_operand, tp32_symbolic_operand,
239         gottp_symbolic_operand, alpha_comparison_operator,
240         alpha_zero_comparison_operator, alpha_swapped_comparison_operator,
241         signed_comparison_operator, alpha_fp_comparison_operator,
242         divmod_operator, fix_operator, aligned_memory_operand,
243         unaligned_memory_operand, reg_or_unaligned_mem_operand,
244         any_memory_operand, reg_not_elim_operand, normal_memory_operand,
245         reg_no_subreg_operand, addition_operation): Move to predicates.md.
246         (reg_or_const_int_operand): Remove.  Replace all users with
247         reg_or_cint_operand.
248         (tls_symbolic_operand_1): Export.  Don't check mode or for CONST.
249         (resolve_reload_operand): Split out of aligned_memory_operand.
250         * config/alpha/alpha-protos.h: Update for exports.
251         * config/alpha/alpha.h (PREDICATE_CODES): Remove.
252         * config/alpha/alpha.md: Include predicates.md.
253         * config/alpha/predicates.md: New file.
254
255 2004-08-13  Richard Sandiford  <rsandifo@redhat.com>
256
257         * genattrtab.c (insn_ent): Replace insn_code, insn_index and lineno
258         fields with a pointer to the instruction definition.
259         (get_attr_value, fill_attr, make_length_attrs, remove_insn_ent)
260         (insert_insn_ent, simplify_test_exp, optimize_attrs, write_attr_get)
261         (write_attr_case, write_const_num_delay_slots): Update accordingly.
262         (write_attr_case, write_const_num_delay_slots): Write the name of
263         an insn next to its case statement.
264         * genoutput.c (data): Add a filename field.
265         (gen_insn, gen_peephole, gen_expand, gen_split): Set it.
266         (output_insn_data): Print the location of each insn definition.
267         * genrecog.c (write_action): Print the name of an insn above
268         the statement that returns its code.
269
270 2004-08-12  Andrew Pinski  <pinskia@physics.uc.edu>
271
272         * config/darwin-c.c (find_subframework_file): Fix spelling of cannot.
273         * config/libgloss.h: Likewise.
274         * config/arm/arm.c (arm_gen_load_multiple): Likewise.
275         * c4x/c4x-modes.def: Likewise.
276         * config/c4x/c4x.c (c4x_hard_regno_rename_ok): Likewise.
277         (c4x_rptb_nop_p): Likewise.
278         (c4x_rptb_valid_p): Likewise.
279         (c4x_rptb_insert): Likewise.
280         (c4x_address_conflict): Likewise.
281         * config/c4x/c4x.md: Likewise.
282         * config/frv/frv.md: Likewise.
283         * config/i386/athlon.md: Likewise.
284         * config/i386/i386.md: Likewise.
285         * config/i386/predicates.md: Likewise.
286         * config/ia64/ia64.c: Likewise.
287         * config/ia64/itanium1.md: Likewise.
288         * config/ia64/itanium2.md: Likewise.
289         * config/iq2000/iq2000.md: Likewise.
290         * config/mcore/mcore.c: Likewise.
291         * config/mips/mips.c: Likewise.
292         * config/mips/r3900.h: Likewise.
293         * config/mips/sb1.md: Likewise.
294         * config/pa/milli64.S: Likewise.
295         * config/pa/pa.c: Likewise.
296         * config/pa/pa.h: Likewise.
297         * config/rs6000/8540.md: Likewise.
298
299 2004-08-13  Daniel Berlin  <dberlin@dberlin.org>
300
301         * Makefile.in (BOOT_CFLAGS): Remove accidental addition of -dU.
302
303 2004-08-13  J"orn Rennecke <joern.rennecke@superh.com>
304
305         * sh.md (cbranch define_delay) Use cond_delay_slot for
306         non-anulled condition too.
307
308 2004-08-12  David Edelsohn  <edelsohn@gnu.org>
309
310         * config/rs6000/rs6000.c (any_parallel_operand): New predicate.
311         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
312         any_parallel_operand, lmw_operation, stmw_operation,
313         mfcr_operation, mtcrf_operation.  Remove PARALLEL from any_operand.
314         * config/rs6000/rs6000.md (save_fpregs_{si,di}): Use
315         any_parallel_operand.
316         (return_and_restore_fpregs_{si,di}): Same.
317
318 2004-08-12  Zack Weinberg  <zack@codesourcery.com>
319
320         * genrecog.c (add_to_sequence): When processing a MATCH_PARALLEL,
321         if pred->singleton != PARALLEL, issue a warning and pretend it was.
322         Also issue a warning for any predicate we don't know about.
323
324 2004-08-12  Richard Henderson  <rth@redhat.com>
325
326         * config/i386/i386.c (internal_label_prefix): Export.
327         (internal_label_prefix_len, struct ix86_address,
328         ix86_decompose_address, maybe_get_pool_constant,
329         ix86_fp_compare_code_to_integer, ix86_fp_comparison_codes,
330         memory_address_length): Export.
331         (any_fp_register_operand, fp_register_operand,
332         register_and_not_any_fp_reg_operand, register_and_not_fp_reg_operand,
333         x86_64_general_operand, x86_64_szext_general_operand,
334         x86_64_nonmemory_operand, x86_64_movabs_operand,
335         x86_64_szext_nonmemory_operand, x86_64_immediate_operand,
336         x86_64_zext_immediate_operand, const_int_1_31_operand,
337         symbolic_operand, pic_symbolic_operand, local_symbolic_operand,
338         tls_symbolic_operand, global_dynamic_symbolic_operand,
339         local_dynamic_symbolic_operand, initial_exec_symbolic_operand,
340         local_exec_symbolic_operand, call_insn_operand, sibcall_insn_operand,
341         constant_call_address_operand, const0_operand, const1_operand,
342         const248_operand, const_0_to_3_operand, const_0_to_7_operand,
343         const_0_to_15_operand, const_0_to_255_operand, incdec_operand,
344         shiftdi_operand, reg_no_sp_operand, mmx_reg_operand,
345         general_no_elim_operand, nonmemory_no_elim_operand,
346         index_register_operand, q_regs_operand, flags_reg_operand,
347         non_q_regs_operand, zero_extended_scalar_load_operand,
348         vector_move_operand, no_seg_address_operand, sse_comparison_operator,
349         ix86_comparison_operator, ix86_carry_flag_operator,
350         fcmov_comparison_operator, promotable_binary_operator,
351         cmp_fp_expander_operand, ext_register_operand, binary_fp_operator,
352         mult_operator, div_operator, arith_or_logical_operator,
353         memory_displacement_operand, cmpsi_operand, long_memory_operand,
354         aligned_operand): Move to predicates.md as define_predicates.
355         (tls_symbolic_operand_1): Remove.
356         (x86_64_sign_extended_value): Merge into x86_64_immediate_operand.
357         (x86_64_zero_extended_value): Merge into x86_64_zext_immediate_operand.
358         (legitimize_address): Merge tls_symbolic_operand contents.
359         (ix86_expand_move): Likewise.
360         * config/i386/i386-protos.h: Update for exports.
361         * config/i386/i386.h (EXTRA_CONSTRAINT): Update for renames.
362         (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Remove.
363         * config/i386/i386.md: Include predicates.md.
364         * config/i386/predicates.md: New file.
365
366 2004-08-13  Mark Mitchell  <mark@codesourcery.com>
367
368         PR c++/16924
369         * config/i386/winnt.c (i386_pe_mark_dllexport): Set
370         SYMBOL_REF_DECL.
371         (i386_pe_mark_dllimport): Likewise.
372         (i386_pe_encode_section_info): Likewise, when overriding
373         dllimport attribute.
374
375 2004-08-12  Geoffrey Keating  <geoffk@apple.com>
376
377         * configure.ac: When testing for flex, nm, ar, and bison, check
378         that they will actually be built.
379         * configure: Regenerate.
380
381 2004-08-12  Ulrich Weigand  <uweigand@de.ibm.com>
382
383         * config/s390/s390.h (MAX_FIXED_MODE_SIZE): Define.
384         (MOVE_MAX_PIECES): Define.
385
386 2004-08-12  Devang patel  <dpatel@apple.com>
387
388         * dbxout.c (dbxout_begin_prologue): New function.
389         (dbx_debug_hooks): Use new begin prologue hook.
390         (dbxout_function_end): Emit N_ENSYM.
391         * stab.def (N_BNSYM, N_ENSYM): Define and document these two new stabs.
392
393 2004-08-12  Janis Johnson  <janis187@us.ibm.com>
394
395         * config/rs6000/altivec.h (vec_dst): Fix C++ functions whose first
396         argument is float*.
397
398         * config/rs6000/rs6000.c (altivec_init_builtins): Fix argument type
399         for vec_dss.
400
401         * doc/extend.texi (AltiVec builtins): Fix description for recent
402         changes.  Update operation list to match current support.
403
404 2004-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
405
406         * config/s390/s390.c (struct s390_frame_layout): New struct as element
407         of struct machine_function.
408         (cfun->machine->frame_size): Moved into cfun->machine->frame_layout and
409         changed all uses.
410         (cfun->machine->save_fprs_p): Replaced by cfun_save_high_fprs and
411         changed all uses.
412         (cfun_frame_layout, cfun_save_high_fprs_p, cfun_gprs_save_area_size)
413         (cfun_set_fpr_bit, cfun_fpr_bit_p): New macros.
414         (s390_frame_area, s390_register_info): New functions.
415         (s390_optimize_prolog): Renamed to s390_optimize_prologue.  Added check
416         for base register.
417         (s390_return_addr_rtx, s390_return_address_offset)
418         (s390_va_start, s390_gimplify_va_arg)
419         (s390_emit_prologue, s390_emit_epilogue): Adjusted for new stack
420         layouts.
421         (s390_frame_info): Functionality partly moved to s390_register_info.
422         Made adaptions for new stack layout.
423         (save_gprs, restore_gprs): Changed meaning of second parameter and
424         adapted all callers.
425
426         * config/s390/s390.h (s390_backchain_string): New global variable.
427         (MASK_BACKCHAIN): Removed definition.
428         (TARGET_BACKCHAIN): Changed check.
429         (TARGET_KERNEL_BACKCHAIN): New macro.
430         (TARGET_SWITCHES): Removed entries of "backchain" and "no-backchain".
431         (TARGET_OPTIONS): Added "backchain", "no-backchain" and
432         "kernel-backchain".
433         (DYNAMIC_CHAIN_ADDRESS): Adjusted for new stack layouts.
434
435         * config/s390/s390.md ("allocate_stack"): Added TARGET_KERNEL_BACKCHAIN
436         as condition.  Adjusted for new stack layout.
437
438         * doc/invoke.texi: Added documentation for new option
439         "-mkernel-backchain" and adjusted documentation of "-mbackchain" and
440         "-mno-backchain".
441
442 2004-08-12  Paul Brook  <paul@codesourcery.com>
443
444         * config/arm/lib1funcs.asm (ARM_FUNC_ALIAS): Also alias _L__name.
445         (aeabi_uidivmod, aeabi_idivmod): Provide thumb implementation.
446
447 2004-08-12  David Daney  <ddaney@avtrex.com>
448
449         * java/gcj.texi:  Add subsection on signal usage.
450
451 2004-08-12  David Edelsohn  <edelsohn@gnu.org>
452
453         * expr.c (move_by_pieces): Set alignment for move to minimum of
454         MOVE_MAX_PIECES mode alignment and the largest non-slow mode
455         alignment, but not less than the original alignment.
456         (move_by_pieces_ninsns): Same.
457         (can_store_by_pieces): Similar for store with STORE_MAX_PIECES.
458         (store_by_pieces_1): Same.
459
460 2004-08-12  Diego Novillo  <dnovillo@redhat.com>
461
462         PR tree-optimization/16867
463         * tree.c (is_global_var): New function.
464         (needs_to_live_in_memory): Check for TREE_ADDRESSABLE.
465         Call is_global_var.
466         * tree.h (DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL): Remove.
467         Update all users.
468         (is_global_var): Declare.
469         * tree-dfa.c (dump_variable): Display global and addressable
470         attributes.
471         (add_referenced_var): Clarify documentation when marking
472         variables call-clobbered.
473         * tree-flow-inline.h (is_call_clobbered): Call is_global_var
474         instead of needs_to_live_in_memory.
475         (mark_call_clobbered): If the variable is a tag, mark it
476         DECL_EXTERNAL.
477         * tree-gimple.c (is_gimple_reg): Don't check for
478         TREE_ADDRESSABLE.
479         (is_gimple_non_addressable): Likewise.
480         * tree-ssa-alias.c (get_nmt_for): Always check whether the tag
481         needs to be marked call-clobbered.
482         (setup_pointers_and_addressables): Call is_global_var instead
483         of needs_to_live_in_memory.
484         * tree-ssa-dce.c (need_to_preserve_store): Remove.
485         Update all users with is_global_var.
486         (mark_stmt_if_obviously_necessary): Fix processing of aliased
487         stores.  Don't check the virtual definitions.  Rather, check
488         whether the store is going into global memory.
489         (find_obviously_necessary_stmts): Get the symbol from the PHI
490         result.
491         * tree-ssa-operands.c (get_call_expr_operands): Do not add
492         clobbering may-defs if the call does not have side effects.
493
494 2004-08-12  Jakub Jelinek  <jakub@redhat.com>
495
496         PR c++/16276
497         * output.h (default_function_rodata_section,
498         default_no_function_rodata_section): New prototypes.
499         * target.h (struct gcc_target): Add asm_out.function_rodata_section.
500         * target-def.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define.
501         (TARGET_ASM_OUT): Add it.
502         * varasm.c (default_function_rodata_section,
503         default_no_function_rodata_section): New functions.
504         * final.c (final_scan_insn): Call
505         targetm.asm_out.function_rodata_section instead of
506         readonly_data_section.
507         * config/darwin.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define.
508         * config/mcore/mcore.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
509         * config/ip2k/ip2k.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
510         * config/rs6000/xcoff.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
511         Likewise.
512         * config/alpha/alpha.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
513         * config/i386/cygming.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
514         Likewise.
515         * config/i386/i386-interix.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
516         Likewise.
517         * config/arm/pe.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
518         * config/avr/avr.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
519         * doc/tm.texi (TARGET_ASM_FUNCTION_RODATA_SECTION): Document.
520
521 2004-08-12  Paul Brook  <paul@codesourcery.com>
522
523         * dwarf2out.h (dwarf2out_frame_finish): Conditionalize outputting eh
524         frame info.
525         * doc/tm.texi: Document interaction between TARGET_UNWIND_INFO and
526         DWARF2_UNWIND_INFO.
527
528 2004-08-12  Ben Elliston  <bje@au.ibm.com>
529
530         PR target/16286
531         * config/rs6000/altivec.h: Change vector to __vector throughout.
532         (Except for the `vector' macro itself).
533
534 2004-08-12  Zack Weinberg  <zack@codesourcery.com>
535
536         * genpreds.c: Add capability to generate predicate bodies as
537         well as function prototypes.  Write function prototypes for
538         the generic predicates too.
539         (process_define_predicate, write_tm_preds_h, write_insn_preds_c)
540         (write_predicate_subfunction, mark_mode_tests, add_mode_tests)
541         (write_match_code, write_predicate_expr, write_one_predicate_function)
542         (parse_option): New functions.
543         (output_predicate_decls): Delete.
544         (main): Read the machine description, process DEFINE_PREDICATE or
545         DEFINE_SPECIAL_PREDICATE patterns, write tm-preds.h or insn-preds.c
546         as appropriate.
547
548         * genrecog.c (struct decision_test): Replace index with
549         struct pred_data pointer.
550         (next_index): Remove, unused.
551         (pred_table, preds, special_mode_pred_table): Delete.
552         (compute_predicate_codes, process_define_predicate): New functions.
553         (validate_pattern, add_to_sequence, write_switch): Update for
554         new data structures.
555         (main): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
556         Check both error_count and have_error.
557
558         * gensupport.c (in_fname, first_predicate): New globals.
559         (define_pred_queue, define_pred_tail): New RTL-pattern queue.
560         (predicate_table, last_predicate, old_pred_table)
561         (old_special_pred_table): New statics.
562         (hash_struct_pred_data, eq_struct_pred_data, lookup_predicate)
563         (add_predicate, init_predicate_table): New functions.
564         (process_rtx): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
565         (init_md_reader_args_cb): Use the global in_fname.  No need to zero
566         it or max_include_len.  Call init_predicate_table.
567         (read_rtx): Run the predicate queue after the attribute queue
568         but before all the others.
569         * gensupport.h (in_fname, struct pred_data, first_predicate)
570         (lookup_predicate, add_predicate, FOR_ALL_PREDICATES): Declare.
571         * rtl.def (MATCH_CODE, MATCH_TEST, DEFINE_PREDICATE)
572         (DEFINE_SPECIAL_PREDICATE): New RTL codes.
573         * dummy-conditions.c: Don't include bconfig.h, system.h,
574         coretypes.h, tm.h, or system.h.  Do include stddef.h.
575         Duplicate declaration of struct c_test from gensupport.h.
576
577         * Makefile.in (OBJS-common): Add insn-preds.o.
578         (STAGESTUFF, .PRECIOUS): Add insn-preds.c.
579         (insn-preds.c, insn-preds.o): New rules.
580         (s-preds): Also generate insn-preds.c.
581         (dummy-conditions.o, genpreds$(build_exeext), genpreds.o):
582         Update dependencies.
583         (print-rtl.o, print-rtl1.o): Correct dependencies.
584
585         * recog.h: Delete prototypes of predicate functions.
586
587         * doc/md.texi (Predicates): New section with complete
588         documentation of operand/operator predicates.  Remove some
589         incomplete documentation of predicates from other places.
590         * doc/tm.texi (Misc): Move SPECIAL_MODE_PREDICATES next to
591         PREDICATE_CODES; indicate that both are deprecated in favor
592         of define_predicate/define_special_predicate.
593
594         * config/ia64/ia64.c: All predicate function definitions moved
595         to ia64.md, except
596         (small_addr_symbolic_operand, tls_symbolic_operand): Delete.
597         (ia64_expand_load_address, ia64_expand_move):
598         Check SYMBOL_REF_TLS_MODEL directly, don't use tls_symbolic_operand.
599
600         * config/ia64/ia64.md: All predicates now defined here.
601         (symbolic_operand): Is now a special predicate.
602
603         * config/ia64/ia64.h: Declare ia64_section_threshold.
604         (PREDICATE_CODES): Delete.
605
606 2004-08-12  Richard Henderson  <rth@redhat.com>
607
608         * c-common.h (STATEMENT_LIST_HAS_LABEL): New.
609         * c-semantics.c (add_stmt): Set it.
610         * c-decl.c (finish_decl): Use it to create a new BIND_EXPR
611         before instantiating a variable sized type.
612
613 2004-08-12  Richard Henderson  <rth@redhat.com>
614
615         * stor-layout.c (round_up, round_down): Move ...
616         * fold-const.c (round_up, round_down): ... here.  Use
617         multiple_of_p to avoid any arithmetic at all.
618
619 2004-08-12  Richard Henderson  <rth@redhat.com>
620
621         * gimplify.c (struct gimplify_init_ctor_preeval_data): New.
622         (gimplify_init_ctor_preeval_1): New.
623         (gimplify_init_ctor_preeval): New.
624         (gimplify_init_ctor_eval): New.
625         (gimplify_init_constructor): Use them.  Always gimplify the LHS
626         object first.
627
628 2004-08-12  Ziemowit Laski  <zlaski@apple.com>
629
630         (This patch is part of merge of objc-improvements-branch
631         into mainline.)
632
633         * doc/frontends.texi: Mention Objective-C++ in addition to
634         Objective-C.
635         * doc/install.texi: Add 'obj-c++' to list of configurable
636         languages.
637         * doc/invoke.texi: Rename Objective-C option headings to
638         indicate they also apply to Objective-C++.  List file
639         extensions for Objective-C++ sources.  Mention that
640         ObjC and ObjC++ compilations may also use C and C++ options,
641         respectively.  Point users to doc/standards.texi for
642         further info on ObjC and ObjC++.
643         * doc/sourcebuild.texi: Mention the objcp/ directory and
644         the Objective-C++ sources it contains.
645         * doc/standards.texi: Update link to Apple ObjC site;
646         add link to gcc readings.html WWW doc.
647
648 2004-08-12  Alan Modra  <amodra@bigpond.net.au>
649
650         * config/rs6000/rs6000.c (function_arg_padding): Revert 2004-07-28
651         and 2004-07-14 changes.
652
653 2004-08-12  Paul Brook  <paul@codesourcery.com>
654
655         * doc/invoke.texi: Fix typo.
656
657 2004-08-11 Devang Patel  <dpatel@apple.com>
658
659         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add -dead_strip
660         and -no_dead_strip_inits_and_terms.
661         (LINK_SPEC): Same.
662         * doc/invoke.texi (Darwin Options): Document -dead_strip and
663         -no_dead_strip_inits_and_terms.
664
665 2004-08-11  Paul Brook  <paul@codesourcery.com>
666
667         * config/arm/arm-protos.h (arm_finalize_pic) Rename ...
668         (arm_load_pic_register): ... to this.
669         * config/arm/arm.c (arm_finalize_pic): Rename ...
670         (arm_load_pic_register): ... to this.  Always output insns at the
671         current location.  Load via low reg in thumb mode.
672         (arm_expand_prologue): Call arm_load_pic_register.
673         (thumb_expand_prologue): Ditto.
674         * config/arm/arm.h (FINALIZE_PIC): Remove.
675         * config/arm/arm.md (builtin_setjmp_receiver): Call
676         arm_load_pic_register.
677
678 2004-08-11  Paul Brook  <paul@codesourcery.com>
679
680         * arm.c (thumb_force_lr_save): Add prototype.
681         (thumb_compute_save_reg_mask): New function.
682         (thumb_find_work_register): New function.
683         (arm_get_frame_offsets): Use thumb_compute_save_reg_mask.
684         (thumb_unexpanded_epilogue): Ditto.  Remove redundant code.
685         Don't clobber r3 when removing pretend args.
686         (thumb_expand_prologue): Use thumb_compute_save_reg_mask.
687         (thumb_output_function_prologue): Use new functions.
688         (thumb_set_return_address): Use thumb_compute_save_reg_mask.
689         * arm.h (THUMB_REG_PUSHED_P): Remove.
690
691 2004-08-11  James E Wilson  <wilson@specifixinc.com>
692
693         PR rtl-optimization/16490
694         * cfgrtl.c (cfg_layout_split_edge): Set global_live_at_start and
695         global_live_at_end for new basic block if already set for other blocks.
696
697 2004-08-11 David Edelsohn  <edelsohn@gnu.org>
698
699         * config/rs6000/rs6000.h (MAX_FIXED_MODE_SIZE): Define.
700
701         * config/rs6000/rs6000.md (mfcr rlwinm patterns): Set length to 8.
702         (mfcr rlwinm rlwinm patterns): Set length to 12.
703
704 2004-08-11  Andrew MacLeod  <amacleod@redhat.com>
705
706         * tree-flow-inline.h (get_def_ops, get_use_ops, get_v_may_def_ops,
707         get_vuse_ops,get_v_must_def_ops): Add operand structure reference.
708         (get_v_may_def_result_ptr, get_v_may_def_op_ptr): New access struct.
709         (start_ssa_stmt_operands): Delete.
710         * tree-flow.h (struct stmt_ann_d): Replace operand vectors with new
711         struct stmt_operands_d.
712         (build_ssa_operands): New extern entry point.
713         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove operand
714         building code, replace with create_ssa_artficial_load_stmt().
715         * tree-ssa-operands.c (struct voperands_d): Delete.
716         (allocate_v_may_def_optype): Allocate v_may_def_operand_type_t vector.
717         (allocate_v_must_def_optype): Use sizeof (tree), not sizeof (tree *).
718         (free_uses, free_defs, free_vuses, free_v_may_defs,
719         free_v_must_defs): Remove dealloc parameter.
720         (remove_vuses, remove_v_may_def, remove_v_must_defs): Delete.
721         (finalize_ssa_defs, finalize_ssa_uses, finalize_ssa_v_may_defs,
722         finalize_ssa_vuses, finalize_ssa_v_must_defs): Perform all operand
723         vector comparisons, ssa_name reuse, and allocations here.
724         (verify_start_operands): Delete.
725         (finalize_ssa_stmt_operands): Set new operands by calling finalize
726         routines.
727         (start_ssa_stmt_operands): Move from tree-flow-inline.h.
728         (append_def, append_usei): Simplify to simple accumulation.
729         (append_v_may_def, append_vuse, append_v_must_def): Simplify to avoiding
730         duplicates and simple accumulation.
731         (free_ssa_operands): Free vectors in a stmt_operand structure.
732         (build_ssa_operands): New. Create a new stmt_operand structure from
733         a stmt and an old set of stmt_operands.
734         (get_stmt_operands): Simplify and call build_ssa_operands.
735         (get_expr_operands, get_asm_expr_operands, get_indirect_ref_operands,
736         get_call_expr_operands, add_stmt_operand, add_call_clobber_ops,
737         add_call_read_ops): Don't pass prev_vops around anymore.
738         (note_addressable): Return if no stmt annotation.
739         (copy_virtual_operands): Access v_may_def operands through a struct.
740         (create_ssa_artficial_load_stmt): New.  Create a load stmt for DOM's
741         hash tables without treating the stmt as a real stmt.
742         * tree-ssa-operands.h (struct v_may_def_operand_type): New.  Access
743         v_may_def def and use through a struct instead of 2 array elements.
744         (struct v_may_def_optype_d): Use v_may_def_operand_type.
745         (struct stmt_operands_d): New.  Struct for storing all operand vectors.
746
747 2004-08-11  Nick Clifton  <nickc@redhat.com>
748
749         * config/arm/arm.c (arm_is_longcall_p): Update comment describing
750         this funciton's behaviour.  Return true when the current function
751         has a section attribute and -mlong-calls is in effect.
752         * config/arm/arm.h (ARM_DECLARE_FUNCTION_SIZE): Do not set the
753         short-call marker when -mlong-calls is in effect and the function
754         has a section attribute.
755
756 2004-08-10  Zack Weinberg  <zack@codesourcery.com>
757
758         * stmt.c (expand_return): If asked to return the RESULT_DECL,
759         just call expand_value_return on result_rtl.
760
761 2004-08-10  Richard Henderson  <rth@redhat.com>
762
763         * builtins.def (BUILT_IN_STACK_ALLOC): Remove.
764         * builtins.c (expand_builtin) <BUILT_IN_STACK_ALLOC>: Remove.
765         * dwarf2out.c (loc_descriptor): Handle PARALLEL here ...
766         (add_location_or_const_value_attribute): ... not here.  Use
767         loc_descriptor_from_tree if possible.
768         (loc_descriptor_from_tree_1): Rename from loc_descriptor_from_tree.
769         Simplify address handling.  Handle DECL_VALUE_EXPR.  Handle register
770         values specially.
771         (loc_descriptor_from_tree): New.  Update callers.
772         * expr.c (expand_var): Ignore DECL_VALUE_EXPR variables.
773         * gimplify.c (gimplify_decl_expr): Lower variable sized types to
774         pointer plus dereference.  Set DECL_VALUE_EXPR.  Set save_stack.
775         (gimplify_call_expr): Do not recognize BUILT_IN_STACK_ALLOC
776         and BUILT_IN_STACK_RESTORE.
777         (gimplify_expr): Lower DECL_VALUE_EXPR decls.
778         * stmt.c (expand_stack_alloc): Remove.
779         * tree-mudflap.c (mx_register_decls): Don't look for
780         BUILT_IN_STACK_ALLOC.
781         * tree-nested.c (convert_local_reference): Likewise.
782         * tree.h (DECL_VALUE_EXPR): New.
783
784 2004-08-10  Richard Henderson  <rth@redhat.com>
785
786         * stor-layout.c (round_up): Check for 0/1 before dividing.
787         (round_down): Likewise.
788
789         * tree-tailcall.c (suitable_for_tail_opt_p): Also check DECL_EXTERNAL.
790
791 2004-08-09  Mark Mitchell  <mark@codesourcery.com>
792
793         * config.gcc (arm*-*-eabi*): New target.
794         * defaults.h (TARGET_LIBGCC_FUNCS): New macro.
795         (TARGET_LIB_INT_CMP_BIASED): Likewise.
796         * expmed.c (expand_divmod): Try a two-valued divmod function as a
797         last resort.
798         * gthr.h: Remove bogus tokens at end of #pragma.
799         * optabs.c (expand_twoval_binop_libfunc): New function.
800         (prepare_cmp_insn): Handle the !TARGET_LIB_INT_CMP_BIASED case.
801         (prepare_float_lib_cmp): Try reversing the condition.
802         (debug_optab_libfuncs): New function.
803         * optabs.h (expand_twoval_binop_libfunc): Declare.
804         * config/arm/arm.c (arm_init_libfuncs): New function.
805         (arm_compute_initial_eliminatino_offset): Return HOST_WIDE_INT.
806         (TARGET_INIT_LIBFUNCS): Define it.
807         * config/arm/arm.h (TARGET_BPABI): New macro.
808         * config/arm/arm-protos.h
809         (arm_compute_initial_elimination_offset): Return HOST_WIDE_INT.
810         * config/arm/bpabi.S: New file.
811         * config/arm/bpabi.c: Likewise.
812         * config/arm/bpabi.h: Likewise.
813         * config/arm/ieee754-df.S (__aeabi_dneg): New function or alias.
814         (__aeabi_drsub): Likewise.
815         (__aeabi_dsub): Likewise.
816         (__aeabi_dadd): Likewise.
817         (__aeabi_ui2d): Likewise.
818         (__aeabi_i2d): Likewise.
819         (__aeabi_f2d): Likewise.
820         (__aeabi_dmul): Likewise.
821         (__aeabi_ddiv): Likewise.
822         (__aeabi_cdrcmple): Likewise.
823         (__aeabi_cdcmpeq): Likewise.
824         (__aeabi_cdcmple): Likewise.
825         (__aeabi_dcmpeq): Likewise.
826         (__aeabi_dcmplt): Likewise.
827         (__aeabi_dcmple): Likewise.
828         (__aeabi_dcmpge): Likewise.
829         (__aeabi_dcmpgt): Likewise.
830         (__aeabi_dcmpun): Likewise.
831         (__aeabi_d2iz): Likewise.
832         (__aeabi_d2uiz): Likewise.
833         (__aeabi_d2f): Likewise.
834         * config/arm/ieee754-sf.S (__aeabi_fneg): New function or alias.
835         (__aeabi_frsub): Likewise.
836         (__aeabi_fsub): Likewise.
837         (__aeabi_fadd): Likewise.
838         (__aeabi_ui2f): Likewise.
839         (__aeabi_i2f): Likewise.
840         (__aeabi_fmul): Likewise.
841         (__aeabi_fdiv): Likewise.
842         (__aeabi_cfrcmple): Likewise.
843         (__aeabi_cfcmpeq): Likewise.
844         (__aeabi_cfcmple): Likewise.
845         (__aeabi_fcmpeq): Likewise.
846         (__aeabi_fcmplt): Likewise.
847         (__aeabi_fcmple): Likewise.
848         (__aeabi_fcmpge): Likewise.
849         (__aeabi_fcmpgt): Likewise.
850         (__aeabi_fcmpun): Likewise.
851         (__aeabi_f2iz): Likewise.
852         (__aeabi_f2uiz): Likewise.
853         * config/arm/lib1funcs.asm (ARM_CALL): New macro.
854         (__aeabi_uidivmod): New function or alias.
855         (__aeabi_idivmod): Likewise.
856         (__aeabi_idiv0): Likewise.
857         (__aeabi_ldiv0): Likewise.
858         (__aeabi_llsr): Likewise.
859         (__aeabi_lasr): Likewise.
860         (__aeabi_llsl): Likewise.
861         (bpabi.S): Include it.
862         * config/arm/libgcc-bpabi.ver: New file.
863         * config/arm/symbian.h (ARM_DEFAULT_ABI): Remove.
864         (LINK_SPEC): Remove.
865         * config/arm/t-arm-elf (LIB1ASMFUNCS): Add __aeabi_lcmp and
866         __aeabi_ulcmp.
867         * config/arm/t-bpabi: New file.
868         * doc/tm.texi (TARGET_LIBGCC_FUNCS): New entry.
869         (TARGET_LIB_INT_CMP_BIASED): Likewise.
870
871 2004-08-10  David Edelsohn  <edelsohn@gnu.org>
872
873         * config/rs6000/rs6000-protos.h (expand_block_clear): Declare.
874         * config/rs6000/rs6000.md (clrmemsi): New pattern.
875         * config/rs6000/rs6000.c (expand_block_clear): New function.
876         (expand_block_move): Convert alignment to bits.  Use SImode and
877         HImode for unaligned addresses if not STRICT_ALIGNMENT.
878
879 2004-08-10  Caroline Tice  <ctice@apple.com>
880
881         * varasm.c (unlikely_section_label): New global variable.
882         (unlikely_text_section_name): New global variable.
883         (text_section):  Remove alignment statement.
884         (unlikely_text_section): Remove alignment statement; use
885         unlikely_section_label rather than hard-coded string.
886         (assemble_start_function): Initialize unlikely_section_label and
887         unlikely_text_section_name;  make sure cold section is properly
888         aligned at start of function; output unlikely_section_label if
889         appropriate.
890
891 2004-08-10  Ulrich Weigand  <uweigand@de.ibm.com>
892
893         * config/s390/s390-protos.h (s390_canonicalize_comparison): Declare.
894         * config/s390/s390.c (s390_canonicalize_comparison): New function.
895         * config/s390/s390.h (CANONICALIZE_COMPARISON): Define.
896         * config/s390/s390.md ("*tmdi_ext", "*tmsi_ext", "*tmqisi_ext",
897         "*tmqidi_ext", "*tmdi_mem", "*tmsi_mem", "*tmhi_mem"): Remove.
898         ("*tmqi_mem"): Remove SUBREG from pattern.
899         ("*anddi3_cconly"): Prevent accidentally matching TM pattern.
900         ("*andsi3_cconly"): Likewise.
901
902 2004-08-10  H.J. Lu  <hongjiu.lu@intel.com>
903
904         PR target/16909
905         * config/i386/i386.md (*strsetdi_rex_1): Use DI instead of SI.
906
907 2004-08-10  Janis Johnson  <janis187@us.ibm.com>
908
909         * doc/sourcebuild.texi (compat testing): Document available test
910         framework commands.  Use the preferred spelling of DejaGnu.
911
912 2004-08-10  Daniel Berlin <dberlin@dberlin.org>
913
914         * lambda.h: Add matrix type, and prototypes for remainder of
915         matrix and vector functions.
916         (lambda_vector_mult_const): New function.
917         (lambda_vector_negate): Ditto.
918         (lambda_vector_add): Ditto.
919         (lambda_vector_add_mc): Ditto.
920         (lambda_vector_copy): Ditto.
921         (lambda_vector_zerop): Ditto.
922         (lambda_vector_equal): Ditto.
923         (lambda_vector_min_nz): Ditto.
924         (lambda_vector_first_nz): Ditto.
925         (lambda_vector_matrix_mult): Ditto.
926         * lambda-mat.c: New file.
927         * Makefile.in (lambda-mat.o): New.
928
929 2004-08-10  Andrew MacLeod  <amacleod@redhat.com>
930
931         * tree-cfg.c (bsi_insert_before, bsi_insert_after): Call modify_stmt
932         after linking stmt into the program.
933         (bsi_remove): Don't call modify_stmt.
934         * tree-complex.c (update_complex_assignment,
935         expand_complex_comparison): Call modify_stmt after changing the stmt.
936         * tree-outof-ssa.c (rewrite_trees): Call modify_stmt only if not
937         removing the stmt.
938         * tree-ssa-ccp.c (substitute_and_fold): Call modify_stmt after changing
939         the stmt, and only if needed.
940         * tree-ssa-dom.c (thread_across_edge): Pass no annotation for a dummy
941         expression.
942         (simplify_rhs_and_lookup_avail_expr): Don't take an annotation param.
943         (simplify_cond_and_lookup_avail_expr): Use modify_stmt.
944         (simplify_switch_and_lookup_avail_expr): Don't take an annotation param.
945         (eliminate_redundant_computations): Don't pass an annotation. Call
946         modify_stmt rather than setting the annotation directly.
947         (record_equivalences_from_stmt): Remove unused local 'j'.
948         (cprop_operand): Take a stmt rather than an annotation as a parameter.
949         Call modify_stmt.
950         (cprop_into_stmt): Pass stmt rather than annotation.
951         (update_rhs_and_lookup_avail_expr): Call modify_stmt.
952         * tree-ssa-loop-im.c (schedule_sm): Call get_stmt_ann rather than
953         modify_stmt.
954         * tree-ssa.c (propagate_into_addr): Dont call modify_stmt.
955
956 2004-08-10  Jason Merrill  <jason@redhat.com>
957
958         PR middle-end/16948
959         * function.c (expand_function_start): Handle DECL_BY_REFERENCE on
960         the RESULT_DECL.
961
962 2004-08-10  Geoffrey Keating  <geoffk@apple.com>
963
964         * tree-vn.c (val_expr_pair_expr_eq): Compare vuses, to match the
965         hash function.
966
967 2004-08-10  Roger Sayle  <roger@eyesopen.com>
968
969         * config/mips/mips.md: New reciprocal square root patterns that
970         match sqrt(1.0/x) in addition to the existing 1.0/sqrt(x) insns.
971
972 2004-08-10  Paul Brook  <paul@codesourcery.com>
973
974         * config/arm/arm-protos.h (arm_set_return_address,
975         thumb_set_return_address): Add prototypes.
976         * config/arm/arm.h (ARM_FT_EXCEPTION_HANDLER): Remove.
977         * config/arm/arm.c (arm_compute_func_type,
978         use_return_insn, arm_compute_save_reg0_reg12_mask,
979         arm_compute_save_reg_mask, arm_output_function_prologue,
980         arm_output_epilogue): Replace ARM_FT_EXCEPTION_HANDLER with
981         current_function_calls_eh_return.
982         (thumb_exit, thumb_pushpop, thumb_unexpanded_epilogue): Replace
983         old eh code.
984         (arm_set_return_address, thumb_set_return_address): New functions.
985         * config/arm/arm.h (MUST_USE_SJLJ_EXCEPTIONS, DWARF2_UNWIND_INFO,
986         ARM_EH_STACKADJ_REGNUM, EH_RETURN_STACKADJ_RTX): Define.
987         * config/arm/arm.md (VUNSPEC_EH_RETURN): Add.
988         (epilogue): Use the stackadj register.
989         (eh_return, arm_eh_return, thumb_eh_return): New pattern.
990
991 2004-08-10  Jakub Jelinek  <jakub@redhat.com>
992
993         PR target/3144
994         * expr.c (move_by_pieces_ninsns): Add max_size argument.
995         (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1 to it.
996         (CLEAR_BY_PIECES_P): Pass STORE_MAX_PIECES + 1 to it.
997         (STORE_BY_PIECES_P): Define similarly to CLEAR_BY_PIECES_P,
998         but using MOVE_RATIO.
999         (move_by_pieces): Pass max_size to move_by_pieces_ninsns.
1000         (can_store_by_pieces): Change max_size type to unsigned int.
1001         (store_by_pieces_1): Likewise.  Pass max_size to
1002         move_by_pieces_ninsns.
1003         * config/s390/s390.h (STORE_BY_PIECES_P): Define.
1004         * config/sh/sh.c (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1
1005         to move_by_pieces_ninsns.
1006         (STORE_BY_PIECES_P): Define.
1007         * config/ns32k/ns32k.h (STORE_BY_PIECES_P): Pass STORE_MAX_PIECES + 1
1008         to move_by_pieces_ninsns.
1009         * doc/tm.texi (STORE_BY_PIECES_P): Document changed default.
1010
1011         * config/i386/i386.h (CLEAR_RATIO): Define.
1012
1013 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
1014
1015         * expr.c (expand_expr_real_1): Add back code that was not dead.
1016
1017 2004-08-09  Andrew Pinski  <apinski@apple.com>
1018
1019         * c-common.c (c_common_get_alias_set): Set the aliasing set of the type
1020         which is found to be compatible before returning the aliasing set.
1021
1022 2004-08-09  Daniel Jacobowitz  <dan@debian.org>
1023
1024         * ggc-zone.c (struct alloc_zone): Add statistics counters.
1025         (always_collect): New flag.
1026         (ggc_alloc_zone_1): Update statistics support.  Don't include
1027         overhead in allocated counter.
1028         (sweep_pages): Update allocated counter for large pages.  Don'y
1029         include overhead.
1030         (ggc_collect_1): Always collect.
1031         (ggc_collect): Honor always_collect flag.  Sum all zones to decide
1032         whether to collect.
1033         (SCALE, LABEL): New macros.
1034         (ggc_print_statistics): Add statistics support.
1035
1036 2004-08-09  Roger Sayle  <roger@eyesopen.com>
1037
1038         * expmed.c (sdiv_pow2_cheap, smod_pow2_cheap): Change type to bool.
1039         (init_expmed): Fix potential overrun problem with "all.reg".
1040         (expand_sdiv2_pow2): Add an alternate implementation for signed
1041         division, if the target provides a suitable conditional move insn.
1042
1043 2004-08-09  Paul Brook  <paul@codesourcery.com>
1044         Richard Henderson  <rth@redhat.com>
1045
1046         * unwind-dw2.c (uw_install_context_1): Update target saved stack
1047         pointer.
1048
1049 2004-08-09  Geoffrey Keating  <geoffk@apple.com>
1050
1051         * ggc-common.c (ggc_rlimit_bound): Don't check RSS limit.
1052         Check DATA limit only if there's no AS limit.  Ignore insanely
1053         low DATA limits.
1054         (ggc_min_heapsize_heuristic): Don't divide AS or RSS limits by 8,
1055         but take care that the AS limit isn't overrun.
1056         * doc/invoke.texi: Update documentation of min-heapsize parameter.
1057
1058 2004-08-09  Jeff Law  <law@redhat.com>
1059
1060         * Makefile.in (OBJC-common): Add tree-ssa-threadupdate.c
1061         (tree-ssa-threadupdate.o): Add dependencies.
1062         * tree-ssa-threadupdate.c: New file.
1063         * tree-flow.h (incoming_edge_threaded): New flag in block annotation.
1064         (rewrite_vars_out_of_ssa): Remove prototype.
1065         (cleanup_tree_cfg): Returns a bool.
1066         * tree.h (thread_through_all_blocks): Prototype.
1067         * tree-outof-ssa.c  (SSANORM_*): Move into here.
1068         (remove_ssa_form): Now static.
1069         (rewrite_vars_out_of_ssa): Kill.
1070         * tree-ssa-live.c (register_ssa_partitions_for_vars): Kill.
1071         * tree-ssa-live.h (SSANORM_*): Moved into tree-outof-ssa.c.
1072         (remove_ssa_form, register_partitions_for_vars): Kill declarations.
1073         * tree-cfg.c (cleanup_tree_cfg): Return a value indicating if
1074         anything was changed.
1075         * tree-phinodes.c (add_phi_arg): Get the block for the PHI
1076         from the PHI's annotation rather than the edge associated with
1077         the new argument.
1078         * tree-ssa-dom.c (redirection_edges): Kill.
1079         (redirect_edges_and_update_ssa_graph): Kill.
1080         (tree_ssa_dominator_optimize): Do not reset forwardable flag
1081         for blocks anymore.  Do not initialize redirection_edges.
1082         Call thread_through_all_blocks.  Simplify code for cleanup
1083         of the CFG and iterating.  No longer call cleanup_tree_cfg
1084         outside the iteration loop.
1085         (thread_across_edge): No longer mess with forwardable blocks.
1086
1087 2004-08-09  Zack Weinberg  <zack@codesourcery.com>
1088
1089         * explow.c (memory_address): Use memory_address_p.
1090         * recog.c (general_operand): Likewise.
1091         * regrename.c: No need to define REG_OK_STRICT.
1092
1093 2004-08-09  Steven Bosscher  <stevenb@suse.de>
1094
1095         * timevar.def (TV_CPROP1, TV_CPROP2, TV_PRE, TV_HOIST, TV_LSM):
1096         New timers.
1097         * gcse.c: Include timevar.h.
1098         (const_prop_count, copy_prop_count): Rename to global_const_prop_count
1099         and global_copy_prop_count.
1100         (local_const_prop_count, local_copy_prop_count): New static globals.
1101         (gcse_main): Set the right timevar for each pass.
1102         (cprop_jump): Increment global_const_prop_count when a constant is
1103         propagated.  Add "GLOBAL" to dump output.
1104         (cprop_insn): Increment global_const_prop_count when a constant is
1105         propagated, or global_copy_prop_count when a copy is propagated.
1106         (do_local_cprop): Likewise for local_const_prop_count and
1107         local_copy_prop_count.
1108         (one_cprop_pass): Initialize const/cprop counters to zero.
1109         Print out results of local and global const/cprop separately.
1110         (bypass_block): Break over-length line.
1111         * Makefile.in (gcse.o): Add TIMEVAR_H dependency.  Fix dependencies
1112         for bb-reorder.o and tracer.o.
1113
1114 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
1115
1116         * Makefile.in (GTFILES): Remove stmt.c
1117         (stmt.o): Do not depend on gt-stmt.h.
1118         * emit-rtl.c (emit_line_note): Do not call
1119         set_file_and_line_for_stmt.
1120         * expr.c (expand_expr_real_1) <SWITCH_EXPR>: Let expand_case
1121         do everything.
1122         * function.c (free_after_parsing): Do not free STMT field.
1123         (allocate_struct_function): Do not call init_stmt_for_function.
1124         (assign_stack_temp_for_type): Do not accept values of keep
1125         other than 0 or 1.
1126         (init_temp_slots): Do not initialize removed variables.
1127         * function.h (struct function): Remove STMT, X_TARGET_TEMP_SLOT_LEVEL
1128         and X_VAR_TEMP_SLOT_LEVEL fields.
1129         * rtl.h (set_file_and_line_for_stmt): Remove.
1130         * stmt.c (struct nesting, ALLOC_NESTING, POPSTACK,
1131         struct stmt_status, cond_stack, case_stack, nesting_stack,
1132         nesting_depth, emit_locus, set_file_and_line_for_stmt,
1133         same_case_target_p, init_stmt_for_function, emit_nop,
1134         expand_start_cond, expand_start_elseif, expand_start_else,
1135         expand_elseif, expand_end_cond): Remove.
1136         (preserve_subexpressions_p): Remove references to CFUN->STMT.
1137         (expand_start_case, expand_end_case_type): Remove, merge into...
1138         (expand_case): ... this one, including other bits from
1139         expand_expr_real_1.  Inline same_case_target_p.  Turn members
1140         of CASE_STACK into local variables.
1141         (emit_case_bit_tests): Inline same_case_target_p.
1142         (add_case_node): Add HEAD argument, return new head of the list,
1143         do not handle default label here.
1144         * tree.h (expand_start_cond, expand_end_cond, expand_start_else,
1145         expand_start_elseif, current_nesting_level, expand_start_case,
1146         expand_end_case_type, expand_end_case, add_case_node,
1147         init_stmt_for_function, expand_elseif): Remove prototypes.
1148         (expand_case): Add prototype.
1149
1150 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
1151
1152         * expr.c (expand_expr_real_1): Use optab_for_tree_code.
1153
1154 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
1155
1156         * expr.c (var_rtx): Remove.
1157         (expand_expr_real_1) <LOOP_EXPR, EXIT_EXPR,
1158         LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR, TRUTH_ANDIF_EXPR,
1159         TRUTH_ORIF_EXPR, COMPOUND_EXPR, CONJ_EXPR, INIT_EXPR>:
1160         Abort.
1161         (expand_expr_real_1) <COND_EXPR>: Remove most special cases.
1162         * optabs.c (emit_clr_insn, emit_0_to_1_insn): Remove.
1163         * optabs.h (emit_clr_insn, emit_0_to_1_insn): Remove.
1164
1165 2004-08-08  Mostafa Hagog  <mustafa@il.ibm.com>
1166         Ayal Zaks <zaks@il.ibm.com>
1167
1168         * common.opt (freschedule-modulo-scheduled-loops): New flag.
1169         * final.c (final_scan_insn): Handle NOTE_DISABLE_SCHED_OF_BLOCK.
1170         * modulo-sched.c (sms_schedule): Emit a note to disable scheduling
1171         when -freschedule-modulo-scheduled-loops flag is not specified.
1172         (sms_schedule_by_order, ps_insn_advance_column, add_node_to_ps,
1173         add_node_to_ps, ps_has_conflicts, ps_add_node_check_conflicts):
1174         More accurate placing of insn in row of partial schedule.
1175         (ps_insn_find_column): New function.
1176         * rtl.h (NOTE_DISABLE_SCHED_OF_BLOCK): New note.
1177         * sched-rgn.c (sched_is_disabled_for_current_region_p): New.
1178         (schedule_region): Use sched_is_disabled_for_current_region_p.
1179         * docs/invoke.texi: Document -freschedule-modulo-scheduled-loops.
1180
1181 2004-08-07  H.J. Lu  <hongjiu.lu@intel.com>
1182
1183         * config/i386/i386.c (ix86_expand_clrmem): Revert the last
1184         change.
1185
1186 2004-08-07  H.J. Lu  <hongjiu.lu@intel.com>
1187
1188         * config/i386/i386.c (ix86_expand_clrmem): Properly call
1189         gen_strset for 64bit target.
1190
1191 2004-08-07  Olivier Hainque  <hainque@act-europe.fr>
1192
1193         * config/vxworks.h (HANDLE_SYSV_PRAGMA): Remove definition.
1194
1195 2004-08-07  Jason Merrill  <jason@redhat.com>
1196
1197         Make return in memory explicit.
1198         * function.c (aggregate_value_p): Check DECL_BY_REFERENCE.
1199         (assign_parm_find_data_types): Remove code for old front end
1200         invisible reference handling.
1201         (assign_parms): Handle DECL_BY_REFERENCE on the RESULT_DECL.
1202         (expand_function_end): Likewise.
1203         * gimplify.c (gimplify_return_expr): Handle a dereferenced
1204         RESULT_DECL.
1205         * tree-inline.c (copy_body_r): Don't bother looking for &* anymore.
1206         (declare_return_variable): Handle DECL_BY_REFERENCE.
1207         * cp/cp-gimplify.c (is_invisiref_parm): Also handle RESULT_DECL.
1208         (cp_genericize_r): Use convert_from_reference.
1209         Don't dereference a RESULT_DECL directly inside a RETURN_EXPR.
1210         (cp_genericize): Handle the RESULT_DECL.  Unset TREE_ADDRESSABLE.
1211
1212         * c-common.c (c_warn_unused_result): Check TREE_USED before
1213         warning about a CALL_EXPR with an unused value.
1214
1215 2004-08-06  Mark Mitchell  <mark@codesourcery.com>
1216
1217         * config/arm/symbian.h (CC1_SPEC): Avoid passing duplicate options
1218         to the compiler.  Use -fshort-wchar by default.
1219
1220 2004-08-06  Pat Haugen  <pthaugen@us.ibm.com>
1221
1222         * params.def (PARAM_MIN_CROSSJUMP_INSNS): New.
1223         * cfgcleanup.c (try_crossjump_to_edge): Add minimum insn match
1224         threshhold.
1225         * doc/invoke.texi (param): Document min-crossjump-insns.
1226
1227 2004-08-06  Richard Sandiford  <rsandifo@redhat.com>
1228
1229         PR c/13282
1230         * c.opt (Wmissing-field-initializers): New option.
1231         * c-opts.c (c_common_post_options): Make -Wextra turn it on by default.
1232         * c-typeck.c (pop_init_level): Guard the missing field warning with
1233         warn_missing_field_initializers rather than extra_warnings.
1234         * doc/invoke.texi (-Wmissing-field-initializers): Document, moving
1235         some of the explanation from...
1236         (-Wextra): ...here.  Say that the missing field warning can be
1237         seperately controlled by -Wmissing-field-initializers.
1238
1239 2004-08-06  Paolo Bonzini  <bonzini@gnu.org>
1240
1241         * expr.c (expand_expr_real_1) <ENTRY_VALUE_EXPR>: Remove.
1242         * tree-inline.c (estimate_num_insns_1) <ENTRY_VALUE_EXPR>: Remove.
1243         * tree-pretty-print.c (dump_generic_node) <ENTRY_VALUE_EXPR>: Remove.
1244         * tree.def (ENTRY_VALUE_EXPR): Remove.
1245
1246 2004-08-06  Jakub Jelinek  <jakub@redhat.com>
1247
1248         * config/i386/i386.c (ix86_expand_clrmem): Move gen_cld down to
1249         the places where it is actually needed.  Don't use repz; stosb
1250         for -Os with sufficiently small constant sizes.
1251         For sufficiently small repz; stos{l,q} repeat counts use a sequence
1252         of stos{l,q} instructions instead.
1253
1254 2004-08-06  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1255
1256         PR tree-optimization/16807
1257         * loop-iv.c (dump_iv_info): Dump invariants correctly.
1258         (iv_subreg, iv_extend): Express value of invariant purely in
1259         base field.
1260
1261 2004-08-06  Mark Mitchell  <mark@codesourcery.com>
1262
1263         * config/arm/symbian.h (CC1_SPEC): Add -fno-short-enums.
1264         (CC1PLUS_SPEC): Define it to be the same as CC1_SPEC.
1265
1266 2004-08-06  Roman Zippel  <zippel@linux-m68k.org>
1267
1268         * config/m68k/m68k.c (post_inc_operand,pre_dec_operand): New.
1269         * config/m68k/m68k.h (PREDICATE_CODES): add post_inc_operand,
1270         pre_dec_operand.
1271         * config/m68k/m68k.md (zero_extend*2): delay the splitting of the
1272         pattern until reload is finished to allow better code generation
1273         and split them completely into separate instrunctions.
1274         (*andsi3_split): New pattern.
1275
1276 2004-08-05  Mark Mitchell  <mark@codesourcery.com>
1277
1278         * tree.c (handle_dll_attribute): Move here from i383/winnt.c.
1279         Replace use of DECL_INLINE with DECL_DECLARED_INLINE_P.  Set
1280         DECL_VISIBLITY.  Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
1281         * tree.h (handle_dll_attribute): Declare.  Test
1282         TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
1283         * c-common.h (c_determine_visibility): Declare.
1284         * c-common.c (c_determine_visibility): New function.
1285         * c-decl.c (finish_decl): Use it.
1286         (finish_function): Likewise.
1287         * defaults.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define it to
1288         zero, by default.  Use #if, not #ifdef, to test it.
1289         * config/arm/arm.c (arm_attribute_table): Use
1290         handle_dll_attribute.  Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with
1291         #if.
1292         * config/arm/pe.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define to 1.
1293         * config/i386/cygming.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
1294         to 1.
1295         * config/i386/i386-protos.h (ix86_handle_dll_attribute): Remove.
1296         * config/i386/i386.c (ix86_attribute_table): Use
1297         handle_dll_attribute for dllimport/dllexport.  Test
1298         TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
1299         * config/i386/winnt.c (ix86_handle_dll_attribute): Remove.
1300         * config/mcore/mcore.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
1301         it to 1.
1302         * config/mcore/mcore.c (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Test it
1303         with #if.
1304         * config/sh/symbian-pre.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
1305         it to 1.
1306         * doc/extend.texi (dllexport): Clarify and correct documentation.
1307         (dllimport): Likewise.
1308         * doc/tm.texi (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Mention
1309         handle_dll_attribute.
1310
1311 2004-08-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1312
1313         * tree-ssa-loop-manip.c: New file.
1314         * Makefile.in (tree-ssa-loop-manip.o): Add.
1315         * tree-flow.h (rewrite_into_loop_closed_ssa, verify_loop_closed_ssa):
1316         Declare.
1317         * tree-ssa-loop.c (tree_loop_optimizer_init): Create loop closed ssa
1318         form.
1319         (tree_ssa_loop_done): Verify loop closed ssa form.
1320         * tree-ssa-loop-im.c (move_computations): Update loop closed ssa form.
1321
1322 2004-08-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1323
1324         * pa.c (pa_asm_output_aligned_bss, pa_asm_output_aligned_common,
1325         pa_asm_output_aligned_local): New functions.
1326         * pa-protos.h: Add prototypes for pa_asm_output_aligned_bss,
1327         pa_asm_output_aligned_common and pa_asm_output_aligned_local.
1328         * pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON): Use
1329         pa_asm_output_aligned_common.
1330         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
1331         * pa.h (ASM_OUTPUT_ALIGNED_BSS): New macro.
1332         (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
1333         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
1334         * pa64-hpux.h (MAX_OFILE_ALIGNMENT): New macro.
1335         (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
1336         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
1337         * som.h (MAX_OFILE_ALIGNMENT): Provide maximum alignment of global
1338         common data.
1339
1340 2004-08-05  Andrew Pinski  <apinski@apple.com>
1341
1342         * objc/objc-act.c (build_objc_string_object): Mark the address
1343         expression as constant.
1344
1345 2004-08-05  David Edelsohn  <edelsohn@gnu.org>
1346
1347         * config/rs6000/rs6000.c (rs6000_rtx_costs): Fix mask_operand
1348         and mask64_operand thinkos.  Handle ZERO_EXTRACT.  Handle
1349         SIGN_EXTEND / ZERO_EXTEND of MEM.  Handle rlwinm patterns.
1350
1351 2004-08-05  Joseph S. Myers  <jsm@polyomino.org.uk>
1352
1353         * config/linux.h, config/i386/linux.h, config/sparc/linux.h:
1354         Remove definitions conditioned on USE_GNULIBC_1 or conditioned
1355         out, and associated obsolete comments.
1356
1357 2004-08-05  Nathan Sidwell  <nathan@codesourcery.com>
1358
1359         * tree.h (force_fit_type): Return a tree, take three flags.
1360         * fold-const.c (force_fit_type): Set TREE_OVERFLOW and
1361         TREE_CONSTANT_OVERFLOW here.
1362         (int_const_binop, const_binop): Adjust.
1363         (size_int_type): Do sign extension here.
1364         (fold_convert_const, optimize_bit_field_compare,
1365         decode_field_reference, all_ones_mask_p, fold_div_compare, fold,
1366         fold_negate_const, fold_abs_const, fold_not_const): Adjust.
1367         * tree.c (size_in_bytes, int_fits_type_p): Adjust.
1368
1369 2004-08-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1370
1371         PR tree-optimization/16864
1372         * tree-tailcall.c (eliminate_tail_call): Do not create phi nodes
1373         for ssa names without default_def.
1374
1375 2004-08-05  Richard Sandiford  <rsandifo@redhat.com>
1376
1377         * config/i386/i386.c (ix86_expand_prologue): If the function uses a
1378         frame pointer, restore eax with an ebp-relative address.
1379
1380 2004-08-04  Geoffrey Keating  <geoffk@apple.com>
1381
1382         PR 14516
1383         * c-common.c (c_expand_decl): Don't special-case static VAR_DECLs.
1384         * c-common.h (make_rtl_for_local_static): Delete.
1385         * c-decl.c (shadow_tag_warned): Clean up comment.
1386         (finish_decl): Clean up spacing.  Use set_user_assembler_name when
1387         appropriate.  Don't pass asmspec to rest_of_decl_compilation.
1388         * c-semantics.c (make_rtl_for_local_static): Delete.
1389         * expr.c (init_block_move_fn): Use set_user_assembler_name.
1390         (init_block_clear_fn): Likewise.
1391         * passes.c (rest_of_decl_compilation): Remove asmspec parameter,
1392         expect it to be in DECL_ASSEMBLER_NAME.  Update callers in many files.
1393         * toplev.h (rest_of_decl_compilation): Remove asmspec parameter.
1394         * tree.h (make_decl_rtl): Remove second parameter.
1395         (set_user_assembler_name): New.
1396         * varasm.c (set_user_assembler_name): New.
1397         (make_decl_rtl): Remove second parameter.  Update callers in many
1398         files.
1399
1400 2004-08-05  Adam Nemet  <anemet@lnxw.com>
1401
1402         * config.gcc (case i[34567]86-*-lynxos*): Update to LynxOS 4.0.
1403         (case rs6000-*-lynxos*): Rename it to powerpc-*-lynxos*.  Update
1404         to LynxOS 4.0.
1405         * gthr-lynx.h: New file.
1406         * config/lynx-ng.h: Remove file.
1407         * config/lynx.h: Update to LynxOS 4.0.
1408         * config/t-lynx: New file.
1409         * config/i386/lynx-ng.h: Remove file.
1410         * config/i386/lynx.h: Update to LynxOS 4.0.
1411         * config/rs6000/lynxbase.h: Remove file.
1412         * config/rs6000/lynx.h: Update to LynxOS 4.0.
1413         * config/rs6000/t-lynx: New file.
1414         * doc/install.texi (Options specification): Remove reference to
1415         LynxOS from systems where --with-gnu-as makes a difference.
1416
1417 2004-08-05  Joseph S. Myers  <jsm@polyomino.org.uk>
1418
1419         * c-common.c (c_stddef_cpp_builtins): Define __INTMAX_TYPE__ and
1420         __UINTMAX_TYPE__.
1421         * c-cppbuiltin.c (builtin_define_stdint_macros): New.  Define
1422         __INTMAX_MAX__.
1423         (c_cpp_builtins): Call it.
1424         * doc/cpp.texi: Update.
1425
1426 2004-08-04  David Edelsohn  <edelsohn@gnu.org>
1427
1428         * config/rs6000/rs6000.c (rs6000_rtx_costs): LABEL_REFs are zero
1429         cost.
1430
1431 2004-08-04  Jan Hubicka  <jh@suse.cz>
1432
1433         * basic-block.h (profile_staus): New global variable.
1434         * cfg.c (profile_status): Declare.
1435         (check_bb_profile): Break out from ....; use profile_status
1436         (dump_flow_info): ... here.
1437         * cfgbuild.c (find_basic_blocks): Set profile_status.
1438         * cfgexpand.c (tree_expand_cfg): Likewise.
1439         * predict.c (estimate_probability): Likewise.
1440         * profile.c (branch_prob): Likewise.
1441         * tree-cfg.c (build_tree_cfg): Likewise.
1442         (dump_function_to_file): Use check_bb_profile.
1443         * tree-pretty-print (dump_bb_header): Likewise.
1444         * tree-profile.c (do_tree_profiling): Cleanup.
1445
1446 2004-08-04  Zack Weinberg  <zack@codesourcery.com>
1447
1448         * Makefile.in (RTL_BASE_H, RTL_H): Correct.
1449         (BUILD_RTL): Remove $(BUILD_PREFIX) from ggc-none.o.
1450         (genobjs): Add errors.o, ggc-none.o, and min-insn-modes.o.
1451         (read-rtl.o, gensupport.o, genconfig.o, genflags.o, gencodes.o)
1452         (genconstants.o, genemit.o, genopinit.o, genrecog.o, genextract.o)
1453         (genpeep.o, genattr.o, genattrtab.o, genautomata.o, genoutput.o)
1454         (genconditions.o): Depend on $(RTL_BASE_H) not $(RTL_H).
1455         (ggc-none.o, errors.o): Move rule to generators section;
1456         correct dependencies.
1457         (min-insn-modes.o): Move rule to generators section; remove
1458         unnecessary explicit command; correct dependencies.
1459         (print-rtl.o, print-rtl1.o): Correct dependencies.
1460         ($(BUILD_PREFIX_1)errors.o. $(BUILD_PREFIX_1)ggc-none.o): Delete rule.
1461         (mostlyclean): Update.
1462
1463         * errors.c: Include bconfig.h not config.h.  Correct comment.
1464         * gengtype.c, genpreds.c: Don't define NO_GENRTL_H.
1465         * ggc-none.c: Include bconfig.h; not config.h or tm.h.
1466         * print-rtl.c: Don't include tm_p.h.
1467
1468         * rtl.h: Move forward-decl of struct function down where it's
1469         needed.  Include genrtl.h #ifndef GENERATOR_FILE, not
1470         #ifndef NO_GENRTL_H.  Remove unnecessary #ifdef BUFSIZ statements.
1471
1472 2004-08-04  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1473             Jeff Law  <law@redhat.com>
1474
1475         * tree-cfg.c (tree_duplicate_bb): Mark duplicated definitions.
1476         * tree-flow.h (rewrite_ssa_into_ssa): Declaration changed.
1477         * tree-into-ssa.c (rewrite_ssa_into_ssa): Use new interface to
1478         manipulate the duplicated ssa names.
1479         * tree-ssanames.c (ssa_names_to_rewrite): New variable.
1480         (marked_for_rewrite_p, any_marked_for_rewrite_p, mark_for_rewrite,
1481         unmark_all_for_rewrite, marked_ssa_names, release_ssa_name_force):
1482         New functions.
1483         (release_ssa_name): Do not release ssa names that may have multiple
1484         definitions.
1485         * tree.h (release_ssa_name_force, mark_for_rewrite,
1486         unmark_all_for_rewrite, marked_for_rewrite_p, any_marked_for_rewrite_p,
1487         marked_ssa_names): Declare.
1488         * tree-ssa-loop-ch.c (mark_defs_for_rewrite): Remove.
1489         (duplicate_blocks): Remove call to mark_defs_for_rewrite.
1490         Update call to rewrite_ssa_into_ssa.
1491
1492 2004-08-04  Mark Mitchell  <mark@codesourcery.com>
1493
1494         * defaults.h (TARGET_DECLSPEC): New macro.
1495         * c-cppbuiltin.c (c_cpp_builtins): Handle TARGET_DECLSPEC.
1496         * config/arm/pe.h (SUBTARGET_CPP_SPEC): Remove __declspec support.
1497         * config/arm/symbian.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define.
1498         * config/i386/beof-elf.h (TARGET_OS_CPP_BUILTINS): Remove
1499         __declspec support.
1500         (TARGET_DECLSPEC): Define.
1501         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Remove
1502         __declspec support.
1503         * config/i386/i386-interix.h (TARGET_OS_CPP_BUILTINS): Remove
1504         __declspec support.
1505         (TARGET_DECLSPEC): Define.
1506         * config/mcore/mcore.h (TARGET_CPU_CPP_BUILTINS): Remove
1507         __declspec support.
1508         * config/sh/symbian-pre.h (SUBTARGET_CPP_SPEC): Remove __declspec
1509         support.
1510         * doc/tm.texi (TARGET_DECLSPEC): Document.
1511
1512         * doc/extend.texi: Fix typo in comment.
1513
1514 2004-08-04  Paul Brook  <paul@codesourcery.com>
1515
1516         * target-def.h (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
1517         (TARGET_CXX): Use it.
1518         * target.h (struct gcc_target): Add cdtor_returns_this.
1519         * config/arm/arm.c (arm_cxx_cdtor_returns_this): New function.
1520         (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
1521         * doc/tm.texi: Document TARGET_CXX_CDTOR_RETURNS_THIS.
1522
1523 2004-08-03  Nathan Sidwell  <nathan@codesourcery.com>
1524
1525         * c-lex.c (narrowest_unsigned_type, narrowest_signed_type): Take
1526         low/high pair. Do range checking directly.
1527         (interpret_integer): Adjust.
1528
1529 2004-08-04  Nick Clifton  <nickc@redhat.com>
1530
1531         * config/sh/sh.h (TARGET_SWITCHES): Add no-renesas to select the
1532         GCC ABI.
1533         * doc/invoke.texi: Document this new switch and also the -mrenesas
1534         switch.
1535
1536 2004-08-04  Nathan Sidwell  <nathan@codesourcery.com>
1537
1538         * cfglayout.c (insn_locators_initialize): Update the current
1539         location before initializing a location.
1540
1541 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
1542
1543         * dbxout.c (dbxout_function_decl): Always call dbxout_function_end.
1544         (dbxout_function_end): Return after emitting the "Lscope" symbol
1545         under the same conditions that this function formerly wasn't called.
1546         Add explanatory comments.
1547
1548         PR 14860
1549         * c-decl.c (record_builtin_type): Call debug_hooks->type_decl
1550         on the new decl.
1551
1552         PR 13956
1553         * dbxout.c (dbx_output_lbrac, dbx_output_rbrac): New
1554         functions, broken out of dbxout_block.
1555         (dbxout_block): The block at depth 0 should get LBRAC/RBRAC
1556         stabs too, if it contains symbols.  Use the begin_label and
1557         the Lscope label (emitted by dbxout_function_end) for the
1558         range of this block.
1559
1560 2004-08-03  Nathanael Nerode  <neroden@gcc.gnu.org>
1561
1562         * doc/install.texi: Update autoconf version requirements.
1563
1564 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
1565
1566         * defaults.h (LEGITIMATE_PIC_OPERAND_P): Provide default definition.
1567         * recog.c (general_operand, immediate_operand, nonmemory_operand)
1568         (asm_operand_ok): Remove #ifdefs on LEGITIMATE_PICOPERAND_P.
1569         * regclass.c (record_reg_classes): Likewise.
1570         * reload.c (find_reloads): Likewise.
1571         * reload1.c (reload): Likewise.
1572
1573 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
1574
1575         * gensupport.c (init_md_reader_args_cb): Renamed from
1576         init_md_reader_args.  Add third option, callback function for
1577         parsing program-specific options.  Add diagnosis of incorrect
1578         number of input files.
1579         (init_md_reader): Fold into init_md_reader_args_cb.
1580         (init_md_reader_args): Now a thin wrapper around
1581         init_md_reader_args_cb.
1582         * gensupport.h: Update prototypes.
1583
1584         * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c
1585         * genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c
1586         * genrecog.c: No need to diagnose lack of an input file;
1587         init_md_reader_args will handle it.
1588         * genconditions.c: Likewise, and use init_md_reader_args.
1589         * genconstants.c: Likewise, and no need to call read_md_rtx.
1590
1591 2004-08-03  Joseph S. Myers  <jsm@polyomino.org.uk>
1592
1593         * c-decl.c (implicitly_declare): Diagnose incompatible implicit
1594         declarations.
1595
1596 2004-08-03  Mike Stump  <mrs@apple.com>
1597
1598         * config/darwin-c.c: Don't search in "/Local/Library/Frameworks"
1599         for frameworks.
1600         * doc/invoke.texi (Darwin Options): Update to reflect above.
1601
1602 2004-08-03  Roger Sayle  <roger@eyesopen.com>
1603
1604         PR middle-end/16790
1605         * fold-const.c (extract_muldiv_1) <NOP_EXPR>: Disallow local
1606         truncations, not just global truncations.
1607
1608 2004-08-03  Andrew Pinski  <apinski@apple.com>
1609
1610         PR bootstrap/16865
1611         * loop-iv.c (simplify_using_assignment): Initialize lhs.
1612
1613 2004-08-03  Paul Brook  <paul@codesourcery.com>
1614
1615         * gcc/doc/install.texi: Document MPFR requirement.
1616
1617 2004-08-03  Maciej W. Rozycki  <macro@linux-mips.org>
1618
1619         * aclocal.m4 (gcc_AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
1620         and mmap() explicitly instead of relying on preset autoconf cache
1621         variables.
1622         * configure: Regenerate.
1623
1624 2004-08-03  H.J. Lu  <hongjiu.lu@intel.com>
1625
1626         PR target/16570
1627         * config.gcc (i[34567]86-*-* | x86_64-*-*): Add i386/t-gmm_malloc
1628         to tmake_file.
1629         (i[34567]86-*-linux*aout* | i[34567]86-*-linux*libc1): Likewise.
1630         (i[34567]86-*-linux* | x86_64-*-linux*): Add i386/t-pmm_malloc
1631         to tmake_file.
1632
1633         * config/i386/t-gmm_malloc: New file.
1634         * config/i386/t-pmm_malloc: Likewise.
1635
1636         * config/i386/xmmintrin.h: Include <mm_malloc.h>.
1637
1638 2004-08-03  H.J. Lu  <hongjiu.lu@intel.com>
1639             Tanguy Fautrà <tfautre@pandora.be>
1640
1641         * config/i386/pmm_malloc.h: New file.
1642
1643 2004-08-03  Danny Smith  <dannysmith@users.sourceforge.net>
1644
1645         * config/i386/gmm_malloc.h: New file.
1646
1647 2004-08-03  Dale Johannesen  <dalej@apple.com>
1648
1649         * config/rs6000/rs6000.c (machopic_output_stub):  Align Darwin stubs.
1650         * c-common.c: Include opts.h.
1651         (c_common_get_alias_set): Fix check for a single input file.
1652         * toplev.c: Remove current_file_decl.
1653         * tree.h: Ditto.
1654
1655 2004-08-03  Mark Mitchell  <mark@codesourcery.com>
1656
1657         * config.gcc (arm*-*-symbianelf*): New target.
1658         * config/arm/symbian.h: New file.
1659
1660         * gthr-gnat.c: Add visibility #pragmas.
1661         * gthr-gnat.h : Likewise.
1662         * gthr.h: Likewise.
1663         * libgcc2.c (__ffsSI2): Move prototype to libgcc2.h.
1664         (__ffsDI2): Likewise.
1665         (__clzSI2): Likewise.
1666         (__ctzSI2): Likewise.
1667         (__ctzDI2): Likewise.
1668         (__popcountSI2): Likewise.
1669         (__popcountDI2): Likewise.
1670         (__paritySI2): Likewise.
1671         (__parityDI2): Likewise.
1672         * libgcc2.h: Add visibility #pragmas.
1673         (__clzDI2): Add prototype.
1674         (__clzSI2): Likewise.
1675         (__ctzSI2): Likewise.
1676         (__ffsDI2): Likewise.
1677         (__ffsSI2): Likewise.
1678         (__ctzDI2): Likewise.
1679         (__popcountSI2): Likewise.
1680         (__popcountDI2): Likewise.
1681         (__paritySI2): Likewise.
1682         (__parityDI2): Likewise.
1683         * unwind-dw2-fde.h: Add visibility #pragmas.
1684         * unwind.h: Likewise.
1685
1686 2004-08-03  David Edelsohn  <edelsohn@gnu.org>
1687             Dale Johannesen  <dalej@apple.com>
1688             Roger Sayle  <roger@eyesopen.com>
1689
1690         * config/rs6000/rs6000.c (rs6000_rtx_costs): Calculate cost of
1691         constants more accurately.  Adjust costs for FMA instructions.
1692         Add cases for most logical and float operations.  Recurse into
1693         most operands.
1694
1695 2004-08-03  Richard Earnshaw  <rearnsha@arm.com>
1696
1697         * config.gcc (strongarm-*, xscale-*): Add t-arm to tmake_files.
1698
1699 2004-08-03  Pat Haugen  <pthaugen@us.ibm.com>
1700
1701         * ra-build.c (conflicts_between_webs): For webs that cross a call add
1702         conflicts to regs_invalidated_by_call.
1703
1704 2004-08-03  Paul Brook  <paul@codesourcery.com>
1705
1706         * config/arm/arm.c (emit_sfm): Only emit a single frame adjustment.
1707
1708 2004-08-03  Jan Hubicka  <jh@suse.cz>
1709
1710         * coverage.c (tree_coverage_counter_ref): Fix computation of the new
1711         ARRAY_REF argument.
1712
1713 2004-08-03  Richard Earnshaw  <rearnsha@arm.com>
1714
1715         * arm-cores.def: Sort by architecture.  Add arm946es, arm966es,
1716         arm968es, arm10e, arm1020e, arm1022e.
1717         * invoke.texi: Update list of ARM cores.
1718         * arm-tune.md: Regenerate.
1719
1720 2004-08-03  Richard Earnshaw <rearnsha@arm.com>
1721
1722         * arm/gentune.sh: New file.
1723         * arm/t-arm: New file.
1724         * arm/arm-tune.md: New file (autogenerated).
1725         * config.gcc (arm*-*-*): Add t-arm to tmake_file for all variants.
1726         * arm.md (attribute tune): Delete.  Include arm-tune.md.
1727
1728 2004-08-03  Paolo Bonzini <bonzini@gnu.org>
1729
1730         * gcc.c (add_prefix, add_sysrooted_prefix): Remove
1731         penultimate parameter.  All callers adjusted.
1732         (struct prefix_list): Remove used_flag_ptr.
1733         (find_a_file): Do not set *pl->used_flag_ptr.
1734         (warn_B, warn_std_ptr): Remove.
1735
1736 2004-08-03  Yossi Markovich <yossim@il.ibm.com>
1737             Mostafa Hagog <mustafa@il.ibm.com>
1738
1739         * config/rs6000/altivec.md (altivec_vnmsubfp): Fix wrong pattern.
1740
1741 2004-08-02  Geoffrey Keating  <geoffk@apple.com>
1742
1743         * dwarf2out.c (output_call_frame_info): Don't change data format
1744         due to TARGET_USES_WEAK_UNWIND_INFO.  Always refer to the local
1745         label.  Use 'true' not '1'.
1746         * doc/install.texi (powerpc-*-darwin*): Mention cctools version
1747         required.
1748
1749 2004-08-02  Gabriel Dos Reis  <gdr@cs.tamu.edu>
1750
1751         * gdbinit.in: Reflect previous changes to rtunion_def.
1752
1753 2004-08-02  Roger Sayle  <roger@eyesopen.com>
1754
1755         * fold-const.c (fold) <TRUNC_MOD_EXPR>: The transformation "X % -Y"
1756         -> "X % Y" is only valid for TRUNC_MOD_EXPR.
1757
1758 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1759
1760         * vec.h (DEF_VEC_P): Add proper cast to uses of vec_o_reserve and
1761         vec_p_reserve.
1762         * langhooks.h (lang_hooks::builtin_function): Rename parameter
1763         from "class" to "bt_class".
1764
1765 2004-08-02  Paul Brook  <paul@codesourcery.com>
1766
1767         PR rtl-optimization/15068
1768         * flow.c (init_propagate_block_info): Check condition is reversible.
1769
1770 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1771
1772         * gengtype.h (options::info): Change type to const char *.
1773         (enum gc_used_enum): Move out of struct type scope.
1774         * gengtype.c (create_option): Convert initializer for option::info to
1775         appropiate type.
1776         (adjust_field_type, walk_type, write_func_for_structure,
1777         write_root, write_roots): Remove pointless cast.
1778
1779 2004-08-02  J"orn Rennecke <joern.rennecke@superh.com>
1780
1781         * genopinit.c (gen_insn): Check for MODE_COMPLEX_FLOAT patterns for $F.
1782
1783 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1784
1785         * rtl.h (union rtunion_def): Have all members  start with the
1786         prefix "rt_".
1787         (XINT, XSTR, XEXP, XVEC, XMODE, XBITMAP, XTREE, XBBDEF, XTMPL,
1788         X0INT, X0UINT, X0STR, X0EXP, X0VEC, X0MODE, X0BITMAP, X0TREE,
1789         X0MEMATTR, X0BBDEF, X0REGATTR, XCINT, XCUINT, XCSTR, XCEXP,
1790         XCVEC, XCMODE, XCBITMAP, XCTREE, XCBBDEF, XC2EXP): Adjust members
1791         access.
1792         * gengtype.c (adjust_field_rtx_def): Likewise.
1793         * rtlanal.c (loc_mentioned_in_p): Likewise.
1794
1795 2004-08-02  Richard Sandiford  <rsandifo@redhat.com>
1796
1797         * config.gcc (mips*-*-elf*, mips*-*-rtems*): Add elfos.h to tm_file.
1798         Replace uses of mips/elf64.h with mips/elf.h
1799         * config/mips/elf.h (MAX_OFILE_ALIGNMENT, TARGET_ASM_NAMED_SECTION)
1800         (TYPE_OPERAND_FMT, TYPE_ASM_OP, SIZE_ASM_OP, BSS_SECTION_ASM_OP)
1801         (ASM_OUTPUT_ALIGNED_BSS, ASM_WEAKEN_LABEL, ASM_OUTPUT_WEAK_ALIAS)
1802         (MAKE_DECL_ONE_ONLY, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP)
1803         (HANDLE_SYSV_PRAGMA): Delete.
1804         (ASM_OUTPUT_DEF): Fix formatting.
1805         * config/mips/elf64.h: Delete.
1806
1807 2004-08-01  Zack Weinberg  <zack@codesourcery.com>
1808
1809         * config/ia64/ia64.c (got_symbolic_operand): Do require a
1810         symbol+offset operand to have its offset be zero mod 0x3fff
1811         when GOT entries are in use.  Clarify logic in SYMBOL_REF
1812         case.  Clarify comments.
1813         (ia64_expand_load_address): Split a symbol+offset load when
1814         the offset is nonzero mod 0x3fff, not 0x1fff.
1815
1816 2004-08-01  Geoffrey Keating  <geoffk@apple.com>
1817
1818         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Just abort
1819         if trying to *store* to a non-offsettable address.
1820         * config/rs6000/rs6000.md (movtf_internal): Don't move GPRs to
1821         a nonoffsettable address.
1822         (movdi_internal32): Don't move GPRs to a nonoffsettable address.
1823         Clean up.
1824         (movti_string): Don't move GPRs to a nonoffsettable address.
1825         (movti_ppc64): Don't move GPRs to a nonoffsettable address.  Clean up.
1826
1827 2004-08-02  Ben Elliston  <bje@au.ibm.com>
1828
1829         PR target/16155
1830         * config/rs6000/altivec.h: Replace typeof with __typeof__.
1831
1832 2004-08-01  Richard Henderson  <rth@redhat.com>
1833
1834         * expr.c (expand_expr_real_1) <normal_inner_ref>: Fix crash with
1835         variable sized types.
1836
1837 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
1838
1839         * doc/invoke.texi: In the MIPS options section, remove the passage
1840         saying that -mexplicit-relocs is usually disabled for -mabicalls
1841         -fno-unit-at-a-time.
1842         * config/mips/mips.c (override_options): Remove the code that enforced
1843         this rule.
1844
1845 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
1846
1847         * config/mips/mips.md (cprestore): Provide two alternatives, one for
1848         an in-range offset and one for an out-of-range offset.  Wrap the latter
1849         in .set macro/.set nomacro if it's inside a .set nomacro block.
1850
1851 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
1852
1853         * config/mips/mips-protos.h (mips_gp_save_slot): Remove.
1854         (mips_restore_gp): Declare.
1855         * config/mips/mips.c (mips_add_offset): Add a scratch register
1856         argument.  Reimplement in rtl only, reusing MIPS16 logic from
1857         mips_output_mi_thunk.
1858         (mips_legitimize_address, mips_legitimize_const_move): Adjust calls
1859         to mips_add_offset.
1860         (mips_gp_save_slot): Delete.
1861         (mips_restore_gp): New function.
1862         (mips_set_return_address, mips_output_mi_thunk): Use mips_add_offset.
1863         * config/mips/mips.md (exception_receiver): Turn into a
1864         define_insn_and_split.  Use mips_restore_gp to do the split.
1865         (call_internal, call_value_internal, call_value_multiple_internal): Use
1866         mips_restore_gp to restore $gp.
1867
1868 2004-07-31  Andrew Pinski  <apinski@apple.com>
1869
1870         PR other/16842
1871         * mkheaders.in (libsubdir): s/gcc-lib/gcc/.
1872
1873 2004-07-31  Joseph S. Myers  <jsm@polyomino.org.uk>
1874
1875         * c-decl.c (diagnose_mismatched_decls): Give error for external
1876         redeclaration of identifier declared with no linkage, not just
1877         warning with -Wtraditional.  Do not check DECL_CONTEXT to give
1878         error for redeclaration with no linkage.
1879
1880 2004-07-30  Geoffrey Keating  <geoffk@apple.com>
1881             Fariborz Jahanian <fjahanian@apple.com>
1882
1883         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Permit
1884         non-offsettable addresses even for DImode.
1885         (rs6000_split_multireg_move): Cope with non-offsettable addresses
1886         being moved into multiple GPRs.
1887
1888         * config/rs6000/rs6000.c (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Default
1889         to 64.
1890         (rs6000_override_options): Use RS6000_DEFAULT_LONG_DOUBLE_SIZE.
1891         * config/rs6000/darwin.h (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define
1892         to 128.
1893         * config/rs6000/darwin-ldouble.c (isless): New macro.
1894         (inf): New macro.
1895         (nonfinite): New macro.
1896         (FPKINF): Delete.
1897         (_xlqadd): Completely rewrite.
1898         (_xlqmul): Correct overflow handling.
1899         (_xlqdiv): Correct overflow handling.
1900         * config/rs6000/darwin-ldouble-format: New file.
1901
1902 2004-07-30  Roger Sayle  <roger@eyesopen.com>
1903             Richard Henderson  <rth@redhat.com>
1904
1905         * config/i386/i386.md: New peephole2's to convert imul by 3, 5 or
1906         9 into the equivalent lea instruction.
1907
1908 2004-07-30  Richard Henderson  <rth@redhat.com>
1909
1910         * gimplify.c (gimplify_expr) <case CONST_DECL>: Don't replace
1911         with DECL_INITIAL if fb_lvalue.
1912         * tree-gimple.c (is_gimple_id): Add CONST_DECL.
1913         * tree-pretty-print.c (dump_decl_name): Dump unnamed CONST_DECL
1914         with <Cxxx>.
1915         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Fold CONST_DECL.
1916
1917 2004-07-30  Diego Novillo  <dnovillo@redhat.com>
1918
1919         * tree-ssa-alias.c (compute_points_to_and_addr_escape): If a
1920         pointer escapes through a function call, assume that the
1921         callee will dereference it.
1922         (add_pointed_to_var): Assume that VALUE is always an
1923         ADDR_EXPR.
1924         (collect_points_to_info_r): Only call add_pointed_to_var if
1925         the value is an ADDR_EXPR.
1926
1927 2004-07-30  Diego Novillo  <dnovillo@redhat.com>
1928
1929         * tree-ssa-alias.c (create_alias_map_for): Do not get the
1930         alias set of the inner type of ARRAY_TYPEs.
1931
1932 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
1933
1934         * tree-ssa-ccp.c (visit_assignment): Move code to prevent
1935         setting a non-register to UNDEFINED right before the call to
1936         set_lattice_value.
1937
1938 2004-07-29  Kaz Kojima  <kkojima@gcc.gnu.org>
1939
1940         * config/sh/lib1funcs.asm: Make aliases movstr* for movmem*.
1941
1942 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
1943
1944         * tree-ssa.c (verify_flow_sensitive_alias_info): When
1945         comparing points-to sets of different pointers, make sure the
1946         second pointer is actually referenced in the code.
1947
1948 2004-07-29  Zack Weinberg  <zack@codesourcery.com>
1949
1950         * config/ia64/ia64.c (setjmp_operand): Delete, unused.
1951         (got_symbolic_operand): Remove unreachable code.
1952         * config/ia64/ia64.h (PREDICATE_CODES): Remove entry for
1953         setjmp_operand; add entry for tls_symbolic_operand.
1954         * config/ia64/ia64-protos.h: Remove all prototypes of
1955         predicate functions.
1956
1957 2004-07-29  Mark Mitchell  <mark@codesourcery.com>
1958
1959         * c-common.h (lang_post_pch_load): New variable.
1960         * c-pch.c (lang_post_pch_load): Define it.
1961         (c_common_read_pch): Use it.
1962         * cgraphunit.c (record_call_1): Give the front end a chance to
1963         record additional needed entities when a variable is marked as
1964         needed.
1965         * tlink.c (recompile_files): Robustify.
1966         (scan_linker_output): If a symbol is assigned to a file,
1967         but after recompilation is not present there, issue an error
1968         message.
1969
1970 2004-07-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1971
1972         * tree-ssa-loop-im.c (force_move_till_expr, force_move_till):
1973         Take orig_loop argument and pass it to set_level.
1974         (schedule_sm): Pass the correct orig_loop to force_move_till.
1975
1976 2004-07-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1977
1978         * cfgloop.c (update_latch_info): Update dominator of the new block.
1979         (canonicalize_loop_headers, flow_loops_find): Do not free dominance
1980         info.
1981         * dominance.c (verify_dominators): Check that the dominance tree is
1982         connected.
1983         (recount_dominator): Ignore unreachable blocks.
1984         (iterate_fix_dominators): Cleanup old dominance information before
1985         recomputing it.
1986
1987 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
1988
1989         * tree-ssa-operands.c (get_expr_operands): Revert changes
1990         to ADDR_EXPR processing introduced by:
1991             2004-06-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1992             * tree-ssa-operands.c (get_expr_operands): Minor rearrangements.
1993
1994 2004-07-29  Joseph S. Myers  <jsm@polyomino.org.uk>
1995
1996         * doc/implement-c.texi: Add C90 subclause references.  Point to
1997         preprocessor documentation instead of duplicating it.  Add points
1998         only present in C90.  Fill in documentation for all points.
1999
2000 2004-07-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2001
2002         * pa.c (output_movb): Correct typo.
2003
2004 2004-07-29  Pat Haugen  <pthaugen@us.ibm.com>
2005
2006         * ra.h (single_reg_in_regclass): Declare.
2007         * ra.c (single_reg_in_regclass): Define.
2008         (first_hard_reg): New.
2009         (init_ra): Initialize single_reg_in_regclass.
2010         * ra-colorize.c (ok_class): New.
2011         (coalesce, aggressive_coalesce, extended_coalesce_2): Use it.
2012
2013 2004-07-29  Nathan Sidwell  <nathan@codesourcery.com>
2014
2015         * gcov-io.h: Allow zero tag as EOF indicator.
2016         (gcov_is_eof): Remove.
2017         (gcov_truncate): Remove.
2018         * gcov-io.c (gcov_seek): Always SEEK_SET.
2019         * libgcov.c (gcov_exit): Don't use gcov_truncate.  Write explicit
2020         EOF tag.
2021         * coverage.c (read_counts_file): Don't use gcov_is_eof.
2022         * gcov-dump.c (dump_file): Likewise.
2023         * gcov.c (read_graph_file, read_count_file): Likewise.
2024
2025         * c-decl.c (complete_array_type): Don't gratuitously copy
2026         maxindex.  Check it always has a type.
2027
2028 2004-07-29  Steven Bosscher  <stevenb@suse.de>
2029
2030         * rtl.c (currently_expanding_to_rtl): New.
2031         * rtl.h (currently_expanding_to_rtl): Export it.
2032         * cfgexpand.c (tree_cfg_expand): Set/clear it at entry/exit.
2033
2034         * config/alpha/alpha.c (alpha_expand_mov): Remove old RTL
2035         inliner hack.
2036         * config/sh/sh.c: Replace rtx_equal_function_value_matters
2037         with currently_expanding_to_rtl.
2038         * config/sh/sh.md: Likewise.
2039         * config/ia64/ia64.c (got_symbolic_operand): Likewise.
2040
2041 2004-07-29  Alexandre Oliva  <aoliva@redhat.com>
2042
2043         Introduce sh2a support.
2044         2004-07-29  Alexandre Oliva  <aoliva@redhat.com>
2045         * config.gcc: Build multilibs for sh2a and sh2a-single by
2046         default.
2047         * config/sh/sh.h (SUPPORT_SH2A, SUPPORT_SH2A_SINGLE): Define by
2048         default.  Split their tests out of the corresponding SH4
2049         multilibs.
2050         * config/sh/t-sh (MULTILIB_MATCHES): Don't ever use SH4 or SH4a
2051         multilibs for SH2a.
2052         2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
2053         * config.gcc: Handle sh2a multilibs and cpu selection.
2054         * config/sh/sh.h: Likewise.  Handle sh2a command line flags.
2055         * config/sh/t-mlib-sh2a: New.
2056         * config/sh/t-mlib-sh2a-nofpu: New.
2057         * config/sh/t-mlib-sh2a-single: New.
2058         * config/sh/t-mlib-sh2a-single-only: New.
2059         2004-07-09  Nick Clifton  <nickc@redhat.com>
2060         Issue 43400
2061         * config/sh/sh.h (DRIVER_SELF_SPECS): Issue an error message if
2062         -ml and -m2a are used together.
2063         2004-03-23  DJ Delorie  <dj@redhat.com>
2064         * config/sh/sh.c (sh_builtin_saveregs): Use the double code only
2065         when we have a double-sized FPU.
2066         2004-02-24  Corinna Vinschen <vinschen@redhat.com>
2067         * config/sh/lib1funcs.asm (set_fpscr): Don't build if __SH2A_NOFPU__
2068         is set.
2069         * config/sh/elf.h (SUBTARGET_ASM_ISA_SPEC): Add cases for -msh2a-nofpu,
2070         -msh2a-single and -msh2a-single-only
2071         2004-02-24  Corinna Vinschen <vinschen@redhat.com>
2072         * config/sh/crt1.asm: Don't generate FPU instructions if __SH2A_NOFPU__
2073         is set.
2074         2004-02-20  DJ Delorie  <dj@delorie.com>
2075         * config/sh/sh.md (movsf_i, movsf_ie, movsf, ble, bge): Disable for sh2a-nofpu.
2076         2004-02-20  Fred Fish <fnf@redhat.com>,
2077         Corinna Vinschen <vinschen@redhat.com>
2078         * config/sh/t-sh (MULTILIB_OPTIONS): Add 2a-nofpu.
2079         (MULTILIB_EXCEPTIONS): Don't build littel-endian on sh2a.
2080         2004-02-18  DJ Delorie  <dj@redhat.com>
2081         * config/sh/sh.c (broken_move): Add support for movi20.
2082         * config/sh/sh.h: Likewise.
2083         (SHIFT_COUNT_TRUNCATED): Set for sh2a.
2084         * config/sh/sh.md (udivsi3_sh2a): New.
2085         (udivsi3): Call it.
2086         (divsi3_sh2a): New.
2087         (divsi3): Call it.
2088         (mul_r): New.
2089         (ashlsi3_sh2a): New.
2090         (ashrsi3_sh2a): New.
2091         (lshrsi3_sh2a): New.
2092         (movsi_i): Disable for sh2a.
2093         (movsi_ie): Add movi20.
2094         (movsf_i, movsf_ie, movsf, ble, untyped_call): Explicitly enable
2095         sh2a, for -m2a-nofpu mode.
2096         2004-02-13  DJ Delorie  <dj@redhat.com>
2097         * config/sh/lib1funcs.asm: Handle double vs single better.
2098         * config/sh/sh.h: Likewise.
2099         2004-02-09  DJ Delorie  <dj@redhat.com>
2100         * config/sh/crt1.asm: Add support for sh2a.
2101         * config/sh/elf.h: Likewise.
2102         * config/sh/lib1funcs.asm: Likewise.
2103         * config/sh/sh.c: Likewise.
2104         * config/sh/sh.md: Likewise.
2105         * config/sh/sh.h: Likewise.
2106         * config/sh/t-sh: Likewise.
2107
2108 2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
2109
2110         * config/frv/frv.md (movqi_internal, movhi_internal,
2111         movsi_internal): Add backup alternatives for memory inputs.
2112
2113 2004-07-28  Matt Austern  <austern@apple.com>
2114
2115         * config/darwin.c (darwin_one_byte_bool): New global variable.
2116         * config/darwin.h (darwin_one_byte_bool): Declare.
2117         (SUBTARGET_OPTIONS): Define macro.  (for -mone-byte-bool flag.)
2118         * config/rs6000/darwin.h (BOOL_TYPE_SIZE): Conditionalize on
2119         value of darwin_one_byte_bool.
2120         * doc/invoke.texi: Document -mone-byte-bool flag.
2121
2122 2004-07-28  Eric Christopher  <echristo@redhat.com>
2123
2124         * c-common.c (c_common_unsafe_for_reeval): Delete.
2125         * c-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete use.
2126         * c-pretty-print.c (pp_c_expression): Delete UNSAVE_EXPR case.
2127         * calls.c (fix_unsafe_tree): Delete.
2128         (expand_call): Delete code which used above.
2129         * dojump.c (do_jump): Delete UNSAVE_EXPR case.
2130         * expr.c (expand_expr_real_1): Ditto.
2131         * fold-const.c (non_lvalue): Ditto.
2132         * langhooks-def.h (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
2133         (lhd_unsafe_for_reeval): Ditto.
2134         * langhooks.c (lhd_unsafe_for_reeval): Ditto.
2135         * langhooks.h (unsafe_for_reeval): Ditto.
2136         (unsave_expr_now): Adjust comment.
2137         * tree-inline.c (copy_body_r): Delete UNSAVE_EXPR bits.
2138         (estimate_num_insns_1): Ditto.
2139         * tree-pretty-print.c (dump_generic_node): Ditto.
2140         * tree.c (expr_align): Ditto.
2141         (unsave_expr): Delete.
2142         (unsafe_for_reeval): Ditto.
2143         * tree.h (unsafe_for_reeval, unsave_expr): Ditto.
2144         * tree.def (UNSAVE_EXPR): Delete.
2145         * objc/objc-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
2146
2147 2004-07-28  Zack Weinberg  <zack@codesourcery.com>
2148
2149         * tree.h (enum tls_model): Move ...
2150         * coretypes.h: ... here.
2151
2152 2004-07-28  Richard Sandiford <rsandifo@redhat.com>
2153
2154         * config/frv/frv.h (EPILOGUE_USES): New.  Use LR.
2155
2156 2004-07-28  Richard Sandiford  <rsandifo@redhat.com>
2157
2158         * cse.c (validate_canon_reg): New function, split out from...
2159         (canon_reg): ...here.  Use validate_canon_reg for both 'e' and 'E'.
2160
2161 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
2162
2163         * tree-ssa-alias.c (maybe_create_global_var): Don't just
2164         return if .GLOBAL_VAR has been created.
2165
2166 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
2167
2168         * tree-ssa.c (verify_flow_insensitive_alias_info): Process
2169         every variable that may have aliases, not just tags.
2170
2171 2004-07-28  Aldy Hernandez  <aldyh@redhat.com>
2172
2173         * config/rs6000/rs6000.md ("move_from_CR_gt_bit"): Rename to
2174         move_from_CR_eq_bit.
2175         Rename UNSPEC_MV_CR_GT to UNSPEC_MV_CR_EQ.
2176
2177
2178         * config/rs6000/spe.md ("e500_flip_gt_bit"): Rename to
2179         e500_flip_eq_bit.
2180
2181         * config/rs6000/rs6000-protos.h: Rename output_e500_flip_gt_bit to
2182         output_e500_flip_eq_bit.
2183
2184         * config/rs6000/rs6000.c (output_e500_flip_gt_bit): Rename to
2185         output_e500_flip_eq_bit.
2186         (rs6000_emit_sCOND): Rename call to output_e500_flip_gt_bit to
2187         output_e500_flip_eq_bit.
2188         Rename gen_move_from_CR_gt_bit to gen_move_from_CR_eq_bit.
2189         (print_operand): case D.  Get to EQ bit.
2190
2191 2004-07-28  Richard Sandiford  <rsandifo@redhat.com>
2192
2193         * gcov.c (function_summary): Add missing \n.
2194
2195 2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
2196
2197         Introduce sh4a support.
2198         * config.gcc: Handle sh4a multilibs and cpu selection.
2199         * config/sh/sh.h: Likewise.  Handle sh4a command line flags.
2200         * config/sh/t-mlib-sh4a: New.
2201         * config/sh/t-mlib-sh4al: New.
2202         * config/sh/t-mlib-sh4a-nofpu: New.
2203         * config/sh/t-mlib-sh4a-single: New.
2204         * config/sh/t-mlib-sh4a-single-only: New.
2205         2004-02-20  DJ Delorie  <dj@redhat.com>
2206         * config/sh/sh.md ("movua"): Change constraint from "m" to "Sua".
2207         * config/sh/sh.h (EXTRA_CONSTRAINT_S): Add "Sua" support.
2208         2003-08-22  Eric Christopher  <echristo@redhat.com>
2209         * config/sh/sh4a.md: Update for chip errata.
2210         2003-08-07  Eric Christopher  <echristo@redhat.com>
2211         * config/sh/sh4a.md: New file. sh4a processor description.
2212         2003-07-08  Alexandre Oliva  <aoliva@redhat.com>
2213         * config/sh/sh.h (TARGET_SWITCHES): Added 4al.  Adjust description
2214         of -m4a-nofpu.
2215         (SH_ASM_SPEC): Pass -dsp for -m4al, not -m4a-nofpu.
2216         * config/sh/t-sh (MULTILIB_MATCHES): Map -m4al to -m4a-nofpu.
2217         * doc/invoke.texi (SH Options): Document -m4al.
2218         2003-07-03  Alexandre Oliva  <aoliva@redhat.com>
2219         * config/sh/sh.c (expand_block_move): Remove commented-out code
2220         checked in by mistake.
2221         (sh_cannot_change_mode_class): Enable SUBREGs to be used to select
2222         single elements from SFmode vectors.
2223         * config/sh/sh.md (fsca): Use VEC_CONCAT to initialize the output
2224         register.
2225         (sinsf2, cossf2, sindf2, cosdf2): Don't emit CLOBBER.
2226         2003-07-01  Alexandre Oliva  <aoliva@redhat.com>
2227         * config/sh/sh.h (sh_fsca_sf2int, sh_fsca_df2int,
2228         sh_fsca_int2sf): Remove variable declarations.
2229         * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int,
2230         sh_fsca_int2sf): New functions.
2231         (sh_fsca_sf2int_rtx, sh_fsca_df2int_rtx,
2232         sh_fsca_int2sf_rtx): New static variables.
2233         * config/sh/sh-protos.h (sh_fsca_sf2int, sh_fsca_df2int,
2234         sh_fsca_int2sf): Declare.
2235         * config/sh/sh.md: Adjust.
2236         * doc/invoke.texi (SH Options): Document new options.
2237         * config/sh/lib1funcs.asm (ic_invalidate): Remove SH4a forward
2238         compatibility from SH4 code.
2239         2003-06-27  Alexandre Oliva  <aoliva@redhat.com>
2240         * config/sh/sh.c (expand_block_move): Don't emit POST_INC too
2241         early.
2242         (memory_movsrc_operand): Renamed to...
2243         (unaligned_load_operand): ... this.  Simplified.
2244         * config/sh/sh.h (PREDICATE_CODES): Adjust.
2245         * config/sh/sh.md (movua, extv, extzv): Likewise.  Change movua's
2246         input operand to SImode, and adjust the others.  Introduce
2247         post-increment by peephole.
2248         * config/sh/sh.c (expand_block_move): Give the target address the
2249         same mode as the temp reg.
2250         * config/sh/sh.c (expand_block_move): Use a temp reg for unaligned
2251         copying.
2252         2003-06-26  Alexandre Oliva  <aoliva@redhat.com>
2253         Introduce support for SH4a.
2254         * config/sh/lib1funcs.asm (ic_invalidate): Use icbi if
2255         __SH4A__.  Emit 4 4kb blocks and touch all of them otherwise.
2256         * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int,
2257         sh_fsca_int2sf): New.
2258         (sh_init_builtins): Initialize them.
2259         (print_operand): Support `d'.
2260         (expand_block_move): Use movua if src is misaligned.
2261         (memory_movsrc_operand): New.
2262         * config/sh/sh.h (TARGET_CPU_CPP_BUILTINS): Define __SH4A__
2263         and one of the SH4 macros.
2264         (SH4A_BIT, TARGET_SH4A_ARCH, TARGET_SH4A_FP,
2265         SELECT_SH4A_NOFPU, SELECT_SH4A_SINGLE_ONLY, SELECT_SH4A,
2266         SELECT_SH4A_SINGLE): New.
2267         (TARGET_NONE): Add SH4A_BIT.
2268         (TARGET_SWITCHES): Add 4a-single-only, 4a-single, 4a-nofpu and 4a.
2269         (SH_ASM_SPEC): Pass -dsp if -m4a-nofpu.
2270         (sh_fsca_sf2int, sh_fsca_df2int, sh_fsca_int2sf): Declare.
2271         (OVERRIDE_OPTIONS): Set cpu to CPU_SH4A when appropriate.
2272         (enum processor_type): Added PROCESSOR_SH4A.
2273         (PREDICATE_CODES): Add memory_movsrc_operand.
2274         * config/sh/sh.md: Removed unused variables.
2275         (attr cpu): Add sh4a.
2276         (attr type): Add movua, fsrra and fsca.
2277         (prefetch): New, for SH4.
2278         (ic_invalidate_line, ic_invalidate_line_sh4a): Use icbi.
2279         (toggle_sz): Set type to fp.
2280         (toggle_pr, rsqrtsf2, fsca, sinsf2, cossf2, sindf2, cosdf2): New.
2281         (movua, extv, extzv): New.
2282         * config/sh/t-sh: Add multilibs for 4a, 4a-nofpu, 4a-single
2283         and 4a-single-only.
2284
2285 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
2286
2287         * tree-optimize.c (init_tree_optimization_passes): Schedule
2288         pass_may_alias right after the program is renamed into SSA.
2289         * tree-pass.h (PROP_alias): Define.
2290         * tree-outof-ssa.c (pass_del_ssa): Require PROP_alias.
2291         * tree-sra.c (pass_sra): Likewise.
2292         * tree-ssa-ccp.c (pass_ccp): Likewise.
2293         * tree-ssa-copyrename.c (pass_rename_ssa_ccp): Likewise.
2294         * tree-ssa-dce.c (pass_dce): Likewise.
2295         * tree-ssa-dom.c (pass_dominator): Likewise.
2296         * tree-ssa-dse.c (pass_dse): Likewise.
2297         * tree-ssa-forwprop.c (pass_forwprop): Likewise.
2298         * tree-ssa-loop-ch.c (pass_ch): Likewise.
2299         * tree-ssa-phiopt.c (pass_phiopt): Likewise.
2300         * tree-ssa-pre.c (pass_pre): Likewise.
2301         * tree-tailcall.c (pass_tail_recursion): Likewise.
2302         * tree-ssa.c (pass_redundant_phi): Likewise.
2303         * tree-ssa-alias.c (aliases_computed_p): Remove.
2304         Update all users.
2305         (init_alias_info): Do not mark all type tags for renaming
2306         unconditionally.
2307         Clear may_aliases from every symbol.
2308         (setup_pointers_and_addressables): If a pointer has not been
2309         dereferenced and it had a type tag, clear it and mark the old
2310         tag for renaming.
2311
2312 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
2313
2314         PR tree-optimization/16705
2315         * tree-ssa-alias.c (create_global_var): Set DECL_EXTERNAL on
2316         .GLOBAL_VAR.
2317
2318 2004-07-27  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2319
2320         * expr.c (expand_expr_real_1, case PARM_DECL): Remove obsolete error
2321         check.
2322
2323         * gimplify.c (maybe_with_size_expr): If already have WITH_SIZE_EXPR,
2324         don't make another one.
2325
2326         PR optimization/15077
2327         * function.h (struct function): Add field saved_static_chain_decl.
2328         Fix comment for static_chain_decl.
2329         * tree-inline.c (save_body): Add new arg and handle static_chain_decl.
2330         * tree-inline.h (save_body): Add new arg.
2331         * tree-optimize.c (tree_rest_of_compilation): Handle saving
2332         static_chain_decl.
2333
2334 2004-07-27  Richard Henderson  <rth@redhat.com>
2335
2336         * gimplify.c (is_gimple_addr_expr_arg_or_indirect): Remove.
2337         (gimplify_modify_expr, gimplify_addr_expr, gimplify_expr): Use
2338         is_gimple_addressable.
2339         * tree-gimple.c (is_gimple_addressable): Rename from
2340         is_gimple_addr_expr_arg; accept INDIRECT_REF.
2341         (is_gimple_lvalue): Don't test INDIRECT_REF directly.
2342         * tree-gimple.h, tree-sra.c, tree-ssa-loop-im.c: Update for
2343         rename to is_gimple_addressable.
2344
2345 2004-07-28  Alan Modra  <amodra@bigpond.net.au>
2346
2347         * config/rs6000/rs6000.c (function_arg_padding): Pad SFmode upwards.
2348
2349 2004-07-27  Richard Henderson  <rth@redhat.com>
2350
2351         * function.c (assign_stack_local_1): Widen alignment to HOST_WIDE_INT
2352         before rounding.
2353
2354 2004-07-27  Zack Weinberg  <zack@codesourcery.com>
2355
2356         * libgcc2.c: Change all conditionals testing
2357         LIBGCC2_LONG_DOUBLE_TYPE_SIZE == 96 to == 80.
2358         * libgcc2.h: Likewise.
2359         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Set
2360         TYPE_PRECISION of float80_type to 80.
2361         * config/ia64/ia64.c (ia64_init_builtins): Set TYPE_PRECISION
2362         of fpreg_type and float80_type to 80.
2363         * config/i386/i386.h, config/ia64/ia64.h, config/m68k/m68k.h
2364         * config/m68k/netbsd-elf.h:
2365         Change LONG_DOUBLE_TYPE_SIZE and possibly LIBGCC2_LONG_DOUBLE_TYPE_SIZE
2366         to evaluate to 80 whenever they would formerly have evaluated to 96.
2367         * config/i386/sco5.h: Remove unnecessary redefinition of
2368         LONG_DOUBLE_TYPE_SIZE.
2369         * doc/rtl.texi: Clarify uses of XFmode and TFmode.
2370         * config/i386/i386-modes.def: Use FRACTIONAL_FLOAT_MODE for
2371         XFmode, with a bitsize of 80.  Update commentary.
2372         * config/ia64/ia64-modes.def: Likewise.
2373         * config/m68k/m68k-modes.def: Likewise.
2374
2375 2004-07-27  Steven Bosscher  <stevenb@suse.de>
2376
2377         * cfgexpand.c (tree_expand_cfg): Fix comment.
2378
2379         * calls.c (expand_call): Ignore rtx_equal_function_value_matters.
2380         * function.c (purge_single_hard_subreg_set, purge_hard_subreg_sets):
2381         Remove.
2382         (prepare_function_start): Don't set rtx_equal_function_value_matters.
2383         * integrate.c (copy_rtx_and_substitute): Don't test for it.
2384         * passes.c (rest_of_compilation): Don't call purge_hard_subreg_sets.
2385         Don't set rtx_equal_function_value_matters.  Don't register RTL hooks
2386         here again.  Update leading comment.
2387         * rtl.c (rtx_equal_function_value_matters): Remove.
2388         (rtx_equal_p): Don't test for it.
2389         * simplify-rtx.c (simplify_binary_operation, simplify_subreg):
2390         Likewise.
2391
2392         * rtl.h (enum insn_note): Remove NOTE_INSN_LOOP_END_TOP_COND.
2393         * rtl.c (note_insn_name): Likewise.
2394         * emit-rtl.c (remove_unnecessary_notes): Don't handle it.
2395         * final.c (final_scan_insn): Likewise.
2396
2397         * except.c (finish_eh_generation): Don't call cfg_cleanup from here.
2398         * passes.c (rest_of_handle_eh): Do it here.
2399
2400         * stmt.c (struct nesting): Remove struct nesting block member.
2401         (struct stmt_status): Remove x_block_start_count field.
2402         (current_block_start_count): Remove.
2403
2404 2004-07-27  Brian Booth  <bbooth@redhat.com>
2405
2406         * tree-optimize.c (register_one_dump_file): Update condition that uses
2407         static_pass_number.
2408         (dup_pass_1): Replace with...
2409         (next_pass_1): This.
2410         (NEXT_PASS): Call next_pass_1.
2411         (DUP_PASS): Remove.
2412         (init_tree_optimization_passes): Remove uses of DUP_PASS.
2413         (execute_one_pass): Update condition that uses
2414         static_pass_number.
2415         * tree-pass.h (tree_opt_pass): Declare static_pass_number as a signed
2416         integer.
2417
2418 2004-07-27  Nick Clifton  <nickc@redhat.com>
2419
2420         * config/m32r/m32r.c: Include integrate.h in order to get the
2421         prototype for get_hard_reg_initial_val().
2422
2423         * config/m32r/m32r.md (m32rpipeline): Remove unused value "m32r"
2424         and tidy up indentation.
2425         (final_presence_set): Use absence_set instead, so that if there is
2426         nothing in the "o" pipe the "s" pipe can be scheduled.
2427
2428 2004-07-27  Diego Novillo  <dnovillo@redhat.com>
2429
2430         * tree-ssa-alias.c (create_name_tags): Ignore pointers that
2431         don't have PT_VARS nor PT_MALLOC set.
2432         Clear name tag from pointers that have not been dereferenced.
2433         (set_pt_anything, set_pt_malloc): Forward declare.
2434         * tree-ssa-copy.c (may_propagate_copy): Compare alias sets,
2435         not type compatibility when determining if a pointer can be
2436         copy propagated.
2437
2438 2004-07-27  Richard Sandiford  <rsandifo@redhat.com>
2439
2440         * expr.h (canonicalize_condition, get_condition): Add an int argument.
2441         * gcse.c (fis_get_condition): Reimplement using get_condition, leaving
2442         it to check whether the condition is still valid at the jump insn.
2443         * ifcvt.c (noce_get_condition): Likewise.
2444         (noce_get_alt_condition): Update call to canonicalize_condition.
2445         * loop-iv.c (simplify_using_initial_values): Update call to
2446         get_condition.  Remove FIXME.
2447         (check_simple_exit): Update call to get_condition.
2448         * loop-unswitch.c (may_unswitch_on): Likewise.
2449         * loop.c (check_dbra_loop): Likewise.
2450         (canonicalize_condition, get_condition): Add an argument to say whether
2451         the condition must still be valid at INSN.
2452         (get_condition_for_loop): Update call to get_condition.  Require that
2453         the condition be valid at INSN.
2454         * predict.c (estimate_probability): Update call to get_condition.
2455         Remove unused earliest parameter.
2456         (expected_value_to_br_prob): Update call to canonicalize_condition.
2457
2458 2004-07-26  Eric Christopher  <echristo@redhat.com>
2459
2460         * tree-dfa.c (add_referenced_var): Register initializers of global
2461         variables.
2462
2463 2004-07-26  Paolo Bonzini  <bonzini@gnu.org>
2464
2465         * config/i386/i386.c (function_arg): Always treat 8-
2466         and 16-byte wide vectors the same, even if MMX/SSE
2467         are disabled.
2468         (contains_128bit_aligned_vector_p): Add comment.
2469
2470 2004-07-26  J"orn Rennecke <joern.rennecke@superh.com>
2471
2472         * ra.h (enum node_type): Rename to:
2473         (enum ra_node_type).
2474         * ra-colorize.c: Likewise.
2475
2476 2004-07-26  Richard Sandiford  <rsandifo@redhat.com>
2477
2478         * cfgcleanup.c (try_simplify_condjump): Call update_forwarder_flag
2479         after simplifying the jump.
2480
2481 2004-06-26  Richard Henderson  <rth@redhat.com>
2482
2483         * calls.c (combine_pending_stack_adjustment_and_call): Make
2484         preferred_unit_stack_boundary argument unsigned.  Make
2485         unadjusted_alignment unsigned.
2486         (expand_call): Make preferred_stack_boundary and
2487         preferred_unit_stack_boundary variables unsigned.
2488         * function.c (assign_stack_local_1): Make alignment unsigned.
2489         * function.h (struct function): Make stack_alignment_needed,
2490         preferred_stack_boundary unsigned.
2491         * config/i386/i386.c (ix86_preferred_stack_boundary): Make unsigned.
2492         (ix86_compute_frame_layout): Make stack_alignment_needed,
2493         preferred_alignment variables unsigned.
2494         * config/i386/i386.h (ix86_preferred_stack_boundary): Make unsigned.
2495
2496 2004-07-26  Tom Tromey  <tromey@redhat.com>
2497
2498         * tree.h: Fix typo in comment.
2499
2500 2004-07-26  Daniel Jacobowitz  <dan@debian.org>
2501
2502         PR bootstrap/12804
2503         * ggc-zone.c (struct alloc_chunk): Remove attribute packed.
2504         (MAX_FREE_BIN_SIZE): Increase on 64-bit targets.
2505         (ggc_free): Remove incorrect freeing.
2506         (sweep_pages): Advance PP for large pages.  Fix indentation.
2507
2508 2004-07-26  Richard Sandiford  <rsandifo@redhat.com>
2509
2510         PR rtl-optimization/16643
2511         * cfglayout.h (cfg_layout_initialize): Add a flags parameter.
2512         * cfglayout.c (cfg_layout_initialize): Pass it to cleanup_cfg.
2513         * basic-block.h (reorder_basic_blocks): Add a flags parameter.
2514         * cfglayout.c (reorder_basic_blocks): Pass it to cfg_layout_initialize.
2515         (partition_hot_cold_basic_blocks): Pass 0 to cfg_layout_initialize.
2516         * function.c (thread_prologue_and_epilogue_insns): Likewise.
2517         * rtl.h (tracer): Add a flags parameter.
2518         * tracer.c (tracer): Pass it to cfg_layout_initialise.
2519         * passes.c (rest_of_handle_stack_regs): Pass 0 to reorder_basic_blocks.
2520         (rest_of_handle_reorder_blocks): Update calls to tracer and
2521         reorder_basic_blocks, passing CLEANUP_UPDATE_LIFE if appropriate.
2522         (rest_of_handle_tracer): Pass 0 to tracer.
2523         (rest_of_handle_loop2): Pass 0 to cfg_layout_initialize.
2524
2525 2004-07-25  David Edelsohn  <edelsohn@gnu.org>
2526
2527         PR target/16239
2528         * config/rs6000/rs6000.md (movdi_internal64): Further disparage
2529         f->f.
2530
2531 2004-07-24  Nathan Sidwell  <nathan@codesourcery.com>
2532
2533         * tree.h (BINFO_BASE_ACCESSES): Accesses are a VEC(tree).
2534         (BINFO_BASE_ACCESS): Adjust.
2535         (BINFO_BASE_ACCESS_APPEND): New.
2536         (struct tree_binfo): Make base_accesses a VEC(tree) pointer.
2537         * dbxout.c (dbxout_type): Adjust binfo access accessing.
2538         * dwarf2out.c (gen_member_die): Likewise.
2539         * tree-dump.c (deque_and_dump): Likewise.
2540
2541 2004-07-26  Falk Hueffner  <falk@debian.org>
2542
2543         * config/alpha/alpha.c (alpha_rtx_cost_data): Tweak int_div
2544         costs.
2545
2546 2004-07-25  Roger Sayle  <roger@eyesopen.com>
2547
2548         * config/i386/i386.c (output_fp_compare): Use ffreep to pop top
2549         value off of the stack if TARGET_USE_FFREEP.
2550
2551 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
2552
2553         * gengtype.c (oprintf): Replace xrealloc () with XRESIZEVEC ().
2554         * gengtype-yacc.y: Likewise.  Replace free() with XDELETE ().
2555         * c-typeck.c (PUSH_SPELLING): Remove redundant NULL-pointer
2556         check on invocation of XRESIZEVEC ().
2557
2558 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
2559
2560         * c-common.c (disable_builtin_function): Rename variable n to
2561         new_disabled_builtin.
2562         * c-decl.c (duplicate_decls): Rename parameter decl to new_decl.
2563         Rename local variable old to old_decl.
2564         * gensupport.c (shift_output_template): Rename parameter old to src.
2565         * simplify-rtx.c (simplify_replace_rtx): Rename parameter oldx to
2566         old_rtx and newx to new_rtx.
2567
2568 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
2569
2570         * Makefile.in (C_PRAGMA_H): New variable to track dependencies
2571         of c-pragma.h.
2572         * c-pragma.h (c_lex, c_lex_with_flags): Change returntype to
2573         enum cpp_ttype.
2574         * c-lex.c: Likewise.
2575
2576 2004-07-25  Roger Sayle  <roger@eyesopen.com>
2577
2578         * fold-const.c (constant_boolean_node): Make extern.
2579         (make_range): Wrap long lines.
2580         (fold_cond_expr_with_comparison): Remove unnecessary call to
2581         pedantic_non_lvalue.  Add missing calls to fold_convert.
2582         (fold_truthop): Add missing calls to fold_convert.
2583         (fold): Likewise.
2584         * tree.h (constant_boolean_node): Add prototype here.
2585         * builtins.c (expand_builtin_strncmp): Add missing calls to
2586         fold_convert.
2587         * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
2588         Call fold_convert and constant_boolean_node to correct types.
2589         * tree-ssa-forwprop.c (substitute_single_use_vars): Add
2590         missing call to fold_convert to correct types.
2591
2592 2004-07-26  Niall Douglas  <s_fsfeurope2@nedprod.com>
2593             Brian Ryner  <bryner@brianryner.com>
2594
2595         PR c++/9283
2596         PR c++/15000
2597         * c-common.c (c_common_attribute_table): Allow
2598         handle_visibility_attribute to be called for types.
2599         (handle_visibility_attribute) When given a type, set the visibility
2600         bits on the TYPE_NAME.  When given a decl, don't set no_add_attrs
2601         so that we can check later whether the attribute was present. Added
2602         warning if attribute applied to non class type.
2603         * c-decl.c (diagnose_mismatched_decls): Updated rules for merging
2604         decls and checking that they are consistent.
2605         * common.opt: Added -fvisibility.
2606         * c.opt, c-opts.c: Added -fvisibility-inlines-hidden.
2607         * c-pragma.h, c-pragma.c: Added handle_pragma_visibility().
2608         * flags.h, tree.h: Added assorted support defines for overall patch
2609         * opts.c: Added parsing support for -fvisibility.
2610         * tree.c (build_decl): Set visibility for all decls to be whatever
2611         is in force at that time.
2612         * varasm.c (default_binds_local_p_1): Reworked logic determining
2613         when to make a symbol locally bound.
2614         * doc/invoke.texi: Added documentation for -fvisibility and
2615         -fvisibility-inlines-hidden.
2616
2617 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
2618
2619         * basic-block.h (reorder_block_def): Rename to reorder_block_def_p.
2620         * c-common.c: Add missing casts from void * to other types.
2621         * c-decl.c: Likewise.
2622         * c-format.c: Likewise.
2623         * c-lex.c: Likewise.
2624         * c-pragma.c: Likewise.
2625         * c-typeck.c: Likewise.
2626         * defaults.h: Likewise.
2627         * genconstants.c: Likewise.
2628         * gengtype-lex.l: Likewise.
2629         * genmodes.c: Likewise.
2630         * read-rtl.c: Likewise.
2631         * rtl.c: Likewise.
2632
2633 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
2634
2635         * bitmap.c: Use type-safe memory allocation macros from libiberty.
2636         * c-common.c: Likewise.
2637         * c-decl.c: Likewise.
2638         * c-lang.c: Likewise.
2639         * c-lex.c: Likewise.
2640         * c-opts.c: Likewise.
2641         * c-parse.in: Likewise.
2642         * c-typeck.c: Likewise.
2643         * genconditions.c: Likewise.
2644         * gengtype-lex.l: Likewise.
2645         * gengtype-yacc.y: Likewise.
2646         * gengtype.c: Likewise.
2647         * genmodes.c: Likewise.
2648         * gensupport.c: Likewise.
2649         * read-rtl.c: Likewise.
2650         * read-rtl.c (read_constants): Use INSERT instead of TRUE in call to
2651         htab_find_slot().
2652
2653 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
2654
2655         * c-decl.c (groktypename, groktypename_in_param_context): Rename
2656         variable typename to type_name.
2657         * c-lex.c (interpret_float): Likewise.
2658
2659 2004-07-25  Roger Sayle  <roger@eyesopen.com>
2660
2661         * convert.c (convert_to_real, convert_to_integer,
2662         convert_to_complex): Replace calls to build with calls to buildN.
2663         * coverage.c (tree_coverage_counter_ref): Likewise.
2664         * dojump.c (do_jump): Likewise.
2665         * dwarf2out.c (loc_descriptor_from_tree): Likewise.
2666         * emit-rtl.c (component_ref_for_mem_expr,
2667         set_mem_attributes_minus_bitpos): Likewise.
2668         * explow.c (update_nonlocal_goto_save_area): Likewise.
2669         * expmed.c (expand_shift, make_tree, const_mult_add_overflow_p,
2670         expand_mult_add): Likewise.
2671         * expr.c (emit_block_move_via_libcall, clear_storage_via_libcall,
2672         store_constructor, get_inner_reference, expand_expr_real_1,
2673         try_casesi, try_tablejump): Likewise.
2674         * function.c (expand_function_start): Likewise.
2675         * stmt.c (emit_case_bit_tests, expand_end_case_type,
2676         node_has_low_bound, node_has_high_bound, emit_case_nodes): Likewise.
2677         * stor-layout.c (place_union_field, layout_type): Likewise.
2678         * tree.c (substitute_in_expr, tree_fold_gcd): Likewise.
2679         * varasm.c (copy_constant): Likewise.
2680
2681 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
2682
2683         * c-common.c: Rename all identifiers named `new'.
2684         * c-decl.c: Likewise.
2685         * gensupport.c: Likewise.
2686         * simplify-rtx.c: Likewise.
2687         * c-common.c (disable_builtin_function): Replace a call to xmalloc()
2688         with XNEW().
2689         * gensupport.c (alter_output_for_insn): Replace two calls to xmalloc()
2690         with XNEWVEC().
2691
2692 2004-07-25  Joseph S. Myers  <jsm@polyomino.org.uk>
2693
2694         PR c/15360
2695         * c-decl.c (start_decl): Do not set DECL_EXTERNAL for initialized
2696         declarations until after calling pushdecl.
2697         (grokdeclarator): Set DECL_EXTERNAL for variables based on use of
2698         "extern" and not on whether the declaration is initialized.
2699
2700 2004-07-25  Daniel Jacobowitz  <dan@debian.org>
2701
2702         * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*)
2703         (sparc-*-solaris2*): Include sol2.o and sol2-protos.h.
2704         * config/sol2-c.c: Include "tm.h", "tm_p.h", "toplev.h",
2705         "cpplib.h", "c-pragma.h", "c-common.h".
2706         (solaris_pragma_align, solaris_pragma_init, solaris_pragma_fini)
2707         (solaris_register_pragmas): New functions.
2708         * config/sol2-protos.h: New file.
2709         * config/sol2.c: New file.
2710         * config/sol2.h (SOLARIS_ATTRIBUTE_TABLE, ASM_DECLARE_FUNCTION_SIZE)
2711         (REGISTER_TARGET_PRAGMAS): New macros.
2712         (solaris_pending_aligns, solaris_pending_inits)
2713         (solaris_pending_finis): New variables.
2714         * config/t-sol2 (sol2-c.o): Update dependencies.
2715         (sol2.o): New rule.
2716         * config/i386/i386.c (TARGET_INSERT_ATTRIBUTES): Define in terms of
2717         SUBTARGET_INSERT_ATTRIBUTES.
2718         (ix86_attribute_table): Include SUBTARGET_ATTRIBUTE_TABLE.
2719         * config/i386/sol2.h (SUBTARGET_INSERT_ATTRIBUTES)
2720         (SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define.
2721         * config/sparc/elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine.
2722         * config/sparc/sp64-elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine.
2723         * config/sparc/sol2.h (SUBTARGET_INSERT_ATTRIBUTES)
2724         (SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define.
2725         * config/sparc/sparc.c (sparc_attribute_table): New.
2726         (TARGET_INSERT_ATTRIBUTES): Define in terms of
2727         SUBTARGET_INSERT_ATTRIBUTES.
2728         (TARGET_ATTRIBUTE_TABLE): Define if SUBTARGET_ATTRIBUTE_TABLE
2729         is defined.
2730         * doc/extend.texi (Solaris Pragmas): New section.
2731
2732 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
2733
2734         * c-common.c: Rename all identifiers named `class' to `cl'.
2735         * c-common.h: Likewise.
2736         * c-parse.in: Likewise.
2737         * c-typeck.c: Likewise.
2738         * genmodes.c: Likewise.
2739         * real.c: Likewise.
2740         * real.h: Likewise.
2741         * recog.c: Likewise.
2742         * recog.h: Likewise.
2743         * regrename.c: Likewise.
2744         * tree.h: Likewise.
2745         * c-common.c (builtin_function_2): Change type of 5th parameter from
2746         int to enum built_in_function. Change type of 8th parameter from int
2747         to bool.
2748         * c-decl (builtin_function): Replace call to ggc_alloc_cleared ()
2749         with GGC_CNEW().
2750         * c-typeck.c (convert_arguments): Change type of formal_prec from
2751         int to unsigned int.
2752         * genmodes.c (blank_mode): Make a few negative constants unsigned.
2753         (complete_all_modes, calc_wider_mode, emit_insn_modes_h,
2754         emit_mode_name, emit_mode_class, emit_mode_precision, emit_mode_size,
2755         emit_mode_nunits, emit_mode_wider, emit_mode_mask, emit_mode_inner,
2756         emit_mode_base_align, emit_class_narrowest_mode): Pass an integer
2757         iterator to for_all_modes () instead of an enum because enums can't
2758         be incremented in C++.
2759
2760
2761 2004-07-25  Daniel Jacobowitz  <dan@debian.org>
2762
2763         * regmove.c (optimize_reg_copy_1): Don't try to replace call-used
2764         hard registers.
2765
2766 2004-07-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2767
2768         * tree-ssa-operands.c (get_stmt_operands, get_expr_operands):
2769         Handle ARRAY_RANGE_REF like ARRAY_REF.
2770
2771 2004-07-25  Joseph S. Myers  <jsm@polyomino.org.uk>
2772
2773         * c-typeck.c (digest_init): Don't allow arrays of signed or
2774         unsigned variants of wchar_t to be initialized by wide string
2775         constants.  Do allow arrays of enumerated types compatible with
2776         wchar_t to be initialized by wide string constants.  Refine tests
2777         distinguishing wide and narrow strings and arrays.  Give specific
2778         error for arrays of other integer types initialized by string
2779         constants.
2780         (output_init_element, process_init_element): Check for
2781         INTEGRAL_TYPE_P rather than just for INTEGER_TYPE when
2782         initializing with string constants.
2783
2784 2004-07-25  Richard Henderson  <rth@redhat.com>
2785
2786         * c-decl.c (start_function): Set DECL_ARTIFICIAL and DECL_IGNORED_P
2787         on the RESULT_DECL.
2788         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
2789         * integrate.c (copy_decl_for_inlining): Copy DECL_ARTIFICIAL and
2790         DECL_IGNORED_P to new decl.
2791
2792 2004-07-24  Zack Weinberg  <zack@codesourcery.com>
2793
2794         * config/ia64/ia64.c (general_xfmode_operand)
2795         (destination_xfmode_operand): Delete.
2796         * config/ia64/ia64.h (PREDICATE_CODES): Remove them.
2797         * config/ia64/ia64.md (*movxf_internal): Use general_operand
2798         and destination_operand.
2799
2800 2004-07-24  Alexander Kabaev  <kan@freebsd.org>
2801
2802         * config/ia64/ia64.h (SUBTARGET_EXTRA_SPECS): Default to nothing.
2803         (EXTRA_SPECS): Use SUBTARGET_EXTRA_SPECS.
2804
2805 2004-07-24  Alexander Kabaev  <kan@freebsd.org>
2806             Zack Weinberg  <zack@codesourcery.com
2807
2808         PR 16684
2809         * c-decl.c (diagnose_mismatched_decls): Don't issue a
2810         redundant-declaration warning the first time a builtin is
2811         declared explicitly.
2812
2813 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
2814
2815         * tree.h (staticp): Change return type to bool.
2816
2817 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
2818
2819         * c-common.c (c_staticp): Last episode of the staticp saga.
2820
2821 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
2822
2823         * c-common.h (c_staticp): Change return type from int to bool.
2824         * tree.c (staticp): Likewise.
2825         * langhooks.h (staticp): Likewise.
2826
2827 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
2828
2829         * langhooks-def.h (lhd_staticp): Change return type from int to
2830         bool in prototype to match definition.
2831
2832 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
2833
2834         * system.h (bool, true, false): Don't redefine as preprocessor macros
2835         in C++.
2836
2837 2004-07-24  Roger Sayle  <roger@eyesopen.com>
2838
2839         * expmed.c (init_expmed): A signed modulus by a power of two is
2840         considered cheap if its less than or equal to four instructions.
2841
2842 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
2843
2844         * ggc.h (GGC_NEW, GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR,
2845         GGC_CNEWVAR): New macros.
2846
2847 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
2848
2849         * c-common.c: Convert ATTRIBUTE_UNUSED to ARG_UNUSED in parameter
2850         lists.
2851         * c-decl.c: Likewise.
2852         * c-format.c: Likewise.
2853         * c-lex.c: Likewise.
2854         * c-opts.c: Likewise.
2855         * c-pragma.c: Likewise.
2856         * c-typeck.c: Likewise.
2857         * gencheck.c: Likewise.
2858         * genconditions.c: Likewise.
2859         * genconfig.c: Likewise.
2860         * genflags.c: Likewise.
2861         * gengtype.c: Likewise.
2862         * gensupport.c: Likewise.
2863         * ggc-none.c: Likewise.
2864         * langhooks.c: Likewise.
2865         * statistics.h: Likewise.
2866         * stub-objc.c: Likewise.
2867         * java/decl.c: Likewise.
2868
2869 2004-07-24  Roman Zippel  <zippel@linux-m68k.org>
2870
2871         * config/m68k/m68k.c (output_scc_di): Fix coding style.
2872         (symbolic_operand): Fix prototype.
2873         * config/m68k/m68k.h (PREDICATE_CODES): Add symbolic_operand.
2874         * config/m68k/m68k.md: Add constants for registers a0 and sp and
2875         use them, change from the "{...}" syntax to the simpler {...}
2876         syntax.
2877         (*cfv4_extendqisi2): Fix destination predicate.
2878         * config/m68k/m68k-protos.h: Remove various declarations also
2879         generated via PREDICATE_CODES.
2880
2881 2004-07-23  Mike Stump  <mrs@apple.com>
2882
2883         * c-typeck.c (convert_for_assignment): Tightened up pointer
2884         converstions that differ in signedness.
2885
2886 2004-07-23  Zack Weinberg  <zack@codesourcery.com>
2887
2888         * genmodes.c (make_vector_modes): Mark with ATTRIBUTE_UNUSED.
2889
2890 2004-07-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2891
2892         * tree.def (VIEW_CONVERT_EXPR): Change to class 'r'.
2893         * tree-ssa-operands.c (get_expr_operands, case VIEW_CONVERT_EXPR): New.
2894
2895         * gimplify.c (gimplify_compound_lval): Check for no handled
2896         operations, rather than checking for explicit list of nodes.
2897         (is_gimple_addr_expr_arg_or_indirect): New function.
2898         (gimplify_addr_expr): Call it and handle INDIRECT_REF; remove
2899         redundant setting of TREE_INVARIANT.
2900         (gimplify_expr, case VIEW_CONVERT_EXPR): Call gimplify_compound_lval.
2901         * tree-gimple.c (is_gimple_addr_expr_arg): Call handled_component_p.
2902
2903 2004-07-23  Diego Novillo  <dnovillo@redhat.com>
2904
2905         PR tree-optimization/16688
2906         PR tree-optimization/16689
2907         * tree-ssa-alias.c (setup_pointers_and_addressables): Remove
2908         unnecessary initialization of 'tag'.
2909         (get_tmt_for): Check that the new type tag has the same alias
2910         set as the pointed-to type.
2911         (group_aliases): Only regular variables need to be removed
2912         from the alias set of a name tag.
2913         * tree-ssa-copy.c (may_propagate_copy): Do not allow copy
2914         propagation if the two types are not compatible.
2915         (merge_alias_info): Rename from replace_ssa_names_ann.
2916         Add more checking.
2917         (replace_exp_1): If both arguments are SSA_NAMEs, check that
2918         the propagation can be done.
2919         Only call merge_alias_info on pointers.
2920         (propagate_value): Likewise.
2921         * tree-ssa-copyrename.c: Include langhooks.h.
2922         (copy_rename_partition_coalesce): Call replace_ssa_name_symbol
2923         to do the merging.
2924         Do not coalesce variables with incompatible types.
2925         (rename_ssa_copies): Call replace_ssa_name_symbol.
2926         * tree-ssa.c (verify_ssa_name): Verify that the SSA_NAME has
2927         the same type as the underlying _DECL.
2928         * tree-ssanames.c (replace_ssa_name_symbol): New function.
2929         * tree.h (replace_ssa_name_symbol): Declare.
2930
2931 2004-07-23  Richard Henderson  <rth@redhat.com>
2932
2933         PR c++/16277
2934         * gimplify.c (gimplify_cond_expr): Gimplify TARGET to a min_lval;
2935         unshare it properly.
2936         (gimplify_modify_expr_rhs): Push assignment from a conditional into
2937         the conditional for all non-register types.
2938
2939 2004-07-23  Richard Henderson  <rth@redhat.com>
2940
2941         * expr.c (expand_expr_real_1): Don't handle non-local variables.
2942         * expr.h (fix_lexical_addr): Remove.
2943         * function.c (NEED_SEPARATE_AP): Remove.
2944         (fix_lexical_addr): Remove.
2945         * tree-alias-common.c (get_alias_var_decl): Check TREE_STATIC,
2946         not null decl_function_context.
2947         (create_alias_vars): Likewise.
2948         * tree-cfg.c (make_ctrl_stmt_edges): Don't check for non-local labels.
2949         (simple_goto_p): Likewise.
2950         * tree-dfa.c (add_referenced_var): Don't check for non-local variables.
2951         * tree-ssa-ccp.c (get_default_value): Likewise.
2952         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
2953         * tree.c (needs_to_live_in_memory): Likewise.
2954         * tree-flow-inline.h (may_be_aliased): Move...
2955         * tree-ssa-alias.c (may_be_aliased): ... here.  Enhance check for
2956         when TREE_STATIC variables may be addressable.
2957
2958 2004-07-24  Jakub Jelinek  <jakub@redhat.com>
2959
2960         * Makefile.in (site.exp): Add HOSTCC and HOSTCFLAGS to site.exp.
2961
2962 2004-07-23  Zack Weinberg  <zack@codesourcery.com>
2963
2964         * print-rtl.c (print_rtx <case 'b'>): Don't attempt to print
2965         bitmap contents if GENERATOR_FILE is defined.
2966         * Makefile.in (BUILD_RTL): Remove $(BUILD_PREFIX)bitmap.o.
2967         ($(BUILD_PREFIX_1)bitmap.o): Delete rule.
2968
2969 2004-07-23  Joseph S. Myers  <jsm@polyomino.org.uk>
2970
2971         * c-decl.c (start_function): Form composite type of function types
2972         rather than copying type from previous prototype declaration.
2973
2974 2004-07-23  Janis Johnson  <janis187@us.ibm.com>
2975
2976         * config/rs6000/altivec.h (vec_lvewx, vec_lvehx, vec_lvwbx): Remove
2977         the const qualifier for the second argument in the C++ functions.
2978
2979         * config/rs6000/altivec.h (vec_stvewx, vec_stvehx, vec_stvebx): Use
2980         specific pointer types.
2981
2982         * config/rs6000/altivec.h (vec_vadduwm): (vec_vadduwm, vec_vadduhm,
2983         vec_vaddubm, vec_vsubuwm, vec_vsubuhm, vec_vsububm): Fix types used
2984         for vector bool and/or vector pixel, add C++ and C missing support.
2985         (vec_vaddsws, vec_vaddshs, vec_vaddsbs, vec_vmaxsw, vec_vmaxsh,
2986         vec_vmaxsb, vec_vmrghw, vec_vmrghh, vec_vmrghb, vec_vmrglw, vec_vmrglh,
2987         vec_vmrglb, vec_vminsw, vec_vminsh, vec_vminsb, vec_vpkuwum,
2988         vec_vpkuhum, vec_vspltw, vec_vsplth, vec_vspltb, vec_vsubsws,
2989         vec_vsubshs, vec_vsubsbs, vec_vupklsh, vec_vupkhsh, vec_vupklsb): Add
2990         missing C++ and C support for vector bool and/or vector pixel.
2991         (vec_vadduws, vec_vadduhs, vec_vaddubs, vec_vcmpeqfp, vec_vcmpequw,
2992         vec_vcmpequh, vec_vcmpequb, vec_vcmpgtfp, vec_vcmpgtsw, vec_vcmpgtuw,
2993         vec_vcmpgtsh, vec_vcmpgtuh, vec_vcmpgtsb, vec_vcmpgtub, vec_vmaxuw,
2994         vec_vmaxuh, vec_vmaxub, vec_vminuw, vec_vminuh, vec_vminub,
2995         vec_vsubuws, vec_vsubuhs, vec_vsububs, vec_vupkhpx, vec_vupklpx): Fix
2996         C++ and C types used for vector bool and/or vector pixel.
2997         (vec_st, vec_stl): Add C++ support for vector pixel.
2998         (vec_unpackh, vec_unpackl, vec_any_ge): Fix C++ support for vector bool.
2999         (vec_all_ne): Add C++ support for vector pixel.
3000
3001         * config/rs6000/altivec.h (vec_vcmpgtsh): Fix C++ function name.
3002         (vec_vmulesb): Add missing C++ function.
3003         (vec_perm): Fix type of third argument in C++ function.
3004         (vec_vsum4shs): Fix C++ function name.
3005         (vec_any_ge): Remove C++ functions for unsupported arg combinations.
3006         (vec_vcmpgtsw, vec_vcmpgtuw, vec_minsb, vec_vmsummbm): Fix the
3007         argument passed to the error handler in C macro.
3008         (vec_nmsub): Remove extra parens around argument names in C macro.
3009         (vec_packpx): Add missing parens in C macro.
3010
3011 2004-07-22  Paolo Bonzini  <bonzini@gnu.org>
3012
3013         * machmode.def: Remove vector modes.
3014         * config/alpha/alpha-modes.def: Add supported vector modes.
3015         * config/arm/arm-modes.def: Likewise.
3016         * config/frv/frv-modes.def: Likewise.
3017         * config/i386/i386-modes.def: Likewise.
3018         * config/rs6000/rs6000-modes.def: Likewise.
3019         * config/sh/sh-modes.def: Likewise.
3020
3021 2004-07-23  Matthias Klose  <doko@debian.org>
3022
3023         * intl.c (gcc_init_libintl): Use PACKAGE for the text domain.
3024         * configure.ac: Add AC_DEFINE_UNQUOTED for PACKAGE.
3025         * config.h: Regenerate.
3026         * configure: Likewise.
3027
3028 2004-07-22  Mark Mitchell  <mark@codesourcery.com>
3029
3030         * dwarf2out.c (output_call_frame_info): Set SYMBOL_FLAG_LOCAL on
3031         generated SYMBOL_REFs for labels.
3032         * config/darwin-protos.h (machopic_validate_stub_or_non_lazy_ptr):
3033         Change prototype.
3034         (machopic_stub_name): Remove.
3035         (machopic_indirection_name): New function.
3036         (machopic_mcount_stub_name): Likewise.
3037         (machopic_classify_name): Remove.
3038         (machopic_function_base_sym): New function.
3039         (machpoic_classify_symbol): Likewise.
3040         (machopic_classify_ident): Remove.
3041         (machopic_define_ident): Likewise.
3042         (machopic_define_name): Likewise.
3043         (machopic_name_defined_p): Likewise.
3044         (machopic_ident_defined_p): Likewise.
3045         (darwin_strip_name_encoding): Likewise.
3046         (machopic_define_symbol): New function.
3047         * config/darwin.c (hashtab.h): Include.
3048         (machopic_defined_list): Remove.
3049         (machopic_classify_ident): Likewise.
3050         (machopic_classify_name): Likewise.
3051         (machopic_ident_defined_p): Likewise.
3052         (machopic_define_ident): Likewise.
3053         (machopic_define_name): Likewise.
3054         (machopic_symbol_defined_p): New function.
3055         (machopic_classify_symbol): Likewise.
3056         (machopic_data_defined_p): Use machopic_classify_symbol.
3057         (machopic_define_symbol): New function.
3058         (machopic_function_base_sym): New function.
3059         (machopic_non_lazy_pointers): Remove.
3060         (machopic_non_lazy_ptr_name): Likewise.
3061         (machopic_stubs): Likewise.
3062         (machopic_stub_name): Likewise.
3063         (NON_LAZY_POINTER_SUFFIX): New macro.
3064         (STUB_SUFFIX): Likewise.
3065         (machopic_indirection): New structure.
3066         (machopic_indirections): New variable.
3067         (machopic_indirection_hash): New function.
3068         (machopic_indirection_eq): Likewise.
3069         (machopic_indirection_name): Likewise.
3070         (machopic_mcount_stub_name): New function.
3071         (machopic_validate_stub_or_non_lazy_pointer): Reimplement to use
3072         hash table.
3073         (machopic_indirect_data_reference): Rework to use new functions.
3074         (machopic_indirect_call_target): Likewise.
3075         (machopic_legitimize_pic_address): Likewise.
3076         (machopic_output_indirection): New function.
3077         (machopic_finish): Use it.
3078         (machopic_operand_p): Rework to use new functions.
3079         (darwin_encode_seciton_info): Use SYMBOL_REF_FLAGS.
3080         (darwin_strip_name_encoding): Remove.
3081         (update_non_lazy_ptrs): Remove.
3082         (update_stubs): Likewise.
3083         (darwin_non_lazy_pcrel): Use new functions.
3084         * config/darwin.h (ASM_DECLARE_OBJECT_NAME): Likewise.
3085         (ASM_OUTPUT_LABELREF): Likewise.
3086         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
3087         (MACHO_SYMBOL_FLAG_VARIABLE): New macro.
3088         (MACHO_SYMBOL_FLAG_DEFINED): Likewise.
3089         (TARGET_STRIP_NAME_ENCODING): Do not use
3090         darwin_strip_name_encoding.
3091         (GEN_LAZY_PTR_NAME_FOR_SYMBOL): Do not use
3092         darwin_strip_name_encoding.
3093         * config/i386/darwin.h (FUNCTION_PROFILER): Use
3094         machopic_mcount_stub_name.
3095         * config/i386/i386.c (x86_output_mi_thunk): Use
3096         machopic_indirection_name, not machopic_stub_name.
3097         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Use
3098         machopic_function_base_sym.
3099         (print_operand): Use machopic_classify_symbol.
3100         (rs6000_emit_prologue): Use machopic_function_base_sym.
3101         (output_profile_hook): Do not use machopic_stub_name.
3102         (macho_branch_isalnds): Do not use darwin_strip_name_encoding.
3103
3104 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
3105
3106         PR c/7284
3107         * fold-const.c (extract_muldiv_1): Do not treat signed left shift
3108         as multiplication.
3109
3110 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
3111
3112         * doc/implement-c.texi: New file.
3113         * doc/extend.texi (C Implementation): Move to there.
3114         * doc/gcc.texi: Include implement-c.texi.
3115         * Makefile.in (TEXI_GCC_FILES): Add implement-c.texi.
3116
3117 2004-07-22  Jason Merrill  <jason@redhat.com>
3118
3119         * integrate.c (copy_decl_for_inlining): Remove invisible reference
3120         handling.
3121         * tree-inline.c (setup_one_parameter): Likewise.
3122
3123 2004-07-22  Brian Booth  <bbooth@redhat.com>
3124
3125         * tree-ssa-ccp.c (latticevalue): Add UNKNOWN_VAL.
3126         (substitute_and_fold): Propigate into VUSE operands when possible.
3127         (visit_phi_node): Handle UNKNOWN_VAL latticevalue.
3128         (cp_lattice_meet): Handle merging of latticevalues when
3129         UNKNOWN_VAL is present.
3130         (visit_stmt): Visit assignments with V_MUST_DEFs.
3131         (visit_assignment): Gather ccp information for V_MUST_DEF operands.
3132         (ccp_fold): Deal with RHS' that are constant and virtual.
3133         (evaluate_stmt): Handle UNKNOWN_VAL likely values.
3134         (dump_lattice_value): Dump UNKNOWN_VAL latticevalues.
3135         (initialize): Mark statements with V_MUST_DEFs as VARYING only if the
3136         V_MUST_DEF operand is VARYING. Fix comment and include VOPS when
3137         computing immediate uses.
3138         (set_lattice_value): Disallow a UNKNOWN_VAL->UNDEFINED state
3139         transition.
3140         (replace_vuse_in): New function.
3141         (likely_value): Add check of vuse operands.
3142         (get_default_value): Set the default value of virtually defined
3143         variables to UKNOWN_VAL instead of VARYING.
3144
3145 2004-07-22  Richard Henderson  <rth@redhat.com>
3146
3147         * expr.c (emit_push_insn): Don't use set_mem_attributes.
3148
3149 2004-07-22  Richard Henderson  <rth@redhat.com>
3150
3151         * tree-ssa-live.c (create_ssa_var_map): Avoid defined-but-not-used
3152         variables due to conditional compilation.
3153
3154 2004-07-22  Diego Novillo  <dnovillo@redhat.com>
3155
3156         * tree-into-ssa.c (set_livein_block): Fix typo in comment.
3157         (rewrite_ssa_into_ssa): Start iterating over SSA names at 1.
3158         Release SSA names that have been re-renamed.
3159         * tree-phinodes.c (make_phi_node): Set same TREE_TYPE as the
3160         variable.
3161         * tree-ssa-alias.c (init_alias_info): If aliases have been
3162         computed before, clear existing alias information.
3163         (create_name_tags): Do no fixup PT_ANYTHING pointers.
3164         If the new name tag for a pointer is different than the one it
3165         had before, mark the old tag for renaming.
3166         (replace_may_alias): New function.
3167         (group_aliases): Call it.
3168         (setup_pointers_and_addressables): Always call get_tmt_for.
3169         (maybe_create_global_var): Don't create .GLOBAL_VAR more than
3170         once.
3171         (set_pt_anything): New local function.
3172         (set_pt_malloc): New local function.
3173         (merge_pointed_to_info): Don't merge pointed-to variables from
3174         the original pointer if the destination is pointing to an
3175         unknown location.
3176         (add_pointed_to_expr): Call set_pt_anything and set_pt_malloc.
3177         (add_pointed_to_var): Do not add a variable to the points-to
3178         set if the pointer is already pointing to anywhere.
3179         (collect_points_to_info_r): If the defining statement is a PHI
3180         node, only merge pointed-to information if the argument has
3181         already been visited.
3182         (get_tmt_for): Only create a new tag if the pointer didn't
3183         have one already.
3184         (dump_alias_info): Emit more information.
3185         (dump_points_to_info_for): Likewise.
3186         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't
3187         try to get the annotation of an SSA_NAME.
3188         * tree-ssa-operands.c (add_stmt_operand): Only check for empty
3189         alias sets when checking is enabled.
3190         * tree-ssa-pre.c (need_eh_cleanup): New local variable.
3191         (eliminate): Mark basic blocks that will need
3192         EH information cleaned up.
3193         (init_pre): Split ENTRY_BLOCK->0 if block 0 has more than one
3194         predecessor.
3195         Initialize need_eh_cleanup.
3196         (fini_pre): Call tree_purge_all_dead_eh_edges and
3197         cleanup_tree_cfg if needed.
3198         Free need_eh_cleanup.
3199         * tree-ssa.c (verify_ssa_name): New function.
3200         (verify_def): Call it.
3201         Re-arrange to avoid printing too many error messages.
3202         (verify_use): Likewise.
3203         (verify_phi_args): Likewise.
3204         (verify_flow_insensitive_alias_info): New function.
3205         (verify_flow_sensitive_alias_info): New function.
3206         (verify_alias_info): New function.
3207         (verify_ssa): Call verify_alias_info.
3208         Clear TREE_VISITED on all the SSA_NAMEs before scanning the
3209         program.
3210         Re-arrange to avoid printing too many error messages.
3211         * tree-ssanames.c (make_ssa_name): Clear
3212         SSA_NAME_IN_FREE_LIST.
3213         (release_ssa_name): Never release a default definition.
3214         (release_defs): New function.
3215         * tree.h: Declare it.
3216         * tree-ssa-dce.c (remove_dead_stmt): Call it.
3217
3218 2004-07-22  Diego Novillo  <dnovillo@redhat.com>
3219
3220         * tree-ssa.c (walk_use_def_chains_1): Add new argument IS_DFS.
3221         If true, do a depth-first search.  Do a breadht-first search,
3222         otherwise.
3223         (walk_use_def_chains): Add new argument IS_DFS.
3224         Update all users.
3225         * tree-flow.h (walk_use_def_chains): Update prototype.
3226
3227 2004-07-22  Hans-Peter Nilsson  <hp@axis.com>
3228
3229         * config/cris/cris.md: Tweak formatting.
3230         (asrandb, asrandw, lsrandb, lsrandw, moversideqi, movemsideqi)
3231         (mover2side, moverside, movemside, movei, op3, andu): Replace
3232         live define_peephole:s with define_peephole2 near-equivalents.
3233         Delete the rest.
3234         ("*mov_sidesisf_biap"): Rename from "*mov_sidesi_biap".  Match all
3235         word-size modes.
3236         ("*mov_sidesisf", "*mov_sidesisf_biap_mem", "*mov_sidesisf_mem"):
3237         Similar for "*mov_sidesi", "*mov_sidesi_biap_mem" and
3238         "*mov_sidesi_mem" respectively.
3239
3240 2004-07-22  Paolo Bonzini  <bonzini@gnu.org>
3241
3242         * tree-cfg.c (gimplify_val): Move from tree-complex.c.
3243         (gimplify_build1): Move from tree-complex.c do_unop.
3244         (gimplify_build2): Move from tree-complex.c do_binop.
3245         (gimplify_build3): New.
3246         * tree-complex.c (gimplify_val, do_unop, do_binop): Remove.
3247         Adjust throughout to call the functions above.
3248         * tree-flow.h: Declare the functions above.
3249         * tree-nested.c (gimplify_val): Rename to...
3250         (tsi_gimplify_val): ... this.
3251
3252         * Makefile.in (tree_complex.o): Update dependencies.
3253         (stor-layout.o): Depend on regs.h.
3254         * c-common.c (handle_vector_size_attribute): Update for
3255         vector types without corresponding vector modes.
3256         * expr.c (expand_expr): Treat VECTOR_CST's like CONSTRUCTORS if
3257         a corresponding vector mode is not available.
3258         * print-tree.c (print_node): Print nunits for vector types
3259         * regclass.c (have_regs_of_mode): New.
3260         (init_reg_sets_1): Initialize it and use it instead
3261         of allocatable_regs_of_mode.
3262         * regs.h (have_regs_of_mode): Declare it.
3263         * stor-layout.c (layout_type): Pick a mode for vector types.
3264         * tree-complex.c (build_word_mode_vector_type, tree_vec_extract,
3265         build_replicated_const, do_unop, do_binop, do_plus_minus,
3266         do_negate, expand_vector_piecewise, expand_vector_parallel,
3267         expand_vector_addition, expand_vector_operations_1,
3268         expand_vector_operations, tree_lower_operations,
3269         pass_lower_vector_ssa, pass_pre_expand): New.
3270         (expand_complex_operations, pass_lower_complex): Remove.
3271         * tree-optimize.c (init_tree_optimization_passes): Adjust
3272         pass ordering for changes in tree-complex.c.
3273         * tree-pass.h: Declare new passes.
3274         * tree.c (finish_vector_type): Remove.
3275         (make_vector_type): New.
3276         (build_vector_type_for_mode, build_vector_type): Rewritten.
3277         * tree.def (VECTOR_TYPE): Document where the number of
3278         subparts is stored.
3279         * tree.h (TYPE_VECTOR_SUBPARTS): Use TYPE_PRECISION field.
3280         (make_vector): Remove declaration.
3281
3282 2004-07-21  Richard Henderson  <rth@redhat.com>
3283
3284         * gimple-low.c (expand_var_p): Don't look at TREE_ADDRESSABLE,
3285         TREE_THIS_VOLATILE, may_aliases, or optimization level.
3286         (remove_useless_vars): Dump debugging info.
3287         (expand_used_vars): Move ...
3288         * cfgexpand.c (expand_used_vars): ... here.  Make static.
3289         * tree-flow-inline.h (set_is_used): New.
3290         (set_default_def): Use get_var_ann.
3291         * tree-flow.h: Update decls.
3292         * tree-ssa-live.c (mark_all_vars_used_1, mark_all_vars_used): New.
3293         (create_ssa_var_map): Use it.
3294         * tree-ssa.c (set_is_used): Remove.
3295
3296 2004-07-22  Ben Elliston  <bje@au.ibm.com>
3297
3298         * gdbinit.in: Set a breakpoint on internal_error.
3299
3300 2004-07-21  Richard Henderson  <rth@redhat.com>
3301
3302         * cfgexpand.c (expand_gimple_tailcall): Fix case where we need
3303         to create a new basic block.
3304
3305 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
3306
3307         PR c/15052
3308         * c-decl.c (grokdeclarator): Only pedwarn for qualified void
3309         return type on function definitions.  Move other warnings for
3310         qualified return type to -Wreturn-type.  Do not condition any such
3311         warnings on -pedantic.  Update comments.
3312         (start_function): Only copy function type from previous prototype
3313         declaration if return types are compatible.
3314         * c-typeck.c (function_types_compatible_p): Don't condition
3315         warning for incompatibility of volatile qualifiers on the return
3316         type on -pedantic.  Update comment.
3317         * doc/invoke.texi (-Wreturn-type, -Wextra): Update.
3318
3319 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
3320
3321         * c-typeck.c (set_init_index): Require designator to be of integer
3322         type.
3323
3324 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
3325
3326         PR c/11250
3327         * c-parse.in (init): Change to exprtype.
3328         (primary): Set original_code for STRING to STRING_CST.
3329         Call maybe_warn_string_init for compound literals.
3330         (initdcl, notype_initdcl): Call maybe_warn_string_init.
3331         (initval): Update.
3332         * c-tree.h (maybe_warn_string_init): New.
3333         (pop_init_level, process_init_element): Use struct c_expr.
3334         (struct c_expr): Update comment.
3335         * c-typeck.c (maybe_warn_string_init): New function.
3336         (digest_init): Call it.  Additional parameter strict_string.  All
3337         callers changed.
3338         (output_init_element): Likewise.
3339         (struct constructor_stack): Use struct c_expr for
3340         replacement_value.
3341         (really_start_incremental_init, push_init_level): Update.
3342         (pop_init_level): Update.  Return struct c_expr.
3343         (process_init_level): Update.  Take struct c_expr argument.
3344
3345 2004-07-21  David S. Miller  <davem@nuts.davemloft.net>
3346
3347         * config/sparc/sparc.c (sparc_rtx_costs): Fix typo in previous
3348         commit.
3349
3350 2004-07-21  Eric Christopher  <echristo@redhat.com>
3351
3352         * builtins.c (expand_builtin_setjmp_receiver): Fix comment for code
3353         removal.
3354         * c-decl.c (pop_scope): Ditto.
3355         * calls.c (expand_call): Remove call to current_nesting_level,
3356         update comment accordingly. Remove calls to expand_start_target_temps
3357         and expand_end_target_temps.
3358         * cfgexpand.c (construct_init_block): Remove call to
3359         expand_start_bindings_and_block.
3360         (construct_exit_block): Remove call to expand_end_bindings.
3361         * expr.c (safe_from_p): Remove BIND_EXPR handling.
3362         (expand_expr_real_1): Ditto. Fix formatting.
3363         (expand_vars): Delete.
3364         * stmt.c (POPSTACK): Remove block_stack.
3365         (stmt_status): Remove x_block_stack.
3366         (block_stack): Delete.
3367         (expand_start_bindings_and_block): Ditto.
3368         (expand_start_target_temps): Ditto.
3369         (expand_end_target_temps): Ditto.
3370         (current_nesting_level): Ditto.
3371         (warn_about_unused_variables): Ditto.
3372         (expand_end_bindings): Ditto.
3373         * tree.h: Remove declarations for above.
3374
3375 2004-07-21  Steven Bosscher  <stevenb@suse.de>
3376
3377         * rtl.h (insn_note): Remove NOTE_INSN_PREDICTION.
3378         * rtl.c (note_insn_name): Likewise.
3379     &