1 2004-06-24 Roger Sayle <roger@eyesopen.com>
4 * expmed.c (expand_mult): Remove artificial restriction on the
5 maximum cost of a synthetic multiplication sequence.
7 2004-06-24 Eric Christopher <echristo@redhat.com>
9 * combine.c (distribute_notes): Don't delete sets to
10 global register variables.
12 2004-06-24 Jakub Jelinek <jakub@redhat.com>
14 * config/i386/i386.md (ffsdi2, clzdi2): New expanders.
15 (ffs_rex64): New splitter.
16 (ffsdi_1, ctzdi2, bsr_rex64): New instructions.
18 2004-06-24 Andrew Pinski <apinski@apple.com>
20 * config/darwin7.h (MATH_LIBRARY): Remove.
22 * config/darwin.h (MATH_LIBRARY): Define always to empty.
23 (LIB_SPEC): Only define if not already defined.
25 2004-06-24 Revital Eres <eres@il.ibm.com>
27 * loop-iv.c (iv_analyze, simple_set_p): Support for identifying
28 shifts of induction variable.
29 (iv_shift): New function.
31 2004-06-24 Richard Henderson <rth@redhat.com>
33 * gimplify.c (gimplify_body): Watch for body vanishing.
35 2004-06-24 Jeff Law <law@redhat.com>
37 * tree-ssa-dom.c (record_dominating_conditions): New function.
38 (dom_opt_finalize_block, get_eq_expr_value): Use it.
40 2004-06-24 Richard Sandiford <rsandifo@redhat.com>
42 * calls.c (shift_returned_value): Fix handling of non-integer
45 2004-06-24 Ulrich Weigand <uweigand@de.ibm.com>
47 * c-decl.c (finish_function): Do not check for DEFAULT_MAIN_RETURN.
48 * system.h (DEFAULT_MAIN_RETURN): Poison.
49 * doc/tm.texi (DEFAULT_MAIN_RETURN): Remove documentation.
51 2004-06-24 Ben Elliston <bje@au.ibm.com>
53 * doc/cfg.texi (Edges): Fix typo.
55 2004-06-24 Paul Brook <paul@codesourcery.com>
57 * config/arm/arm.c (arm_output_epilogue): Remove excess checks.
59 2004-06-23 Andrew Pinski <apinski@apple.com>
62 * fold-const.c (fold_convert): Types which are compatible
63 can be converted with only a NOP_EXPR.
65 2004-06-24 Alan Modra <amodra@bigpond.net.au>
67 * calls.c (expand_call): Call INIT_CUMULATIVE_ARGS earlier, and
68 pass raw n_named_args to it.
69 * targhooks.c: Formatting.
70 (hook_bool_CUMULATIVE_ARGS_false): Correct comment.
72 2004-06-23 Richard Henderson <rth@redhat.com>
74 * c-gimplify.c (gimplify_decl_stmt): Push gimplify_one_sizepos inside
75 non-constant size check. Gimplify the type too. Tidy building
76 BUILT_IN_STACK_ALLOC call.
78 2004-06-23 Roger Sayle <roger@eyesopen.com>
80 * c-common.c (expand_unordered_cmp): Delete.
81 (expand_tree_builtin): Delete.
82 * c-common.h (expand_tree_builtin): Delete function prototype.
83 * c-typeck.c (build_function_call): Don't call expand_tree_builtin.
85 2004-06-23 Richard Henderson <rth@redhat.com>
87 * gimplify.c (gimplify_compound_lval): Don't set ARRAY_REF or
88 COMPONENT_REF variable fields unless they're non-constant.
90 2004-06-23 Robert Millan <robertmh@gnu.org>
92 * config.gcc: Merge kfreebsd*-gnu with linux* and add knetbsd*-gnu.
93 * config/i386/linux.h: Allow overriding of LINK_EMULATION,
94 DYNAMIC_LINKER and register names in sc_ structure.
95 * config/kfreebsd-gnu.h: New. kfreebsd-gnu followup for linux.h.
96 * config/i386/kfreebsd-gnu.h: New. Ditto for i386-kfreebsd-gnu.
97 * config/knetbsd-gnu.h: New. Ditto for knetbsd-gnu.
98 * config/i386/knetbsd-gnu.h: New. Ditto for i386-knetbsd-gnu.
100 * config/kfreebsdgnu.h: Remove.
101 * config/t-kfreebsd-gnu: Likewise.
102 * config/i386/kfreebsdgnu.h: Likewise.
104 2004-06-23 Eric Christopher <echristo@redhat.com>
106 * fold-const.c (make_range): Cleanup type checking through function.
107 Remove orig_type. Replace with checks to exp_type and arg0_type.
108 Clarify comment when converting from unsigned to signed.
110 2004-06-23 Eric Christopher <echristo@redhat.com>
112 * config/mips/mips.c (mips_use_dfa_pipeline_interface): Add R3000.
113 * config/mips/mips.md: Remove R3000 scheduling description.
114 * config/mips/3000.md: New file.
116 2004-06-23 Ulrich Weigand <uweigand@de.ibm.com>
118 * config/s390/s390-protos.h (s390_emit_compare): Add prototype.
119 (s390_emit_jump): Likewise.
120 * config/s390/s390.c (s390_emit_compare): New function.
121 (s390_emit_jump): Likewise.
122 * config/s390/s390.md ("beq", "bne", "bgt", "bgtu", "blt", "bltu",
123 "bge", "bgeu", "ble", "bleu", "bunordered", "bordered", "buneq",
124 "bungt", "bunlt", "bunge", "bunle", "bltgt"): Use s390_emit_compare
126 ("cjump"): Remove, replace by ...
127 ("*cjump_64", "*cjump_31"): ... these insns. Improve length default.
128 ("icjump", "*icjump_64", "*icjump_31"): Likewise.
129 ("trap"): Fix type attribute.
130 ("conditional_trap"): Use s390_emit_compare.
131 ("doloop_si"): Remove, replace by ...
132 ("doloop_si64", "doloop_si31"): ... these new insn_and_split.
133 Merge existing splitter into insn_and_split. Improve length default.
134 ("doloop_di"): Merge with existing splitter into insn_and_split.
136 ("jump"): Convert to expander. Use s390_emit_jump.
137 ("*jump_64", "*jump_31"): New insns. Improve length default.
139 2004-06-23 Wu Yongwei <adah@sh163.net>
141 * gthr-win32.h (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
142 (__gthr_i486_lock_cmp_xchg): New inline assembly function.
143 (__GTHR_W32_InterlockedCompareExchange): New macro to choose a
144 suitable function for interlocked compare-and-exchange.
145 (__gthread_mutex_trylock): Use
146 __GTHR_W32_InterlockedCompareExchange.
147 (__gthread_mutex_init_function, __gthread_mutex_lock,
148 __gthread_mutex_trylock, __gthread_mutex_unlock): Adjust the
149 initial counter value to work correctly under Windows 95.
150 * config/i386/gthr-win32.c: Adjust include order.
151 Define __GTHREAD_I486_INLINE_LOCK_PRIMITIVES before including
153 (__gthr_win32_mutex_init_function, __gthr_win32_mutex_lock,
154 __gthr_win32_mutex_trylock, __gthr_win32_mutex_unlock): Adjust
155 to match inline versions in gthr-win32.h.
157 2004-06-23 David Edelsohn <edelsohn@gnu.org>
159 * config/rs6000/rs6000.c (rs6000_use_dfa_pipeline_interface): Delete.
160 (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Redefine a hook_int_void_1.
161 (insvdi_rshift_rlwimi_p): New function.
162 * config/rs6000/rs6000.md (insvdi_internal2/3): New patterns.
163 (extendsfdf2): Convert to define_insn_and_split.
164 * config/rs6000/rs6000-protos.h (insvdi_rshift_rlwimi_p): Prototype.
166 2004-06-23 Andrew Pinski <apinski@apple.com>
168 * c-typeck.c (composite_type, <case ARRAY_TYPE>): Abort if we have
169 type qualifiers at all.
170 If both of the type domains are null and the new element type is
171 the same as one of the, return the one which the element type.
173 Do not call qualify_type on the new type.
175 2004-06-23 Ulrich Weigand <uweigand@de.ibm.com>
177 * config/s390/s390.h (DEFAULT_MAIN_RETURN): Remove.
179 2004-06-23 Roger Sayle <roger@eyesopen.com>
181 * convert.c (strip_float_extension): Skip both NOP_EXPR and
182 CONVERT_EXPR floating point extensions.
184 2004-06-23 Diego Novillo <dnovillo@redhat.com>
186 * Makefile.in (tree-vn.o): New.
187 (tree-ssa-pre.o): Don't depend on RTL_H.
188 * tree-dfa.c (find_referenced_vars): Don't call init_tree_ssa.
189 * tree-flow.h (struct var_ann_d): Remove field expr_set.
190 (add_to_value, expressions_equal_p, get_value_handle, vn_compute,
191 vn_lookup_or_add, vn_add, vn_lookup, vn_init, vn_delete): Declare.
192 * tree-optimize.c (execute_init_datastructures): New local function.
193 (pass_init_datastructures): New local variable.
194 (init_tree_optimization_passes): Sequence pass_init_datastructures.
195 * tree-pretty-print.c (MASK_POINTER): Remove.
196 (dump_generic_node): Handle VALUE_HANDLE.
197 * tree-ssa-pre.c: Move all value numbering routines to tree-vn.c.
198 Update callers to use new function names.
199 Use VALUE_HANDLE_ID and VALUE_HANDLE_EXPR_SET instead of
200 variable annotations.
201 * tree-ssa.c (init_tree_ssa): Call vn_init.
202 (delete_tree_ssa): Call vn_delete.
203 * tree-vn.c: New file.
204 * tree.c (tree_size): Handle VALUE_HANDLE.
205 (tree_node_structure): Likewise.
206 (iterative_hash_expr): Likewise.
207 * tree.def (VALUE_HANDLE): New code.
208 * tree.h (struct tree_value_handle): New.
209 (VALUE_HANDLE_ID): Define.
210 (VALUE_HANDLE_EXPR_SET): Define.
211 (enum tree_node_structure_enum): Add TS_VALUE_HANDLE.
212 (union tree_node): Add struct tree_value_handle.
214 2004-06-23 Andrew Pinski <apinski@apple.com>
216 * c-typeck.c (composite_type):
217 <case POINTER_TYPE>: Build a qualified type of
219 <case ARRAY_TYPE>: Likewise.
220 <case FUNCTION_TYPE>: Likewise.
222 2004-06-23 Pat Haugen <pthaugen@us.ibm.com>
224 PR optimization/15633
225 * value-prof.c (divmod_fixed_value_transform): Compute probability
226 of taking optimal path and pass along to gen_ routine.
227 (mod_pow2_value_transform): Same.
228 (mod_subtract_transform): Same.
229 (gen_divmod_fixed_value): Add new probability parameter.
230 Add probability to newly created jump.
231 (gen_mod_pow2): Same.
232 (gen_mod_subtract): Same.
234 2004-06-23 Richard Earnshaw <rearnsha@arm.com>
237 * arm.md (bicsi3_cbranch): Add alternative to handle tying operands
240 2004-06-23 Richard Earnshaw <rearnsha@arm.com>
243 * arm.h (THUMB_SECONDARY_OUTPUT_RELOAD_CLASS): Don't need a secondary
244 reload if CLASS is BASE_REGS.
246 2004-06-23 Richard Sandiford <rsandifo@redhat.com>
248 * gengtype-yacc.y (option): Avoid use of non-constant struct
251 2004-06-23 Nathan Sidwell <nathan@codesourcery.com>
253 * doc/extend.texi (Function Attributes): Alphabetize.
255 2004-06-23 Richard Henderson <rth@redhat.com>
257 * c-gimplify.c (gimplify_decl_stmt): Update gimplify_type_sizes call.
258 Use gimplify_and_add.
259 * c-typeck.c (c_finish_if_stmt): Use NULL instead of empty stmt.
260 * gimplify.c (build_and_jump, gimplify_exit_expr,
261 gimplify_init_constructor, gimplify_save_expr, gimple_push_cleanup,
262 gimplify_stmt, gimplify_expr): Likewise.
263 (shortcut_cond_expr): Handle NULL arms of COND_EXPR.
264 (gimplify_statement_list): Remove NULL entries.
265 (gimplify_to_stmt_list): Handle NULL results.
266 (gimplify_type_sizes): Add list_p argument.
267 (gimplify_one_sizepos): Don't use internal pre/post queue.
268 * tree-gimple.h (gimplify_type_sizes): Update.
270 2004-06-22 Eric Christopher <echristo@redhat.com>
272 * config/rs6000/rs6000.md (*insvsi_internal5/6): New patterns.
274 2004-06-22 Pat Haugen <pthaugen@us.ibm.com>
276 * cfghooks.c (make_forwarder_block): Decrement count on fallthru edge
277 when redirecting back edges.
279 * cfghooks.c (split_block): Call make_single_succ_edge so that edge
280 count/probability are set correctly.
282 2004-06-22 Richard Henderson <rth@redhat.com>
284 * c-typeck.c (emit_side_effect_warnings): Ignore error marks.
285 (c_finish_stmt_expr): Likewise.
287 * config/i386/i386.c (TARGET_STRUCT_VALUE_RTX): New.
288 (ix86_return_in_memory): Move SSE vector return warning ...
289 (ix86_struct_value_rtx): ... here. New.
291 2004-06-22 Richard Henderson <rth@redhat.com>
293 * tree.def (VTABLE_REF): Remove.
295 (TRY_CATCH_EXPR, TRY_FINALLY_EXPR): Set type 's'.
296 * expr.c (expand_expr_real_1): Replace VTABLE_REF with OBJ_TYPE_REF.
297 * fold-const.c (non_lvalue): Likewise.
298 * gimplify.c (gimplify_expr): Likewise.
299 (gimplify_call_expr): Use is_gimple_call_addr.
300 * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): New.
301 * langhooks.h (fold_obj_type_ref): New.
302 * tree-gimple.c (is_gimple_call_addr): New.
303 * tree-gimple.h (is_gimple_call_addr): Declare.
304 * tree-inline.c (inlinable_function_p): Fix merge error.
305 (estimate_num_insns_1): Replace VTABLE_REF with OBJ_TYPE_REF.
306 * tree-pretty-print.c (dump_generic_node): Likewise.
307 (print_call_name): Handle OBJ_TYPE_REF.
308 * tree-ssa-ccp.c (fold_stmt): Fold OBJ_TYPE_REF.
309 * tree-ssa-operands.c (get_expr_operands): Handle OBJ_TYPE_REF.
310 * tree.h (OBJ_TYPE_REF_EXPR): New.
311 (OBJ_TYPE_REF_OBJECT, OBJ_TYPE_REF_TOKEN): New.
312 * doc/c-tree.texi (VTABLE_REF): Remove.
313 * objc/objc-act.c (build_objc_method_call): Build an OBJ_TYPE_REF.
315 2004-06-22 Richard Henderson <rth@redhat.com>
318 * function.c (assign_parms): Don't abort for overaligned PARALLEL.
320 2004-06-22 Joseph S. Myers <jsm@polyomino.org.uk>
322 * Makefile.in (distclean): Don't try to remove empty directories.
324 2004-06-22 Richard Sandiford <rsandifo@redhat.com>
327 * config/mips/mips.c (mips_avoid_hazards): Call split_all_insns_noflow.
329 2004-06-22 Alexandre Oliva <aoliva@redhat.com>
331 * config/mn10300/mn10300.md (movdi, movdf): Use high/low for movu
334 2004-06-22 Dale Johannesen <dalej@apple.com>
336 * config/rs6000/rs6000.c (legitimate_offset_address_p): Make
337 global, rename rs6000_legitimate_offset_address_p.
338 (rs6000_legitimate_address_p): Adjust calls to it.
339 (lmw_operation): Ditto.
340 (stmw_operation): Ditto.
341 * config/rs6000/rs6000-protos.h: Declare it.
342 * config/rs6000/rs6000.md (*movdf_hardfloat32): Use it
343 instead of offsettable_memref_p.
345 2004-06-22 Dale Johannesen <dalej@apple.com>
347 * config/rs6000/rs6000.c (rs6000_legitimate_address): Disallow
348 [reg+reg] mode for TFmode memory accesses.
349 (rs6000_eliminate_indexed_memrefs): New.
350 (rs6000_emit_move): Call preceding for TImode and TFmode.
352 2004-06-22 Paolo Bonzini <bonzini@gnu.org>
354 * tree-cfg.c (pass_warn_function_return): It needs
357 2004-06-22 Nathan Sidwell <nathan@codesourcery.com>
359 * doc/invoke.texi (Machine Dependent Options): Alphabetize.
360 (Submodel Options): Likewise.
362 2004-06-21 Andrew Pinski <apinski@apple.com>
365 * c-decl.c (push_file_scope): Return early if we already
368 2004-06-21 Geoffrey Keating <geoffk@apple.com>
370 * c-opts.c (c_common_handle_option): Handle -fpch-preprocess.
371 * c-common.h (flag_pch_preprocess): Declare.
372 (c_common_pch_pragma): Likewise.
373 * c-common.c (flag_pch_preprocess): New.
374 * c-pch.c (c_common_read_pch): Support -fpreprocess-only.
375 (c_common_pch_pragma): New.
376 * c-ppoutput.c (cb_read_pch): New.
377 (init_pp_output): Support -fpch-preprocess.
378 * c-pragma.c (init_pragma): Support #pragma GNUC pch_preprocess.
379 * c.opt (fpch-preprocess): New.
380 * gcc.c (cpp_options): When save-temps, pass -fpch-preprocess.
381 * doc/cppopts.texi: Document -fpch-preprocess.
382 * doc/invoke.texi (Precompiled Headers): Mention that
383 -fpreprocessed is safe for PCH. Mention that if an option is
384 listed as safe that doesn't mean it does what you expect.
386 2004-06-22 Ben Elliston <bje@au.ibm.com>
388 * tree-ssa.c (ssa_redirect_edge): Correct leading comment.
390 2004-06-21 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
392 * Makefile.in (gimplify.o): Add cgraph.h.
393 * alias.c (adjust_offset_for_component_ref): Use
394 component_ref_field_offset.
395 * c-decl.c (build_array_declarator): Add news args for ARRAY_REF.
396 * c-gimplify.c (gimplify_expr_stmt): Use alloc_stmt_list.
397 (gimplify_decl_stmt): Call gimplify_type_sizes for type.
398 For decl, call gimplify_one_sizepos and use statement list.
399 (gimplify_compound_literal_expr): New arg PRE_P.
400 Add statement to PRE_P list and return DECL.
401 (c_gimplify_expr, case COMPOUND_LITERAL_EXPR): Add arg to
402 gimplify_compound_literal_expr.
403 * c-tree.h (getdecls): Deleted.
404 * c-typeck.c (build_component_ref): Add operand for COMPONENT_REF.
405 (build_array_ref): Add two operands for ARRAY_REF.
406 (build_unary_op): Set TREE_INVARIANT and TREE_CONSTANT for
407 COMPOUND_LITERAL_EXPR.
408 * coverage.c (tree_coverage_counter_ref): Add new operands
410 * emit-rtl.c (component_ref_for_mem_expr): Add new operand
412 (set_mem_attributes_minus_bitpos): Use array_ref_low_bound
413 and array_ref_element_size.
414 (widen_memory_access):Use component_ref_field_offset.
415 * explow.c (update_nonlocal_goto_save_area): Add two operands
417 * expr.c (array_ref_element_size, array_ref_low_bound): New functions.
418 (component_ref_field_offset): Likewise.
419 (get_inner_reference): Use them.
420 (expand_expr_real_1, case ARRAY_REF): Use array_ref_low_bound.
421 * fold-const.c (fold, case EQ_EXPR): Properly handle DECL_SIZE.
422 (fold_read_from_constant_string): Use array_ref_low_bound.
423 Verify that result is a character type.
424 (build_fold_indirect_ref): Add two operands for ARRAY_REF.
425 * function.c (expand_function_start): Likewise.
426 * gimple-low.c (expand_var_p): Delete duplicated line.
427 * gimplify.c: Add static decls for local functions.
428 (cgraph.h): Now included.
429 (create_tmp_var): Remove check for ARRAY_TYPE.
430 (copy_if_shared_r): Look at bounds and sizes of types.
431 (build_and_jump): Return alloc_stmt_list instead of build_empty_stmt.
432 (gimplify_exit_expr, shortcut_cond_expr): Likewise.
433 (gimplify_save_expr, gimple_push_cleanup): Likewise.
434 (gimplify_init_constructor): Likewise.
436 If empty list with no result wanted, return GS_UNHANDLED.
437 Add additional operands for ARRAY_REF and COMPONENT_REF.
438 (canonicalize_component_ref): Convert to &array[L].
439 (gimplify_array_ref_to_plus): Use array_ref_element_size and
440 array_ref_lower_bound.
441 (build_addr_expr_with_type, build_addr_expr): New functions.
442 (gimplify_compound_lval): WANT_LVALUE now bool.
443 Major rework to allow handle_component_p and initialize and
444 gimplify new operands for ARRAY_REF, ARRAY_RANGE_REF, and
446 (gimplify_array_ref): Deleted.
447 (gimplify_self_mod_expr): WANT_VALUE now bool.
448 (gimplify_modify_expr): Gimplify to_p and from_p later.
449 Factor out code into gimplify_modify_expr_rhs and call twice.
450 Move variable-size code earlier and handle PLACEHOLDER_EXPR.
451 (gimplify_modify_expr_rhs, gimplify_variable_sized_compare): New fns.
452 (gimplify_addr_expr, case VIEW_CONVERT_EXPR): New case.
453 (gimplify_expr, case ARRAY_REF): Delete special case.
454 Instead handle like COMPONENT_REF; also do ARRAY_RANGE_REF,
455 IMAGPART, and REALPART the same way.
456 (gimplify_expr, case VIEW_CONVERT_EXPR): New case.
457 (gimplify_expr): Call gimplify_variable_sized_compare if applicable.
458 Call alloc_stmt_list instead of build_empty_stmt.
459 Deal with _REF that's volatile.
460 (gimplify_type_sizes, gimplify_one_sizepos): New functions.
461 (unshare_body, unvisit_body): New functions.
462 (gimplify_body): Call them.
463 * stmt.c (expand_stack_alloc): Don't expand TYPE_MAX_VALUE.
464 * stor-layout.c (get_pending_sizes): Don't change SAVE_EXPR_CONTEXT.
465 * tree-alias-common.c (get_alias_var): Also skip ARRAY_RANGE_REF.
466 * tree-cfg.c (tree_node_can_be_shared): Treat ARRAY_RANGE_REF
468 (verify_expr, case ADDR_EXPR): Use handled_component_p.
469 * tree-dfa.c (get_virtual_var): Likewise.
470 * tree-dump.c (dequeue_and_dump, case COMPONENT_REF, ARRAY_REF):
471 New cases to dump new operands; likewise for ARRAY_RANGE_REF.
472 * tree-eh.c (tree_could_trap, case ARRAY_RANGE_REF): Like ARRAY_REF.
473 * tree-gimple.c (is_gimple_addr_expr_arg): Add ARRAY_RANGE_REF
475 (get_base_address): Use handled_component_p.
476 * tree-gimple.h (gimplify_type_sizes, gimplify_one_sizepos): New.
477 * tree-inline.c (walk_tree): Walk more things for types and decls.
478 * tree-mudflap.c (mf_build_check_statement_for): Add new operands
479 for ARRAY_REF and COMPONENT_REF.
480 (mx_xform_derefs_1): Clean up usage of decl sizes.
481 * tree-nested.c (build_addr): Use handled_component_p.
482 (walk_stmts, case CATCH_EXPR): Add missing "break".
483 (get_static_chain, get_frame_field): Add new operand for COMPONENT_REF.
484 (finalize_nesting_tree_1): Likewise.
485 (convert_nonlocal_reference, case ARRAY_RANGE_REF): Like ARRAY_REF
486 and process additional operands.
487 (convert_local_reference): Likewise.
488 * tree-outof-ssa.c (discover_nonconstant_array_refs_r): Treat
489 ARRAY_RANGE_REF similarly to ARRAY_REF.
490 * tree-pretty-print.c (dump_generic_node, case QUAL_UNION_TYPE): Handle
492 (dump_generic_node, case COMPONENT_REF): Print offset operand.
493 (dump_generic_node, case ARRAY_RANGE_REF): Treat like ARRAY_REF
494 and print lower bound and element size for both.
495 (op_prio, case ARRAY_RANGE_REF): Like ARRAY_REF.
496 * tree-sra.c (csc_build_component_ref): Add new operand.
497 (scalarize_call_expr): Use get_base_address.
498 * tree-ssa-ccp.c (widen_bitfield): Clean up size handling.
499 (maybe_fold_offset_to_array_ref): Rework to handle input having an
500 ARRAY_REF, refine handling of lower bound, and add new operands
502 (maybe_fold_to_component_ref): Add new operand for COMPONENT_REF.
503 (maybe_fold_stmt_indirect): Only fold *&B to B if types match.
504 (maybe_fold_stmt_addition): Only handle constant lower bound.
505 * tree-ssa-operands.c (get_expr_operands): Minor rearrangements.
506 Treat ARRAY_REF and ARRAY_RANGE_REF the same; look at extra operands.
507 Look at new offset operand of COMPONENT_REF.
508 * tree-ssa.c (set_is_used): Use handled_component_p.
509 * tree.c (substitute_in_expr, case COMPONENT_REF): Add new operand.
510 (stabilize_reference, case COMPONENT_REF): Likewise.
511 (stabilize_reference, case ARRAY_RANGE_REF, ARRAY_REF): Similarly.
512 (recompute_tree_invariant_for_addr_expr): Completely rework to
513 be more precise. Also set TREE_SIDE_EFFECTS.
514 (build1_stat, case ARRAY_EXPR): Don't handle TREE_SIDE_EFFECTS here.
515 (build2_stat, build3_stat, build4_stat): For references,
516 propagate TREE_THIS_VOLATILE.
517 (get_unwidened): Add new operand for COMPONENT_REF.
518 (get_narrower): Likewise; use host_integerp for DECL_SIZE.
519 * tree.def (COMPONENT_REF): Add new operand.
520 (ARRAY_REF, ARRAY_RANGE_REF): Add two new operands.
521 * tree.h (array_ref_element_size, array_ref_low_bound): New decls.
522 (component_ref_field_offset): Likewise.
523 * config/alpha/alpha.c (alpha_va_start): Add new op for COMPONENT_REF.
524 (alpha_gimplify_va_arg): Likewise.
525 * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
526 * config/i860/i860.c (i860_va_start, i860_va_arg): Likewise.
527 * config/iq2000/iq2000.c (iq2000_va_arg): Likewise.
528 * config/mips/mips.c (mips_va_start, mips_va_arg): Likewise.
529 * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg):
531 * config/s390/s390.c (s390_va_start, s390_gimplify_va_arg): Likewise.
532 * config/sh/sh.c (sh_va_start, sh_va_arg): Likewise.
533 * config/stormy16/stormy16.c (xstormy1_expand_builin_va_start):
535 (xstormy16_expand_builtin_va_arg): Likewise.
536 * config/xtensa/xtensa.c (xtensa_va_start, xtensa_va_arg): Likewise.
537 * objc/objc-act.c (generate_static_references): Likewise.
538 (generate_strings, build_method_prototype_list_template): Likewise.
539 (generate_protocol_list): Likewise.
541 2004-06-21 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
543 PR rtl-optimization/14782
544 * pa.c (emit_move_sequence): Use SFmode for 4-byte modes when doing
545 the address checks for secondary reloads for loads from and stores
546 to floating-point registers.
547 * pa.h (EXTRA_CONSTRAINT, case T): Use SFmode for 4-byte modes
548 in the address check. Move work around for ELF32 targets to
549 GO_IF_LEGITIMATE_ADDRESS.
550 (GO_IF_LEGITIMATE_ADDRESS): Require constant offsets to be
551 correctly aligned for DImode loads and stores. Don't allow long
552 SFmode displacements on ELF32.
554 2004-06-21 Richard Henderson <rth@redhat.com>
557 * cse.c (merge_equiv_classes): Also rehash in response to
558 delete_reg_equiv changes.
559 (rehash_using_reg): Don't exclude REGs from rehashing.
561 2004-06-21 Richard Henderson <rth@redhat.com>
563 * c-common.def (RETURN_STMT): Remove.
564 * c-common.h (RETURN_STMT_EXPR): Remove.
565 (c_expand_return, build_return_stmt): Remove.
566 (c_common_stmt_codes): Remove RETURN_STMT.
567 * c-dump.c (dump_next_stmt): Remove.
568 (c_dump_tree): Remove RETURN_STMT.
569 * c-decl.c (finish_function): Use c_finish_return.
570 * c-parse.in (stmt): Likewise.
571 * c-gimplify.c (gimplify_return_stmt): Remove.
572 (c_gimplify_expr): Remove RETURN_STMT.
573 * c-pretty-print.c (pp_c_statement): Likewise.
574 * c-semantics.c (build_return_stmt): Remove.
575 * c-tree.h (c_finish_return): Declare.
576 * c-typeck.c (c_finish_return): Rename from c_expand_return.
577 Return void. Build RETURN_EXPR directly.
578 * tree-dump.h (dump_next_stmt): Remove.
580 2004-06-21 Zack Weinberg <zack@codesourcery.com>
582 * c-decl.c (start_function): Don't call make_decl_rtl. Don't
583 look at TREE_ADDRESSABLE of symbol name.
585 2004-06-21 Kelley Cook <kcook@gcc.gnu.org>
588 * config/i386/i386.md: Change UNSPEC_STACK_PROBE to UNSPECV_STACK_PROBE.
589 (allocate_stack_worker): Make unspec_volatile.
590 (allocate_stack_worker_rex64): Likewise.
591 (allocate_stack_worker_postreload): Likewise.
592 (allocate_stack_worker_rex64_postreload): Likewise.
594 2004-06-21 Daniel Berlin <dberlin@dberlin.org>
596 Fix PR optimization/15982
597 * tree-ssa-pre.c: Update a few comments and todos to
598 reflect constants change.
599 (get_value_handle): Constants now value number to themselves.
600 (lookup): Constants lookup to themselves.
601 (add_to_value): Adjust to always be on.
602 (set_contains_value): Adjust for constants change.
603 (find_leader): Ditto.
604 (phi_translate): 'r' nodes are never ANTIC right now.
605 (valid_in_set): Ditto.
606 (get_expr_set): New function.
607 (find_or_generate_expression): New function, broken out from
609 (create_expression_by_pieces): Ditto, plus additional
610 machinery to handle complex values.
611 (compute_avail): Remove dead RETURN_EXPR handling.
613 2004-06-21 Steven Bosscher <stevenb@suse.de>
615 * config/i386/i386.c: Include insn-codes.h
616 * config/i386/i386.h (FLAGS_REG, FPSR_REG, DIRFLAG_REG): Don't
618 * config/i386/i386.md (BP_REG, SP_REG, FLAGS_REG, FPSR_REG,
619 DIRFLAG_REG): New define_constants. Use them everywhere.
621 2004-06-21 Kaz Kojima <kkojima@gcc.gnu.org>
623 * config/sh/t-linux (MULTILIB_OPTIONS): Remove.
625 2004-06-21 J"orn Rennecke <joern.rennecke@superh.com>
627 * sh.h (SUPPORT_SH1, SUPPORT_SH2E, SUPPORT_SH4): Conditionanlly define.
628 (SUPPORT_SH4_SINGLE): Likewise.
629 (TARGET_SWITCHES): Break out switches for cpu subtargets:
630 (TARGET_SWITCH_SH1, TARGET_SWITCH_SH2, TARGET_SWITCH_SH2E): Define.
631 (TARGET_SWITCH_SH3, TARGET_SWITCH_SH3E): Likewise.
632 (TARGET_SWITCH_SH4_SINGLE_ONLY, TARGET_SWITCH_SH4_SINGLE): Likewise.
633 (TARGET_SWITCH_SH4_NOFPU, TARGET_SWITCH_SH4): Likewise.
634 (TARGET_SWITCH_SH5_64MEDIA, TARGET_SWITCH_SH5_64MEDIA_NOFPU): Likewise.
635 (TARGET_SWITCHES_SH5_32MEDIA): Likewise.
636 (TARGET_SWITCHES_SH5_32MEDIA_NOFPU): Likewise.
637 (SELECT_SH5_64, SELECT_SH5_64_NOFPU): Rename to:
638 (SELECT_SH5_64MEDIA, SELECT_SH5_64MEDIA_NOFPU)
639 (SELECT_SH5_32, SELECT_SH5_32_NOFPU): Rename to:
640 (SELECT_SH5_32MEDIA, SELECT_SH5_32MEDIA_NOFPU).
641 (SH_MULTILIB_CPU_DEFAULT, MULTILIB_DEFAULTS): Define.
642 (ASM_ISA_SPEC_DEFAULT, ASM_ISA_DEFAULT_SPEC): Likewise.
643 * sh64.h (ASM_SPEC, LINK_DEFAULT_CPU_EMUL): Don't redefine.
644 (TARGET_DEFAULT): Likewise.
645 * config/sh/t-elf: Amend comment.
646 * config/sh/t-1e, config/sh/t-mlib-sh1: New files.
647 * config/sh/t-mlib-sh2, config/sh/t-mlib-sh2e: Likewise.
648 * config/sh/t-mlib-sh3, config/sh/t-mlib-sh3e: Likewise.
649 * config/sh/t-mlib-sh4, config/sh/t-mlib-sh4-nofpu: Likewise.
650 * config/sh/t-mlib-sh4-single: Likewise.
651 * config/sh/t-mlib-sh4-single-only: Likewise.
652 * config/sh/t-mlib-sh5-32media: Likewise.
653 * config/sh/t-mlib-sh5-32media-nofpu: Likewise.
654 * config/sh/t-mlib-sh5-64media: Likewise.
655 * config/sh/t-mlib-sh5-64media-nofpu: Likewise.
656 * config/sh/t-mlib-sh5-compact: Likewise.
657 * config/sh/t-mlib-sh5-compact-nofpu: Likewise.
658 * config/sh/t-sh: (MULTILIB_ENDIAN): Add mb.
659 (MULTILIB_CPUS): Define.
660 (MULTILIB_OPTIONS): Use MULTILIB_CPUS.
661 (MULTILIB_MATCHES): Use some shell code to calculate it.
662 (MULTILIB_EXCEPTIONS): Change to ml/m1.
663 * config/sh/elf.h (SUBTARGET_ASM_ISA_SPEC): Use ASM_ISA_DEFAULT_SPEC.
664 * config/sh/netbsd-elf.h: Update code which sets TARGET_VERSION_CPU.
665 (LINK_DEFAULT_CPU_EMUL): Don't redefine.
666 (NO_PROFILE_COUNTERS): Define to 1.
667 * config/sh/t-netbsd (MULTILIB_OPTIONS): Don't append to.
668 (MULTILIB_DIRNAMES, MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Don't zap.
669 * config/sh/t-netbsd-sh5-64 (MULTILIB_OPTIONS): Don't redefine.
670 (MULTILIB_MATCHES): Don't zap.
671 (MULTILIB_DIRNAMES): Use MULTILIB_RAW_DIRNAMES.
672 * config/sh/t-sh64 (MULTILIB_OPTIONS): Don't redefine.
673 (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Don't zap.
674 (MULTILIB_RAW_DIRNAMES): Define.
675 (MULTILIB_DIRNAMES): Use it.
676 * config.gcc: Also set cpu_type / need_64bit_hwint for sh[be]*-*-*.
677 (sh*linux configurations): Merge into:
678 (sh*elf / sh*kaos configurations). Support --with-endian, --with-cpu,
679 --with-multilib-list options. Support sh-superh-elf configuration.
680 (sh*-netbsd*): Use SELECT_SH* macros.
681 (supported_defaults): sh[123456ble]-*-* | sh-*-* support "cpu".
682 Merge sh*-*-netbsd* configurations into sh-elf configurations.
683 * config/sh/t-netbsd-sh5, config/sh/t-be, config/sh/t-le: Delete.
684 * config/sh/t-monolib: Likewise.
686 2004-06-21 Paul Brook <paul@codesourcery.com>
688 * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Soft-float need
691 2004-06-21 Roger Sayle <roger@eyesopen.com>
693 * fold-const.c (operand_equal_p): Pass flags in recursive calls for
694 binary and relational operations. Add support for TRUTH_ANDIF_EXPR,
695 TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR and TRUTH_XOR_EXPR.
696 * tree.c (commutative_tree_code): Also list UNORDERED_EXPR,
697 ORDERED_EXPR, UNEQ_EXPR, LTGT_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR
700 2004-06-21 Paolo Bonzini <bonzini@gnu.org>
702 * rtlanal.c (may_trap_p): Mark LTGT as trapping.
704 2004-06-21 Joseph S. Myers <jsm@polyomino.org.uk>
706 * tree-alias-common.h (struct tree_alias_ops): Change ip and
707 ip_partial to unsigned int.
709 2004-06-21 Richard Henderson <rth@redhat.com>
711 * c-common.c (verify_sequence_points): Export.
712 (c_expand_expr_stmt): Move to c-typeck.c.
713 * c-common.h (c_expand_expr_stmt): Remove.
714 (verify_sequence_points): Declare.
715 * c-mudflap.c (mflang_flush_calls): Use c_finish_expr_stmt.
716 * c-parse.in (for_init_stmt, stmt): Likewise.
717 * c-tree.h (c_finish_expr_stmt): Declare.
718 (c_tree_expr_nonnegative_p): Remove.
719 * c-typeck.c (c_tree_expr_nonnegative_p): Remove.
720 (build_conditional_expr, build_binary_op): Use tree_expr_nonnegative_p.
721 (emit_side_effect_warnings): New.
722 (c_finish_expr_stmt): Rename from c_expand_expr_stmt. Use it.
723 (c_finish_stmt_expr): Work without EXPR_STMT. Handle eh regions.
724 Use emit_side_effect_warnings.
725 (push_cleanup): Copy STATEMENT_LIST_STMT_EXPR.
726 * fold-const.c (tree_expr_nonnegative_p): Handle TARGET_EXPR.
727 * gimplify.c (gimplify_modify_expr): Don't discard TARGET_EXPR
728 with void initializer.
729 (gimplify_target_expr): Handle void BIND_EXPR initializer.
730 * tree-inline.c (estimate_num_insns_1): Fix type lookup for
731 INIT_EXPR and MODIFY_EXPR.
732 * objc/objc-act.c (build_module_descriptor): Use add_stmt
733 instead of c_expand_expr_stmt.
735 2004-06-21 Paolo Bonzini <bonzini@gnu.org>
737 * fold-const.c (fold_cond_expr_with_comparison):
738 New function, extracted from fold.
739 (fold): Extract code to fold A op B ? A : C, use
740 it to fold A op B ? C : A. Really optimize
741 A & N ? N : 0 where N is a power of two. Avoid
742 relying on canonicalization and recursion for
743 foldings of COND_EXPR to happen.
745 2004-06-20 David Ayers <d.ayers@inode.at>
747 * objc/objc-act.h (get_object_reference): Rename to
748 get_protocol_reference.
749 (super_type): Rename to objc_super_type.
750 (selector_type): Rename to objc_selector_type.
751 (id_type): Rename to objc_id_type.
752 (instance_type): Rename to objc_instance_type.
753 (protocol_type): Rename to objc_protocol_type.
754 (IS_ID): Update reference to id_type.
755 * objc/objc-act.c (get_object_reference): Rename to
756 get_protocol_reference; add documentation; update references to
758 (lookup_method_in_protocol_list): Rename class_meth to
759 is_class; add documentation.
760 (finish_message_expr): Rename is_class to class_tree.
761 (synth_module_prologue, objc_is_object_ptr, objc_build_exc_ptr,
762 next_sjlj_build_try_catch_finally, objc_begin_catch_clause,
763 build_next_objc_exception_stuff, get_arg_type_list,
764 build_objc_method_call): Update references to id_type.
765 (synth_module_prologue, build_objc_symtab_template,
766 build_selector_reference_decl, build_selector,
767 build_selector_translation_table, build_typed_selector_reference,
768 get_arg_type_list, synth_self_and_ucmd_args, get_arg_type_list,
769 synth_self_and_ucmd_args): Update references to selector_type.
770 (build_private_template, build_ivar_reference): Update references
772 (synth_module_prologue, build_protocol_reference,
773 build_protocol_expr, start_protocol): Update references to
775 (synth_module_prologue, get_arg_type_list, build_objc_method_call):
776 Update references to super_type.
777 * c-parse.in: (typespec_nonreserved_nonattr): Update
778 references to get_object_reference.
779 * objc/objc-tree.def: Add C mode identifier sequence.
781 2004-06-20 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
783 * loop-invariant.c: New file.
784 * Makefile.in (loop-invariant.o): New.
785 * cfgloop.h (global_cost_for_size, init_set_costs,
786 move_loop_invariants): Declare.
787 * cfgloopanal.c (seq_cost, init_set_costs, global_cost_for_size): New
789 (avail_regs, res_regs, small_cost, pres_cost, spill_cost): New
791 * common.opt (floop-optimize2, fmove-loop-invariants): New options.
792 * loop-init.c (loop_optimizer_init): Call init_set_costs.
793 * passes.c (rest_of_handle_loop2): Call move_loop_invariants.
794 (rest_of_compilation): Check flag_loop_optimize2.
795 * toplev.c (process_options): Handle flag_loop_optimize2.
796 * doc/invoke.texi (-floop-optimize2, -fmove-loop-invariants): Document.
797 * doc/passes.texi (loop-invariant.c): Document.
799 2004-06-20 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
801 * tree-ssa-pre.c (compute_antic): Keep BB_VISITED flag zeroed.
803 2004-06-20 Richard Henderson <rth@redhat.com>
805 * stmt.c (warn_if_unused_value): Add locus argument.
806 * tree.h (warn_if_unused_value): Update decl.
807 * c-typeck.c (internal_build_compound_expr): Update call.
808 * c-gimplify.c (gimplify_expr_stmt): Likewise.
810 2004-06-20 Andrew Pinski <pinskia@physics.uc.edu>
813 * builtins.c (entry_of_function): Move to ...
814 * cfgrtl.c (entry_of_function): Here and make non-static.
815 * integrate.c (emit_initial_value_sets): Use entry_of_function.
816 * rtl.h (entry_of_function): Prototype.
818 2004-06-20 Roger Sayle <roger@eyesopen.com>
820 * config/i386/i386.c (pentium4_cost): Increase "lea" cost from 1 to 3.
821 (ix86_rtx_costs) <ASHIFT, PLUS>: Consider ix86_cost->lea even when
822 TARGET_DECOMPOSE_LEA.
824 2004-06-20 Richard Henderson <rth@redhat.com>
826 * c-common.h (add_decl_stmt): Move to cp-tree.h.
827 * c-decl.c (finish_decl): Don't use add_decl_stmt.
828 * c-parse.in: Likewise.
829 * c-gimplify.c (gimplify_expr_stmt): Don't build CLEANUP_POINT_EXPR.
830 (gimplify_c_loop, gimplify_return_stmt, gimplify_decl_stmt): Likewise.
831 * c-semantics.c (add_decl_stmt): Move to cp/semantics.c.
833 2004-06-20 Richard Henderson <rth@redhat.com>
835 * c-common.def (IF_STMT, CLEANUP_STMT): Move to cp-tree.def.
836 * c-common.h (IF_COND, THEN_CLAUSE, ELSE_CLAUSE, CLEANUP_BODY,
837 CLEANUP_EXPR, CLEANUP_DECL): Move to cp-tree.h.
838 (c_common_stmt_codes): Remove IF_STMT, CLEANUP_STMT.
839 * c-dump.c (c_dump_tree): Move IF_STMT, CLEANUP_STMT to cp_dump_tree.
840 * c-pretty-print.c (pp_c_statement): Similarly.
841 * c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts,
842 gimplify_if_stmt): Move to cp-gimplify.c.
843 (c_genericize, c_gimplify_expr): Don't call them.
844 * c-semantics.c (push_cleanup): Move to cp/semantics.c.
845 * c-typeck.c (push_cleanup): New.
846 (c_begin_if_stmt, c_finish_if_cond, c_finish_then, c_finish_else,
847 c_finish_if_stmt): Use COND_EXPR.
848 * tree.h (CLEANUP_EH_ONLY): Update documentation.
850 2004-06-20 Zack Weinberg <zack@codesourcery.com>
852 * c-common.h (has_c_linkage): New interface.
853 * c-cppbuiltin.c: Include target.h.
854 (c_cpp_builtins): Define __PRAGMA_REDEFINE_EXTNAME and
855 __PRAGMA_EXTERN_PREFIX when appropriate.
856 * c-pragma.c: Include target.h.
857 Document clarified semantics of symbol-renaming #pragmas.
858 (handle_pragma_redefine_extname, handle_pragma_extern_prefix)
859 (maybe_apply_renaming_pragma): Rewrite according to clarified
860 semantics. Always recognize, but do not necessarily execute.
861 (init_pragma): Unconditionally register symbol-renaming pragmas.
862 * system.h: Poison HANDLE_PRAGMA_REDEFINE_EXTNAME
863 and HANDLE_PRAGMA_EXTERN_PREFIX.
864 * target.h (struct gcc_target): Add handle_pragma_redefine_extname
865 and handle_pragma_extern_prefix flags.
866 * target-def.h: Add defaults for TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME
867 and TARGET_HANDLE_PRAGMA_EXTERN_PREFIX.
868 * Makefile.in (c-pragma.o, c-cppbuiltin.o): Update dependencies.
869 * config/sol2.h: Define TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME,
870 not HANDLE_PRAGMA_REDEFINE_EXTNAME.
871 (TARGET_OS_CPP_BUILTINS): No need to define __PRAGMA_REDEFINE_EXTNAME.
872 (TRANSFER_FROM_TRAMPOLINE): Prototype mprotect.
873 * config/alpha/osf.h: Define TARGET_HANDLE_PRAGMA_EXTERN_PREFIX,
874 not HANDLE_PRAGMA_EXTERN_PREFIX.
875 (TARGET_OS_CPP_BUILTINS): No need to define __PRAGMA_EXTERN_PREFIX.
876 * doc/extend.texi (Solaris Pragmas, Tru64 Pragmas): Combine
877 into one section "Symbol-Renaming Pragmas"; clarify; document
880 * builtins.c (expand_builtin): Do not issue error for a builtin
881 with no special case code and no DECL_ASSEMBLER_NAME; just do the
883 * c-decl.c (builtin_function): Don't call make_decl_rtl.
884 * c-objc-common.c (has_c_linkage): Stub implementation.
885 * cgraphunit.c (cgraph_expand_function)
886 (cgraph_remove_unreachable_nodes): Don't clear DECL_ARGUMENTS.
888 2004-06-19 Roger Sayle <roger@eyesopen.com>
890 * builtins.c (fold_builtin_unordered_cmp): Take an EXP argument
891 instead of both an ARGLIST and a result TYPE. Handle these C99
892 comparison functions as "polymorphic" builtins. Also handle
893 lowering of BUILT_IN_ISUNORDERED to an UNORDERED_EXPR tree node.
894 (fold_builtin_1): Update calls to fold_builtin_unordered_cmp.
895 Move handling of BUILT_IN_ISUNORDERED from here to there.
897 2004-06-19 Richard Henderson <rth@redhat.com>
899 * c-common.c, c-common.h (lang_gimplify_stmt): Remove.
900 * c-gimplify.c: Remove unnecessary prototypes.
901 (c_gimplify_stmt): Merge into ...
902 (c_gimplify_expr): ... here. Don't play with prep_stmt.
903 * c-semantics.c (prep_stmt): Remove.
904 * gimplify.c (annotate_one_with_locus): Break out from ...
905 (annotate_all_with_locus): ... here.
906 (gimplify_expr): Add locus to expressions even if pre/post queues
909 2004-06-19 Richard Henderson <rth@redhat.com>
912 * function.c (assign_parms): If not padding upward or intentionally
913 forcing upward padding, take offset_rtx into account when determining
914 the alignment for stack_parm.
916 2004-06-19 Richard Henderson <rth@redhat.com>
919 * ifcvt.c (noce_try_move): Recognize all generated instructions.
921 2004-06-19 Jan Hubicka <jh@suse.cz>
923 * function.c (free_after_compilation): Do not free computed_goto_common*.
924 * function.h (struct function): Kill computed_goto_common*.
925 * stmt.c (expand_computed_goto): Do not commonize the computed gotos.
926 * tree-cfg.c (disband_implicit_edges): Do not forward across the
927 commonized computed goto.
929 2004-06-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
931 * doc/invoke.texi: Remove obsolete comment regarding PA 2.0 support
934 2004-06-19 Andrew Pinski <apinski@apple.com>
937 * toplev.c (wrapup_global_declarations): Do not check
938 TREE_SYMBOL_REFERENCED of the DECL_ASSEMBLER_NAME but check
939 cgraph_varpool_node's needed field.
941 2004-06-19 Jan Hubicka <jh@suse.cz>
942 Steven Bosscher <stevenb@suse.de>
944 CFG transparent RTL expansion:
945 * Makefile.in (cfgexpand.o): New object file.
946 (builtins.o): Add dependency on basic-block.h
947 * builtins.c: Include basic-block.h
948 (entry_of_function): New function.
949 (expand_builtin_apply_args, expand_builtin_saveargs): Use it.
950 * cfgexpand.c: New file.
951 * expr.c (execute_expand, pass_expand): Kill.
952 * pass.c (rest_of_compilation): Do not build CFG unless called from
954 * tree-cfg.c (delete_tree_cfg): Rename to..
955 (delete_tree_cfg_annotations): ... this one; Do not remove the CFG itself.
956 * tree-flow.h (delete_tree_cfg_annotations): Declare.
957 (dleete_tree_cfg): Kill.
958 * tree-optimize.c (execute_rebuild_bind, pass_rebuild_bind): Kill.
959 (execute_del_cfg): Rename to...
960 (execute_free_datastructures): This one...
961 (pass_del_cfg): Rename to...
962 (pass_free_datastructures): ... this one; Do not kill PROP_cfg.
963 (init_tree_optimization_passes): Make cfg build and profiling to happen
966 2004-06-19 Steven Bosscher <stevenb@suse.de>
968 * tree-mudflap.c (mf_decl_cache_locals): Skip labels before
969 inserting the cache variables.
971 * tree-mudflap.c: Include headers to make basic_block available.
972 Move functions around such that related functions are near each
973 other. Add prototypes for all static functions. Add comments
974 briefly explaining what IR the mudflap1 and mudflap2 work on and
976 (mudflap_function_decls): Rename to execute_mudflap_function_decls.
977 (mudflap_function_ops): Rename to execute_mudflap_function_ops.
978 (pass_mudflap_1, pass_mudflap_2): Update.
979 (mf_decl_cache_locals): Make it work on the CFG instead of the saved
981 (mf_build_check_statement_for): Make it work on the CFG.
982 (mf_xform_derefs_1): Likewise. Cleanup code style.
983 (mf_xform_derefs): Likewise.
985 2004-06-19 Jan Hubicka <jh@suse.cz>
987 * tree-cfg.c (label_to_block): Invent the label destination for
989 (cleanup_dead_labels): Update table in the case label_to_block added
992 2004-06-18 Richard Henderson <rth@redhat.com>
995 * gimple-low.c (lower_function_body): Generate return statement for
996 fall off the end of the function here ...
997 * tree-cfg.c (make_edges): ... instead of here.
998 * gimplify.c (gimplify_return_expr): Mark return temp TREE_NO_WARNING.
1000 2004-06-18 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
1002 * tree-ssa.c (raise_value): Removed.
1003 (get_eq_name, check_phi_redundancy): New functions.
1004 (kill_redundant_phi_nodes): Use standard ssa minimalization algorithm.
1006 2004-06-18 Roger Sayle <roger@eyesopen.com>
1008 * fold-const.c (fold) <UNORDERED_EXPR, ORDERED_EXPR, UNLT_EXPR,
1009 UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR, LTGT_EXPR>: Add
1010 constant folding for unordered comparison tree nodes. If both
1011 operands are real constants, call fold_relational_const. If either
1012 operand is a NaN, evaluate the other for side-effects and return a
1013 constant. Optimize (double)float1 CMP (double)float2 into the
1014 equivalent float1 CMP float2.
1015 (nondestructive_fold_binary_to_constant) <UNORDERED_EXPR,
1016 ORDERED_EXPR, UNLT_EXPR, UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR,
1017 LTGT_EXPR>: Call fold_relational_const for constant operands.
1018 (fold_relational_const): Add support for unordered comparison tree
1019 nodes. Don't constant fold "ordered" floating point comparisons
1020 against NaN if when flag_trapping_math is set.
1022 2004-06-19 Jakub Jelinek <jakub@redhat.com>
1024 * fold-const.c (build_range_check): If !in_p and recursive call
1025 fails, exit immediately. If high - low overflows and etype is
1026 a signed type, retry with unsigned etype.
1027 (merge_ranges): If !in0_p and !in1_p, handle even range2 adjacent
1028 to range1 at TYPE_MAX_VALUE and TYPE_MIN_VALUE.
1030 2004-06-18 Richard Henderson <rth@redhat.com>
1032 * c-gimplify.c (gimplify_condition): Remove.
1033 (gimplify_c_loop, gimplify_if_stmt, gimplify_switch_stmt): Don't
1036 2004-06-18 Richard Henderson <rth@redhat.com>
1038 * tree-eh.c (decide_copy_try_finally): Fix scaling of copy and
1041 2004-06-18 Andrew Pinski <pinskia@physics.uc.edu>
1043 * config/i386/darwin.h (HOT_TEXT_SECTION_NAME): Define.
1044 (NORMAL_TEXT_SECTION_NAME): Define.
1045 (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
1046 (SECTION_FORMAT_STRING): Define.
1048 2004-06-18 Steven Bosscher <stevenb@suse.de>
1050 * config/xtensa/xtensa.c
1051 (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define.
1052 * xtensa.md: Replace the old pipeline description with a DFA model.
1054 2004-06-18 Steven Bosscher <stevenb@suse.de>
1055 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1057 * config/s390/s390.md: Remove the generic pipeline description.
1058 * config/s390/2064.md: Make all insn reservations apply to
1059 the z900, g5 and g6.
1060 * config/s390/s390.c (s390_use_dfa_pipeline_interface): Remove.
1061 (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
1062 Define to hook_int_void_1.
1063 (s390_adjust_cost): Cleanup. Don't check address dependency here.
1064 (s390_first_cycle_multipass_dfa_lookahead): Always return 4.
1066 2004-06-18 Daniel Berlin <dberlin@dberlin.org>
1067 Diego Novillo <dnovillo@redhat.com>
1069 * tree-dfa.c (create_var_ann): tree_ann -> tree_ann_t.
1070 (create_stmt_ann): Ditto.
1071 (create_tree_ann): New function.
1072 (create_cst_ann): Remove.
1073 (create_expr_ann): Ditto.
1075 * tree-flow-inline.h (cst_ann): Remove.
1076 (get_cst_ann): Ditto.
1077 (get_expr_ann): Ditto.
1079 (get_tree_ann): New function.
1081 (ann_type): tree_ann -> tree_ann_t.
1082 * tree-flow.h (tree_ann_type): CST_ANN, EXPR_ANN removed.
1083 (struct cst_ann_d): Removed.
1084 (struct expr_ann_d): Ditto.
1085 (union tree_ann_d): Removed cst and expr.
1086 (tree_ann): Renamed to tree_ann_t.
1087 * tree-ssa-ccp.c (set_rhs): tree_ann -> tree_ann_t.
1088 * tree-ssa-pre.c (get_value_handle): Rewrite for single common
1090 (set_value_handle): Ditto.
1091 (phi_translate): Ditto.
1092 * tree-tailcall.c (adjust_return_value): tree_ann -> tree_ann_t.
1094 2004-06-18 Kaz Kojima <kkojima@gcc.gnu.org>
1096 * config/sh/t-linux64: New file.
1097 * config.gcc: Add it to tmake_file for sh64*-*-linux*.
1099 2004-06-18 Paolo Bonzini <bonzini@gnu.org>
1101 * emit-rtl.c (unshare_all_rtl_1): New name of unshare_all_rtl.
1102 (unshare_all_rtl_again): Call unshare_all_rtl_1.
1103 (unshare_all_rtl): New.
1104 * function.c (instantiate_virtual_regs): Remove parameters.
1105 * function.h (instantiate_virtual_regs): Add prototype.
1106 * rtl.h (unshare_all_rtl): Add prototype.
1107 * tree.h (instantiate_virtual_regs, unshare_all_rtl): Remove
1109 * passes.c: Remove assertions on the parameters to
1110 rest_of_handle_* functions. Remove the parameters to
1111 the functions, replacing decl with current_function_decl
1112 and insns with get_insns ().
1114 2004-06-17 Roger Sayle <roger@eyesopen.com>
1116 * fold-const.c (constant_boolean_node): Handle boolean_type_node
1117 directly, return either boolean_true_node or boolean_false_node.
1119 2004-06-18 Kelley Cook <kcook@gcc.gnu.org>
1121 * opts.sh: Delete. Break out generated code to next four files.
1122 * opt-gather.awk: New file.
1123 * optc-gen.awk: New file.
1124 * opth-gen.awk: New file.
1125 * opt-functions.awk: New common file.
1126 * Makefile.in: Update for above.
1127 * configure.ac: Update comment.
1128 * configure: Regenerate.
1130 2004-06-17 Richard Henderson <rth@redhat.com>
1132 * c-common.c (flag_objc_sjlj_exceptions): New.
1133 * c-common.h (flag_objc_sjlj_exceptions): Declare.
1134 * c-opts.c (c_common_handle_option): Set it.
1135 (c_common_post_options): Handle interation of different
1136 objective-c exception and runtime switches.
1137 * c-decl.c (c_eh_initialized_p): New.
1138 (finish_decl): Use it instead of local eh_initialized_p.
1139 * c-parse.in (nested_function, notype_nested_function): Record
1140 the result of compstmt.
1141 (compstmt_or_error): Likewise.
1142 (compstmt): Don't add_stmt the result.
1143 (stmt): Don't return anything. Rewrite objc try and sync rules.
1144 (objc_try_stmt, objc_catch_list): Remove.
1145 (objc_catch_block, objc_finally_block): Remove.
1146 (objc_catch_prefix, objc_catch_clause, objc_opt_catch_list): New.
1147 (objc_try_catch_clause, objc_finally_clause): New.
1148 (objc_try_catch_stmt): Rewrite.
1149 * c-tree.h (c_eh_initialized_p): Declare.
1150 * c-opt (fobjc-sjlj-exceptions): New.
1151 * except.c (output_function_exception_table): Don't call cgraph
1153 * objc/objc-act.c (UTAG_EXCDATA_VAR, UTAG_CAUGHTEXC_VAR,
1154 UTAG_RETHROWEXC_VAR, UTAG_EVALONCE_VAR, struct val_stack,
1155 catch_count_stack, exc_binding_stack, if_nesting_count,
1156 blk_nesting_count, objc_enter_block, objc_exit_block,
1157 objc_declare_variable, val_stack_push, val_stack_pop,
1158 objc_build_try_enter_fragment, objc_build_extract_expr,
1159 objc_build_try_exit_fragment, objc_build_extract_fragment,
1160 objc_build_try_prologue, objc_build_try_epilogue,
1161 objc_build_catch_stmt, objc_build_catch_epilogue,
1162 objc_build_finally_prologue, objc_build_finally_epilogue,
1163 objc_build_try_catch_finally_stmt, objc_build_synchronized_prologue,
1164 objc_build_synchronized_epilogue): Remove.
1165 (objc_create_temporary_var, struct objc_try_context, cur_try_context,
1166 objc_eh_runtime_type, objc_init_exceptions, objc_build_exc_ptr,
1167 next_sjlj_build_try_exit, next_sjlj_build_enter_and_setjmp,
1168 next_sjlj_build_exc_extract, next_sjlj_build_catch_list,
1169 next_sjlj_build_try_catch_finally, objc_begin_try_stmt,
1170 objc_begin_catch_clause, objc_finish_catch_clause,
1171 objc_build_finally_clause, objc_finish_try_stmt,
1172 objc_build_synchronized): New.
1173 (objc_is_object_id, objc_is_class_id): New.
1174 (objc_comptypes): Use them.
1175 (build_next_objc_exception_stuff): Break NeXT sjlj out from
1176 build_objc_exception_stuff.
1177 (synth_module_prologue): Update to match.
1178 (objc_build_throw_stmt): Use cur_try_context to decide if
1180 * objc/objc-act.h: Update prototypes.
1181 (OCTI_EXCEPTION_BLK_STACK, objc_exception_block_stack): Remove.
1183 2004-06-17 Andrew Pinski <apinski@apple.com>
1185 * c-typeck.c (tagged_types_tu_compatible_p <case UNION_TYPE>):
1186 Use TYPE_FIELDS instead of TYPE_VALUES.
1188 2004-06-17 Jason Merrill <jason@redhat.com>
1191 * gimplify.c (gimplify_target_expr): Handle void initializer.
1192 * expr.c (expand_expr_real_1) [TARGET_EXPR]: Likewise.
1193 * doc/c-tree.texi (Expression trees): Update TARGET_EXPR
1196 2004-06-17 Roger Sayle <roger@eyesopen.com>
1198 * fold-const.c (fold_relational_const): Use constant_boolean_node.
1200 2004-06-17 Jan Hubicka <jh@suse.cz>
1203 * i386.md (SSE SF cmov 0 splitter): The conditional is VOIDmode; fix
1204 operand numbering in the output template.
1205 (SSE DF cmov 0 splitter): The conditional is VOIDmode.
1207 2004-06-17 Jan Hubicka <jh@suse.cz>
1209 * except.c (can_throw_internal): Recognize RESX expresisons.
1211 2004-06-17 Jan Hubicka <jh@suse.cz>
1213 * cfgbuild.c (make_edges): Do not use label_value_list.
1214 (find_basic_blocks_1): Do not collect label_value_list.
1215 (find_sub_basic_blocks): Update call of make_edges.
1217 2004-06-17 Andrew MacLeod <amacleod@redhat.com>
1219 * tree-cfg.c (tree_make_forwarder_block): Use SET_PHI_RESULT.
1220 * tree-flow-inline.h (get_use_op_ptr): Return a use_operand_p.
1221 (get_use_from_ptr, get_def_from_ptr): New. Return operand pointers.
1222 (get_def_op_ptr): Return a def_operand_p instead of a 'tree *'.
1223 (get_v_may_def_result_ptr): Return a def_operand_p.
1224 (get_v_may_def_op_ptr, get_vuse_op_ptr): Return a use_operand_p.
1225 (get_v_must_def_op_ptr): Return a def_operand_p.
1226 (get_phi_result_ptr): New. Return a pointer to the result of a PHI.
1227 (get_phi_arg_def_ptr): New. Return a pointer to an argument of a PHI.
1228 (phi_element_for_edge): Remove.
1229 * tree-flow.h (propagate_value, replace_exp): Change prototype.
1230 (propagate_tree_value): Add new prototype.
1231 (phi_element_for_edge): Remove prototype.
1232 * tree-into-ssa.c (mark_def_sites): Use new operand types.
1233 (prepare_operand_for_rename): Split into two functions.
1234 (prepare_use_operand_for_rename): Prepare use operands.
1235 (prepare_def_operand_for_rename): Prepare def operands.
1236 (rewrite_stmt): Use new operand types.
1237 (rewrite_operand): Use new operand types, change parameter type.
1238 * tree-outof-ssa.c (replace_variable): Split into two functions.
1239 (replace_use_variable): Rewrite uses.
1240 (replace_def_variable): Rewrite defs.
1241 (rewrite_trees, rewrite_vars_out_of_ssa): Use new operand types.
1242 * tree-phinodes.c (make_phi_node, resize_phi_node): Use new types.
1243 (add_phi_arg, remove_phi_arg_num): Use new operand types.
1244 * tree-ssa-ccp.c (substitute_and_fold): Use new operand types.
1245 (ccp_fold, replace_uses_in): Use new operand types.
1246 * tree-ssa-copy.c (replace_ssa_names): Rename to replace_ssa_names_ann
1247 and no longer set the value, change parameter type.
1248 (replace_exp_1): Use new operand types.
1249 (propagate_value): Change parameter type, use new operand types.
1250 (propagate_tree_value): Propagate_value without SSA operands.
1251 (replace_exp, cprop_operand, cprop_into_stmt): Use new operand types.
1252 (cprop_into_successor_phis): Use new operand types.
1253 * tree-ssa-dom.c (thread_across_edge): Use new operand types.
1254 (eliminate_redundant_computations): Use new operand types.
1255 * tree-ssa-dse.c (fix_phi_uses): Use new operand_types.
1256 (fix_stmt_v_may_defs): Use new operand_types.
1257 * tree-ssa-live.c (create_ssa_var_map): Use new operand_types.
1258 (build_tree_conflict_graph): Use new operand_types.
1259 * tree-ssa-loop.c (duplicate_blocks): Use PHI_ARG_DEF_FROM_EDGE.
1260 * tree-ssa-operands.c (struct freelist_d): Remove.
1261 (check_optype_freelist, add_optype_freelist): Remove.
1262 (allocate_def_optype, allocate_use_optype, allocate_v_may_def_optype,
1263 allocate_vuse_optype, allocate_v_must_def_optype): Call ggc_alloc.
1264 (free_uses, free_defs, free_vuses, free_v_may_defs, free_v_must_defs):
1265 Call ggc_free instead of add_optype_freelist.
1266 (init_ssa_operands, fini_ssa_operands): Remove free list code.
1267 (finalize_ssa_defs, finalize_ssa_uses): Set new use/def operands.
1268 * tree-ssa-operands.h (struct def_optype_d): Change underlying type.
1269 (struct use_optype_d): Change underlying type.
1270 (def_operand_p, use_operand_p): New types for pointers to operands.
1271 (USE_OP, DEF_OP, V_MAY_DEF_RESULT, V_MAY_DEF_OP, VUSE_OP,
1272 V_MUST_DEF_OP): Use new pointer type instead of dereferencing directly.
1273 (USE_FROM_PTR, DEF_FROM_PTR): New macros to "dereference" operand
1275 (SET_USE, SET_DEF): New macros to set operands from their pointer.
1276 (SET_USE_OP, SET_DEF_OP, SET_V_MAY_DEF_RESULT, SET_V_MAY_DEF_OP,
1277 SET_VUSE_OP, SET_V_MUST_DEF_OP): New SET routines for operands.
1278 (PHI_RESULT_PTR, PHI_RESULT, SET_PHI_RESULT): Macros to manage the
1279 PHI result as an operand.
1280 (PHI_ARG_DEF_PTR, PHI_ARG_DEF, SET_PHI_ARG_DEF, PHI_ARG_DEF_FROM_EDGE,
1281 PHI_ARG_DEF_PTR_FROM_EDGE): Macros to manage the PHI arguments.
1282 * tree-ssa-pre.c (eliminate): Call propagate_tree_value.
1283 * tree-tailcall.c (independent_of_stmt_p, propagate_through_phis): Use
1284 PHI_ARG_DEF_FROM_EDGE.
1285 * tree.h (PHI_RESULT): Renamed to PHI_RESULT_TREE.
1286 (PHI_ARG_DEF): Renamed to PHI_ARG_DEF_TREE.
1288 2004-06-17 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
1290 PR tree-optimization/15991
1291 * tree-cfg.c (tree_block_label): Export.
1292 * tree-flow-inline.h (bsi_after_labels): New function.
1293 * tree-flow.h (bsi_after_labels, tree_block_label): Declare.
1294 * tree-ssa.c (propagate_into_addr): New function.
1295 (replace_immediate_uses): Handle propagation of pointer constants.
1296 (raise_value): Do not restrict propagation of pointer constants.
1297 * tree-ssanames.c (duplicate_ssa_name): New function.
1298 * tree.h (duplicate_ssa_name): Declare.
1300 2004-06-17 David Ayers <d.ayers@inode.at>
1302 * c-parse.in: Unify Objective-C token names.
1304 2004-06-17 Zack Weinberg <zack@codesourcery.com>
1307 * Makefile.in (min-insn-modes.o): Correct dependencies.
1308 * real.c (encode_ieee_extended, decode_ieee_extended): Always
1309 produce/consume 12-byte little-endian Intel format.
1310 (encode_ieee_extended_128, decode_ieee_extended_128): Delete.
1311 (encode_ieee_extended_motorola, decode_ieee_extended_motorola)
1312 (encode_ieee_extended_intel_96, decode_ieee_extended_intel_96)
1313 (encode_ieee_extended_intel_128, decode_ieee_extended_intel_128):
1314 New functions which convert between 12-byte little-endian Intel
1315 format and the desired format.
1316 (ieee_extended_motorola_format, ieee_extended_intel_96_round_53_format)
1317 (ieee_extended_intel_96_format, ieee_extended_intel_128_format):
1320 2004-06-17 Zack Weinberg <zack@codesourcery.com>
1322 * expmed.c (expand_mult_const): In sanity check, compare only
1323 the bits of val and val_so_far that are significant in the
1326 2004-06-17 Daniel Berlin <dberlin@dberlin.org>
1328 * tree-ssa-pre.c: Update comments.
1329 (val_expr_pair_eq): Factor code from here.
1330 (expr_pred_trans_eq): and here.
1331 (expressions_equal_p): To here.
1332 (print_value_set): Print value for expression.
1333 (phi_trans_lookup): Rename some variables.
1335 (value_exists_in_set_bitmap): Ditto.
1336 (value_remove_from_set_bitmap): Ditto.
1337 (value_insert_into_set_bitmap): Ditto.
1339 2004-06-17 Ulrich Weigand <uweigand@de.ibm.com>
1341 * config/s390/s390-modes.def (CCL3mode): New machine mode.
1342 * config/s390/s390.c (s390_match_ccmode_set): Support CCL3mode.
1343 (s390_alc_comparison, s390_slb_comparison): Likewise.
1344 (s390_branch_condition_mask): Likewise.
1345 * config/s390/s390.md ("*subdi3_cc2", "*subdi3_cconly2"): New.
1346 ("*subsi3_cc2", "*subsi3_cconly2"): New.
1348 * config/s390/s390.h (PREDICATE_CODE): Accept SIGN_EXTEND and
1349 ZERO_EXTEND for s390_alc_comparison and s390_slb_comparison.
1350 * config/s390/s390.c (s390_alc_comparison, s390_slb_comparison):
1351 Handle SIGN_EXTEND and ZERO_EXTEND.
1353 * config/s390/s390-protos.h (s390_expand_addcc): New prototype.
1354 * config/s390/s390.c (s390_expand_addcc): New function.
1355 * config/s390/s390.md ("adddicc", "addsicc"): New expanders.
1356 ("*sconddi", "*scondsi", "*sconddi_neg", "*scondsi_neg"): New insns.
1357 ("sltu", "sgtu", "sleu", "sgeu"): New expanders.
1359 2004-06-17 Ben Elliston <bje@au.ibm.com>
1361 * tree-alias-common.c: Add whitespace.
1362 * tree-inline.c: Correct comment about this file's purpose.
1363 * tree-optimize.c: Likewise.
1364 * tree-tailcall.c: Likewise.
1366 * tree-alias-ander.h: Add standard top-of-file comment.
1367 * tree-alias-common.h: Likewise.
1368 * tree-alias-type.h: Likewise.
1370 2004-06-16 Daniel Berlin <dberlin@dberlin.org>
1372 * tree-ssa-pre.c (compute_avail): Value number uses as well.
1373 Strip useless type conversions.
1374 Casts have to be treated slightly different than normal unaries.
1376 2004-06-16 Richard Henderson <rth@redhat.com>
1378 * c-common.def (COMPOUND_STMT): Remove.
1379 * c-common.c (finish_fname_decls): Don't look through it.
1380 * c-typeck.c (c_tree_expr_nonnegative_p): Likewise.
1381 * c-common.h (COMPOUND_BODY): Remove.
1382 (c_common_stmt_codes): Remove COMPOUND_STMT.
1383 * c-dump.c (c_dump_tree): Likewise.
1384 * c-gimplify.c (c_gimplify_stmt): Likewise.
1385 * c-pretty-print.c (pp_c_statement): Likewise.
1386 * tree.h (DECL_SAVED_TREE): Update commentary.
1387 * doc/c-tree.texi (ASM_EXPR): Rename from ASM_STMT.
1388 (CASE_LABEL_EXPR): Rename from CASE_LABEL.
1389 (GOTO_EXPR): Rename from GOTO_STMT.
1390 (GOTO_FAKE_P): Remove.
1391 (COMPOUND_STMT): Remove.
1392 (HANDLER): Update wrt COMPOUND_STMT.
1393 (STMT_EXPR): Likewise.
1394 (LABEL_EXPR): Rename from LABEL_STMT.
1395 (SCOPE_STMT): Remove.
1396 * objc/objc-act.c (objc_build_try_catch_finally_stmt): Don't look
1397 through COMPOUND_STMT.
1399 2004-06-16 Richard Henderson <rth@redhat.com>
1401 * c-common.h (c_begin_if_stmt, c_begin_while_stmt,
1402 c_finish_while_stmt_cond): Remove decls.
1403 * c-parse.in (if_prefix): Don't save c_begin_if_stmt result.
1404 * c-typeck.c (c_begin_if_stmt): Return void.
1405 (c_begin_else): Tidy. Save stmt_count.
1406 * c-tree.h (c_begin_if_stmt): Update decl.
1408 * objc/objc-act.c (objc_build_try_enter_fragment,
1409 objc_build_extract_fragment, objc_build_try_epilogue,
1410 objc_build_catch_stmt, objc_build_catch_epilogue,
1411 objc_build_finally_prologue, objc_build_finally_epilogue): Update
1412 for if builder function changes.
1414 2004-06-16 Ulrich Weigand <uweigand@de.ibm.com>
1416 * config/s390/s390.c (struct machine_function): New member
1418 (s390_frame_info): Add BASE_USED and RETURN_ADDR_USED parameters.
1419 Do not modify machine->save_return_addr_p or regs_ever_live.
1420 Fill in machine->last_restore_gpr.
1421 (s390_optimize_prolog): Use s390_frame_info to compute registers
1422 to save/restore, remove duplicated code.
1423 (s390_arg_frame_offset): Use s390_frame_info to compute frame
1424 size, remove duplicated code.
1425 (s390_emit_prologue): Adapt s390_frame_info call. Update
1426 machine->save_return_addr_p and regs_ever_live.
1427 (s390_emit_epilogue): Use machine->last_restore_gpr instead of
1428 machine->last_save_gpr.
1430 2004-06-16 Richard Henderson <rth@redhat.com>
1432 * c-parse.in (if_stmt_locus): Remove.
1433 (if_prefix): Increment stmt_count; pass it to c_finish_if_cond.
1434 (select_or_iter_stmt): Move empty if warnings to c-typeck.c.
1435 * c-typeck.c (if_elt): Sort by expected size. Rename locus to
1436 empty_locus. Add stmt_count, saw_else.
1437 (c_begin_if_stmt): Push if_stack here.
1438 (c_finish_if_cond): Rename from c_expand_end_cond. Record stmt_count.
1439 (c_finish_then, c_finish_else): Record empty_locus.
1440 (c_begin_else): Rename from c_expand_start_else. Record stmt_count.
1441 (c_finish_if_stmt): Rename from c_expand_end_cond. Warn for empty
1443 * c-tree.h: Update prototypes.
1445 2004-06-16 Steven Bosscher <stevenb@suse.de>
1447 * tree.h (PHI_CHAIN): New.
1448 * (tree-cfg.c, tree-dfa.c, tree-flow-inline.h, tree-into-ssa.c,
1449 tree-outof-ssa.c, tree-phinodes.c, tree-pretty-print.c,
1450 tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-dse.c,
1451 tree-ssa-live.c, tree-ssa-loop.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
1452 tree-ssa.c, tree-tailcall.c): Use PHI_CHAIN instead of TREE_CHAIN
1453 when traversing a list of PHI_NODEs.
1455 2004-06-16 Bernardo Innocenti <bernie@develer.com>
1458 * config/m68k/m68k.h (TARGET_SWITCHES): Don't remove MASK_68040_ONLY
1460 (TARGET_FLT_EVAL_METHOD): Don't advertise extended precision for
1461 68040 and soft-float.
1462 * config/m68k/m68k.md (truncdfsf2): Explicitly require TARGET_68881
1463 in the TARGET_68040_ONLY case.
1465 2004-06-16 Peter Barada <peter@the-baradas.com>
1467 * config/m68k/m68k.md (movsi_cfv4): New pattern to allow mov3q.
1468 (movsi_cf): Make named, don't match TARGET_CFV4.
1469 (pushexthisi_const): Use mov3q if possible.
1470 (extendhisi2, cvf4_extendhisi2): Split extendhisi2 pattern
1471 to special case mvz.w for ColdFire V4.
1472 (extendqisi2, cvf4_extendqisi2): Split extendhisi2 pattern
1473 to special case mvz.b for ColdFire V4.
1474 (udivmodhi4, divmodhi4): Use mvz to zero extend arg for
1476 (iorsi3, xorsi3, andsi3): Use bitfield instructions if possible.
1477 * config/m68k/m68k.c(valid_mov3q_const): New function.
1478 (const_method): SWAP is valid for ColdFire.
1479 (MULL_COST, MULW_COST): Fix costs for ColdFire V3/V4.
1480 * config/m68k/m68k-protos.h (valid_mov3q_const): Prototype here.
1482 2004-06-16 Richard Henderson <rth@redhat.com>
1484 * c-common.def (CASE_LABEL): Remove.
1485 * c-common.c (c_add_case_label): Use CASE_LABEL, not CASE_LABEL_DECL.
1486 (match_case_to_enum_1): Likewise.
1487 * c-common.h (c_common_stmt_codes): Remove CASE_LABEL.
1488 * c-dump.c (c_dump_tree): Likewise.
1489 * c-gimplify.c (c_gimplify_stmt): Likewise.
1490 * c-pretty-print.c (pp_c_statement): Likewise.
1491 * c-semantics.c (build_case_label): Use CASE_LABEL_EXPR.
1492 * tree.h (CASE_LOW): Update commentary.
1494 2004-06-16 Richard Henderson <rth@redhat.com>
1496 * c-common.def (ASM_STMT): Remove.
1497 * c-common.h (c_common_stmt_codes): Remove ASM_STMT.
1498 * c-dump.c (c_dump_tree): Likewise.
1499 * c-gimplify.c (c_gimplify_stmt): Likewise.
1500 * c-pretty-print.c (pp_c_statement): Likewise.
1501 * c-typeck.c (build_asm_expr): Use ASM_EXPR.
1502 * tree.h: Fix commentary.
1504 2004-06-16 Richard Henderson <rth@redhat.com>
1506 * c-common.def (GOTO_STMT, LABEL_STMT): Remove.
1507 * c-common.c (c_add_case_label): Use LABEL_EXPR.
1508 * c-common.h (GOTO_FAKE_P, LABEL_STMT_LABEL): Remove.
1509 (c_common_stmt_codes): Remove GOTO_STMT, LABEL_STMT.
1510 * c-dump.c (c_dump_tree): Likewise.
1511 * c-gimplify.c (c_gimplify_stmt): Likewise.
1512 * c-pretty-print.c (pp_c_statement): Likewise.
1513 * c-parse.in (stmt): Use GOTO_EXPR.
1514 (label): Use LABEL_EXPR.
1515 * c-semantics.c (build_stmt): Set TREE_TYPE to void.
1516 * tree-inline.c (copy_body_r): Don't build empty BLOCKs.
1518 2004-06-16 J"orn Rennecke <joern.rennecke@superh.com>
1520 * cfgcleanup.c (try_simplify_condjump): Update test to make
1521 sure we have a conditional branch around am unconditional branch.
1523 2004-06-16 Daniel Berlin <dberlin@dberlin.org>
1525 * tree-cfg.c (pass_split_crit_edge): Give it a name and a dump file.
1527 2004-06-16 Dale Johannesen <dalej@apple.com>
1529 * loop.c (loop_givs_reduce): Avoid miscompilation of
1530 loops entered at bottom.
1532 2004-06-16 J"orn Rennecke <joern.rennecke@superh.com>
1534 * cfglayout.c (fixup_reorder_chain): Handle case where the
1535 destination of E_FALL is EXIT_BLOCK_PTR.
1537 2004-06-16 Vladimir Makarov <vmakarov@redhat.com>
1540 * config/ia64/ia64.c (ia64_dfa_new_cycle): Do not insert nops
1541 after shifts before asm.
1543 2004-06-16 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
1545 PR tree-optimization/15993
1546 * tree-ssa-dom.c (thread_across_edge): Do not thread edge if its
1547 destination is unchanged.
1549 2004-06-16 Andreas Jaeger <aj@suse.de>
1551 * doc/install.texi (Configuration): Update description for
1552 --enable-version-specific-runtime-libs.
1554 2004-06-16 Paolo Bonzini <bonzini@gnu.org>
1556 * doc/install.texi: boehm-gc now uses automake 1.8.5.
1558 2004-06-16 Paolo Bonzini <bonzini@gnu.org>
1560 * toplev.h (rest_of_compilation): Adjust prototype.
1562 2004-06-16 Paolo Bonzini <bonzini@gnu.org>
1564 * coverage.c: Remove argument to rest_of_compilation.
1565 * expr.c (execute_expand, set_save_expr_context, pass_expand): New.
1566 * passes.c (rest_of_compilation): Remove argument.
1567 (pass_rest_of_compilation): New.
1568 (rest_of_handle_final, rest_of_handle_delay_slots,
1569 rest_of_handle_stack_regs, rest_of_handle_variable_tracking
1570 rest_of_handle_machine_reorg, rest_of_handle_regrename
1571 rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_gcse2
1572 rest_of_handle_regmove, rest_of_handle_tracer
1573 rest_of_handle_if_conversion, rest_of_handle_if_after_combine
1574 rest_of_handle_web, rest_of_handle_branch_prob
1575 rest_of_handle_value_profile_transformations, rest_of_handle_cfg
1576 rest_of_handle_addressof, rest_of_handle_jump_bypass
1577 rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2):
1578 Check that the two arguments are actually superfluous.
1579 * tree-optimize.c (register_dump_files): Add properties argument.
1580 Track validity of passes. Only initialize dump files for
1581 tree-based passes. Store the full set of provided passes in
1583 (init_tree_optimization_passes): Register pass_expand and
1584 pass_rest_of_compilation.
1585 (execute_one_pass): Do not track the presence of required properties
1586 here. Set in_gimple_form. Do not update current_properties.
1587 (current_properties): Remove.
1588 (set_save_expr_context): Remove.
1589 (tree_rest_of_compilation): Do not set in_gimple_form. Do not
1590 expand to RTL here, and do not call rest_of_compilation. Push
1591 GGC context even before gimplification.
1592 * tree-pass.h (PROP_rtl, PROP_trees): New flags.
1593 (pass_expand, pass_rest_of_compilation): Declare.
1595 2004-06-15 Jeff Law <law@redhat.com>
1597 * fold-const.c (swap_tree_comparison): No longer static.
1598 (tree_swap_operands_p): Similarly. Return true if both operands
1599 are SSA_NAMEs and the first operand has a higher version number than
1601 * tree.h (swap_tree_comparison): Prototype.
1602 (tree_swap_operands_p): Prototype.
1603 * tree-ssa-operands.c (get_expr_operands): For commutative
1604 operators and relational comparisons, canonicalize the
1605 order of the operands.
1607 2004-06-15 Richard Henderson <rth@redhat.com>
1609 * c-common.c (lang_gimplify_stmt): Remove next_p argument.
1610 (if_elt, if_stack, if_stack_space, c_expand_start_cond, c_finish_then,
1611 c_expand_end_cond, c_expand_start_else, c_finish_else, c_begin_if_stmt,
1612 c_begin_while_stmt, c_finish_while_stmt_cond): Move to c-typeck.c.
1613 (finish_fname_decls, fname_decl): Use statement_lists.
1614 (c_expand_expr_stmt): Don't set last_expr_type.
1615 (c_type_hash): Fix indentation.
1616 (c_safe_from_p): Don't follow TREE_CHAIN.
1617 (c_tree_chain_matters_p): Remove.
1618 * c-common.def (SCOPE_STMT): Remove.
1619 (CLEANUP_STMT): Redefine to contain its own body.
1620 * c-common.h (struct stmt_tree_s): Remove x_last_stmt,
1621 x_last_expr_type, x_last_expr_filename, x_scope_stmt_stack.
1622 Add x_cur_stmt_list.
1623 (last_tree, last_expr_type, last_expr_filename, RECHAIN_STMTS): Remove.
1624 (cur_stmt_list): New.
1625 (STATEMENT_LIST_STMT_EXPR): New.
1626 (SCOPE_BEGIN_P, SCOPE_END_P, SCOPE_STMT_BLOCK, SCOPE_NULLIFIED_P,
1627 SCOPE_NO_CLEANUPS_P, SCOPE_PARTIAL_P, NEW_FOR_SCOPE_P): Remove.
1628 (CLEANUP_BODY): New.
1629 (CLEANUP_DECL): Move to operand 2.
1630 (c_common_stmt_codes): Remove SCOPE_STMT.
1631 (COMPOUND_STMT_NO_SCOPE, COMPOUND_STMT_BODY_BLOCK): Remove.
1632 * c-decl.c (c_scope_stmt_stack, current_scope_stmt_stack): Remove.
1633 (c_push_function_context, c_pop_function_context): Don't save it.
1634 (finish_decl): Set TREE_USED on the decl for a cleanup.
1636 (store_parm_decls): Use statement lists.
1637 (finish_function): Remove compstmt rule workaround. Use statement
1638 lists. Call finish_fname_decls after finalizing the body.
1639 (c_begin_compound_stmt): Move to c-typeck.c.
1640 * c-dump.c (c_dump_tree): Remove SCOPE_STMT.
1641 * c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts): New.
1642 (c_genericize): Invoke them.
1643 (c_gimplify_stmt): Don't look through TREE_CHAIN. Kill SCOPE_STMT.
1644 (c_build_bind_expr): Export.
1645 (gimplify_block, gimplify_cleanup): Remove.
1646 (gimplify_condition): Use gimplify_stmt.
1647 (gimplify_for_stmt): Remove FOR_INIT_STMT chaining hack.
1648 (gimplify_if_stmt): Remove recursion hack.
1649 (c_gimplify_expr): Remove STMT_EXPR handling.
1650 (stmt_expr_last_stmt, gimplify_stmt_expr): Remove.
1651 (is_last_stmt_of_scope): Remove.
1652 * c-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Remove.
1653 * c-mudflap.c (mflang_flush_calls): Use c_begin_compound_stmt,
1654 c_end_compound_stmt.
1655 * c-objc-common.c (build_cdtor): Likewise.
1656 * c-parse.in (primary): Use c_finish_stmt_expr.
1657 (push_scope, pop_scope): Remove.
1658 (c99_block_start, compstmt_start): Use c_begin_compound_stmt.
1659 (c99_block_end, compstmt): Use c_end_compound_stmt.
1660 (c99_block_lineno_labeled_stmt): Likewise.
1661 (compstmt_primary_start): Use c_begin_stmt_expr.
1662 (simple_if, select_or_iter_stmt): Update calls to stmt builders.
1663 (do_stmt_start): Fill in body directly.
1664 (lineno_stmt): Avoid setting lineno on constants.
1665 * c-pretty-print.c (pp_c_statement): Handle STATEMENT_LIST.
1667 * c-semantics.c (begin_stmt_tree): Remove.
1668 (push_stmt_list, re_push_stmt_list, pop_stmt_list): New.
1669 (add_stmt): Use statement lists.
1670 (add_scope_stmt, finish_stmt_tree): Remove.
1671 (push_cleanup): New.
1672 * c-tree.h: Move some decls from c-common.h.
1673 * c-typeck.c (c_tree_expr_nonnegative_p): Simplify for statement lists.
1674 (do_case, c_finish_case): Likewise.
1675 (c_finish_then): Take body for then as argument.
1676 (c_finish_else): Similarly.
1677 (c_begin_for_stmt, c_finish_for_stmt_init, c_finish_for_stmt_cond,
1678 c_finish_for_stmt_incr, c_finish_for_stmt): New.
1679 (c_begin_stmt_expr, c_finish_stmt_expr): New.
1680 (c_begin_compound_stmt): Do scope management.
1681 (c_end_compound_stmt): New.
1682 * fold-const.c (tree_expr_nonnegative_p): Fix BIND_EXPR.
1683 * gimplify.c (voidify_wrapper_expr): Accept temporary argument.
1684 Look through exception handling constructs.
1685 (gimplify_bind_expr): Accept temporary argument.
1686 (gimplify_target_expr): Special case BIND_EXPR bodies.
1687 (gimplify_expr): Handle fallback == fb_none like a statement.
1688 * langhooks-def.h (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Kill.
1689 * langhooks.c (lhd_tree_inlining_tree_chain_matters_p): Remove.
1690 * langhooks.h (tree_chain_matters_p): Remove.
1691 * stub-objc.c (objc_clear_super_receiver): New.
1692 * tree-gimple.h (voidify_wrapper_expr): Update decl.
1693 (append_to_statement_list, append_to_statement_list_force): Move
1695 * tree-inline.c (expand_call_inline): Update call.
1696 (clone_body): Use statement lists.
1697 (walk_tree): Don't check tree_chain_matters_p.
1698 (copy_tree_r): Likewise.
1699 * tree-iterator.c (alloc_stmt_list): Clear lang bits.
1700 (tsi_link_before, tsi_link_after): Set TREE_SIDE_EFFECTS properly.
1701 * tree-iterator.h (append_to_statement_list,
1702 append_to_statement_list_force): Moved from tree-gimple.h.
1703 * tree-pretty-print.c (dump_generic_node): Clean up TARGET_EXPR dump.
1704 * objc/objc-act.c (build_module_descriptor): Use c_begin_compound_stmt.
1705 (objc_enter_block): Likewise.
1706 (objc_exit_block): Use c_end_compound_stmt.
1707 (objc_build_try_enter_fragment): Add #error and comment for
1708 rewriting for OBJCPLUS.
1709 (objc_build_extract_fragment, objc_build_try_epilogue,
1710 objc_build_catch_stmt, objc_build_finally_prologue,
1711 objc_build_finally_epilogue): Update for C statement builders.
1712 * objc/objc-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P):
1715 2004-06-15 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
1717 * df.c (df_reg_clobber_gen): Removed.
1718 (df_bb_rd_local_compute, df_insn_refs_record, df_rd_local_compute):
1719 Make more effective for hard regs.
1720 * ra-build.c (livethrough_conflicts_bb): Check contains_call.
1722 2004-06-15 Alexandre Oliva <aoliva@redhat.com>
1724 * c-pragma.h (c_lex_string_translate): Change type to int.
1725 * c-parse.in: Change all assignments of c_lex_string_translate
1726 to true and false to 1 and 0.
1727 * c-lex.c (c_lex_string_translate): Likewise.
1728 (lex_string): Convert string without translation in the -1
1731 2004-06-15 Mark G. Adams <mark.g.adams@sympatico.ca>
1733 * convert.h: Add include guards
1735 2004-06-15 Daniel Berlin <dberlin@dberlin.org>
1737 * tree-flow-inline.h: Document all functions.
1739 2004-06-15 Daniel Berlin <dberlin@dberlin.org>
1741 * tree-flow-inline.h (stmt_ann): Remove use of is_essa_node.
1742 * tree-dfa.c (create_stmt_ann): Ditto.
1743 * tree-pretty-print.c (dump_generic_node): Remove E* node handling.
1744 * tree-inline.c (estimate_num_insns_1): Ditto.
1745 * tree.c (tree_size): Ditto.
1746 (make_node_stat): Ditto.
1747 (tree_node_structure): Ditto.
1748 (ephi_node_elt_check_failed): Remove.
1749 (is_essa_node): Ditto.
1750 * tree.def (EPHI_NODE): Ditto.
1751 (EEXIT_NODE): Ditto.
1753 (EKILL_NODE): Ditto.
1754 * tree.h (EREF_NODE_CHECK): Remove.
1755 (EPHI_NODE_ELT_CHECK): Ditto.
1756 (struct tree_eref_common): Ditto.
1757 (struct tree_euse_node): Ditto.
1758 (struct ephi_arg_d): Ditto.
1759 (struct tree_ephi_node): Ditto.
1760 (ephi_node_elt_check_failed): Remove prototype.
1761 (is_essa_node): Ditto.
1762 (enum tree_node_structure_enum): Remove TS_E*_NODE.
1763 (union tree_node): Remove E*_NODE uses.
1765 2004-06-15 Jerry Quinn <jlquinn@optonline.net>
1767 * alias.c (record_set, record_base_value, canon_rtx, get_addr,
1768 nonlocal_mentioned_p_1, init_alias_analysis): Use REG_P.
1769 * bt-load.c (find_btr_reference, insn_sets_btr_p, note_btr_set):
1771 * builtins.c (expand_builtin_setjmp, expand_builtin_apply,
1772 expand_builtin_mathfn, expand_builtin_strlen, expand_builtin_memcmp,
1773 expand_builtin_strcmp, expand_builtin_strncmp,
1774 expand_builtin_frame_address): Likewise.
1775 * caller-save.c (mark_set_regs, add_stored_regs, mark_referenced_regs,
1776 insert_one_insn): Likewise.
1777 * calls.c (prepare_call_address, precompute_register_parameters,
1778 precompute_arguments, expand_call, emit_library_call_value_1): Likewise.
1779 * cfganal.c (flow_active_insn_p): Likewise.
1780 * combine.c (set_nonzero_bits_and_sign_copies, can_combine_p,
1781 combinable_i3pat, try_combine, find_split_point, COMBINE_RTX_EQUAL_P,
1782 subst, combine_simplify_rtx, simplify_if_then_else, simplify_set,
1783 make_extraction, recog_for_combine, gen_lowpart_for_combine,
1784 simplify_comparison, record_dead_and_set_regs_1,
1785 record_dead_and_set_regs, record_promoted_value,
1786 check_promoted_subreg, get_last_value_validate, get_last_value,
1787 reg_dead_at_p_1, reg_bitfield_target_p, distribute_notes,
1788 unmentioned_reg_p_1): Likewise.
1789 * conflict.c (mark_reg): Likewise.
1790 * cse.c (HASH, COST, COST_IN, approx_reg_cost_1, notreg_cost,
1791 mention_regs, insert_regs, lookup, lookup_for_remove, insert,
1792 merge_equiv_classes, flush_hash_table, invalidate,
1793 remove_invalid_refs, remove_invalid_subreg_refs, rehash_using_reg,
1794 invalidate_for_call, use_related_value, canon_hash, exp_equiv_p,
1795 cse_rtx_varies_p, canon_reg, find_best_addr, fold_rtx, equiv_constant,
1796 record_jump_cond, cse_insn, addr_affects_sp_p,
1797 invalidate_from_clobbers, cse_process_notes, cse_around_loop,
1798 cse_set_around_loop, count_reg_usage, set_live_p, cse_change_cc_mode,
1799 cse_cc_succs, cse_condition_code_reg): Likewise.
1800 * cselib.c (cselib_reg_set_mode, rtx_equal_for_cselib_p,
1801 cselib_lookup, cselib_invalidate_regno, cselib_invalidate_rtx,
1802 cselib_record_set, cselib_record_sets): Likewise.
1803 * dbxout.c (dbxout_symbol_location, dbxout_parms, dbxout_reg_parms,
1804 dbxout_block): Likewise.
1805 * df.c (df_ref_record, df_def_record_1, df_uses_record): Likewise.
1806 * dojump.c (do_jump): Likewise.
1807 * dwarf2out.c (dwarf2out_frame_debug_expr, is_pseudo_reg,
1808 is_based_loc, rtl_for_decl_location): Likewise.
1809 * emit-rtl.c (set_reg_attrs_for_parm, set_decl_rtl,
1810 set_decl_incoming_rtl, mark_user_reg): Likewise.
1811 * explow.c (copy_all_regs, copy_all_regs, memory_address, force_reg,
1812 copy_to_suggested_reg, allocate_dynamic_stack_space,
1813 probe_stack_range, hard_function_value): Likewise.
1814 * expmed.c (store_bit_field, store_fixed_bit_field,
1815 store_split_bit_field, extract_bit_field, extract_fixed_bit_field,
1816 extract_split_bit_field, expand_divmod, emit_store_flag_force):
1818 * expr.c (convert_move, convert_modes,
1819 block_move_libcall_safe_for_call_parm, emit_group_load, use_reg,
1820 use_group_regs, emit_move_insn, emit_move_insn_1,
1821 compress_float_constant, push_block, emit_single_push_insn,
1822 emit_push_insn, get_subtarget, expand_assignment, store_expr,
1823 store_constructor, store_field, force_operand, safe_from_p,
1824 expand_expr_real_1, expand_increment, do_store_flag, do_tablejump):
1826 * final.c (profile_function, final_scan_insn, alter_subreg,
1827 get_mem_expr_from_op, output_asm_operand_names, output_operand,
1828 only_leaf_regs_used, leaf_renumber_regs_insn): Likewise.
1829 * flow.c (verify_wide_reg_1, mark_regs_live_at_end,
1830 find_regno_partial, propagate_one_insn, init_propagate_block_info,
1831 insn_dead_p, libcall_dead_p, mark_set_1, not_reg_cond,
1832 attempt_auto_inc, find_auto_inc, mark_used_regs,
1833 count_or_remove_death_notes_bb): Likewise.
1834 * function.c (find_temp_slot_from_address, update_temp_slot_address,
1835 preserve_temp_slots, put_var_into_stack, fixup_var_refs_insn,
1836 fixup_var_refs_1, fixup_stack_1, optimize_bit_field, flush_addressof,
1837 put_addressof_into_stack, purge_addressof_1, insns_for_mem_walk,
1838 purge_single_hard_subreg_set, instantiate_decl,
1839 instantiate_virtual_regs_1, aggregate_value_p, assign_parms,
1840 promoted_input_arg, setjmp_vars_warning, setjmp_args_warning,
1841 setjmp_protect, setjmp_protect_args, fix_lexical_addr,
1842 expand_function_start, diddle_return_value, clobber_return_register,
1843 expand_function_end, keep_stack_depressed, handle_epilogue_set,
1844 update_epilogue_consts): Likewise.
1845 * genemit.c (gen_exp, gen_insn): Likewise.
1846 * genrecog.c (make_insn_sequence): Likewise.
1847 * global.c (global_conflicts, expand_preferences, mark_reg_store,
1848 mark_reg_conflicts, set_preference, reg_becomes_live,
1849 build_insn_chain, mark_reg_change): Likewise.
1850 * haifa_sched.c (CONST_BASED_ADDRESS_P, find_set_reg_weight):
1852 * ifcvt.c (noce_try_abs, noce_get_condition, noce_process_if_block):
1854 * integrate.c (copy_rtx_and_substitute, try_constants,
1855 subst_constants, mark_stores, allocate_initial_values): Likewise.
1856 * jump.c (reversed_comparison_code_parts, delete_prior_computation,
1857 delete_computation, rtx_renumbered_equal_p, true_regnum,
1858 reg_or_subregno): Likewise.
1859 * lcm.c (reg_dies, reg_becomes_live): Likewise.
1860 * local-alloc.c (validate_equiv_mem_from_store, validate_equiv_mem,
1861 update_equiv_regs, no_equiv, block_alloc, combine_regs, reg_is_set,
1862 wipe_dead_reg, no_conflict_p): Likewise.
1863 * loop-iv.c (simple_reg_p, simple_set_p, kill_sets,
1864 iv_get_reaching_def, iv_analyze_biv, altered_reg_used, mark_altered,
1865 simple_rhs_p, simplify_using_assignment, implies_p): Likewise.
1866 * loop.c (scan_loop, combine_movables, rtx_equal_for_loop_p,
1867 move_movables, note_set_pseudo_multiple_uses, consec_sets_invariant_p,
1868 find_single_use_in_loop, count_one_set, loop_bivs_init_find,
1869 loop_givs_rescan, check_insn_for_bivs, check_insn_for_givs,
1870 valid_initial_value_p, simplify_giv_expr, consec_sets_giv,
1871 loop_regs_update, check_dbra_loop, maybe_eliminate_biv,
1872 maybe_eliminate_biv_1, record_initial, update_reg_last_use,
1873 canonicalize_condition, loop_regs_scan, load_mems, try_copy_prop,
1874 try_swap_copy_prop): Likewise.
1875 * optabs.c (expand_binop, expand_vector_binop, expand_vector_unop,
1876 expand_abs, emit_no_conflict_block, emit_libcall_block, expand_float):
1878 * postreload.c (reload_cse_simplify, reload_cse_simplify_set,
1879 reload_cse_simplify_operands, reload_combine,
1880 reload_combine_note_store, reload_combine_note_use,
1881 reload_cse_move2add, move2add_note_store): Likewise.
1882 * print-rtl.c (print_rtx): Likewise.
1883 * ra-build.c (copy_insn_p, remember_move, init_one_web_common,
1884 contains_pseudo, handle_asm_insn): Likewise.
1885 * ra-debug.c (ra_print_rtx_object, dump_constraints,
1886 dump_static_insn_cost): Likewise.
1887 * ra-rewrite.c (slots_overlap_p, emit_colors,
1888 remove_suspicious_death_notes): Likewise.
1889 * recog.c (validate_replace_rtx_1, find_single_use_1, find_single_use,
1890 register_operand, scratch_operand, nonmemory_operand,
1891 constrain_operands): Likewise.
1892 * reg-stack (check_asm_stack_operands, remove_regno_note,
1893 emit_swap_insn, swap_rtx_condition, subst_stack_regs_pat,
1894 subst_asm_stack_regs): Likewise.
1895 * regclass.c (scan_one_insn, record_reg_classes, copy_cost,
1896 record_address_regs, reg_scan_mark_refs): Likewise.
1897 * regmove.c (discover_flags_reg, replacement_quality,
1898 copy_src_to_dest, reg_is_remote_constant_p, regmove_optimize,
1899 fixup_match_1): Likewise.
1900 * regrename.c (note_sets, clear_dead_regs, build_def_use, kill_value,
1901 kill_set_value, copyprop_hardreg_forward_1): Likewise.
1902 * reload.c (MATCHES, push_secondary_reload, find_reusable_reload,
1903 reload_inner_reg_of_subreg, can_reload_into, push_reload,
1904 combine_reloads, find_dummy_reload, hard_reg_set_here_p,
1905 operands_match_p, decompose, find_reloads, find_reloads_toplev,
1906 find_reloads_address, subst_indexed_address, find_reloads_address_1,
1907 find_reloads_subreg_address, find_replacement,
1908 refers_to_regno_for_reload_p, reg_overlap_mentioned_for_reload_p,
1909 refers_to_mem_for_reload_p, find_equiv_reg, regno_clobbered_p): Likewise.
1910 * reload1.c (replace_pseudos_in, reload, calculate_needs_all_insns,
1911 find_reg, delete_dead_insn, alter_reg, eliminate_regs,
1912 elimination_effects, eliminate_regs_in_insn, scan_paradoxical_subregs,
1913 forget_old_reloads_1, reload_reg_free_for_value_p, choose_reload_regs,
1914 emit_input_reload_insns, emit_output_reload_insns, do_input_reload,
1915 do_output_reload, emit_reload_insns, gen_reload,
1916 delete_address_reloads_1, inc_for_reload): Likewise.
1917 * reorg.c (update_reg_dead_notes, fix_reg_dead_note,
1918 update_reg_unused_notes, fill_slots_from_thread): Likewise.
1919 * resource.c (update_live_status, mark_referenced_resources,
1920 mark_set_resources, mark_target_live_regs): Likewise.
1921 * rtlanal.c (nonzero_address_p, get_jump_table_offset,
1922 global_reg_mentioned_p_1, reg_mentioned_p, reg_referenced_p,
1923 reg_set_p, set_noop_p, find_last_value, refers_to_regno_p,
1924 note_stores, dead_or_set_p, dead_or_set_regno_p, find_regno_note,
1925 find_reg_fusage, find_regno_fusage, replace_regs, regno_use_in,
1926 parms_set, find_first_parameter_load, keep_with_call_p,
1927 hoist_test_store, hoist_update_store, address_cost, nonzero_bits1,
1928 num_sign_bit_copies1): Likewise.
1929 * rtlhooks.c (gen_lowpart_general): Likewise.
1930 * sched-deps.c (deps_may_trap_p, sched_analyze_1, sched_analyze_insn,
1931 sched_analyze): Likewise.
1932 * sched-rgn.c (check_live_1, update_live_1, sets_likely_spilled_1):
1934 * sdbout.c (sdbout_symbol, sdbout_parms, sdbout_reg_parms): Likewise.
1935 * simplify-rtx.c (simplify_replace_rtx, simplify_unary_operation,
1936 simplify_binary_operation, simplify_const_relational_operation,
1937 simplify_subreg): Likewise.
1938 * stmt.c (decl_conflicts_with_clobbers_p, expand_asm_operands,
1939 expand_end_stmt_expr, expand_return, expand_decl,
1940 expand_anon_union_decl): Likewise.
1941 * unroll.c (precondition_loop_p, calculate_giv_inc, copy_loop_body,
1942 find_splittable_regs, find_splittable_givs, find_common_reg_term,
1943 loop_iterations): Likewise.
1944 * var-tracking.c (variable_union, variable_part_different_p,
1945 variable_different_p, count_uses, add_uses, add_stores,
1946 compute_bb_dataflow, set_variable_part, delete_variable_part,
1947 emit_notes_in_bb, vt_get_decl_and_offset, vt_add_function_parameters):
1949 * varasm.c (assemble_variable): Likewise.
1951 2004-06-15 Chris Demetriou <cgd@broadcom.com>
1953 * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
1955 * config/mips/linux64.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
1956 #undef and #if 0'd definition.
1958 2004-06-15 J"orn Rennecke <joern.rennecke@superh.com>
1960 * combine.c (distribute_notes): Comment typo fix.
1962 2004-06-15 Roger Sayle <roger@eyesopen.com>
1964 * expmed.c (synth_mult): Mask bits of the multiplier to the
1965 machine mode of the multiplication. Don't consider shifts
1966 by more than (or equal to) the width of the operation's mode.
1968 2004-06-15 Paolo Bonzini <bonzini@gnu.org>
1970 * doc/install.texi: Yet another update for autoconf
1971 and automake versions.
1973 2004-06-15 Paolo Bonzini <bonzini@gnu.org>
1975 * function.h (struct function): Remove cannot_inline field.
1976 (current_function_cannot_inline): Remove.
1977 * passes.c (rest_of_compilation): Reset DECL_DEFER_OUTPUT.
1978 Simplify conditionals to ignore warn_return_type.
1979 * tree-optimize.c (tree_rest_of_compilation): Do not reset
1981 * objc/objc-act.c (build_module_descriptor, finish_method_def):
1982 Do not set current_function_cannot_inline.
1984 2004-06-15 J"orn Rennecke <joern.rennecke@superh.com>
1986 * cfglayout.c (fixup_reorder_chain): Handle case where the
1987 destination of E_TAKEN is EXIT_BLOCK_PTR.
1989 2004-06-15 Diego Novillo <dnovillo@redhat.com>
1991 * tree-ssa-copy.c (cprop_into_successor_phis): Fix typo.
1993 2004-06-15 Paolo Bonzini <bonzini@gnu.org>
1995 * fold-const.c (operand_equal_p): Update comment.
1997 2004-06-15 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
1999 * config/m32r/m32r.h (RETURN_ADDR_RTX): Define.
2000 (INCOMING_RETURN_ADDR_RTX): Define.
2001 * config/m32r/m32r-protos.h (m32r_return_addr): Added.
2002 * config/m32r/m32r.c (m32r_exppand_prologue): Changed for
2003 __builtin_return_address(0).
2004 (m32r_return_addr): Added for __builtin_return_address(0).
2005 (m32r_reload_lr): Ditto.
2007 * longlong.h: Fix macros for m32r add_ssaaaa and sub_ddmmss.
2009 2004-06-15 Paolo Bonzini <bonzini@gnu.org>
2011 * doc/install.texi (Prerequisites): Update libbanshee,
2012 fastjar, libcpp, libjava/libltdl entries to
2015 2004-06-15 Eric Botcazou <ebotcazou@act-europe.fr>
2016 Olivier Hainque <hainque@act-europe.fr>
2018 * function.c (fixup_var_refs): Also adjust the start of sequence
2019 after fixing up the insns.
2021 2004-06-15 Giovanni Bajo <giovannibajo@gcc.gnu.org>
2023 * gccbug.in: Update optimization -> tree-optimization/rtl-optimization.
2025 2004-06-14 Benjamin Kosnik <bkoz@redhat.com>
2027 * doc/install.texi (Prerequisites): Update libstdc++ entry to
2030 2004-06-14 Eric Christopher <echristo@redhat.com>
2032 * config/s390/s390.h (TARGET_SWITCHES): Change -mtpf (-mno-tpf)
2033 to -mtpf-trace (-mno-tpf-trace).
2034 * doc/invoke.texi (S/390 and zSeries Options): Add tpf option
2037 2004-06-14 Eric Botcazou <ebotcazou@libertysurf.fr>
2039 * real.c: Fix bit count in head comment.
2041 2004-06-14 Jeff Law <law@redhat.com>
2043 * tree-ssa.c (kill_redundant_phi_nodes): More correctly handle
2044 PHIs where the destination or an argument is marked with
2045 SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
2047 2004-06-14 Jakub Jelinek <jakub@redhat.com>
2050 * simplify-rtx.c (simplify_binary_operation): Don't optimize out
2051 Inf + -Inf, Inf - Inf, Inf / Inf and 0 * Inf if flag_trapping_math.
2053 2004-06-14 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
2055 * opts.sh (var_args): Fix regexp.
2057 2004-06-14 Jakub Jelinek <jakub@redhat.com>
2060 * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Define.
2062 2004-06-14 Paul Brook <paul@codesourcery.com>
2064 * dwarf2out.c (output_call_frame_info): Support dwarf3 cie entries.
2066 2004-06-14 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
2068 * Makefile.in (FLAGS_H): New.
2069 (flags.h): Replace by FLAGS_H.
2070 * c.opt: Document Var, VarExists, Init and Report attributes.
2071 * common.opt: Fill the values of the attributes.
2072 * diagnostic.c (flag_fatal_errors): Do not define.
2073 * except.c (flag_non_call_exceptions): Do not define.
2074 * flags.h: Include options.h. Remove declarations conflicting with
2075 the automatically defined ones.
2076 * opts.c: Remove automatically defined variables.
2077 (handle_option): Perform default initialization.
2078 (common_handle_option): Do not handle options covered by the
2079 default initialization.
2080 * opts.h (struct cl_option): Add flag_var, has_set_value and set_value
2083 * opts.sh: Generate variable declarations, handle CL_REPORT.
2084 * toplev.c: Remove automatically defined variables.
2085 (f_options): Removed.
2086 (print_switch_values): Use cl_options instead of f_options.
2087 * toplev.h (version_flag): Declaration removed.
2089 2004-06-14 Ian Lance Taylor <ian@wasabisystems.com>
2091 * config/sparc/sparc.h: Correct comment about availability of
2092 little endian option.
2094 * config.gcc: Remove sparc64-*-aout*.
2095 * config/sparc/sparc.c (sparc_aout_select_rtx_section): Remove.
2096 * config/sparc/sp64-aout.h: Remove.
2097 * config/sparc/aout.h: Remove.
2099 2004-06-14 Ulrich Weigand <uweigand@de.ibm.com>
2101 * config/s390/s390.c: Include "tree-gimple.h".
2102 (s390_gimplify_va_arg): New function.
2103 (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
2104 (s390_va_arg): Remove.
2105 * config/s390/s390-protos.h (s390_va_arg): Remove.
2106 * config/s390/s390.h (EXPAND_BUILTIN_VA_ARG): Call abort ().
2108 2004-06-14 J"orn Rennecke <joern.rennecke@superh.com>
2110 * basic-block.h (could_fall_through): Declare.
2111 * cfganal.c (can_fallthru): Succeed if the target is EXIT_BLOCK_PTR.
2112 Fail if the source already has a fallthrough edge to the exit
2114 (could_fall_through): New function.
2115 * cfgbuild.c (make_edges): Check if we already have a fallthrough
2116 edge to the exit block pointer.
2117 * cfglayout.c (fixup_fallthru_exit_predecessor): Check that it is
2118 not called before reload has completed.
2119 Handle special case of first block having a fall-through exit edge.
2120 (cfg_layout_finalize): Don't call it before reload or if we have
2122 (fixup_reorder_chain): A fall through to the exit block does not
2123 require the block to come last. Add sanity checks.
2124 * cfgrtl.c (rtl_split_edge): Add special handling of fall through
2125 edges to the exit block.
2126 * function.c (cfglayout.h): #include.
2127 (thread_prologue_and_epilogue_insns): If we have neither return nor
2128 epilogue, but a fall through to the exit block from mid-function,
2129 force a non-fall-through exit.
2130 * Makefile.in (function.o): Depend on CFGLAYOUT_H.
2132 2004-06-14 Alan Modra <amodra@bigpond.net.au>
2134 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Handle -mpowerpc64 and -mcpu
2135 for power5 and rs64a. Correct condition for default. Correct power3,
2136 620, 630, 7400, 7450, G4, 970 and G5 -mcpu entries. Add -many.
2138 2004-06-13 Steven Bosscher <stevenb@suse.de>
2140 * gcse.c (hash_scan_set, hash_scan_insn, mark_set, mark_oprs_set):
2141 Revert previous change, don't use CALL_P.
2143 2004-06-13 Jason Merrill <jason@redhat.com>
2145 * tree.h: Move std_gimplify_va_arg_expr protoype here.
2146 * tree-gimple.h: From here.
2148 2004-06-13 Daniel Berlin <dberlin@dberlin.org>
2150 Fix PR tree-optimization/15979
2151 Fix PR tree-optimization/15981
2152 * tree-ssa-pre.c (insert_aux): Fix faulty logic so that we don't
2153 try to insert values undefined along some path.
2155 2004-06-13 Daniel Berlin <dberlin@dberlin.org>
2157 * tree-ssa-pre.c (add_to_value): is_gimple_min_invariant things
2158 are available everywhere too.
2160 2004-06-13 Andrew Pinski <pinskia@physics.uc.edu>
2162 * fold-const.c (fold_checksum_tree <case 't'>): Only
2163 look at TREE_VALUES if the EXPR is an ENUMERAL_TYPE.
2164 Only look at TYPE_MIN_VALUE and TYPE_MAX_VALUE if
2165 EXPR is an INTEGERAL_TYPE or a scalar float type.
2167 2004-06-13 Diego Novillo <dnovillo@redhat.com>
2169 * tree-sra.c (tree_sra): Update documentation.
2171 2004-06-13 Joseph S. Myers <jsm@polyomino.org.uk>
2173 * c-typeck.c (comptypes, tagged_types_tu_compatible_p,
2174 function_types_compatible_p, type_lists_compatible_p): Remove
2176 * c-tree.h (comptypes): Likewise.
2177 (COMPARE_STRICT): Remove.
2178 * c-decl.c, c-lang.c, c-parse.in, c-typeck.c, objc/objc-act.c: All
2181 2004-06-13 Eric Christopher <echristo@redhat.com>
2183 * c-decl.c (diagnose_mismatched_decls): Improve error message.
2185 * c-typeck.c (comptypes): Add location in standard we're checking.
2187 2004-06-13 Kaz Kojima <kkojima@gcc.gnu.org>
2189 * config/sh/libgcc-std.ver: Add __unorddf2 and __unordsf2 with
2192 2004-06-12 Roger Sayle <roger@eyesopen.com>
2194 * expmed.c (shift_cost, shiftadd_cost, shiftsub_cost): Additionally
2195 index by machine mode.
2196 (init_expmed): Initialize shift_cost, shiftadd_cost and shiftsub_cost
2197 tables inside the loop over machine modes.
2198 (synth_mult, expand_mult_highpart_optab, expand_mult_highpart,
2199 expand_divmod): Index shift*_cost by the appropriate machine mode.
2201 2004-06-12 Eric Christopher <echristo@redhat.com>
2203 * config/s390/s390.h: Rename TARGET_TPF to TARGET_TPF_PROFILING.
2204 * config/s390/s390.md: Ditto.
2205 * config/s390/s390.c: Ditto.
2206 (s390_frame_info): Conditionalize frame and setup info on
2207 TARGET_TPF_PROFILING.
2208 (s390_arg_frame_offset): Ditto.
2210 2004-06-12 Roger Sayle <roger@eyesopen.com>
2212 * fold-const.c (omit_two_operands): New function.
2213 * tree.h (omit_two_operands): Prototype here.
2214 * builtins.c (fold_builtin_unordered_cmp): New function to lower
2215 C99 unordered comparison builtins to the appropriate tree nodes.
2216 (fold_builtin_1): Use fold_builtin_unordered_cmp to lower
2217 BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS,
2218 BUILT_IN_ISLESSEQUAL and BUILT_IN_ISLESSGREATER. Manually lower
2219 BUILT_IN_ISUNORDERED comparisons to an UNORDERED_EXPR tree node.
2220 (simplify_builtin_memcmp, simplify_builtin_strncmp,
2221 simplify_builtin_strncat, simplify_builtin_strspn): Use the new
2222 omit_two_operands function to build the required COMPOUND_EXPRs.
2224 2004-06-12 Steven Bosscher <stevenb@suse.de>,
2225 Andreas Jaeger <aj@suse.de>
2227 * gcse.c (record_set_info): Use predicates like REG_P.
2228 (mems_conflict_for_gcse_p): Likewise.
2229 (load_killed_in_block_p): Likewise.
2230 (hash_expr_1): Likewise.
2231 (insert_set_in_table): Likewise.
2232 (gcse_constant_p): Likewise.
2233 (hash_scan_set): Likewise.
2234 (hash_scan_insn): Likewise.
2235 (canon_list_insert): Likewise.
2236 (record_last_mem_set_info): Likewise.
2237 (record_last_set_info): Likewise.
2238 (compute_hash_table_work): Likewise.
2239 (mark_set): Likewise.
2240 (mark_clobber): Likewise.
2241 (mark_oprs_set): Likewise.
2242 (compute_transp): Likewise.
2243 (find_avail_set): Likewise.
2244 (cprop_insn): Likewise.
2245 (do_local_cprop): Likewise.
2247 (find_implicit_sets): Likewise.
2248 (find_bypass_set): Likewise.
2249 (bypass_conditional_jumps): Likewise.
2250 (insert_insn_end_bb): Likewise.
2251 (pre_insert_copy_insn): Likewise.
2252 (compute_transpout): Likewise.
2253 (next_ls_expr): Likewise.
2254 (invalidate_any_buried_refs): Likewise.
2255 (compute_ld_motion_mems): Likewise.
2256 (reg_set_info): Likewise.
2257 (reg_clear_last_set): Likewise.
2258 (find_moveable_store): Likewise.
2259 (compute_store_table): Likewise.
2260 (find_loads): Likewise.
2261 (store_killed_in_insn): Likewise.
2262 (insert_insn_start_bb): Likewise.
2263 (reg_set_between_after_reload_p): Likewise.
2264 (reg_used_between_after_reload_p): Likewise.
2265 (is_jump_table_basic_block): Likewise.
2266 (gcse_after_reload): Likewise.
2267 (hash_scan_set_after_reload): Likewise.
2268 (compute_hash_table_after_reload): Likewise.
2270 2004-06-12 Steven Bosscher <stevenb@suse.de>
2272 * rtl.h (MEM_P, NONJUMP_INSN_P, CALL_INSN_P): New predicates.
2273 (INSN_P): Don't look at the rtx code class, just explicitly
2274 check for one of the tree RTX_INSN codes.
2276 2004-06-11 Zack Weinberg <zack@codesourcery.com>
2278 * c-typeck.c (default_function_array_conversion): Use
2279 build_pointer_type not TYPE_POINTER_TO.
2281 2004-06-11 Zack Weinberg <zack@codesourcery.com>
2283 * configure.ac: Don't invoke ACX_HEADER_STDBOOL.
2284 * configure, config.in: Regenerate.
2285 * system.h: Unconditionally define bool as unsigned char,
2286 BOOL_BITFIELD as unsigned int.
2287 * domwalk.h: Use BOOL_BITFIELD.
2289 2004-06-12 Andreas Jaeger <aj@suse.de>
2291 * libgcc-std.ver: Add __unorddf2 and __unordsf2 with version 3.3.4.
2292 * libgcc-darwin.ver: Likewise.
2294 2004-06-12 Peter Jakubek <peter@laseranimation.com>
2296 * reload.c (find_reloads): Force reload for pseudo registers on big
2299 2004-06-11 Steven Bosscher <stevenb@suse.de>
2301 * tree-ssa-dce.c (mark_control_dependent_edges_necessary):
2302 Don't try to mark anything control dependent on the entry or
2305 2004-06-11 Daniel Berlin <dberlin@dberlin.org>
2309 * tree.h (SSA_NAME_VALUE): New macro.
2310 (struct tree_ssa_name): Add value_handle member.
2311 * tree-ssa-pre.c: Replaced.
2312 * tree-flow.h (tree_ann_type): Add CST_ANN, EXPR_ANN.
2313 (struct cst_ann_d): New.
2314 (struct expr_ann_d): New.
2315 (union tree_ann_d): Add cst_ann, expr_ann.
2316 * tree-dfa.c (create_cst_ann): New function.
2317 (create_expr_ann): Ditto.
2318 * tree-flow-inline.h (cst_ann): New function.
2320 (get_cst_ann): Ditto.
2321 (get_expr_ann): Ditto..
2323 2004-06-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2325 * pa.c (pa_hpux_init_libfunc): Add support for unord_optab.
2326 * pa/quadlib.c (enum qfcmp_magic): Define magic values for call to
2327 _U_Qfcmp library function.
2328 (_U_Qfltgt, _U_Qfunle, _U_Qfunlt, _U_Qfunge, _U_Qfungt, _U_Qfuneq,
2329 _U_Qfunord, _U_Qford): Add more TFmode builtin compare functions.
2331 * pa.c (legitimize_pic_address): Use UNSPEC_DLTIND14R to identify
2332 unspec used for loading address from DLT.
2333 * pa.md: Define constants for the uses of UNSPEC and UNSPEC_VOLATILE.
2334 Change all users of UNSPEC and UNSPEC_VOLATILE to use new constants.
2335 Don't use short code sequence when loading the address of a nonlocal
2337 (nonlocal_goto): New expander.
2338 (indirect_goto): New jump pattern for nonlocal gotos.
2339 (short_jump): Remove extra whitespace.
2340 (builtin_longjmp): Clobber memory and hard frame pointer. Restore
2341 frame pointer via virtual_stack_vars_rtx when we have a nonlocal goto
2344 2004-06-11 Roger Sayle <roger@eyesopen.com>
2346 * expmed.c (synth_mult): Add an additional MODE argument for the
2347 machine mode of the multiplication. Update recursive calls. Use
2348 mode instead of word_mode for determining operation costs.
2349 (choose_mult_variant): Update calls to synth_mult with "mode".
2351 2004-06-11 Richard Henderson <rth@redhat.com>
2353 * tree-ssa-operands.c (get_stmt_operands): Clear makes_aliased_loads
2354 and makes_aliased_stores.
2356 2004-06-11 Andrew Pinski <pinskia@physics.uc.edu>
2358 * doc/install.text (--enable-shared): Fix typo.
2360 2004-06-11 Richard Henderson <rth@redhat.com>
2362 * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Remove post_p
2363 argument. Use internal post for call to gimplify_expr. Tidy
2364 rounded type size computation.
2365 (alpha_gimplify_va_arg): Use get_formal_tmp_var and
2366 get_initialized_tmp_var.
2368 2004-06-11 Andrew Pinski <pinskia@physics.uc.edu>
2370 * doc/install.texi (--enable-shared): Update libobjc's shared library
2371 status. Remove reference to libf2c.
2373 2004-06-11 Jason Merrill <jason@redhat.com>
2375 * config/i386/i386.h (EXPAND_BUILTIN_VA_ARG): Just abort.
2376 * config/i386/i386.c (ix86_va_arg): Remove.
2377 * config/rs6000/rs6000.h (EXPAND_BUILTIN_VA_ARG): Just abort.
2378 * config/rs6000/rs6000.c (rs6000_va_arg): Remove.
2379 * config/alpha/alpha.h (EXPAND_BUILTIN_VA_ARG): Just abort.
2380 * config/alpha/alpha.c (alpha_va_arg): Remove.
2381 * config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Just abort.
2382 * config/sparc/sparc.c (sparc_va_arg): Remove.
2384 * tree-ssa-operands.c (get_stmt_operands): Use a V_MAY_DEF if the
2385 assignment might throw.
2386 * tree-eh.c (tree_could_throw_p): Support non-call exceptions in
2389 2004-06-11 J"orn Rennecke <joern.rennecke@superh.com>
2392 * sh.h (ALLOCATE_INITIAL_VALUE): Use return_address_pointer_rtx.
2394 2004-06-11 Joseph S. Myers <jsm@polyomino.org.uk>
2396 * doc/install.texi (Prerequisites): Update documentation of
2397 required versions of autoconf and automake. Remove mention of
2400 2004-06-11 Jason Merrill <jason@redhat.com>
2402 * config/sparc/sparc.c (sparc_gimplify_va_arg): New fn.
2403 (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
2405 2004-06-11 Jerry Quinn <jlquinn@optonline.net>
2407 * typeclass.h: Add GPL plus exception license. Add include
2410 2004-06-10 Jason Merrill <jason@redhat.com>
2412 * gimplify.c (gimplify_modify_expr): Don't force a temporary
2413 of an aggregate_value_p type.
2415 2004-06-10 Jeff Law <law@redhat.com>
2417 * fold-const.c (fold_inf_compare): Avoid creating non-gimple
2418 code when we are in gimple form.
2420 2004-06-10 Diego Novillo <dnovillo@redhat.com>
2422 * Makefile.in (tree-ssanames.o): Depend on TREE_FLOW_H.
2423 * tree-flow.h (ssa_names, num_ssa_names, ssa_name): Declare.
2424 (highest_ssa_version): Remove.
2425 * tree-outof-ssa.c (new_temp_expr_table): Replace
2426 highest_ssa_version with num_ssa_names.
2427 (dump_replaceable_exprs): Likewise.
2428 (rewrite_vars_out_of_ssa): Likewise.
2429 * tree-ssa-ccp.c (initialize): Likewise
2430 * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
2431 * tree-ssa-dce.c (tree_dce_init): Likewise.
2432 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
2433 * tree-ssa-live.c (create_ssa_var_map): Likewise.
2434 (dump_var_map): Likewise.
2435 * tree-ssa.c (verify_ssa): Likewise.
2436 (kill_redundant_phi_nodes): Likewise.
2437 Do not build a local array of SSA_NAMEs. Use the ssa_names table.
2438 * tree-ssanames.c: Include tree-flow.h
2439 (ssa_names): New varray.
2440 (init_ssa_names): Initialize ssa_names.
2441 Reserve the first slot of the ssa_names table.
2442 (make_ssa_name): Push the newly created SSA_NAME into ssa_names.
2443 Assign version numbers using num_ssa_names.
2445 2004-06-10 Joseph S. Myers <jsm@polyomino.org.uk>
2447 * doc/sourcebuild.texi (Front End): Add details of more
2448 installation documentation required.
2450 2004-06-10 Brian Booth <bbooth@redhat.com>
2452 * doc/tree-ssa.texi: Remove references to VDEF and add descriptions
2453 of V_MAY_DEF and V_MUST_DEF.
2454 * tree-dfa.c (dfa_stats_d): Add num_v_must_defs and rename
2455 num_vdefs to num_v_may_defs.
2456 (compute_immediate_uses_for_stmt): Rename occurences of vdef
2458 (redirect_immediate_uses): Ditto.
2459 (dump_dfa_stats): Ditto. Also added code to dump num_v_must_defs.
2460 (collect_dfa_stats_r): Rename occurences of vdef to v_may_def.
2461 Also add code to sum up the number of v_must_defs.
2462 (vdefs_disappeared_p): Replace with...
2463 (v_may_defs_disappeared_p): This.
2464 (v_must_defs_disappeared_p): New function.
2465 (mark_new_vars_to_rename): Rename occurences of vdef to v_may_def.
2466 Also add code to mark new variables found in V_MUST_DEFs for
2468 * tree-flow.h (stmt_ann_d): Add v_must_def_ops and replace
2469 vdef_ops to v_may_def_ops.
2470 (get_vdef_ops): Replace with...
2471 (get_v_may_def_ops): This.
2472 * tree-flow-inline.h (get_vdef_ops): Replace with...
2473 (get_v_may_def_ops): This.
2474 (get_v_must_def_ops): New function.
2475 (get_vdef_result_ptr): Replace with...
2476 (get_v_may_def_result_ptr): This.
2477 (get_vdef_op_ptr): Ditto with...
2478 (get_v_may_def_op_ptr); This.
2479 (get_v_must_def_op_ptr): New function.
2480 * tree-into-ssa.c (mark_def_sites): Rename occurences of vdef
2481 to v_may_def. Also add code to mark statements with
2482 V_MUST_DEFs as definition sites.
2483 (rewrite_stmt): Rename occurences of vdef to v_may_def. Also
2484 add code to register new V_MUST_DEFs made by the statement.
2485 * tree-outof-ssa.c (VIRTUAL_PARTITION): Update comments.
2486 (check_replaceable): Rename occurences of vdef to v_may_def. Also
2487 add check for V_MUST_DEFs.
2488 (find_replaceable_in_bb): Ditto.
2489 * tree-pretty-print.c (dump_vops): Rename occurences of vdef
2490 to v_may_def. Also add code to dump V_MUST_DEFs.
2491 * tree-sra.c (mark_all_vdefs): Replace with...
2492 (mark_all_v_may_defs): This.
2493 (mark_all_v_must_defs): New function.
2494 (create_scalar_copies): Replace call to mark_all_vdefs with
2495 calls to mark_all_v_may_defs and mark_all_v_must_defs.
2496 (scalarize_structures): Rename occurences of vdef to v_may_def.
2497 Also add a check for V_MUST_DEFs.
2498 (scalarize_modify_expr): Rename occurences of vdef to v_may_def.
2499 * tree-ssa-alias.c (global_var): Update comment.
2500 (compute_may_aliases): Ditto.
2501 (compute_points_to_and_addr_escape): Rename occurences of vdef
2502 to v_may_def. Also add code to mark variables in V_MUST_DEF
2503 operands as being written to.
2504 (group_aliases): Update comment.
2505 (maybe_create_global_var): Ditto.
2506 * tree-ssa.c (verify_ssa): Rename occurences of vdef to v_may_def.
2507 Also add a check for V_MUST_DEFs on GIMPLE registers.
2508 (replace_immediate_uses): Rename occurences of vdef to v_may_def.
2509 * tree-ssa-ccp.c (visit_stmt): Rename occurences of vdef
2510 to v_may_def. Also add code to mark all V_MUST_DEF operands
2512 (initialize): Ditto.
2513 (set_rhs): Rename occurences of vdef to v_may_def. Also add
2514 code to update SSA_NAMEs in V_MUST_DEFs.
2515 * tree-ssa-copy.c (cprop_into_stmt): Rename occurences of vdef
2517 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Rename
2518 occurences of vdef to v_may_def. Also add code to mark statements
2519 with V_MUST_DEFs as necessary.
2520 (propagate_necessity): Rename occurences of vdef to v_may_def.
2521 * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Rename
2522 occurences of vdef to v_may_def. Also add code to mark operands
2523 in V_MUST_DEFs for renaming.
2524 (eliminate_redundant_computations): Rename occurences of vdef
2526 (record_equivalences_from_stmt): Rename occurences of vdef
2527 to v_may_def. Also add code to record VUSEs for V_MUST_DEFs.
2528 (optimize_stmt): Remove unnesessary variable vdefs. Update
2530 (register_definitions_for_stmt): Rename occurences of vdef
2531 to v_may_def. Also add code to register definitions made with
2533 * tree-ssa-dse.c (fix_stmt_vdefs): Replace with...
2534 (fix_stmt_v_may_defs): This.
2535 (fix_phi_uses): Rename occurences of vdef to v_may_def.
2536 (dse_optimize_stmt): Ditto.
2537 * tree-ssa-live.c (create_ssa_var_map): Rename occurences of vdef
2538 to v_may_def. Also add code to mark V_MUST_DEF operands as being
2539 used in virtual operators.
2540 * tree-ssa-loop.c (mark_defs_for_rewrite): Rename occurences of
2541 vdef to v_may_def. Also add code to mark V_MUST_DEF operands for
2543 * tree-ssa-operands.c (opf_kill_def): New flag for killing
2545 (build_vdefs): Renamed to...
2546 (build_v_may_defs): This.
2547 (build_v_must_defs): New variable.
2548 (voperands_d): Add v_must_def_ops and replace vdef_ops with
2550 (append_vdef): Replace with...
2551 (append_v_may_def): This.
2552 (append_v_must_def): New function.
2553 (NUM_FREE): Increment for V_MUST_DEF
2554 (optype_freelist): Increment its size for V_MUST_DEF
2555 (allocate_vdef_optype): Replace with...
2556 (allocate_v_may_def_optype): This.
2557 (allocate_v_must_def_optype): New function.
2558 (free_vdefs): Replace with...
2559 (free_v_may_defs): This.
2560 (free_v_must_defs): New function.
2561 (remove_vdefs): Replace with...
2562 (remove_v_may_defs): This.
2563 (remove_v_must_defs): New function.
2564 (init_ssa_operands): Rename occurences of vdef to v_may_def. Also
2565 add code to initialize build_v_must_defs.
2566 (finalize_ssa_vdefs): Replace with...
2567 (finalize_ssa_v_may_defs): This.
2568 (finalize_ssa_vuses): Rename occurences of vdef to v_may_def.
2569 (finalize_ssa_v_must_defs): New function.
2570 (finalize_ssa_stmt_operands): Replace call to finalize_ssa_vdefs
2571 with calls to finalize_ssa_v_may_defs and finalize_ssa_v_must_defs.
2572 (verify_start_operands): Rename occurences of vdef to v_may_def.
2573 Also add check for build_v_must_defs.
2574 (get_stmt_operands): Rename occurences of vdef to v_may_def.
2575 Also add code to handle V_MUST_DEFs and to use opf_kill_def for
2576 killing definitions.
2577 (get_expr_operands): Update comment and use opf_kill_def for
2578 killing definitions.
2579 (add_stmt_operand): Replace code that appends VDEFs with code
2580 that appends V_MUST_DEFs when opf_kill_def is set and V_MAY_DEFs
2582 (add_call_clobber_ops): Update comments.
2583 * tree-ssa-operands.h (vdef_optype_d): Replace with...
2584 (v_may_def_optype_d): This.
2585 (v_must_def_optype_d): New structure.
2586 (VDEF_OPS): Replace with...
2587 (V_MAY_DEF_OPS): This.
2588 (STMT_VDEF_OPS): Same with...
2589 (STMT_V_MAY_DEF_OPS): This.
2591 (NUM_V_MAY_DEFS): This.
2592 (VDEF_RESULT_PTR): As well as...
2593 (V_MAY_DEF_RESULT_PTR): This.
2594 (VDEF_RESULT): Same goes for...
2595 (V_MAY_DEF_RESULT): This.
2596 (VDEF_OP_PTR): And...
2597 (V_MAY_DEF_OP_PTR): This.
2599 (V_MAY_DEF_OP): This.
2600 (V_MUST_DEF_OPS): New macro.
2601 (STMT_V_MUST_DEF_OPS): Ditto.
2602 (NUM_V_MUST_DEFS): Ditto.
2603 (V_MUST_DEF_OP_PTR): Ditto.
2604 (V_MUST_DEF_OP): Ditto.
2605 (remove_vdefs): Replace signature with...
2606 (remove_v_may_defs): This.
2607 (remove_v_must_defs): New function signature.
2608 * tree-ssa-pre.c (subst_phis): Replace call to remove_vdefs
2609 with calls to remove_v_may_defs and remove_v_must_defs.
2610 (process_left_occs_and_kills): Rename occurences of vdef to v_may_def.
2611 Also add code that marks left occurences of operands in V_MUST_DEFs.
2612 * tree-tailcall.c (find_tail_calls): Rename occurences of vdef
2613 to v_may_def. Also add check for V_MUST_DEFs.
2614 (eliminate_tail_call):Rename occurences of vdef to v_may_def.
2616 2004-06-10 Vladimir Makarov <vmakarov@redhat.com>
2619 * haifa-sched.c (schedule_block): Finish cycle after issuing asm
2622 2004-06-10 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2625 * doc/install.texi: Remove superfluous linebreak.
2627 2004-06-10 Roger Sayle <roger@eyesopen.com>
2629 * builtins.c (expand_builtin): Fall back to library function call for
2630 conj, conjf, conjl, creal, crealf, creall, cimag, cimagf and cimagl.
2631 (fold_builtin_1): Lower built-ins BUILT_IN_CONJ{,F,L} to CONJ_EXPR,
2632 BUILT_IN_CREAL{,F,L} to REALPART_EXPR, and BUILT_IN_CIMAG{,F,L} to
2633 IMAGPART_EXPR respectively.
2635 2004-06-10 J"orn Rennecke <joern.rennecke@superh.com>
2637 * sh.c (dump_table): New argument start. Changed caller.
2638 (fixup_mova): New function.
2639 (find_barrier): Use it.
2640 (sh_reorg): Likewise. Check for CODE_FOR_casesi_worker_2.
2641 If the label a mova refers to is above the mova itself, change
2642 the mova into a load.
2643 * sh.md (*casesi_worker): Rename to:
2645 (casesi_worker_2): New insn.
2647 2004-06-10 Jason Merrill <jason@redhat.com>
2649 * target.h (struct gcc_target): Change gimplify_va_arg_expr
2651 * tree-gimple.h: Adjust.
2652 * config/alpha/alpha.c (alpha_gimplify_va_arg): Adjust.
2653 * config/i386/i386.c (ix86_gimplify_va_arg): Adjust.
2655 * config/ia64/ia64.c (ia64_gimplify_va_arg): Adjust.
2656 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust.
2657 Use COMPLEX_EXPR for complex numbers. Use fold_convert.
2658 * builtins.c (std_gimplify_va_arg_expr): Adjust. Use fold_convert.
2659 (gimplify_va_arg_expr): Return GS_ERROR in error case.
2660 Gimplify valist rather than calling stabilize_va_list.
2662 2004-06-10 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
2664 * Makefile.in (df.o): Remove fibheap dependency.
2665 * df.h: Do not include sbitmap.h.
2666 (struct ref): New field "data".
2667 (DF_REF_DATA): New accessor macro.
2668 (struct df): Field "dom" removed.
2669 (df_analyze_subcfg): New function.
2670 (transfer_function_sbitmap, transfer_function_bitmap): Replaced by ...
2671 (transfer_function): ... new type.
2672 (iterative_dataflow_sbitmap, iterative_dataflow_bitmap): Replaced by ...
2673 (iterative_dataflow): ... new function.
2674 (enum set_representation, struct dataflow): New.
2675 * df.c: Do not include fibheap.h.
2677 (df_reg_def_chain_clean, df_reg_use_chain_clean,
2678 (df_bb_table_realloc, df_analyse_subcfg, free_reg_ref_chain,
2679 prune_to_subcfg, df_bb_modify): New functions.
2680 (df_bitmaps_alloc, df_reg_def_chain_create, df_reg_use_chain_create,
2681 df_refs_update, df_reg_table_realloc, df_ref_create,
2682 df_bb_reg_def_chain_create, df_bb_reg_use_chain_create,
2683 df_bb_rd_local_compute, df_bb_ru_local_compute, df_bb_lr_local_compute,
2684 df_analyse_1, df_insn_modify): Support analysing only a part of the cfg.
2686 (dataflow_set_a_op_b, dataflow_set_copy): New functions.
2687 (df_rd_transfer_function, df_ru_transfer_function,
2688 df_lr_transfer_function): Type of bitmaps changed to void *.
2689 (hybrid_search_bitmap, hybrid_search_sbitmap): Merge into ...
2690 (hybrid_search): ... new function.
2691 (iterative_dataflow_bitmap, iterative_dataflow_sbitmap): Merge into ...
2692 (iterative_dataflow): ... new function. Avoid use of fibheaps for
2693 a worklist. Do not process basic blocks unnecessarily.
2695 2004-06-10 Roger Sayle <roger@eyesopen.com>
2697 * fold-const.c (fold_abs_const): Make extern.
2698 * tree.h (fold_abs_const): Prototype here.
2699 * builtins.c (fold_builtin_fabs): New function to transform
2700 fabs, fabsf and fabsl builtins into ABS_EXPR tree nodes.
2701 (fold_builtin_abs): New function to transform abs, labs, llabs
2702 and imaxabs builtins into ABS_EXPR tree nodes.
2703 (expand_builtin): Fall back to a function call for abs, labs,
2704 llabs and imaxabs builtins that survive constant folding.
2705 (fold_builtin_1): Call fold_builtin_fabs for FABS, FABSF and
2706 FABSL, and fold_builtin_abs for ABS, LABS, LLABS and IMAXABS.
2708 2004-06-10 Jakub Jelinek <jakub@redhat.com>
2710 * config/ia64/unwind-ia64.c (uw_frame_state_for): Don't assume a
2711 leaf function without unwind info at RP 0.
2713 2004-06-10 Jakub Jelinek <jakub@redhat.com>
2716 * tree.h (enum tree_index): Add TI_FILEPTR_TYPE.
2717 (fileptr_type_node): Define.
2718 * tree.c (build_common_tree_nodes_2): Initialize
2719 fileptr_type_node to ptr_type_node.
2720 * c-common.c (c_common_nodes_and_builtins): For C++, make
2721 fileptr_type_node a distinct type copy.
2722 * builtin-types.def (BT_FILEPTR, BT_FN_INT_CONST_STRING_FILEPTR,
2723 BT_FN_INT_INT_FILEPTR, BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG,
2724 BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR,
2725 BT_FN_INT_FILEPTR_CONST_STRING_VAR): Add.
2726 (BT_FN_INT_CONST_STRING_PTR, BT_FN_INT_INT_PTR,
2727 BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR, BT_FN_INT_PTR_CONST_STRING_VAR,
2728 BT_FN_INT_PTR_CONST_STRING_VALIST_ARG): Remove.
2729 * builtins.def (BUILT_IN_FPRINTF, BUILT_IN_FPRINTF_UNLOCKED,
2730 BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED, BUILT_IN_FPUTS,
2731 BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FSCANF, BUILT_IN_FWRITE,
2732 BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_VFPRINTF, BUILT_IN_VFSCANF): Use
2733 the above *FILEPTR* types instead of *PTR*.
2735 2004-06-09 Daniel Berlin <dberlin@dberlin.org>
2737 * tree-ssa.c (verify_ssa): Verify that vdefs/makes_aliased_stores
2740 2004-06-09 Roger Sayle <roger@eyesopen.com>
2742 * fold-const.c (fold_not_const): New function.
2743 (fold) <ABS_EXPR>: Don't bother testing wins.
2744 (fold) <BIT_NOT_EXPR>: Call fold_not_const.
2745 (nondestructive_fold_unary_to_constant) <BIT_NOT_EXPR>: Likewise.
2747 2004-06-09 Richard Henderson <rth@redhat.com>
2750 * function.c (assign_parms): Always set_mem_align with the computed
2751 FUNCTION_ARG_BOUNDARY. Don't clear stack_parm if !STRICT_ALIGNMENT.
2753 2004-06-09 Richard Henderson <rth@redhat.com>
2756 * tree-tailcall.c (find_tail_calls): Don't check early for
2757 tail_recursion failure.
2759 2004-06-09 Diego Novillo <dnovillo@redhat.com>
2761 Move SSA_NAME annotations into tree_ssa_name.
2763 * tree-dfa.c (create_ssa_name_ann): Remove.
2764 * tree-flow-inline.h (ssa_name_ann, get_ssa_name_ann): Remove.
2765 * tree-flow.h (enum tree_ann_type): Remove SSA_NAME_ANN.
2766 (struct ssa_name_ann_d): Remove.
2767 (union tree_ann_d): Update.
2768 (ssa_name_ann_t): Remove.
2769 * tree-ssa-alias.c: (get_ptr_info): New local function.
2770 Replace references to ssa_name_ann_t with struct ptr_info_def.
2771 * tree-ssa-operands.c (get_expr_operands): Likewise.
2772 * tree.h (SSA_NAME_PTR_INFO): Define.
2773 (struct ptr_info_def): Declare.
2774 (struct tree_ssa_name): Add field 'ptr_info'.
2776 2004-06-09 Danny Smith <dannysmith@users.sourceforge.net>
2778 * config/i386/winnt.c (i386_pe_output_labelref): Correct
2781 2004-06-09 Steven Bosscher <stevenb@suse.de>
2783 * config/i386/k6.md: Rewrite using the DFA model.
2784 * config/i386/i386.c (ix86_adjust_cost): Don't increase the
2785 cost of load-operation insns for the K6.
2786 (ia32_use_dfa_pipeline_interface): Add TARGET_K6.
2787 (ia32_multipass_dfa_lookahead): Likewise.
2789 2004-06-09 Richard Henderson <rth@redhat.com>
2791 * config/alpha/alpha.c (alpha_gimplify_va_arg_1,
2792 alpha_gimplify_va_arg, TARGET_GIMPLIFY_VA_ARG_EXPR): New.
2794 2004-06-09 Richard Henderson <rth@redhat.com>
2796 * expmed.c (emit_store_flag): Cope with FLOAT_STORE_FLAG_VALUE.
2798 2004-06-09 Geoffrey Keating <geoffk@apple.com>
2800 * Makefile.in (CPPLIB_H): Put files in order of inclusion.
2801 (CPP_ID_DATA_H): New.
2802 (gtype-desc.o): Update dependencies.
2803 (GTFILES): Use CPP_ID_DATA_H.
2805 2004-06-09 Mark Mitchell <mark@codesourcery.com>
2809 2004-06-07 Mark Mitchell <mark@codesourcery.com>
2810 * doc/extend.texi: Deprecate #pragma interface and #pragma
2813 2004-06-09 David S. Miller <davem@nuts.davemloft.net>
2815 * config/sparc/sparc.h (MOVE_RATIO): New definition.
2817 2004-06-09 Richard Henderson <rth@redhat.com>
2819 * basic-block.h (struct edge_def): Add goto_locus.
2820 * tree-cfg.c (make_goto_expr_edges): Set it.
2821 (disband_implicit_edges): Use it.
2822 * tree-pretty-print.c (dump_implicit_edges): Print it.
2824 2004-06-08 Anil Paranjpe <anilp1@kpitcummins.com>
2826 * h8300.md (ldm_h8300s_4): Fix condition for expander.
2828 2004-06-08 Jason Merrill <jason@redhat.com>
2830 Gimplify VA_ARG_EXPR into simpler forms.
2831 * target.h: Add gimplify_va_arg_expr hook.
2832 * target-def.h: Add TARGET_GIMPLIFY_VA_ARG_EXPR.
2833 * fold-const.c (build_fold_addr_expr)
2834 (build_fold_addr_expr_with_type): Move from gimplify.c.
2835 * tree.h: Declare them.
2836 * gimplify.c (gimplify_and_add): New fn.
2837 (build_addr_expr, build_addr_expr_with_type): Move to fold-const.c.
2838 (gimplify_array_ref_to_plus, gimplify_modify_expr)
2839 (gimplify_expr): Use build_fold_*.
2840 (copy_if_shared_r): Only mark VA_ARG_EXPR volatile if we
2841 don't know how to gimplify it.
2842 * builtins.c (std_gimplify_va_arg_expr): New fn.
2843 (dummy_object): New static fn.
2844 (gimplify_va_arg_expr): New fn.
2845 (stabilize_va_list): Use build_fold_*.
2846 * tree-gimple.h: Declare new fns.
2847 * config/i386/i386.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
2848 (ix86_gimplify_va_arg): New fn.
2849 * config/ia64/ia64.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
2850 (ia64_gimplify_va_arg): New fn.
2851 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): New fn.
2852 (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
2853 * alias.c (get_varargs_alias_set): Just return 0 for now.
2855 * c-objc-common.c (c_tree_printer): Improve handling of %T.
2857 2004-06-09 Andrew Pinski <pinskia@physics.uc.edu>
2859 * tree-complex.c (expand_complex_comparison): Use fold_convert instead
2861 * tree-inline.c (setup_one_parameter): Likewise.
2862 * tree-sra.c (csc_build_component_ref): Likewise.
2863 * tree-ssa-ccp.c (ccp_fold): Likewise.
2864 * tree-ssa-copy.c (cprop_operand): Likewise.
2865 * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
2866 * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
2868 2004-06-09 J"orn Rennecke <joern.rennecke@superh.com>
2870 PR rtl-optimization/15521:
2871 * sched-int.h (in_post_call_group_p): Change type to enum.
2872 * sched-deps.c (sched_analyze_insn):
2873 (sched_analyze): When in_post_call_group_p is post_call_initial,
2874 don't add a dependency, but still set SCHED_GROUP_P and CANT_MOVE,
2875 and also reset in_post_call_group_p to post_call.
2876 (sched_analyze): When the previous basic block ended in a CALL_INSN,
2877 initialize in_post_call_group_p as post_call_initial.
2878 (init_deps): initialize in_post_call_group_p to not_post_call.
2880 2004-06-09 Arnaud Charlet <charlet@act-europe.fr>
2883 * doc/install.texi: List ada, libada as options to --enable-shared
2885 2004-06-09 Paolo Bonzini <bonzini@gnu.org>
2887 * aclocal.m4 (gcc_AC_PROG_LN): Remove.
2888 (gcc_AC_CHECK_DECLS): Use AH_TEMPLATE to generate
2890 * configure.ac: Call ACX_PROG_LN, falling back to $LN_S
2891 if hard links are not available.
2892 * configure: Regenerate.
2893 * config.in: Regenerate.
2895 2004-06-08 Per Bothner <per@bothner.com>
2897 * configure.ac: New --enable-mapped-location sets USE_MAPPED_LOCATION.
2899 2004-06-08 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2901 * toplev.c (floor_log2_wide): Correct casts for 64-bit hosts.
2904 2004-06-08 James E Wilson <wilson@specifixinc.com>
2907 * config/i386/i386-coff.h (ASM_OUTPUT_ALIGN): Define.
2909 2004-06-08 Andrew Pinski <pinskia@physics.uc.edu>
2911 * fold-const.c (fold_convert): Treat OFFSET_TYPE like
2912 POINTER_TYPE and INTEGER_TYPE.
2914 2004-06-08 Bernardo Innocenti <bernie@develer.com>
2916 * modulo-sched.c: Compile only when INSN_SCHEDULING is
2919 2004-06-08 Jeff Law <law@redhat.com>
2921 * doc/contrib.texi: Add entries for Stefan Olsson and
2924 2004-06-08 DJ Delorie <dj@redhat.com>
2926 * toplev.c (floor_log2_wide): Replace loop with faster bit
2928 (exact_log2_wide): Define in terms of the above.
2929 * toplev.h (floor_log2): Use _builtin_clz family of builtins if
2932 2004-06-08 Andrew Pinski <pinskia@physics.uc.edu>
2934 * config/rs6000/rs6000.c (print_operand, <case 'z'>):
2935 Make sure that we are in INDIRECT mode when getting the
2938 2004-06-08 Anil Paranjpe <anilp1@kpitcummins.com>
2940 * h8300.md (extendqisi2_h8300): Add constraints.
2941 (ldm_h8300s_4_normal): Fix typo.
2943 2004-06-08 Richard Henderson <rth@redhat.com>
2945 * gimple-low.c (struct lower_data): Replace the_return_label and
2946 one_return_stmt with return_statements.
2947 (lower_function_body): Process the entire list of return_statements.
2948 (lower_return_expr): Check source value before unifying return_exprs.
2949 * gimplify.c (gimplify_return_expr): Force the use of a temporary
2950 for !aggregate_value_p.
2951 * tree-gimple.c: Update RETURN_EXPR grammer.
2953 2004-06-08 Vladimir Makarov <vmakarov@redhat.com>
2956 * config/ia64/ia64.c (bundling): Add missed TYPE_A.
2958 2004-06-08 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
2960 PR rtl-optimization/15717
2961 * config/i386/i386.c (legitimate_constant_p): Do not allow
2964 2004-06-08 Alexandre Oliva <aoliva@redhat.com>
2966 * gimplify.c (copy_if_shared_r): Revert:
2967 2004-05-21 Richard Henderson <rth@redhat.com>
2968 * gimplify.c [...] Don't mark VA_ARG_EXPRs volatile here.
2970 2004-06-07 Roger Sayle <roger@eyesopen.com>
2972 * expmed.c (add_cost, neg_cost, sdiv_pow2_cheap, smod_pow2_cheap):
2973 Make arrays indexed by machine mode. Rename negate_cost to neg_cost.
2974 (init_expmed): Initialize these cost arrays as appropriate.
2975 (store_bit_field, extract_bit_field): Correct whitespace.
2976 (synth_mult, choose_mult_variant, expand_mult, expand_mult_highpart,
2977 expand_mult_highpart_optab, expand_divmod): Update uses of add_cost,
2978 neg_cost, sdiv_pow2_cheap, smod_pow2_cheap to index with mode,
2979 word_mode or compute_mode as appropriate.
2981 2004-06-07 Eric Botcazou <ebotcazou@libertysurf.fr>
2984 * config/sparc/sparc.c (function_arg_union_value): Add 'mode'
2985 parameter. Enumerate the registers inside the PARALLEL.
2986 (function_arg): Adjust call to function_arg_union_value.
2987 (function_value): Likewise.
2989 * config/sparc/sparc.c (sparc_function_epilogue): Properly format.
2991 2004-06-07 Roger Sayle <roger@eyesopen.com>
2993 * real.c (real_copysign): New function to implement libm's copysign.
2994 * real.h (real_copysign): Prototype here.
2995 * fold-const.c (tree_expr_nonnegative_p): The result of sqrt, sqrtf
2996 and sqrtl can be negative, as sqrt(-0.0) = -0.0. Correct whitespace.
2997 * builtins.c (fold_builtin_isascii, fold_builtin_toascii,
2998 fold_builtin_isdigit): Add function prototypes.
2999 (fold_builtin_copysign): New function to fold copysign, copysignf
3000 and copysignl. Optimize copysign(x,x) as x. Evaluate copysign of
3001 constant arguments at compile-time using real_copysign. Fold
3002 copysign(X,Y) as fabs(X) if Y is always non-negative.
3003 (fold_builtin_1): Correct minor whitespace/style issues. Call
3004 fold_builtin_copysign for BUILT_IN_COPYSIGN{,F,L}.
3006 2004-06-07 J"orn Rennecke <joern.rennecke@superh.com>
3008 * tree.c (iterative_hash_expr): Use real_hash.
3010 2004-06-07 Joseph S. Myers <jsm@polyomino.org.uk>
3013 * c-parse.in (compstmt_primary_start): Set last_expr_type to
3016 2004-06-07 Mark Mitchell <mark@codesourcery.com>
3019 * doc/extend.texi: Deprecate #pragma interface and #pragma
3022 2004-06-07 Alexandre Oliva <aoliva@redhat.com>
3025 * c-decl.c (finish_decl): Use change_decl_assembler_name for the
3026 builtin decl as well.
3028 2004-06-07 Roger Sayle <roger@eyesopen.com>
3031 * c-typeck.c (require_constant_value, require_constant_elements):
3032 Move declarations to the top of the file.
3033 (build_function_call): If we require a constant value, fold with
3034 fold_initializer. If the result is a constant, and the function
3035 wasn't called using __builtin_foo, issue a pedantic warning.
3036 (build_unary_op): If we require a constant value, fold tree with
3038 (build_binary_op): Use require_constant_value to determine whether
3039 to call fold or fold_initializer.
3041 2004-06-07 Richard Henderson <rth@redhat.com>
3043 * gimple-low.c (struct lower_data): Add the_return_label and
3045 (lower_function_body): Initialize and use them.
3046 (lower_return_expr): New.
3047 (lower_stmt): Call it.
3048 * gimplify.c (gimplify_return_expr): Force the argument to be either
3049 null or a result_decl.
3050 * tree-gimple.c: Update gimple grammer to match.
3051 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Deny
3052 coalescing of result_decls.
3054 2004-06-07 Richard Henderson <rth@redhat.com>
3057 * expmed.c (extract_bit_field): Fix vector_extract return.
3059 * config/i386/i386.md (negv4sf2): New pattern.
3061 2004-06-07 Mark Mitchell <mark@codesourcery.com>
3064 * c-common.c (c_sizeof_or_alignof_type): Use more detailed error
3067 2004-06-06 Paolo Bonzini <bonzini@gnu.org>
3069 * config.in: Regenerate.
3071 2004-06-06 Steven Bosscher <stevenb@suse.de>
3073 * tree-cfg.c (tree_verify_flow_info): Make sure that labels in
3074 SWITCH_LABELS are always sorted.
3076 2004-06-06 Steven Bosscher <stevenb@suse.de>
3078 * hooks.c (hook_int_void_1): New generic hook.
3079 * hooks.h (hook_int_void_1): Add prototype.
3080 * config/c4x/c4x.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
3081 Define to hook_int_void_1.
3082 * config/c4x/c4x.md: Replace dummies for the old pipeline model
3083 with dummies for the new one.
3085 2004-06-06 Roger Sayle <roger@eyesopen.com>
3087 * tree.h (lvalue_or_else): Delete function prototype.
3088 * c-typeck.c (lvalue_or_else): Make static. Add static prototype.
3090 2004-06-06 Stephane Carrez <stcarrez@nerim.fr>
3093 * config/m68hc11/m68hc11.md (move peephole2): Emit a use note to avoid
3094 a live change of a register after peephole replacement.
3096 2004-06-06 Joseph S. Myers <jsm@polyomino.org.uk>
3099 * c-typeck.c (composite_type, common_pointer_type): New functions.
3100 (common_type): Split parts into composite_type and
3101 common_pointer_type. Ensure that arithmetic operations return
3102 unqualified types without attributes. Don't make composite type
3103 of signed enum and compatible integer be unsigned.
3104 (build_conditional_expr, build_binary_op): Use
3105 common_pointer_type.
3106 * c-decl.c (merge_decls): Use composite_type.
3107 * c-tree.h (composite_type): Declare.
3109 2004-06-06 Stephane Carrez <stcarrez@nerim.fr>
3112 * config/m68hc11/m68hc11.c (splitable_operand): New predicate.
3113 * config/m68hc11/m68hc11-protos.h (splitable_operand): Declare.
3114 * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register it.
3115 (inhibit_libc): Must define.
3116 * config/m68hc11/m68hc11.md ("movhi_const0"): Use splitable_operand.
3117 ("*andhi3_gen", "iorhi3", "*iorhi3_gen"): Likewise.
3118 ("xorhi3"): Likewise.
3120 2004-06-06 Eric Botcazou <ebotcazou@libertysurf.fr>
3122 * cgraphunit.c (cgraph_decide_inlining): Adjust dump lines in
3125 2004-06-05 David S. Miller <davem@nuts.davemloft.net>
3127 * config/sparc/linux.h (TARGET_C99_FUNCTIONS): Set.
3128 * config/sparc/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
3130 2004-06-05 Bernardo Innocenti <bernie@develer.com>
3132 * regclass.c (init_reg_sets): Check for missing registers in target
3133 initializer macros FIXED_REGISTERS and CALL_USED_REGISTERS.
3135 2004-06-05 Zack Weinberg <zack@codesourcery.com>
3137 * Makefile.in (MKDEPS_H): New shorthand.
3138 (c-opts.o): Update dependencies.
3139 * c-opts.c: Include mkdeps.h.
3140 (handle_deferred_opts): Use cpp_get_deps and deps_add_target,
3141 not cpp_add_dependency_target.
3143 2004-06-05 Steven Bosscher <stevenb@suse.de>
3145 * config/v850/v850.c (v850_use_dfa_pipeline_interface): New.
3146 * config/v850/v850.md: Convert to DFA scheduler description.
3148 2004-06-05 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
3151 * doc/install.texi: Document GMP as prerequisite. Document
3152 --with-gmp and --with-gmp-dir configure options.
3153 * fortran/gfortran.texi: Remove section "Compiling and testing",
3154 remove TOC reference to it.
3156 2004-06-05 Graham Stott <graham.stott@btinternet.com>
3158 * combine.c(simplify_shift_const): Check shift amount is a
3161 2004-06-05 Danny Smith <dannysmith@users.sourceforge.net>
3163 * toplev.c (init_asm_output): Add explicit 'b' to mode when
3164 opening asm_out_file.
3165 * c-pch.c (c_common_write_pch): Remove unnecessary fflush before
3166 reading asm_out_file. Replace fflush after reading asm_out_file
3168 * hosthooks-def.h (HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY): Define
3169 default and add to HOST_HOOKS_INITIALIZER.
3170 * hosthooks.h (gt_pch_alloc_granularity): Declare hook function.
3171 * ggc-common.c (default_gt_pch_alloc_granularity): New function.
3172 (gt_pch_save): Use host_hooks.gt_pch_alloc_granularity
3173 to set mmi.offset padding.
3174 * config.gcc (i[34567]86-*-mingw32*): Set target_gtfiles to
3175 $(srcdir)/config/i386/winnt.c.
3176 (i[34567]86-*-pe | i[34567]86-*-cygwin*): Likewise.
3177 (i[34567]86-*-uwin*): Likewise.
3178 *i[34567]86-*-interix3*): Likewise.
3179 * config.host (i[34567]86-*-mingw32*): Set out_host_hook_obj.
3180 * config/i386/host-mingw32.c: New file.
3181 * config/i386/x-mingw32: Add rule for host-mingw32.o.
3182 * config/i386/winnt.c: (struct extern_list) Tag as GTY.
3183 (extern_head): Likewise.
3184 (struct export_list) Likewise.
3185 (export_head): Likewise.
3186 (i386_pe_record_external_function): Use ggc_alloc.
3187 (i386_pe_record_exported_symbol): Likewise.
3188 Include "gt-winnt.h" at end.
3189 * doc/hostconfig.texi: Document
3190 HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY.
3192 2004-06-04 Bernardo Innocenti <bernie@develer.com>
3194 * config/m68k/m68k.h: Remove comments copied over from tm.texi.
3195 Rename 68000 and 68k to m68k for consistency in comments. Remove
3196 trailing whitespace before EOLs and before TABs.
3197 (MAX_CODE_ALIGN): Remove unused macro.
3198 (CALL_USED_REGISTERS): Reformat and add comments.
3200 2004-06-04 Frank Ch. Eigler <fche@redhat.com>
3202 * gcc.c (MFLIB_SPEC): Remove library references, to require users
3203 to enumerate -lmudflap* and dependencies when linking.
3205 2004-06-04 Paolo Bonzini <bonzini@gnu.org>
3208 * dojump.c (do_jump): Fix uninitialized variable tcode1.
3210 2004-06-04 Jerry Quinn <jlquinn@optonline.net>
3212 * Makefile.in (insn-conditions.o): Back out removal of reload.h.
3213 * genconditions.c (write_header): Back out removal of reload.h.
3215 2004-06-04 Jan Hubicka <jh@suse.cz>
3217 Re-apply hopefully fixed patch:
3218 * i386.md (UNSPECV_EH_RETURN): Kill.
3219 (eh_return): Use jump_insn.
3220 (eh_return_si, eh_return_di): Change pattern to jump instruction.
3222 2004-06-04 Jeff Law <law@redhat.com>
3224 * cfgrtl.c (try_redirect_by_replacing_jump): Fix return value.
3226 2004-06-04 Steven Bosscher <stevenb@suse.de>
3228 * except.c (for_each_eh_region): New function.
3229 * except.h (for_each_eh_region): Add a prototype for it.
3230 * tree-cfg.c (update_eh_labels): New function, callback for
3232 (label_for_bb): Make global static, unfortunately.
3233 (cleanup_dead_labels): Also update label references for
3236 2004-06-03 Chris Demetriou <cgd@broadcom.com>
3238 * config/mips/mips.c (struct irix_section_align_entry): Fix
3241 2004-06-03 Geoffrey Keating <geoffk@apple.com>
3243 * toplev.c (check_global_declarations): Don't ask for
3244 DECL_ASSEMBLER_NAME unless the function really is declared
3245 static and not defined.
3247 2004-06-03 Matt Austern <austern@apple.com>
3250 * default.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): New name
3251 for TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, with reversed sense.
3252 * config/darwin.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Likewise.
3253 * doc/tm.texi (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Rewrite
3254 documentation to reflect the new macro name and to clarify its
3257 2004-06-03 Steven Bosscher <stevenb@suse.de>
3259 * rtl.def (VAR_LOCATION): Make RTX_EXTRA.
3261 2004-06-03 Andrew Pinski <pinskia@physics.uc.edu>
3263 * config/darwin.c (machopic_indirect_data_reference): Copy
3264 the SYMBOL_REF_DECL from the original RTX for the new
3265 non-lazy pointer RTX.
3267 2004-06-03 Mark G. Adams <mark.g.adams@sympatico.ca>
3269 * tree.h: Remove include of version.h
3270 * c-cppbuiltin.c: Include version.h
3271 * diagnostic.c: Include version.h
3272 * dwarf2out.c: Include version.h
3273 * toplev.c: Include version.h
3274 * vmsdbgout.c: Include version.h
3275 * Makefile.in: Remove dependency on version.h from TREE_H, and
3276 add dependencies to required .o targets
3278 2004-06-03 Jerry Quinn <jlquinn@optonline.net>
3280 * Makefile.in (RA_H, RESOURCE_H, SCHED_INT_H, CFGLAYOUT_H,
3281 CFGLOOP_H, DF_H, DDG_H, TREE_SSA_LIVE_H): New.
3282 (TARGET_H): Add insn-modes.h.
3283 (tree-ssa.o, tree-cfg.o, tree-ssa-loop.o, toplev.o, passes.o,
3284 loop.o, loop-doloop.o, unroll.o, cfgloop.o, cfgloopanal.o,
3285 loop-iv.o, cfgloopmanip.o, loop-init.o, loop-unswitch.o,
3286 loop-unroll.o, ddg.o, modulo-sched.o, predict.o,
3287 cfglayout.o, ifcvt.o): Replace cfgloop.h with CFGLOOP_H.
3288 (toplev.o, passes.o, cfghooks.o, cfgloopmanip.o, loop-init.o,
3289 loop-unswitch.o, loop-unroll.o, ddg.o, modulo-sched.o,
3290 bb-reorder.o, tracer.o, cfglayout.o): Replace cfglayout.h with
3292 (ra.o, ra-build.o, ra-colorize.o, ra-debug.o, ra-rewrite.o):
3293 Replace ra.h with RA_H.
3294 (resource.o, regrename.o, insn-conditions.o, insn-emit.o,
3295 insn-recog.o): Replace resource.h with RESOURCE_H.
3296 (ddg.o, modulo-sched.o, haifa-sched.o, sched-deps.o, sched-rgn.o,
3297 sched-ebb.o, sched-vis.o, out_object_file): Replace sched-int.h
3299 (web.o, lcm.o, df.o, ra.o, ra-build.o, ra-colorize.o, ra-debug.o,
3300 ra-rewrite.o): Replace df.h with DF_H.
3301 (ddg.o, modulo-sched.o): Replace ddf.h with DDG_H.
3302 (tree-outof-ssa.o, tree-ssa-live.o, tree-ssa-copyrename.o):
3303 Replace tree-ssa-live.h with TREE_SSA_LIVE_H.
3304 (insn-conditions.o): Remove unused reload.h.
3305 * cfglayout.h: Add include guard. Include basic-block.h.
3306 * cfgloop.h: Add include guard. Include basic-block.h, rtl.h.
3307 * ddg.h: Include sbitmap.h, basic-block.h, df.h.
3308 * df.h: Add include guard. Include bitmap.h, sbitmap.h,
3310 * genconditions.c: Remove reload.h.
3311 * ra.h: Add include guard. Include bitmap.h, sbitmap.h,
3312 hard-reg-set.h, insn-modes.h.
3313 * resource.h: Add include guard. Include hard-reg-set.h.
3314 * sched-int.h: Add include guard. Include insn-attr.h,
3315 basic-block.h, rtl.h.
3316 * target.h: Add include guard. Include insn-modes.h.
3317 * tree-ssa-live.h: Include partition.h.
3319 2004-06-03 Daniel Berlin <dberlin@dberlin.org>
3320 Kenneth Zadeck <zadeck@naturalbridge.com>
3322 * tree-ssa-ccp.c (varying_ssa_edges): New worklist.
3323 (add_var_to_ssa_edges_worklist): Add value argument.
3326 (process_ssa_edge_worklist): New function.
3327 (tree_ssa_ccp): Move worklist processing core to
3328 process_ssa_edge_worklist, and just call that for the two worklists.
3330 2004-06-03 Steven Bosscher <stevenb@suse.de>
3332 * basic-block.c (tail_recursion_label_list): Don't declare.
3333 (CLEANUP_PRE_SIBCALL): Remove. Renumber the other CLEANUP_*
3335 * cfgbuild.c (find_label_refs): Remove.
3336 (find_basic_blocks_1): Don't handle CALL_PLACEHOLDER insns.
3337 * cfgcleanup.c (tail_recursion_label_p): Remove.
3338 (merge_blocks_move): Do not check for tail recursion.
3339 (try_optimize_cfg): Likewise.
3340 (cleanup_cfg): Never handle CLEANUP_PRE_SIBCALL.
3341 * cfgrtl.c (tail_recursion_label_list): Remove.
3342 * except.c (remove_unreachable_regions): Don't handle
3343 CALL_PLACEHOLDER insns.
3344 (convert_from_eh_region_ranges_1, can_throw_internal,
3345 can_throw_external): Likewise.
3346 * function.c (free_after_compilation): Don't clear
3347 x_tail_recursion_label.
3348 (fixup_var_refs_insns): Don't handle CALL_PLACEHOLDER insns.
3349 (identify_blocks_1): Don't recurse for CALL_PLACEHOLDER insns.
3350 (reorder_blocks_1): Likewise.
3351 * function.h (struct function): Remove x_tail_recursion_label
3352 member. Don't define tail_recursion_label.
3353 * jump.c (mark_all_labels): Don't handle CALL_PLACEHOLDER insns.
3354 * print-rtl.c (print_rtx): Likewise.
3355 * rtl.def (CALL_PLACEHOLDER): Remove.
3356 * rtl.h (sibcall_use_t): Remove enum.
3357 (optimize_sibling_and_tail_recursive_calls,
3358 replace_call_placeholder): Remove function prototypes.
3359 * stmt.c (tail_recursion_args): Remove.
3360 (optimize_tail_recursion): Remove.
3361 (expand_return): Don't check for possible tail recursion.
3362 * tree.h (optimize_tail_recursion): Remove prototype.
3364 2004-06-02 Jan Hubicka <jh@suse.cz>
3366 * tree-cfg.c (tree_find_edge_insert_loc): Allow inserting before
3369 2004-06-02 Jason Merrill <jason@redhat.com>
3371 * Makefile.in (TAGS): Don't mess with c-parse.[ch].
3372 Do include c-parse.in.
3374 2004-06-02 Eric Christopher <echristo@redhat.com>
3376 * c-typeck.c (common_type): Don't lose type qualifiers
3377 when creating new variants.
3379 2004-06-02 Andrew Pinski <pinskia@physics.uc.edu>
3381 PR tree-optimization/14042
3382 PR tree-optimization/14729
3383 PR tree-optimization/14736
3384 * tree-ssa.c (tree_ssa_useless_type_conversion_1):
3385 Check the type which the pointer points to
3386 instead of the pointer types.
3388 2004-06-02 Kazu Hirata <kazu@cs.umass.edu>
3390 PR tree-optimization/15738.
3391 * builtins.c (fold_builtin_strchr): Transform
3392 strrchr (s, '\0') to strchr (s, '\0').
3394 2004-06-02 Steven Bosscher <stevenb@suse.de>
3396 * i386.c (ix86_adjust_cost): Don't increase the cost for
3397 load+operation for PROCESSOR_PENTIUMPRO, it is already
3398 modelled in the DFA description
3400 2004-06-01 Jerry Quinn <jlquinn@optonline.net>
3402 * Makefile.in (EXPR_H): Add insn-config.h, function.h,
3403 $(RTL_H), flags.h, $(TREE_H), $(MACHMODE_H), $(EXPR_H).
3404 (ALIAS_H, EMIT_RTL_H): New.
3405 (cselib.o): Replace EXPR_H with EMIT_RTL_H.
3406 (cfgcleanup.o): Add EMIT_RTL_H.
3407 (alias.o): Replace EXPR_H with EMIT_RTL_H and ALIAS_H.
3408 * alias.c: Replace expr.h with emit-rtl.h and alias.h.
3409 * attribs.c, c-lex.c, c-obj-common.c, c-semantics.c: Remove expr.h.
3410 * cfgcleanup.c, cselib.c: Replace expr.h with emit-rtl.h.
3411 * expr.h: Add include guard. Include function.h, rtl.h, flags.h,
3412 tree.h, machmode.h, insn-config.h, alias.h, emit-rtl.h.
3413 (get_varargs_alias_set, get_frame_alias_set, record_base_value,
3414 record_alias_subset, new_alias_set, can_address_p): Move to alias.h.
3415 (set_mem_alias_set, set_mem_align, set_mem_expr, set_mem_offset,
3416 set_mem_size): Move to emit-rtl.h.
3420 2004-06-01 Eric Botcazou <ebotcazou@act-europe.fr>
3422 * function.c (walk_fixup_memory_subreg): New parameter 'var'.
3423 Call fixup_memory_subreg only if the MEM is equal to 'var'.
3424 Adjust recursive calls to self.
3425 (fixup_var_refs_insn): Pass 'var' to walk_fixup_memory_subreg.
3427 2004-06-01 Richard Henderson <rth@redhat.com>
3428 Andrew Pinski <pinskia@physics.uc.edu>
3430 * c-parse.in (OFFSETOF, offsetof_member_designator): New.
3431 (primary): Handle offsetof. Add error productions for faux functions.
3432 Move component_ref objc checking to build_component_ref.
3433 (reswords): Add offsetof.
3434 (rid_to_yy): Add offsetof.
3435 * c-tree.h (build_offsetof): Declare.
3436 * c-common.h (objc_is_public): Declare.
3437 * c-typeck.c (build_component_ref): Check objc_is_public.
3438 (build_offsetof): New.
3439 * stub-objc.c (objc_is_public): New.
3440 * objc/objc-act.c, objc/objc-act.h (objc_is_public): Rename
3442 * ginclude/stddef.h (offsetof): Use __builtin_offsetof.
3443 * doc/extend.texi (Offsetof): Move from C++ section to C section
3444 and rewrite for __builtin_offsetof.
3446 2004-06-01 Peter Barada <peter@the-baradas.com>
3447 Peter Jakubek <peter@laseranimation.com>
3449 * config/m68k/m68k.c(m68k_output_mi_thunk): For ColdFire, use %d0 as
3450 a scratch to perform an add to memory.
3452 2004-06-01 Bernardo Innocenti <bernie@develer.com>
3455 * config/m68k/m68k.c (m68k_align_loops_string, m68k_align_jumps_string,
3456 m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
3457 m68k_align_funcs): Remove.
3458 (override_options): Remove code to handle -malign-* options.
3459 * config/m68k/m68k.h (TARGET_OPTIONS): Remove -malign-* options.
3460 (FUNCTION_BOUNDARY, LOOP_ALIGN, LOOP_ALIGN_AFTER_BARRIER): Remove.
3461 (m68k_align_loops_string, m68k_align_jumps_string,
3462 m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
3463 m68k_align_funcs): Remove definitions.
3465 2004-06-01 Paul Eggert <eggert@cs.ucla.edu>
3468 * doc/install.texi (sparc-sun-solaris2*): Document messages issued
3469 by the Sun linker in conjunction with the Sun assembler.
3470 (sparc-sun-solaris2.7): Update revision info for Sun patch 106950.
3472 2004-06-01 Jeff Law <law@redhat.com>
3474 * stmt.c (expand_decl): Be more selective about calling
3477 2004-06-01 Nicola Pero <nicola@brainstorm.co.uk>
3480 * objc-act.c (is_private): Do not emit the 'instance variable %s
3481 is declared private' error.
3482 (is_public): Emit the error after calling is_private.
3483 (lookup_objc_ivar): If the instance variable is private, return 0
3484 - the instance variable is invisible here.
3486 2004-06-01 Eric Botcazou <ebotcazou@libertysurf.fr>
3488 * doc/invoke.texi (-static-libgcc): Explicitly mention
3491 2004-06-01 Bernardo Innocenti <bernie@develer.com>
3494 * doc/invoke.texi: Document stack alignment side-effect of -mshort.
3496 2004-05-31 Joseph S. Myers <jsm@polyomino.org.uk>
3499 * c-decl.c (grokdeclarator, finish_struct): Don't pedwarn for
3500 misuses of structures with flexible array members if
3503 2004-05-31 Eric Botcazou <ebotcazou@libertysurf.fr>
3506 * config/sparc/sparc.c (compare_operand): New predicate.
3507 * config/sparc/sparc.h (PREDICATE_CODES): Add it.
3508 * config/sparc/sparc.md (cmpsi expander): Use it. If the first
3509 operand is a ZERO_EXTRACT and the second operand is not zero,
3510 force the former to a register.
3511 (cmpdi expander): Likewise.
3513 2004-05-31 Geoffrey Keating <geoffk@apple.com>
3515 * gengtype-lex.l: Catch stray GTY markers in the files gengtype
3517 * alias.c (alias_invariant_size): Make alias_invariant_size
3518 static, fix GTY marker.
3520 2004-05-31 Kazu Hirata <kazu@cs.umass.edu>
3522 PR tree-optimization/15743.
3523 * builtins.c (fold_builtin_1): Fold index() and rindex().
3525 2004-05-31 Roger Sayle <roger@eyesopen.com>
3528 * fold-const.c (fold_single_bit_test): Only perform "(X & C) != 0"
3529 into "X < 0" (where C is the signbit) if X's type is a full mode.
3531 2004-05-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3533 * pa.md: Disable the peephole2 patterns that generate indexed
3534 floating-point stores when indexing is disabled.
3536 2004-05-31 Gabriel Dos Reis <gdr@integrable-solutions.net>
3538 * c-pretty-print.c (pp_c_left_bracket): Make a function.
3539 (pp_c_right_bracket): Likewise.
3540 (pp_c_star): Likewise.
3541 (pp_c_ampersand): Define.
3542 * c-pretty-print.h (pp_c_left_bracket): Declare.
3543 (pp_c_right_bracket): Likewise.
3544 (pp_c_star): Likewise.
3545 (pp_c_ampersand): Likewise.
3547 2004-05-31 Eric Botcazou <ebotcazou@libertysurf.fr>
3549 * config/sol2.h (__enable_execute_stack): ANSIfy function
3552 2004-05-31 Danny Smith <dannysmith@users.sourceforge.net>
3554 * c-incpath.c (add_path): Canonicalize paths to use '/' if
3555 HAVE_DOS_BASED_FILESYSTEM.
3557 2004-05-31 Steven Bosscher <stevenb@suse.de>
3559 * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
3560 Only look at case labels if the immediate dominator is also
3561 the only predecessor. Don't look for more case labels if the
3562 first seen is a case range.
3564 2004-05-31 Kazu Hirata <kazu@cs.umass.edu>
3566 * builtins.c: Add a prototype for fold_builtin_strchr().
3568 2004-05-31 Paolo Bonzini <bonzini@gnu.org>
3571 2004-05-27 Paolo Bonzini <bonzini@gnu.org>
3573 * combine.c (gen_binary): Remove.
3574 (known_cond, simplify_shift_const
3575 find_split_point, combine_simplify_rtx,
3576 simplify_if_then_else, simplify_set,
3577 simplify_logical, expand_field_assignment,
3578 extract_left_shift, force_to_mode,
3579 if_then_else_cond, apply_distributive_law,
3580 simplify_and_const_int, simplify_shift_const,
3581 gen_lowpart_for_combine, simplify_comparison,
3582 reversed_comparison): Replace with
3583 simplify_gen_binary, simplify_gen_relational or
3584 distribute_and_simplify_rtx.
3585 (distribute_and_simplify_rtx): New function.
3587 2004-05-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3589 * pa.c (emit_move_sequence): Fix loading of non 14-bit CONST operands
3590 when generating PIC code.
3592 2004-05-30 Andrew Pinski <pinskia@physics.uc.edu>
3594 * c-decl.c (c_expand_body_1): Remove and fold back into ...
3595 (c_expand_body): here.
3596 (c_expand_decl): Move to ...
3597 * c-common.c (c_expand_decl): Here and remove check for nested
3599 * c-common.h (c_expand_decl): Add prototype.
3600 * c-tree.h (c_expand_decl): Remove.
3602 2004-05-30 Roger Sayle <roger@eyesopen.com>
3604 * fold-const.c (combine_comparisons, optimize_bit_field_compare,
3605 range_binop, fold_truthop, fold_binary_op_with_conditional_arg,
3606 fold_mathfn_compare, fold_inf_compare, fold,
3607 fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
3608 Use constant_boolean_node where appropriate. Don't bother using
3609 fold_convert on the second argument to omit_one_operand.
3611 2004-05-30 Roger Sayle <roger@eyesopen.com>
3613 * doc/c-tree.texi (Expressions): Document FLOOR_DIV_EXPR,
3614 CEIL_DIV_EXPR, ROUND_DIV_EXPR, FLOOR_MOD_EXPR, CEIL_MOD_EXPR,
3615 ROUND_MOD_EXPR, EXACT_DIV_EXPR. Improve documentation of
3616 TRUNC_DIV_EXPR, TRUNC_MOD_EXPR and comparison operations.
3617 Add missing (but documented) tree nodes to the index.
3619 2004-05-30 Steven Bosscher <stevenb@suse.de>
3621 PR tree-optimization/14819
3622 * builtins.c (fold_builtin_strchr): New.
3623 (fold_builtin_1): Handle BUILT_IN_STRCHR and BUILT_IN_STRRCHR
3624 with fold_builtin_strchr().
3626 2004-05-30 Kazu Hirata <kazu@cs.umass.edu>
3628 * bb-reorder.c, builtins.c, c-common.c, c-gimplify.c,
3629 c-incpath.c, cgraphunit.c, ddg.c, defaults.h, dwarf2out.c,
3630 expmed.c, flags.h, gcc.c, gensupport.c, gimplify.c, global.c,
3631 passes.c, reg-stack.c, target.h, toplev.c, tree-alias-ander.c,
3632 tree-alias-common.c, tree-cfg.c, tree-complex.c, tree-dfa.c,
3633 tree-eh.c, tree-mudflap.c, tree-mudflap.h, tree-outof-ssa.c,
3634 tree-phinodes.c, tree-pretty-print.c, tree-ssa-alias.c,
3635 tree-ssa-ccp.c, tree-ssa-live.c, tree-ssa-live.h,
3636 tree-ssa-pre.c, tree.h, value-prof.h, varasm.c: Fix comment
3639 2004-05-30 Steven Bosscher <stevenb@suse.de>
3641 * gimplify.c (sort_case_labels): New. Split out from...
3642 (gimplify_switch_expr): ...here. Use it.
3643 * tree-eh.c (lower_try_finally_switch): Sort the labels of
3644 the SWITCH_EXPR created here before leaving the function.
3645 * tree.c (sort_case_labels): Add prototype.
3647 2004-05-30 Andrew Pinski <pinskia@physics.uc.edu>
3649 * fold-const.c (fold) [case TRUTH_NOT_EXPR]: Make sure the type is
3652 2004-05-30 Kazu Hirata <kazu@cs.umass.edu>
3654 * c-common.c, calls.c, cfgcleanup.c, cgraph.c, cgraphunit.c,
3655 ddg.c, ddg.h, df.c, df.h, except.c, expr.c, flags.h,
3656 fold-const.c, gcc.c, gimplify.c, haifa-sched.c,
3657 modulo-sched.c, tree-inline.c, tree-into-ssa.c, tree-nested.c,
3658 tree-nrv.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-live.c,
3659 tree-ssa-loop.c, tree-ssa-pre.c, tree-tailcall.c, tree.h: Fix
3660 comment typos. Follow spelling conventions.
3662 2004-05-29 Geoffrey Keating <geoffk@apple.com>
3664 * gengtype-yacc.y: Add NESTED_PTR token.
3665 (option): Record `nested_ptr' option.
3666 * gengtype-lex.l: Handle `nested_ptr' keyword.
3667 * gengtype.c (walk_type): Process `nested_ptr' option.
3668 * gengtype.h (struct nested_ptr_data): New.
3669 * doc/gty.texi (GTY Options): Document `nested_ptr' option.
3670 * stringpool.c (struct string_pool_data): Make 'entries' point to
3671 ht_identifier instead of tree.
3672 (gt_pch_save_stringpool): Don't adjust pointers.
3673 (gt_pch_restore_stringpool): Call ht_load.
3675 2004-05-29 Jason Merrill <jason@redhat.com>
3677 * gimplify.c (gimplify_expr): Don't build a statement list
3678 if no gimplification was necessary.
3680 2004-05-29 Joseph S. Myers <jsm@polyomino.org.uk>
3682 * pretty-print.c (pp_base_format_text): Support %< instead of %`
3683 and %> as well as %'.
3684 * c-format.c: Use %< and %>.
3685 (gcc_diag_char_table, gcc_cdiag_char_table,
3686 gcc_cxxdiag_char_table): Update.
3688 2004-05-29 Joseph S. Myers <jsm@polyomino.org.uk>
3690 * c-typeck.c (common_type): Correct comment.
3692 2004-05-29 Peter Barada <peter@the-baradas.com>
3694 * config/m68k/m68k.c (CONST_METHOD): Add MVZ, MVS.
3695 * config/m68k/m68k.c (const_method): Likewise.
3696 * config/m68k/m68k.c (const_int_cost): Likewise.
3697 * config/m68k/m68k.c (const_int_cost): Likewise.
3698 * config/m68k/m68k.c (output_move_const_into_data_reg): Likewise.
3700 2004-05-29 Peter Barada <peter@the-baradas.com>
3702 * config/m68k/m68k.h (EXTRA_CONSTRAINT): add 'U' for register offset
3704 * config/m68k/m68k.md: Add 'U,U' alternative to ColdFire variants of
3705 movsi,movhi,movqi insn patterns.
3707 2004-05-28 Andrew Pinski <pinskia@physics.uc.edu>
3709 * c-semantics.c (emit_local_var): Remove code for DECL_INITIAL.
3712 * config/darwin.c (machopic_indirect_call_target): Copy
3713 the SYMBOL_REF_DECL from the original RTX for the new
3716 2004-05-28 DJ Delorie <dj@redhat.com>
3718 * stor-layout.c (place_field): Revert erroneous commit.
3720 2004-05-28 Ziemowit Laski <zlaski@apple.com>
3722 * config/rs6000/altivec.h (vec_ctf, vec_vcfsx, vec_vcfux, vec_cts,
3723 vec_ctu, vec_dss, vec_dst, vec_dstst, vec_dststt, vec_dstt, vec_ld,
3724 vec_ldl, vec_lvsl, vec_lvsr, vec_sld, vec_splat, vec_vspltw,
3725 vec_vsplth, vec_vspltb, vec_splat_s8, vec_splat_s16, vec_splat_s32,
3726 vec_splat_u8, vec_splat_u16, vec_splat_u32, vec_st, vec_stl,
3727 vec_ste): Remove type checks for integral parameters and literals
3728 from '..._args_eq' macros.
3730 2004-05-28 Aldy Hernandez <aldyh@redhat.com>
3732 * c-common.c (fname_as_string): Fix xcalloc to xmalloc.
3734 2004-05-28 Aldy Hernandez <aldyh@redhat.com>
3736 * testsuite/g++.dg/charset/function.cc: New.
3738 * testsuite/gcc.dg/charset/function.c: New.
3740 * c-decl.c (c_make_fname_decl): Free return value from
3743 * cp/decl.c (cp_make_fname_decl): Free return value from
3746 * c-common.c (fname_as_string): Translate if necessary.
3748 2004-05-28 Geoffrey Keating <geoffk@apple.com>
3750 * stringpool.c: Add comments to PCH saving/restoring routines.
3752 2004-05-28 Andrew Pinski <pinskia@physics.uc.edu>
3754 * c-common.c (c_estimate_num_insns_1): Kill.
3755 (c_estimate_num_insns): Kill.
3756 * c-common.h (c_estimate_num_insns): Kill.
3758 * gthr-posix.h: Check for _POSIX_PRIORITY_SCHEDULING
3759 when checking for _POSIX_THREAD_PRIORITY_SCHEDULING.
3760 Remove comment about not checking for
3761 _POSIX_PRIORITY_SCHEDULING.
3762 * gthr-posix.c: Likewise.
3764 2004-05-28 Paolo Bonzini <bonzini@gnu.org>
3765 Roger Sayle <roger@eyesopen.com>
3767 PR rtl-optimization/15649
3768 Add LTGT_EXPR and improve pretty-printing of unordered
3770 * c-common.c (c_common_truthvalue_conversion):
3772 * c-typeck.c (build_binary_op): Likewise.
3773 * dojump.c (do_jump): Likewise.
3774 * expr.c (expand_expr_real_1, do_store_flag): Likewise.
3775 * predict.c (tree_predict_by_opcode): Likewise.
3776 * real.c (real_compare): Likewise.
3777 * tree-cfg.c (verify_expr): Likewise.
3778 * tree-inline.c (estimate_num_insns_1): Likewise.
3779 * tree-pretty-print.c (dump_generic_node): Likewise.
3780 Handle ORDERED_EXPR, UNORDERED_EXPR.
3781 (op_symbol): Print unordered comparisons differently
3783 * tree.def (LTGT_EXPR): New '<' tree code.
3784 * doc/c-tree.texi (Expressions): Document floating-point
3787 Fold comparisons between floating point values.
3788 * fold-const.c (enum comparison_code): New, from
3789 #define'd constants. Define compcodes for unordered
3790 comparisons and for invalid transformations.
3791 (invert_tree_comparison): Add "honor_nans" parameter.
3792 (fold_truthop): Revamp to work on floating-point types too.
3793 (comparison_to_compcode): Support unordered comparisons.
3794 Use new enum comparison_code.
3795 (compcode_to_comparison): Likewise.
3796 (combine_compcodes): New function.
3797 (invert_truthvalue): Let invert_tree_comparison decide
3798 whether it is valid to fold the comparison. Fold ORDERED
3799 and UNORDERED even if flag_unsafe_math_optimizations is off,
3800 and the remaining even if flag_unsafe_math_optimizations
3801 is off but we are under -fno-trapping-math.
3802 (fold_relational_const): Integer modes do not honor NaNs.
3804 2004-05-28 Paul Brook <paul@codesourcery.com>
3806 * config/arm/arm.c (arm_output_epilogue): Remove redundant code.
3808 2004-05-28 Paul Brook <paul@codesourcery.com>
3810 * config/arm/arm.c (thumb_force_lr_save): New function.
3811 (arm_get_frame_offsets, thumb_unexpanded_epilogue,
3812 thumb_output_function_prologue): Use it.
3813 (thumb_expand_prologue): Set lr_save_eliminated.
3815 2004-05-28 Richard Sandiford <rsandifo@redhat.com>
3817 * config/mips/mips.md (extendsidi2): Tie the source and destination
3818 of the register alternative. Split it into nothing.
3820 2004-05-28 Richard Sandiford <rsandifo@redhat.com>
3822 * rtl.h (skip_consecutive_labels): Declare.
3823 * emit-rtl.c (skip_consecutive_labels): New function.
3824 * reorg.c (relax_delay_slots, dbr_schedule): Use it.
3825 * jump.c (follow_jumps): Say what null return values mean.
3827 2004-05-28 Kaz Kojima <kkojima@gcc.gnu.org>
3830 * config/sh/sh.md (rotlsi3): Use emit_move_insn.
3832 2004-05-27 Kaz Kojima <kkojima@gcc.gnu.org>
3834 * config/sh/t-linux (SHLIB_MAPFILES): Use sh specific
3836 * config/sh/libgcc-std.ver: New file.
3838 2004-05-27 Bryce McKinlay <mckinlay@redhat.com>
3840 * except.c: Revert change of 2004-05-26.
3841 * config/i386/i386.md: Revert change of 2004-05-27.
3843 2004-05-27 Bryce McKinlay <mckinlay@redhat.com>
3845 * configure.ac: Remove --enable-tree-browser option.
3846 Define TREEBROWSER when ac_tree_checking is defined.
3847 * configure: Rebuilt.
3849 2004-05-27 Olivier Hainque <hainque@act-europe.fr>
3851 * expr.c (store_constructor): Restore sanity check on
3852 the size of the type before clearing.
3854 2004-05-27 Jan Hubicka <jh@suse.cz>
3856 * cfgbuild.c (control_flow_insn_p): Notice noreturn call
3858 2004-05-27 Paolo Bonzini <bonzini@gnu.org>
3860 * combine.c (gen_binary): Remove.
3861 (known_cond, simplify_shift_const
3862 find_split_point, combine_simplify_rtx,
3863 simplify_if_then_else, simplify_set,
3864 simplify_logical, expand_field_assignment,
3865 extract_left_shift, force_to_mode,
3866 if_then_else_cond, apply_distributive_law,
3867 simplify_and_const_int, simplify_shift_const,
3868 gen_lowpart_for_combine, simplify_comparison,
3869 reversed_comparison): Replace with
3870 simplify_gen_binary, simplify_gen_relational or
3871 distribute_and_simplify_rtx.
3872 (distribute_and_simplify_rtx): New function.
3873 * simplify-rtx.c (simplify_binary_operation):
3874 Use nonzero_bits to simplify ANDs where we are
3875 turning off bits already known to be off in OP0.
3877 2004-05-27 Alan Modra <amodra@bigpond.net.au>
3880 * config/rs6000/rs6000.c (reg_or_neg_short_operand): Don't allow zero.
3882 2004-05-27 Josef Zlomek <zlomekj@suse.cz>
3885 * emit-rtl.c (gen_rtx_REG_offset): Adjust the offset according
3888 2004-05-26 Aldy Hernandez <aldyh@redhat.com>
3891 * config/rs6000/rs6000.c (spe_expand_stv_builtin): New.
3893 2004-05-26 Roger Sayle <roger@eyesopen.com>
3895 * tree.h: Fix comment typo.
3897 2004-05-27 Steven Bosscher <stevenb@suse.de>
3899 * gimplify.c (compare_case_labels): New function.
3900 (gimplify_switch_expr): Sort case labels, and make sure the
3901 last label in the label vector is the default case.
3902 * tree-cfg.c (group_case_labels): New function.
3903 (build_tree_cfg): Cleanup redundant labels and group case labels
3904 before creating edges.
3905 (cleanup_dead_labels): Handle GOTO_EXPRs.
3906 (find_case_label_for_value): Use a binary search to find the
3907 case label for the given value.
3908 * tree-gimple.c: Mention that labels are sorted, and that the
3909 last label must be the default.
3911 2004-05-27 Jan Hubicka <jh@suse.cz>
3913 * cfgcleanup.c (try_optimize_cfg): Do not merge across jumptables.
3915 2004-05-27 Jan Hubicka <jh@suse.cz>
3917 * i386.md (UNSPECV_EH_RETURN): Kill.
3918 (eh_return): Use jump_insn.
3919 (eh_return_si, eh_return_di): Change pattern to jump instruction.
3921 2004-05-26 Jan Hubicka <jh@suse.cz>
3923 * cfgcleanup.c (try_forward_edges): Do not check loop structure when
3924 not loop optimizing.
3926 2004-05-26 Jan Hubicka <jh@suse.cz>
3928 * except.c (can_throw_internal): Notice RESX instructions.
3930 2004-05-26 Eric Botcazou <ebotcazou@act-europe.fr>
3932 * varasm.c (output_constant) <INTEGER_TYPE>: Pass the minimum
3933 of the two sizes to assemble_integer.
3935 2004-05-25 Paul Brook <paul@codesourcery.com>
3937 * config/arm/arm.c (thumb_exit, thumb_unexpanded_epilogue): Remove
3940 2004-04-25 Paolo Bonzini <bonzini@gnu.org>
3942 * Makefile.in (top_builddir): Define to .
3944 2004-05-25 Alexandre Oliva <aoliva@redhat.com>
3946 * configure.ac (gcc_cv_ld): Prefer in-tree ld over whatever the
3947 top-level detects, except when in-tree ld is being cross-built.
3948 (gcc_cv_as): Likewise for as. Use AS_FOR_TARGET otherwise, and
3949 then AS only if target is host.
3950 * configure: Rebuilt.
3952 2004-05-25 Vladimir Makarov <vmakarov@redhat.com>
3954 * global.c (global_alloc): Call make_accurate_live_analysis.
3955 (record_one_conflict): Remove dead code.
3956 (mark_reg_clobber): Remove ATTRIBUTE_UNUSED for parameter data.
3957 (bb_info): New structure.
3958 (BB_INFO, BB_INFO_BY_INDEX): New macros.
3959 (allocate_bb_info, free_bb_info, mark_reg_change,
3960 calculate_local_reg_bb_info, set_up_bb_rts_numbers, rpost_cmp,
3961 modify_bb_reg_pav, calculate_reg_pav,
3962 make_accurate_live_analysis): New functions.
3964 2004-05-25 Devang Patel <dpatel@apple.com>
3966 * alias.c (init_alias_analysis): Use ggc_calloc instead of