OSDN Git Service

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