OSDN Git Service

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