1 2004-08-18 James E Wilson <wilson@specifixinc.com>
3 * config/mips/sb1.md (ir_sb1_divsf_1pipe): Renamed from ...1pipes.
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.
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):
21 * config/mips/sr71k.md (ir_sr70_fdiv_sf, ir_sr70_fdiv_df): Likewise.
23 2004-08-18 Robert Bowdidge <bowdidge@apple.com>
25 * config/rs6000/x-darwin: Remove XCFLAGS -mdynamic-no-pic to
26 get regression tester working again.
28 2004-08-18 Zack Weinberg <zack@codesourcery.com>
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.
35 * modulo-sched.c, sched-rgn.c, final.c: NOTE_DISABLE_SCHED_OF_BLOCK
36 renamed to NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
38 2004-08-18 Richard Earnshaw <rearnsha@arm.com>
40 * arm.c (arm_size_rtx_costs): New function.
41 (arm_override_options): Use it if optimizing for space.
43 2004-08-18 Richard Henderson <rth@redhat.com>
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.
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.
71 2004-08-18 Steven Bosscher <stevenb@suse.de>
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
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):
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.
107 2004-08-18 Diego Novillo <dnovillo@redhat.com>
109 * tree-ssa-loop.c (pass_loop_init): Add TODO_dump_func.
110 (pass_loop_done): Likewise.
112 2004-08-18 Andrew Pinski <apinski@apple.com>
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.
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
128 2004-08-18 Matt Austern <austern@apple.com>
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.
134 2004-08-18 Richard Henderson <rth@redhat.com>
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.
142 2004-08-18 Diego Novillo <dnovillo@redhat.com>
144 * tree-dfa.c (add_referenced_var): Only global variables are
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
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
168 (get_nmt_for): Mark call-clobbered tags whose pointer points
170 * tree-ssa-operands.c (opf_kill_def, opf_no_vops): Switch
172 (get_indirect_ref_operands): Always clear OPF_KILL_DEF from
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
179 2004-08-18 J"orn Rennecke <joern.rennecke@superh.com>
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.
190 2004-08-18 Andrew Pinski <apinski@apple.com>
192 * config/darwin.c (machopic_legitimize_pic_address): Only set
193 MEM_READONLY_P in the non TARGET_TOC case.
195 2004-08-18 Zack Weinberg <zack@codesourcery.com>
197 * rtl.def (NIL): Delete.
198 * read-rtl.c (read_rtx): Handle (nil) like (define_constants).
199 Tighten the syntax a little.
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.
210 2004-08-18 Zack Weinberg <zack@codesourcery.com>
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.
217 2004-08-18 Fariborz Jahanian <fjahanian@apple.com>
219 * config/rs6000/altivec.md: Add new patterns for calls to
220 save_world/rest_world functions.
222 * config/rs6000/rs6000-protos.h: (save_world_operation,
223 restore_world_operation) new declarations.
225 * config/rs6000/rs6000.c: (struct rs6000_stack) new world_save_p
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
235 (rs6000_emit_epilogue): Check for world_save_p and generate
236 pattern to call rest_world to restore saved registers.
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.
243 2004-08-18 Caroline Tice <ctice@apple.com>
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
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
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
277 * cfgrtl.c (target.h): Add statement to include this.
278 (rtl_split_block): Make sure newly created bb gets correct
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
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
290 (rtl_verify_flow_info_1): Fix if-condition on test/error
291 condition that fallthru edges are not allowed to cross section
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
298 * ifcvt.c (find_if_case_1): Make sure newly created bb has correct
300 (if_convert): Add targetm.have_named_sections to test.
301 * output.h (unlikely_section_label): Extern declaration for new global
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
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.
340 2004-08-18 Roger Sayle <roger@eyesopen.com>
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.
347 2004-08-18 Kaz Kojima <kkojima@gcc.gnu.org>
349 * config/sh/sh.c (split_branches): Check the result of
351 (sh_output_mi_thunk): Call init_flow if basic_block_info is null.
352 Call rtl_register_cfg_hooks.
354 2004-08-18 Richard Henderson <rth@redhat.com>
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
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 ...
400 * doc/rtl.texi (MEM_READONLY_P): Replace RTX_UNCHANGING_P.
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.
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.
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.
439 2004-08-18 Richard Henderson <rth@redhat.com>
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.
460 2004-08-18 Paolo Bonzini <bonzini@gnu.org>
462 * c4x.c (legitimize_operands): Remove calls to
463 preserve_subexpressions_p.
465 2004-08-18 David Edelsohn <edelsohn@gnu.org>
467 * varasm.c (MAX_OFILE_ALIGNMENT): Move ...
468 * defaults.h (MAX_OFILE_ALIGNMENT): ... here.
470 2004-08-18 Ziemowit Laski <zlaski@apple.com>
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
478 (get_output_file_with_visibility): Treat objc/objc-act.h as a header
479 used by more than one front-end.
481 2004-08-18 Richard Earnshaw <rearnsha@arm.com>
483 * arm.md (addsi3, subsi3, andsi3, iorsi3, movsi, movhi): Rework to
484 avoid use of preserve_subexpressions_p.
486 2004-08-17 Richard Henderson <rth@redhat.com>
489 * tree-sra.c (scalarize_use): Mark all v_defs for !is_output too.
491 2004-08-17 DJ Delorie <dj@redhat.com>
493 * doc/extend.texi: Document new xstormy16 attribute.
495 * config/stormy16/stormy16.c (xstormy16_splittable_below100_operand): New.
496 (xstormy16_splittable_below100_or_register): New.
498 (xstormy16_reorg): New.
499 (TARGET_MACHINE_DEPENDENT_REORG): Define.
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.
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.
514 * config/stormy16/stormy16.c (xstormy16_print_operand): Be more
515 liberal about acceptable 'B' masks.
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.
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.
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.
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.
550 2004-08-17 James E Wilson <wilson@specifixinc.com>
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.
557 * config/mips/mips.md: Add canonical nmadd and nmsub patterns for both
558 normal and -ffast-math code.
560 2004-08-17 Mark Mitchell <mark@codesourcery.com>
563 * doc/invoke.texi (-fkeep-inline-functions): Update documentation.
565 2004-08-17 Robert Bowdidge <bowdidge@apple.com>
567 * config/rs6000/x-darwin: Add -mdynamic-no-pic to gcc build flags.
569 2004-08-17 Andreas Tobler <a.tobler@schweiz.ch>
571 * config/rs6000/darwin.md (*call_nonlocal_darwin64): Add #else clause
572 for non Darwin targets.
573 (*call_value_nonlocal_darwin64): Likewise.
575 2004-08-17 Fariborz Jahanian <fjahanian@apple.com>
577 * config/rs6000/rs6000.c (rs6000_function_value): Check for
578 altivec mode for altivec return register.
580 2004-08-17 David Edelsohn <edelsohn@gnu.org>
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
589 2004-08-17 Dorit Naishlos <dorit@il.ibm.com>
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
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
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
620 2004-08-17 Nathan Sidwell <nathan@codesourcery.com>
622 * objc/objc-act.c (build_protocol_initializer): Fix build_int_cst
624 (generate_protocol_list, handle_impent): Likewise.
626 2004-08-17 Roger Sayle <roger@eyesopen.com>
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.
632 2004-08-17 Daniel Bornstein <danfuzz@milk.com>
635 * arm.md (addsi3_cbranch_scratch): Correct case labels.
637 2004-08-17 Paolo Bonzini <bonzini@gnu.org>
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>.
644 2004-08-17 Paolo Bonzini <bonzini@gnu.org>
646 * configure.ac: Trust toplevel's notion of BISON/FLEX/MAKEINFO.
647 No need to check if in a cross configuration.
648 * configure: Regenerate.
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):
655 * expr.c (get_subtarget): Likewise.
656 * rtl.h (preserve_subexpressions_p): Remove.
657 * stmt.c (preserve_subexpressions_p): Remove.
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.
663 2004-08-16 James E Wilson <wilson@specifixinc.com>
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.
670 2004-08-16 Zack Weinberg <zack@codesourcery.com>
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
681 * configure: Regenerate.
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
689 * rtl.c, varray.c: Include bconfig.h #ifdef GENERATOR_FILE.
691 2004-08-16 Adam Nemet <anemet@lnxw.com>
693 * Makefile.in (LIBS): Move $(LIBIBERTY) after $(BANSHEELIB).
695 2004-08-16 Andrew Pinski <apinski@apple.com>
697 * target-def.h (TARGET_EH_RETURN_FILTER_MODE): Remove
698 extraneous semicolon.
700 2004-08-16 Devang Patel <dpatel@apple.com>
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.
720 2004-08-16 Joseph S. Myers <jsm@polyomino.org.uk>
722 * c-decl.c (grokdeclarator): Allow for function definition where
723 innermost declarator has attributes.
725 2004-08-16 Fariborz Jahanian <fjahanian@apple.com>
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.
735 2004-08-16 Nathanael Nerode <neroden@gcc.gnu.org>
737 * configure.ac: Replace _GCC_TOPLEV_NONCANONICAL_TARGET with
738 ACX_NONCANONICAL_TARGET; remove now-unneeded AC_SUBST.
739 * configure: Regenerate.
741 2004-08-16 Stan Shebs <shebs@apple.com>
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
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
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
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.
763 2004-08-16 Janis Johnson <janis187@us.ibm.com>
765 * doc/extend.texi (AltiVec builtins): Document additional differences
766 from the Motorola AltiVec PIM.
768 2004-08-16 Nathan Sidwell <nathan@codesourcery.com>
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.
774 2004-08-16 Nathanael Nerode <neroden@gcc.gnu.org>
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.
780 2004-08-16 Nathan Sidwell <nathan@codesourcery.com>
782 * calls.c (load_register_parameters): Remove spurious FIXME token.
784 2004-08-15 Ziemowit Laski <zlaski@apple.com>
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.
819 2004-08-15 Andreas Tobler <a.tobler@schweiz.ch>
820 Andrew Pinski <pinskia@physics.uc.edu>
823 * config/rs6000/darwin-tramp.asm (L_abort$stub): Change to new stub
826 2004-08-15 Nathan Sidwell <nathan@codesourcery.com>
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):
857 * except.c (init_eh, assign_filter_values, assign_filter_values):
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):
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):
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):
910 * config/xtensa/xtensa.c (xtensa_va_start,
911 xtensa_gimplify_va_arg_expr): Likewise.
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.
928 2004-08-15 Ben Elliston <bje@au.ibm.com>
930 * vec.h: Comment improvements.
932 2004-08-14 Roger Sayle <roger@eyesopen.com>
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.
948 2004-08-15 Steven Bosscher <stevenb@suse.de>
950 * rtl.c (note_insn_name): Add NOTE_DISABLE_SCHED_OF_BLOCK.
952 2004-08-14 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
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.
958 2004-08-14 Richard Sandiford <rsandifo@redhat.com>
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.
988 2004-08-14 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
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.
994 2004-08-14 Nathan Sidwell <nathan@codesourcery.com>
996 * c-common.c (shorten_compare): Use force_fit_type directly.
998 2004-08-14 Gerald Pfeifer <gerald@pfeifer.com>
999 Dimitri Papadopoulos-Orfanos <papadopo@shfj.cea.fr>
1000 Dave Korn <dk@artimi.com>
1002 * doc/install.texi (Building): Avoid duplicate reference to GNU
1004 (*-*-solaris2*): Do not recommend GNU make any longer. Simplify.
1006 2004-08-14 Richard Henderson <rth@redhat.com>
1008 * config/alpha/alpha.h (PROMOTE_MODE): Don't promote vector types.
1009 * config/alpha/alpha.c (function_value): Use PROMOTE_MODE.
1011 2004-08-13 Richard Henderson <rth@redhat.com>
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.
1018 2004-08-13 James E Wilson <wilson@specifixinc.com>
1020 * config/mips/sb1.md (ir_sb1_divdf_2pipes, ir_sb1_divdf_1pipe):
1021 Correct mode from SFmode to DFmode.
1023 2004-08-13 Ziemowit Laski <zlaski@apple.com>
1025 * config/darwin.h (EXTRA_SECTION_FUNCTIONS): Mark the __sel_fixup,
1026 __cstring_object and __image_info sections with the no_dead_strip
1029 2004-08-13 Roger Sayle <roger@eyesopen.com>
1030 David Billinghurst <David.Billinghurst@riotinto.com>
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.
1037 2004-08-13 Richard Henderson <rth@redhat.com>
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.
1043 2004-08-13 Richard Henderson <rth@redhat.com>
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.
1073 2004-08-13 Richard Sandiford <rsandifo@redhat.com>
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.
1088 2004-08-12 Andrew Pinski <pinskia@physics.uc.edu>
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.
1117 2004-08-13 Daniel Berlin <dberlin@dberlin.org>
1119 * Makefile.in (BOOT_CFLAGS): Remove accidental addition of -dU.
1121 2004-08-13 J"orn Rennecke <joern.rennecke@superh.com>
1123 * sh.md (cbranch define_delay) Use cond_delay_slot for
1124 non-anulled condition too.
1126 2004-08-12 David Edelsohn <edelsohn@gnu.org>
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.
1136 2004-08-12 Zack Weinberg <zack@codesourcery.com>
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.
1142 2004-08-12 Richard Henderson <rth@redhat.com>
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.
1184 2004-08-13 Mark Mitchell <mark@codesourcery.com>
1187 * config/i386/winnt.c (i386_pe_mark_dllexport): Set
1189 (i386_pe_mark_dllimport): Likewise.
1190 (i386_pe_encode_section_info): Likewise, when overriding
1191 dllimport attribute.
1193 2004-08-12 Geoffrey Keating <geoffk@apple.com>
1195 * configure.ac: When testing for flex, nm, ar, and bison, check
1196 that they will actually be built.
1197 * configure: Regenerate.
1199 2004-08-12 Ulrich Weigand <uweigand@de.ibm.com>
1201 * config/s390/s390.h (MAX_FIXED_MODE_SIZE): Define.
1202 (MOVE_MAX_PIECES): Define.
1204 2004-08-12 Devang patel <dpatel@apple.com>
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.
1211 2004-08-12 Janis Johnson <janis187@us.ibm.com>
1213 * config/rs6000/altivec.h (vec_dst): Fix C++ functions whose first
1216 * config/rs6000/rs6000.c (altivec_init_builtins): Fix argument type
1219 * doc/extend.texi (AltiVec builtins): Fix description for recent
1220 changes. Update operation list to match current support.
1222 2004-08-12 Andreas Krebbel <krebbel1@de.ibm.com>
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
1228 (cfun->machine->save_fprs_p): Replaced by cfun_save_high_fprs and
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
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
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.
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
1251 (DYNAMIC_CHAIN_ADDRESS): Adjusted for new stack layouts.
1253 * config/s390/s390.md ("allocate_stack"): Added TARGET_KERNEL_BACKCHAIN
1254 as condition. Adjusted for new stack layout.
1256 * doc/invoke.texi: Added documentation for new option
1257 "-mkernel-backchain" and adjusted documentation of "-mbackchain" and
1260 2004-08-12 Paul Brook <paul@codesourcery.com>
1262 * config/arm/lib1funcs.asm (ARM_FUNC_ALIAS): Also alias _L__name.
1263 (aeabi_uidivmod, aeabi_idivmod): Provide thumb implementation.
1265 2004-08-12 David Daney <ddaney@avtrex.com>
1267 * java/gcj.texi: Add subsection on signal usage.
1269 2004-08-12 David Edelsohn <edelsohn@gnu.org>
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.
1278 2004-08-12 Diego Novillo <dnovillo@redhat.com>
1280 PR tree-optimization/16867
1281 * tree.c (is_global_var): New function.
1282 (needs_to_live_in_memory): Check for TREE_ADDRESSABLE.
1284 * tree.h (DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL): Remove.
1286 (is_global_var): Declare.
1287 * tree-dfa.c (dump_variable): Display global and addressable
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
1295 * tree-gimple.c (is_gimple_reg): Don't check for
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
1309 * tree-ssa-operands.c (get_call_expr_operands): Do not add
1310 clobbering may-defs if the call does not have side effects.
1312 2004-08-12 Jakub Jelinek <jakub@redhat.com>
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):
1330 * config/alpha/alpha.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
1331 * config/i386/cygming.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
1333 * config/i386/i386-interix.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
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.
1339 2004-08-12 Paul Brook <paul@codesourcery.com>
1341 * dwarf2out.h (dwarf2out_frame_finish): Conditionalize outputting eh
1343 * doc/tm.texi: Document interaction between TARGET_UNWIND_INFO and
1346 2004-08-12 Ben Elliston <bje@au.ibm.com>
1349 * config/rs6000/altivec.h: Change vector to __vector throughout.
1350 (Except for the `vector' macro itself).
1352 2004-08-12 Zack Weinberg <zack@codesourcery.com>
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
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.
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.
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.
1403 * recog.h: Delete prototypes of predicate functions.
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.
1412 * config/ia64/ia64.c: All predicate function definitions moved
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.
1418 * config/ia64/ia64.md: All predicates now defined here.
1419 (symbolic_operand): Is now a special predicate.
1421 * config/ia64/ia64.h: Declare ia64_section_threshold.
1422 (PREDICATE_CODES): Delete.
1424 2004-08-12 Richard Henderson <rth@redhat.com>
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.
1431 2004-08-12 Richard Henderson <rth@redhat.com>
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.
1437 2004-08-12 Richard Henderson <rth@redhat.com>
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
1446 2004-08-12 Ziemowit Laski <zlaski@apple.com>
1448 (This patch is part of merge of objc-improvements-branch
1451 * doc/frontends.texi: Mention Objective-C++ in addition to
1453 * doc/install.texi: Add 'obj-c++' to list of configurable
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.
1466 2004-08-12 Alan Modra <amodra@bigpond.net.au>
1468 * config/rs6000/rs6000.c (function_arg_padding): Revert 2004-07-28
1469 and 2004-07-14 changes.
1471 2004-08-12 Paul Brook <paul@codesourcery.com>
1473 * doc/invoke.texi: Fix typo.
1475 2004-08-11 Devang Patel <dpatel@apple.com>
1477 * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add -dead_strip
1478 and -no_dead_strip_inits_and_terms.
1480 * doc/invoke.texi (Darwin Options): Document -dead_strip and
1481 -no_dead_strip_inits_and_terms.
1483 2004-08-11 Paul Brook <paul@codesourcery.com>
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.
1496 2004-08-11 Paul Brook <paul@codesourcery.com>
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.
1509 2004-08-11 James E Wilson <wilson@specifixinc.com>
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.
1515 2004-08-11 David Edelsohn <edelsohn@gnu.org>
1517 * config/rs6000/rs6000.h (MAX_FIXED_MODE_SIZE): Define.
1519 * config/rs6000/rs6000.md (mfcr rlwinm patterns): Set length to 8.
1520 (mfcr rlwinm rlwinm patterns): Set length to 12.
1522 2004-08-11 Andrew MacLeod <amacleod@redhat.com>
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
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.
1565 2004-08-11 Nick Clifton <nickc@redhat.com>
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.
1574 2004-08-10 Zack Weinberg <zack@codesourcery.com>
1576 * stmt.c (expand_return): If asked to return the RESULT_DECL,
1577 just call expand_value_return on result_rtl.
1579 2004-08-10 Richard Henderson <rth@redhat.com>
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
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.
1602 2004-08-10 Richard Henderson <rth@redhat.com>
1604 * stor-layout.c (round_up): Check for 0/1 before dividing.
1605 (round_down): Likewise.
1607 * tree-tailcall.c (suitable_for_tail_opt_p): Also check DECL_EXTERNAL.
1609 2004-08-09 Mark Mitchell <mark@codesourcery.com>
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
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
1685 * config/arm/t-bpabi: New file.
1686 * doc/tm.texi (TARGET_LIBGCC_FUNCS): New entry.
1687 (TARGET_LIB_INT_CMP_BIASED): Likewise.
1689 2004-08-10 David Edelsohn <edelsohn@gnu.org>
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.
1697 2004-08-10 Caroline Tice <ctice@apple.com>
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
1709 2004-08-10 Ulrich Weigand <uweigand@de.ibm.com>
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.
1720 2004-08-10 H.J. Lu <hongjiu.lu@intel.com>
1723 * config/i386/i386.md (*strsetdi_rex_1): Use DI instead of SI.
1725 2004-08-10 Janis Johnson <janis187@us.ibm.com>
1727 * doc/sourcebuild.texi (compat testing): Document available test
1728 framework commands. Use the preferred spelling of DejaGnu.
1730 2004-08-10 Daniel Berlin <dberlin@dberlin.org>
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.
1747 2004-08-10 Andrew MacLeod <amacleod@redhat.com>
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
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
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.
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
1772 * tree-ssa.c (propagate_into_addr): Dont call modify_stmt.
1774 2004-08-10 Jason Merrill <jason@redhat.com>
1777 * function.c (expand_function_start): Handle DECL_BY_REFERENCE on
1780 2004-08-10 Geoffrey Keating <geoffk@apple.com>
1782 * tree-vn.c (val_expr_pair_expr_eq): Compare vuses, to match the
1785 2004-08-10 Roger Sayle <roger@eyesopen.com>
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.
1790 2004-08-10 Paul Brook <paul@codesourcery.com>
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
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.
1809 2004-08-10 Jakub Jelinek <jakub@redhat.com>
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.
1829 * config/i386/i386.h (CLEAR_RATIO): Define.
1831 2004-08-09 Paolo Bonzini <bonzini@gnu.org>
1833 * expr.c (expand_expr_real_1): Add back code that was not dead.
1835 2004-08-09 Andrew Pinski <apinski@apple.com>
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.
1840 2004-08-09 Daniel Jacobowitz <dan@debian.org>
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
1848 (ggc_collect_1): Always collect.
1849 (ggc_collect): Honor always_collect flag. Sum all zones to decide
1851 (SCALE, LABEL): New macros.
1852 (ggc_print_statistics): Add statistics support.
1854 2004-08-09 Roger Sayle <roger@eyesopen.com>
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.
1861 2004-08-09 Paul Brook <paul@codesourcery.com>
1862 Richard Henderson <rth@redhat.com>
1864 * unwind-dw2.c (uw_install_context_1): Update target saved stack
1867 2004-08-09 Geoffrey Keating <geoffk@apple.com>
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
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.
1876 2004-08-09 Jeff Law <law@redhat.com>
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
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.
1905 2004-08-09 Zack Weinberg <zack@codesourcery.com>
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.
1911 2004-08-09 Steven Bosscher <stevenb@suse.de>
1913 * timevar.def (TV_CPROP1, TV_CPROP2, TV_PRE, TV_HOIST, TV_LSM):
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.
1932 2004-08-09 Paolo Bonzini <bonzini@gnu.org>
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
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
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.
1968 2004-08-09 Paolo Bonzini <bonzini@gnu.org>
1970 * expr.c (expand_expr_real_1): Use optab_for_tree_code.
1972 2004-08-09 Paolo Bonzini <bonzini@gnu.org>
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>:
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.
1983 2004-08-08 Mostafa Hagog <mustafa@il.ibm.com>
1984 Ayal Zaks <zaks@il.ibm.com>
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.
1999 2004-08-07 H.J. Lu <hongjiu.lu@intel.com>
2001 * config/i386/i386.c (ix86_expand_clrmem): Revert the last
2004 2004-08-07 H.J. Lu <hongjiu.lu@intel.com>
2006 * config/i386/i386.c (ix86_expand_clrmem): Properly call
2007 gen_strset for 64bit target.
2009 2004-08-07 Olivier Hainque <hainque@act-europe.fr>
2011 * config/vxworks.h (HANDLE_SYSV_PRAGMA): Remove definition.
2013 2004-08-07 Jason Merrill <jason@redhat.com>
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
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.
2030 * c-common.c (c_warn_unused_result): Check TREE_USED before
2031 warning about a CALL_EXPR with an unused value.
2033 2004-08-06 Mark Mitchell <mark@codesourcery.com>
2035 * config/arm/symbian.h (CC1_SPEC): Avoid passing duplicate options
2036 to the compiler. Use -fshort-wchar by default.
2038 2004-08-06 Pat Haugen <pthaugen@us.ibm.com>
2040 * params.def (PARAM_MIN_CROSSJUMP_INSNS): New.
2041 * cfgcleanup.c (try_crossjump_to_edge): Add minimum insn match
2043 * doc/invoke.texi (param): Document min-crossjump-insns.
2045 2004-08-06 Richard Sandiford <rsandifo@redhat.com>
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.
2057 2004-08-06 Paolo Bonzini <bonzini@gnu.org>
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.
2064 2004-08-06 Jakub Jelinek <jakub@redhat.com>
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.
2072 2004-08-06 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
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
2079 2004-08-06 Mark Mitchell <mark@codesourcery.com>
2081 * config/arm/symbian.h (CC1_SPEC): Add -fno-short-enums.
2082 (CC1PLUS_SPEC): Define it to be the same as CC1_SPEC.
2084 2004-08-06 Roman Zippel <zippel@linux-m68k.org>
2086 * config/m68k/m68k.c (post_inc_operand,pre_dec_operand): New.
2087 * config/m68k/m68k.h (PREDICATE_CODES): add post_inc_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.
2094 2004-08-05 Mark Mitchell <mark@codesourcery.com>
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
2110 * config/arm/pe.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define to 1.
2111 * config/i386/cygming.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
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
2120 * config/mcore/mcore.c (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Test it
2122 * config/sh/symbian-pre.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
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.
2129 2004-08-05 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
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):
2135 * tree-ssa-loop.c (tree_loop_optimizer_init): Create loop closed ssa
2137 (tree_ssa_loop_done): Verify loop closed ssa form.
2138 * tree-ssa-loop-im.c (move_computations): Update loop closed ssa form.
2140 2004-08-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
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
2158 2004-08-05 Andrew Pinski <apinski@apple.com>
2160 * objc/objc-act.c (build_objc_string_object): Mark the address
2161 expression as constant.
2163 2004-08-05 David Edelsohn <edelsohn@gnu.org>
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.
2169 2004-08-05 Joseph S. Myers <jsm@polyomino.org.uk>
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.
2175 2004-08-05 Nathan Sidwell <nathan@codesourcery.com>
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.
2187 2004-08-05 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
2189 PR tree-optimization/16864
2190 * tree-tailcall.c (eliminate_tail_call): Do not create phi nodes
2191 for ssa names without default_def.
2193 2004-08-05 Richard Sandiford <rsandifo@redhat.com>
2195 * config/i386/i386.c (ix86_expand_prologue): If the function uses a
2196 frame pointer, restore eax with an ebp-relative address.
2198 2004-08-04 Geoffrey Keating <geoffk@apple.com>
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
2218 2004-08-05 Adam Nemet <anemet@lnxw.com>
2220 * config.gcc (case i[34567]86-*-lynxos*): Update to LynxOS 4.0.
2221 (case rs6000-*-lynxos*): Rename it to powerpc-*-lynxos*. Update
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.
2235 2004-08-05 Joseph S. Myers <jsm@polyomino.org.uk>
2237 * c-common.c (c_stddef_cpp_builtins): Define __INTMAX_TYPE__ and
2239 * c-cppbuiltin.c (builtin_define_stdint_macros): New. Define
2241 (c_cpp_builtins): Call it.
2242 * doc/cpp.texi: Update.
2244 2004-08-04 David Edelsohn <edelsohn@gnu.org>
2246 * config/rs6000/rs6000.c (rs6000_rtx_costs): LABEL_REFs are zero
2249 2004-08-04 Jan Hubicka <jh@suse.cz>
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.
2264 2004-08-04 Zack Weinberg <zack@codesourcery.com>
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.
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.
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.
2290 2004-08-04 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
2291 Jeff Law <law@redhat.com>
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):
2301 (release_ssa_name): Do not release ssa names that may have multiple
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.
2310 2004-08-04 Mark Mitchell <mark@codesourcery.com>
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
2318 (TARGET_DECLSPEC): Define.
2319 * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Remove
2321 * config/i386/i386-interix.h (TARGET_OS_CPP_BUILTINS): Remove
2323 (TARGET_DECLSPEC): Define.
2324 * config/mcore/mcore.h (TARGET_CPU_CPP_BUILTINS): Remove
2326 * config/sh/symbian-pre.h (SUBTARGET_CPP_SPEC): Remove __declspec
2328 * doc/tm.texi (TARGET_DECLSPEC): Document.
2330 * doc/extend.texi: Fix typo in comment.
2332 2004-08-04 Paul Brook <paul@codesourcery.com>
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.
2341 2004-08-03 Nathan Sidwell <nathan@codesourcery.com>
2343 * c-lex.c (narrowest_unsigned_type, narrowest_signed_type): Take
2344 low/high pair. Do range checking directly.
2345 (interpret_integer): Adjust.
2347 2004-08-04 Nick Clifton <nickc@redhat.com>
2349 * config/sh/sh.h (TARGET_SWITCHES): Add no-renesas to select the
2351 * doc/invoke.texi: Document this new switch and also the -mrenesas
2354 2004-08-04 Nathan Sidwell <nathan@codesourcery.com>
2356 * cfglayout.c (insn_locators_initialize): Update the current
2357 location before initializing a location.
2359 2004-08-03 Zack Weinberg <zack@codesourcery.com>
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.
2367 * c-decl.c (record_builtin_type): Call debug_hooks->type_decl
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.
2378 2004-08-03 Nathanael Nerode <neroden@gcc.gnu.org>
2380 * doc/install.texi: Update autoconf version requirements.
2382 2004-08-03 Zack Weinberg <zack@codesourcery.com>
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.
2391 2004-08-03 Zack Weinberg <zack@codesourcery.com>
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.
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.
2409 2004-08-03 Joseph S. Myers <jsm@polyomino.org.uk>
2411 * c-decl.c (implicitly_declare): Diagnose incompatible implicit
2414 2004-08-03 Mike Stump <mrs@apple.com>
2416 * config/darwin-c.c: Don't search in "/Local/Library/Frameworks"
2418 * doc/invoke.texi (Darwin Options): Update to reflect above.
2420 2004-08-03 Roger Sayle <roger@eyesopen.com>
2423 * fold-const.c (extract_muldiv_1) <NOP_EXPR>: Disallow local
2424 truncations, not just global truncations.
2426 2004-08-03 Andrew Pinski <apinski@apple.com>
2429 * loop-iv.c (simplify_using_assignment): Initialize lhs.
2431 2004-08-03 Paul Brook <paul@codesourcery.com>
2433 * gcc/doc/install.texi: Document MPFR requirement.
2435 2004-08-03 Maciej W. Rozycki <macro@linux-mips.org>
2437 * aclocal.m4 (gcc_AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
2438 and mmap() explicitly instead of relying on preset autoconf cache
2440 * configure: Regenerate.
2442 2004-08-03 H.J. Lu <hongjiu.lu@intel.com>
2445 * config.gcc (i[34567]86-*-* | x86_64-*-*): Add i386/t-gmm_malloc
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
2451 * config/i386/t-gmm_malloc: New file.
2452 * config/i386/t-pmm_malloc: Likewise.
2454 * config/i386/xmmintrin.h: Include <mm_malloc.h>.
2456 2004-08-03 H.J. Lu <hongjiu.lu@intel.com>
2457 Tanguy Fautrà <tfautre@pandora.be>
2459 * config/i386/pmm_malloc.h: New file.
2461 2004-08-03 Danny Smith <dannysmith@users.sourceforge.net>
2463 * config/i386/gmm_malloc.h: New file.
2465 2004-08-03 Dale Johannesen <dalej@apple.com>
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.
2473 2004-08-03 Mark Mitchell <mark@codesourcery.com>
2475 * config.gcc (arm*-*-symbianelf*): New target.
2476 * config/arm/symbian.h: New file.
2478 * gthr-gnat.c: Add visibility #pragmas.
2479 * gthr-gnat.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.
2504 2004-08-03 David Edelsohn <edelsohn@gnu.org>
2505 Dale Johannesen <dalej@apple.com>
2506 Roger Sayle <roger@eyesopen.com>
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
2513 2004-08-03 Richard Earnshaw <rearnsha@arm.com>
2515 * config.gcc (strongarm-*, xscale-*): Add t-arm to tmake_files.
2517 2004-08-03 Pat Haugen <pthaugen@us.ibm.com>
2519 * ra-build.c (conflicts_between_webs): For webs that cross a call add
2520 conflicts to regs_invalidated_by_call.
2522 2004-08-03 Paul Brook <paul@codesourcery.com>
2524 * config/arm/arm.c (emit_sfm): Only emit a single frame adjustment.
2526 2004-08-03 Jan Hubicka <jh@suse.cz>
2528 * coverage.c (tree_coverage_counter_ref): Fix computation of the new
2531 2004-08-03 Richard Earnshaw <rearnsha@arm.com>
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.
2538 2004-08-03 Richard Earnshaw <rearnsha@arm.com>
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.
2546 2004-08-03 Paolo Bonzini <bonzini@gnu.org>
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.
2554 2004-08-03 Yossi Markovich <yossim@il.ibm.com>
2555 Mostafa Hagog <mustafa@il.ibm.com>
2557 * config/rs6000/altivec.md (altivec_vnmsubfp): Fix wrong pattern.
2559 2004-08-02 Geoffrey Keating <geoffk@apple.com>
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
2567 2004-08-02 Gabriel Dos Reis <gdr@cs.tamu.edu>
2569 * gdbinit.in: Reflect previous changes to rtunion_def.
2571 2004-08-02 Roger Sayle <roger@eyesopen.com>
2573 * fold-const.c (fold) <TRUNC_MOD_EXPR>: The transformation "X % -Y"
2574 -> "X % Y" is only valid for TRUNC_MOD_EXPR.
2576 2004-08-02 Gabriel Dos Reis <gdr@integrable-solutions.net>
2578 * vec.h (DEF_VEC_P): Add proper cast to uses of vec_o_reserve and
2580 * langhooks.h (lang_hooks::builtin_function): Rename parameter
2581 from "class" to "bt_class".
2583 2004-08-02 Paul Brook <paul@codesourcery.com>
2585 PR rtl-optimization/15068
2586 * flow.c (init_propagate_block_info): Check condition is reversible.
2588 2004-08-02 Gabriel Dos Reis <gdr@integrable-solutions.net>
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
2594 (adjust_field_type, walk_type, write_func_for_structure,
2595 write_root, write_roots): Remove pointless cast.
2597 2004-08-02 J"orn Rennecke <joern.rennecke@superh.com>
2599 * genopinit.c (gen_insn): Check for MODE_COMPLEX_FLOAT patterns for $F.
2601 2004-08-02 Gabriel Dos Reis <gdr@integrable-solutions.net>
2603 * rtl.h (union rtunion_def): Have all members start with the
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
2610 * gengtype.c (adjust_field_rtx_def): Likewise.
2611 * rtlanal.c (loc_mentioned_in_p): Likewise.
2613 2004-08-02 Richard Sandiford <rsandifo@redhat.com>
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.
2625 2004-08-01 Zack Weinberg <zack@codesourcery.com>
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.
2634 2004-08-01 Geoffrey Keating <geoffk@apple.com>
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.
2642 (movti_string): Don't move GPRs to a nonoffsettable address.
2643 (movti_ppc64): Don't move GPRs to a nonoffsettable address. Clean up.
2645 2004-08-02 Ben Elliston <bje@au.ibm.com>
2648 * config/rs6000/altivec.h: Replace typeof with __typeof__.
2650 2004-08-01 Richard Henderson <rth@redhat.com>
2652 * expr.c (expand_expr_real_1) <normal_inner_ref>: Fix crash with
2653 variable sized types.
2655 2004-08-01 Richard Sandiford <rsandifo@redhat.com>
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
2663 2004-08-01 Richard Sandiford <rsandifo@redhat.com>
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.
2669 2004-08-01 Richard Sandiford <rsandifo@redhat.com>
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
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.
2686 2004-07-31 Andrew Pinski <apinski@apple.com>
2689 * mkheaders.in (libsubdir): s/gcc-lib/gcc/.
2691 2004-07-31 Joseph S. Myers <jsm@polyomino.org.uk>
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.
2698 2004-07-30 Geoffrey Keating <geoffk@apple.com>
2699 Fariborz Jahanian <fjahanian@apple.com>
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.
2706 * config/rs6000/rs6000.c (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Default
2708 (rs6000_override_options): Use RS6000_DEFAULT_LONG_DOUBLE_SIZE.
2709 * config/rs6000/darwin.h (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define
2711 * config/rs6000/darwin-ldouble.c (isless): New macro.
2713 (nonfinite): New macro.
2715 (_xlqadd): Completely rewrite.
2716 (_xlqmul): Correct overflow handling.
2717 (_xlqdiv): Correct overflow handling.
2718 * config/rs6000/darwin-ldouble-format: New file.
2720 2004-07-30 Roger Sayle <roger@eyesopen.com>
2721 Richard Henderson <rth@redhat.com>
2723 * config/i386/i386.md: New peephole2's to convert imul by 3, 5 or
2724 9 into the equivalent lea instruction.
2726 2004-07-30 Richard Henderson <rth@redhat.com>
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
2733 * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Fold CONST_DECL.
2735 2004-07-30 Diego Novillo <dnovillo@redhat.com>
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
2742 (collect_points_to_info_r): Only call add_pointed_to_var if
2743 the value is an ADDR_EXPR.
2745 2004-07-30 Diego Novillo <dnovillo@redhat.com>
2747 * tree-ssa-alias.c (create_alias_map_for): Do not get the
2748 alias set of the inner type of ARRAY_TYPEs.
2750 2004-07-29 Diego Novillo <dnovillo@redhat.com>
2752 * tree-ssa-ccp.c (visit_assignment): Move code to prevent
2753 setting a non-register to UNDEFINED right before the call to
2756 2004-07-29 Kaz Kojima <kkojima@gcc.gnu.org>
2758 * config/sh/lib1funcs.asm: Make aliases movstr* for movmem*.
2760 2004-07-29 Diego Novillo <dnovillo@redhat.com>
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.
2766 2004-07-29 Zack Weinberg <zack@codesourcery.com>
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.
2775 2004-07-29 Mark Mitchell <mark@codesourcery.com>
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
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
2788 2004-07-29 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
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.
2794 2004-07-29 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
2796 * cfgloop.c (update_latch_info): Update dominator of the new block.
2797 (canonicalize_loop_headers, flow_loops_find): Do not free dominance
2799 * dominance.c (verify_dominators): Check that the dominance tree is
2801 (recount_dominator): Ignore unreachable blocks.
2802 (iterate_fix_dominators): Cleanup old dominance information before
2805 2004-07-29 Diego Novillo <dnovillo@redhat.com>
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.
2812 2004-07-29 Joseph S. Myers <jsm@polyomino.org.uk>
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.
2818 2004-07-29 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2820 * pa.c (output_movb): Correct typo.
2822 2004-07-29 Pat Haugen <pthaugen@us.ibm.com>
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.
2831 2004-07-29 Nathan Sidwell <nathan@codesourcery.com>
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
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.
2843 * c-decl.c (complete_array_type): Don't gratuitously copy
2844 maxindex. Check it always has a type.
2846 2004-07-29 Steven Bosscher <stevenb@suse.de>
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.
2852 * config/alpha/alpha.c (alpha_expand_mov): Remove old RTL
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.
2859 2004-07-29 Alexandre Oliva <aoliva@redhat.com>
2861 Introduce sh2a support.
2862 2004-07-29 Alexandre Oliva <aoliva@redhat.com>
2863 * config.gcc: Build multilibs for sh2a and sh2a-single by
2865 * config/sh/sh.h (SUPPORT_SH2A, SUPPORT_SH2A_SINGLE): Define by
2866 default. Split their tests out of the corresponding SH4
2868 * config/sh/t-sh (MULTILIB_MATCHES): Don't ever use SH4 or SH4a
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>
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__
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__
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.
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.
2926 2004-07-28 Alexandre Oliva <aoliva@redhat.com>
2928 * config/frv/frv.md (movqi_internal, movhi_internal,
2929 movsi_internal): Add backup alternatives for memory inputs.
2931 2004-07-28 Matt Austern <austern@apple.com>
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.
2940 2004-07-28 Eric Christopher <echristo@redhat.com>
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.
2965 2004-07-28 Zack Weinberg <zack@codesourcery.com>
2967 * tree.h (enum tls_model): Move ...
2968 * coretypes.h: ... here.
2970 2004-07-28 Richard Sandiford <rsandifo@redhat.com>
2972 * config/frv/frv.h (EPILOGUE_USES): New. Use LR.
2974 2004-07-28 Richard Sandiford <rsandifo@redhat.com>
2976 * cse.c (validate_canon_reg): New function, split out from...
2977 (canon_reg): ...here. Use validate_canon_reg for both 'e' and 'E'.
2979 2004-07-28 Diego Novillo <dnovillo@redhat.com>
2981 * tree-ssa-alias.c (maybe_create_global_var): Don't just
2982 return if .GLOBAL_VAR has been created.
2984 2004-07-28 Diego Novillo <dnovillo@redhat.com>
2986 * tree-ssa.c (verify_flow_insensitive_alias_info): Process
2987 every variable that may have aliases, not just tags.
2989 2004-07-28 Aldy Hernandez <aldyh@redhat.com>
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.
2996 * config/rs6000/spe.md ("e500_flip_gt_bit"): Rename to
2999 * config/rs6000/rs6000-protos.h: Rename output_e500_flip_gt_bit to
3000 output_e500_flip_eq_bit.
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.
3009 2004-07-28 Richard Sandiford <rsandifo@redhat.com>
3011 * gcov.c (function_summary): Add missing \n.
3013 2004-07-28 Alexandre Oliva <aoliva@redhat.com>
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
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
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
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
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
3103 2004-07-28 Diego Novillo <dnovillo@redhat.com>
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.
3123 (init_alias_info): Do not mark all type tags for renaming
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
3130 2004-07-28 Diego Novillo <dnovillo@redhat.com>
3132 PR tree-optimization/16705
3133 * tree-ssa-alias.c (create_global_var): Set DECL_EXTERNAL on
3136 2004-07-27 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3138 * expr.c (expand_expr_real_1, case PARM_DECL): Remove obsolete error
3141 * gimplify.c (maybe_with_size_expr): If already have WITH_SIZE_EXPR,
3142 don't make another one.
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
3152 2004-07-27 Richard Henderson <rth@redhat.com>
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.
3163 2004-07-28 Alan Modra <amodra@bigpond.net.au>
3165 * config/rs6000/rs6000.c (function_arg_padding): Pad SFmode upwards.
3167 2004-07-27 Richard Henderson <rth@redhat.com>
3169 * function.c (assign_stack_local_1): Widen alignment to HOST_WIDE_INT
3172 2004-07-27 Zack Weinberg <zack@codesourcery.com>
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.
3193 2004-07-27 Steven Bosscher <stevenb@suse.de>
3195 * cfgexpand.c (tree_expand_cfg): Fix comment.
3197 * calls.c (expand_call): Ignore rtx_equal_function_value_matters.
3198 * function.c (purge_single_hard_subreg_set, purge_hard_subreg_sets):
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):
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.
3215 * except.c (finish_eh_generation): Don't call cfg_cleanup from here.
3216 * passes.c (rest_of_handle_eh): Do it here.
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.
3222 2004-07-27 Brian Booth <bbooth@redhat.com>
3224 * tree-optimize.c (register_one_dump_file): Update condition that uses
3226 (dup_pass_1): Replace with...
3227 (next_pass_1): This.
3228 (NEXT_PASS): Call next_pass_1.
3230 (init_tree_optimization_passes): Remove uses of DUP_PASS.
3231 (execute_one_pass): Update condition that uses
3233 * tree-pass.h (tree_opt_pass): Declare static_pass_number as a signed
3236 2004-07-27 Nick Clifton <nickc@redhat.com>
3238 * config/m32r/m32r.c: Include integrate.h in order to get the
3239 prototype for get_hard_reg_initial_val().
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.
3246 2004-07-27 Diego Novillo <dnovillo@redhat.com>
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
3256 2004-07-27 Richard Sandiford <rsandifo@redhat.com>
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.
3276 2004-07-26 Eric Christopher <echristo@redhat.com>
3278 * tree-dfa.c (add_referenced_var): Register initializers of global
3281 2004-07-26 Paolo Bonzini <bonzini@gnu.org>
3283 * config/i386/i386.c (function_arg): Always treat 8-
3284 and 16-byte wide vectors the same, even if MMX/SSE
3286 (contains_128bit_aligned_vector_p): Add comment.
3288 2004-07-26 J"orn Rennecke <joern.rennecke@superh.com>
3290 * ra.h (enum node_type): Rename to:
3291 (enum ra_node_type).
3292 * ra-colorize.c: Likewise.
3294 2004-07-26 Richard Sandiford <rsandifo@redhat.com>
3296 * cfgcleanup.c (try_simplify_condjump): Call update_forwarder_flag
3297 after simplifying the jump.
3299 2004-06-26 Richard Henderson <rth@redhat.com>
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.
3314 2004-07-26 Tom Tromey <tromey@redhat.com>
3316 * tree.h: Fix typo in comment.
3318 2004-07-26 Daniel Jacobowitz <dan@debian.org>
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.
3326 2004-07-26 Richard Sandiford <rsandifo@redhat.com>
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.
3343 2004-07-25 David Edelsohn <edelsohn@gnu.org>
3346 * config/rs6000/rs6000.md (movdi_internal64): Further disparage
3349 2004-07-24 Nathan Sidwell <nathan@codesourcery.com>
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.
3359 2004-07-26 Falk Hueffner <falk@debian.org>
3361 * config/alpha/alpha.c (alpha_rtx_cost_data): Tweak int_div
3364 2004-07-25 Roger Sayle <roger@eyesopen.com>
3366 * config/i386/i386.c (output_fp_compare): Use ffreep to pop top
3367 value off of the stack if TARGET_USE_FFREEP.
3369 2004-07-26 Bernardo Innocenti <bernie@develer.com>
3371 * gengtype.c (oprintf): Replace xrealloc () with XRESIZEVEC ().