1 2004-06-29 J"orn Rennecke <joern.rennecke@superh.com>
3 * cfglayout.c (fixup_reorder_chain): Don't do anything for
4 e_fall->dest == EXIT_BLOCK_PTR.
6 2004-06-28 Richard Henderson <rth@redhat.com>
8 * tree-cfg.c (verify_stmt): Add last_in_block parameter. Verify
9 that eh stmts can throw.
10 (verify_stmts): Update verify_stmt call.
11 (tree_purge_dead_eh_edges, tree_purge_all_dead_eh_edges): New.
12 * tree-eh.c (remove_stmt_from_eh_region): New.
13 (lower_eh_constructs): Fix throw_stmt_table delete routine.
14 (tree_could_trap_p): Match may_trap_p.
15 (maybe_clean_eh_stmt): New.
16 * tree-flow.h: Update decls.
17 * tree-ssa-ccp.c (pass_ccp): Add TODO_verify_stmts.
18 (substitute_and_fold): Clean eh edges.
19 * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Handle
21 * tree-ssa-dom.c (need_eh_cleanup): New.
22 (tree_ssa_dominator_optimize): Allocate it. Cleanup eh edges.
23 (optimize_stmt): Cleanup eh stmts; set need_eh_cleanup.
25 2004-06-29 Alan Modra <amodra@bigpond.net.au>
27 * function.c (assign_parms): Don't abort with zero size stack
28 parm failing the PARM_BOUNDARY check.
30 2004-06-28 Diego Novillo <dnovillo@redhat.com>
32 * common.opt (ftree-fre): New flag.
33 * flags.h (flag_tree_fre): Declare.
34 * opts.c (decode_options): Set.
35 * timevar.def (TV_TREE_FRE): Define.
36 * tree-flow-inline.h (may_propagate_copy): Re-arrange for
37 readability. Handle destinations that are not SSA_NAMEs.
38 * tree-flow.h (struct ptr_info_def): Move from tree.h
39 (cprop_into_stmt, cprop_into_successor_phis): Remove.
40 (vn_compute, vn_lookup_or_add, vn_add, vn_lookup): Add
41 vuse_optype parameter.
42 * tree-pass.h (pass_fre): Declare.
43 * tree-ssa-copy.c (cprop_operand): Move to tree-ssa-dom.c
44 (cprop_into_stmt): Likewise.
45 (cprop_into_successor_phis): Likewise.
46 * tree-ssa-dom.c (eliminate_redundant_computations): Fix
47 argument ordering in call to may_propagate_copy.
48 * tree-ssa-pre.c (is_undefined_value): Assume hard registers
50 (add_to_sets): New local function.
51 (create_value_expr_from): New local function.
52 (compute_avail): Call them.
53 (eliminate): Don't ignore statements with virtual operands.
54 (init_pre): New local function.
55 (fini_pre): New local function.
56 (execute_pre): Call them.
57 Add argument DO_FRE. Don't do insertion if DO_FRE is true.
58 (do_pre): New function.
59 (do_fre): New function.
60 (gate_fre): New function.
62 * tree-ssa.c (init_tree_ssa): Don't call vn_init.
63 (delete_tree_ssa): Don't call vn_delete.
64 * tree-vn.c (val_expr_pair_d): Add documentation.
65 (vn_compute): Add VUSES argument to incorporate in computing
66 hash values. Update all callers.
67 (expressions_equal_p): Call operand_equal_p with
69 (vn_add): Add VUSES argument. Update all callers.
70 (vn_lookup): Likewise.
71 (vn_lookup_or_add): Likewise.
72 * doc/invoke.texi: Document -ftree-fre and -fdump-tree-fre.
74 2004-06-28 Steven Bosscher <stevenb@suse.de>
76 * config/m32r/m32r.c (m32r_sched_odd_word_p, m32r_adjust_cost,
77 m32r_sched_init, m32r_sched_reorder, m32r_variable_issue): Remove.
78 (TARGET_SCHED_ADJUST_COST, TARGET_SCHED_VARIABLE_ISSUE,
79 TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Don't define.
80 * config/m32r/m32r.md: Rewrite the pipeline description as a DFA.
82 2004-06-28 Richard Henderson <rth@redhat.com>
84 * tree.def (REALPART_EXPR, IMAGPART_EXPR): Change class to 'r'.
85 * fold-const.c (operand_equal_p <case 'r'>): Add REALPART_EXPR,
87 * tree-dump.c (dequeue_and_dump): Handle REALPART_EXPR and
88 IMAGPART_EXPR explicitly.
89 * tree-inline.c (estimate_num_insns_1): Don't handle REALPART_EXPR
90 and IMAGPART_EXPR specially.
91 * tree.c (build1_stat): Copy TREE_THIS_VOLATILE into class 'r'.
93 2004-06-28 J"orn Rennecke <joern.rennecke@superh.com>
95 * config.gcc (sh*-*elf*): Remove dead assignment of sh_multilibs.
97 2004-06-28 Joseph S. Myers <jsm@polyomino.org.uk>
99 * builtins.def (execl, execlp, execle, execv, execvp, execve,
100 fork): Change to DEF_EXT_LIB_BUILTIN.
102 2004-06-28 Roger Sayle <roger@eyesopen.com>
104 * expmed.c (expand_smod_pow2): New function to expand signed
105 remainder by a constant power of 2, such as "x % 16".
106 (expand_divmod): Call new expand_smod_pow2 when appropriate.
107 Minor corrections to comments, e.g. wrapping long lines.
109 2004-06-28 Ulrich Weigand <uweigand@de.ibm.com>
111 * Makefile.in (vec.o): Fix dependencies.
113 2004-06-28 Andreas Tobler <a.tobler@schweiz.ch>
115 * Makefile.in: Fix parallel make dependency problem on vec.o.
117 2004-06-28 Dhananjay Deshpande <dhananjayd@kpitcummins.com>
120 * config/h8300/h8300.h (ASM_OUTPUT_ALIGNED_BSS): Define.
122 2004-06-28 Nathan Sidwell <nathan@codesourcery.com>
124 * tree.h (tree_check_failed): Make varadic.
125 (tree_not_check_failed): New prototype.
126 (tree_check2_failed, tree_check3_failed,
127 tree_check4_failed, tree_check5_failed): Remove.
128 (TREE_CHECK, TREE_CHECK2, TREE_CHECK3, TREE_CHECK4,
129 TREE_CHECK5): Adjust.
130 (TREE_NOT_CHECK, TREE_NOT_CHECK2, TREE_NOT_CHECK3, TREE_NOT_CHECK4,
131 TREE_NOT_CHECK5): New.
132 (TREE_VEC_ELT_CHECK, PHI_NODE_ELT_CHECK, TREE_OPERAND_CHECK_CODE,
133 TREE_RTL_OPERAND_CHECK): Adjust.
134 * tree.c (tree_check_failed): Make varadic.
135 (tree_not_check_failed): New.
136 (tree_check2_failed, tree_check3_failed,
137 tree_check4_failed, tree_check5_failed): Remove.
139 2004-06-28 Ulrich Weigand <uweigand@de.ibm.com>
141 * combine.c (can_combine_p): Do not prevent building insns that use
142 and clobber the same fixed hard register.
143 (reg_dead_at_p): Likewise.
145 2004-06-28 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
147 * tree-sra.c (is_sra_candidate_ref): Remove second arg; all callers
149 (is_sra_candidate_complex_ref): New function.
150 (scalarize_modify_expr): Call it and check for LHS also.
152 * tree-pretty-print.c (dump_function_declaration): New.
153 (dump_generic_node, case FUNCTION_TYPE): Call it.
154 (dump_generic_node, case RECORD_TYPE): Don't output dup semicolon.
155 (dump_generic_node, case DECL_EXPR): New case.
156 (dump_generic_node, case PLACEHOLDER_EXPR): Handle.
157 (print_declaration): Handle type and function declarations.
159 * tree-nested.c (create_tmp_var_for): Allow ARRAY_TYPE.
160 (convert_nonlocal_reference, convert_local_reference): Properly
161 convert nest of handled component references.
163 2004-06-28 Nathan Sidwell <nathan@codesourcery.com>
165 * vec.h, vec.c: New, type safe vector API.
166 * Makefile.in (OBJS-common): Add vec.o.
168 (gengtype-lex.o): Depend on vec.h.
170 2004-06-28 Paolo Bonzini <bonzini@gnu.org>
172 * fold-const.c (fold_cond_expr_with_comparison): Add ARG1
173 parameter. Use it instead of ARG00 to produce the result.
175 2004-06-28 Alexandre Oliva <aoliva@redhat.com>
177 * config/mn10300/mn10300-protos.h (legitimate_address_p): Declare.
178 * config/mn10300/mn10300.c (legitimate_address_p): New. Test that
179 index is legitimate, compared with code moved from...
180 * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): here.
181 (REG_STRICT): Define, according to REG_OK_STRICT.
182 (REGNO_IN_RANGE_P, REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_SP_P,
183 REGNO_EXTENDED_P, REGNO_AM33_P, REGNO_FP_P): Introduce strict
185 (REGNO_STRICT_OK_FOR_BASE_P, REGNO_STRICT_OK_FOR_BIT_BASE_P,
186 REGNO_STRICT_OK_FOR_INDEX_P): New.
187 (REGNO_OK_FOR_BASE_P, REG_OK_FOR_BASE_P, REGNO_OK_FOR_BIT_BASE_P,
188 REG_OK_FOR_BIT_BASE_P, REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_P,
189 RTX_OK_FOR_BASE_P): Use them.
191 2004-06-28 Ben Elliston <bje@au.ibm.com>
193 * doc/cfg.texi (Basic Blocks): Define dominators.
195 2004-06-27 Andrew Pinski <pinskia@physics.uc.edu>
198 * c-common.c (warn_for_collisions_1): Warn for only decls which
202 * c.opt (Wsequence-point): Enable for C++ and ObjC++.
205 * c-decl.c (start_decl): Check for null types.
207 2004-06-27 David Edelsohn <edelsohn@gnu.org>
209 * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
210 Accept TOC addresses.
212 2004-06-27 Ulrich Weigand <uweigand@de.ibm.com>
214 * config/s390/s390-protos.h (s390_load_got): Update prototype.
215 * config/s390/s390.c (struct machine_function): Add member base_reg.
216 (s390_decompose_address): Accept UNSPEC_LTREF. Simplify logic.
217 (s390_split_branches): Annotate late pool references.
218 (annotate_constant_pool_refs): New function.
219 (find_constant_pool_ref): Work on annotated pool references.
220 (replace_constant_pool_ref): Likewise. Use explicit base.
221 (replace_ltrel_base): Use explicit base.
222 (s390_mainpool_start): Reflect main_pool pattern change.
223 (s390_mainpool_finish): Use base register from main_pool.
224 Update calls to replace_ltrel_base and replace_constant_pool_ref.
225 (s390_chunkify_start): Use base_reg from struct machine_function.
226 (s390_chunkify_finish): Remove base_reg argument. Update calls
227 to replace_ltrel_base and replace_constant_pool_ref.
228 (s390_reorg): Don't decide upon base register. Update calls.
229 (s390_load_got): Remove MAYBE_DEAD handling. Do not emit insns
230 but return sequence instead.
231 (s390_emit_prologue): Decide upon base register to use. Annotate
232 all literal pool references. Adapt to main_pool pattern change.
233 Update s390_load_got call; move MAYBE_DEAD handling here.
234 (s390_emit_epilogue): Annotate late literal pool references.
235 Remove barrier before register restore instruction.
236 * config/s390/s390.md (UNSPEC_LTREF): New constant.
237 ("builtin_setjmp_receiver"): Update s390_load_got call.
238 ("main_pool"): Explicitly reference base register.
240 2004-06-27 Roger Sayle <roger@eyesopen.com>
242 * fold-const.c (fold) <BIT_IOR_EXPR>: Optimize ~X|X and X|~X as -1.
243 <BIT_XOR_EXPR>: Optimize ~X|X and X|~X as -1.
244 <BIT_AND_EXPR>: Optimize ~X&X and X&~X as 0.
245 <TRUTH_AND_EXPR, TRUTH_ANDIF_EXPR>: Optimize !X&&X and X&&!X as false.
246 <TRUTH_OR_EXPR, TRUTH_ORIF_EXPR>: Optimize !X||X and !X||X as true.
247 <TRUTH_XOR_EXPR>: Optimize !X^X and X^X! as true. Now that
248 TRUTH_XOR_EXPR is a commutative tree code, don't test whether arg0
251 2004-06-26 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
253 * c-common.c (c_safe_from_p, c_walk_subtrees): Deleted.
254 * c-common.def (DECL_STMT): Remove.
255 * c-common.h (DECL_STMT_DECL): Deleted.
256 (COMPOUNT_LITERAL_EXPR_DECL): Use DECL_EXPR_DECL.
257 (c_safe_from_p, c_walk_subtrees): Deleted.
258 * c-decl.c, c-parse.in, c-pretty-print.c: DECL_STMT now DECL_EXPR.
259 * c-dump.c (c_dump_tree, case DECL_STMT): Deleted.
260 * c-gimplify.c (gimplify_decl_stmt): Deleted.
261 (gimplify_compound_literal_expr): Use DECL_EXPR_DECL
262 and gimplify_and_add.
263 (c_gimplify_expr, case DECL_EXPR): New case.
264 (c_gimplify_expr, case DECL_STMT): Deleted.
265 * c-lang.c (LANG_HOOKS_SAFE_FROM_P): Likewise.
266 (LANG_HOOKS_TREE_INLINING_WALK_SUBTREES): Likewise.
267 * expr.c (safe_from_p, case 's'): New case.
268 * gimplify.c (gimplify_decl_expr): New function.
269 (gimplify_expr, case DECL_EXPR): New case.
270 * tree-inline.c (walk_tree): Walk into all fields of a type and
271 decl only if they are in a DECL_EXPR.
272 (mark_local_for_remap_r): Minor code cleanup.
273 * tree-outof-ssa.c (discover_nonconstant_array_refs_r): Add else.
274 * tree.c (has_cleanups, case DECL_EXPR): New case.
275 * tree.def (DECL_EXPR): New code.
276 * tree.h (DECL_EXPR_DECL): New macro.
278 * objc/objc-lang.c (LANG_HOOKS_SAFE_FROM_P): Deleted.
280 2004-06-26 Andrew Pinski <pinskia@physics.uc.edu>
283 * doc/install.texi: Document non-standard CFLAGS and bootstrap
284 failures and warnings.
286 2004-06-26 Andrew Haley <aph@redhat.com>
288 * emit-rtl.c (set_mem_attributes_minus_bitpos): Check
289 TREE_THIS_NOTRAP when setting MEM_NOTRAP_P.
290 * tree-eh.c (tree_could_trap_p): Check TREE_THIS_NOTRAP.
291 * tree.h (TREE_THIS_NOTRAP): New.
293 2004-06-26 Kaz Kojima <kkojima@gcc.gnu.org>
295 * genattrtab.c (write_test_expr): Put a unsigned cast before
296 the first operand for GEU, GTU, LEU and LTU.
298 2004-06-26 Kazu Hirata <kazu@cs.umass.edu>
300 * c-typeck.c, cfgexpand.c, ddg.c, ddg.h, df.c, fold-const.c,
301 gcov.c, gimplify.c, modulo-sched.c, passes.c, tree-cfg.c,
302 tree-mudflap.c, tree-nrv.c, tree-outof-ssa.c, tree-ssa-dom.c,
303 tree-ssa-dse.c, tree-ssa-operands.c, tree-ssa-pre.c,
304 tree-tailcall.c: Fix comment typos. Follow spelling
307 2004-06-25 Eric Christopher <echristo@redhat.com>
309 * config/mips/mips.md: Add back scheduling exclusion info.
311 2004-06-25 Roger Sayle <roger@eyesopen.com>
313 * ifcvt.c (seq_contains_jump): Delete function.
314 (end_ifcvt_sequence): Replace call to seq_contains_jump with an
315 inline test for a jump instruction in the existing "insn" loop.
316 (block_fallthru): Document function.
318 2004-06-25 Philip Blundell <philb@gnu.org>
321 * loop.c (scan_loop): Do not move user-specified register
324 2004-06-25 DJ Delorie <dj@redhat.com>
326 * c-common.h (warn_cast_qual, warn_missing_format_attribute,
327 warn_pointer_arith, warn_missing_prototypes, warn_parentheses,
328 warn_missing_braces, warn_sign_compare, warn_long_long,
329 warn_redundant_decls, warn_float_equal, warn_char_subscripts,
330 warn_conversion, warn_format_y2k, warn_format_extra_args,
331 warn_format_zero_length, warn_format_nonliteral,
332 warn_format_security, mesg_implicit_function_declaration,
333 warn_bad_function_cast, warn_traditional,
334 warn_declaration_after_statement, warn_strict_prototypes,
335 warn_missing_declarations, warn_nested_externs,
336 warn_sequence_point, warn_init_self, warn_div_by_zero,
337 warn_implicit_int, warn_nonnull, warn_old_style_definition,
338 warn_selector, warn_undeclared_selector, warn_protocol,
339 warn_abi, warn_invalid_offsetof, warn_ctor_dtor_privacy,
340 warn_overloaded_virtual, warn_nonvdtor, warn_reorder,
341 warn_synth, warn_pmf2ptr, warn_ecpp, warn_sign_promo,
342 warn_old_style_cast, warn_nontemplate_friend,
343 warn_deprecated): Remove explicit declarations.
344 * c-common.c: Likewise, remove explicit definitions.
345 * c-opts.c: Likewise, remove explicit assignments.
346 * c.opts: Likewise, add implicit declare/define/assign.
348 2004-06-25 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
350 * gimplify.c (lookup_tmp_var): Set TREE_READONLY in is_formal case.
351 (build_addr_expr_with_type): Deleted.
352 (build_addr_expr): Deleted; callers changed to build_fold_addr_expr.
353 (gimplify_compound_lval): Make two passes over reference nest.
355 * tree-nested.c (build_addr): Merge real/imagpart with
357 (convert_nonlocal_reference, convert_local_reference): Process extra
358 args to COMPONENT_REF and ARRAY_REF.
359 * tree-outof-ssa.c (discover_nonconstant_array_refs_r): Check for
360 lower bound and field offset being constant.
362 2004-06-25 Mark Mitchell <mark@codesourcery.com>
365 * alias.c (get_alias_set): Adjust setting of
366 DECL_POINTER_ALIAS_SET for pointers to aggregates.
368 2004-06-24 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
370 * tree-inline.c (remap_type): Arrange to have just one pointer type
371 for each type, mode, and 'can alias' value.
372 (setup_one_parameter): Remap type when making VAR_DECL for PARM_DECL.
373 (estimate_num_insns_1): Minor code reformatting.
374 (inline_forbidden_p_1): Likewise; add; missing return statement.
376 2004-06-25 Roger Sayle <roger@eyesopen.com>
379 * ifcvt.c (unshare_ifcvt_sequence): Rename to end_ifcvt_sequence.
380 Use get_isns and end_sequence instead of accepting a seq argument.
381 Scan the instruction sequence for unrecognizable or jump insns.
382 (noce_try_move, noce_try_store_flag, noce_try_store_flag_constants,
383 noce_try_addcc, noce_try_store_flag_mask, noce_try_cmove,
384 noce_try_cmove_arith, noce_try_minmax, noce_try_abs,
385 noce_try_sign_mask): Use end_ifcvt_sequence to factor common code.
387 2004-06-24 Jeff Law <law@redhat.com>
389 * gimplify.c (gimplify_compound_lval): Reset TREE_SIDE_EFFECTS
390 after gimplifying the innermost component.
392 2004-06-25 Richard Sandiford <rsandifo@redhat.com>
395 * config/mips/mips.c (mips_expand_unaligned_load): Use a temporary
396 register for the destination of the lwl or ldl.
398 2004-06-25 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
400 * tree-dfa.c (get_virtual_var): Merge real/imaginary parts with
401 handled_component_p handling.
402 * tree-gimple.c (get_base_address): Likewise and fix typo that
403 caused both recursion and looping.
405 * tree-cfg.c (verify_expr): Add macro CHECK_OK.
406 Properly test for nest of handled_components in LHS context.
408 2004-06-25 Devang Patel <dpatel@apple.com>
410 * doc/tree-ssa.texi: Document info about MODIFY_EXPR's type
412 2004-06-25 Paul Brook <paul@codesourcery.com>
414 * target-def.h (TARGET_CXX_GUARD_TYPE, TARGET_CXX_GUARD_MASK_BIT,
416 (TARGET_INITIALIZER): Use TARGET_CXX.
417 * target.h (struct gcc_target): Add struct cxx.
418 * targhooks.h (default_cxx_guard_type): Add prototype.
419 * targhooks.c (default_cxx_guard_type): New function.
420 * config/arm/arm.c (TARGET_CXX_GUARD_TYPE, TARGET_CXX_GUARD_MASK_BIT):
422 (arm_cxx_guard_type, arm_cxx_guard_mask_bit): New functions.
423 * doc/tm.texi: Document TARGET_CXX_GUARD_TYPE and
424 TARGET_CXX_GUARD_MASK_BIT.
426 2004-06-25 Devang Patel <dpatel@apple.com>
428 * config/rs6000/darwin.h (CC1_SPEC): Handle -gused and -gfull.
429 * config/i386/darwin.h (CC1_SPEC): Same.
431 2004-06-25 Mark G. Adams <mark.g.adams@sympatico.ca>
433 * dbxout.h: Add include guards
435 2004-06-25 Paul Brook <paul@codesourcery.com>
437 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_EABI__.
439 2004-06-25 Richard Earnshaw <rearnsha@arm.com>
441 * arm.c (arm_arch4t): New variable.
442 (arm_override_options): Initialize it. If compiling for armv5 or
443 higher clear TARGET_INTERWORK.
444 (output_call): Abort if called for armv5. Use BX if it's available.
445 (output_call_mem): Use BLX if available and ensure that all armv5
446 code is interworking safe.
447 (output_return_instruction): Always use BX in preference to MOV if
449 (arm_output_epilogue): Likewise.
450 (arm_final_prescan_insn): Never conditionally call a subroutine
452 * arm.h (arm_arch4t): Declare.
453 * arm.md (call_reg_armv5, call_value_reg_armv5): New.
454 (call_reg_arm, call_value_reg_arm): Renamed from call_reg and
455 call_value_reg respectively.
456 (call_reg_thumb_v5, call_value_reg_thumb_v5): New.
457 (call_reg_thumb, call_value_reg_thumb): Renamed from call_indirect
458 and call_value_indirect respectively.
460 2004-06-25 Richard Sandiford <rsandifo@redhat.com>
462 * config/mips/mips.c (reg_or_const_float_1_operand): Reimplement
463 in terms of const_float_1_operand.
465 2004-06-25 Richard Sandiford <rsandifo@redhat.com>
468 * config/mips/mips.md (divsf, divdf): Don't FAIL if the first operand
469 is 1.0; force it into a register instead.
471 2004-06-25 Bernardo Innocenti <bernie@develer.com>
473 * config/m68k/m68k.h: Restore valid comment removed by mistake with
474 the recent m68k comments cleanup.
476 2004-06-24 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
478 * c-gimplify.c (gimplify_for_stmt): Use gimplify_and_add.
479 * gimplify.c (internal_get_tmp_var, gimplify_return_expr): Likewise.
480 (gimplify_loop_expr, gimplify_init_constructor): Likewise.
481 (gimplify_self_mod_expr, gimplify_cond_expr): Likewise.
484 * gimplify.c (voidify_wrapper_expr): Allow TARGET_EXPR.
486 * gimplify.c: Remove unneeded forward declarations.
488 * gimplify.c (append_to_compound_expr): Deleted.
489 * tree-gimple.h (append_to_compound_expr): Deleted.
491 * fold-const.c (fold_addr_expr_with_type): Look through all
492 valid LHS modifiers to find a base to mark addressable.
494 * tree.h (debug_find_tree): Add declaration.
495 * tree-inline.c (debug_find_tree): Remove extern declaration.
497 2004-06-24 Eric Christopher <echristo@redhat.com>
499 * config/rs6000/rs6000.md: Apply change mistakenly
500 deleted with 2004-06-22 patch.
502 2004-06-24 Richard Henderson <rth@redhat.com>
504 * c-decl.c (c_in_iteration_stmt, c_in_case_stmt): Remove.
505 (c_break_label, c_cont_label): New.
506 (start_function): Update initializations.
507 (c_push_function_context): Update saves.
508 (c_pop_function_context): Update restores.
509 * c-parse.in: Update expected conflicts.
510 (stmt_count, compstmt_count): Remove. Remove all updates.
511 (if_prefix, simple_if, do_stmt_start): Remove.
512 (lineno_labeled_stmt): Remove.
513 (lineno_labels): New.
514 (c99_block_lineno_labeled_stmt): Use it.
515 (lineno_stmt, lineno_label): Don't clear EXPR_LOCUS before calling
517 (select_or_iter_stmt): Replace by ...
518 (condition, if_statement_1, if_statement_2, if_statement,
519 start_break, start_continue, while_statement, do_statement,
520 for_cond_expr, for_incr_expr, for_statement, switch_statement): New.
521 (stmt): Split out ...
522 (stmt_nocomp): ... this. Use c_finish_bc_stmt, c_finish_goto_label,
524 * c-semantics.c (add_stmt): Don't add line numbers to labels.
525 * c-tree.h: Update prototypes.
526 (struct language_function): Remove x_in_iteration_stmt, x_in_case_stmt;
527 add x_break_label, x_cont_label, x_switch_stack.
528 (c_switch_stack): Declare.
529 * c-typeck.c (c_finish_goto_label, c_finish_goto_ptr): New.
530 (c_finish_return): Return the statement.
531 (c_switch_stack): Rename from switch_stack; export.
532 (if_elt, if_stack, if_stack_space, if_stack_pointer): Remove.
533 (c_begin_if_stmt, c_finish_if_cond, c_finish_then, c_begin_else,
534 c_finish_else): Remove.
535 (c_finish_if_stmt): Rewrite to perform the entire operation.
536 (c_begin_while_stmt, c_finish_while_stmt_cond, c_finish_while_stmt,
537 c_begin_for_stmt, c_finish_for_stmt_init, c_finish_for_stmt_cond,
538 c_finish_for_stmt_incr, c_finish_for_stmt): Remove.
539 (c_finish_loop): New.
540 (c_finish_bc_stmt): New.
541 (c_finish_expr_stmt): Return the statement. Split out...
542 (c_process_expr_stmt): ... this. Don't add locus to error marks.
543 * gimplify.c (gimplify_cond_expr): Accept NULL type statements.
544 * tree-gimple.c (is_gimple_stmt): Likewise.
545 * tree-pretty-print.c (dump_generic_node <COND_EXPR>): Likewise.
546 (print_struct_decl): Delete empty compound statement.
547 * objc/objc-act.c (objc_build_throw_stmt): Return the statement.
548 * objc/objc-act.h: Update decl.
550 2004-06-24 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
552 * tree-pretty-print.c (dump_generic_node, case TYPE_DECL):
553 Don't look at TYPE_METHODS unless RECORD_TYPE or UNION_TYPE.
555 2004-06-24 Andrew Pinski <apinski@apple.com>
557 * objc-act.c (build_objc_method_call): Save the lookup_object
558 so we do not call it twice.
560 2004-06-24 Richard Henderson <rth@redhat.com>
562 * tree-ssa-dom.c (real_avail_expr_hash): New.
563 (tree_ssa_dominator_optimize): Use it in the htab.
565 2004-06-24 Frank Ch. Eigler <fche@redhat.com>
567 * tree-mudflap.c (mx_register_decls): Add third (type) argument
568 to synthesized __mf_unregister call.
570 2004-06-24 Roger Sayle <roger@eyesopen.com>
573 * expmed.c (expand_mult): Remove artificial restriction on the
574 maximum cost of a synthetic multiplication sequence.
576 2004-06-24 Eric Christopher <echristo@redhat.com>
578 * combine.c (distribute_notes): Don't delete sets to
579 global register variables.
581 2004-06-24 Jakub Jelinek <jakub@redhat.com>
583 * config/i386/i386.md (ffsdi2, clzdi2): New expanders.
584 (ffs_rex64): New splitter.
585 (ffsdi_1, ctzdi2, bsr_rex64): New instructions.
587 2004-06-24 Andrew Pinski <apinski@apple.com>
589 * config/darwin7.h (MATH_LIBRARY): Remove.
591 * config/darwin.h (MATH_LIBRARY): Define always to empty.
592 (LIB_SPEC): Only define if not already defined.
594 2004-06-24 Revital Eres <eres@il.ibm.com>
596 * loop-iv.c (iv_analyze, simple_set_p): Support for identifying
597 shifts of induction variable.
598 (iv_shift): New function.
600 2004-06-24 Richard Henderson <rth@redhat.com>
602 * gimplify.c (gimplify_body): Watch for body vanishing.
604 2004-06-24 Jeff Law <law@redhat.com>
606 * tree-ssa-dom.c (record_dominating_conditions): New function.
607 (dom_opt_finalize_block, get_eq_expr_value): Use it.
609 2004-06-24 Richard Sandiford <rsandifo@redhat.com>
611 * calls.c (shift_returned_value): Fix handling of non-integer
614 2004-06-24 Ulrich Weigand <uweigand@de.ibm.com>
616 * c-decl.c (finish_function): Do not check for DEFAULT_MAIN_RETURN.
617 * system.h (DEFAULT_MAIN_RETURN): Poison.
618 * doc/tm.texi (DEFAULT_MAIN_RETURN): Remove documentation.
620 2004-06-24 Ben Elliston <bje@au.ibm.com>
622 * doc/cfg.texi (Edges): Fix typo.
624 2004-06-24 Paul Brook <paul@codesourcery.com>
626 * config/arm/arm.c (arm_output_epilogue): Remove excess checks.
628 2004-06-23 Andrew Pinski <apinski@apple.com>
631 * fold-const.c (fold_convert): Types which are compatible
632 can be converted with only a NOP_EXPR.
634 2004-06-24 Alan Modra <amodra@bigpond.net.au>
636 * calls.c (expand_call): Call INIT_CUMULATIVE_ARGS earlier, and
637 pass raw n_named_args to it.
638 * targhooks.c: Formatting.
639 (hook_bool_CUMULATIVE_ARGS_false): Correct comment.
641 2004-06-23 Richard Henderson <rth@redhat.com>
643 * c-gimplify.c (gimplify_decl_stmt): Push gimplify_one_sizepos inside
644 non-constant size check. Gimplify the type too. Tidy building
645 BUILT_IN_STACK_ALLOC call.
647 2004-06-23 Roger Sayle <roger@eyesopen.com>
649 * c-common.c (expand_unordered_cmp): Delete.
650 (expand_tree_builtin): Delete.
651 * c-common.h (expand_tree_builtin): Delete function prototype.
652 * c-typeck.c (build_function_call): Don't call expand_tree_builtin.
654 2004-06-23 Richard Henderson <rth@redhat.com>
656 * gimplify.c (gimplify_compound_lval): Don't set ARRAY_REF or
657 COMPONENT_REF variable fields unless they're non-constant.
659 2004-06-23 Robert Millan <robertmh@gnu.org>
661 * config.gcc: Merge kfreebsd*-gnu with linux* and add knetbsd*-gnu.
662 * config/i386/linux.h: Allow overriding of LINK_EMULATION,
663 DYNAMIC_LINKER and register names in sc_ structure.
664 * config/kfreebsd-gnu.h: New. kfreebsd-gnu followup for linux.h.
665 * config/i386/kfreebsd-gnu.h: New. Ditto for i386-kfreebsd-gnu.
666 * config/knetbsd-gnu.h: New. Ditto for knetbsd-gnu.
667 * config/i386/knetbsd-gnu.h: New. Ditto for i386-knetbsd-gnu.
669 * config/kfreebsdgnu.h: Remove.
670 * config/t-kfreebsd-gnu: Likewise.
671 * config/i386/kfreebsdgnu.h: Likewise.
673 2004-06-23 Eric Christopher <echristo@redhat.com>
675 * fold-const.c (make_range): Cleanup type checking through function.
676 Remove orig_type. Replace with checks to exp_type and arg0_type.
677 Clarify comment when converting from unsigned to signed.
679 2004-06-23 Eric Christopher <echristo@redhat.com>
681 * config/mips/mips.c (mips_use_dfa_pipeline_interface): Add R3000.
682 * config/mips/mips.md: Remove R3000 scheduling description.
683 * config/mips/3000.md: New file.
685 2004-06-23 Ulrich Weigand <uweigand@de.ibm.com>
687 * config/s390/s390-protos.h (s390_emit_compare): Add prototype.
688 (s390_emit_jump): Likewise.
689 * config/s390/s390.c (s390_emit_compare): New function.
690 (s390_emit_jump): Likewise.
691 * config/s390/s390.md ("beq", "bne", "bgt", "bgtu", "blt", "bltu",
692 "bge", "bgeu", "ble", "bleu", "bunordered", "bordered", "buneq",
693 "bungt", "bunlt", "bunge", "bunle", "bltgt"): Use s390_emit_compare
695 ("cjump"): Remove, replace by ...
696 ("*cjump_64", "*cjump_31"): ... these insns. Improve length default.
697 ("icjump", "*icjump_64", "*icjump_31"): Likewise.
698 ("trap"): Fix type attribute.
699 ("conditional_trap"): Use s390_emit_compare.
700 ("doloop_si"): Remove, replace by ...
701 ("doloop_si64", "doloop_si31"): ... these new insn_and_split.
702 Merge existing splitter into insn_and_split. Improve length default.
703 ("doloop_di"): Merge with existing splitter into insn_and_split.
705 ("jump"): Convert to expander. Use s390_emit_jump.
706 ("*jump_64", "*jump_31"): New insns. Improve length default.
708 2004-06-23 Wu Yongwei <adah@sh163.net>
710 * gthr-win32.h (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
711 (__gthr_i486_lock_cmp_xchg): New inline assembly function.
712 (__GTHR_W32_InterlockedCompareExchange): New macro to choose a
713 suitable function for interlocked compare-and-exchange.
714 (__gthread_mutex_trylock): Use
715 __GTHR_W32_InterlockedCompareExchange.
716 (__gthread_mutex_init_function, __gthread_mutex_lock,
717 __gthread_mutex_trylock, __gthread_mutex_unlock): Adjust the
718 initial counter value to work correctly under Windows 95.
719 * config/i386/gthr-win32.c: Adjust include order.
720 Define __GTHREAD_I486_INLINE_LOCK_PRIMITIVES before including
722 (__gthr_win32_mutex_init_function, __gthr_win32_mutex_lock,
723 __gthr_win32_mutex_trylock, __gthr_win32_mutex_unlock): Adjust
724 to match inline versions in gthr-win32.h.
726 2004-06-23 David Edelsohn <edelsohn@gnu.org>
728 * config/rs6000/rs6000.c (rs6000_use_dfa_pipeline_interface): Delete.
729 (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Redefine a hook_int_void_1.
730 (insvdi_rshift_rlwimi_p): New function.
731 * config/rs6000/rs6000.md (insvdi_internal2/3): New patterns.
732 (extendsfdf2): Convert to define_insn_and_split.
733 * config/rs6000/rs6000-protos.h (insvdi_rshift_rlwimi_p): Prototype.
735 2004-06-23 Andrew Pinski <apinski@apple.com>
737 * c-typeck.c (composite_type, <case ARRAY_TYPE>): Abort if we have
738 type qualifiers at all.
739 If both of the type domains are null and the new element type is
740 the same as one of the, return the one which the element type.
742 Do not call qualify_type on the new type.
744 2004-06-23 Ulrich Weigand <uweigand@de.ibm.com>
746 * config/s390/s390.h (DEFAULT_MAIN_RETURN): Remove.
748 2004-06-23 Roger Sayle <roger@eyesopen.com>
750 * convert.c (strip_float_extension): Skip both NOP_EXPR and
751 CONVERT_EXPR floating point extensions.
753 2004-06-23 Diego Novillo <dnovillo@redhat.com>
755 * Makefile.in (tree-vn.o): New.
756 (tree-ssa-pre.o): Don't depend on RTL_H.
757 * tree-dfa.c (find_referenced_vars): Don't call init_tree_ssa.
758 * tree-flow.h (struct var_ann_d): Remove field expr_set.
759 (add_to_value, expressions_equal_p, get_value_handle, vn_compute,
760 vn_lookup_or_add, vn_add, vn_lookup, vn_init, vn_delete): Declare.
761 * tree-optimize.c (execute_init_datastructures): New local function.
762 (pass_init_datastructures): New local variable.
763 (init_tree_optimization_passes): Sequence pass_init_datastructures.
764 * tree-pretty-print.c (MASK_POINTER): Remove.
765 (dump_generic_node): Handle VALUE_HANDLE.
766 * tree-ssa-pre.c: Move all value numbering routines to tree-vn.c.
767 Update callers to use new function names.
768 Use VALUE_HANDLE_ID and VALUE_HANDLE_EXPR_SET instead of
769 variable annotations.
770 * tree-ssa.c (init_tree_ssa): Call vn_init.
771 (delete_tree_ssa): Call vn_delete.
772 * tree-vn.c: New file.
773 * tree.c (tree_size): Handle VALUE_HANDLE.
774 (tree_node_structure): Likewise.
775 (iterative_hash_expr): Likewise.
776 * tree.def (VALUE_HANDLE): New code.
777 * tree.h (struct tree_value_handle): New.
778 (VALUE_HANDLE_ID): Define.
779 (VALUE_HANDLE_EXPR_SET): Define.
780 (enum tree_node_structure_enum): Add TS_VALUE_HANDLE.
781 (union tree_node): Add struct tree_value_handle.
783 2004-06-23 Andrew Pinski <apinski@apple.com>
785 * c-typeck.c (composite_type):
786 <case POINTER_TYPE>: Build a qualified type of
788 <case ARRAY_TYPE>: Likewise.
789 <case FUNCTION_TYPE>: Likewise.
791 2004-06-23 Pat Haugen <pthaugen@us.ibm.com>
793 PR optimization/15633
794 * value-prof.c (divmod_fixed_value_transform): Compute probability
795 of taking optimal path and pass along to gen_ routine.
796 (mod_pow2_value_transform): Same.
797 (mod_subtract_transform): Same.
798 (gen_divmod_fixed_value): Add new probability parameter.
799 Add probability to newly created jump.
800 (gen_mod_pow2): Same.
801 (gen_mod_subtract): Same.
803 2004-06-23 Richard Earnshaw <rearnsha@arm.com>
806 * arm.md (bicsi3_cbranch): Add alternative to handle tying operands
809 2004-06-23 Richard Earnshaw <rearnsha@arm.com>
812 * arm.h (THUMB_SECONDARY_OUTPUT_RELOAD_CLASS): Don't need a secondary
813 reload if CLASS is BASE_REGS.
815 2004-06-23 Richard Sandiford <rsandifo@redhat.com>
817 * gengtype-yacc.y (option): Avoid use of non-constant struct
820 2004-06-23 Nathan Sidwell <nathan@codesourcery.com>
822 * doc/extend.texi (Function Attributes): Alphabetize.
824 2004-06-23 Richard Henderson <rth@redhat.com>
826 * c-gimplify.c (gimplify_decl_stmt): Update gimplify_type_sizes call.
827 Use gimplify_and_add.
828 * c-typeck.c (c_finish_if_stmt): Use NULL instead of empty stmt.
829 * gimplify.c (build_and_jump, gimplify_exit_expr,
830 gimplify_init_constructor, gimplify_save_expr, gimple_push_cleanup,
831 gimplify_stmt, gimplify_expr): Likewise.
832 (shortcut_cond_expr): Handle NULL arms of COND_EXPR.
833 (gimplify_statement_list): Remove NULL entries.
834 (gimplify_to_stmt_list): Handle NULL results.
835 (gimplify_type_sizes): Add list_p argument.
836 (gimplify_one_sizepos): Don't use internal pre/post queue.
837 * tree-gimple.h (gimplify_type_sizes): Update.
839 2004-06-22 Eric Christopher <echristo@redhat.com>
841 * config/rs6000/rs6000.md (*insvsi_internal5/6): New patterns.
843 2004-06-22 Pat Haugen <pthaugen@us.ibm.com>
845 * cfghooks.c (make_forwarder_block): Decrement count on fallthru edge
846 when redirecting back edges.
848 * cfghooks.c (split_block): Call make_single_succ_edge so that edge
849 count/probability are set correctly.
851 2004-06-22 Richard Henderson <rth@redhat.com>
853 * c-typeck.c (emit_side_effect_warnings): Ignore error marks.
854 (c_finish_stmt_expr): Likewise.
856 * config/i386/i386.c (TARGET_STRUCT_VALUE_RTX): New.
857 (ix86_return_in_memory): Move SSE vector return warning ...
858 (ix86_struct_value_rtx): ... here. New.
860 2004-06-22 Richard Henderson <rth@redhat.com>
862 * tree.def (VTABLE_REF): Remove.
864 (TRY_CATCH_EXPR, TRY_FINALLY_EXPR): Set type 's'.
865 * expr.c (expand_expr_real_1): Replace VTABLE_REF with OBJ_TYPE_REF.
866 * fold-const.c (non_lvalue): Likewise.
867 * gimplify.c (gimplify_expr): Likewise.
868 (gimplify_call_expr): Use is_gimple_call_addr.
869 * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): New.
870 * langhooks.h (fold_obj_type_ref): New.
871 * tree-gimple.c (is_gimple_call_addr): New.
872 * tree-gimple.h (is_gimple_call_addr): Declare.
873 * tree-inline.c (inlinable_function_p): Fix merge error.
874 (estimate_num_insns_1): Replace VTABLE_REF with OBJ_TYPE_REF.
875 * tree-pretty-print.c (dump_generic_node): Likewise.
876 (print_call_name): Handle OBJ_TYPE_REF.
877 * tree-ssa-ccp.c (fold_stmt): Fold OBJ_TYPE_REF.
878 * tree-ssa-operands.c (get_expr_operands): Handle OBJ_TYPE_REF.
879 * tree.h (OBJ_TYPE_REF_EXPR): New.
880 (OBJ_TYPE_REF_OBJECT, OBJ_TYPE_REF_TOKEN): New.
881 * doc/c-tree.texi (VTABLE_REF): Remove.
882 * objc/objc-act.c (build_objc_method_call): Build an OBJ_TYPE_REF.
884 2004-06-22 Richard Henderson <rth@redhat.com>
887 * function.c (assign_parms): Don't abort for overaligned PARALLEL.
889 2004-06-22 Joseph S. Myers <jsm@polyomino.org.uk>
891 * Makefile.in (distclean): Don't try to remove empty directories.
893 2004-06-22 Richard Sandiford <rsandifo@redhat.com>
896 * config/mips/mips.c (mips_avoid_hazards): Call split_all_insns_noflow.
898 2004-06-22 Alexandre Oliva <aoliva@redhat.com>
900 * config/mn10300/mn10300.md (movdi, movdf): Use high/low for movu
903 2004-06-22 Dale Johannesen <dalej@apple.com>
905 * config/rs6000/rs6000.c (legitimate_offset_address_p): Make
906 global, rename rs6000_legitimate_offset_address_p.
907 (rs6000_legitimate_address_p): Adjust calls to it.
908 (lmw_operation): Ditto.
909 (stmw_operation): Ditto.
910 * config/rs6000/rs6000-protos.h: Declare it.
911 * config/rs6000/rs6000.md (*movdf_hardfloat32): Use it
912 instead of offsettable_memref_p.
914 2004-06-22 Dale Johannesen <dalej@apple.com>
916 * config/rs6000/rs6000.c (rs6000_legitimate_address): Disallow
917 [reg+reg] mode for TFmode memory accesses.
918 (rs6000_eliminate_indexed_memrefs): New.
919 (rs6000_emit_move): Call preceding for TImode and TFmode.
921 2004-06-22 Paolo Bonzini <bonzini@gnu.org>
923 * tree-cfg.c (pass_warn_function_return): It needs
926 2004-06-22 Nathan Sidwell <nathan@codesourcery.com>
928 * doc/invoke.texi (Machine Dependent Options): Alphabetize.
929 (Submodel Options): Likewise.
931 2004-06-21 Andrew Pinski <apinski@apple.com>
934 * c-decl.c (push_file_scope): Return early if we already
937 2004-06-21 Geoffrey Keating <geoffk@apple.com>
939 * c-opts.c (c_common_handle_option): Handle -fpch-preprocess.
940 * c-common.h (flag_pch_preprocess): Declare.
941 (c_common_pch_pragma): Likewise.
942 * c-common.c (flag_pch_preprocess): New.
943 * c-pch.c (c_common_read_pch): Support -fpreprocess-only.
944 (c_common_pch_pragma): New.
945 * c-ppoutput.c (cb_read_pch): New.
946 (init_pp_output): Support -fpch-preprocess.
947 * c-pragma.c (init_pragma): Support #pragma GNUC pch_preprocess.
948 * c.opt (fpch-preprocess): New.
949 * gcc.c (cpp_options): When save-temps, pass -fpch-preprocess.
950 * doc/cppopts.texi: Document -fpch-preprocess.
951 * doc/invoke.texi (Precompiled Headers): Mention that
952 -fpreprocessed is safe for PCH. Mention that if an option is
953 listed as safe that doesn't mean it does what you expect.
955 2004-06-22 Ben Elliston <bje@au.ibm.com>
957 * tree-ssa.c (ssa_redirect_edge): Correct leading comment.
959 2004-06-21 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
961 * Makefile.in (gimplify.o): Add cgraph.h.
962 * alias.c (adjust_offset_for_component_ref): Use
963 component_ref_field_offset.
964 * c-decl.c (build_array_declarator): Add news args for ARRAY_REF.
965 * c-gimplify.c (gimplify_expr_stmt): Use alloc_stmt_list.
966 (gimplify_decl_stmt): Call gimplify_type_sizes for type.
967 For decl, call gimplify_one_sizepos and use statement list.
968 (gimplify_compound_literal_expr): New arg PRE_P.
969 Add statement to PRE_P list and return DECL.
970 (c_gimplify_expr, case COMPOUND_LITERAL_EXPR): Add arg to
971 gimplify_compound_literal_expr.
972 * c-tree.h (getdecls): Deleted.
973 * c-typeck.c (build_component_ref): Add operand for COMPONENT_REF.
974 (build_array_ref): Add two operands for ARRAY_REF.
975 (build_unary_op): Set TREE_INVARIANT and TREE_CONSTANT for
976 COMPOUND_LITERAL_EXPR.
977 * coverage.c (tree_coverage_counter_ref): Add new operands
979 * emit-rtl.c (component_ref_for_mem_expr): Add new operand
981 (set_mem_attributes_minus_bitpos): Use array_ref_low_bound
982 and array_ref_element_size.
983 (widen_memory_access):Use component_ref_field_offset.
984 * explow.c (update_nonlocal_goto_save_area): Add two operands
986 * expr.c (array_ref_element_size, array_ref_low_bound): New functions.
987 (component_ref_field_offset): Likewise.
988 (get_inner_reference): Use them.
989 (expand_expr_real_1, case ARRAY_REF): Use array_ref_low_bound.
990 * fold-const.c (fold, case EQ_EXPR): Properly handle DECL_SIZE.
991 (fold_read_from_constant_string): Use array_ref_low_bound.
992 Verify that result is a character type.
993 (build_fold_indirect_ref): Add two operands for ARRAY_REF.
994 * function.c (expand_function_start): Likewise.
995 * gimple-low.c (expand_var_p): Delete duplicated line.
996 * gimplify.c: Add static decls for local functions.
997 (cgraph.h): Now included.
998 (create_tmp_var): Remove check for ARRAY_TYPE.
999 (copy_if_shared_r): Look at bounds and sizes of types.
1000 (build_and_jump): Return alloc_stmt_list instead of build_empty_stmt.
1001 (gimplify_exit_expr, shortcut_cond_expr): Likewise.
1002 (gimplify_save_expr, gimple_push_cleanup): Likewise.
1003 (gimplify_init_constructor): Likewise.
1004 WANT_VALUE now bool.
1005 If empty list with no result wanted, return GS_UNHANDLED.
1006 Add additional operands for ARRAY_REF and COMPONENT_REF.
1007 (canonicalize_component_ref): Convert to &array[L].
1008 (gimplify_array_ref_to_plus): Use array_ref_element_size and
1009 array_ref_lower_bound.
1010 (build_addr_expr_with_type, build_addr_expr): New functions.
1011 (gimplify_compound_lval): WANT_LVALUE now bool.
1012 Major rework to allow handle_component_p and initialize and
1013 gimplify new operands for ARRAY_REF, ARRAY_RANGE_REF, and
1015 (gimplify_array_ref): Deleted.
1016 (gimplify_self_mod_expr): WANT_VALUE now bool.
1017 (gimplify_modify_expr): Gimplify to_p and from_p later.
1018 Factor out code into gimplify_modify_expr_rhs and call twice.
1019 Move variable-size code earlier and handle PLACEHOLDER_EXPR.
1020 (gimplify_modify_expr_rhs, gimplify_variable_sized_compare): New fns.
1021 (gimplify_addr_expr, case VIEW_CONVERT_EXPR): New case.
1022 (gimplify_expr, case ARRAY_REF): Delete special case.
1023 Instead handle like COMPONENT_REF; also do ARRAY_RANGE_REF,
1024 IMAGPART, and REALPART the same way.
1025 (gimplify_expr, case VIEW_CONVERT_EXPR): New case.
1026 (gimplify_expr): Call gimplify_variable_sized_compare if applicable.
1027 Call alloc_stmt_list instead of build_empty_stmt.
1028 Deal with _REF that's volatile.
1029 (gimplify_type_sizes, gimplify_one_sizepos): New functions.
1030 (unshare_body, unvisit_body): New functions.
1031 (gimplify_body): Call them.
1032 * stmt.c (expand_stack_alloc): Don't expand TYPE_MAX_VALUE.
1033 * stor-layout.c (get_pending_sizes): Don't change SAVE_EXPR_CONTEXT.
1034 * tree-alias-common.c (get_alias_var): Also skip ARRAY_RANGE_REF.
1035 * tree-cfg.c (tree_node_can_be_shared): Treat ARRAY_RANGE_REF
1037 (verify_expr, case ADDR_EXPR): Use handled_component_p.
1038 * tree-dfa.c (get_virtual_var): Likewise.
1039 * tree-dump.c (dequeue_and_dump, case COMPONENT_REF, ARRAY_REF):
1040 New cases to dump new operands; likewise for ARRAY_RANGE_REF.
1041 * tree-eh.c (tree_could_trap, case ARRAY_RANGE_REF): Like ARRAY_REF.
1042 * tree-gimple.c (is_gimple_addr_expr_arg): Add ARRAY_RANGE_REF
1044 (get_base_address): Use handled_component_p.
1045 * tree-gimple.h (gimplify_type_sizes, gimplify_one_sizepos): New.
1046 * tree-inline.c (walk_tree): Walk more things for types and decls.
1047 * tree-mudflap.c (mf_build_check_statement_for): Add new operands
1048 for ARRAY_REF and COMPONENT_REF.
1049 (mx_xform_derefs_1): Clean up usage of decl sizes.
1050 * tree-nested.c (build_addr): Use handled_component_p.
1051 (walk_stmts, case CATCH_EXPR): Add missing "break".
1052 (get_static_chain, get_frame_field): Add new operand for COMPONENT_REF.
1053 (finalize_nesting_tree_1): Likewise.
1054 (convert_nonlocal_reference, case ARRAY_RANGE_REF): Like ARRAY_REF
1055 and process additional operands.
1056 (convert_local_reference): Likewise.
1057 * tree-outof-ssa.c (discover_nonconstant_array_refs_r): Treat
1058 ARRAY_RANGE_REF similarly to ARRAY_REF.
1059 * tree-pretty-print.c (dump_generic_node, case QUAL_UNION_TYPE): Handle
1061 (dump_generic_node, case COMPONENT_REF): Print offset operand.
1062 (dump_generic_node, case ARRAY_RANGE_REF): Treat like ARRAY_REF
1063 and print lower bound and element size for both.
1064 (op_prio, case ARRAY_RANGE_REF): Like ARRAY_REF.
1065 * tree-sra.c (csc_build_component_ref): Add new operand.
1066 (scalarize_call_expr): Use get_base_address.
1067 * tree-ssa-ccp.c (widen_bitfield): Clean up size handling.
1068 (maybe_fold_offset_to_array_ref): Rework to handle input having an
1069 ARRAY_REF, refine handling of lower bound, and add new operands
1071 (maybe_fold_to_component_ref): Add new operand for COMPONENT_REF.
1072 (maybe_fold_stmt_indirect): Only fold *&B to B if types match.
1073 (maybe_fold_stmt_addition): Only handle constant lower bound.
1074 * tree-ssa-operands.c (get_expr_operands): Minor rearrangements.
1075 Treat ARRAY_REF and ARRAY_RANGE_REF the same; look at extra operands.
1076 Look at new offset operand of COMPONENT_REF.
1077 * tree-ssa.c (set_is_used): Use handled_component_p.
1078 * tree.c (substitute_in_expr, case COMPONENT_REF): Add new operand.
1079 (stabilize_reference, case COMPONENT_REF): Likewise.
1080 (stabilize_reference, case ARRAY_RANGE_REF, ARRAY_REF): Similarly.
1081 (recompute_tree_invariant_for_addr_expr): Completely rework to
1082 be more precise. Also set TREE_SIDE_EFFECTS.
1083 (build1_stat, case ARRAY_EXPR): Don't handle TREE_SIDE_EFFECTS here.
1084 (build2_stat, build3_stat, build4_stat): For references,
1085 propagate TREE_THIS_VOLATILE.
1086 (get_unwidened): Add new operand for COMPONENT_REF.
1087 (get_narrower): Likewise; use host_integerp for DECL_SIZE.
1088 * tree.def (COMPONENT_REF): Add new operand.
1089 (ARRAY_REF, ARRAY_RANGE_REF): Add two new operands.
1090 * tree.h (array_ref_element_size, array_ref_low_bound): New decls.
1091 (component_ref_field_offset): Likewise.
1092 * config/alpha/alpha.c (alpha_va_start): Add new op for COMPONENT_REF.
1093 (alpha_gimplify_va_arg): Likewise.
1094 * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
1095 * config/i860/i860.c (i860_va_start, i860_va_arg): Likewise.
1096 * config/iq2000/iq2000.c (iq2000_va_arg): Likewise.
1097 * config/mips/mips.c (mips_va_start, mips_va_arg): Likewise.
1098 * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg):
1100 * config/s390/s390.c (s390_va_start, s390_gimplify_va_arg): Likewise.
1101 * config/sh/sh.c (sh_va_start, sh_va_arg): Likewise.
1102 * config/stormy16/stormy16.c (xstormy1_expand_builin_va_start):
1104 (xstormy16_expand_builtin_va_arg): Likewise.
1105 * config/xtensa/xtensa.c (xtensa_va_start, xtensa_va_arg): Likewise.
1106 * objc/objc-act.c (generate_static_references): Likewise.
1107 (generate_strings, build_method_prototype_list_template): Likewise.
1108 (generate_protocol_list): Likewise.
1110 2004-06-21 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1112 PR rtl-optimization/14782
1113 * pa.c (emit_move_sequence): Use SFmode for 4-byte modes when doing
1114 the address checks for secondary reloads for loads from and stores
1115 to floating-point registers.
1116 * pa.h (EXTRA_CONSTRAINT, case T): Use SFmode for 4-byte modes
1117 in the address check. Move work around for ELF32 targets to
1118 GO_IF_LEGITIMATE_ADDRESS.
1119 (GO_IF_LEGITIMATE_ADDRESS): Require constant offsets to be
1120 correctly aligned for DImode loads and stores. Don't allow long
1121 SFmode displacements on ELF32.
1123 2004-06-21 Richard Henderson <rth@redhat.com>
1126 * cse.c (merge_equiv_classes): Also rehash in response to
1127 delete_reg_equiv changes.
1128 (rehash_using_reg): Don't exclude REGs from rehashing.
1130 2004-06-21 Richard Henderson <rth@redhat.com>
1132 * c-common.def (RETURN_STMT): Remove.
1133 * c-common.h (RETURN_STMT_EXPR): Remove.
1134 (c_expand_return, build_return_stmt): Remove.
1135 (c_common_stmt_codes): Remove RETURN_STMT.
1136 * c-dump.c (dump_next_stmt): Remove.
1137 (c_dump_tree): Remove RETURN_STMT.
1138 * c-decl.c (finish_function): Use c_finish_return.
1139 * c-parse.in (stmt): Likewise.
1140 * c-gimplify.c (gimplify_return_stmt): Remove.
1141 (c_gimplify_expr): Remove RETURN_STMT.
1142 * c-pretty-print.c (pp_c_statement): Likewise.
1143 * c-semantics.c (build_return_stmt): Remove.
1144 * c-tree.h (c_finish_return): Declare.
1145 * c-typeck.c (c_finish_return): Rename from c_expand_return.
1146 Return void. Build RETURN_EXPR directly.
1147 * tree-dump.h (dump_next_stmt): Remove.
1149 2004-06-21 Zack Weinberg <zack@codesourcery.com>
1151 * c-decl.c (start_function): Don't call make_decl_rtl. Don't
1152 look at TREE_ADDRESSABLE of symbol name.
1154 2004-06-21 Kelley Cook <kcook@gcc.gnu.org>
1157 * config/i386/i386.md: Change UNSPEC_STACK_PROBE to UNSPECV_STACK_PROBE.
1158 (allocate_stack_worker): Make unspec_volatile.
1159 (allocate_stack_worker_rex64): Likewise.
1160 (allocate_stack_worker_postreload): Likewise.
1161 (allocate_stack_worker_rex64_postreload): Likewise.
1163 2004-06-21 Daniel Berlin <dberlin@dberlin.org>
1165 Fix PR optimization/15982
1166 * tree-ssa-pre.c: Update a few comments and todos to
1167 reflect constants change.
1168 (get_value_handle): Constants now value number to themselves.
1169 (lookup): Constants lookup to themselves.
1170 (add_to_value): Adjust to always be on.
1171 (set_contains_value): Adjust for constants change.
1172 (find_leader): Ditto.
1173 (phi_translate): 'r' nodes are never ANTIC right now.
1174 (valid_in_set): Ditto.
1175 (get_expr_set): New function.
1176 (find_or_generate_expression): New function, broken out from
1178 (create_expression_by_pieces): Ditto, plus additional
1179 machinery to handle complex values.
1180 (compute_avail): Remove dead RETURN_EXPR handling.
1182 2004-06-21 Steven Bosscher <stevenb@suse.de>
1184 * config/i386/i386.c: Include insn-codes.h
1185 * config/i386/i386.h (FLAGS_REG, FPSR_REG, DIRFLAG_REG): Don't
1187 * config/i386/i386.md (BP_REG, SP_REG, FLAGS_REG, FPSR_REG,
1188 DIRFLAG_REG): New define_constants. Use them everywhere.
1190 2004-06-21 Kaz Kojima <kkojima@gcc.gnu.org>
1192 * config/sh/t-linux (MULTILIB_OPTIONS): Remove.
1194 2004-06-21 J"orn Rennecke <joern.rennecke@superh.com>
1196 * sh.h (SUPPORT_SH1, SUPPORT_SH2E, SUPPORT_SH4): Conditionally define.
1197 (SUPPORT_SH4_SINGLE): Likewise.
1198 (TARGET_SWITCHES): Break out switches for cpu subtargets:
1199 (TARGET_SWITCH_SH1, TARGET_SWITCH_SH2, TARGET_SWITCH_SH2E): Define.
1200 (TARGET_SWITCH_SH3, TARGET_SWITCH_SH3E): Likewise.
1201 (TARGET_SWITCH_SH4_SINGLE_ONLY, TARGET_SWITCH_SH4_SINGLE): Likewise.
1202 (TARGET_SWITCH_SH4_NOFPU, TARGET_SWITCH_SH4): Likewise.
1203 (TARGET_SWITCH_SH5_64MEDIA, TARGET_SWITCH_SH5_64MEDIA_NOFPU): Likewise.
1204 (TARGET_SWITCHES_SH5_32MEDIA): Likewise.
1205 (TARGET_SWITCHES_SH5_32MEDIA_NOFPU): Likewise.
1206 (SELECT_SH5_64, SELECT_SH5_64_NOFPU): Rename to:
1207 (SELECT_SH5_64MEDIA, SELECT_SH5_64MEDIA_NOFPU)
1208 (SELECT_SH5_32, SELECT_SH5_32_NOFPU): Rename to:
1209 (SELECT_SH5_32MEDIA, SELECT_SH5_32MEDIA_NOFPU).
1210 (SH_MULTILIB_CPU_DEFAULT, MULTILIB_DEFAULTS): Define.
1211 (ASM_ISA_SPEC_DEFAULT, ASM_ISA_DEFAULT_SPEC): Likewise.
1212 * sh64.h (ASM_SPEC, LINK_DEFAULT_CPU_EMUL): Don't redefine.
1213 (TARGET_DEFAULT): Likewise.
1214 * config/sh/t-elf: Amend comment.
1215 * config/sh/t-1e, config/sh/t-mlib-sh1: New files.
1216 * config/sh/t-mlib-sh2, config/sh/t-mlib-sh2e: Likewise.
1217 * config/sh/t-mlib-sh3, config/sh/t-mlib-sh3e: Likewise.
1218 * config/sh/t-mlib-sh4, config/sh/t-mlib-sh4-nofpu: Likewise.
1219 * config/sh/t-mlib-sh4-single: Likewise.
1220 * config/sh/t-mlib-sh4-single-only: Likewise.
1221 * config/sh/t-mlib-sh5-32media: Likewise.
1222 * config/sh/t-mlib-sh5-32media-nofpu: Likewise.
1223 * config/sh/t-mlib-sh5-64media: Likewise.
1224 * config/sh/t-mlib-sh5-64media-nofpu: Likewise.
1225 * config/sh/t-mlib-sh5-compact: Likewise.
1226 * config/sh/t-mlib-sh5-compact-nofpu: Likewise.
1227 * config/sh/t-sh: (MULTILIB_ENDIAN): Add mb.
1228 (MULTILIB_CPUS): Define.
1229 (MULTILIB_OPTIONS): Use MULTILIB_CPUS.
1230 (MULTILIB_MATCHES): Use some shell code to calculate it.
1231 (MULTILIB_EXCEPTIONS): Change to ml/m1.
1232 * config/sh/elf.h (SUBTARGET_ASM_ISA_SPEC): Use ASM_ISA_DEFAULT_SPEC.
1233 * config/sh/netbsd-elf.h: Update code which sets TARGET_VERSION_CPU.
1234 (LINK_DEFAULT_CPU_EMUL): Don't redefine.
1235 (NO_PROFILE_COUNTERS): Define to 1.
1236 * config/sh/t-netbsd (MULTILIB_OPTIONS): Don't append to.
1237 (MULTILIB_DIRNAMES, MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Don't zap.
1238 * config/sh/t-netbsd-sh5-64 (MULTILIB_OPTIONS): Don't redefine.
1239 (MULTILIB_MATCHES): Don't zap.
1240 (MULTILIB_DIRNAMES): Use MULTILIB_RAW_DIRNAMES.
1241 * config/sh/t-sh64 (MULTILIB_OPTIONS): Don't redefine.
1242 (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Don't zap.
1243 (MULTILIB_RAW_DIRNAMES): Define.
1244 (MULTILIB_DIRNAMES): Use it.
1245 * config.gcc: Also set cpu_type / need_64bit_hwint for sh[be]*-*-*.
1246 (sh*linux configurations): Merge into:
1247 (sh*elf / sh*kaos configurations). Support --with-endian, --with-cpu,
1248 --with-multilib-list options. Support sh-superh-elf configuration.
1249 (sh*-netbsd*): Use SELECT_SH* macros.
1250 (supported_defaults): sh[123456ble]-*-* | sh-*-* support "cpu".
1251 Merge sh*-*-netbsd* configurations into sh-elf configurations.
1252 * config/sh/t-netbsd-sh5, config/sh/t-be, config/sh/t-le: Delete.
1253 * config/sh/t-monolib: Likewise.
1255 2004-06-21 Paul Brook <paul@codesourcery.com>
1257 * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Soft-float need
1260 2004-06-21 Roger Sayle <roger@eyesopen.com>
1262 * fold-const.c (operand_equal_p): Pass flags in recursive calls for
1263 binary and relational operations. Add support for TRUTH_ANDIF_EXPR,
1264 TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR and TRUTH_XOR_EXPR.
1265 * tree.c (commutative_tree_code): Also list UNORDERED_EXPR,
1266 ORDERED_EXPR, UNEQ_EXPR, LTGT_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR
1269 2004-06-21 Paolo Bonzini <bonzini@gnu.org>
1271 * rtlanal.c (may_trap_p): Mark LTGT as trapping.
1273 2004-06-21 Joseph S. Myers <jsm@polyomino.org.uk>
1275 * tree-alias-common.h (struct tree_alias_ops): Change ip and
1276 ip_partial to unsigned int.
1278 2004-06-21 Richard Henderson <rth@redhat.com>
1280 * c-common.c (verify_sequence_points): Export.
1281 (c_expand_expr_stmt): Move to c-typeck.c.
1282 * c-common.h (c_expand_expr_stmt): Remove.
1283 (verify_sequence_points): Declare.
1284 * c-mudflap.c (mflang_flush_calls): Use c_finish_expr_stmt.
1285 * c-parse.in (for_init_stmt, stmt): Likewise.
1286 * c-tree.h (c_finish_expr_stmt): Declare.
1287 (c_tree_expr_nonnegative_p): Remove.
1288 * c-typeck.c (c_tree_expr_nonnegative_p): Remove.
1289 (build_conditional_expr, build_binary_op): Use tree_expr_nonnegative_p.
1290 (emit_side_effect_warnings): New.
1291 (c_finish_expr_stmt): Rename from c_expand_expr_stmt. Use it.
1292 (c_finish_stmt_expr): Work without EXPR_STMT. Handle eh regions.
1293 Use emit_side_effect_warnings.
1294 (push_cleanup): Copy STATEMENT_LIST_STMT_EXPR.
1295 * fold-const.c (tree_expr_nonnegative_p): Handle TARGET_EXPR.
1296 * gimplify.c (gimplify_modify_expr): Don't discard TARGET_EXPR
1297 with void initializer.
1298 (gimplify_target_expr): Handle void BIND_EXPR initializer.
1299 * tree-inline.c (estimate_num_insns_1): Fix type lookup for
1300 INIT_EXPR and MODIFY_EXPR.
1301 * objc/objc-act.c (build_module_descriptor): Use add_stmt
1302 instead of c_expand_expr_stmt.
1304 2004-06-21 Paolo Bonzini <bonzini@gnu.org>
1306 * fold-const.c (fold_cond_expr_with_comparison):
1307 New function, extracted from fold.
1308 (fold): Extract code to fold A op B ? A : C, use
1309 it to fold A op B ? C : A. Really optimize
1310 A & N ? N : 0 where N is a power of two. Avoid
1311 relying on canonicalization and recursion for
1312 foldings of COND_EXPR to happen.
1314 2004-06-20 David Ayers <d.ayers@inode.at>
1316 * objc/objc-act.h (get_object_reference): Rename to
1317 get_protocol_reference.
1318 (super_type): Rename to objc_super_type.
1319 (selector_type): Rename to objc_selector_type.
1320 (id_type): Rename to objc_id_type.
1321 (instance_type): Rename to objc_instance_type.
1322 (protocol_type): Rename to objc_protocol_type.
1323 (IS_ID): Update reference to id_type.
1324 * objc/objc-act.c (get_object_reference): Rename to
1325 get_protocol_reference; add documentation; update references to
1327 (lookup_method_in_protocol_list): Rename class_meth to
1328 is_class; add documentation.
1329 (finish_message_expr): Rename is_class to class_tree.
1330 (synth_module_prologue, objc_is_object_ptr, objc_build_exc_ptr,
1331 next_sjlj_build_try_catch_finally, objc_begin_catch_clause,
1332 build_next_objc_exception_stuff, get_arg_type_list,
1333 build_objc_method_call): Update references to id_type.
1334 (synth_module_prologue, build_objc_symtab_template,
1335 build_selector_reference_decl, build_selector,
1336 build_selector_translation_table, build_typed_selector_reference,
1337 get_arg_type_list, synth_self_and_ucmd_args, get_arg_type_list,
1338 synth_self_and_ucmd_args): Update references to selector_type.
1339 (build_private_template, build_ivar_reference): Update references
1341 (synth_module_prologue, build_protocol_reference,
1342 build_protocol_expr, start_protocol): Update references to
1344 (synth_module_prologue, get_arg_type_list, build_objc_method_call):
1345 Update references to super_type.
1346 * c-parse.in: (typespec_nonreserved_nonattr): Update
1347 references to get_object_reference.
1348 * objc/objc-tree.def: Add C mode identifier sequence.
1350 2004-06-20 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
1352 * loop-invariant.c: New file.
1353 * Makefile.in (loop-invariant.o): New.
1354 * cfgloop.h (global_cost_for_size, init_set_costs,
1355 move_loop_invariants): Declare.
1356 * cfgloopanal.c (seq_cost, init_set_costs, global_cost_for_size): New
1358 (avail_regs, res_regs, small_cost, pres_cost, spill_cost): New
1360 * common.opt (floop-optimize2, fmove-loop-invariants): New options.
1361 * loop-init.c (loop_optimizer_init): Call init_set_costs.
1362 * passes.c (rest_of_handle_loop2): Call move_loop_invariants.
1363 (rest_of_compilation): Check flag_loop_optimize2.
1364 * toplev.c (process_options): Handle flag_loop_optimize2.
1365 * doc/invoke.texi (-floop-optimize2, -fmove-loop-invariants): Document.
1366 * doc/passes.texi (loop-invariant.c): Document.
1368 2004-06-20 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
1370 * tree-ssa-pre.c (compute_antic): Keep BB_VISITED flag zeroed.
1372 2004-06-20 Richard Henderson <rth@redhat.com>
1374 * stmt.c (warn_if_unused_value): Add locus argument.
1375 * tree.h (warn_if_unused_value): Update decl.
1376 * c-typeck.c (internal_build_compound_expr): Update call.
1377 * c-gimplify.c (gimplify_expr_stmt): Likewise.
1379 2004-06-20 Andrew Pinski <pinskia@physics.uc.edu>
1382 * builtins.c (entry_of_function): Move to ...
1383 * cfgrtl.c (entry_of_function): Here and make non-static.
1384 * integrate.c (emit_initial_value_sets): Use entry_of_function.
1385 * rtl.h (entry_of_function): Prototype.
1387 2004-06-20 Roger Sayle <roger@eyesopen.com>
1389 * config/i386/i386.c (pentium4_cost): Increase "lea" cost from 1 to 3.
1390 (ix86_rtx_costs) <ASHIFT, PLUS>: Consider ix86_cost->lea even when
1391 TARGET_DECOMPOSE_LEA.
1393 2004-06-20 Richard Henderson <rth@redhat.com>
1395 * c-common.h (add_decl_stmt): Move to cp-tree.h.
1396 * c-decl.c (finish_decl): Don't use add_decl_stmt.
1397 * c-parse.in: Likewise.
1398 * c-gimplify.c (gimplify_expr_stmt): Don't build CLEANUP_POINT_EXPR.
1399 (gimplify_c_loop, gimplify_return_stmt, gimplify_decl_stmt): Likewise.
1400 * c-semantics.c (add_decl_stmt): Move to cp/semantics.c.
1402 2004-06-20 Richard Henderson <rth@redhat.com>
1404 * c-common.def (IF_STMT, CLEANUP_STMT): Move to cp-tree.def.
1405 * c-common.h (IF_COND, THEN_CLAUSE, ELSE_CLAUSE, CLEANUP_BODY,
1406 CLEANUP_EXPR, CLEANUP_DECL): Move to cp-tree.h.
1407 (c_common_stmt_codes): Remove IF_STMT, CLEANUP_STMT.
1408 * c-dump.c (c_dump_tree): Move IF_STMT, CLEANUP_STMT to cp_dump_tree.
1409 * c-pretty-print.c (pp_c_statement): Similarly.
1410 * c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts,
1411 gimplify_if_stmt): Move to cp-gimplify.c.
1412 (c_genericize, c_gimplify_expr): Don't call them.
1413 * c-semantics.c (push_cleanup): Move to cp/semantics.c.
1414 * c-typeck.c (push_cleanup): New.
1415 (c_begin_if_stmt, c_finish_if_cond, c_finish_then, c_finish_else,
1416 c_finish_if_stmt): Use COND_EXPR.
1417 * tree.h (CLEANUP_EH_ONLY): Update documentation.
1419 2004-06-20 Zack Weinberg <zack@codesourcery.com>
1421 * c-common.h (has_c_linkage): New interface.
1422 * c-cppbuiltin.c: Include target.h.
1423 (c_cpp_builtins): Define __PRAGMA_REDEFINE_EXTNAME and
1424 __PRAGMA_EXTERN_PREFIX when appropriate.
1425 * c-pragma.c: Include target.h.
1426 Document clarified semantics of symbol-renaming #pragmas.
1427 (handle_pragma_redefine_extname, handle_pragma_extern_prefix)
1428 (maybe_apply_renaming_pragma): Rewrite according to clarified
1429 semantics. Always recognize, but do not necessarily execute.
1430 (init_pragma): Unconditionally register symbol-renaming pragmas.
1431 * system.h: Poison HANDLE_PRAGMA_REDEFINE_EXTNAME
1432 and HANDLE_PRAGMA_EXTERN_PREFIX.
1433 * target.h (struct gcc_target): Add handle_pragma_redefine_extname
1434 and handle_pragma_extern_prefix flags.
1435 * target-def.h: Add defaults for TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME
1436 and TARGET_HANDLE_PRAGMA_EXTERN_PREFIX.
1437 * Makefile.in (c-pragma.o, c-cppbuiltin.o): Update dependencies.
1438 * config/sol2.h: Define TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME,
1439 not HANDLE_PRAGMA_REDEFINE_EXTNAME.
1440 (TARGET_OS_CPP_BUILTINS): No need to define __PRAGMA_REDEFINE_EXTNAME.
1441 (TRANSFER_FROM_TRAMPOLINE): Prototype mprotect.
1442 * config/alpha/osf.h: Define TARGET_HANDLE_PRAGMA_EXTERN_PREFIX,
1443 not HANDLE_PRAGMA_EXTERN_PREFIX.
1444 (TARGET_OS_CPP_BUILTINS): No need to define __PRAGMA_EXTERN_PREFIX.
1445 * doc/extend.texi (Solaris Pragmas, Tru64 Pragmas): Combine
1446 into one section "Symbol-Renaming Pragmas"; clarify; document
1449 * builtins.c (expand_builtin): Do not issue error for a builtin
1450 with no special case code and no DECL_ASSEMBLER_NAME; just do the
1452 * c-decl.c (builtin_function): Don't call make_decl_rtl.
1453 * c-objc-common.c (has_c_linkage): Stub implementation.
1454 * cgraphunit.c (cgraph_expand_function)
1455 (cgraph_remove_unreachable_nodes): Don't clear DECL_ARGUMENTS.
1457 2004-06-19 Roger Sayle <roger@eyesopen.com>
1459 * builtins.c (fold_builtin_unordered_cmp): Take an EXP argument
1460 instead of both an ARGLIST and a result TYPE. Handle these C99
1461 comparison functions as "polymorphic" builtins. Also handle
1462 lowering of BUILT_IN_ISUNORDERED to an UNORDERED_EXPR tree node.
1463 (fold_builtin_1): Update calls to fold_builtin_unordered_cmp.
1464 Move handling of BUILT_IN_ISUNORDERED from here to there.
1466 2004-06-19 Richard Henderson <rth@redhat.com>
1468 * c-common.c, c-common.h (lang_gimplify_stmt): Remove.
1469 * c-gimplify.c: Remove unnecessary prototypes.
1470 (c_gimplify_stmt): Merge into ...
1471 (c_gimplify_expr): ... here. Don't play with prep_stmt.
1472 * c-semantics.c (prep_stmt): Remove.
1473 * gimplify.c (annotate_one_with_locus): Break out from ...
1474 (annotate_all_with_locus): ... here.
1475 (gimplify_expr): Add locus to expressions even if pre/post queues
1478 2004-06-19 Richard Henderson <rth@redhat.com>
1481 * function.c (assign_parms): If not padding upward or intentionally
1482 forcing upward padding, take offset_rtx into account when determining
1483 the alignment for stack_parm.
1485 2004-06-19 Richard Henderson <rth@redhat.com>
1488 * ifcvt.c (noce_try_move): Recognize all generated instructions.
1490 2004-06-19 Jan Hubicka <jh@suse.cz>
1492 * function.c (free_after_compilation): Do not free computed_goto_common*.
1493 * function.h (struct function): Kill computed_goto_common*.
1494 * stmt.c (expand_computed_goto): Do not commonize the computed gotos.
1495 * tree-cfg.c (disband_implicit_edges): Do not forward across the
1496 commonized computed goto.
1498 2004-06-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1500 * doc/invoke.texi: Remove obsolete comment regarding PA 2.0 support
1503 2004-06-19 Andrew Pinski <apinski@apple.com>
1506 * toplev.c (wrapup_global_declarations): Do not check
1507 TREE_SYMBOL_REFERENCED of the DECL_ASSEMBLER_NAME but check
1508 cgraph_varpool_node's needed field.
1510 2004-06-19 Jan Hubicka <jh@suse.cz>
1511 Steven Bosscher <stevenb@suse.de>
1513 CFG transparent RTL expansion:
1514 * Makefile.in (cfgexpand.o): New object file.
1515 (builtins.o): Add dependency on basic-block.h
1516 * builtins.c: Include basic-block.h
1517 (entry_of_function): New function.
1518 (expand_builtin_apply_args, expand_builtin_saveargs): Use it.
1519 * cfgexpand.c: New file.
1520 * expr.c (execute_expand, pass_expand): Kill.
1521 * pass.c (rest_of_compilation): Do not build CFG unless called from
1523 * tree-cfg.c (delete_tree_cfg): Rename to..
1524 (delete_tree_cfg_annotations): ... this one; Do not remove the CFG itself.
1525 * tree-flow.h (delete_tree_cfg_annotations): Declare.
1526 (dleete_tree_cfg): Kill.
1527 * tree-optimize.c (execute_rebuild_bind, pass_rebuild_bind): Kill.
1528 (execute_del_cfg): Rename to...
1529 (execute_free_datastructures): This one...
1530 (pass_del_cfg): Rename to...
1531 (pass_free_datastructures): ... this one; Do not kill PROP_cfg.
1532 (init_tree_optimization_passes): Make cfg build and profiling to happen
1535 2004-06-19 Steven Bosscher <stevenb@suse.de>
1537 * tree-mudflap.c (mf_decl_cache_locals): Skip labels before
1538 inserting the cache variables.
1540 * tree-mudflap.c: Include headers to make basic_block available.
1541 Move functions around such that related functions are near each
1542 other. Add prototypes for all static functions. Add comments
1543 briefly explaining what IR the mudflap1 and mudflap2 work on and
1545 (mudflap_function_decls): Rename to execute_mudflap_function_decls.
1546 (mudflap_function_ops): Rename to execute_mudflap_function_ops.
1547 (pass_mudflap_1, pass_mudflap_2): Update.
1548 (mf_decl_cache_locals): Make it work on the CFG instead of the saved
1550 (mf_build_check_statement_for): Make it work on the CFG.
1551 (mf_xform_derefs_1): Likewise. Cleanup code style.
1552 (mf_xform_derefs): Likewise.
1554 2004-06-19 Jan Hubicka <jh@suse.cz>
1556 * tree-cfg.c (label_to_block): Invent the label destination for
1558 (cleanup_dead_labels): Update table in the case label_to_block added
1561 2004-06-18 Richard Henderson <rth@redhat.com>
1564 * gimple-low.c (lower_function_body): Generate return statement for
1565 fall off the end of the function here ...
1566 * tree-cfg.c (make_edges): ... instead of here.
1567 * gimplify.c (gimplify_return_expr): Mark return temp TREE_NO_WARNING.
1569 2004-06-18 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
1571 * tree-ssa.c (raise_value): Removed.
1572 (get_eq_name, check_phi_redundancy): New functions.
1573 (kill_redundant_phi_nodes): Use standard ssa minimalization algorithm.
1575 2004-06-18 Roger Sayle <roger@eyesopen.com>
1577 * fold-const.c (fold) <UNORDERED_EXPR, ORDERED_EXPR, UNLT_EXPR,
1578 UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR, LTGT_EXPR>: Add
1579 constant folding for unordered comparison tree nodes. If both
1580 operands are real constants, call fold_relational_const. If either
1581 operand is a NaN, evaluate the other for side-effects and return a
1582 constant. Optimize (double)float1 CMP (double)float2 into the
1583 equivalent float1 CMP float2.
1584 (nondestructive_fold_binary_to_constant) <UNORDERED_EXPR,
1585 ORDERED_EXPR, UNLT_EXPR, UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR,
1586 LTGT_EXPR>: Call fold_relational_const for constant operands.
1587 (fold_relational_const): Add support for unordered comparison tree
1588 nodes. Don't constant fold "ordered" floating point comparisons
1589 against NaN if when flag_trapping_math is set.
1591 2004-06-19 Jakub Jelinek <jakub@redhat.com>
1593 * fold-const.c (build_range_check): If !in_p and recursive call
1594 fails, exit immediately. If high - low overflows and etype is
1595 a signed type, retry with unsigned etype.
1596 (merge_ranges): If !in0_p and !in1_p, handle even range2 adjacent
1597 to range1 at TYPE_MAX_VALUE and TYPE_MIN_VALUE.
1599 2004-06-18 Richard Henderson <rth@redhat.com>
1601 * c-gimplify.c (gimplify_condition): Remove.
1602 (gimplify_c_loop, gimplify_if_stmt, gimplify_switch_stmt): Don't
1605 2004-06-18 Richard Henderson <rth@redhat.com>
1607 * tree-eh.c (decide_copy_try_finally): Fix scaling of copy and
1610 2004-06-18 Andrew Pinski <pinskia@physics.uc.edu>
1612 * config/i386/darwin.h (HOT_TEXT_SECTION_NAME): Define.
1613 (NORMAL_TEXT_SECTION_NAME): Define.
1614 (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
1615 (SECTION_FORMAT_STRING): Define.
1617 2004-06-18 Steven Bosscher <stevenb@suse.de>
1619 * config/xtensa/xtensa.c
1620 (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define.
1621 * xtensa.md: Replace the old pipeline description with a DFA model.
1623 2004-06-18 Steven Bosscher <stevenb@suse.de>
1624 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1626 * config/s390/s390.md: Remove the generic pipeline description.
1627 * config/s390/2064.md: Make all insn reservations apply to
1628 the z900, g5 and g6.
1629 * config/s390/s390.c (s390_use_dfa_pipeline_interface): Remove.
1630 (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
1631 Define to hook_int_void_1.
1632 (s390_adjust_cost): Cleanup. Don't check address dependency here.
1633 (s390_first_cycle_multipass_dfa_lookahead): Always return 4.
1635 2004-06-18 Daniel Berlin <dberlin@dberlin.org>
1636 Diego Novillo <dnovillo@redhat.com>
1638 * tree-dfa.c (create_var_ann): tree_ann -> tree_ann_t.
1639 (create_stmt_ann): Ditto.
1640 (create_tree_ann): New function.
1641 (create_cst_ann): Remove.
1642 (create_expr_ann): Ditto.
1644 * tree-flow-inline.h (cst_ann): Remove.
1645 (get_cst_ann): Ditto.
1646 (get_expr_ann): Ditto.
1648 (get_tree_ann): New function.
1650 (ann_type): tree_ann -> tree_ann_t.
1651 * tree-flow.h (tree_ann_type): CST_ANN, EXPR_ANN removed.
1652 (struct cst_ann_d): Removed.
1653 (struct expr_ann_d): Ditto.
1654 (union tree_ann_d): Removed cst and expr.
1655 (tree_ann): Renamed to tree_ann_t.
1656 * tree-ssa-ccp.c (set_rhs): tree_ann -> tree_ann_t.
1657 * tree-ssa-pre.c (get_value_handle): Rewrite for single common
1659 (set_value_handle): Ditto.
1660 (phi_translate): Ditto.
1661 * tree-tailcall.c (adjust_return_value): tree_ann -> tree_ann_t.
1663 2004-06-18 Kaz Kojima <kkojima@gcc.gnu.org>
1665 * config/sh/t-linux64: New file.
1666 * config.gcc: Add it to tmake_file for sh64*-*-linux*.
1668 2004-06-18 Paolo Bonzini <bonzini@gnu.org>
1670 * emit-rtl.c (unshare_all_rtl_1): New name of unshare_all_rtl.
1671 (unshare_all_rtl_again): Call unshare_all_rtl_1.
1672 (unshare_all_rtl): New.
1673 * function.c (instantiate_virtual_regs): Remove parameters.
1674 * function.h (instantiate_virtual_regs): Add prototype.
1675 * rtl.h (unshare_all_rtl): Add prototype.
1676 * tree.h (instantiate_virtual_regs, unshare_all_rtl): Remove
1678 * passes.c: Remove assertions on the parameters to
1679 rest_of_handle_* functions. Remove the parameters to
1680 the functions, replacing decl with current_function_decl
1681 and insns with get_insns ().
1683 2004-06-17 Roger Sayle <roger@eyesopen.com>
1685 * fold-const.c (constant_boolean_node): Handle boolean_type_node
1686 directly, return either boolean_true_node or boolean_false_node.
1688 2004-06-18 Kelley Cook <kcook@gcc.gnu.org>
1690 * opts.sh: Delete. Break out generated code to next four files.
1691 * opt-gather.awk: New file.
1692 * optc-gen.awk: New file.
1693 * opth-gen.awk: New file.
1694 * opt-functions.awk: New common file.
1695 * Makefile.in: Update for above.
1696 * configure.ac: Update comment.
1697 * configure: Regenerate.
1699 2004-06-17 Richard Henderson <rth@redhat.com>
1701 * c-common.c (flag_objc_sjlj_exceptions): New.
1702 * c-common.h (flag_objc_sjlj_exceptions): Declare.
1703 * c-opts.c (c_common_handle_option): Set it.
1704 (c_common_post_options): Handle interation of different
1705 objective-c exception and runtime switches.
1706 * c-decl.c (c_eh_initialized_p): New.
1707 (finish_decl): Use it instead of local eh_initialized_p.
1708 * c-parse.in (nested_function, notype_nested_function): Record
1709 the result of compstmt.
1710 (compstmt_or_error): Likewise.
1711 (compstmt): Don't add_stmt the result.
1712 (stmt): Don't return anything. Rewrite objc try and sync rules.
1713 (objc_try_stmt, objc_catch_list): Remove.
1714 (objc_catch_block, objc_finally_block): Remove.
1715 (objc_catch_prefix, objc_catch_clause, objc_opt_catch_list): New.
1716 (objc_try_catch_clause, objc_finally_clause): New.
1717 (objc_try_catch_stmt): Rewrite.
1718 * c-tree.h (c_eh_initialized_p): Declare.
1719 * c-opt (fobjc-sjlj-exceptions): New.
1720 * except.c (output_function_exception_table): Don't call cgraph
1722 * objc/objc-act.c (UTAG_EXCDATA_VAR, UTAG_CAUGHTEXC_VAR,
1723 UTAG_RETHROWEXC_VAR, UTAG_EVALONCE_VAR, struct val_stack,
1724 catch_count_stack, exc_binding_stack, if_nesting_count,
1725 blk_nesting_count, objc_enter_block, objc_exit_block,
1726 objc_declare_variable, val_stack_push, val_stack_pop,
1727 objc_build_try_enter_fragment, objc_build_extract_expr,
1728 objc_build_try_exit_fragment, objc_build_extract_fragment,
1729 objc_build_try_prologue, objc_build_try_epilogue,
1730 objc_build_catch_stmt, objc_build_catch_epilogue,
1731 objc_build_finally_prologue, objc_build_finally_epilogue,
1732 objc_build_try_catch_finally_stmt, objc_build_synchronized_prologue,
1733 objc_build_synchronized_epilogue): Remove.
1734 (objc_create_temporary_var, struct objc_try_context, cur_try_context,
1735 objc_eh_runtime_type, objc_init_exceptions, objc_build_exc_ptr,
1736 next_sjlj_build_try_exit, next_sjlj_build_enter_and_setjmp,
1737 next_sjlj_build_exc_extract, next_sjlj_build_catch_list,
1738 next_sjlj_build_try_catch_finally, objc_begin_try_stmt,
1739 objc_begin_catch_clause, objc_finish_catch_clause,
1740 objc_build_finally_clause, objc_finish_try_stmt,
1741 objc_build_synchronized): New.
1742 (objc_is_object_id, objc_is_class_id): New.
1743 (objc_comptypes): Use them.
1744 (build_next_objc_exception_stuff): Break NeXT sjlj out from
1745 build_objc_exception_stuff.
1746 (synth_module_prologue): Update to match.
1747 (objc_build_throw_stmt): Use cur_try_context to decide if
1749 * objc/objc-act.h: Update prototypes.
1750 (OCTI_EXCEPTION_BLK_STACK, objc_exception_block_stack): Remove.
1752 2004-06-17 Andrew Pinski <apinski@apple.com>
1754 * c-typeck.c (tagged_types_tu_compatible_p <case UNION_TYPE>):
1755 Use TYPE_FIELDS instead of TYPE_VALUES.
1757 2004-06-17 Jason Merrill <jason@redhat.com>
1760 * gimplify.c (gimplify_target_expr): Handle void initializer.
1761 * expr.c (expand_expr_real_1) [TARGET_EXPR]: Likewise.
1762 * doc/c-tree.texi (Expression trees): Update TARGET_EXPR
1765 2004-06-17 Roger Sayle <roger@eyesopen.com>
1767 * fold-const.c (fold_relational_const): Use constant_boolean_node.
1769 2004-06-17 Jan Hubicka <jh@suse.cz>
1772 * i386.md (SSE SF cmov 0 splitter): The conditional is VOIDmode; fix
1773 operand numbering in the output template.
1774 (SSE DF cmov 0 splitter): The conditional is VOIDmode.
1776 2004-06-17 Jan Hubicka <jh@suse.cz>
1778 * except.c (can_throw_internal): Recognize RESX expresisons.
1780 2004-06-17 Jan Hubicka <jh@suse.cz>
1782 * cfgbuild.c (make_edges): Do not use label_value_list.
1783 (find_basic_blocks_1): Do not collect label_value_list.
1784 (find_sub_basic_blocks): Update call of make_edges.
1786 2004-06-17 Andrew MacLeod <amacleod@redhat.com>
1788 * tree-cfg.c (tree_make_forwarder_block): Use SET_PHI_RESULT.
1789 * tree-flow-inline.h (get_use_op_ptr): Return a use_operand_p.
1790 (get_use_from_ptr, get_def_from_ptr): New. Return operand pointers.
1791 (get_def_op_ptr): Return a def_operand_p instead of a 'tree *'.
1792 (get_v_may_def_result_ptr): Return a def_operand_p.
1793 (get_v_may_def_op_ptr, get_vuse_op_ptr): Return a use_operand_p.
1794 (get_v_must_def_op_ptr): Return a def_operand_p.
1795 (get_phi_result_ptr): New. Return a pointer to the result of a PHI.
1796 (get_phi_arg_def_ptr): New. Return a pointer to an argument of a PHI.
1797 (phi_element_for_edge): Remove.
1798 * tree-flow.h (propagate_value, replace_exp): Change prototype.
1799 (propagate_tree_value): Add new prototype.
1800 (phi_element_for_edge): Remove prototype.
1801 * tree-into-ssa.c (mark_def_sites): Use new operand types.
1802 (prepare_operand_for_rename): Split into two functions.
1803 (prepare_use_operand_for_rename): Prepare use operands.
1804 (prepare_def_operand_for_rename): Prepare def operands.
1805 (rewrite_stmt): Use new operand types.
1806 (rewrite_operand): Use new operand types, change parameter type.
1807 * tree-outof-ssa.c (replace_variable): Split into two functions.
1808 (replace_use_variable): Rewrite uses.
1809 (replace_def_variable): Rewrite defs.
1810 (rewrite_trees, rewrite_vars_out_of_ssa): Use new operand types.
1811 * tree-phinodes.c (make_phi_node, resize_phi_node): Use new types.
1812 (add_phi_arg, remove_phi_arg_num): Use new operand types.
1813 * tree-ssa-ccp.c (substitute_and_fold): Use new operand types.
1814 (ccp_fold, replace_uses_in): Use new operand types.
1815 * tree-ssa-copy.c (replace_ssa_names): Rename to replace_ssa_names_ann
1816 and no longer set the value, change parameter type.
1817 (replace_exp_1): Use new operand types.
1818 (propagate_value): Change parameter type, use new operand types.
1819 (propagate_tree_value): Propagate_value without SSA operands.
1820 (replace_exp, cprop_operand, cprop_into_stmt): Use new operand types.
1821 (cprop_into_successor_phis): Use new operand types.
1822 * tree-ssa-dom.c (thread_across_edge): Use new operand types.
1823 (eliminate_redundant_computations): Use new operand types.
1824 * tree-ssa-dse.c (fix_phi_uses): Use new operand_types.
1825 (fix_stmt_v_may_defs): Use new operand_types.
1826 * tree-ssa-live.c (create_ssa_var_map): Use new operand_types.
1827 (build_tree_conflict_graph): Use new operand_types.
1828 * tree-ssa-loop.c (duplicate_blocks): Use PHI_ARG_DEF_FROM_EDGE.
1829 * tree-ssa-operands.c (struct freelist_d): Remove.
1830 (check_optype_freelist, add_optype_freelist): Remove.
1831 (allocate_def_optype, allocate_use_optype, allocate_v_may_def_optype,
1832 allocate_vuse_optype, allocate_v_must_def_optype): Call ggc_alloc.
1833 (free_uses, free_defs, free_vuses, free_v_may_defs, free_v_must_defs):
1834 Call ggc_free instead of add_optype_freelist.
1835 (init_ssa_operands, fini_ssa_operands): Remove free list code.
1836 (finalize_ssa_defs, finalize_ssa_uses): Set new use/def operands.
1837 * tree-ssa-operands.h (struct def_optype_d): Change underlying type.
1838 (struct use_optype_d): Change underlying type.
1839 (def_operand_p, use_operand_p): New types for pointers to operands.
1840 (USE_OP, DEF_OP, V_MAY_DEF_RESULT, V_MAY_DEF_OP, VUSE_OP,
1841 V_MUST_DEF_OP): Use new pointer type instead of dereferencing directly.
1842 (USE_FROM_PTR, DEF_FROM_PTR): New macros to "dereference" operand
1844 (SET_USE, SET_DEF): New macros to set operands from their pointer.
1845 (SET_USE_OP, SET_DEF_OP, SET_V_MAY_DEF_RESULT, SET_V_MAY_DEF_OP,
1846 SET_VUSE_OP, SET_V_MUST_DEF_OP): New SET routines for operands.
1847 (PHI_RESULT_PTR, PHI_RESULT, SET_PHI_RESULT): Macros to manage the
1848 PHI result as an operand.
1849 (PHI_ARG_DEF_PTR, PHI_ARG_DEF, SET_PHI_ARG_DEF, PHI_ARG_DEF_FROM_EDGE,
1850 PHI_ARG_DEF_PTR_FROM_EDGE): Macros to manage the PHI arguments.
1851 * tree-ssa-pre.c (eliminate): Call propagate_tree_value.
1852 * tree-tailcall.c (independent_of_stmt_p, propagate_through_phis): Use
1853 PHI_ARG_DEF_FROM_EDGE.
1854 * tree.h (PHI_RESULT): Renamed to PHI_RESULT_TREE.
1855 (PHI_ARG_DEF): Renamed to PHI_ARG_DEF_TREE.
1857 2004-06-17 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
1859 PR tree-optimization/15991
1860 * tree-cfg.c (tree_block_label): Export.
1861 * tree-flow-inline.h (bsi_after_labels): New function.
1862 * tree-flow.h (bsi_after_labels, tree_block_label): Declare.
1863 * tree-ssa.c (propagate_into_addr): New function.
1864 (replace_immediate_uses): Handle propagation of pointer constants.
1865 (raise_value): Do not restrict propagation of pointer constants.
1866 * tree-ssanames.c (duplicate_ssa_name): New function.
1867 * tree.h (duplicate_ssa_name): Declare.
1869 2004-06-17 David Ayers <d.ayers@inode.at>
1871 * c-parse.in: Unify Objective-C token names.
1873 2004-06-17 Zack Weinberg <zack@codesourcery.com>
1876 * Makefile.in (min-insn-modes.o): Correct dependencies.
1877 * real.c (encode_ieee_extended, decode_ieee_extended): Always
1878 produce/consume 12-byte little-endian Intel format.
1879 (encode_ieee_extended_128, decode_ieee_extended_128): Delete.
1880 (encode_ieee_extended_motorola, decode_ieee_extended_motorola)
1881 (encode_ieee_extended_intel_96, decode_ieee_extended_intel_96)
1882 (encode_ieee_extended_intel_128, decode_ieee_extended_intel_128):
1883 New functions which convert between 12-byte little-endian Intel
1884 format and the desired format.
1885 (ieee_extended_motorola_format, ieee_extended_intel_96_round_53_format)
1886 (ieee_extended_intel_96_format, ieee_extended_intel_128_format):
1889 2004-06-17 Zack Weinberg <zack@codesourcery.com>
1891 * expmed.c (expand_mult_const): In sanity check, compare only
1892 the bits of val and val_so_far that are significant in the
1895 2004-06-17 Daniel Berlin <dberlin@dberlin.org>
1897 * tree-ssa-pre.c: Update comments.
1898 (val_expr_pair_eq): Factor code from here.
1899 (expr_pred_trans_eq): and here.
1900 (expressions_equal_p): To here.
1901 (print_value_set): Print value for expression.
1902 (phi_trans_lookup): Rename some variables.
1904 (value_exists_in_set_bitmap): Ditto.
1905 (value_remove_from_set_bitmap): Ditto.
1906 (value_insert_into_set_bitmap): Ditto.
1908 2004-06-17 Ulrich Weigand <uweigand@de.ibm.com>
1910 * config/s390/s390-modes.def (CCL3mode): New machine mode.
1911 * config/s390/s390.c (s390_match_ccmode_set): Support CCL3mode.
1912 (s390_alc_comparison, s390_slb_comparison): Likewise.
1913 (s390_branch_condition_mask): Likewise.
1914 * config/s390/s390.md ("*subdi3_cc2", "*subdi3_cconly2"): New.
1915 ("*subsi3_cc2", "*subsi3_cconly2"): New.
1917 * config/s390/s390.h (PREDICATE_CODE): Accept SIGN_EXTEND and
1918 ZERO_EXTEND for s390_alc_comparison and s390_slb_comparison.
1919 * config/s390/s390.c (s390_alc_comparison, s390_slb_comparison):
1920 Handle SIGN_EXTEND and ZERO_EXTEND.
1922 * config/s390/s390-protos.h (s390_expand_addcc): New prototype.
1923 * config/s390/s390.c (s390_expand_addcc): New function.
1924 * config/s390/s390.md ("adddicc", "addsicc"): New expanders.
1925 ("*sconddi", "*scondsi", "*sconddi_neg", "*scondsi_neg"): New insns.
1926 ("sltu", "sgtu", "sleu", "sgeu"): New expanders.
1928 2004-06-17 Ben Elliston <bje@au.ibm.com>
1930 * tree-alias-common.c: Add whitespace.
1931 * tree-inline.c: Correct comment about this file's purpose.
1932 * tree-optimize.c: Likewise.
1933 * tree-tailcall.c: Likewise.
1935 * tree-alias-ander.h: Add standard top-of-file comment.
1936 * tree-alias-common.h: Likewise.
1937 * tree-alias-type.h: Likewise.
1939 2004-06-16 Daniel Berlin <dberlin@dberlin.org>
1941 * tree-ssa-pre.c (compute_avail): Value number uses as well.
1942 Strip useless type conversions.
1943 Casts have to be treated slightly different than normal unaries.
1945 2004-06-16 Richard Henderson <rth@redhat.com>
1947 * c-common.def (COMPOUND_STMT): Remove.
1948 * c-common.c (finish_fname_decls): Don't look through it.
1949 * c-typeck.c (c_tree_expr_nonnegative_p): Likewise.
1950 * c-common.h (COMPOUND_BODY): Remove.
1951 (c_common_stmt_codes): Remove COMPOUND_STMT.
1952 * c-dump.c (c_dump_tree): Likewise.
1953 * c-gimplify.c (c_gimplify_stmt): Likewise.
1954 * c-pretty-print.c (pp_c_statement): Likewise.
1955 * tree.h (DECL_SAVED_TREE): Update commentary.
1956 * doc/c-tree.texi (ASM_EXPR): Rename from ASM_STMT.
1957 (CASE_LABEL_EXPR): Rename from CASE_LABEL.
1958 (GOTO_EXPR): Rename from GOTO_STMT.
1959 (GOTO_FAKE_P): Remove.
1960 (COMPOUND_STMT): Remove.
1961 (HANDLER): Update wrt COMPOUND_STMT.
1962 (STMT_EXPR): Likewise.
1963 (LABEL_EXPR): Rename from LABEL_STMT.
1964 (SCOPE_STMT): Remove.
1965 * objc/objc-act.c (objc_build_try_catch_finally_stmt): Don't look
1966 through COMPOUND_STMT.
1968 2004-06-16 Richard Henderson <rth@redhat.com>
1970 * c-common.h (c_begin_if_stmt, c_begin_while_stmt,
1971 c_finish_while_stmt_cond): Remove decls.
1972 * c-parse.in (if_prefix): Don't save c_begin_if_stmt result.
1973 * c-typeck.c (c_begin_if_stmt): Return void.
1974 (c_begin_else): Tidy. Save stmt_count.
1975 * c-tree.h (c_begin_if_stmt): Update decl.
1977 * objc/objc-act.c (objc_build_try_enter_fragment,
1978 objc_build_extract_fragment, objc_build_try_epilogue,
1979 objc_build_catch_stmt, objc_build_catch_epilogue,
1980 objc_build_finally_prologue, objc_build_finally_epilogue): Update
1981 for if builder function changes.
1983 2004-06-16 Ulrich Weigand <uweigand@de.ibm.com>
1985 * config/s390/s390.c (struct machine_function): New member
1987 (s390_frame_info): Add BASE_USED and RETURN_ADDR_USED parameters.
1988 Do not modify machine->save_return_addr_p or regs_ever_live.
1989 Fill in machine->last_restore_gpr.
1990 (s390_optimize_prolog): Use s390_frame_info to compute registers
1991 to save/restore, remove duplicated code.
1992 (s390_arg_frame_offset): Use s390_frame_info to compute frame
1993 size, remove duplicated code.
1994 (s390_emit_prologue): Adapt s390_frame_info call. Update
1995 machine->save_return_addr_p and regs_ever_live.
1996 (s390_emit_epilogue): Use machine->last_restore_gpr instead of
1997 machine->last_save_gpr.
1999 2004-06-16 Richard Henderson <rth@redhat.com>
2001 * c-parse.in (if_stmt_locus): Remove.
2002 (if_prefix): Increment stmt_count; pass it to c_finish_if_cond.
2003 (select_or_iter_stmt): Move empty if warnings to c-typeck.c.
2004 * c-typeck.c (if_elt): Sort by expected size. Rename locus to
2005 empty_locus. Add stmt_count, saw_else.
2006 (c_begin_if_stmt): Push if_stack here.
2007 (c_finish_if_cond): Rename from c_expand_end_cond. Record stmt_count.
2008 (c_finish_then, c_finish_else): Record empty_locus.
2009 (c_begin_else): Rename from c_expand_start_else. Record stmt_count.
2010 (c_finish_if_stmt): Rename from c_expand_end_cond. Warn for empty
2012 * c-tree.h: Update prototypes.
2014 2004-06-16 Steven Bosscher <stevenb@suse.de>
2016 * tree.h (PHI_CHAIN): New.
2017 * (tree-cfg.c, tree-dfa.c, tree-flow-inline.h, tree-into-ssa.c,
2018 tree-outof-ssa.c, tree-phinodes.c, tree-pretty-print.c,
2019 tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-dse.c,
2020 tree-ssa-live.c, tree-ssa-loop.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
2021 tree-ssa.c, tree-tailcall.c): Use PHI_CHAIN instead of TREE_CHAIN
2022 when traversing a list of PHI_NODEs.
2024 2004-06-16 Bernardo Innocenti <bernie@develer.com>
2027 * config/m68k/m68k.h (TARGET_SWITCHES): Don't remove MASK_68040_ONLY
2029 (TARGET_FLT_EVAL_METHOD): Don't advertise extended precision for
2030 68040 and soft-float.
2031 * config/m68k/m68k.md (truncdfsf2): Explicitly require TARGET_68881
2032 in the TARGET_68040_ONLY case.
2034 2004-06-16 Peter Barada <peter@the-baradas.com>
2036 * config/m68k/m68k.md (movsi_cfv4): New pattern to allow mov3q.
2037 (movsi_cf): Make named, don't match TARGET_CFV4.
2038 (pushexthisi_const): Use mov3q if possible.
2039 (extendhisi2, cvf4_extendhisi2): Split extendhisi2 pattern
2040 to special case mvz.w for ColdFire V4.
2041 (extendqisi2, cvf4_extendqisi2): Split extendhisi2 pattern
2042 to special case mvz.b for ColdFire V4.
2043 (udivmodhi4, divmodhi4): Use mvz to zero extend arg for
2045 (iorsi3, xorsi3, andsi3): Use bitfield instructions if possible.
2046 * config/m68k/m68k.c(valid_mov3q_const): New function.
2047 (const_method): SWAP is valid for ColdFire.
2048 (MULL_COST, MULW_COST): Fix costs for ColdFire V3/V4.
2049 * config/m68k/m68k-protos.h (valid_mov3q_const): Prototype here.
2051 2004-06-16 Richard Henderson <rth@redhat.com>
2053 * c-common.def (CASE_LABEL): Remove.
2054 * c-common.c (c_add_case_label): Use CASE_LABEL, not CASE_LABEL_DECL.
2055 (match_case_to_enum_1): Likewise.
2056 * c-common.h (c_common_stmt_codes): Remove CASE_LABEL.
2057 * c-dump.c (c_dump_tree): Likewise.
2058 * c-gimplify.c (c_gimplify_stmt): Likewise.
2059 * c-pretty-print.c (pp_c_statement): Likewise.
2060 * c-semantics.c (build_case_label): Use CASE_LABEL_EXPR.
2061 * tree.h (CASE_LOW): Update commentary.
2063 2004-06-16 Richard Henderson <rth@redhat.com>
2065 * c-common.def (ASM_STMT): Remove.
2066 * c-common.h (c_common_stmt_codes): Remove ASM_STMT.
2067 * c-dump.c (c_dump_tree): Likewise.
2068 * c-gimplify.c (c_gimplify_stmt): Likewise.
2069 * c-pretty-print.c (pp_c_statement): Likewise.
2070 * c-typeck.c (build_asm_expr): Use ASM_EXPR.
2071 * tree.h: Fix commentary.
2073 2004-06-16 Richard Henderson <rth@redhat.com>
2075 * c-common.def (GOTO_STMT, LABEL_STMT): Remove.
2076 * c-common.c (c_add_case_label): Use LABEL_EXPR.
2077 * c-common.h (GOTO_FAKE_P, LABEL_STMT_LABEL): Remove.
2078 (c_common_stmt_codes): Remove GOTO_STMT, LABEL_STMT.
2079 * c-dump.c (c_dump_tree): Likewise.
2080 * c-gimplify.c (c_gimplify_stmt): Likewise.
2081 * c-pretty-print.c (pp_c_statement): Likewise.
2082 * c-parse.in (stmt): Use GOTO_EXPR.
2083 (label): Use LABEL_EXPR.
2084 * c-semantics.c (build_stmt): Set TREE_TYPE to void.
2085 * tree-inline.c (copy_body_r): Don't build empty BLOCKs.
2087 2004-06-16 J"orn Rennecke <joern.rennecke@superh.com>
2089 * cfgcleanup.c (try_simplify_condjump): Update test to make
2090 sure we have a conditional branch around am unconditional branch.
2092 2004-06-16 Daniel Berlin <dberlin@dberlin.org>
2094 * tree-cfg.c (pass_split_crit_edge): Give it a name and a dump file.
2096 2004-06-16 Dale Johannesen <dalej@apple.com>
2098 * loop.c (loop_givs_reduce): Avoid miscompilation of
2099 loops entered at bottom.
2101 2004-06-16 J"orn Rennecke <joern.rennecke@superh.com>
2103 * cfglayout.c (fixup_reorder_chain): Handle case where the
2104 destination of E_FALL is EXIT_BLOCK_PTR.
2106 2004-06-16 Vladimir Makarov <vmakarov@redhat.com>
2109 * config/ia64/ia64.c (ia64_dfa_new_cycle): Do not insert nops
2110 after shifts before asm.
2112 2004-06-16 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
2114 PR tree-optimization/15993
2115 * tree-ssa-dom.c (thread_across_edge): Do not thread edge if its
2116 destination is unchanged.
2118 2004-06-16 Andreas Jaeger <aj@suse.de>
2120 * doc/install.texi (Configuration): Update description for
2121 --enable-version-specific-runtime-libs.
2123 2004-06-16 Paolo Bonzini <bonzini@gnu.org>
2125 * doc/install.texi: boehm-gc now uses automake 1.8.5.
2127 2004-06-16 Paolo Bonzini <bonzini@gnu.org>
2129 * toplev.h (rest_of_compilation): Adjust prototype.
2131 2004-06-16 Paolo Bonzini <bonzini@gnu.org>
2133 * coverage.c: Remove argument to rest_of_compilation.
2134 * expr.c (execute_expand, set_save_expr_context, pass_expand): New.
2135 * passes.c (rest_of_compilation): Remove argument.
2136 (pass_rest_of_compilation): New.
2137 (rest_of_handle_final, rest_of_handle_delay_slots,
2138 rest_of_handle_stack_regs, rest_of_handle_variable_tracking
2139 rest_of_handle_machine_reorg, rest_of_handle_regrename
2140 rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_gcse2
2141 rest_of_handle_regmove, rest_of_handle_tracer
2142 rest_of_handle_if_conversion, rest_of_handle_if_after_combine
2143 rest_of_handle_web, rest_of_handle_branch_prob
2144 rest_of_handle_value_profile_transformations, rest_of_handle_cfg
2145 rest_of_handle_addressof, rest_of_handle_jump_bypass
2146 rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2):
2147 Check that the two arguments are actually superfluous.
2148 * tree-optimize.c (register_dump_files): Add properties argument.
2149 Track validity of passes. Only initialize dump files for
2150 tree-based passes. Store the full set of provided passes in
2152 (init_tree_optimization_passes): Register pass_expand and
2153 pass_rest_of_compilation.
2154 (execute_one_pass): Do not track the presence of required properties
2155 here. Set in_gimple_form. Do not update current_properties.
2156 (current_properties): Remove.
2157 (set_save_expr_context): Remove.
2158 (tree_rest_of_compilation): Do not set in_gimple_form. Do not
2159 expand to RTL here, and do not call rest_of_compilation. Push
2160 GGC context even before gimplification.
2161 * tree-pass.h (PROP_rtl, PROP_trees): New flags.
2162 (pass_expand, pass_rest_of_compilation): Declare.
2164 2004-06-15 Jeff Law <law@redhat.com>
2166 * fold-const.c (swap_tree_comparison): No longer static.
2167 (tree_swap_operands_p): Similarly. Return true if both operands
2168 are SSA_NAMEs and the first operand has a higher version number than
2170 * tree.h (swap_tree_comparison): Prototype.
2171 (tree_swap_operands_p): Prototype.
2172 * tree-ssa-operands.c (get_expr_operands): For commutative
2173 operators and relational comparisons, canonicalize the
2174 order of the operands.
2176 2004-06-15 Richard Henderson <rth@redhat.com>
2178 * c-common.c (lang_gimplify_stmt): Remove next_p argument.
2179 (if_elt, if_stack, if_stack_space, c_expand_start_cond, c_finish_then,
2180 c_expand_end_cond, c_expand_start_else, c_finish_else, c_begin_if_stmt,
2181 c_begin_while_stmt, c_finish_while_stmt_cond): Move to c-typeck.c.
2182 (finish_fname_decls, fname_decl): Use statement_lists.
2183 (c_expand_expr_stmt): Don't set last_expr_type.
2184 (c_type_hash): Fix indentation.
2185 (c_safe_from_p): Don't follow TREE_CHAIN.
2186 (c_tree_chain_matters_p): Remove.
2187 * c-common.def (SCOPE_STMT): Remove.
2188 (CLEANUP_STMT): Redefine to contain its own body.
2189 * c-common.h (struct stmt_tree_s): Remove x_last_stmt,
2190 x_last_expr_type, x_last_expr_filename, x_scope_stmt_stack.
2191 Add x_cur_stmt_list.
2192 (last_tree, last_expr_type, last_expr_filename, RECHAIN_STMTS): Remove.
2193 (cur_stmt_list): New.
2194 (STATEMENT_LIST_STMT_EXPR): New.
2195 (SCOPE_BEGIN_P, SCOPE_END_P, SCOPE_STMT_BLOCK, SCOPE_NULLIFIED_P,
2196 SCOPE_NO_CLEANUPS_P, SCOPE_PARTIAL_P, NEW_FOR_SCOPE_P): Remove.
2197 (CLEANUP_BODY): New.
2198 (CLEANUP_DECL): Move to operand 2.
2199 (c_common_stmt_codes): Remove SCOPE_STMT.
2200 (COMPOUND_STMT_NO_SCOPE, COMPOUND_STMT_BODY_BLOCK): Remove.
2201 * c-decl.c (c_scope_stmt_stack, current_scope_stmt_stack): Remove.
2202 (c_push_function_context, c_pop_function_context): Don't save it.
2203 (finish_decl): Set TREE_USED on the decl for a cleanup.
2205 (store_parm_decls): Use statement lists.
2206 (finish_function): Remove compstmt rule workaround. Use statement
2207 lists. Call finish_fname_decls after finalizing the body.
2208 (c_begin_compound_stmt): Move to c-typeck.c.
2209 * c-dump.c (c_dump_tree): Remove SCOPE_STMT.
2210 * c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts): New.
2211 (c_genericize): Invoke them.
2212 (c_gimplify_stmt): Don't look through TREE_CHAIN. Kill SCOPE_STMT.
2213 (c_build_bind_expr): Export.
2214 (gimplify_block, gimplify_cleanup): Remove.
2215 (gimplify_condition): Use gimplify_stmt.
2216 (gimplify_for_stmt): Remove FOR_INIT_STMT chaining hack.
2217 (gimplify_if_stmt): Remove recursion hack.
2218 (c_gimplify_expr): Remove STMT_EXPR handling.
2219 (stmt_expr_last_stmt, gimplify_stmt_expr): Remove.
2220 (is_last_stmt_of_scope): Remove.
2221 * c-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Remove.
2222 * c-mudflap.c (mflang_flush_calls): Use c_begin_compound_stmt,
2223 c_end_compound_stmt.
2224 * c-objc-common.c (build_cdtor): Likewise.
2225 * c-parse.in (primary): Use c_finish_stmt_expr.
2226 (push_scope, pop_scope): Remove.
2227 (c99_block_start, compstmt_start): Use c_begin_compound_stmt.
2228 (c99_block_end, compstmt): Use c_end_compound_stmt.
2229 (c99_block_lineno_labeled_stmt): Likewise.
2230 (compstmt_primary_start): Use c_begin_stmt_expr.
2231 (simple_if, select_or_iter_stmt): Update calls to stmt builders.
2232 (do_stmt_start): Fill in body directly.
2233 (lineno_stmt): Avoid setting lineno on constants.
2234 * c-pretty-print.c (pp_c_statement): Handle STATEMENT_LIST.
2236 * c-semantics.c (begin_stmt_tree): Remove.
2237 (push_stmt_list, re_push_stmt_list, pop_stmt_list): New.
2238 (add_stmt): Use statement lists.
2239 (add_scope_stmt, finish_stmt_tree): Remove.
2240 (push_cleanup): New.
2241 * c-tree.h: Move some decls from c-common.h.
2242 * c-typeck.c (c_tree_expr_nonnegative_p): Simplify for statement lists.
2243 (do_case, c_finish_case): Likewise.
2244 (c_finish_then): Take body for then as argument.
2245 (c_finish_else): Similarly.
2246 (c_begin_for_stmt, c_finish_for_stmt_init, c_finish_for_stmt_cond,
2247 c_finish_for_stmt_incr, c_finish_for_stmt): New.
2248 (c_begin_stmt_expr, c_finish_stmt_expr): New.
2249 (c_begin_compound_stmt): Do scope management.
2250 (c_end_compound_stmt): New.
2251 * fold-const.c (tree_expr_nonnegative_p): Fix BIND_EXPR.
2252 * gimplify.c (voidify_wrapper_expr): Accept temporary argument.
2253 Look through exception handling constructs.
2254 (gimplify_bind_expr): Accept temporary argument.
2255 (gimplify_target_expr): Special case BIND_EXPR bodies.
2256 (gimplify_expr): Handle fallback == fb_none like a statement.
2257 * langhooks-def.h (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Kill.
2258 * langhooks.c (lhd_tree_inlining_tree_chain_matters_p): Remove.
2259 * langhooks.h (tree_chain_matters_p): Remove.
2260 * stub-objc.c (objc_clear_super_receiver): New.
2261 * tree-gimple.h (voidify_wrapper_expr): Update decl.
2262 (append_to_statement_list, append_to_statement_list_force): Move
2264 * tree-inline.c (expand_call_inline): Update call.
2265 (clone_body): Use statement lists.
2266 (walk_tree): Don't check tree_chain_matters_p.
2267 (copy_tree_r): Likewise.
2268 * tree-iterator.c (alloc_stmt_list): Clear lang bits.
2269 (tsi_link_before, tsi_link_after): Set TREE_SIDE_EFFECTS properly.
2270 * tree-iterator.h (append_to_statement_list,
2271 append_to_statement_list_force): Moved from tree-gimple.h.
2272 * tree-pretty-print.c (dump_generic_node): Clean up TARGET_EXPR dump.
2273 * objc/objc-act.c (build_module_descriptor): Use c_begin_compound_stmt.
2274 (objc_enter_block): Likewise.
2275 (objc_exit_block): Use c_end_compound_stmt.
2276 (objc_build_try_enter_fragment): Add #error and comment for
2277 rewriting for OBJCPLUS.
2278 (objc_build_extract_fragment, objc_build_try_epilogue,
2279 objc_build_catch_stmt, objc_build_finally_prologue,
2280 objc_build_finally_epilogue): Update for C statement builders.
2281 * objc/objc-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P):
2284 2004-06-15 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
2286 * df.c (df_reg_clobber_gen): Removed.
2287 (df_bb_rd_local_compute, df_insn_refs_record, df_rd_local_compute):
2288 Make more effective for hard regs.
2289 * ra-build.c (livethrough_conflicts_bb): Check contains_call.
2291 2004-06-15 Alexandre Oliva <aoliva@redhat.com>
2293 * c-pragma.h (c_lex_string_translate): Change type to int.
2294 * c-parse.in: Change all assignments of c_lex_string_translate
2295 to true and false to 1 and 0.
2296 * c-lex.c (c_lex_string_translate): Likewise.
2297 (lex_string): Convert string without translation in the -1
2300 2004-06-15 Mark G. Adams <mark.g.adams@sympatico.ca>
2302 * convert.h: Add include guards
2304 2004-06-15 Daniel Berlin <dberlin@dberlin.org>
2306 * tree-flow-inline.h: Document all functions.
2308 2004-06-15 Daniel Berlin <dberlin@dberlin.org>
2310 * tree-flow-inline.h (stmt_ann): Remove use of is_essa_node.
2311 * tree-dfa.c (create_stmt_ann): Ditto.
2312 * tree-pretty-print.c (dump_generic_node): Remove E* node handling.
2313 * tree-inline.c (estimate_num_insns_1): Ditto.
2314 * tree.c (tree_size): Ditto.
2315 (make_node_stat): Ditto.
2316 (tree_node_structure): Ditto.
2317 (ephi_node_elt_check_failed): Remove.
2318 (is_essa_node): Ditto.
2319 * tree.def (EPHI_NODE): Ditto.
2320 (EEXIT_NODE): Ditto.
2322 (EKILL_NODE): Ditto.
2323 * tree.h (EREF_NODE_CHECK): Remove.
2324 (EPHI_NODE_ELT_CHECK): Ditto.
2325 (struct tree_eref_common): Ditto.
2326 (struct tree_euse_node): Ditto.
2327 (struct ephi_arg_d): Ditto.
2328 (struct tree_ephi_node): Ditto.
2329 (ephi_node_elt_check_failed): Remove prototype.
2330 (is_essa_node): Ditto.
2331 (enum tree_node_structure_enum): Remove TS_E*_NODE.
2332 (union tree_node): Remove E*_NODE uses.
2334 2004-06-15 Jerry Quinn <jlquinn@optonline.net>
2336 * alias.c (record_set, record_base_value, canon_rtx, get_addr,
2337 nonlocal_mentioned_p_1, init_alias_analysis): Use REG_P.
2338 * bt-load.c (find_btr_reference, insn_sets_btr_p, note_btr_set):
2340 * builtins.c (expand_builtin_setjmp, expand_builtin_apply,
2341 expand_builtin_mathfn, expand_builtin_strlen, expand_builtin_memcmp,
2342 expand_builtin_strcmp, expand_builtin_strncmp,
2343 expand_builtin_frame_address): Likewise.
2344 * caller-save.c (mark_set_regs, add_stored_regs, mark_referenced_regs,
2345 insert_one_insn): Likewise.
2346 * calls.c (prepare_call_address, precompute_register_parameters,
2347 precompute_arguments, expand_call, emit_library_call_value_1): Likewise.
2348 * cfganal.c (flow_active_insn_p): Likewise.
2349 * combine.c (set_nonzero_bits_and_sign_copies, can_combine_p,
2350 combinable_i3pat, try_combine, find_split_point, COMBINE_RTX_EQUAL_P,
2351 subst, combine_simplify_rtx, simplify_if_then_else, simplify_set,
2352 make_extraction, recog_for_combine, gen_lowpart_for_combine,
2353 simplify_comparison, record_dead_and_set_regs_1,
2354 record_dead_and_set_regs, record_promoted_value,
2355 check_promoted_subreg, get_last_value_validate, get_last_value,
2356 reg_dead_at_p_1, reg_bitfield_target_p, distribute_notes,
2357 unmentioned_reg_p_1): Likewise.
2358 * conflict.c (mark_reg): Likewise.
2359 * cse.c (HASH, COST, COST_IN, approx_reg_cost_1, notreg_cost,
2360 mention_regs, insert_regs, lookup, lookup_for_remove, insert,
2361 merge_equiv_classes, flush_hash_table, invalidate,
2362 remove_invalid_refs, remove_invalid_subreg_refs, rehash_using_reg,
2363 invalidate_for_call, use_related_value, canon_hash, exp_equiv_p,
2364 cse_rtx_varies_p, canon_reg, find_best_addr, fold_rtx, equiv_constant,
2365 record_jump_cond, cse_insn, addr_affects_sp_p,
2366 invalidate_from_clobbers, cse_process_notes, cse_around_loop,
2367 cse_set_around_loop, count_reg_usage, set_live_p, cse_change_cc_mode,
2368 cse_cc_succs, cse_condition_code_reg): Likewise.
2369 * cselib.c (cselib_reg_set_mode, rtx_equal_for_cselib_p,
2370 cselib_lookup, cselib_invalidate_regno, cselib_invalidate_rtx,
2371 cselib_record_set, cselib_record_sets): Likewise.
2372 * dbxout.c (dbxout_symbol_location, dbxout_parms, dbxout_reg_parms,
2373 dbxout_block): Likewise.
2374 * df.c (df_ref_record, df_def_record_1, df_uses_record): Likewise.
2375 * dojump.c (do_jump): Likewise.
2376 * dwarf2out.c (dwarf2out_frame_debug_expr, is_pseudo_reg,
2377 is_based_loc, rtl_for_decl_location): Likewise.
2378 * emit-rtl.c (set_reg_attrs_for_parm, set_decl_rtl,
2379 set_decl_incoming_rtl, mark_user_reg): Likewise.
2380 * explow.c (copy_all_regs, copy_all_regs, memory_address, force_reg,
2381 copy_to_suggested_reg, allocate_dynamic_stack_space,
2382 probe_stack_range, hard_function_value): Likewise.
2383 * expmed.c (store_bit_field, store_fixed_bit_field,
2384 store_split_bit_field, extract_bit_field, extract_fixed_bit_field,
2385 extract_split_bit_field, expand_divmod, emit_store_flag_force):
2387 * expr.c (convert_move, convert_modes,
2388 block_move_libcall_safe_for_call_parm, emit_group_load, use_reg,
2389 use_group_regs, emit_move_insn, emit_move_insn_1,
2390 compress_float_constant, push_block, emit_single_push_insn,
2391 emit_push_insn, get_subtarget, expand_assignment, store_expr,
2392 store_constructor, store_field, force_operand, safe_from_p,
2393 expand_expr_real_1, expand_increment, do_store_flag, do_tablejump):
2395 * final.c (profile_function, final_scan_insn, alter_subreg,
2396 get_mem_expr_from_op, output_asm_operand_names, output_operand,
2397 only_leaf_regs_used, leaf_renumber_regs_insn): Likewise.
2398 * flow.c (verify_wide_reg_1, mark_regs_live_at_end,
2399 find_regno_partial, propagate_one_insn, init_propagate_block_info,
2400 insn_dead_p, libcall_dead_p, mark_set_1, not_reg_cond,
2401 attempt_auto_inc, find_auto_inc, mark_used_regs,
2402 count_or_remove_death_notes_bb): Likewise.
2403 * function.c (find_temp_slot_from_address, update_temp_slot_address,
2404 preserve_temp_slots, put_var_into_stack, fixup_var_refs_insn,
2405 fixup_var_refs_1, fixup_stack_1, optimize_bit_field, flush_addressof,
2406 put_addressof_into_stack, purge_addressof_1, insns_for_mem_walk,
2407 purge_single_hard_subreg_set, instantiate_decl,
2408 instantiate_virtual_regs_1, aggregate_value_p, assign_parms,
2409 promoted_input_arg, setjmp_vars_warning, setjmp_args_warning,
2410 setjmp_protect, setjmp_protect_args, fix_lexical_addr,
2411 expand_function_start, diddle_return_value, clobber_return_register,
2412 expand_function_end, keep_stack_depressed, handle_epilogue_set,
2413 update_epilogue_consts): Likewise.
2414 * genemit.c (gen_exp, gen_insn): Likewise.
2415 * genrecog.c (make_insn_sequence): Likewise.
2416 * global.c (global_conflicts, expand_preferences, mark_reg_store,
2417 mark_reg_conflicts, set_preference, reg_becomes_live,
2418 build_insn_chain, mark_reg_change): Likewise.
2419 * haifa_sched.c (CONST_BASED_ADDRESS_P, find_set_reg_weight):
2421 * ifcvt.c (noce_try_abs, noce_get_condition, noce_process_if_block):
2423 * integrate.c (copy_rtx_and_substitute, try_constants,
2424 subst_constants, mark_stores, allocate_initial_values): Likewise.
2425 * jump.c (reversed_comparison_code_parts, delete_prior_computation,
2426 delete_computation, rtx_renumbered_equal_p, true_regnum,
2427 reg_or_subregno): Likewise.
2428 * lcm.c (reg_dies, reg_becomes_live): Likewise.
2429 * local-alloc.c (validate_equiv_mem_from_store, validate_equiv_mem,
2430 update_equiv_regs, no_equiv, block_alloc, combine_regs, reg_is_set,
2431 wipe_dead_reg, no_conflict_p): Likewise.
2432 * loop-iv.c (simple_reg_p, simple_set_p, kill_sets,
2433 iv_get_reaching_def, iv_analyze_biv, altered_reg_used, mark_altered,
2434 simple_rhs_p, simplify_using_assignment, implies_p): Likewise.
2435 * loop.c (scan_loop, combine_movables, rtx_equal_for_loop_p,
2436 move_movables, note_set_pseudo_multiple_uses, consec_sets_invariant_p,
2437 find_single_use_in_loop, count_one_set, loop_bivs_init_find,
2438 loop_givs_rescan, check_insn_for_bivs, check_insn_for_givs,
2439 valid_initial_value_p, simplify_giv_expr, consec_sets_giv,
2440 loop_regs_update, check_dbra_loop, maybe_eliminate_biv,
2441 maybe_eliminate_biv_1, record_initial, update_reg_last_use,
2442 canonicalize_condition, loop_regs_scan, load_mems, try_copy_prop,
2443 try_swap_copy_prop): Likewise.
2444 * optabs.c (expand_binop, expand_vector_binop, expand_vector_unop,
2445 expand_abs, emit_no_conflict_block, emit_libcall_block, expand_float):
2447 * postreload.c (reload_cse_simplify, reload_cse_simplify_set,
2448 reload_cse_simplify_operands, reload_combine,
2449 reload_combine_note_store, reload_combine_note_use,
2450 reload_cse_move2add, move2add_note_store): Likewise.
2451 * print-rtl.c (print_rtx): Likewise.
2452 * ra-build.c (copy_insn_p, remember_move, init_one_web_common,
2453 contains_pseudo, handle_asm_insn): Likewise.
2454 * ra-debug.c (ra_print_rtx_object, dump_constraints,
2455 dump_static_insn_cost): Likewise.
2456 * ra-rewrite.c (slots_overlap_p, emit_colors,
2457 remove_suspicious_death_notes): Likewise.
2458 * recog.c (validate_replace_rtx_1, find_single_use_1, find_single_use,
2459 register_operand, scratch_operand, nonmemory_operand,
2460 constrain_operands): Likewise.
2461 * reg-stack (check_asm_stack_operands, remove_regno_note,
2462 emit_swap_insn, swap_rtx_condition, subst_stack_regs_pat,
2463 subst_asm_stack_regs): Likewise.
2464 * regclass.c (scan_one_insn, record_reg_classes, copy_cost,
2465 record_address_regs, reg_scan_mark_refs): Likewise.
2466 * regmove.c (discover_flags_reg, replacement_quality,
2467 copy_src_to_dest, reg_is_remote_constant_p, regmove_optimize,
2468 fixup_match_1): Likewise.
2469 * regrename.c (note_sets, clear_dead_regs, build_def_use, kill_value,
2470 kill_set_value, copyprop_hardreg_forward_1): Likewise.
2471 * reload.c (MATCHES, push_secondary_reload, find_reusable_reload,
2472 reload_inner_reg_of_subreg, can_reload_into, push_reload,
2473 combine_reloads, find_dummy_reload, hard_reg_set_here_p,
2474 operands_match_p, decompose, find_reloads, find_reloads_toplev,
2475 find_reloads_address, subst_indexed_address, find_reloads_address_1,
2476 find_reloads_subreg_address, find_replacement,
2477 refers_to_regno_for_reload_p, reg_overlap_mentioned_for_reload_p,
2478 refers_to_mem_for_reload_p, find_equiv_reg, regno_clobbered_p): Likewise.
2479 * reload1.c (replace_pseudos_in, reload, calculate_needs_all_insns,
2480 find_reg, delete_dead_insn, alter_reg, eliminate_regs,
2481 elimination_effects, eliminate_regs_in_insn, scan_paradoxical_subregs,
2482 forget_old_reloads_1, reload_reg_free_for_value_p, choose_reload_regs,
2483 emit_input_reload_insns, emit_output_reload_insns, do_input_reload,
2484 do_output_reload, emit_reload_insns, gen_reload,
2485 delete_address_reloads_1, inc_for_reload): Likewise.
2486 * reorg.c (update_reg_dead_notes, fix_reg_dead_note,
2487 update_reg_unused_notes, fill_slots_from_thread): Likewise.
2488 * resource.c (update_live_status, mark_referenced_resources,
2489 mark_set_resources, mark_target_live_regs): Likewise.
2490 * rtlanal.c (nonzero_address_p, get_jump_table_offset,
2491 global_reg_mentioned_p_1, reg_mentioned_p, reg_referenced_p,
2492 reg_set_p, set_noop_p, find_last_value, refers_to_regno_p,
2493 note_stores, dead_or_set_p, dead_or_set_regno_p, find_regno_note,
2494 find_reg_fusage, find_regno_fusage, replace_regs, regno_use_in,
2495 parms_set, find_first_parameter_load, keep_with_call_p,
2496 hoist_test_store, hoist_update_store, address_cost, nonzero_bits1,
2497 num_sign_bit_copies1): Likewise.
2498 * rtlhooks.c (gen_lowpart_general): Likewise.
2499 * sched-deps.c (deps_may_trap_p, sched_analyze_1, sched_analyze_insn,
2500 sched_analyze): Likewise.
2501 * sched-rgn.c (check_live_1, update_live_1, sets_likely_spilled_1):
2503 * sdbout.c (sdbout_symbol, sdbout_parms, sdbout_reg_parms): Likewise.
2504 * simplify-rtx.c (simplify_replace_rtx, simplify_unary_operation,
2505 simplify_binary_operation, simplify_const_relational_operation,
2506 simplify_subreg): Likewise.
2507 * stmt.c (decl_conflicts_with_clobbers_p, expand_asm_operands,
2508 expand_end_stmt_expr, expand_return, expand_decl,
2509 expand_anon_union_decl): Likewise.
2510 * unroll.c (precondition_loop_p, calculate_giv_inc, copy_loop_body,
2511 find_splittable_regs, find_splittable_givs, find_common_reg_term,
2512 loop_iterations): Likewise.
2513 * var-tracking.c (variable_union, variable_part_different_p,
2514 variable_different_p, count_uses, add_uses, add_stores,
2515 compute_bb_dataflow, set_variable_part, delete_variable_part,
2516 emit_notes_in_bb, vt_get_decl_and_offset, vt_add_function_parameters):
2518 * varasm.c (assemble_variable): Likewise.
2520 2004-06-15 Chris Demetriou <cgd@broadcom.com>
2522 * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
2524 * config/mips/linux64.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
2525 #undef and #if 0'd definition.
2527 2004-06-15 J"orn Rennecke <joern.rennecke@superh.com>
2529 * combine.c (distribute_notes): Comment typo fix.
2531 2004-06-15 Roger Sayle <roger@eyesopen.com>
2533 * expmed.c (synth_mult): Mask bits of the multiplier to the
2534 machine mode of the multiplication. Don't consider shifts
2535 by more than (or equal to) the width of the operation's mode.
2537 2004-06-15 Paolo Bonzini <bonzini@gnu.org>
2539 * doc/install.texi: Yet another update for autoconf
2540 and automake versions.
2542 2004-06-15 Paolo Bonzini <bonzini@gnu.org>
2544 * function.h (struct function): Remove cannot_inline field.
2545 (current_function_cannot_inline): Remove.
2546 * passes.c (rest_of_compilation): Reset DECL_DEFER_OUTPUT.
2547 Simplify conditionals to ignore warn_return_type.
2548 * tree-optimize.c (tree_rest_of_compilation): Do not reset
2550 * objc/objc-act.c (build_module_descriptor, finish_method_def):
2551 Do not set current_function_cannot_inline.
2553 2004-06-15 J"orn Rennecke <joern.rennecke@superh.com>
2555 * cfglayout.c (fixup_reorder_chain): Handle case where the
2556 destination of E_TAKEN is EXIT_BLOCK_PTR.
2558 2004-06-15 Diego Novillo <dnovillo@redhat.com>
2560 * tree-ssa-copy.c (cprop_into_successor_phis): Fix typo.
2562 2004-06-15 Paolo Bonzini <bonzini@gnu.org>
2564 * fold-const.c (operand_equal_p): Update comment.
2566 2004-06-15 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
2568 * config/m32r/m32r.h (RETURN_ADDR_RTX): Define.
2569 (INCOMING_RETURN_ADDR_RTX): Define.
2570 * config/m32r/m32r-protos.h (m32r_return_addr): Added.
2571 * config/m32r/m32r.c (m32r_exppand_prologue): Changed for
2572 __builtin_return_address(0).
2573 (m32r_return_addr): Added for __builtin_return_address(0).
2574 (m32r_reload_lr): Ditto.
2576 * longlong.h: Fix macros for m32r add_ssaaaa and sub_ddmmss.
2578 2004-06-15 Paolo Bonzini <bonzini@gnu.org>
2580 * doc/install.texi (Prerequisites): Update libbanshee,
2581 fastjar, libcpp, libjava/libltdl entries to
2584 2004-06-15 Eric Botcazou <ebotcazou@act-europe.fr>
2585 Olivier Hainque <hainque@act-europe.fr>
2587 * function.c (fixup_var_refs): Also adjust the start of sequence
2588 after fixing up the insns.
2590 2004-06-15 Giovanni Bajo <giovannibajo@gcc.gnu.org>
2592 * gccbug.in: Update optimization -> tree-optimization/rtl-optimization.
2594 2004-06-14 Benjamin Kosnik <bkoz@redhat.com>
2596 * doc/install.texi (Prerequisites): Update libstdc++ entry to
2599 2004-06-14 Eric Christopher <echristo@redhat.com>
2601 * config/s390/s390.h (TARGET_SWITCHES): Change -mtpf (-mno-tpf)
2602 to -mtpf-trace (-mno-tpf-trace).
2603 * doc/invoke.texi (S/390 and zSeries Options): Add tpf option
2606 2004-06-14 Eric Botcazou <ebotcazou@libertysurf.fr>
2608 * real.c: Fix bit count in head comment.
2610 2004-06-14 Jeff Law <law@redhat.com>
2612 * tree-ssa.c (kill_redundant_phi_nodes): More correctly handle
2613 PHIs where the destination or an argument is marked with
2614 SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
2616 2004-06-14 Jakub Jelinek <jakub@redhat.com>
2619 * simplify-rtx.c (simplify_binary_operation): Don't optimize out
2620 Inf + -Inf, Inf - Inf, Inf / Inf and 0 * Inf if flag_trapping_math.
2622 2004-06-14 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
2624 * opts.sh (var_args): Fix regexp.
2626 2004-06-14 Jakub Jelinek <jakub@redhat.com>
2629 * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Define.
2631 2004-06-14 Paul Brook <paul@codesourcery.com>
2633 * dwarf2out.c (output_call_frame_info): Support dwarf3 cie entries.
2635 2004-06-14 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
2637 * Makefile.in (FLAGS_H): New.
2638 (flags.h): Replace by FLAGS_H.
2639 * c.opt: Document Var, VarExists, Init and Report attributes.
2640 * common.opt: Fill the values of the attributes.
2641 * diagnostic.c (flag_fatal_errors): Do not define.
2642 * except.c (flag_non_call_exceptions): Do not define.
2643 * flags.h: Include options.h. Remove declarations conflicting with
2644 the automatically defined ones.
2645 * opts.c: Remove automatically defined variables.
2646 (handle_option): Perform default initialization.
2647 (common_handle_option): Do not handle options covered by the
2648 default initialization.
2649 * opts.h (struct cl_option): Add flag_var, has_set_value and set_value
2652 * opts.sh: Generate variable declarations, handle CL_REPORT.
2653 * toplev.c: Remove automatically defined variables.
2654 (f_options): Removed.
2655 (print_switch_values): Use cl_options instead of f_options.
2656 * toplev.h (version_flag): Declaration removed.
2658 2004-06-14 Ian Lance Taylor <ian@wasabisystems.com>
2660 * config/sparc/sparc.h: Correct comment about availability of
2661 little endian option.
2663 * config.gcc: Remove sparc64-*-aout*.
2664 * config/sparc/sparc.c (sparc_aout_select_rtx_section): Remove.
2665 * config/sparc/sp64-aout.h: Remove.
2666 * config/sparc/aout.h: Remove.
2668 2004-06-14 Ulrich Weigand <uweigand@de.ibm.com>
2670 * config/s390/s390.c: Include "tree-gimple.h".
2671 (s390_gimplify_va_arg): New function.
2672 (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
2673 (s390_va_arg): Remove.
2674 * config/s390/s390-protos.h (s390_va_arg): Remove.
2675 * config/s390/s390.h (EXPAND_BUILTIN_VA_ARG): Call abort ().
2677 2004-06-14 J"orn Rennecke <joern.rennecke@superh.com>
2679 * basic-block.h (could_fall_through): Declare.
2680 * cfganal.c (can_fallthru): Succeed if the target is EXIT_BLOCK_PTR.
2681 Fail if the source already has a fallthrough edge to the exit
2683 (could_fall_through): New function.
2684 * cfgbuild.c (make_edges): Check if we already have a fallthrough
2685 edge to the exit block pointer.
2686 * cfglayout.c (fixup_fallthru_exit_predecessor): Check that it is
2687 not called before reload has completed.
2688 Handle special case of first block having a fall-through exit edge.
2689 (cfg_layout_finalize): Don't call it before reload or if we have
2691 (fixup_reorder_chain): A fall through to the exit block does not
2692 require the block to come last. Add sanity checks.
2693 * cfgrtl.c (rtl_split_edge): Add special handling of fall through
2694 edges to the exit block.
2695 * function.c (cfglayout.h): #include.
2696 (thread_prologue_and_epilogue_insns): If we have neither return nor
2697 epilogue, but a fall through to the exit block from mid-function,
2698 force a non-fall-through exit.
2699 * Makefile.in (function.o): Depend on CFGLAYOUT_H.
2701 2004-06-14 Alan Modra <amodra@bigpond.net.au>
2703 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Handle -mpowerpc64 and -mcpu
2704 for power5 and rs64a. Correct condition for default. Correct power3,
2705 620, 630, 7400, 7450, G4, 970 and G5 -mcpu entries. Add -many.
2707 2004-06-13 Steven Bosscher <stevenb@suse.de>
2709 * gcse.c (hash_scan_set, hash_scan_insn, mark_set, mark_oprs_set):
2710 Revert previous change, don't use CALL_P.
2712 2004-06-13 Jason Merrill <jason@redhat.com>
2714 * tree.h: Move std_gimplify_va_arg_expr protoype here.
2715 * tree-gimple.h: From here.
2717 2004-06-13 Daniel Berlin <dberlin@dberlin.org>
2719 Fix PR tree-optimization/15979
2720 Fix PR tree-optimization/15981
2721 * tree-ssa-pre.c (insert_aux): Fix faulty logic so that we don't
2722 try to insert values undefined along some path.
2724 2004-06-13 Daniel Berlin <dberlin@dberlin.org>
2726 * tree-ssa-pre.c (add_to_value): is_gimple_min_invariant things
2727 are available everywhere too.
2729 2004-06-13 Andrew Pinski <pinskia@physics.uc.edu>
2731 * fold-const.c (fold_checksum_tree <case 't'>): Only
2732 look at TREE_VALUES if the EXPR is an ENUMERAL_TYPE.
2733 Only look at TYPE_MIN_VALUE and TYPE_MAX_VALUE if
2734 EXPR is an INTEGERAL_TYPE or a scalar float type.
2736 2004-06-13 Diego Novillo <dnovillo@redhat.com>
2738 * tree-sra.c (tree_sra): Update documentation.
2740 2004-06-13 Joseph S. Myers <jsm@polyomino.org.uk>
2742 * c-typeck.c (comptypes, tagged_types_tu_compatible_p,
2743 function_types_compatible_p, type_lists_compatible_p): Remove
2745 * c-tree.h (comptypes): Likewise.
2746 (COMPARE_STRICT): Remove.
2747 * c-decl.c, c-lang.c, c-parse.in, c-typeck.c, objc/objc-act.c: All
2750 2004-06-13 Eric Christopher <echristo@redhat.com>
2752 * c-decl.c (diagnose_mismatched_decls): Improve error message.
2754 * c-typeck.c (comptypes): Add location in standard we're checking.
2756 2004-06-13 Kaz Kojima <kkojima@gcc.gnu.org>
2758 * config/sh/libgcc-std.ver: Add __unorddf2 and __unordsf2 with
2761 2004-06-12 Roger Sayle <roger@eyesopen.com>
2763 * expmed.c (shift_cost, shiftadd_cost, shiftsub_cost): Additionally
2764 index by machine mode.
2765 (init_expmed): Initialize shift_cost, shiftadd_cost and shiftsub_cost
2766 tables inside the loop over machine modes.
2767 (synth_mult, expand_mult_highpart_optab, expand_mult_highpart,
2768 expand_divmod): Index shift*_cost by the appropriate machine mode.
2770 2004-06-12 Eric Christopher <echristo@redhat.com>
2772 * config/s390/s390.h: Rename TARGET_TPF to TARGET_TPF_PROFILING.
2773 * config/s390/s390.md: Ditto.
2774 * config/s390/s390.c: Ditto.
2775 (s390_frame_info): Conditionalize frame and setup info on
2776 TARGET_TPF_PROFILING.
2777 (s390_arg_frame_offset): Ditto.
2779 2004-06-12 Roger Sayle <roger@eyesopen.com>
2781 * fold-const.c (omit_two_operands): New function.
2782 * tree.h (omit_two_operands): Prototype here.
2783 * builtins.c (fold_builtin_unordered_cmp): New function to lower
2784 C99 unordered comparison builtins to the appropriate tree nodes.
2785 (fold_builtin_1): Use fold_builtin_unordered_cmp to lower
2786 BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS,
2787 BUILT_IN_ISLESSEQUAL and BUILT_IN_ISLESSGREATER. Manually lower
2788 BUILT_IN_ISUNORDERED comparisons to an UNORDERED_EXPR tree node.
2789 (simplify_builtin_memcmp, simplify_builtin_strncmp,
2790 simplify_builtin_strncat, simplify_builtin_strspn): Use the new
2791 omit_two_operands function to build the required COMPOUND_EXPRs.
2793 2004-06-12 Steven Bosscher <stevenb@suse.de>,
2794 Andreas Jaeger <aj@suse.de>
2796 * gcse.c (record_set_info): Use predicates like REG_P.
2797 (mems_conflict_for_gcse_p): Likewise.
2798 (load_killed_in_block_p): Likewise.
2799 (hash_expr_1): Likewise.
2800 (insert_set_in_table): Likewise.
2801 (gcse_constant_p): Likewise.
2802 (hash_scan_set): Likewise.
2803 (hash_scan_insn): Likewise.
2804 (canon_list_insert): Likewise.
2805 (record_last_mem_set_info): Likewise.
2806 (record_last_set_info): Likewise.
2807 (compute_hash_table_work): Likewise.
2808 (mark_set): Likewise.
2809 (mark_clobber): Likewise.
2810 (mark_oprs_set): Likewise.
2811 (compute_transp): Likewise.
2812 (find_avail_set): Likewise.
2813 (cprop_insn): Likewise.
2814 (do_local_cprop): Likewise.
2816 (find_implicit_sets): Likewise.
2817 (find_bypass_set): Likewise.
2818 (bypass_conditional_jumps): Likewise.
2819 (insert_insn_end_bb): Likewise.
2820 (pre_insert_copy_insn): Likewise.
2821 (compute_transpout): Likewise.
2822 (next_ls_expr): Likewise.
2823 (invalidate_any_buried_refs): Likewise.
2824 (compute_ld_motion_mems): Likewise.
2825 (reg_set_info): Likewise.
2826 (reg_clear_last_set): Likewise.
2827 (find_moveable_store): Likewise.
2828 (compute_store_table): Likewise.
2829 (find_loads): Likewise.
2830 (store_killed_in_insn): Likewise.
2831 (insert_insn_start_bb): Likewise.
2832 (reg_set_between_after_reload_p): Likewise.
2833 (reg_used_between_after_reload_p): Likewise.
2834 (is_jump_table_basic_block): Likewise.
2835 (gcse_after_reload): Likewise.
2836 (hash_scan_set_after_reload): Likewise.
2837 (compute_hash_table_after_reload): Likewise.
2839 2004-06-12 Steven Bosscher <stevenb@suse.de>
2841 * rtl.h (MEM_P, NONJUMP_INSN_P, CALL_INSN_P): New predicates.
2842 (INSN_P): Don't look at the rtx code class, just explicitly
2843 check for one of the tree RTX_INSN codes.
2845 2004-06-11 Zack Weinberg <zack@codesourcery.com>
2847 * c-typeck.c (default_function_array_conversion): Use
2848 build_pointer_type not TYPE_POINTER_TO.
2850 2004-06-11 Zack Weinberg <zack@codesourcery.com>
2852 * configure.ac: Don't invoke ACX_HEADER_STDBOOL.
2853 * configure, config.in: Regenerate.
2854 * system.h: Unconditionally define bool as unsigned char,
2855 BOOL_BITFIELD as unsigned int.
2856 * domwalk.h: Use BOOL_BITFIELD.
2858 2004-06-12 Andreas Jaeger <aj@suse.de>
2860 * libgcc-std.ver: Add __unorddf2 and __unordsf2 with version 3.3.4.
2861 * libgcc-darwin.ver: Likewise.
2863 2004-06-12 Peter Jakubek <peter@laseranimation.com>
2865 * reload.c (find_reloads): Force reload for pseudo registers on big
2868 2004-06-11 Steven Bosscher <stevenb@suse.de>
2870 * tree-ssa-dce.c (mark_control_dependent_edges_necessary):
2871 Don't try to mark anything control dependent on the entry or
2874 2004-06-11 Daniel Berlin <dberlin@dberlin.org>
2878 * tree.h (SSA_NAME_VALUE): New macro.
2879 (struct tree_ssa_name): Add value_handle member.
2880 * tree-ssa-pre.c: Replaced.
2881 * tree-flow.h (tree_ann_type): Add CST_ANN, EXPR_ANN.
2882 (struct cst_ann_d): New.
2883 (struct expr_ann_d): New.
2884 (union tree_ann_d): Add cst_ann, expr_ann.
2885 * tree-dfa.c (create_cst_ann): New function.
2886 (create_expr_ann): Ditto.
2887 * tree-flow-inline.h (cst_ann): New function.
2889 (get_cst_ann): Ditto.
2890 (get_expr_ann): Ditto..
2892 2004-06-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2894 * pa.c (pa_hpux_init_libfunc): Add support for unord_optab.
2895 * pa/quadlib.c (enum qfcmp_magic): Define magic values for call to
2896 _U_Qfcmp library function.
2897 (_U_Qfltgt, _U_Qfunle, _U_Qfunlt, _U_Qfunge, _U_Qfungt, _U_Qfuneq,
2898 _U_Qfunord, _U_Qford): Add more TFmode builtin compare functions.
2900 * pa.c (legitimize_pic_address): Use UNSPEC_DLTIND14R to identify
2901 unspec used for loading address from DLT.
2902 * pa.md: Define constants for the uses of UNSPEC and UNSPEC_VOLATILE.
2903 Change all users of UNSPEC and UNSPEC_VOLATILE to use new constants.
2904 Don't use short code sequence when loading the address of a nonlocal
2906 (nonlocal_goto): New expander.
2907 (indirect_goto): New jump pattern for nonlocal gotos.
2908 (short_jump): Remove extra whitespace.
2909 (builtin_longjmp): Clobber memory and hard frame pointer. Restore
2910 frame pointer via virtual_stack_vars_rtx when we have a nonlocal goto
2913 2004-06-11 Roger Sayle <roger@eyesopen.com>
2915 * expmed.c (synth_mult): Add an additional MODE argument for the
2916 machine mode of the multiplication. Update recursive calls. Use
2917 mode instead of word_mode for determining operation costs.
2918 (choose_mult_variant): Update calls to synth_mult with "mode".
2920 2004-06-11 Richard Henderson <rth@redhat.com>
2922 * tree-ssa-operands.c (get_stmt_operands): Clear makes_aliased_loads
2923 and makes_aliased_stores.
2925 2004-06-11 Andrew Pinski <pinskia@physics.uc.edu>
2927 * doc/install.text (--enable-shared): Fix typo.
2929 2004-06-11 Richard Henderson <rth@redhat.com>
2931 * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Remove post_p
2932 argument. Use internal post for call to gimplify_expr. Tidy
2933 rounded type size computation.
2934 (alpha_gimplify_va_arg): Use get_formal_tmp_var and
2935 get_initialized_tmp_var.
2937 2004-06-11 Andrew Pinski <pinskia@physics.uc.edu>
2939 * doc/install.texi (--enable-shared): Update libobjc's shared library
2940 status. Remove reference to libf2c.
2942 2004-06-11 Jason Merrill <jason@redhat.com>
2944 * config/i386/i386.h (EXPAND_BUILTIN_VA_ARG): Just abort.
2945 * config/i386/i386.c (ix86_va_arg): Remove.
2946 * config/rs6000/rs6000.h (EXPAND_BUILTIN_VA_ARG): Just abort.
2947 * config/rs6000/rs6000.c (rs6000_va_arg): Remove.
2948 * config/alpha/alpha.h (EXPAND_BUILTIN_VA_ARG): Just abort.
2949 * config/alpha/alpha.c (alpha_va_arg): Remove.
2950 * config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Just abort.
2951 * config/sparc/sparc.c (sparc_va_arg): Remove.
2953 * tree-ssa-operands.c (get_stmt_operands): Use a V_MAY_DEF if the
2954 assignment might throw.
2955 * tree-eh.c (tree_could_throw_p): Support non-call exceptions in
2958 2004-06-11 J"orn Rennecke <joern.rennecke@superh.com>
2961 * sh.h (ALLOCATE_INITIAL_VALUE): Use return_address_pointer_rtx.
2963 2004-06-11 Joseph S. Myers <jsm@polyomino.org.uk>
2965 * doc/install.texi (Prerequisites): Update documentation of
2966 required versions of autoconf and automake. Remove mention of
2969 2004-06-11 Jason Merrill <jason@redhat.com>
2971 * config/sparc/sparc.c (sparc_gimplify_va_arg): New fn.
2972 (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
2974 2004-06-11 Jerry Quinn <jlquinn@optonline.net>
2976 * typeclass.h: Add GPL plus exception license. Add include
2979 2004-06-10 Jason Merrill <jason@redhat.com>
2981 * gimplify.c (gimplify_modify_expr): Don't force a temporary
2982 of an aggregate_value_p type.
2984 2004-06-10 Jeff Law <law@redhat.com>
2986 * fold-const.c (fold_inf_compare): Avoid creating non-gimple
2987 code when we are in gimple form.
2989 2004-06-10 Diego Novillo <dnovillo@redhat.com>
2991 * Makefile.in (tree-ssanames.o): Depend on TREE_FLOW_H.
2992 * tree-flow.h (ssa_names, num_ssa_names, ssa_name): Declare.
2993 (highest_ssa_version): Remove.
2994 * tree-outof-ssa.c (new_temp_expr_table): Replace
2995 highest_ssa_version with num_ssa_names.
2996 (dump_replaceable_exprs): Likewise.
2997 (rewrite_vars_out_of_ssa): Likewise.
2998 * tree-ssa-ccp.c (initialize): Likewise
2999 * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
3000 * tree-ssa-dce.c (tree_dce_init): Likewise.
3001 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
3002 * tree-ssa-live.c (create_ssa_var_map): Likewise.
3003 (dump_var_map): Likewise.
3004 * tree-ssa.c (verify_ssa): Likewise.
3005 (kill_redundant_phi_nodes): Likewise.
3006 Do not build a local array of SSA_NAMEs. Use the ssa_names table.
3007 * tree-ssanames.c: Include tree-flow.h
3008 (ssa_names): New varray.
3009 (init_ssa_names): Initialize ssa_names.
3010 Reserve the first slot of the ssa_names table.
3011 (make_ssa_name): Push the newly created SSA_NAME into ssa_names.
3012 Assign version numbers using num_ssa_names.
3014 2004-06-10 Joseph S. Myers <jsm@polyomino.org.uk>
3016 * doc/sourcebuild.texi (Front End): Add details of more
3017 installation documentation required.
3019 2004-06-10 Brian Booth <bbooth@redhat.com>
3021 * doc/tree-ssa.texi: Remove references to VDEF and add descriptions
3022 of V_MAY_DEF and V_MUST_DEF.
3023 * tree-dfa.c (dfa_stats_d): Add num_v_must_defs and rename
3024 num_vdefs to num_v_may_defs.
3025 (compute_immediate_uses_for_stmt): Rename occurences of vdef
3027 (redirect_immediate_uses): Ditto.
3028 (dump_dfa_stats): Ditto. Also added code to dump num_v_must_defs.
3029 (collect_dfa_stats_r): Rename occurences of vdef to v_may_def.
3030 Also add code to sum up the number of v_must_defs.
3031 (vdefs_disappeared_p): Replace with...
3032 (v_may_defs_disappeared_p): This.
3033 (v_must_defs_disappeared_p): New function.
3034 (mark_new_vars_to_rename): Rename occurences of vdef to v_may_def.
3035 Also add code to mark new variables found in V_MUST_DEFs for
3037 * tree-flow.h (stmt_ann_d): Add v_must_def_ops and replace
3038 vdef_ops to v_may_def_ops.
3039 (get_vdef_ops): Replace with...
3040 (get_v_may_def_ops): This.
3041 * tree-flow-inline.h (get_vdef_ops): Replace with...
3042 (get_v_may_def_ops): This.
3043 (get_v_must_def_ops): New function.
3044 (get_vdef_result_ptr): Replace with...
3045 (get_v_may_def_result_ptr): This.
3046 (get_vdef_op_ptr): Ditto with...
3047 (get_v_may_def_op_ptr); This.
3048 (get_v_must_def_op_ptr): New function.
3049 * tree-into-ssa.c (mark_def_sites): Rename occurences of vdef
3050 to v_may_def. Also add code to mark statements with
3051 V_MUST_DEFs as definition sites.
3052 (rewrite_stmt): Rename occurences of vdef to v_may_def. Also
3053 add code to register new V_MUST_DEFs made by the statement.
3054 * tree-outof-ssa.c (VIRTUAL_PARTITION): Update comments.
3055 (check_replaceable): Rename occurences of vdef to v_may_def. Also
3056 add check for V_MUST_DEFs.
3057 (find_replaceable_in_bb): Ditto.
3058 * tree-pretty-print.c (dump_vops): Rename occurences of vdef
3059 to v_may_def. Also add code to dump V_MUST_DEFs.
3060 * tree-sra.c (mark_all_vdefs): Replace with...
3061 (mark_all_v_may_defs): This.
3062 (mark_all_v_must_defs): New function.
3063 (create_scalar_copies): Replace call to mark_all_vdefs with
3064 calls to mark_all_v_may_defs and mark_all_v_must_defs.
3065 (scalarize_structures): Rename occurences of vdef to v_may_def.
3066 Also add a check for V_MUST_DEFs.
3067 (scalarize_modify_expr): Rename occurences of vdef to v_may_def.
3068 * tree-ssa-alias.c (global_var): Update comment.
3069 (compute_may_aliases): Ditto.
3070 (compute_points_to_and_addr_escape): Rename occurences of vdef
3071 to v_may_def. Also add code to mark variables in V_MUST_DEF
3072 operands as being written to.
3073 (group_aliases): Update comment.
3074 (maybe_create_global_var): Ditto.
3075 * tree-ssa.c (verify_ssa): Rename occurences of vdef to v_may_def.
3076 Also add a check for V_MUST_DEFs on GIMPLE registers.
3077 (replace_immediate_uses): Rename occurences of vdef to v_may_def.
3078 * tree-ssa-ccp.c (visit_stmt): Rename occurences of vdef
3079 to v_may_def. Also add code to mark all V_MUST_DEF operands
3081 (initialize): Ditto.
3082 (set_rhs): Rename occurences of vdef to v_may_def. Also add
3083 code to update SSA_NAMEs in V_MUST_DEFs.
3084 * tree-ssa-copy.c (cprop_into_stmt): Rename occurences of vdef
3086 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Rename
3087 occurences of vdef to v_may_def. Also add code to mark statements
3088 with V_MUST_DEFs as necessary.
3089 (propagate_necessity): Rename occurences of vdef to v_may_def.
3090 * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Rename
3091 occurences of vdef to v_may_def. Also add code to mark operands
3092 in V_MUST_DEFs for renaming.
3093 (eliminate_redundant_computations): Rename occurences of vdef
3095 (record_equivalences_from_stmt): Rename occurences of vdef
3096 to v_may_def. Also add code to record VUSEs for V_MUST_DEFs.
3097 (optimize_stmt): Remove unnesessary variable vdefs. Update
3099 (register_definitions_for_stmt): Rename occurences of vdef
3100 to v_may_def. Also add code to register definitions made with
3102 * tree-ssa-dse.c (fix_stmt_vdefs): Replace with...
3103 (fix_stmt_v_may_defs): This.
3104 (fix_phi_uses): Rename occurences of vdef to v_may_def.
3105 (dse_optimize_stmt): Ditto.
3106 * tree-ssa-live.c (create_ssa_var_map): Rename occurences of vdef
3107 to v_may_def. Also add code to mark V_MUST_DEF operands as being
3108 used in virtual operators.
3109 * tree-ssa-loop.c (mark_defs_for_rewrite): Rename occurences of
3110 vdef to v_may_def. Also add code to mark V_MUST_DEF operands for
3112 * tree-ssa-operands.c (opf_kill_def): New flag for killing
3114 (build_vdefs): Renamed to...
3115 (build_v_may_defs): This.
3116 (build_v_must_defs): New variable.
3117 (voperands_d): Add v_must_def_ops and replace vdef_ops with
3119 (append_vdef): Replace with...
3120 (append_v_may_def): This.
3121 (append_v_must_def): New function.
3122 (NUM_FREE): Increment for V_MUST_DEF
3123 (optype_freelist): Increment its size for V_MUST_DEF
3124 (allocate_vdef_optype): Replace with...
3125 (allocate_v_may_def_optype): This.
3126 (allocate_v_must_def_optype): New function.
3127 (free_vdefs): Replace with...
3128 (free_v_may_defs): This.
3129 (free_v_must_defs): New function.
3130 (remove_vdefs): Replace with...
3131 (remove_v_may_defs): This.
3132 (remove_v_must_defs): New function.
3133 (init_ssa_operands): Rename occurences of vdef to v_may_def. Also
3134 add code to initialize build_v_must_defs.
3135 (finalize_ssa_vdefs): Replace with...
3136 (finalize_ssa_v_may_defs): This.
3137 (finalize_ssa_vuses): Rename occurences of vdef to v_may_def.
3138 (finalize_ssa_v_must_defs): New function.
3139 (finalize_ssa_stmt_operands): Replace call to finalize_ssa_vdefs
3140 with calls to finalize_ssa_v_may_defs and finalize_ssa_v_must_defs.
3141 (verify_start_operands): Rename occurences of vdef to v_may_def.
3142 Also add check for build_v_must_defs.
3143 (get_stmt_operands): Rename occurences of vdef to v_may_def.
3144 Also add code to handle V_MUST_DEFs and to use opf_kill_def for
3145 killing definitions.
3146 (get_expr_operands): Update comment and use opf_kill_def for
3147 killing definitions.
3148 (add_stmt_operand): Replace code that appends VDEFs with code
3149 that appends V_MUST_DEFs when opf_kill_def is set and V_MAY_DEFs
3151 (add_call_clobber_ops): Update comments.
3152 * tree-ssa-operands.h (vdef_optype_d): Replace with...
3153 (v_may_def_optype_d): This.
3154 (v_must_def_optype_d): New structure.
3155 (VDEF_OPS): Replace with...
3156 (V_MAY_DEF_OPS): This.
3157 (STMT_VDEF_OPS): Same with...
3158 (STMT_V_MAY_DEF_OPS): This.
3160 (NUM_V_MAY_DEFS): This.
3161 (VDEF_RESULT_PTR): As well as...
3162 (V_MAY_DEF_RESULT_PTR): This.
3163 (VDEF_RESULT): Same goes for...
3164 (V_MAY_DEF_RESULT): This.
3165 (VDEF_OP_PTR): And...
3166 (V_MAY_DEF_OP_PTR): This.
3168 (V_MAY_DEF_OP): This.
3169 (V_MUST_DEF_OPS): New macro.
3170 (STMT_V_MUST_DEF_OPS): Ditto.
3171 (NUM_V_MUST_DEFS): Ditto.
3172 (V_MUST_DEF_OP_PTR): Ditto.
3173 (V_MUST_DEF_OP): Ditto.
3174 (remove_vdefs): Replace signature with...
3175 (remove_v_may_defs): This.
3176 (remove_v_must_defs): New function signature.
3177 * tree-ssa-pre.c (subst_phis): Replace call to remove_vdefs
3178 with calls to remove_v_may_defs and remove_v_must_defs.
3179 (process_left_occs_and_kills): Rename occurences of vdef to v_may_def.
3180 Also add code that marks left occurences of operands in V_MUST_DEFs.
3181 * tree-tailcall.c (find_tail_calls): Rename occurences of vdef
3182 to v_may_def. Also add check for V_MUST_DEFs.
3183 (eliminate_tail_call):Rename occurences of vdef to v_may_def.
3185 2004-06-10 Vladimir Makarov <vmakarov@redhat.com>
3188 * haifa-sched.c (schedule_block): Finish cycle after issuing asm
3191 2004-06-10 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3194 * doc/install.texi: Remove superfluous linebreak.
3196 2004-06-10 Roger Sayle <roger@eyesopen.com>
3198 * builtins.c (expand_builtin): Fall back to library function call for
3199 conj, conjf, conjl, creal, crealf, creall, cimag, cimagf and cimagl.
3200 (fold_builtin_1): Lower built-ins BUILT_IN_CONJ{,F,L} to CONJ_EXPR,
3201 BUILT_IN_CREAL{,F,L} to REALPART_EXPR, and BUILT_IN_CIMAG{,F,L} to
3202 IMAGPART_EXPR respectively.
3204 2004-06-10 J"orn Rennecke <joern.rennecke@superh.com>
3206 * sh.c (dump_table): New argument start. Changed caller.
3207 (fixup_mova): New function.
3208 (find_barrier): Use it.
3209 (sh_reorg): Likewise. Check for CODE_FOR_casesi_worker_2.
3210 If the label a mova refers to is above the mova itself, change
3211 the mova into a load.
3212 * sh.md (*casesi_worker): Rename to:
3214 (casesi_worker_2): New insn.
3216 2004-06-10 Jason Merrill <jason@redhat.com>
3218 * target.h (struct gcc_target): Change gimplify_va_arg_expr
3220 * tree-gimple.h: Adjust.
3221 * config/alpha/alpha.c (alpha_gimplify_va_arg): Adjust.
3222 * config/i386/i386.c (ix86_gimplify_va_arg): Adjust.
3224 * config/ia64/ia64.c (ia64_gimplify_va_arg): Adjust.
3225 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust.
3226 Use COMPLEX_EXPR for complex numbers. Use fold_convert.
3227 * builtins.c (std_gimplify_va_arg_expr): Adjust. Use fold_convert.
3228 (gimplify_va_arg_expr): Return GS_ERROR in error case.
3229 Gimplify valist rather than calling stabilize_va_list.
3231 2004-06-10 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
3233 * Makefile.in (df.o): Remove fibheap dependency.
3234 * df.h: Do not include sbitmap.h.
3235 (struct ref): New field "data".
3236 (DF_REF_DATA): New accessor macro.
3237 (struct df): Field "dom" removed.
3238 (df_analyze_subcfg): New function.
3239 (transfer_function_sbitmap, transfer_function_bitmap): Replaced by ...
3240 (transfer_function): ... new type.
3241 (iterative_dataflow_sbitmap, iterative_dataflow_bitmap): Replaced by ...
3242 (iterative_dataflow): ... new function.
3243 (enum set_representation, struct dataflow): New.
3244 * df.c: Do not include fibheap.h.
3246 (df_reg_def_chain_clean, df_reg_use_chain_clean,
3247 (df_bb_table_realloc, df_analyse_subcfg, free_reg_ref_chain,
3248 prune_to_subcfg, df_bb_modify): New functions.
3249 (df_bitmaps_alloc, df_reg_def_chain_create, df_reg_use_chain_create,
3250 df_refs_update, df_reg_table_realloc, df_ref_create,
3251 df_bb_reg_def_chain_create, df_bb_reg_use_chain_create,
3252 df_bb_rd_local_compute, df_bb_ru_local_compute, df_bb_lr_local_compute,
3253 df_analyse_1, df_insn_modify): Support analysing only a part of the cfg.
3255 (dataflow_set_a_op_b, dataflow_set_copy): New functions.
3256 (df_rd_transfer_function, df_ru_transfer_function,
3257 df_lr_transfer_function): Type of bitmaps changed to void *.
3258 (hybrid_search_bitmap, hybrid_search_sbitmap): Merge into ...
3259 (hybrid_search): ... new function.
3260 (iterative_dataflow_bitmap, iterative_dataflow_sbitmap): Merge into ...
3261 (iterative_dataflow): ... new function. Avoid use of fibheaps for
3262 a worklist. Do not process basic blocks unnecessarily.
3264 2004-06-10 Roger Sayle <roger@eyesopen.com>
3266 * fold-const.c (fold_abs_const): Make extern.
3267 * tree.h (fold_abs_const): Prototype here.
3268 * builtins.c (fold_builtin_fabs): New function to transform
3269 fabs, fabsf and fabsl builtins into ABS_EXPR tree nodes.
3270 (fold_builtin_abs): New function to transform abs, labs, llabs
3271 and imaxabs builtins into ABS_EXPR tree nodes.
3272 (expand_builtin): Fall back to a function call for abs, labs,
3273 llabs and imaxabs builtins that survive constant folding.
3274 (fold_builtin_1): Call fold_builtin_fabs for FABS, FABSF and
3275 FABSL, and fold_builtin_abs for ABS, LABS, LLABS and IMAXABS.
3277 2004-06-10 Jakub Jelinek <jakub@redhat.com>
3279 * config/ia64/unwind-ia64.c (uw_frame_state_for): Don't assume a
3280 leaf function without unwind info at RP 0.
3282 2004-06-10 Jakub Jelinek <jakub@redhat.com>
3285 * tree.h (enum tree_index): Add TI_FILEPTR_TYPE.
3286 (fileptr_type_node): Define.
3287 * tree.c (build_common_tree_nodes_2): Initialize
3288 fileptr_type_node to ptr_type_node.
3289 * c-common.c (c_common_nodes_and_builtins): For C++, make
3290 fileptr_type_node a distinct type copy.
3291 * builtin-types.def (BT_FILEPTR, BT_FN_INT_CONST_STRING_FILEPTR,
3292 BT_FN_INT_INT_FILEPTR, BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG,
3293 BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR,
3294 BT_FN_INT_FILEPTR_CONST_STRING_VAR): Add.
3295 (BT_FN_INT_CONST_STRING_PTR, BT_FN_INT_INT_PTR,
3296 BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR, BT_FN_INT_PTR_CONST_STRING_VAR,
3297 BT_FN_INT_PTR_CONST_STRING_VALIST_ARG): Remove.
3298 * builtins.def (BUILT_IN_FPRINTF, BUILT_IN_FPRINTF_UNLOCKED,
3299 BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED, BUILT_IN_FPUTS,
3300 BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FSCANF, BUILT_IN_FWRITE,
3301 BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_VFPRINTF, BUILT_IN_VFSCANF): Use
3302 the above *FILEPTR* types instead of *PTR*.
3304 2004-06-09 Daniel Berlin <dberlin@dberlin.org>
3306 * tree-ssa.c (verify_ssa): Verify that vdefs/makes_aliased_stores
3309 2004-06-09 Roger Sayle <roger@eyesopen.com>
3311 * fold-const.c (fold_not_const): New function.
3312 (fold) <ABS_EXPR>: Don't bother testing wins.
3313 (fold) <BIT_NOT_EXPR>: Call fold_not_const.
3314 (nondestructive_fold_unary_to_constant) <BIT_NOT_EXPR>: Likewise.
3316 2004-06-09 Richard Henderson <rth@redhat.com>
3319 * function.c (assign_parms): Always set_mem_align with the computed
3320 FUNCTION_ARG_BOUNDARY. Don't clear stack_parm if !STRICT_ALIGNMENT.
3322 2004-06-09 Richard Henderson <rth@redhat.com>
3325 * tree-tailcall.c (find_tail_calls): Don't check early for
3326 tail_recursion failure.
3328 2004-06-09 Diego Novillo <dnovillo@redhat.com>
3330 Move SSA_NAME annotations into tree_ssa_name.
3332 * tree-dfa.c (create_ssa_name_ann): Remove.
3333 * tree-flow-inline.h (ssa_name_ann, get_ssa_name_ann): Remove.
3334 * tree-flow.h (enum tree_ann_type): Remove SSA_NAME_ANN.
3335 (struct ssa_name_ann_d): Remove.
3336 (union tree_ann_d): Update.
3337 (ssa_name_ann_t): Remove.
3338 * tree-ssa-alias.c: (get_ptr_info): New local function.
3339 Replace references to ssa_name_ann_t with struct ptr_info_def.
3340 * tree-ssa-operands.c (get_expr_operands): Likewise.
3341 * tree.h (SSA_NAME_PTR_INFO): Define.
3342 (struct ptr_info_def): Declare.
3343 (struct tree_ssa_name): Add field 'ptr_info'.
3345 2004-06-09 Danny Smith <dannysmith@users.sourceforge.net>
3347 * config/i386/winnt.c (i386_pe_output_labelref): Correct
3350 2004-06-09 Steven Bosscher <stevenb@suse.de>
3352 * config/i386/k6.md: Rewrite using the DFA model.
3353 * config/i386/i386.c (ix86_adjust_cost): Don't increase the
3354 cost of load-operation insns for the K6.
3355 (ia32_use_dfa_pipeline_interface): Add TARGET_K6.
3356 (ia32_multipass_dfa_lookahead): Likewise.
3358 2004-06-09 Richard Henderson <rth@redhat.com>
3360 * config/alpha/alpha.c (alpha_gimplify_va_arg_1,
3361 alpha_gimplify_va_arg, TARGET_GIMPLIFY_VA_ARG_EXPR): New.
3363 2004-06-09 Richard Henderson <rth@redhat.com>
3365 * expmed.c (emit_store_flag): Cope