OSDN Git Service

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