OSDN Git Service

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