1 2005-04-25 Mike Stump <mrs@apple.com>
3 * config/darwin.c (darwin_encode_section_info): Always set
4 MACHO_SYMBOL_STATIC for all ! TREE_PUBLIC symbols.
6 2005-04-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8 * collect2.c, gcc.c, gcov-dump.c, gcov.c, gen-protos.c,
9 gensupport.c, protoize.c, toplev.c: Replace calls to
10 `unlock_stream' with `unlock_std_streams'.
12 2005-04-25 Devang Patel <dpatel@apple.com>
14 * dbxout.c (dbxout_type): Emit attribute vector.
16 2005-04-05 Paul Brook <julian@codesourcery.com>
18 * target-def.h (TARGET_CXX_USE_AEABI_ATEXIT): Define.
19 * target.h (struct gcc_target): Add cxx.use_aeabi_atexit.
20 * config/arm/arm.c (arm_cxx_atexit_name): New function.
21 (TARGET_CXX_USE_AEABI_ATEXIT): New macro.
22 * cp/decl.c (get_atexit_node): Reorder arguments for __aeabi_atexit.
23 (register_dtor_fn): Likewise.
24 * doc/tm.texi: Document TARGET_CXX_USE_AEABI_ATEXIT.
26 2005-04-25 Ian Lance Taylor <ian@airs.com>
28 * c-common.def (EXPR_STMT): Remove, moved to C++ frontend.
29 * c-common.h (EXPR_STMT_EXPR): Don't define.
30 (c_common_stmt_codes): Don't define.
31 * c-dump.c (c_dump_tree): Remove EXPR_STMT case.
32 * c-gimplify.c (gimplify_expr_stmt): Remove.
33 (c_gimplify_expr): Remove EXPR_STMT case.
34 * c-objc-common.c (c_objc_common_init): Remove stmt_codes and call
35 to INIT_STATEMENT_CODES.
36 * c-pretty-print.c (pp_c_statement): Just call dump_generic_node.
38 2005-04-25 Jan Hubicka <jh@suse.cz>
40 * tree-cfg.c (tree_duplicate_bb): Duplicate EH region too.
42 * except.c: Include diagnostic.h
43 (dump_eh_tree, verify_eh_tree): New functions.
44 * except.h (verify_eh_tree, dump_eh_tree, verify_eh_edges): Declare.
45 * tree-cfg.c (tree_verify_flow_info): verify eh edges.
46 (dump_function_to_file): dump eh tree.
47 * tree-eh.c (mark_eh_edge): New function.
48 (mark_eh_edge_found_error): New static variable.
49 (verify_eh_edges): New function.
51 2005-04-25 Nathan Sidwell <nathan@codesourcery.com>
53 * tree-ssa-alias.c (fieldoff_t): Remove.
54 (fieldoff_s): typedef the structure itself. Create a vector of
56 (push_fields_onto_fieldstack): Return count of fields pushed.
57 Remove peeling of first field. Adjust.
58 (fieldoff_compare): Adjust.
59 (create_overlap_variables_for): Adjust.
61 2005-04-25 Joseph S. Myers <joseph@codesourcery.com>
63 * doc/invoke.texi (Blackfin Options): Avoid empty @opindex line.
65 2005-04-25 Joseph S. Myers <joseph@codesourcery.com>
68 * doc/install.texi: Document correct assembler and linker to use
69 on i?86-*-solaris2.10.
71 2005-04-25 Steven Bosscher <stevenb@suse.de>
73 Fix PR tree-optimization/21173
75 * tree-ssa-pre.c (create_expression_by_pieces): Simplify code.
76 Unshare expression we pass to force_gimple_operand.
78 2005-04-25 J"orn Rennecke <joern.rennecke@st.com>
79 Stephen Clarke <stevec@superh.com>
80 Roger Sayle <roger@eyesopen.com>
82 PR rtl-optimization/20413
83 * cfgrtl.c (redirect_edge_and_branch): Use Pmode instead of
84 VOIDmode for LABEL_REF.
85 * final.c (shorten_branches): Likewise.
86 * jump.c (mark_all_labels, redirect_exp_1): Likewise.
87 * loop.c (reg_dead_after_loop): Likewise.
88 * varasm.c (decode_addr_const): Likewise.
89 * doc/rtl.texi: Document mode requirement for LABEL_REF.
91 2005-04-25 Ralf Corsepius <ralf.corsepius@rtems.org>
93 * config.gcc (avr-*-*): Remove redundant "case".
95 2005-04-25 Kazu Hirata <kazu@cs.umass.edu>
97 * tree-vect-analyze.c (vect_mark_relevant): Take
98 VEC(tree,heap) instead of varray_type as an argument.
99 (vect_mark_stmts_to_be_vectorized): Change the type of
100 worklist to VEC(tree,heap). Adjust uses of worklist.
102 2005-04-24 Devang Patel <dpatel@apple.com>
104 * config/rs6000/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New.
106 2005-04-24 Ian Lance Taylor <ian@airs.com>
108 * c-semantics.c (build_stmt): Remove test of specific tree codes
109 for TREE_SIDE_EFFECTS handling.
111 2005-04-24 Per Bothner <per@bothner.com>
113 * c-opts.c (finish_options): Make the line-number of the <built-in>
114 location 0, as assumed elsewhere, rather than 1.
116 2005-04-24 Kazu Hirata <kazu@cs.umass.edu>
118 * tree-ssa-uncprop.c (equiv_stack): Change the type o
120 (tree_ssa_uncprop, uncprop_finalize_block,
121 uncprop_initialize_block): Update uses of equiv_stack.
123 2005-04-24 Richard Henderson <rth@redhat.com>
126 * simplify-rtx.c (simplify_binary_operation) <IOR>: Check
127 for SCALAR_INT_MODE_P instead of not MODE_CC before returning
129 <AND, LSHIFTRT, UMIN>: Use CONST0_RTX.
130 <UDIV, UMOD>: Use CONST0_RTX and CONST1_RTX.
131 <DIV, MOD>: Likewise.
133 2005-04-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
135 * collect2.c (main): Unlock the stdio streams.
136 * gcc.c (main): Likewise.
137 * gcov-dump.c (main): Likewise.
138 * gcov.c (main): Likewise.
139 * gen-protos.c (main): Likewise.
140 * gensupport.c (init_md_reader_args_cb): Likewise.
141 * protoize.c (main): Likewise.
142 * toplev.c (general_init): Likewise.
144 2005-04-24 Jakub Jelinek <jakub@redhat.com>
147 * cgraph.h (cgraph_local_info): Add vtable_method field.
148 * varasm.c (mark_decl_referenced): If cgraph_global_info_ready
149 and node is vtable_method, finalized and not reachable, don't do
152 2005-04-24 Kazu Hirata <kazu@cs.umass.edu>
154 * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Use
156 * tree-ssa-pre.c (create_value_expr_from): Use
157 CONSTANT_CLASS_P and REFERENCE_CLASS_P.
158 * tree-ssa-propagate.c (stmt_makes_single_load,
159 stmt_makes_single_store): Use REFERENCE_CLASS_P.
160 * tree-vect-transform.c (vect_is_simple_cond): Use
162 * tree-vrp.c (extract_range_from_assert,
163 build_assert_expr_for, fp_predicate, has_assert_expr): Use
166 * tree-ssa-live.c (build_tree_conflict_graph): Change the type
167 of tpa_to_clear to VEC(int,heap). Update uses of
168 tpa_to_clear. Free tpa_to_clear at the end.
170 2005-04-24 Andrew Pinski <pinskia@physics.uc.edu>
172 * tree.h (TREE_THIS_VOLATILE): Document the effect on a
175 2005-04-24 Nathan Sidwell <nathan@codesourcery.com>
177 * config/rs6000/rs6000.c (rs6000_override_options): Use gcc_assert
178 and gcc_unreachable as appropriate.
179 (num_insns_constant, output_vec_const_move,
180 build_mask64_2_operands, rs6000_output_dwarf_dtprel,
181 rs6000_emit_set_const, rs6000_emit_move,
182 spe_build_register_parallel, function_arg,
183 rs6000_move_block_from_reg, altivec_expand_predicate_builtin,
184 spe_expand_predicate_builtin, spe_expand_evsel_builtin,
185 rs6000_expand_builtin, spe_init_builtins, altivec_init_builtins,
186 rs6000_common_init_builtins, expand_block_clear,
187 expand_block_move, validate_condition_mode, ccr_bit, extract_MB,
188 extract_ME, rs6000_get_some_local_dynamic_name,
189 rs6000_output_function_entry, print_operand,
190 print_operand_address, rs6000_generate_compare, rs6000_emit_sCOND,
191 output_cbranch, output_e500_flip_gt_bit,
192 rs6000_emit_vector_compare, rs6000_emit_vector_compare,
193 rs6000_emit_cmove, rs6000_emit_minmax, rs6000_split_multireg_move,
194 compute_save_world_info, rs6000_stack_info,
195 rs6000_emit_load_toc_table, rs6000_frame_related,
196 spe_synthesize_frame_save, rs6000_emit_epilogue,
197 rs6000_output_function_epilogue, rs6000_hash_constant, output_toc,
198 output_function_profiler, rs6000_trampoline_size,
199 rs6000_initialize_trampoline, find_addr_reg,
200 rs6000_machopic_legitimize_pic_address,
201 rs6000_initial_elimination_offset,
202 rs6000_dbx_register_number): Likewise.
203 * config/rs6000/rs6000.md (*fix_truncdfsi2_internal,
204 *movdf_hardfloat32, *movdf_softfloat32, *fix_trunctfsi2_internal,
205 *movti_power, *movti_string, call, call_value, sibcall,
206 sibcall_value): Likewise.
207 * config/rs6000/spe.md (*movdf_e500_double,
208 *movv2si_internal): Likewise.
209 * config/rs6000/rs6000.h (PREFERRED_RELOAD_CLASS): Remove 'abort'
212 2005-04-24 Richard Henderson <rth@redhat.com>
215 * config/i386/i386.h (CANNOT_CHANGE_MODE_CLASS): Move guts to ...
216 * config/i386/i386.c (ix86_cannot_change_mode_class): ... here.
217 Deny modes smaller than 4 bytes.
218 * config/i386/i386-protos.h: Update.
220 2005-04-24 Ralf Corsepius <ralf.corsepius@rtems.org>
222 * config.gcc (h8300-*-rtems*): Add h8300-*-rtemscoff*.
223 Switch h8300-*-rtems* to ELF.
225 2005-04-24 Kazu Hirata <kazu@cs.umass.edu>
227 * vec.h (VEC_safe_grow): Replace grow with safe_grow.
229 2005-04-23 Kazu Hirata <kazu@cs.umass.edu>
231 * ipa-inline.c, tree-ssa-operands.h: Fix comment typos.
233 2005-04-23 Richard Guenther <rguenth@gcc.gnu.org>
236 * fold-const.c: Fold &a[i]-&a[j] to i-j.
238 2005-04-23 Zdenek Dvorak <dvorakz@suse.cz>
240 * tree-ssa-loop-niter.c (tree_simplify_using_condition): Expand simple
241 definitions of ssa names in condition. Split recusive part to ...
242 (tree_simplify_using_condition_1): New function.
243 (expand_simple_operations): New function.
245 2005-04-23 Zdenek Dvorak <dvorakz@suse.cz>
247 * tree-ssa-loop-ivopts.c (struct cost_pair): Add value field.
248 (find_interesting_uses_cond): Do not use integer_zerop and
249 integer_nonzerop to check for integer constants.
250 (set_use_iv_cost): Record the value field.
251 (determine_use_iv_cost_generic, determine_use_iv_cost_address,
252 determine_use_iv_cost_outer): Set the value field of the cost pair.
253 (may_eliminate_iv): Do not return the comparison code.
254 (iv_elimination_compare): New function.
255 (determine_use_iv_cost_condition): Set the value field. Record
256 noneliminable invariants correctly.
257 (rewrite_use_compare, rewrite_use_outer): Use the value field.
259 2005-04-23 DJ Delorie <dj@redhat.com>
261 * diagnostic.c (warning): Accept parameter to classify warning option.
262 (warning0): New, for when a pointer to an error() like function is needed.
263 * errors.c (warning): Likewise.
264 * errors.h (warning, warning0): Adjust prototypes.
265 * toplev.h (warning, warning0): Likewise.
267 * attribs.c, builtins.c, c-common.c, c-decl.c, c-format.c,
268 c-gimplify.c, c-lex.c, c-objc-common.c, c-opts.c, c-parser.c,
269 c-pragma.c, c-typeck.c, calls.c, cgraph.c, coverage.c, emit-rtl.c,
270 fold-const.c, fortran/trans-decl.c, function.c, gcse.c,
271 genautomata.c, haifa-sched.c, opts.c, passes.c, regclass.c,
272 reload1.c, stmt.c, stor-layout.c, toplev.c, tree-cfg.c,
273 tree-dump.c, tree-inline.c, tree-mudflap.c, tree-optimize.c,
274 tree-ssa.c, tree.c, varasm.c: Adjust warning() callers.
276 * config/alpha/alpha.c, config/arc/arc.c, config/arm/arm.c,
277 config/avr/avr.c, config/bfin/bfin.c, config/c4x/c4x-c.c,
278 config/c4x/c4x.c, config/cris/cris.c, config/darwin-c.c,
279 config/darwin.c, config/darwin.h, config/h8300/h8300.c,
280 config/i386/cygming.h, config/i386/djgpp.h, config/i386/i386.c,
281 config/i386/winnt.c, config/ia64/ia64-c.c, config/ia64/ia64.c,
282 config/ip2k/ip2k.c, config/m32r/m32r.c, config/m68hc11/m68hc11.c,
283 config/m68k/m68k.c, config/mcore/mcore.c, config/mips/mips.c,
284 config/mmix/mmix.c, config/ns32k/ns32k.c, config/pa/pa-hpux11.h,
285 config/pa/pa.c, config/rs6000/aix43.h, config/rs6000/aix51.h,
286 config/rs6000/aix52.h, config/rs6000/darwin.h,
287 config/rs6000/rs6000-c.c, config/rs6000/rs6000.c,
288 config/s390/s390.c, config/sh/sh.c, config/sh/sh.h,
289 config/sh/symbian.c, config/sol2-c.c, config/sol2.c,
290 config/stormy16/stormy16.c, config/v850/v850-c.c,
291 config/v850/v850.c, config/xtensa/xtensa.c: Adjust warning()
294 2005-04-23 Richard Henderson <rth@redhat.com>
297 * simplify-rtx.c (simplify_binary_operation): Fix mode check before
298 performing some integral scalar simplifications.
300 2005-04-23 Richard Henderson <rth@redhat.com>
303 * config/i386/i386.c (ix86_split_to_parts): Use proper mode when
304 simplifying CONST_VECTOR.
306 2005-04-23 Kazu Hirata <kazu@cs.umass.edu>
308 * tree-ssa-live.c (live_worklist): Take a stack allocated on
309 heap as an argument. Update uses of stack.
310 (calculate_live_on_entry): Allocate stack on heap.
312 * tree-ssa-live.c (build_tree_conflict_graph): Allocate
313 partition_link and tpa_nodes on heap.
315 * tree-ssa-dce.c (worklist): Change to VEC(tree,heap).
316 (mark_stmt_necessary, propagate_necessity,
317 mark_really_necessary_kill_operand_phis): Update uses of
319 (tree_dce_init): Allocate worklist using VEC_alloc.
320 (tree_dce_done): Free worklist using VEC_free.
322 2005-04-23 Mike Stump <mrs@apple.com>
324 * config/darwin.c (machopic_indirection_name): Don't use
326 (darwin_emit_unwind_label): Use user_label_prefix instead of
329 2005-04-23 Kazu Hirata <kazu@cs.umass.edu>
331 * final.c, ipa-inline.c, varasm.c: Fix comment typos.
333 2005-04-23 Hans-Peter Nilsson <hp@axis.com>
335 * config.gcc <cris-*>: Specify .opt files.
336 * config/cris/cris.opt, config/cris/elf.opt, config/cris/aout.opt,
337 config/cris/linux.opt: New files.
338 * config/cris/aout.h (CRIS_SUBTARGET_SWITCHES)
339 (CRIS_SUBTARGET_LONG_OPTIONS): Don't define.
340 (TARGET_ELF): Override to 0.
341 (CRIS_SUBTARGET_HANDLE_OPTION): Override to handle -melinux and
342 -melinux-stacksize=N.
343 * config/cris/cris.c: (cris_handle_option): New function.
344 (TARGET_DEFAULT_TARGET_FLAGS): Override.
345 (TARGET_HANDLE_OPTION): Override to cris_handle_option.
346 (cris_override_options): Use MASK_*, not TARGET_MASK_*.
347 * config/cris/cris.h (TARGET_MASK_SVINTO, TARGET_SVINTO,
348 (TARGET_MASK_CCINIT, TARGET_CCINIT, TARGET_MASK_PDEBUG)
349 (TARGET_PDEBUG, TARGET_MASK_SIDE_EFFECT_PREFIXES)
350 (TARGET_SIDE_EFFECT_PREFIXES, TARGET_MASK_EXPAND_MUL)
351 (TARGET_EXPAND_MUL, TARGET_MASK_STACK_ALIGN, TARGET_STACK_ALIGN)
352 (TARGET_MASK_CONST_ALIGN, TARGET_CONST_ALIGN)
353 (TARGET_MASK_DATA_ALIGN, TARGET_DATA_ALIGN)
354 (TARGET_MASK_PROLOGUE_EPILOGUE, TARGET_PROLOGUE_EPILOGUE)
355 (TARGET_MASK_ETRAX4_ADD, TARGET_ETRAX4_ADD)
356 (TARGET_MASK_ALIGN_BY_32, TARGET_ALIGN_BY_32, TARGET_MASK_ELF)
357 (TARGET_ELF, TARGET_MASK_LINUX, TARGET_LINUX)
358 (TARGET_MASK_AVOID_GOTPLT, TARGET_AVOID_GOTPLT)
359 (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG, TARGET_SWITCHES)
360 (CRIS_SUBTARGET_SWITCHES, TARGET_OPTIONS)
361 (CRIS_SUBTARGET_LONG_OPTIONS): Don't define.
362 (TARGET_LINUX): Define 0.
363 (TARGET_DEFAULT): Use MASK_*, not TARGET_MASK_*.
364 (CRIS_SUBTARGET_DEFAULT): Define to 0, not TARGET_MASK_ELF.
365 (CRIS_SUBTARGET_DEFAULT): New empty default macro.
366 * config/cris/linux.h (CRIS_SUBTARGET_SWITCHES): Don't define.
367 (TARGET_LINUX): Override to 1.
368 (CRIS_SUBTARGET_DEFAULT): Use MASK_*, not TARGET_MASK_*.
370 2005-04-23 Nathan Sidwell <nathan@codesourcery.com>
372 * haifa-sched.c (schedule_block): Fix thinko in previous
373 assertification patch.
375 2005-04-23 Richard Sandiford <rsandifo@redhat.com>
377 * config.gcc (hppa[12]*-*-hpux10*): Add pa/pa-hpux.opt to
378 $extra_options. Also add pa/pa-hpux1010.opt for hpux10.[1-9]*.
379 (hppa*64*-*-hpux11*): Add pa/pa-hpux1010.h to $tm_file. Add
380 pa/pa-hpux.opt, pa/pa-hpux1010.opt and pa/pa64-hpux.opt to
381 $extra_options. Also add pa/pa-hpux1111.opt for hpux11.[1-9]*.
382 (hppa[12]*-*-hpux11*): Add pa/pa-hpux1010.h to $tm_file. Add
383 pa/pa-hpux.opt to $extra_options. Also add pa/pa-hpux1111.opt
385 * config/pa/pa.h (architecture_type, rtx_def, pa_arch_string, pa_arch)
386 (pa_fixed_range_string, pa_cpu_string, pa_unix_string, target_flags)
387 (MASK_PA_11, MASK_DISABLE_FPREGS, TARGET_DISABLE_FPREGS)
388 (MASK_NO_SPACE_REGS, TARGET_NO_SPACE_REGS, MASK_JUMP_IN_DELAY)
389 (TARGET_JUMP_IN_DELAY, MASK_DISABLE_INDEXING, TARGET_DISABLE_INDEXING)
390 (MASK_PORTABLE_RUNTIME, TARGET_PORTABLE_RUNTIME, MASK_GAS, TARGET_GAS)
391 (MASK_SOFT_FLOAT, TARGET_SOFT_FLOAT, MASK_LONG_LOAD_STORE)
392 (TARGET_LONG_LOAD_STORE, MASK_FAST_INDIRECT_CALLS)
393 (TARGET_FAST_INDIRECT_CALLS, MASK_BIG_SWITCH, TARGET_BIG_SWITCH)
394 (MASK_PA_20, MASK_SIO, TARGET_SIO, MASK_GNU_LD, TARGET_GNU_LD)
395 (MASK_LONG_CALLS, TARGET_LONG_CALLS, TARGET_PA_11, TARGET_PA_20)
396 (TARGET_SWITCHES, SUBTARGET_SWITCHES, TARGET_OPTIONS)
397 (SUBTARGET_OPTIONS): Delete.
398 (TARGET_PA_10): Redefine in terms of TARGET_PA_11 and TARGET_PA_20.
399 (TARGET_SCHED_DEFAULT): Define to a PROCESSOR_* enum (PROCESSOR_8000)
401 * config/pa/pa.c (pa_arch, pa_arch_string, pa_fixed_range_string)
402 (pa_cpu_string, pa_unix_string): Delete.
403 (pa_cpu): Initialize to TARGET_SCHED_DEFAULT.
404 (flag_pa_unix): Initialize based on TARGET_HPUX_11_11 and
406 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
407 (pa_handle_option): New function.
408 (override_options): Remove handling of -march=, -mfixed-range=,
409 -mschedule= and -munix=.
410 * config/pa/pa-hpux.h (SUBTARGET_SWITCHES): Delete.
411 * config/pa/pa-hpux1010.h (SUBTARGET_OPTIONS): Delete.
412 * config/pa/pa-hpux10.h (SUBTARGET_OPTIONS): Delete.
413 * config/pa/pa-hpux1111.h (SUBTARGET_OPTIONS): Delete.
414 * config/pa/pa-hpux11.h (SUBTARGET_OPTIONS): Delete.
415 * config/pa/pa64-hpux.h (SUBTARGET_SWITCHES): Delete.
416 * config/pa/pa64-start.h (TARGET_PA_11, TARGET_PA_20): #undef before
418 * config/pa/pa.opt: New file.
419 * config/pa/pa-hpux.opt: New file.
420 * config/pa/pa-hpux1010.opt: New file.
421 * config/pa/pa-hpux1111.opt: New file.
422 * config/pa/pa64-hpux.opt: New file.
424 2005-04-22 David S. Miller <davem@davemloft.net>
426 * rtl.h (CONST_DOUBLE): Fix comment, a CONST_DOUBLE holds an
427 integer when it's mode is VOIDmode not DImode.
429 2005-04-22 Geoffrey Keating <geoffk@apple.com>
431 * config/rs6000/rs6000.md (sync_add<mode>_internal,
432 sync_addshort_internal, sync_sub<mode>_internal, sync_andsi_internal,
433 sync_anddi_internal, sync_boolsi_internal, sync_booldi_internal,
434 sync_boolc<mode>_internal, sync_boolc<mode>_internal2,
435 sync_boolcc<mode>_internal, sync_lock_test_and_set<mode>): Use
436 "bne- $-xxx" rather than local labels.
437 (sync_lock_release<mode>): Add second operand.
438 (lwsync): Use .long rather than a more meaningful opcode.
439 * doc/md.texi (Standard Names): Add description of second
440 parameter to sync_lock_test_and_set.
442 2005-04-23 Kazu Hirata <kazu@cs.umass.edu>
444 PR tree-optimization/21088
445 * fold-const.c (fold_unary, fold_binary, fold_ternary):
447 * tree-vrp.c (compare_values): Use fold_binary to compare
448 pointers. Use boolean_type_node as the type of a comparison
449 expression being folded.
450 * tree.h: Add prototypes for fold_unary, fold_binary,
453 * tree-ssa-dom.c: Fix formatting.
455 2005-04-22 Diego Novillo <dnovillo@redhat.com>
457 * Makefile.in (tree-into-ssa.o): Add dependency on PARAMS_H.
458 * lambda-code.c (perfect_nestify): Mark virtual operands in
459 the moved statement for renaming.
460 * params.def (PARAM_MIN_VIRTUAL_MAPPINGS): Define.
461 (PARAM_VIRTUAL_MAPPINGS_TO_SYMS_RATIO): Define.
462 * params.h (MIN_VIRTUAL_MAPPINGS): Define.
463 (VIRTUAL_MAPPINGS_TO_SYMS_RATIO): Define.
464 * tree-flow.h (struct var_ann_d): Update comments.
465 (rewrite_to_new_ssa_names_bb, rewrite_to_new_ssa_names,
466 allocate_ssa_names, find_phi_node_for, dump_tree_ssa,
467 debug_tree_ssa, debug_def_blocks, dump_tree_ssa_stats,
468 debug_tree_ssa_stats, rewrite_ssa_into_ssa,
469 dump_repl_tbl, debug_repl_tbl, dump_names_replaced_by,
470 debug_names_replaced_by): Remove declarations.
471 (delete_update_ssa, get_current_def, set_current_def): Declare.
472 (rewrite_into_loop_closed_ssa): Add new argument. Update
474 * tree-into-ssa.c: Include params.h.
475 (old_virtual_ssa_names): Remove. Update all users.
476 (need_to_replace_names_p): Remove. Update all users.
477 (struct update_ssa_stats_d): Declare.
478 (update_ssa_stats): New local.
479 (dump_tree_ssa, debug_tree_ssa, debug_def_blocks,
480 dump_tree_ssa_stats, debug_tree_ssa_stats,
481 dump_update_ssa, debug_update_ssa,
482 dump_names_replaced_by, debug_names_replaced_by): Declare.
483 (get_current_def, set current_def): Make extern.
484 (is_old_name, is_new_name): Protect against references
485 past the end of the sets.
486 (add_new_name_mapping): Assert that OLD and NEW are
487 different SSA names for the same symbol.
488 When adding a virtual mapping, update stats for virtual
490 (insert_phi_nodes_for): If UPDATE_P is true, create the
491 LHS of the new PHI by duplicating SSA name VAR.
492 (insert_phi_nodes_1): Remove. Update all users.
493 (insert_phi_nodes): Remove second argument. Update all
495 (maybe_replace_use, maybe_replace_def): New.
496 (rewrite_update_stmt): Call them.
497 (mark_def_interesting): Remove calls to is_gimple_reg.
498 (prepare_phi_args_for_update): Remove. Update all users.
499 (prepare_block_for_update): Only process virtual operands
500 and GIMPLE registers in normal form.
501 (prepare_use_sites_for): New.
502 (prepare_names_to_update): Rename from prepare_def_sites.
503 Call prepare_use_sites_for.
504 (dump_update_ssa): Rename from dump_repl_tbl.
506 Show statistics for virtual mapping heuristic.
507 (debug_update_ssa): Rename from debug_debug_repl_tbl.
508 (init_update_ssa): Initialize UPDATE_SSA_STATS.
509 (delete_update_ssa): Make extern.
510 (mark_set_for_renaming): If the set is empty, do nothing.
511 (release_ssa_name_after_update_ssa): Update comment.
512 (insert_updated_phi_nodes_for): Do not remove existing
513 PHI nodes for symbols.
514 (switch_virtuals_to_full_rewrite_p): New.
515 (switch_virtuals_to_full_rewrite): New.
516 (update_ssa): Call them.
517 Clear REWRITE_THIS_STMT and REGISTER_DEFS_IN_THIS_STMT
518 for every statement before updating.
519 If all the names in NEW_SSA_NAMES have been marked for
521 Only start at the top of the CFG if there are symbols in
523 (ssa_rewrite_finalize_block): Remove.
524 (ssa_register_new_def): Remove.
525 (ssa_rewrite_stmt): Remove.
526 (ssa_rewrite_phi_arguments): Remove.
527 (ssa_rewrite_initialize_block): Remove.
528 (ssa_mark_def_sites): Remove.
529 (ssa_mark_def_sites_initialize_block): Remove.
530 (ssa_mark_phi_uses): Remove.
531 (rewrite_ssa_into_ssa): Remove.
532 * tree-phinodes.c (find_phi_node_for): Remove.
533 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
535 * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops):
536 Remove calls to verify_dominators and
537 verify_loop_structure.
538 (tree_unswitch_single_loop): Call update_ssa.
539 * tree-ssa.c (verify_ssa): Assert that need_ssa_update_p
542 (delete_tree_ssa): Assert that need_ssa_update_p returns
544 * tree-vect-transform.c (vect_transform_loop): Call update_ssa.
545 * tree-vectorizer.c (allocate_new_names, rename_def_op,
546 free_new_names): Remove. Update all users.
547 (rename_use_op): Call get_current_def.
548 (rename_variables_in_bb): Do not handle any real or
550 (slpeel_update_phis_for_duplicate_loop): Call
551 get_current_def and set_current_def instead of using
553 (slpeel_update_phi_nodes_for_guard2): Reformat comments.
554 (slpeel_can_duplicate_loop_p): Call need_ssa_update_p,
555 ssa_names_to_replace and delete_update_ssa.
556 * doc/invoke.texi: Document --param min-virtual-mappings
557 and --param virtual-mappings-ratio.
559 2005-04-22 Diego Novillo <dnovillo@redhat.com>
561 * tree-cfg.c (tree_duplicate_bb): Call create_new_def_for
562 for newly created PHI nodes.
563 Call create_new_def_for for every new V_MAY_DEF and
564 V_MUST_DEF on the copied statement.
565 (struct ssa_name_map_entry): Remove.
566 (ssa_name_map_entry_hash): Remove.
567 (ssa_name_map_entry_eq): Remove.
568 (allocate_ssa_names): Remove.
569 (rewrite_to_new_ssa_names_def): Remove.
570 (rewrite_to_new_ssa_names_use): Remove.
571 (rewrite_to_new_ssa_names_bb): Remove.
572 (rewrite_to_new_ssa_names): Remove.
573 (tree_duplicate_sese_region): Remove variables ver,
574 definitions, phi, ssa_name_map and bi.
575 Call need_ssa_update_p instead of any_marked_for_rewrite_p.
577 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
578 update_ssa instead of rewrite_ssa_into_ssa.
579 * tree-ssa-loop-manip.c (add_exit_phis_edge): Call
581 (find_uses_to_rename_use): Add argument 'need_phis'.
582 (find_uses_to_rename_stmt): Do not scan virtual operands.
583 (find_uses_to_rename): Only scan PHI nodes for
585 (rewrite_into_loop_closed_ssa): Call update_ssa.
586 (check_loop_closed_ssa_use): Ignore virtual operands.
587 (check_loop_closed_ssa_stmt): Likewise.
588 (verify_loop_closed_ssa): Do nothing if CURRENT_LOOPS is
590 (rename_variables, set_phi_def_stmts): Remove.
591 (tree_duplicate_loop_to_header_edge): Reformat comment.
592 Remove variables BB, I and DEFINITIONS.
593 Call need_ssa_update_p.
595 (lv_adjust_loop_header_phi): Reformat comment.
596 * tree-ssanames.c (ssa_names_to_rewrite): Remove.
597 (marked_for_rewrite_p, any_marked_for_rewrite_p,
598 mark_for_rewrite, unmark_all_for_rewrite,
599 marked_ssa_names): Remove. Update all users.
600 (release_ssa_name): If VAR has been registered for SSA
601 updating, do nothing.
602 * tree-vrp.c (new_ssa_names, old_ssa_names): Remove.
603 (build_assert_expr_for): Call register_new_name_mapping.
604 (insert_range_assertions): Update call to update_ssa.
605 * tree.h (mark_for_rewrite, unmark_all_for_rewrite,
606 marked_for_rewrite_p, any_marked_for_rewrite_p,
607 marked_ssa_names): Remove.
609 2005-04-22 Jeff Law <law@redhat.com>
611 * tree-ssa-dom.c (block_defs_stack): Remove, no longer needed.
612 (restore_currdefs_to_original_value): Likewise.
613 (register_definitions_for_stmt): Likewise.
614 (tree_ssa_dominator_optimize): No longer initialize CURRENT_DEF
615 for each variable. Do not allocate/free block_defs_stack either.
616 Do not iterate if we just thread jumps. Only iterate if the
617 tree_cleanup_cfg does useful work (temporary).
618 (dom_opt_initialize_block): No longer push a marker on
620 (dom_opt_finalize_block): Removal call to restore currdefs.
621 Relax restrictions for recording edge equivalences.
622 (record_equivalences_from_phis): No longer need to track
624 (optimize_stmt): Similarly.
625 (thread_across_edge): Simplify by removing the requirement that
626 statements in the block we are threading through must be nops.
627 (initialize_hash_element): Handle GOTO_EXPR.
629 2005-04-22 David S. Miller <davem@davemloft.net>
631 * sched-vis.c (print_value): Use CONST_DOUBLE_LOW and
633 * config/sparc/sparc.c (sparc_rtx_costs): Likewise, and
634 fix check on CONST_DOUBLE mode. It should be VOIDmode
635 when it is representing an integer.
637 2005-04-22 Nathan Sidwell <nathan@codesourcery.com>
639 * builtins.c (gimplify_va_arg_expr): Reword comments to avoid
640 'abort'. Use gcc_assert and gcc_unreachable as appropriate.
641 * c-format.c (get_constant, decode_format_attr, get_flag_spec,
642 find_char_info_specifier_index,
643 find_length_info_modifier_index): Likewise.
644 * c-typeck.c (composite_type, pop_init_level): Likewise.
645 * combine.c (cant_combine_insn_p, try_combine): Likewise.
646 * cse.c (cse_insn): Likewise
647 * dominance.c (calc_dfs_tree): Likewise
648 dwarf2out.c (loc_descriptor_from_tree_1,
649 add_abstract_origin_attribute, force_decl_die,
650 force_type_die): Likewise
651 emit-rtl.c (operand_subword_force): Likewise
652 explow.c (hard_function_value): Likewise
653 expmed.c (store_bit_field, expand_divmod,
654 emit_store_flag_force): Likewise
655 expr.c (emit_move_multi_word, store_expr,
656 expand_expr_real_1): Likewise
657 final.c (this_is_asm_operands, shorten_branches, final_scan_insn,
658 output_operand): Likewise
659 flow.c (recompute_reg_usage): Likewise
660 * function.c (assign_stack_temp_for_type, assign_temp,
661 handle_epilogue_set): Likewise
662 * genextract.c (main): Likewise
663 * gimplify.c (mostly_copy_tree_r, gimplify_return_expr,
664 gimplify_modify_expr_rhs, gimplify_expr): Likewise
665 * haifa-sched.c (ready_lastpos, ready_remove_first, ready_element,
666 ready_remove, rm_line_notes, rm_other_notes,
667 schedule_block): Likewise
668 mips-tfile.c (copy_object, out_of_bounds): Likewise
670 2005-04-22 David Edelsohn <edelsohn@gnu.org>
673 * config/rs6000/default64.h (TARGET_DEFAULT): Add MASK_PPC_GFXOPT.
674 * config/rs6000/rs6000.c (processor_target_table): Rename rs64a to
675 rs64. Add MASK_PPC_GFXOPT to powerpc64 and rs64.
676 (rs6000_init_libfuncs): Set TFmode optabs to xlq names if
678 * doc/invoke.texi (PowerPC options): Change rs64a to rs64.
680 2005-04-22 Nathan Sidwell <nathan@codesourcery.com>
682 * lambda-code.c: Define VEC(int,heap), VEC(lambda_loop,heap).
683 (gcc_tree_to_linear_expression): Convert to heap allocated
685 (gcc_loop_to_lambda_loop, gcc_loopnest_to_lambda_loopnest,
686 lbv_to_gcc_expression, lle_to_gcc_expression,
687 lambda_loopnest_to_gcc_loopnest, can_convert_to_perfect_nest,
688 perfect_nestify): Likewise.
689 lambda.h (gcc_loopnest_to_lambda_loopnest,
690 lambda_loopnest_to_gcc_loopnest): Likewise.
691 tree-loop-linear.c (linear_transform_loops): Likewise.
693 2005-04-22 Eric Botcazou <ebotcazou@libertysurf.fr>
695 * config/sparc/predicates.md (arith_double_operand): Use
696 trunc_int_for_mode if HOST_BITS_PER_WIDE_INT >=64.
697 * config/sparc/sparc.md (movqi, movhi, movsi, movqi): Use gen_int_mode.
698 (DImode, DFmode constant splitters): Likewise. Remove code for
699 TARGET_ARCH64 && HOST_BITS_PER_WIDE_INT < 64.
700 (logical constant splitters): Use const_int_operand predicate.
701 (lshrsi3_extend): Remove code for TARGET_ARCH64 &&
702 HOST_BITS_PER_WIDE_INT < 64.
704 2005-04-22 Nathan Sidwell <nathan@codesourcery.com>
706 * config/pa/pa.c (legitimize_pic_address): Use gcc_assert and
707 gcc_unreachable as appropriate.
708 (force_mode, emit_move_sequence, singlemove_string,
709 output_move_double, output_fp_move_double, find_addr_reg,
710 output_block_move, output_block_clear, output_and,
711 output_64bit_and, output_ior, output_64bit_ior, store_reg_modify,
712 pa_adjust_cost, pa_issue_rate, print_operand,
713 output_global_address, output_arg_descriptor, output_cbranch,
714 output_lbranch, output_bb, output_bvb, output_dbra, output_movb,
715 output_call): Likewise.
716 * config/pa/pa.md (call, call_value, sibcall, sibcall_value,
717 prefetch, prefetch_cc, prefetch_nocc): Likewise.
719 2005-04-22 Zdenek Dvorak <dvorakz@suse.cz>
721 * Makefile.in (LIBGCOV): Add _gcov_interval_profiler,
722 _gcov_pow2_profiler and _gcov_one_value_profiler.
723 (tree-profile.o): Add GGC_H and gt-tree-profile.h dependency.
724 (GTFILES): Add $(srcdir)/tree-profile.c.
725 * gcov-io.h (__gcov_interval_profiler, __gcov_pow2_profiler,
726 __gcov_one_value_profiler): Declare.
727 * gimplify.c (force_gimple_operand): Check whether the statements
728 should be produced in ssa form.
729 (force_gimple_operand_bsi): New function.
730 * libgcov.c (__gcov_interval_profiler, __gcov_pow2_profiler,
731 __gcov_one_value_profiler): New functions.
732 * rtl-profile.c (rtl_gen_pow2_profiler): Only measure whether
733 the profiled value is a power of two or not.
734 * tree-cfg.c (tree_block_ends_with_condjump_p): Handle empty blocks.
735 * tree-flow.h (in_ssa_p): Declare.
736 (force_gimple_operand_bsi): Declare.
737 * tree-into-ssa.c (in_ssa_p): New variable.
738 (rewrite_into_ssa): Set in_ssa_p.
739 * tree-outof-ssa.c (rewrite_out_of_ssa): Set in_ssa_p.
740 * tree-profile.c: Include ggc.h and gt-tree-profile.h.
741 (gcov_type_node, tree_interval_profiler_fn, tree_pow2_profiler_fn,
742 tree_one_value_profiler_fn): New variables.
743 (tree_init_edge_profiler): Initialize the profiler function decls.
744 (tree_gen_edge_profiler): Use global gcov_type_node.
745 (prepare_instrumented_value): New function.
746 (tree_gen_interval_profiler, tree_gen_interval_profiler,
747 tree_gen_one_value_profiler): Call the library functions instead of
748 creating instrumentation code.
749 * tree.c (build_fn_decl): New function.
750 * tree.h (build_fn_decl): Declare.
751 * value-prof.c (rtl_divmod_values_to_profile,
752 rtl_find_values_to_profile, rtl_mod_pow2_value_transform,
753 tree_mod_pow2_value_transform, tree_find_values_to_profile):
754 Do not handle may_be_other and precise values of exponents at pow2
756 (tree_mod_subtract_transform): Reflect that value field of
757 histogram has changed meaning.
758 (tree_divmod_values_to_profile): Record the values correctly.
759 (tree_values_to_profile): Update comment.
760 * value-prof.h (struct histogram_value_t): Remove pow2 data.
762 2005-04-22 Joseph S. Myers <joseph@codesourcery.com>
764 * varasm.c (do_assemble_alias): Return early if TREE_ASM_WRITTEN
767 2005-04-22 Nathan Sidwell <nathan@codesourcery.com>
769 * config/i386/i386.md (length_immediate): Use gcc_assert or
770 gcc_unreachable, as appropriate.
771 (*movsi_1, *movqi_1, reload_outqi, *movdi_1_rex64, *pushsf,
772 *pushsf_rex64, *truncxfsf2_mixed, *truncxfsf2_i387,
773 *truncxfdf2_mixed, *truncxfdf2_i387, *adddi_1_rex64,
774 *adddi_2_rex64, *adddi_3_rex64, *adddi_4_rex64, *adddi_5_rex64,
775 *addsi_1, addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
776 *addsi_3_zext, *addsi_4, *addsi_5, *addhi_1_lea, *addhi_1,
777 *addhi_2, *addhi_3, *addhi_4, *addhi_5, *addqi_1_lea, *addqi_1,
778 *addqi_1_slp, *addqi_2, *addqi_3, *addqi_4, *addqi_5, addqi_ext_1,
779 *addqi_ext_1_rex64, *anddi_1_rex64, *andsi_1, *andhi_1,
780 *ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashlsi3_1, *ashlsi3_1_zext,
781 *ashlsi3_cmp, *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1,
782 *ashlhi3_cmp, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
783 pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64,
784 pro_epilogue_adjust_stack_rex64_2, prefetch, *prefetch_sse,
785 *prefetch_sse_rex): Likewise.
786 * config/i386/predicates.md (x86_64_immediate_operand,
787 x86_64_zext_immediate_operand, symbolic_operand,
788 no_seg_address_operand, aligned_operand,
789 memory_displacement_operand): Likewise.
790 * config/i386/sse.md (*mov<mode>_internal,
791 *movv2df_internal): Likewise.
793 2005-04-22 Jan Hubicka <jh@suse.cz>
795 * Makefile.in (ipa.o, ipa-inline.o): New files.
796 * cgraph.h (cgraph_remove_unreachable_nodes, cgraph_postorder,
797 cgraph_decide_inlining_incrementally, cgraph_clone_inlined_nodes,
798 cgraph_mark_inline_edge, cgraph_default_inline_p): Declare.
799 * cgraphunit.c (cgraph_default_inline_p,
800 cgraph_decide_inlining_incrementally, ncalls_inlined,
801 nfunctions_inlined, initial_insns, overall_insns,
802 cgraph_estimate_size_after_inlining, cgraph_estimate_growth,
803 cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
804 cgraph_mark_inline, cgraph_check_inline_limits,
805 cgraph_default_inline_p, cgraph_recursive_inlining_p,
806 update_callee_keys, lookup_recursive_calls,
807 cgraph_decide_recursive_inlining, cgraph_set_inline_failed,
808 cgraph_decide_inlining_of_small_functions, cgraph_decide_inlining,
809 cgraph_decide_inlining_incrementally, cgraph_gate_inlining,
810 pass_ipa_inline): Move to ipa-inline.c
811 (cgraph_postorder, cgraph_remove_unreachable_nodes): Move to ipa.c
813 * ipa-inline.c: New file.
815 2005-04-22 Eric Botcazou <ebotcazou@libertysurf.fr>
817 * doc/invoke.texi (SPARC options): Document that -mapp-regs
818 is turned off by default on Solaris.
820 2005-04-21 Roger Sayle <roger@eyesopen.com>
822 * c-common.h (objc_build_method_signature): Update prototype.
823 * stub-objc.c (objc_build_method_signature): Update the stub
824 implementation to accept and ignore additional parameter.
825 * c-parser.c (c_parser_objc_method_decl): Reorgnize to pass
826 the value of ellipsis to objc_build_method_signature instead
827 of setting TREE_OVERFLOW on the parms TREE_LIST node.
829 2005-04-21 Geoffrey Keating <geoffk@apple.com>
831 * config/rs6000/rs6000-protos.h (rs6000_emit_sync): New.
832 * config/rs6000/rs6000.c (rs6000_emit_vector_compare): Use
833 gen_rtx_* not gen_rtx_fmt_*.
834 (rs6000_emit_vector_select): Likewise.
835 (rs6000_emit_sync): New.
836 * config/rs6000/rs6000.md (GPR, INT, INT1): New mode macros.
837 (larx, stcx, cmp): New mode substitutions.
838 (UNSPEC_SYNC, UNSPEC_SYNC_OP, UNSPEC_SYNC_SWAP, UNSPEC_LWSYNC,
839 UNSPEC_ISYNC): New constants.
841 (memory_barrier, isync, lwsync): New insns.
842 (sync_compare_and_swap<mode>, sync_lock_test_and_set<mode>): New insn.
843 (sync_lock_release<mode>): New expander.
844 (sync_add<mode>, sync_sub<mode>, sync_ior<mode>, sync_and<mode>,
845 sync_xor<mode>, sync_nand<mode>, sync_old_add<mode>,
846 sync_old_sub<mode>, sync_old_ior<mode>, sync_old_and<mode>,
847 sync_old_xor<mode>, sync_old_nand<mode>, sync_new_add<mode>,
848 sync_new_sub<mode>, sync_new_ior<mode>, sync_new_and<mode>,
849 sync_new_xor<mode>, sync_new_nand<mode>): New expanders.
850 (sync_add<mode>_internal, sync_addshort_internal,
851 sync_sub<mode>_internal, sync_andsi_internal, sync_anddi_internal,
852 sync_boolsi_internal, sync_booldi_internal, sync_boolc<mode>_internal,
853 sync_boolc<mode>_internal2, sync_boolcc<mode>_internal): New insns.
855 * doc/md.texi (Standard Names): sync_compare_and_swap's operand 0
856 is the memory before, not after, the operation. Clarify
857 barrier requirements.
859 2005-04-21 Nathan Sidwell <nathan@codesourcery.com>
861 * cfghooks.h (struct cfg_hooks): Reword comments to avoid 'abort'.
862 * lambda.h (lambda_vector_min_nz): Likewise.
863 * langhooks.h (struct lang_hooks_for_types,
864 struct lang_hooks): Likewise.
865 * output.h (assemble_integer, this_is_asm_operands): Likewise.
868 * tree-flow-inline.h (relink_imm_use): Use gcc_assert.
870 * optabs.c (prepare_cmp_insn, emit_cmp_and_jump_insns): Reword
871 comments to avoid 'abort'. Use gcc_assert as necessary.
872 * opts.c (common_handle_option): Likewise.
873 * pretty-print.c (pp_base_format_text): Likewise.
874 * print-rtl.c (print_rtx): Likewise.
875 * read-rtl.c (read_rtx_filename, read_rtx_1): Likewise.
876 * regmove.c (try_auto_increment): Likewise.
877 * reload.c (find_valid_class, find_reloads_toplev,
878 find_equiv_reg): Likewise.
879 * reload1.c (reload, forget_old_reloads_1, function_invariant_p,
880 merge_assigned_reloads): Likewise.
881 * tree-inline.c (inline_forbidden_p_1,
882 estimate_num_insns_1): Likewise.
883 * tree-optimize.c (execute_todo): Likewise.
884 * tree-outof-ssa.c (eliminate_phi): Likewise.
885 * tree-ssa-alias.c (add_pointed_to_expr): Likewise.
886 * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Likewise.
887 * tree-ssa-operands.c (parse_ssa_operands,
888 get_indirect_ref_operands, create_ssa_artficial_load_stmt): Likewise.
889 * tree-ssa-pre.c (find_or_generate_expression): Likewise.
890 * tree-ssanames.c (release_ssa_name): Likewise.
891 * tree.c (int_bit_position, int_byte_position, tree_low_cst,
892 walk_tree): Likewise.
894 * tree-ssa-operands.c (verify_abort): Fold into ..
895 (verify_imm_links): ... here.
897 2005-04-21 Richard Henderson <rth@redhat.com>
899 * config/alpha/sync.md (sync_new_nand<I48MODE>): Fix constraints
900 on non-memory operand for previous inversion.
902 2005-04-21 Devang Patel <dpatel@apple.com>
904 PR optimization/20994
905 * tree-if-conv.c (find_phi_replacement_condition): Avoid generating
906 x = !(a == b) : p , q;.
907 (pass_if_conversion): Verify stmts and flow.
909 2005-04-21 Nathan Sidwell <nathan@codesourcery.com>
911 * optabs.c (gen_conditional_trap): Restore #define.
913 * alias.c (true_dependence): Remove 'abort' from comments. Use
914 gcc_assert and gcc_unreachable as appropriate.
915 (canon_true_dependence): Likewise.
916 * bb-reorder.c (connect_traces): Likewise.
917 * c-common.c (c_add_case_label): Likewise.
918 * c-decl.c (finish_function): Likewise.
919 * caller-save.c (insert_restore, insert_save): Likewise.
920 * cfg.c (update_bb_profile_for_threading): Likewise.
921 * cfganal.c (flow_active_insn_p): Likewise.
922 * cfgexpand.c (add_reg_br_prob_note): Likewise.
923 * cfgrtl.c (rtl_redirect_edge_and_branch_force, rtl_split_edge,
924 cfg_layout_merge_blocks): Likewise.
925 * ifcvt.c (cond_exec_process_insns, merge_if_block,
926 find_if_block): Likewise.
927 * integrate.c (allocate_initial_values): Likewise.
928 * jump.c (reverse_condition, reverse_condition_maybe_unordered,
929 swap_condition, unsigned_condition, signed_condition,
930 mark_jump_label, invert_jump_1, rtx_renumbered_equal_p,
931 reg_or_subregno): Likewise.
932 * lambda-code.c (lambda_compute_auxillary_space,
933 lambda_transform_legal_p): Likewise.
934 * lambda-mat.c (lambda_matrix_inverse_hard): Likewise.
935 * langhooks.c (lhd_set_decl_assembler_name, lhd_type_promotes_to,
936 lhd_incomplete_type_error, lhd_expand_expr,
937 lhd_types_compatible_p, lhd_tree_size): Likewise.
938 * lcm.c (create_pre_exit, optimize_mode_switching): Likewise.
939 * local-alloc.c (update_equiv_regs): Likewise.
940 * loop-unroll.c (peel_loop_completely
941 unroll_loop_constant_iterations, unroll_loop_runtime_iterations,
942 peel_loop_simple, unroll_loop_stupid,
943 analyze_iv_to_split_insn): Likewise.
944 * loop.c (gen_prefetch, find_and_verify_loops,
945 basic_induction_var): Likewise.
946 * modulo-sched.c (normalize_sched_times, check_nodes_order): Likewise.
947 * value-prof.c (tree_find_values_to_profile): Likewise.
948 * varasm.c (named_section, default_assemble_integer,
949 decode_addr_const): Likewise.
951 2005-04-21 Alan Modra <amodra@bigpond.net.au>
952 Fariborz Jahanian <fjahanian@apple.com>
954 * config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Fix size of
955 portion of argument passed in fpr.
956 * expr.c (emit_push_insn): Fix computation of 'offset' used to
957 decide on partial argument save on stack.
959 2005-04-21 Kazu Hirata <kazu@cs.umass.edu>
961 * config/sparc/predicates.md, config/sparc/sparc.md: Fix
964 2005-04-21 Jan Hubicka <jh@suse.cz>
966 * cgraphunit.c: Include tree-pass.h
967 (cgraph_decide_recursive_inlining,
968 cgraph_decide_inlining_of_small_function, cgraph_set_inline_failed,
969 cgraph_decide_inlining): Dump goes to dump_file.
970 (cgraph_optimize): Call ipa passes instead of inliner.
971 (cgraph_gate_inlining, pass_ipa_inline): New.
972 * tree-optimize.c (all_ipa_passes): New static variable.
973 (register_one_dump_file): Dead with IPA passes.
974 (register_dump_files): Likewise.
975 (init_tree_optimization_passes): Initialize IPA passes.
976 (execute_todo): Do cgraph dump when asked to, do not dump function body
978 * tree-pass.h (TODO_dump_cgraph): New macro.
979 (ipa_passes): Declare.
980 * Makefile.in (cgraphunit.o): Add dependency on cgraphunit.h
982 2005-04-21 Nathan Sidwell <nathan@codesourcery.com>
984 * config/i386/i386.c (type_natural_mode): Use gcc_unreachable and
985 gcc_assert instead of abort.
986 (classify_argument, examine_argument, construct_container,
987 contains_128bit_aligned_vector_p, ix86_check_movabs,
988 standard_80387_constant_opcode, standard_80387_constant_rtx,
989 ix86_initial_elimination_offset, ix86_compute_frame_layout,
990 pro_epilogue_adjust_stack, ix86_expand_epilogue,
991 ix86_address_cost, legitimate_address_p, legitimize_pic_address,
992 legitimize_tls_address, output_pic_addr_const,
993 i386_output_dwarf_dtprel, put_condition_code, print_reg,
994 get_some_local_dynamic_name, print_operand, print_operand_address,
995 output_387_binary_op, emit_i387_cw_initialization,
996 output_fix_trunc, output_fp_compare, ix86_output_addr_vec_elt,
997 ix86_expand_clear, ix86_expand_binary_operator,
998 ix86_expand_unary_operator, ix86_match_ccmode, ix86_cc_mode,
999 ix86_cc_modes_compatible, ix86_fp_comparison_codes,
1000 ix86_fp_comparison_arithmetics_cost, ix86_expand_fp_compare,
1001 ix86_expand_branch, ix86_expand_setcc,
1002 ix86_expand_carry_flag_compare, ix86_expand_fp_movcc,
1003 ix86_expand_int_addcc, ix86_split_to_parts, ix86_split_long_move,
1004 ix86_expand_movmem, ix86_expand_call, assign_386_stack_local,
1005 memory_address_length, ix86_attr_length_immediate_default,
1006 ix86_attr_length_address_default, ix86_agi_dependant,
1007 x86_initialize_trampoline, ix86_init_mmx_sse_builtins,
1008 ix86_expand_binop_builtin, ix86_force_to_memory,
1009 ix86_secondary_memory_needed, ix86_avoid_jump_misspredicts,
1010 x86_emit_floatuns): Likewise.
1011 * config/i386/netware.c (gen_regparm_prefix,
1012 i386_nlm_strip_name_encoding): Likewise.
1013 * config/i386/winnt.c (i386_pe_mark_dllexport): Likewise.
1015 2005-04-21 Nathan Sidwell <nathan@codesourcery.com>
1017 * optabs.c (gen_condiational_trap): Remove #define.
1018 (add_equal_note): Assertify. Remove explicit indirection from
1019 call via function pointer.
1020 (expand_ternary_op, expand_simple_binop, expand_binop,
1021 expand_twoval_unop, expand_twoval_binop,
1022 expand_twoval_binop_libfunc, expand_simple_unop expand_unop,
1023 emit_unop_insn, emit_no_conflict_block, prepare_cmp_insn,
1024 prepare_operand emit_cmp_and_jump_insn_1, emit_cmp_and_jump_insns,
1025 prepare_float_lib_cmp, emit_conditional_move,
1026 emit_conditional_add, gen_add2_insn, gen_add3_insn,
1027 have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn,
1028 expand_float, expand_fix, debug_optab_libfuncs, gen_cond_trap,
1029 vector_compare_rtx, expand_vec_cond_expr): Likewise.
1031 2005-04-21 Nathan Sidwell <nathan@codesourcery.com>
1033 * vec.h: Update API to separate allocation mechanism from type.
1034 (VEC_safe_grow): New.
1035 * vec.c (calculate_allocation): New.
1036 (vec_gc_o_reserve, vec_heap_o_reserve): Adjust.
1037 (vec_gc_free, vec_heap_free): Remove.
1038 * gengtype-lex.l (DEF_VEC_): Process mult-argument macros. Adjust.
1040 (mangle_macro_name): New.
1041 (struct macro_def): New.
1042 (struct macro): Add multiple argument values.
1043 (macro_expans_end): New.
1044 (push_macro_expansion): Chain on new macro. Process multiple
1045 args, create follow on expansion. Return follow on argument.
1046 (macro_input): Deal with multiple arguments.
1048 * tree.h: Define VEC(tree,heap) and VEC(tree,gc).
1049 (struct tree_binfo): Adjust.
1050 * basic-block.h: Define VEC(edge,gc).
1051 (struct edge_def): Adjust.
1052 (struct basic_block_def, struct edge_iterator): Likewise.
1053 (ei_container, ei_start_1, ei_last_1): Likewise.
1054 * cfg.c (connect_src, connect_dest): Likewise.
1055 * cfgrtl.c (force_nonfallthru_and_redirect)
1056 * dbxout.c (dbxout_type)
1057 * dwarf2out.c (gen_member_die)
1058 * lambda-code.c: Define VEC(int,gc), VEC(lambda_loop,gc).
1059 (gcc_tree_to_linear_expression): Adjust.
1060 (gcc_loop_to_lambda_loop, gcc_loopnest_to_lambda_loopnest,
1061 lbv_to_gcc_expression, lle_to_gcc_expression,
1062 lambda_loopnest_to_gcc_loopnest, can_convert_to_perfect_nest,
1063 perfect_nestify): Likewise.
1064 * lambda.h (gcc_loopnest_to_lambda_loopnest,
1065 lambda_loopnest_to_gcc_loopnest): Adjust prototypes.
1066 * profile.c (instrument_values): Adjust.
1067 * tree-cfg.c (modified_noreturn_calls): Adjust.
1068 (remove_fallthru_edge): Likewise.
1069 * tree-dump.c (dequeue_and_dump): Adjust.
1070 * tree-flow-inline.h (mark_stmt_modified): Adjust.
1071 * tree-flow.h (modified_noreturn_calls): Adjust.
1072 (tree_on_heap): Remove. (yay!)
1073 (register_new_def): Adjust.
1074 * tree-into-ssa.c: Define VEC(int,heap).
1075 (block_defs_stack): Adjust.
1076 (find_idf, insert_phi_nodes, register_new_def,
1077 rewrite_initialize_block, rewrite_finalize_block,
1078 register_new_update_single, rewrite_update_init_block,
1079 rewrite_update_fini_block, rewrite_blocks,
1080 ssa_rewrite_finalize_block, ssa_register_new_def,
1081 ssa_rewrite_initialize_block, rewrite_ssa_into_ssa): Likewise.
1082 * tree-loop-linear.c (linear_transform_loops): Adjust.
1083 * tree-ssa-alias.c: Define VEC(fieldoff_t,heap).
1084 (push_fields_onto_fieldstack, create_overlap_variables_for): Adjust.
1085 * tree-ssa-dom.c (avail_exprs_stack, block_defs_stack,
1086 stmts_to_rescan, const_and_copies_stack, nonzero_vars_stack,
1087 vrp_variables_stack): Adjust declarations.
1088 (tree_ssa_dominator_optimize): Adjust.
1089 (dom_opt_initialize_block, remove_local_expressions_from_table,
1090 restore_nonzero_vars_to_original_value,
1091 restore_vars_to_original_value,
1092 restore_currdefs_to_original_value, dom_opt_finalize_block,
1093 record_var_is_nonzero, record_cond, record_const_or_copy_1,
1094 optimize_stmt, update_rhs_and_lookup_avail_expr,
1095 lookup_avail_expr, record_range): Likewise.
1096 * tree-ssa-pre.c: Define VEC(basic_block,heap).
1097 (compute_antic_aux): Adjust.
1098 (inserted_exprs, create_expression_by_pieces,
1099 insert_into_preds_of_block, eliminate, mark_operand_necessary,
1100 remove_dead_inserted_code, fini_pre): Likewise.
1101 * tree-ssa-propagate.c (interesting_ssa_edges): Adjust.
1102 (varying_ssa_edges, add_ssa_edge, process_ssa_edge_worklist.
1103 ssa_prop_init): Likewise.
1104 * tree-ssa.c: Define VEC(bitmap,heap).
1105 (verify_name_tags): Adjust.
1106 * value-prof.c (rtl_divmod_values_to_profile): Adjust.
1107 (insn_prefetch_values_to_profile, rtl_find_values_to_profile,
1108 tree_divmod_values_to_profile, tree_find_values_to_profile,
1109 value_profile_transformations): Likewise.
1110 * value-prof.h: Define VEC(histogram_value,heap).
1111 * varasm.c: Remove alias_pair pointer typedef, define
1113 (finish_aliases_1, finish_aliases_2, assemble_alias): Adjust.
1115 * config/pa/pa.c (typedef extern_symbol): Typedef the structure,
1116 not a pointer to it. Create an object vector.
1117 (extern_symbols): Turn into an object vector.
1118 (pa_hpux_asm_output_external, pa_hpux_file_end): Adjust.
1120 2005-04-21 Sebastian Pop <pop@cri.ensmp.fr>
1123 * Makefile.in (tree-chrec.o): Depend on params.h.
1124 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): New parameter with
1126 * tree-chrec.c: Depend on params.h. Replace build with buildN,
1127 and fold build with fold_buildN.
1128 (chrec_fold_plus_1): Fail with a chrec_don_know when the size of
1129 the expression exceeds PARAM_SCEV_MAX_EXPR_SIZE.
1130 (tree_contains_chrecs): Compute an estimation of the size of the
1132 * tree-chrec.h (tree_contains_chrecs): Modify its declaration.
1133 (tree_does_not_contain_chrecs): Update the use of tree_contains_chrecs.
1134 * tree-scalar-evolution.c (simple_iv): Ditto.
1135 * doc/invoke.texi (scev-max-expr-size): Documented.
1137 2005-04-21 Richard Sandiford <rsandifo@redhat.com>
1139 * config.gcc (*-*-darwin*): Add darwin.opt to $extra_options.
1140 (i[34567]86-pc-msdosdjgpp*): Likewise i386/djgpp.opt.
1141 (i[34567]86-*-lynxos*, powerpc-*-lynxos*): Likewise lynx.opt.
1142 (i[34567]86-*-sco3.2v5*): Likewise i386/sco5.opt.
1143 (i[34567]86-*-pe, i[34567]86-*-cygwin*, i[34567]86-*-mingw32*)
1144 (i[34567]86-*-uwin*): Likewise i386/cygming.opt.
1145 * config/darwin.h (darwin_one_byte_bool, darwin_fix_and_continue)
1146 (darwin_fix_and_continue_switch, SUBTARGET_OPTIONS): Delete.
1147 * config/darwin.c (darwin_one_byte_bool, darwin_fix_and_continue)
1148 (darwin_fix_and_continue_switch): Delete.
1149 * config/lynx.h (SUBTARGET_OS_LYNX_SWITCHES): Delete.
1150 (SUBTARGET_SWITCHES): Delete.
1151 * config/i386/i386.h (target_flags, MASK_80387, MASK_RTD)
1152 (MASK_ALIGN_DOUBLE, MASK_SVR3_SHLIB, MASK_IEEE_FP, MASK_FLOAT_RETURNS)
1153 (MASK_NO_FANCY_MATH_387, MASK_OMIT_LEAF_FRAME_POINTER)
1154 (MASK_STACK_PROBE, MASK_NO_ALIGN_STROPS, MASK_INLINE_ALL_STROPS)
1155 (MASK_NO_PUSH_ARGS, MASK_ACCUMULATE_OUTGOING_ARGS, MASK_MMX)
1156 (MASK_SSE, MASK_SSE2, MASK_SSE3, MASK_3DNOW, MASK_3DNOW_A)
1157 (MASK_128BIT_LONG_DOUBLE, MASK_64BIT, MASK_MS_BITFIELD_LAYOUT)
1158 (MASK_TLS_DIRECT_SEG_REFS, MASK_NO_RED_ZONE, TARGET_80387)
1159 (TARGET_RTD, TARGET_ALIGN_DOUBLE, TARGET_PUSH_ARGS)
1160 (TARGET_ACCUMULATE_OUTGOING_ARGS, TARGET_SVR3_SHLIB, TARGET_IEEE_FP)
1161 (TARGET_128BIT_LONG_DOUBLE, TARGET_NO_FANCY_MATH_387)
1162 (TARGET_USE_FANCY_MATH_387, TARGET_OMIT_LEAF_FRAME_POINTER)
1163 (TARGET_DEBUG_ADDR, TARGET_DEBUG_ARG): Delete.
1164 (TARGET_FLOAT_RETURNS_IN_80387): Make an alias of TARGET_FLOAT_RETURNS.
1165 (TARGET_64BIT): Undef before redefining.
1166 (TARGET_TLS_DIRECT_SEG_REFS, TARGET_STACK_PROBE)
1167 (TARGET_ALIGN_STRINGOPS, TARGET_INLINE_ALL_STRINGOPS, TARGET_SSE)
1168 (TARGET_SSE2, TARGET_SSE3, TARGET_MMX, TARGET_3DNOW, TARGET_3DNOW_A)
1169 (TARGET_RED_ZONE, TARGET_USE_MS_BITFIELD_LAYOUT, TARGET_SWITCHES)
1170 (TARGET_OPTIONS, SUBTARGET_SWITCHES, SUBTARGET_OPTIONS)
1171 (ix86_fpmath_string, ix86_tls_dialect_string, ix86_cmodel_string)
1172 (ix86_asm_string, ix86_regparm, ix86_regparm_string)
1173 (ix86_preferred_stack_boundary_string, ix86_branch_cost_string)
1174 (ix86_debug_arg_string, ix86_debug_addr_string)
1175 (ix86_align_loops_string, ix86_align_jumps_string)
1176 (ix86_align_funcs_string): Delete.
1177 * config/i386/cygming.h (MASK_NOP_FUN_DLLIMPORT)
1178 (TARGET_NOP_FUN_DLLIMPORT, SUBTARGET_SWITCHES): Delete.
1179 * config/i386/djgpp.h (MASK_BNU210, SUBTARGET_SWITCHES): Delete.
1180 (SUBTARGET_OVERRIDE_OPTIONS): Check TARGET_BNU210.
1181 * config/i386/lynx.h (SUBTARGET_SWITCHES): Delete.
1182 * config/i386/sco5.h (MASK_COFF, TARGET_ELF)
1183 (SUBTARGET_SWITCHES): Delete.
1184 * config/i386/i386.c (ix86_debug_arg_string): Delete.
1185 (ix86_debug_addr_string): Delete.
1186 (ix86_cmodel_string, ix86_asm_string, ix86_tls_dialect_string)
1187 (ix86_fpmath_string, ix86_regparm_string, ix86_regparm)
1188 (ix86_align_loops_string, ix86_align_jumps_string)
1189 (ix86_preferred_stack_boundary_string, ix86_branch_cost_string)
1190 (ix86_align_funcs_string): Make static.
1191 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
1192 (ix86_handle_option): New function.
1193 (TARGET_USE_MS_BITFIELD_LAYOUT): Delete.
1194 (ix86_ms_bitfield_layout_p): Check TARGET_MS_BITFIELD_LAYOUT.
1195 * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Remove handling
1196 of darwin_fix_and_continue_switch.
1197 (darwin_one_byte_bool): Delete.
1198 * config/rs6000/lynx.h (EXTRA_SUBTARGET_SWITCHES): Delete.
1199 * config/rs6000/rs6000.c (rs6000_override_options): Update assignment
1200 to darwin_one_byte_bool.
1201 * config/darwin.opt, config/lynx.opt, config/i386/cygming.opt,
1202 * config/i386/djgpp.opt, config/i386/i386.opt,
1203 * config/i386/sco5.opt: New files.
1205 2005-04-21 Eric Botcazou <ebotcazou@libertysurf.fr>
1207 * config/sparc/sparc.c (reg_or_0_operand, const1_operand,
1208 fp_zero_operand, fp_register_operand, intreg_operand,
1209 fcc_reg_operand, fcc0_reg_operand, icc_or_fcc_reg_operand,
1210 call_operand, call_operand_address, tgd_symbolic_operand,
1211 tld_symbolic_operand, tie_symbolic_operand, tle_symbolic_operand,
1212 symbolic_operand, symbolic_memory_operand, label_ref_operand,
1213 sp64_medium_pic_operand, data_segment_operand,
1214 text_segment_operand, splittable_symbolic_memory_operand,
1215 reg_or_nonsymb_mem_operand, splittable_immediate_memory_operand,
1216 eq_or_neq, normal_comp_operator, noov_compare_op,
1217 noov_compare64_op, v9_regcmp_op, extend_op, cc_arithop,
1218 cc_arithopn, arith_operand, arith_4096_operand, arith_add_operand,
1219 const64_operand, const64_high_operand, arith11_operand,
1220 arith10_operand, arith_double_operand, arith_double_4096_operand,
1221 arith_double_add_operand, arith11_double_operand,
1222 arith10_double_operand, small_int, small_int_or_double,
1223 uns_small_int, uns_arith_operand, clobbered_register,
1224 input_operand, compare_operand): Delete.
1225 (sparc_emit_set_const32): Use predicates in assertion. Remove special
1226 code for TARGET_ARCH64 && HOST_BITS_PER_WIDE_INT != 64.
1227 (sparc_emit_set_const64): Call gcc_unreachable if H_B_P_W_I == 32.
1228 (GEN_HIGHINT64, GEN_INT64): Delete.
1229 (sparc_emit_set_safe_HIGH64, gen_safe_SET64, gen_safe_OR64,
1230 gen_safe_XOR64): Adjust for above deletion.
1231 (sparc_emit_set_const64): Support only H_B_P_W_I == 64 and CONST_INTs.
1232 Use 'unsigned HOST_WIDE_INT' instead of 'long' for bitmask.
1233 (legitimate_constant_p): Use const_zero_operand instead.
1234 (sparc_extra_constraint_check): Likewise.
1235 * config/sparc/sparc.h (CONST_DOUBLE_OK_FOR_LETTER_P): Remove 'O'.
1236 (PREFERRED_RELOAD_CLASS): Use const_zero_operand.
1237 (PREDICATE_CODES): Delete.
1238 * config/sparc/sparc.md: Include predicates.md.
1239 (All patterns): Adjust for new predicate names.
1240 (cmpdi, cmpdi_sp64): Use arith_operand predicate.
1241 (movhi_const64_special, movsi_const64_special): Add 'K' constraint.
1242 (movdi): Use general_operand predicate.
1243 (movdi_sp64_dbl): Delete.
1244 (movdi_const64_special): Add 'N' constraint.
1245 (movdicc): Use arith10_operand predicate.
1246 (movdi_cc_sp64, movdi_cc_sp64_trunc): Use arith11_operand predicate.
1247 (movdi_cc_reg_sp64): Use arith10_operand predicate.
1248 (movdi_cc_reg_sp64_trunc): Delete.
1249 (cmp_zero_extract, cmp_zero_extract_sp64): Use small_int_operand.
1250 (adddi3_sp64, cmp_ccx_plus, cmp_ccx_plus_set): Use arith_operand.
1251 (subdi3_sp32): Delete.
1252 (subdi3_insn_sp32): Change to define_insn_and_split.
1253 (subdi3_sp64, cmp_minus_ccx, cmp_minus_ccx_set): Use arith_operand.
1254 (muldi3, muldi3_sp64, muldi3_v8plus): Likewise.
1255 (smulsi3_highpart_v8plus, const_smulsi3_highpart_v8plus,
1256 umulsi3_highpart_v8plus, const_umulsi3_highpart_v8plus): Use
1257 small_int_operand predicate.
1258 (divdi3, udivdi3): Use arith_operand predicate.
1259 (udivsi3, udivsi3_sp32, udivsi3_sp64): Use nonimmediate_operand.
1260 (and<V64I>3_sp64, ior<V64I>3_sp64, xor<V64I:mode>3_sp64,
1261 xor_not_<V64I:mode>_sp64) : Use arith_operand predicate.
1262 (xordi3_sp64_dbl): Delete.
1263 (cmp_ccx_arith_op, cmp_ccx_arith_op_set, cmp_ccx_xor_not,
1264 cmp_ccx_xor_not_set, cmp_ccx_arith_op_not, cmp_ccx_arith_op_not_set,
1265 cmp_ccx_neg, cmp_ccx_set_neg, one_cmpl<V64I>2_sp64, cmp_ccx_not,
1266 cmp_ccx_set_not): Use arith_operand predicate.
1267 (ashrsi3_extend2, lshrsi3_extend2 et al.): Use small_int_operand.
1268 * config/sparc/predicates.md: New file.
1270 2005-04-21 Kazu Hirata <kazu@cs.umass.edu>
1272 PR tree-optimization/14846
1273 * fold-const.c (fold_single_bit_test_into_sign_test): New,
1275 (fold_single_bit_test): ... here.
1276 (fold_binary): Call fold_single_bit_test_into_sign_test
1277 instead of fold_single_bit_test.
1279 2005-04-20 James E Wilson <wilson@specifixinc.com>
1282 * dwarf2out.c (gen_variable_die): Don't emit a specification if this
1283 is another declaration.
1285 2005-04-21 Hans-Peter Nilsson <hp@axis.com>
1287 * config/cris/predicates.md: New file.
1288 * config/cris/cris-protos.h (cris_store_multiple_op_p)
1289 (cris_movem_load_rest_p): Declare.
1290 * config/cris/cris.c (cris_store_multiple_op): Return bool, not int.
1291 (cris_movem_load_rest_p): Ditto. Globalize.
1292 (cris_bdap_operand, cris_bdap_biap_operand,
1293 cris_orthogonal_operator, cris_commutative_orth_op,
1294 cris_operand_extend_operator,
1295 cris_additive_operand_extend_operator, cris_extend_operator,
1296 cris_plus_or_bound_operator, cris_mem_op,
1297 cris_general_operand_or_symbol,
1298 cris_general_operand_or_gotless_symbol,
1299 cris_general_operand_or_plt_symbol, cris_mem_call_operand,
1300 cris_load_multiple_op): Remove predicate functions.
1301 (cris_symbol, cris_gotless_symbol) <case UNSPEC>: Return 0, don't
1302 abort, for UNSPECs other than CRIS_UNSPEC_PLT.
1303 * config/cris/cris.h (PREDICATE_CODES): Don't define.
1304 * config/cris/cris.md: Include predicates.md.
1305 ("call", "call_value"): Generate CONSTs of Pmode, not VOIDmode.
1307 2005-04-20 Ian Lance Taylor <ian@airs.com>
1309 * c-common.def: Remove STMT_EXPR (moved to cp/cp-tree.def).
1310 * c-common.h (STMT_EXPR_STMT): Don't define.
1311 (STMT_EXPR_NO_SCOPE): Don't define.
1312 * c-dump.c (c_dump_tree): Don't handle STMT_EXPR.
1313 * c-pretty-print.c (pp_c_primary_expression): Likewise.
1314 (pp_c_expression): Likewise.
1316 2005-04-20 Richard Henderson <rth@redhat.com>
1319 * config/i386/mmx.md (push<MMXMODE>1): Fix predicate thinko.
1321 2005-04-20 Jeff Law <law@redhat.com>
1323 * reload1.c (reload): Ignore equivalences between pseudos and
1326 2005-04-20 Joseph S. Myers <joseph@codesourcery.com>
1329 * c-tree.h (struct c_label_list): Update comment.
1330 (struct c_label_context): Rename to struct c_label_context_se.
1331 (label_context_stack): Rename to label_context_stack_se.
1332 (C_DECL_UNJUMPABLE_VM, C_DECL_UNDEFINABLE_VM, struct
1333 c_label_context_vm, label_context_stack_vm, c_begin_vm_scope,
1334 c_end_vm_scope): New.
1335 (C_DECL_DECLARED_BUILTIN, C_DECL_USED): Use FUNCTION_DECL_CHECK.
1336 * c-decl.c (pop_scope): Call c_end_vm_scope.
1337 (pushdecl): Call c_begin_vm_scope for variably modified
1339 (define_label): Check for jumping into scope of identifier with
1340 variably modified type. Push label on stack for those defined at
1341 current context of identifiers with variably modified type.
1342 (start_function): Create stack level for context of identifiers
1343 with variably modified type.
1344 (finish_function): Pop stack level for context of identifiers with
1345 variably modified type.
1346 * c-typeck.c (label_context_stack): Rename to
1347 label_context_stack_se.
1348 (label_context_stack_vm, c_begin_vm_scope, c_end_vm_scope): New.
1349 (c_finish_goto_label): Check for jumping into scope of identifier
1350 with variably modified type. Push label on stack for those jumped
1351 to from current context of identifiers with variably modified
1353 (struct c_switch): Add blocked_vm.
1354 (c_start_case): Initialize blocked_vm.
1355 (do_case): Check blocked_vm.
1356 (c_finish_case): Add comment.
1357 (c_begin_stmt_expr, c_finish_stmt_expr): Update for renamed
1358 variable label_context_stack.
1360 2005-04-20 Kazu Hirata <kazu@cs.umass.edu>
1362 * tree-ssa-phiopt.c (tree_ssa_phi_opt): Update calls to
1363 conditional_replacement, value_replacement, abs_replacement,
1365 (replace_phi_edge_with_variable): Remove argument BB.
1366 (conditional_replacement, value_replacement,
1367 minmax_replacement, abs_replacement): Remove argument PHI_BB.
1368 Update a call to replace_phi_edge_with_variable.
1370 * tree-ssa-phiopt.c: Fix comments.
1372 2005-04-20 Michael Matz <matz@suse.de>
1375 * reload.c (push_reload, find_dummy_reload): Check for uninitialized
1378 2005-04-20 Kazu Hirata <kazu@cs.umass.edu>
1380 * tree-ssa-phiopt.c: Fix comment typos.
1382 PR tree-optimization/21116
1383 * tree-ssa-phiopt.c: Fix a typo.
1385 2005-04-19 Richard Henderson <rth@redhat.com>
1387 * builtins.c (expand_builtin_sync_operation): Revert last change.
1388 * optabs.c (expand_bool_compare_and_swap): Compare vs old value,
1390 (expand_compare_and_swap_loop): Likewise.
1391 (expand_sync_operation): Remove fallback from NAND to AND; invert
1392 memory operand when expanding from cmpxchg.
1393 (expand_sync_fetch_operation): Likewise.
1394 * doc/extend.texi (Atomic Builtins): Fix docs for nand and
1397 * config/alpha/alpha.c (alpha_split_atomic_op): Invert memory operand
1398 when implementing NAND. Fix double-add for AFTER.
1399 * config/alpha/sync.md (sync_nand<I48MODE>): Invert memory operand.
1400 (sync_old_nand<I48MODE>, sync_new_nand<I48MODE>): Likewise.
1401 (sync_compare_and_swap<I48MODE>): Fix compare vs zero. Return old
1403 (sync_lock_test_and_set<I48MODE>): Remove extra label and last
1406 * config/i386/sync.md (sync_compare_and_swap<IMODE>): Fix pattern
1407 to return old memory value.
1408 (sync_compare_and_swap_cc<IMODE>): Likewise.
1410 * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Early
1411 return pre-reload. Don't consider output or anti dependencies.
1412 * config/ia64/sync.md (IMODE): New.
1413 (modesuffix): Add QI and HI.
1414 (memory_barrier): Simplify expansion.
1415 (sync_compare_and_swap<IMODE>): Use IMODE, not I48MODE.
1416 (cmpxchg_acq_<IMODE>): Likewise.
1417 (sync_lock_test_and_set<IMODE>): Likewise.
1418 (sync_lock_release<IMODE>): Likewise.
1420 2005-04-19 James A. Morrison <phython@gcc.gnu.org>
1422 * fold-const.c (fold_binary): Fold ~(X ^ Y) to ~X ^ Y or X ^ ~Y if
1425 2005-04-19 James A. Morrison <phython@gcc.gnu.org>
1427 * fold-const (fold_binary): Fold ~X ^ ~ Y to X ^ Y.
1429 2005-04-20 Michael Pogue <michael.pogue@sun.com>
1430 Joseph S. Myers <joseph@codesourcery.com>
1432 * c.opt (Wint-to-pointer-cast, Wpointer-to-int-cast): New options.
1433 * c-typeck.c (build_c_cast): Check these options.
1434 * doc/invoke.texi: Document these options.
1436 2005-04-20 Kazu Hirata <kazu@cs.umass.edu>
1438 * tree-ssa-phiopt.c: Update a comment about the pass.
1440 2005-04-19 Kazu Hirata <kazu@cs.umass.edu>
1442 * tree-ssa-phiopt.c, config/arm/arm.c, config/fr30/fr30.md,
1443 config/mcore/mcore.c: Fix comment typos.
1445 2005-04-19 Daniel Jacobowitz <dan@codesourcery.com>
1447 * Makefile.in (libgcc.mk): Pass GCC_FOR_TARGET.
1448 * mklibgcc.in: Use $GCC_FOR_TARGET instead of ./xgcc.
1450 2005-04-19 Paul Brook <paul@codesourcery.com>
1452 * config/arm/arm.c (arm_init_libfuncs): Clear mod optabs.
1454 2005-04-19 Andrew Haley <aph@redhat.com>
1457 * dbxout.c (dbxout_type_fields): Check DECL_IGNORED_P before
1458 looking at a field's bitpos.
1460 2005-04-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1462 * system.h (fopen, fdopen, freopen): Define these to the unlocked
1463 libiberty functions.
1465 2005-04-19 Kazu Hirata <kazu@cs.umass.edu>
1467 PR tree-optimization/21096
1468 * tree-ssa-copy.c (fini_copy_prop): Free cached_last_copy_of.
1470 2005-04-19 Alan Modra <amodra@bigpond.net.au>
1473 * config/rs6000/rs6000.c (rs6000_elf_end_indicate_exec_stack): New.
1474 * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Use the above.
1476 2005-04-19 Alexandre Oliva <aoliva@redhat.com>
1478 * tree-cfg.c (dump_function_to_file): Use cfun info only if it
1479 refers to the function being dumped.
1481 2005-04-18 Daniel Jacobowitz <dan@codesourcery.com>
1483 * varasm.c (assemble_start_function): Remove reset of in_section.
1485 2005-04-18 James A. Morrison <phython@gcc.gnu.org>
1487 PR tree-optimization/21085
1488 * fold-const (fold_binary): Don't change X % -C to X % C if C has
1491 2005-04-19 Ben Elliston <bje@au.ibm.com>
1493 * doc/invoke.texi (Optimize Options): Refer to the correct
1494 optimisation flag -ftree-dominator-opts, not -ftree-dom.
1496 2005-04-18 Christopher Jaillet <christophe.jaillet@wanadoo.fr>
1498 * config/rs6000/rs6000.c (machopic_output_stub): Increase
1499 alloca argument to be big enough.
1501 2005-04-18 Alexandre Oliva <aoliva@redhat.com>
1504 * tree-cfg.c (dump_function_to_file): Do not crash if cfun or
1507 2005-04-18 Tom Tromey <tromey@redhat.com>
1509 * cgraphunit.c (cgraph_finalize_compilation_unit): Fix a comment
1512 2005-04-18 Richard Henderson <rth@redhat.com>
1514 * config/alpha/alpha.c (alpha_split_atomic_op): New.
1515 (alphaev5_insn_pipe): Add LD_L, ST_C, MB types.
1516 (alphaev4_insn_pipe): Likewise. Correct IST and LDSYM pipes.
1517 * config/alpha/alpha-protos.h: Update.
1518 * config/alpha/alpha.md (UNSPECV_MB, UNSPECV_LL, UNSPECV_SC): New.
1519 (UNSPECV_ATOMIC, UNSPECV_CMPXCHG, UNSPECV_XCHG): New.
1520 (attr type): Add ld_l, st_c, mb.
1521 (andsi_internal, andnotsi3, iorsi_internal, one_cmplsi_internal,
1522 iornotsi3, xorsi_internal, xornotsi3): New.
1523 * config/alpha/ev4.md (ev4_ld): Add ld_l.
1524 (ev4_ist_c, ev4_mb): New.
1525 * config/alpha/ev5.md (ev5_st): Add st_c, mb.
1527 * config/alpha/ev6.md (ev6_ild): Add ld_l.
1528 (ev6_ist): Add st_c.
1530 * config/alpha/sync.md: New file.
1532 2005-04-18 Richard Henderson <rth@redhat.com>
1534 * builtins.c (expand_builtin_sync_operation): Fold nand to and
1537 * optabs.c (expand_sync_operation): Fix typo expanding nand to and.
1539 2005-04-18 Devang Patel <dpatel@apple.com>
1541 * config/rs6000/atlivec.md (mulv4si3): New pattern.
1543 2005-04-18 James A. Morrison <phython@gcc.gnu.org>
1545 PR tree-optimization/20922
1546 * fold-const.c (fold_binary): Fold X - c > X and X + c < X to false.
1547 Fold X + c >= X and fold X - c <= X to true.
1549 2005-04-18 James A. Morrison <phython@gcc.gnu.org>
1551 * config/ia64/unwind-ia64.c (emergency_reg_state_free): Make an
1553 (emergency_labeled_state_free): Likewise.
1555 2005-04-18 Nick Clifton <nickc@redhat.com>
1557 * config/h8300/h8300.md (jump): Remove prescan parameter from
1558 calls to final_scan_insn.
1560 * config/arc/arc.c (arc_output_function_epilogue): Remove prescan
1561 parameter from calls to final_scan_insn.
1563 * config.gcc (m68hc12): Use the m68hc11.opt file for target
1565 (v850e, v850e1): Use the v850.opt file for target specific
1568 2005-04-18 Kazu Hirata <kazu@cs.umass.edu>
1570 PR tree-optimization/21001
1571 * tree-optimize.c (init_tree_optimization_passes): Move the
1572 first pass_forwprop immediately before pass_vrp.
1574 2005-04-17 Ian Lance Taylor <ian@airs.com>
1576 * c-common.def (SIZEOF_EXPR, ARROW_EXPR, ALIGNOF_EXPR): Remove.
1577 * c-common.c (c_sizeof_or_alignof_type): Change second parameter
1578 from enum tree_code op to bool is_sizeof.
1579 * c-common.h (c_sizeof_or_alignof_type): Update declaration.
1580 (c_sizeof, c_alignof): Update calls to c_sizeof_or_alignof_type.
1581 * c-pretty-print.c (pp_c_postfix_expression): Remove ARROW_EXPR
1583 (pp_c_unary_expression): Remove SIZEOF_EXPR and ALIGNOF_EXPR
1585 (pp_c_expression): Remove ARROW_EXPR, SIZEOF_EXPR, and
1588 2005-04-17 Ian Lance Taylor <ian@airs.com>
1590 * system.h: Poison DONT_ACCESS_GBLS_AFTER_EPILOGUE.
1592 2005-04-17 Richard Henderson <rth@redhat.com>
1594 * config/alpha/alpha.c (va_list_skip_additions): Only define if
1596 (TARGET_STDARG_OPTIMIZE_HOOK): Likewise.
1597 (alpha_stdarg_optimize_hook): Likewise. Allow for one more round
1598 of indirection through ssa names while looking for the gpr counter
1600 (alpha_setup_incoming_varargs) <TARGET_ABI_OSF>: Make use of the
1601 saved va_list_gpr_size and va_list_fpr_size.
1603 2005-04-17 Kazu Hirata <kazu@cs.umass.edu>
1605 * tree-vrp.c (compare_values): Check that VAL1 and VAL2 are
1606 both pointers or both integers.
1608 * tree-vrp.c (maybe_add_assert_expr): Don't assert
1609 ASSERT_EXPRs for single-use variable.
1611 * tree-into-ssa.c: Fix a comment typo.
1613 2005-04-17 Richard Sandiford <rsandifo@redhat.com>
1615 * config/mips/iris6.h (DRIVER_SELF_SPECS): Check -march as well as
1616 -mipsN before forcing a default of -mips2.
1618 2005-04-17 Kazu Hirata <kazu@cs.umass.edu>
1620 * predict.h (IS_TAKEN): Remove.
1621 * rtl.h (NOTE_PREDICTION): Likewise.
1623 * modulo-sched.c (CFG_HOOKS): Remove.
1625 * c-parser.c (N_C_TTYPES): Remove.
1627 * tree-flow-inline.h (get_stmt_operands): Remove.
1628 * lambda-code.c, tree-ssa-loop-unswitch.c,
1629 tree-ssa-operands.c, tree-ssa-pre.c, tree-ssa-propagate.c,
1630 tree-ssa-sink.c, tree-ssa.c, tree-tailcall.c,
1631 tree-vect-transform.c, tree-vectorizer.c, tree-vrp.c): Remove
1632 calls to get_stmt_operands.
1633 * doc/tree-ssa.texi: Don't mention get_stmt_operands.
1635 2005-04-17 Richard Henderson <rth@redhat.com>
1638 * config/alpha/alpha.c (alpha_setup_incoming_varargs): Advance a copy
1639 of CUMULATIVE_ARGS past the last named argument.
1640 (alpha_va_start): Expect pretend_args_size only if strictly less than
1643 2005-04-17 Kazu Hirata <kazu@cs.umass.edu>
1646 * builtins.c (expand_builtin_strcat): Convert the result of
1647 strlen to the right type.
1648 * fold-const.c (fold_binary) <PLUS_EXPR>: Use fold_convert to
1649 avoid creating type mismatches.
1650 <GE_EXPR>: Pass op0 and op1 to fold_build2 to avoid creating
1653 * c-lex.c (WCHAR_TYPE_SIZE, WCHAR_BYTES): Remove.
1655 2005-04-16 Richard Henderson <rth@redhat.com>
1658 * builtins.c (expand_builtin) <BUILT_IN_BOOL_COMPARE_AND_SWAP_*>:
1659 Use the mode of boolean_type_node when the user doesn't provide one.
1660 * config/ia64/sync.md (sync_lock_release<I48MODE>): Use operand 1.
1662 2005-04-16 Alexandre Oliva <aoliva@redhat.com>
1665 * loop.c (loop_givs_rescan): Handle non-replaceable (plus (reg)
1668 * tree-scalar-evolution.c (interpret_rhs_modify_expr): Fix typo in
1671 2005-04-16 Roger Sayle <roger@eyesopen.com>
1672 Steven Bosscher <stevenb@suse.de>
1674 * fold-const.c (fold_binary_to_constant): Delete obsolete comment.
1675 (fold_unary_to_constant): Likewise.
1677 2005-04-16 Kazu Hirata <kazu@cs.umass.edu>
1679 * basic-block.h: Adjust the value of PROP_SCAN_DEAD_STORES,
1682 2005-04-16 Gerald Pfeifer <gerald@pfeifer.com>
1684 * doc/install.texi (Specific): Avoid using asterisks in @anchor
1685 names related to target triplets.
1686 Remove i?86-*-esix from platform directory.
1687 Remove powerpc-*-eabiaix from platform directory.
1689 2005-04-16 Joseph S. Myers <joseph@codesourcery.com>
1692 * config/ia64/ia64.c (rtx_needs_barrier): Recurse instead of
1693 falling through from SUBREG case to REG.
1695 2005-04-15 Roger Sayle <roger@eyesopen.com>
1697 * fold-const.c (fold_relational_hi_lo): Delete function and prototype.
1698 (fold_binary): Update comment mentioning fold_relational_hi_lo.
1699 (fold_binary_to_constant): Simplify using fold_binary.
1700 (fold_unary_to_constant): Likewise, simplify using fold_unary.
1702 2005-04-15 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1704 * gthr-posix.c (pthread_cancel): Define.
1705 (pthread_mutexattr_init): Likewise.
1706 (pthread_mutexattr_settype): Likewise.
1707 (pthread_mutexattr_destroy): Likewise.
1709 2005-04-15 David S. Miller <davem@davemloft.net>
1712 * config/sparc/sparc.h (sparc_hard_reg_printed): Mark as GTY(()).
1714 2005-04-15 Kazu Hirata <kazu@cs.umass.edu>
1716 PR tree-optimization/21031
1717 * tree-ssa-forwprop.c (ssa_name_defined_by_comparison_p): New.
1718 (forward_propagate_into_cond_1): Call it. Forward propagate
1719 integer-integer casts into COND_EXPRs.
1721 2005-04-15 Dave Korn <dave.korn@artimi.com>
1723 * gcc.c (default_compilers): Clarify obscure error message when
1724 reading from standard input.
1726 2005-04-15 Kazu Hirata <kazu@cs.umass.edu>
1728 * basic-block.h (PROP_EQUAL_NOTES): Remove.
1729 * flow.c (propagate_one_insn): Don't use PROP_EQUAL_NOTES.
1731 * tree-ssa-alias.c (init_alias_info): Remove a call to
1734 2005-04-15 Andrew MacLeod <amacleod@redhat.com>
1736 * tree-vect-analyze.c (vect_stmt_relevant_p): Process immediate uses
1737 of non-virtual PHI nodes like we use to.
1739 2005-05-15 Paolo Bonzini <bonzini@gnu.org>
1741 * genattrtab.c (ATTR_EQ_ATTR_P): Remove.
1742 (attr_copy_rtx): Do not use it.
1744 2005-04-15 Andrew Macleod <amacleod@redhat.com>
1746 * doc/tree-ssa.texi: Grammer/abbreviation updates.
1748 2005-04-15 Diego Novillo <dnovillo@redhat.com>
1750 * tree-vect-transform.c (vectorizable_store): Mark necessary
1751 objects in the vectorized store needing renaming. Update the
1752 SSA graph for V_MAY_DEF operands in the original store.
1754 2005-04-14 Daniel Berlin <dberlin@dberlin.org>
1756 * tree-ssa-pre.c (compute_avail): It's okay to have
1757 TREE_INVARIANT's here, and value number the resulting expressions.
1758 (create_expression_by_pieces): Make sure operands that were
1759 min_invariant when we started, stay that way.
1761 2005-04-15 David Edelsohn <edelsohn@gnu.org>
1763 * doc/install.texi (*-ibm-aix*): Add comment about system limits.
1765 2005-04-15 Kazu Hirata <kazu@cs.umass.edu>
1767 PR tree-optimization/20936.
1768 * tree-ssa-ccp.c (visit_assignment): Fix a typo.
1770 2005-04-15 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1772 * doc/invoke.texi: Fix typos.
1773 * doc/md.texi: Likewise.
1774 * doc/rtl.texi: Likewise.
1775 * doc/sourcebuild.texi: Likewise.
1776 * doc/tm.texi: Likewise.
1778 2005-04-15 Uros Bizjak <uros@kss-loka.si>
1780 PR tree-optimization/21004
1781 * convert.c (convert_to_integer): Convert ceilf, ceill, floorf
1782 and floorl in c99 mode only.
1783 * builtins.c (expand_builtin_int_roundingfn): Assert that
1784 fallback_fndecl is not NULL_TREE.
1786 2005-04-15 Kazu Hirata <kazu@cs.umass.edu>
1788 * cfgrtl.c (purge_all_dead_edge): Remove an unused argument.
1789 * basic-block.h: Update the prototype for
1790 purge_all_dead_edges.
1791 * cfgexpand.c (tree_expand_cfg): Update a call to
1792 purge_all_dead_edges.
1793 * combine.c (combine_instructions): Likewise.
1794 * passes.c (rest_of_handle_old_regalloc, rest_of_handle_cse,
1795 rest_of_handle_cse2, rest_of_handle_gcse,
1796 rest_of_handle_postreload): likewise.
1798 2005-04-15 Alexandre Oliva <aoliva@redhat.com>
1801 * gimplify.c (gimplify_addr_expr): Compensate for removal of
1802 e.g. cv-qualification conversions.
1804 2005-04-14 Mike Stump <mrs@apple.com>
1806 * config/darwin-c.c (framework_construct_pathname): We must
1807 find all headers of a framework in the first instance of it
1808 found in the seach path.
1810 2005-04-14 Kazu Hirata <kazu@cs.umass.edu>
1812 PR tree-optimization/21021
1813 * tree-vrp.c (compare_values): Work around a bug in the front
1814 end that produces a comparison of mismatched types.
1816 2004-04-14 Richard Henderson <rth@redhat.com>
1818 * config/ia64/ia64.h (enum fetchop_code): Remove.
1819 (enum ia64_builtins): Move ...
1820 * config/ia64/ia64.c (enum ia64_builtins): ... here. Remove all
1821 members except BSP and FLUSHRS.
1822 (ia64_init_builtins): Remove __sync builtins.
1823 (ia64_expand_builtin): Likewise.
1824 (ia64_expand_fetch_and_op, ia64_expand_op_and_fetch): Remove.
1825 (ia64_expand_compare_and_swap, ia64_expand_lock_test_and_set): Remove.
1826 (ia64_expand_lock_release): Remove.
1827 * config/ia64/ia64.md (mf): Move to sync.md.
1828 (mf_internal, fetchadd_acq_si, fetchadd_acq_di, cmpxchg_acq_si,
1829 cmpxchg_acq_di, xchgsi, xchgdi): Likewise.
1830 * config/ia64/sync.md: New file.
1831 (memory_barrier): Rename from mf.
1832 (fetchadd_acq_<I48MODE>): Macroize from _si/_di patterns.
1833 (cmpxchg_acq_<I48MODE>): Likewise.
1834 (sync_lock_test_and_set<I48MODE>): Likewise.
1836 * config/ia64/ia64intrin.h: Define nothing for C; limit #defines
1837 to c++. Remove __sync* declarations. s/_si/_4/. s/_di/_8/.
1839 2004-04-14 Richard Henderson <rth@redhat.com>
1841 * config/i386/i386.c (x86_cmpxchg, x86_xadd): New.
1842 (ix86_compare_emitted): New.
1843 (ix86_expand_compare): Use ix86_compare_emitted if set.
1844 (ix86_expand_setcc): Only emit REG_EQUAL if both ix86_compare_op0
1845 and ix86_compare_op0 are set.
1846 * config/i386/i386.h (x86_cmpxchg, x86_xadd): Declare.
1847 (TARGET_CMPXCHG, TARGET_XADD): New.
1848 (ix86_compare_emitted): Declare.
1849 * config/i386/i386.md: Include sync.md
1850 (UNSPECV_CMPXCHG_1, UNSPECV_CMPXCHG_2): New.
1851 (UNSPECV_XCHG, UNSPECV_LOCK): New.
1852 * config/i386/sync.md: New file.
1854 2004-04-14 Richard Henderson <rth@redhat.com>
1857 * builtin-types.def (BT_BOOL, BT_VOLATILE_PTR, BT_I1, BT_I2,
1858 BT_I4, BT_I8, BT_FN_VOID_VPTR, BT_FN_I1_VPTR_I1, BT_FN_I2_VPTR_I2,
1859 BT_FN_I4_VPTR_I4, BT_FN_I8_VPTR_I8, BT_FN_BOOL_VPTR_I1_I1,
1860 BT_FN_BOOL_VPTR_I2_I2, BT_FN_BOOL_VPTR_I4_I4, BT_FN_BOOL_VPTR_I8_I8,
1861 BT_FN_I1_VPTR_I1_I1, BT_FN_I2_VPTR_I2_I2, BT_FN_I4_VPTR_I4_I4,
1862 BT_FN_I8_VPTR_I8_I8): New.
1863 * builtins.def (DEF_SYNC_BUILTIN): New.
1864 (BUILT_IN_FETCH_AND_ADD_N, BUILT_IN_FETCH_AND_ADD_1,
1865 BUILT_IN_FETCH_AND_ADD_2, BUILT_IN_FETCH_AND_ADD_4,
1866 BUILT_IN_FETCH_AND_ADD_8, BUILT_IN_FETCH_AND_SUB_N,
1867 BUILT_IN_FETCH_AND_SUB_1, BUILT_IN_FETCH_AND_SUB_2,
1868 BUILT_IN_FETCH_AND_SUB_4, BUILT_IN_FETCH_AND_SUB_8,
1869 BUILT_IN_FETCH_AND_OR_N, BUILT_IN_FETCH_AND_OR_1,
1870 BUILT_IN_FETCH_AND_OR_2, BUILT_IN_FETCH_AND_OR_4,
1871 BUILT_IN_FETCH_AND_OR_8, BUILT_IN_FETCH_AND_AND_N,
1872 BUILT_IN_FETCH_AND_AND_1, BUILT_IN_FETCH_AND_AND_2,
1873 BUILT_IN_FETCH_AND_AND_4, BUILT_IN_FETCH_AND_AND_8,
1874 BUILT_IN_FETCH_AND_XOR_N, BUILT_IN_FETCH_AND_XOR_1,
1875 BUILT_IN_FETCH_AND_XOR_2, BUILT_IN_FETCH_AND_XOR_4,
1876 BUILT_IN_FETCH_AND_XOR_8, BUILT_IN_FETCH_AND_NAND_N,
1877 BUILT_IN_FETCH_AND_NAND_1, BUILT_IN_FETCH_AND_NAND_2,
1878 BUILT_IN_FETCH_AND_NAND_4, BUILT_IN_FETCH_AND_NAND_8,
1879 BUILT_IN_ADD_AND_FETCH_N, BUILT_IN_ADD_AND_FETCH_1,
1880 BUILT_IN_ADD_AND_FETCH_2, BUILT_IN_ADD_AND_FETCH_4,
1881 BUILT_IN_ADD_AND_FETCH_8, BUILT_IN_SUB_AND_FETCH_N,
1882 BUILT_IN_SUB_AND_FETCH_1, BUILT_IN_SUB_AND_FETCH_2,
1883 BUILT_IN_SUB_AND_FETCH_4, BUILT_IN_SUB_AND_FETCH_8,
1884 BUILT_IN_OR_AND_FETCH_N, BUILT_IN_OR_AND_FETCH_1,
1885 BUILT_IN_OR_AND_FETCH_2, BUILT_IN_OR_AND_FETCH_4,
1886 BUILT_IN_OR_AND_FETCH_8, BUILT_IN_AND_AND_FETCH_N,
1887 BUILT_IN_AND_AND_FETCH_1, BUILT_IN_AND_AND_FETCH_2,
1888 BUILT_IN_AND_AND_FETCH_4, BUILT_IN_AND_AND_FETCH_8,
1889 BUILT_IN_XOR_AND_FETCH_N, BUILT_IN_XOR_AND_FETCH_1,
1890 BUILT_IN_XOR_AND_FETCH_2, BUILT_IN_XOR_AND_FETCH_4,
1891 BUILT_IN_XOR_AND_FETCH_8, BUILT_IN_NAND_AND_FETCH_N,
1892 BUILT_IN_NAND_AND_FETCH_1, BUILT_IN_NAND_AND_FETCH_2,
1893 BUILT_IN_NAND_AND_FETCH_4, BUILT_IN_NAND_AND_FETCH_8,
1894 BUILT_IN_BOOL_COMPARE_AND_SWAP_N, BUILT_IN_BOOL_COMPARE_AND_SWAP_1,
1895 BUILT_IN_BOOL_COMPARE_AND_SWAP_2, BUILT_IN_BOOL_COMPARE_AND_SWAP_4,
1896 BUILT_IN_BOOL_COMPARE_AND_SWAP_8, BUILT_IN_VAL_COMPARE_AND_SWAP_N,
1897 BUILT_IN_VAL_COMPARE_AND_SWAP_1, BUILT_IN_VAL_COMPARE_AND_SWAP_2,
1898 BUILT_IN_VAL_COMPARE_AND_SWAP_4, BUILT_IN_VAL_COMPARE_AND_SWAP_8,
1899 BUILT_IN_LOCK_TEST_AND_SET_N, BUILT_IN_LOCK_TEST_AND_SET_1,
1900 BUILT_IN_LOCK_TEST_AND_SET_2, BUILT_IN_LOCK_TEST_AND_SET_4,
1901 BUILT_IN_LOCK_TEST_AND_SET_8, BUILT_IN_LOCK_RELEASE_N,
1902 BUILT_IN_LOCK_RELEASE_1, BUILT_IN_LOCK_RELEASE_2,
1903 BUILT_IN_LOCK_RELEASE_4, BUILT_IN_LOCK_RELEASE_8,
1904 BUILT_IN_SYNCHRONIZE: New.
1905 * builtins.c (called_as_built_in): Rewrite from CALLED_AS_BUILT_IN
1906 as a function. Accept __sync_ as a prefix as well.
1907 (expand_builtin_sync_operation, expand_builtin_compare_and_swap,
1908 expand_builtin_lock_test_and_set, expand_builtin_synchronize,
1909 expand_builtin_lock_release): New.
1910 (expand_builtin): Call them.
1911 * c-common.c (DEF_BUILTIN): Don't require __builtin_ prefix if
1912 neither BOTH_P nor FALLBACK_P are defined.
1913 (builtin_type_for_size): New.
1914 (sync_resolve_size, sync_resolve_params, sync_resolve_return): New.
1915 (resolve_overloaded_builtin): New.
1916 * c-common.h (resolve_overloaded_builtin): Declare.
1917 (builtin_type_for_size): Declare.
1918 * c-typeck.c (build_function_call): Invoke resolve_overloaded_builtin.
1919 * expr.c (sync_add_optab, sync_sub_optab, sync_ior_optab,
1920 sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab,
1921 sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab,
1922 sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab,
1923 sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab,
1924 sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap,
1925 sync_compare_and_swap_cc, sync_lock_test_and_set,
1926 sync_lock_release): New.
1927 * optabs.h: Declare them.
1928 * expr.h (expand_val_compare_and_swap, expand_bool_compare_and_swap,
1929 expand_sync_operation, expand_sync_fetch_operation,
1930 expand_sync_lock_test_and_set): Declare.
1931 * genopinit.c (optabs): Add sync optabs.
1932 * optabs.c (init_optabs): Initialize sync optabs.
1933 (expand_val_compare_and_swap_1, expand_val_compare_and_swap,
1934 expand_bool_compare_and_swap, expand_compare_and_swap_loop,
1935 expand_sync_operation, expand_sync_fetch_operation,
1936 expand_sync_lock_test_and_set): New.
1937 * doc/extend.texi (Atomic Builtins): New section
1938 * doc/md.texi (Standard Names): Add sync patterns.
1940 2005-04-14 Alexandre Oliva <aoliva@redhat.com>
1942 * tree-eh.c (lower_try_finally_copy): Generate new code in
1943 response to goto_queue entries as if the queue was sorted by
1944 index, not pointers.
1945 (lower_try_finally_switch): Likewise.
1947 2005-04-14 Richard Henderson <rth@redhat.com>
1949 * config/i386/i386.c (ix86_expand_sse_cmp): Split out from ...
1950 (ix86_expand_sse_movcc): ... here. Take cmp as a pre-computed
1952 (ix86_expand_fp_movcc): Update to match.
1953 (ix86_expand_fp_vcond, ix86_expand_int_vcond): New.
1954 * config/i386/i386-protos.h: Update.
1955 * config/i386/sse.md (vcondv4sf, vcondv2df): New.
1956 (vcond<SSEMODE124>, vcondu<SSEMODE12>): New.
1958 2005-04-14 Joseph S. Myers <joseph@codesourcery.com>
1960 * doc/cpp.texi, doc/install.texi: Change references to GCC 3.5 to
1963 2005-04-14 Julian Brown <julian@codesourcery.com>
1965 * Revert elfos.h part of my patch from 2005-04-13 for causing libstdc++
1966 link failures on ppc64 Linux.
1968 2005-04-14 Andreas Krebbel <krebbel1@de.ibm.com>
1970 * config.gcc: Set cpu_type for s390.
1972 2005-04-14 Daniel Berlin <dberlin@dberlin.org>
1974 Fix PR tree-optimization/20963
1975 * tree-ssa-pre.c (compute_avail): Remove special case for
1977 (create_expression_by_pieces): Add value numbers for forced out
1980 2005-04-14 Hans-Peter Nilsson <hp@axis.com>
1982 * config/cris/cris.md: Replace references to (reg:SI 16) with
1983 (reg:SI CRIS_SRP_REGNUM).
1985 2005-04-14 Kazu Hirata <kazu@cs.umass.edu>
1987 PR tree-optimization/20657
1988 * tree-vrp.c (extract_range_from_expr): Notice INTEGER_CST to
1989 create an appropriate range from it.
1991 2005-04-14 Uros Bizjak <uros@kss-loka.si>
1993 * reg-stack.c (subst_stack_regs_pat): Handle <UNSPEC_FIST_FLOOR> and
1994 <UNSPEC_FIST_CEIL> case.
1996 * config/i386/i386.md (UNSPEC_FIST_FLOOR, UNSPEC_FIST_CEIL): New.
1997 (*fist<mode>2_floor_1, fistdi2_floor, fistdi2_floor_with_temp)
1998 (fist<mode>2_floor, fist<mode>2_floor_with_temp): New isns patterns
1999 to implement lfloor and llfloor built-ins as x87 intrinsic function.
2000 (fistdi2_floor, fist<mode>2_floor splitters): New splitters.
2001 (lfloor<mode>2): New expanders.
2002 (*fist<mode>2_ceil_1, fistdi2_ceil, fistdi2_ceil_with_temp)
2003 (fist<mode>2_ceil, fist<mode>2_ceil_with_temp): New isns patterns
2004 to implement lceil and llceil built-ins as x87 intrinsic function.
2005 (fistdi2_ceil, fist<mode>2_ceil splitters): New splitters.
2006 (lceil<mode>2): New expanders.
2008 2005-04-14 Uros Bizjak <uros@kss-loka.si>
2010 * convert.c (convert_to_integer): Convert (long int)trunc{,f,l},
2011 and (long long int)ceil{,f,l} into FIX_TRUNC_EXPR.
2013 2005-04-14 Ulrich Weigand <uweigand@de.ibm.com>
2016 * config/s390/s390-modes.def: Define TFmode.
2018 2005-04-13 Richard Sandiford <rsandifo@redhat.com>
2020 * config/mips/mips.h (ASM_OUTPUT_CASE_LABEL): Delete.
2021 (JUMP_TABLES_IN_TEXT_SECTION): Define.
2022 * config/mips/mips.c (mips16_insn_length): Remove reference to
2023 JUMP_TABLES_IN_TEXT_SECTION.
2025 2005-04-13 Fariborz Jahanian <fjahanian@apple.com>
2027 * simplify-rtx.c (simplify_binary_operation_1): Return
2028 scalar or vector of constant 0, depending on the xor's
2031 2005-04-13 Dale Johannesen <dalej@apple.com>
2033 * objc/Make-lang.in (objc-lang.o): Depend on tree-gimple.h.
2034 (objc-act.o): Ditto.
2035 * objc/objc-act.c (objc_gimplify_expr): New.
2036 (objc_get_callee_fndecl): New.
2037 * objc/objc-act.h: Include tree-gimple.h. Declare new functions.
2038 * objc/objc-lang.c (LANG_HOOKS_GIMPLIFY_EXPR): Define.
2039 (LANG_HOOKS_GET_CALLEE_FNDECL): Define.
2041 2005-04-13 Devang Patel <dpatel@apple.com>
2043 * tree-if-conv.c (tree_if_convert_cond_expr): Do not create extra
2046 2005-04-13 Hans-Peter Nilsson <hp@axis.com>
2048 CRIS prologue as RTL.
2049 * config/cris/cris-protos.h (cris_emit_movem_store)
2050 (cris_expand_prologue): Prototype.
2051 * config/cris/cris.c (struct machine_function): New member
2053 (cfa_label_num, cris_target_asm_function_prologue): Remove.
2054 (TARGET_ASM_FUNCTION_PROLOGUE): Don't override.
2055 (cris_general_operand_or_gotless_symbol): Accept CRIS_UNSPEC_GOT.
2056 (cris_load_multiple_op, cris_return_address_on_stack)
2057 (cris_return_address_on_stack_for_return): ISO-Cify.
2058 (cris_store_multiple_op): New predicate function.
2059 (cris_expand_prologue, cris_emit_movem_store): New functions.
2060 (cris_print_operand) <case 'O'>: Handle modifications other than
2062 (cris_symbol, cris_got_symbol): Return 0 for CRIS_UNSPEC_GOT.
2063 (cris_gotless_symbol): Return 1 for CRIS_UNSPEC_GOT.
2064 (cris_gen_movem_load): Rearrange slightly to make local variable
2065 src a parameter, removing osrc.
2066 (cris_setup_incoming_varargs): Set machine_function member
2067 stdarg_regs to correspond to the number of registers that need to
2069 * config/cris/cris.h (EXTRA_CONSTRAINT_S): Accept
2071 (PREDICATE_CODES): Add cris_store_multiple_op. Make
2072 cris_general_operand_or_gotless_symbol accept UNSPEC.
2073 * config/cris/cris.md (CRIS_UNSPEC_GOT): New constant.
2074 ("*movsi_internal") <alternative 8>: Handle CRIS_UNSPEC_GOT.
2075 ("*cris_store_multiple"): New pattern. Tweak common comment above
2076 this and "*cris_load_multiple".
2077 ("prologue"): New define_expand.
2079 * config/cris/cris.md ("epilogue"): Conditionalize on
2080 TARGET_PROLOGUE_EPILOGUE.
2082 2005-04-13 Steve Ellcey <sje@cup.hp.com>
2085 * config/ia64/ia64.md (divsf3_internal_lat): Generate frcpa with
2086 fpsr 0 instead of fpsr 1.
2087 (divsf3_internal_thr): Ditto.
2088 (divdf3_internal_lat): Ditto.
2089 (divdf3_internal_thr): Ditto.
2090 (divxf3_internal_lat): Ditto.
2091 (divxf3_internal_thr): Ditto.
2093 2005-04-13 Kazu Hirata <kazu@cs.umass.edu>
2095 PR tree-optimization/20913
2096 * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Fold COND_EXPR.
2098 PR tree-optimization/20702
2099 * tree-vrp.c (maybe_add_assert_expr): Recurse into
2100 dominator children that haven't been walked into.
2102 2005-04-13 Julian Brown <julian@codesourcery.com>
2104 * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK from
2105 being used for symbols with vague linkage when HAVE_GAS_COMDAT_GROUP
2108 2005-04-13 Kazu Hirata <kazu@cs.umass.edu>
2110 * basic-block.h, tree-ssa-uncprop.c, varasm.c,
2111 config/i386/sse.md: Fix comment typos.
2113 * genattrtab.c (NULL_ATTR): Remove.
2114 * ifcvt.c (NULL_EDGE): Likewise.
2116 * rtl.h (RTX_EXPR_FIRST, RTX_EXPR_LAST): Remove.
2118 * rtl.h (NOTE_PREDICTION_ALG, NOTE_PREDICTION_FLAGS,
2119 NOTE_PREDICT): Remove.
2121 2005-04-13 Eric Botcazou <ebotcazou@libertysurf.fr>
2123 * configure.ac (gcc_AC_CHECK_DECLS): Add vsnprintf.
2124 * configure: Regenerate.
2125 * config.in: Likewise.
2126 * system.h: Declare vsnprintf if not already declared.
2128 2005-04-13 Eric Botcazou <ebotcazou@libertysurf.fr>
2130 * optc-gen.awk: Handle stand-alone Mask records.
2131 * opth-gen.awk: Likewise.
2132 * doc/options.texi (Option file format): Document them.
2133 * config.gcc (sparc-*-netbsdelf*, sparc-*-linux*, sparc64-*-freebsd*,
2134 sparc64-*-linux*, sparc64-*-netbsd*): Add long-double-switch.opt.
2135 (sparc64-*-openbsd*, sparc64-*-elf*): Add little-endian.opt.
2136 * config/sparc/sparc.h (MASK_FPU, MASK_UNALIGNED_DOUBLES,
2137 MASK_V8, MASK_SPARCLITE, MASK_SPARCLET, MASK_V9,
2138 MASK_DEPRECATED_V8_INSNS, MASK_IMPURE_TEXT, MASK_APP_REGS,
2139 MASK_HARD_QUAD, MASK_LITTLE_ENDIAN, MASK_PTR64, MASK_64BIT,
2140 MASK_STACK_BIAS, MASK_FPU_SET, MASK_VIS, MASK_V8PLUS,
2141 MASK_FASTER_STRUCTS, MASK_LONG_DOUBLE_128): Delete.
2142 (TARGET_FPU, TARGET_UNALIGNED_DOUBLES, TARGET_V8, TARGET_SPARCLITE,
2143 TARGET_SPARCLET, TARGET_V9, TARGET_DEPRECATED_V8_INSNS,
2144 TARGET_IMPURE_TEXT, TARGET_APP_REGS, MASK_HARD_QUAD,
2145 TARGET_LITTLE_ENDIAN, TARGET_PTR64, TARGET_64BIT, MASK_STACK_BIAS,
2146 TARGET_FPU_SET, TARGET_VIS, TARGET_V8PLUS, TARGET_FASTER_STRUCTS,
2147 TARGET_LONG_DOUBLE_128): Likewise.
2148 (TARGET_SWITCHES, SUBTARGET_SWITCHES): Likewise.
2149 (TARGET_OPTIONS, SUBTARGET_OPTIONS): Likewise.
2150 * config/sparc/freebsd.h (SUBTARGET_SWITCHES): Likewise.
2151 * config/sparc/linux.h (SUBTARGET_SWITCHES): Likewise.
2152 * config/sparc/linux64.h (SUBTARGET_SWITCHES): Likewise.
2153 * config/sparc/netbsd-elf.h (SUBTARGET_SWITCHES): Likewise.
2154 * config/sparc/sp64-elf.h (SUBTARGET_SWITCHES): Likewise.
2155 * config/sparc/sparc.c (fpu_option_set): New global.
2156 (sparc_handle_option): New function.
2157 (sparc_override_options): Test fpu_option_set.
2158 (TARGET_DEFAULT_TARGET_FLAGS): Set to TARGET_DEFAULT.
2159 (TARGET_HANDLE_OPTION): Set to sparc_handle_option.
2160 * config/sparc/sparc.opt: New file.
2161 * config/sparc/little-endian.opt: Likewise.
2162 * config/sparc/long-double-switch.opt: Likewise.
2164 2005-04-13 Bernd Schmidt <bernd.schmidt@analog.com>
2166 * config/bfin/bfin.c (bfin_lib_id_given): New static variable.
2167 (bfin_handle_options): Set it if -mshared-library-id= is seen.
2168 * config/bfin/bfin.opt (mshared-library-id=): Lose
2169 Var(bfin_lib_id_given).
2171 2005-04-13 Matt Thomas <matt@3am-software.com>
2173 * config/rs6000/sysv4.h (NO_IMPLICIT_EXTERN_C): undefine before
2176 2005-04-13 Kazu Hirata <kazu@cs.umass.edu>
2178 * rtl.h (CLEAR_RTX_FLAGS): Remove.
2180 * cgraphunit.c (INSNS_PER_CALL): Remove.
2182 * tree-ssa-forwprop.c (vars,
2183 record_single_argument_cond_exprs,
2184 substitute_single_use_vars): Remove.
2185 (forward_propagate_into_cond_1, forward_propagate_into_cond):
2187 (tree_ssa_forward_propagate_single_use_vars): Call
2188 forward_propagate_into_cond for each COND_EXPR.
2190 * tree-inline.c (INSNS_PER_STMT): Remove.
2192 2005-04-12 Richard Henderson <rth@redhat.com>
2194 * config/i386/i386.c (ix86_prepare_sse_fp_compare_args): Split ...
2195 (ix86_expand_sse_fp_minmax): ... from ...
2196 (ix86_expand_fp_movcc): ... here.
2197 (ix86_expand_sse_movcc): Rewrite from ix86_split_sse_movcc.
2198 * config/i386/i386-protos.h: Update.
2199 * config/i386/i386.md (UNSPEC_IEEE_MIN, UNSPEC_IEEE_MAX): New.
2200 (sse_setccsf, sse_setccdf): Allow before reload.
2201 (movsfcc_1_sse_min, movsfcc_1_sse_max, movsfcc_1_sse): Remove.
2202 (movdfcc_1_sse_min, movdfcc_1_sse_max, movdfcc_1_sse): Remove.
2203 (ieee_sminsf3, ieee_smaxsf3, ieee_smindf3, ieee_smaxdf3): New.
2204 * config/i386/sse.md (andsf3, nandsf3, iorsf3, xorsf3): New.
2205 (anddf3, nanddf3, iordf3, xordf3): New.
2207 2005-04-12 Jeff Law <law@redhat.com>
2209 * Makefile.in (OBJS-common): Add tree-ssa-uncprop.o.
2210 (tree-ssa-uncprop.o): Add dependencies.
2211 * tree-cfg.c (remove_useless_stmts_bb, remove_useless_stmts): Remove.
2212 * tree-flow.h (remove_useless_stmts): Remove prototype.
2213 * tree-outof-ssa.c (rewrite_out_of_ssa): Remove call to
2214 remove_useless_stmts.
2215 * timevar.def (TV_TREE_SSA_UNCPROP): New timevar.
2216 * tree-optimize.c (init_tree_optimization_passes): Add uncprop pass.
2217 * tree-pass.h (pass_uncprop): Declare.
2218 * tree-ssa-uncprop.c: New file.
2220 2005-04-12 James E. Wilson <wilson@specifixinc.com>
2223 * unwind-ia64.c (uw_intall_context): Add missing load of r27.
2225 2005-04-12 Caroline Tice <ctice@apple.com>
2227 Temporary fix for partitioning problems.
2228 * passes.c (rest_of_handle_final): Remove code that
2229 frees unlikely_text_section_name,
2230 * varasm.c (assemble_start_function): Test for partitioning
2231 flag before writing out section labels.
2232 (assemble_end_function): Test for partitioning flag before
2233 writing out section labels.
2235 2005-04-12 Steven Bosscher <stevenb@suse.de>
2236 Stuart Hastings <stuart@apple.com>
2237 Jan Hubicka <jh@suse.cz>
2239 * Makefile.in: Add function.h to BASIC_BLOCK_H. Remove all
2240 references to gt-tree-cfg.h.
2241 * basic-block.h (struct basic_block_def): Don't skip rbi
2242 for garbage collection.
2243 (struct reorder_block_def): Make GTY-able.
2244 (struct control_flow_graph): New structure.
2245 (n_edges, n_basic_blocks, last_basic_block, basic_block_info,
2246 BASIC_BLOCK, EXIT_BLOCK_PTR, ENTRY_BLOCK_PTR): No longer vars,
2247 but instead defines to the control_flow_graph for cfun.
2248 (label_to_block_map): New define, points to the label map of
2249 the control_flow_graph for cfun.
2250 (n_edges_for_function, n_basic_blocks_for_function,
2251 last_basic_block_for_function, basic_block_info_for_function,
2252 EXIT_BLOCK_PTR_FOR_FUNCTION, ENTRY_BLOCK_PTR_FOR_FUNCTION,
2253 basic_block_info_for_function, label_to_block_map_for_function):
2254 Counterparts for the above, taking a struct function as an extra
2256 (alloc_rbi_pool, free_rbi_pool): Remove prototypes.
2257 * cfg.c: (n_edges, n_basic_blocks, last_basic_block,
2258 basic_block_info, ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Remove.
2259 (alloc_rbi_pool, free_rbi_pool): Remove.
2260 (initialize_bb_rbi): Use ggc_alloc_cleared instead of pool_alloc.
2261 * cfglayout.c: (cfg_layout_initialize): Don't allocate the rbi pool
2263 (cfg_layout_finalize) ... and don't free it here.
2264 * cfgrtl.c (cfg_layout_delete_block): Zero out rbi so it gets
2266 * flow.c (free_basic_block_vars): Set label_to_block_map and
2267 n_edges to zero too.
2268 * function.h (struct function): Add cfg field.
2269 * function.c (allocate_struct_function): Allocate the cfg.
2270 * tree-cfg.c (label_to_block_map): Remove.
2271 (build_tree_cfg): Don't allocate the rbi pool here...
2272 (delete_tree_cfg_annotations): ...and don't free it here.
2273 Also don't nullify label_to_block_map for cfun.
2275 2005-04-12 Caroline Tice <ctice@apple.com>
2277 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
2278 Revert my patch from April 9.
2279 (fix_edges_for_rarely_executed_code): Revert my patch from April 9.
2280 (reorder_basic_blocks): Revert my patch from April 9.
2281 (insert_section_boundary_note): Revert my patch from April 9.
2282 * dbxout.c (dbxout_function_end): Revert my patch from April 9.
2283 * dwarf2out.c (COLD_TEXT_SECTION_LABEL): Revert my patch from April 9.
2284 (COLD_END_LABEL): Revert my patch from April 9.
2285 (cold_text_section_label): Revert my patch from April 9.
2286 (cold_end_label): Revert my patch from April 9.
2287 (dwarf2out_switch_text_section): Revert my patch from April 9.
2288 (output_aranges): Revert my patch from April 9.
2289 (output_ranges): Revert my patch from April 9.
2290 (output_line_info): Revert my patch from April 9.
2291 (add_location_or_const_value_attribute): Revert my patch from April 9.
2292 (dwarf2out_var_location): Revert my patch from April 9.
2293 (dwarf2out_init): Revert my patch from April 9.
2294 (dwarf2out_finish): Revert my patch from April 9.
2295 * function.h (struct function): Revert my patch from April 9.
2296 * opts.c (decode_options): Revert my patch from April 9.
2297 * output.h (unlikely_section_label, hot_section_label,
2298 hot_section_end_label, cold_section_end_label,
2299 unlikely_text_section_name): Revert my patch from April 9.
2300 * passes.c (rest_of_handle_final): Revert my patch from April 9.
2301 * varasm.c (unlikely_section_label, hot_section_label,
2302 hot_section_end_label, cold_section_end_label,
2303 unlikely_text_section_name): Revert my patch from April 9.
2304 (initialize_cold_section_name): Revert my patch from April 9.
2305 (unlikely_text_section): Revert my patch from April 9.
2306 (in_unlikely_text_section): Revert my patch from April 9.
2307 (named_section): Revert my patch from April 9.
2308 (function_section): Revert my patch from April 9.
2309 (current_function_section): Revert my patch from April 9.
2310 (assemble_start_function): Revert my patch from April 9.
2311 (assemble_end_function): Revert my patch from April 9.
2312 (default_section_type_flags_1): Revert my patch from April 9.
2314 2005-04-12 Eric Botcazou <ebotcazou@libertysurf.fr>
2316 * config/sparc/sparc.h (APPLY_RESULT_SIZE): Set to 24 in 64-bit mode.
2317 * config/sparc/sparc.md (untyped_call): Save the registers manually.
2319 * config/sparc/sparc.c (legitimate_address_p): Use TARGET_ARCH32.
2321 2005-04-12 Ulrich Weigand <uweigand@de.ibm.com>
2324 * config/s390/s390.md ("*set_tp"): Use SET in pattern.
2325 ("set_tp_64", "set_tp_31"): Adapt expanded pattern.
2327 2004-04-12 Richard Henderson <rth@redhat.com>
2329 * config/i386/i386.md (UNSPEC_FIX, UNSPEC_MOVA, UNSPEC_SHUFFLE,
2330 UNSPEC_PSHUFLW, UNSPEC_PSHUFHW, UNSPEC_ADDSUB, UNSPEC_HADD,
2331 UNSPEC_HSUB, UNSPEC_MOVSHDUP, UNSPEC_MOVSLDUP, UNSPEC_MOVDDUP): Remove.
2332 (UNSPEC_*, UNSPECV_*): Renumber.
2334 2005-04-12 Frank Ch. Eigler <fche@redhat.com>
2337 From Richard Henderson <rth@redhat.com>:
2338 * tree-mudflap.c (mf_build_check_statement_for): Correct block
2341 2005-04-12 Dorit Naishlos <dorit@il.ibm.com>
2343 * tree-cfg.c (tree_verify_flow_info): Use LABEL_EXPR_LABEL.
2345 2005-04-12 Bernd Schmidt <bernd.schmidt@analog.com>
2347 * config/bfin/bfin.c (bfin_library_id_string): Remove.
2348 (bfin_library_id): New variable.
2349 (bfin_expand_prologue): Use bfin_library_id and bfin_lib_id_given
2350 instead of bfin_library_id_string.
2351 (bfin_handle_option): New function.
2352 (override_options): Remove most code to deal with shared library IDs,
2353 just check they aren't used without -mid-shared-library.
2354 (TARGET_HANDLE_OPTION): Define.
2355 * config/bfin/bfin.h (TARGET_OPTIONS): Delete macro.
2356 * config/bfin/bfin.opt (mshared-library-id=): New.
2358 2005-04-12 Kazu Hirata <kazu@cs.umass.edu>
2360 * tree-vect-transform.c: Fix comment typos.
2362 2005-04-12 Mostafa Hagog <mustafa@il.ibm.com>
2364 * postreload-gcse.c (eliminate_partially_redundant_load): Don't
2365 split critical edges when not possible/profitable.
2367 2005-04-12 Richard Sandiford <rsandifo@redhat.com>
2369 * config/ns32k/ns32k.h (target_flags, MASK_32081, MASK_RTD)
2370 (MASK_REGPARM, MASK_32532, MASK_32332, MASK_NO_SB, MASK_NO_BITFIELD)
2371 (MASK_HIMEM, MASK_32381, MASK_MULT_ADD, MASK_SRC, MASK_IEEE_COMPARE)
2372 (TARGET_32081, TARGET_32381, TARGET_MULT_ADD, TARGET_RTD)
2373 (TARGET_REGPARM, TARGET_32532, TARGET_32332, TARGET_SB, TARGET_HIMEM)
2374 (TARGET_BITFIELD, TARGET_IEEE_COMPARE, TARGET_SWITCHES): Delete.
2375 (OVERRIDE_OPTIONS): Clear MASK_SB instead of setting MASK_NO_SB.
2376 * config/ns32k/netbsd.h (TARGET_DEFAULT): Remove MASK_NO_SB and
2378 * config/ns32k/ns32k.c (ns32k_handle_option): New function.
2379 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
2380 * config/ns32k/ns32k.opt: New file.
2382 2005-04-12 Richard Sandiford <rsandifo@redhat.com>
2384 * config.gcc (m68k-*-linux*): Add m68k/ieee.opt to $extra_options.
2385 * config/m68k/m68k.h (target_flags, MASK_68020, TARGET_68020)
2386 (MASK_68030, TARGET_68030, MASK_68040, TARGET_68040, MASK_68040_ONLY)
2387 (TARGET_68040_ONLY, MASK_68060, TARGET_68060, MASK_5200, TARGET_5200)
2388 (MASK_CFV3, TARGET_CFV3, MASK_CFV4, TARGET_CFV4, MASK_528x)
2389 (TARGET_528x, MASK_CF_HWDIV, TARGET_CF_HWDIV, MASK_68881, TARGET_68881)
2390 (MASK_BITFIELD, TARGET_BITFIELD, MASK_SHORT, TARGET_SHORT)
2391 (MASK_ALIGN_INT, TARGET_ALIGN_INT, MASK_PCREL, TARGET_PCREL)
2392 (MASK_NO_STRICT_ALIGNMENT, TARGET_STRICT_ALIGNMENT, MASK_RTD)
2393 (TARGET_RTD, MASK_SEP_DATA, TARGET_SEP_DATA, MASK_ID_SHARED_LIBRARY)
2394 (TARGET_ID_SHARED_LIBRARY, MASK_ALL_CF_BITS, TARGET_SWITCHES)
2395 (TARGET_OPTIONS, SUBTARGET_SWITCHES, SUBTARGET_OPTIONS): Delete.
2396 (MASK_COLDFIRE): Formatting fixes.
2397 (TARGET_COLDFIRE): Turn into a boolean value for consistency.
2398 * config/m68k/linux.h (SUBTARGET_SWITCHES): Delete.
2399 * config/m68k/m68k.c (m68k_library_id_string): Initialize to
2400 "_current_shared_library_a5_offset_".
2401 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
2402 (MASK_ALL_CPU_BITS): New macro.
2403 (m68k_handle_option): New function.
2404 (override_options): Remove handling of m68k_library_id_string.
2405 * config/m68k/m68k.opt: New file.
2406 * config/m68k/ieee.opt: New file.
2408 2005-04-11 Mark Mitchell <mark@codesourcery.com>
2410 * target-def.h (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
2411 (TARGET_CXX_DETERMINE_CLASS_VISIBILITY): New macro.
2412 (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
2413 (TARGET_CXX): Adjust accordingly.
2414 * target.h (struct gcc_target): Remove epxort_class_data. Add
2415 determine_class_data_visibility and class_data_always_comdat.
2416 * doc/tm.texi (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
2417 (TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY): Document.
2418 (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
2419 * config/arm/arm.c (arm_cxx_export_class_data): Remove.
2420 (arm_cxx_determine_class_data_visibility): New.
2421 (arm_cxx_class_data_always_comdat): Likewise.
2422 (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
2423 (TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY): Define.
2424 (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
2425 * config/arm/arm.h (TARGET_ARM_DYNAMIC_VAGUE_LINKAGE_P): Define.
2426 * config/arm/symbian.h (TARGET_ARM_DYNAMIC_VAGUE_LINKAGE_P):
2429 2005-04-11 Devang Patel <dpatel@apple.com>
2431 * tree-data-ref.c (build_classic_dist_vector,
2432 compute_subscript_distance): Make externally visible.
2433 * tree-data-ref.h (build_classic_dist_vector,
2434 compute_subscript_distance): Same.
2435 * tree-vect-analyze.c (vect_analyze_data_ref_dependence):
2436 Check distance vector against vectorization factor.
2437 (vect_analyze_loop): Determine vectorizaion factor before
2438 analyzing data dependences.
2439 * tree-vectorizer.c (loops_num): Make it externally visible and
2441 * tree-vectorizer.c (vect_loops_num): ... new name.
2442 * tree-vectorizer.h (vect_loops_num): New.
2444 2005-04-11 Devang Patel <dpatel@apple.com>
2446 * tree-vect-analyze.c (vect_analyze_operations): Check
2447 vectorizable codition.
2448 * tree-vect-transform.c (vect_is_simple_cond): New function.
2449 (vectorizable_condition): New function.
2450 (vect_transform_stmt): Handle condition_vec_info_type.
2451 * tree-vectorizer.h (enum stmt_vec_info_type): Add
2452 condition_vec_info_type.
2453 (vectorizable_condition): New.
2455 2005-04-11 Geoffrey Keating <geoffk@apple.com>
2457 * config/i386/i386.h (TARGET_FPMATH_DEFAULT): New.
2458 * config/i386/darwin.h (TARGET_FPMATH_DEFAULT): New.
2459 * config/i386/i386.c (override_options): Use TARGET_FPMATH_DEFAULT.
2461 * config/i386/darwin.h (ASM_SPEC): Use -arch i386 not -arch i686.
2462 (SUBTARGET_EXTRA_SPECS): Always 'i386'.
2464 * dwarf2out.c (output_line_info): Don't try to dereference
2465 a NULL current_function_decl.
2467 * config/t-slibgcc-darwin: Don't put shared libraries in
2468 directories other than $(slibdir).
2469 * config/rs6000/darwin.h: Find -m64 libgcc under the name the
2472 2005-04-11 Diego Novillo <dnovillo@redhat.com>
2474 PR tree-optimization/20933
2475 * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Move
2476 logic to reject aliases between read-only and writable
2478 (may_alias_p): ... here.
2479 (get_tmt_for): Do not associate read-only tags to pointers
2480 whose pointed-to type is not read-only.
2481 * tree-ssa.c (verify_ssa): Check that memory stores have at
2482 least one V_MAY_DEF or V_MUST_DEF.
2484 2005-04-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2487 * configure.ac (gcc_UNLOCKED_FUNCS): New.
2488 (AC_CHECK_FUNCS, AC_CHECK_DECLS): Check for gcc_UNLOCKED_FUNCS.
2489 * system.h (putchar, getc, getchar, clearerr, feof, fileno,
2490 fflush, fgetc, fgets, ferror, fread): Redefine to the associated
2492 (fwrite_unlocked): Fix prototype.
2494 * configure, config.in: Regenerate.
2496 2005-04-11 David Edelsohn <edelsohn@gnu.org>
2498 * tree-ssa-loop-im.c: Include real.h.
2499 (determine_invariantness_stmt): If real division divisor is
2500 invariant and flag_unsafe_math_optimizations enabled, generate
2501 invariant reciprocal for hoisting.
2502 * Makefile.in (tree-ssa-loop-im.o): Add real.h dependency.
2504 2005-04-11 Daniel Berlin <dberlin@dberlin.org>
2506 Fix PR tree-optimization/20926
2508 * tree-ssa-alias.c (add_type_alias): Handle subvars.
2510 2005-04-11 Devang Patel <dpatel@apple.com>
2512 * config/rs6000.c (rs6000_emit_vector_select): Fix vector select
2515 2005-04-11 Andrew Pinski <pinskia@physics.uc.edu>
2517 * fold-const.c (fold_binary_op_with_conditional_arg):
2518 use fold_buildN instead of "fold (buildN" in some
2520 (fold_unary): Likewise.
2521 (fold_binary): Likewise.
2523 2005-04-11 Daniel Berlin <dberlin@dberlin.org>
2525 Fix PR tree-optimization/20612
2526 * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Fix increment
2528 (perfect_nestify): preheaderbb is *not* part of loop of the
2531 2005-04-11 Andrew Pinski <pinskia@physics.uc.edu>
2533 * tree-ssa-alias.c (may_alias_p): If the variable
2534 is a global variable and the pointer is parameter
2535 and -fargument-noalias-global is used, then
2536 the pointer cannot alias the variable.
2538 2005-04-11 James A. Morrison <phython@gcc.gnu.org>
2540 * config/sparc/sparc.c: Use gcc_assert and gcc_unreachable.
2541 * config/sparc/sparc.h: Likewise.
2542 * config/sparc/sparc.md: Likewise.
2544 2005-04-11 Kazu Hirata <kazu@cs.umass.edu>
2546 * tree-vrp.c (maybe_add_assert_expr): Move a comment.
2548 * tree-vrp.c: Fix a comment typo.
2550 2005-04-11 Diego Novillo <dnovillo@redhat.com>
2552 PR tree-optimization/20920
2553 * tree-pretty-print.c (dump_generic_node): Show '(ab)' if an
2554 SSA_NAME flows through an abnormal edge.
2555 * tree-vrp.c (infer_value_range): Ignore SSA names that flow
2556 through abnormal edges.
2557 (maybe_add_assert_expr): Likewise.
2559 2005-04-11 Richard Sandiford <rsandifo@redhat.com>
2561 * config/s390/s390.h (s390_tune_string, s390_arch_string)
2562 (s390_warn_framesize_string, s390_warn_dynamicstack_string)
2563 (s390_stack_size_string, s390_stack_guard_string, target_flags)
2564 (MASK_HARD_FLOAT, MASK_SMALL_EXEC, MASK_DEBUG_ARG, MASK_64BIT)
2565 (MASK_ZARCH, MASK_MVCLE, MASK_TPF_PROFILING, MASK_NO_FUSED_MADD)
2566 (MASK_BACKCHAIN, MASK_PACKED_STACK, TARGET_HARD_FLOAT)
2567 (TARGET_SOFT_FLOAT, TARGET_SMALL_EXEC, TARGET_DEBUG_ARG)
2568 (TARGET_64BIT, TARGET_ZARCH, TARGET_MVCLE, TARGET_TPF_PROFILING)
2569 (TARGET_NO_FUSED_MADD, TARGET_FUSED_MADD, TARGET_BACKCHAIN)
2570 (TARGET_PACKED_STACK, TARGET_SWITCHES, TARGET_OPTIONS): Delete.
2571 * config/s390/s390.c (TARGET_DEFAULT_TARGET_FLAGS): Override default.
2572 (TARGET_HANDLE_OPTION): Likewise.
2573 (s390_tune): Initialize to PROCESSOR_max.
2574 (s390_arch_string): Make static.
2575 (s390_tune_string, s390_warn_framesize_string): Delete.
2576 (s390_warn_dynamicstack_string, s390_stack_size_string): Delete.
2577 (s390_stack_guard_string, s390_warn_dynamicstack_p): Delete.
2578 (s390_handle_arch_option, s390_handle_option): New functions.
2579 (override_options): Remove parsing of option strings.
2580 * config/s390/s390.opt: New file.
2582 2005-04-11 Paolo Bonzini <bonzini@gnu.org>
2584 * tree-complex.c (expand_vector_operations): Call
2585 update_stmt_if_modified.
2587 2005-04-11 Paolo Bonzini <bonzini@gnu.org>
2589 * tree-vect-analyze (vect_determine_vectorization_factor):
2590 Do not use GET_MODE_NUNITS.
2591 * tree-vect-transform.c (vect_get_vec_def_for_operand,
2592 (vectorizable_load, vect_transform_loop): Likewise.
2594 2005-04-11 Uros Bizjak <uros@kss-loka.si>
2596 * builtins.def (BUILT_IN_LCEIL, BUILT_IN_LCEILF, BUILT_IN_LCEILL)
2597 (BUILT_IN_LLCEIL, BUILT_IN_LLCEILF, BUILT_IN_LLCEILL): New.
2598 * optabs.h (enum optab_index): Add new OTI_lceil.
2599 (lceil_optab): Define corresponding macro.
2600 * optabs.c (init_optabs): Initialize lceil_optab.
2601 * genopinit.c (optabs): Implement lceil_optab using lceilsi2
2602 and lceildi2 patterns.
2603 * builtins.c (expand_builtin_int_roundingfn): Handle
2604 BUILT_IN_LCEIL{,F,L} and BUILT_IN_LLCEIL{,F,L}.
2605 (fold_builtin_int_roundingfn): Handle BUILT_IN_LCEIL{,F,L} and
2606 BUILT_IN_LLCEIL{,F,L}.
2607 (fold_builtin_1): Fold BUILT_IN_LCEIL{,F,L} and
2608 BUILT_IN_LLCEIL{,F,L} using fold_builtin_int_roundingfn.
2609 (mathfn_built_in): Handle BUILT_IN LCEIL and BUILT_IN_LLCEIL.
2610 (expand_builtin): Expand BUILT_IN_LCEIL{,F,L} and
2611 BUILT_IN_LLCEIL{,F,L} using expand_builtin_int_roundingfn.
2612 * convert.c (convert_to_integer): Convert (long int)ceil{,f,l},
2613 into lceil built-in function and (long long int)ceil{,f,l} into
2614 llceil built-in function.
2615 * fold-const.c (tree_expr_nonnegative_p): Add BUILT_IN_LCEIL and
2618 2005-04-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2620 * pa/quadlib.c (_U_Qfneg): Toggle sign bit instead of subtracting from
2623 2005-04-10 Kazu Hirata <kazu@cs.umass.edu>
2625 * config/arm/arm.c: Fix a comment typo.
2626 * doc/tree-ssa.texi: Fix a typo.
2628 2005-04-10 Steven Bosscher <stevenb@suse.de>
2630 * cselib.c (clear_table): Rename to cselib_clear_table.
2631 * cselib.h (cselib_clear_table): Add prototype.
2632 * gcse.c (gcse_main): Make 'f' argument unused.
2633 (alloc_gcse_mem): Do not walk the insn chain, walk the contents
2634 of each basic block instead.
2635 (compute_sets, compute_hash_table_work): Likewise.
2636 (constprop_register): Change int 'alter_jumps' argument to bool.
2637 (do_local_cprop): Likewise.
2638 (local_cprop_pass): Likewise. Also walk basic blocks instead of
2639 the insn chain. Explicitly clear the cselib tables after finishing
2640 one basic block. Make sure there are no unterminated libcall blocks.
2641 Update compute_sets call.
2642 (cprop): Walk basic blocks instead of the insn chain.
2643 (one_cprop_pass, compute_ld_motion_mems, compute_store_table):
2645 (bypass_jumps): Update alloc_gcse_mem, compute_sets, and
2646 one_cprop_pass calls.
2648 2005-04-10 Richard Sandiford <rsandifo@redhat.com>
2650 * combine.c (combine_simplify_rtx): Remove a transformation that
2651 relies on an invalid assumption about rtl sign-extension semantics.
2653 2005-04-10 Richard Sandiford <rsandifo@redhat.com>
2655 * value-prof.c (tree_divmod_fixed_value_transform): Fix arguments
2656 to build_int_cst_wide.
2658 2005-04-09 Alexandre Oliva <aoliva@redhat.com>
2661 * loop.c (loop_givs_rescan): If replacement of DEST_ADDR failed,
2662 set the original address pseudo to the correct value before the
2663 original insn, if possible, and leave the insn alone, otherwise
2664 create a new pseudo, set it and replace it in the insn.
2665 * recog.c (validate_change_maybe_volatile): New.
2666 * recog.h (validate_change_maybe_volatile): Declare.
2668 2005-04-09 Caroline Tice <ctice@apple.com>
2670 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
2671 Remove targetm.have_named_sections test.
2672 (fix_edges_for_rarely_executed_code): Likewise.
2673 (insert_section_boundary_note): Likewise.
2674 (reorder_basic_blocks): Check partitioning flag before calling
2675 verify_hot_cold_block_grouping.
2676 * dbxout.c (dbxout_function_end): Get hot/cold section labels from
2677 the function struct rather than global variables.
2678 * dwarf2out.c (COLD_TEXT_SECTION_LABEL): New macro.
2679 (COLD_END_LABEL): Likewise
2680 (cold_text_section_label): New static global variable.
2681 (cold_end_label): Likewise.
2682 (dwarf2out_switch_text_section): Get hot/cold section labels from
2683 the function struct rather than global variables.
2684 (output_aranges): Use cold_text_section_label and cold_end_label;
2685 check partitioning flag before putting out delta.
2686 (output_ranges): Remove incorrect code attempting to use
2688 (output_line_info): Get cold section label from function struct.
2689 (add_location_or_const_value_attribute): Likewise.
2690 (get_subprogram_die): Get hot/cold section labels from function struct.
2691 (dwarf2out_var_location): Likewise.
2692 (dwarf2out_init): Generate cold_text_section_label and cold_end_label;
2693 write out cold_text_section_label if partition flag is set.
2694 (dwarf2out_finish): Write out cold_end_label if partition flag is set;
2695 * function.h (struct function): Add new fields to point to hot/cold
2696 section labels: hot_section_label, cold_section_label,
2697 hot_section_end_label and cold_section_end_label; also add new field
2698 for cold text section name, unlikely_text_section_name.
2699 * opts.c (decode_options): Turn off partitioning flag if
2700 !targetm.have_named_sections.
2701 * output.h (hot_section_label): Remove.
2702 (hot_section_end_label): Remove.
2703 (cold_section_end_label): Remove.
2704 (unlikely_section_label): Remove.
2705 (unlikely_text_section_name): Remove.
2706 * passes.c (rest_of_handle_final): Remove code that frees
2707 unlikely_text_section_name.
2708 * varasm.c (unlikely_section_label): Remove.
2709 (hot_section_label): Remove.
2710 (hot_section_end_label): Remove.
2711 (cold_section_end_label): Remove.
2712 (unlikely_text_section_name): Remove.
2713 (initialize_cold_section_name): Modify to call
2714 targetm.strip_name_encoding; to store cold section name in current
2715 function struct, if it exists; and to only use the decl_section_name
2716 if flag_named_sections is true.
2717 (unlikely_text_section): Modify to get section name out of current
2718 function struct, if there is one; otherwise build it from
2719 UNLIKELY_EXECUTED_TEXT_SECTION_NAME.
2720 (in_unlikely_text_section): Likewise.
2721 (named_section): Modify to get/put cold section name in current function
2722 struct, if there is one.
2723 (function_section): Change 'bool unlikely' to 'int reloc'; check
2724 targetm.have_named_sections before calling named_section.
2725 (current_function_section): Likewise.
2726 (assemble_start_function): Modify to get/put unlikely_text_section_name
2727 in current function struct; modify to get hot/cold section labels
2728 from function struct; initialize labels using
2729 ASM_GENERATE_INTERNAL_LABEL;
2730 test partitioning flag before writing out hot section label.
2731 (assemble_end_function): Test partitioning flag before writing out
2732 hot/cold section labels.
2733 (default_section_type_flags_1): Modify to use array instead of
2734 char* for unlikely_text_section_name; set flags correctly for
2735 cold text section if there is not a current function decl.
2737 2005-04-09 Jakub Jelinek <jakub@redhat.com>
2739 * tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD
2740 and TI_VA_LIST_FPR_COUNTER_FIELD.
2741 (va_list_gpr_counter_field, va_list_fpr_counter_field): Define.
2742 * tree-pass.h (pass_stdarg): Add.
2743 * tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg.
2744 * tree-stdarg.c: New file.
2745 * tree-stdarg.h: New file.
2746 * Makefile.in (OBJS-common): Add tree-stdarg.o.
2747 (tree-stdarg.o): Add dependencies.
2748 * function.h (struct function): Add va_list_gpr_size and
2749 va_list_fpr_size fields.
2750 * function.c (allocate_struct_function): Initialize them.
2751 * target.h (struct gcc_target): Add stdarg_optimize_hook.
2752 * target-def.h (TARGET_STDARG_OPTIMIZE_HOOK): Define.
2753 (TARGET_INITIALIZER): Add it.
2755 * config/i386/i386.c (ix86_build_builtin_va_list): Initialize
2756 va_list_{g,f}pr_counter_field.
2757 (ix86_setup_incoming_varargs): Don't do anything if reg_save
2758 area will not be used. Only save registers that tree-stdarg.c
2759 detected they need saving.
2760 (ix86_va_start): Don't set up fields that won't be used.
2762 * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize
2763 va_list_{g,f}pr_counter_field.
2764 (setup_incoming_varargs): Don't do anything if reg_save
2765 area will not be used. Only save registers that tree-stdarg.c
2766 detected they need saving.
2767 (rs6000_va_start): Don't set up fields that won't be used.
2769 * config/alpha/alpha.c: Include tree-flow.h and tree-stdarg.h.
2770 (alpha_build_builtin_va_list): Initialize va_list_gpr_counter_field.
2771 (va_list_skip_additions, alpha_stdarg_optimize_hook): New functions.
2772 (TARGET_STDARG_OPTIMIZE_HOOK): Define.
2774 2005-04-09 Jakub Jelinek <jakub@redhat.com>
2777 * config/i386/i386.c (construct_container): Pass empty aligned
2778 struct, union or class in memory.
2780 2005-04-09 Kazu Hirata <kazu@cs.umass.edu>
2782 * dominance.c, gthr-win32.h, reg-stack.c, tree-ssa-copy.c,
2783 tree-ssa-operands.c, tree-ssa.c, tree-vrp.c, varasm.c,
2784 config/alpha/alpha.c, config/arm/arm.c, config/m32r/m32r.h,
2785 config/rs6000/predicates.md: Fix comment typos.
2787 * sched-int.h (haifa_insn_data): Remove blockage and units.
2788 (INSN_UNIT, INSN_BLOCKAGE, UNIT_BITS, BLOCKAGE_MASK,
2789 ENCODE_BLOCKAGE, UNIT_BLOCKED, BLOCKAGE_RANGE,
2790 MIN_BLOCKAGE_COST, MAX_BLOCKAGE_COST): Remove.
2792 2005-04-09 Jan Hubicka <jh@suse.cz>
2793 Steven Bosscher <stevenb@suse.de>
2795 * cfglayout.c (copy_bbs): Rename n_edges to num_edges.
2796 * cfgloop.c (get_loop_exit_edges): Likewise.
2797 * cfgloopmanip.c (fix_irreducible_loops): Likewise.
2799 * loop-unroll.c (analyze_insns_in_loop): Likewise.
2800 * tree-cfg.c (dump_cfg_status): Likewise.
2802 2005-04-09 David Edelsohn <edelsohn@gnu.org>
2804 * config/rs6000/predicates.md (altivec_register_operand): Remove
2805 redundant match_code test.
2806 (gpc_reg_operand): Same.
2807 (cc_reg_operand): Same.
2808 (cc_reg_not_cr0_operand): Same.
2810 2005-04-09 Jan Hubicka <jh@suse.cz>
2812 Forgotten hunk from my last merge patch:
2813 * final.c (output_addr_const): Do not call mark_referenced.
2815 2005-04-09 Andrew MacLeod <amacleod@redhat.com>
2817 * doc/tree-ssa.texi: Add immediate use documentation.
2819 2005-04-09 Richard Earnshaw <richard.earnshaw@arm.com>
2821 * arm.c (FL_WBUF): Define.
2822 (arm_tune_strongarm): Renamed from arm_is_strong. All uses changed.
2823 (arm_is_6_or_7): Delete.
2824 (arm_tune_wbuf): New.
2825 (arm_override_options): Set arm_tune_wbuf.
2826 * arm.h (arm_tune_strongarm): Renamed from arm_is_strong.
2827 (arm_is_6_or_7): Delete declaration.
2828 (arm_tune_wbuf): New declartion.
2829 * arm.md (is_strongarm): Derive from arm_tune_strongarm.
2830 (model_wbuf): Derive from arm_tune_wbuf.
2831 * arm-cores.def (arm600, arm610, arm620, arm700, arm700i, arm710)
2832 (arm720, arm710c, arm7100, arm7500, arm7500fe, arm710t, arm720t)
2833 (arm740t): Mark CPUs as having a write buffer.
2835 2005-04-09 Uros Bizjak <uros@kss-loka.si>
2837 * config/i386/i386.md (*fp_jcc_7_387): Use 'const0_operand' instead
2838 of 'const_double_operand' in operand 2 constraints. Update enable
2841 2005-04-09 Uros Bizjak <uros@kss-loka.si>
2843 * builtins.def (BUILT_IN_LFLOOR, BUILT_IN_LFLOORF, BUILT_IN_LFLOORL)
2844 (BUILT_IN_LLFLOOR, BUILT_IN_LLFLOORF, BUILT_IN_LLFLOORL): New.
2845 * optabs.h (enum optab_index): Add new OTI_lfloor.
2846 (lfloor_optab): Define corresponding macro.
2847 * optabs.c (init_optabs): Initialize lfloor_optab.
2848 * genopinit.c (optabs): Implement lfloor_optab using lfloorsi2
2849 and lfloordi2 patterns.
2850 * builtins.c (expand_builtin_int_roundingfn): New prototype.
2851 (expand_builtin_int_roundingfn): New function.
2852 (fold_builtin_int_roundingfn): New prototype.
2853 (fold_builtin_int_roundingfn): New function, renamed from
2854 fold_builtin_lround.
2855 Handle BUILT_IN_LROUND{,F,L}, BUILT_IN_LLROUND{,F,L} and
2856 BUILT_IN_LFLOOR{,F,L}, BUILT_IN_LLFLOOR{,F,L}.
2857 (fold_builtin_1): Fold BUILT_IN_LFLOOR{,F,L} and
2858 BUILT_IN_LLFLOOR{,F,L} using fold_builtin_int_roundingfn.
2859 (mathfn_built_in): Handle BUILT_IN LFLOOR and BUILT_IN_LLFLOOR.
2860 (expand_builtin): Expand BUILT_IN_LFLOOR{,F,L} and
2861 BUILT_IN_LLFLOOR{,F,L} using expand_builtin_int_roundingfn.
2862 * convert.c (convert_to_integer): Convert (long int)floor{,f,l},
2863 into lfloor built-in function and (long long int)floor{,f,l} into
2864 llfloor built-in function.
2865 * fold-const.c (tree_expr_nonnegative_p): Add BUILT_IN_LFLOOR and
2868 2005-04-08 Ian Lance Taylor <ian@airs.com>
2870 * c-common.def: Move FOR_STMT, WHILE_STMT, DO_STMT, BREAK_STMT,
2871 CONTINUE_STMT, and SWITCH_STMT to cp/cp-tree.def.
2872 * c-common.h (WHILE_COND, WHILE_BODY): Move to cp/cp-tree.h.
2873 (DO_COND, DO_BODY): Likewise.
2874 (FOR_INIT_STMT, FOR_COND, FOR_EXPR, FOR_BODY): Likewise.
2875 (SWITCH_STMT_COND, SWITCH_STMT_BODY, SWITCH_STMT_TYPE): Likewise.
2876 (c_common_stmt_codes): Remove FOR_STMT, WHILE_STMT, DO_STMT,
2877 BREAK_STMT, CONTINUE_STMT, and SWITCH_STMT.
2878 (build_continue_stmt, build_break_stmt): Don't declare.
2879 (c_do_switch_warnings): Update declaration.
2880 * c-gimplify.c (enum bc_t): Remove.
2881 (struct c_gimplify_ctx, ctxp): Remove.
2882 (push_context, pop_context): Remove static functions.
2883 (c_genericize): Don't call push_context or pop_context.
2884 (begin_bc_block, finish_bc_block): Remove static functions.
2885 (build_bc_goto): Likewise.
2886 (gimplify_c_loop): Likewise.
2887 (gimplify_for_stmt, gimplify_while_stmt): Likewise.
2888 (gimplify_do_stmt, gimplify_switch_stmt): Likewise.
2889 (c_gimplify_expr): Remove handling of FOR_STMT, WHILE_STMT,
2890 DO_STMT, SWITCH_STMT, CONTINUE_STMT, BREAK_STMT.
2891 * c-common.c (c_do_switch_warnings): Rename from
2892 c_do_switch_warnings_1.
2893 (c_do_switch_warnings) [old version]: Remove.
2894 (c_do_switch_expr_warnings): Remove.
2895 * c-typeck.c (c_finish_case): Call new c_do_switch_warnings
2896 function instead of c_do_switch_expr_warnings.
2897 * c-dump.c (c_dump_tree): Remove handling of BREAK_STMT,
2898 CONTINUE_STMT, DO_STMT, FOR_STMT, SWITCH_STMT, and WHILE_STMT.
2899 * c-pretty-print.c (pp_c_statement): Likewise.
2900 * c-semantics.c (build_break_stmt, build_continue_stmt): Remove.
2902 2005-04-08 Devang Patel <dpatel@apple.com>
2904 * tree-if-conv.c (find_phi_replacement_condition): New parameter, loop.
2905 While selecting replacement condition pay attention to loop header.
2907 2005-04-08 Diego Novillo <dnovillo@redhat.com>
2909 Merge from tree-cleanup-branch: VRP, store CCP, store
2910 copy-prop, incremental SSA updating of FUD chains and
2911 newly exposed symbols.
2913 * Makefile.in (tree-ssa-copy.o): Depend on tree-ssa-propagate.h.
2914 (OBJS-common): Add tree-vrp.o.
2915 (tree-vrp.o): New rule.
2916 * basic-block.h (nearest_common_dominator_for_set): Declare.
2917 * common.opt (ftree-store-ccp): New flag.
2918 (ftree-copy-prop): New flag.
2919 (ftree-vrp): New flag.
2920 (ftree-store-copy-prop): New flag.
2921 * dominance.c (nearest_common_dominator_for_set): New.
2922 * domwalk.c (walk_dominator_tree): Only traverse
2923 statements in blocks marked in walk_data->interesting_blocks.
2924 * domwalk.h (struct dom_walk_data): Add field interesting_blocks.
2925 * fold-const.c (fold): Handle ASSERT_EXPR.
2926 * opts.c (decode_options): Set flag_tree_copy_prop at -O1.
2927 Set flag_tree_store_ccp, flag_tree_store_copy_prop and
2928 flag_tree_vrp at -O2.
2929 * timevar.def (TV_TREE_VRP): Define.
2930 (TV_TREE_COPY_PROP): Define.
2931 (TV_TREE_STORE_COPY_PROP): Define.
2932 (TV_TREE_SSA_INCREMENTAL): Define.
2933 (TV_TREE_STORE_CCP): Define.
2934 * tree-cfg.c (tree_can_merge_blocks_p): Remove reference
2935 to kill_redundant_phi_nodes from comment.
2936 (verify_expr): Handle ASSERT_EXPR.
2937 * tree-dfa.c (mark_new_vars_to_rename): Remove second
2938 argument. Update all users.
2939 (mark_call_clobbered_vars_to_rename): Remove. Update all
2941 * tree-flow-inline.h (unmodifiable_var_p): New.
2942 * tree-flow.h (enum value_range_type): Declare.
2943 (struct value_range_def): Declare.
2944 (value_range): Declare.
2945 (remove_all_phi_nodes_for): Remove. Update all users.
2946 (find_phi_node_for): Declare.
2947 (add_type_alias): Declare.
2948 (count_uses_and_derefs): Declare.
2949 (kill_redundant_phi_nodes): Remove.
2950 (rewrite_into_ssa): Remove.
2951 (rewrite_def_def_chains): Remove.
2952 (update_ssa, register_new_name_mapping, create_new_def_for,
2953 need_ssa_update_p, name_registered_for_update_p,
2954 release_ssa_name_after_update_ssa, dump_repl_tbl,
2955 debug_repl_tbl, dump_names_replaced_by,
2956 debug_names_replaced_by, mark_sym_for_renaming,
2957 mark_set_for_renaming, get_current_def, set_current_def,
2958 get_value_range, dump_value_range, debug_value_range,
2959 dump_all_value_ranges, debug_all_value_ranges,
2960 expr_computes_nonzero, loop_depth_of_name,
2961 unmodifiable_var_p): Declare.
2962 * tree-gimple.c (is_gimple_formal_tmp_rhs): Handle
2964 * tree-into-ssa.c (block_defs_stack): Update comment.
2965 (old_ssa_names, new_ssa_names, old_virtual_ssa_names,
2966 syms_to_rename, names_to_release, repl_tbl,
2967 need_to_initialize_update_ssa_p, need_to_update_vops_p,
2968 need_to_replace_names_p): New locals.
2969 (NAME_SETS_GROWTH_FACTOR): Define.
2970 (struct repl_map_d): Declare.
2971 (struct mark_def_sites_global_data): Add field
2973 (enum rewrite_mode): Declare.
2974 (REGISTER_DEFS_IN_THIS_STMT): Define.
2975 (compute_global_livein): Use last_basic_block instead of
2977 (set_def_block): Remove last argument. Update all callers.
2978 (prepare_use_operand_for_rename): Remove. Update all callers.
2979 (prepare_def_operand_for_rename): Remove. Update all callers.
2980 (symbol_marked_for_renaming): New.
2983 (repl_map_hash): New.
2985 (repl_map_free): New.
2986 (names_replaced_by): New.
2987 (add_to_repl_tbl): New.
2988 (add_new_name_mapping): New.
2989 (mark_def_sites): Assume that all the operands in the
2990 statement are in normal form.
2991 (find_idf): Assert that the block in the stack is valid.
2992 (get_default_def_for): New.
2993 (insert_phi_nodes_for): Add new argument 'update_p'.
2995 If update_p is true, add a new mapping between the LHS of
2996 each new PHI and the name that it replaces.
2997 (insert_phi_nodes_1): Only call find_idf if needed.
2998 (get_reaching_def): Call get_default_def_for.
2999 (rewrite_operand): Remove.
3000 (rewrite_stmt): Do nothing if REGISTER_DEFS_IN_THIS_STMT
3001 and REWRITE_THIS_STMT are false.
3002 Assume that all the operands in the statement are in
3004 (rewrite_add_phi_arguments): Don't use PHI_REWRITTEN.
3005 (rewrite_virtual_phi_arguments): Remove.
3006 (invalidate_name_tags): Remove.
3007 (register_new_update_single, register_new_update_set,
3008 rewrite_update_init_block, replace_use,
3009 rewrite_update_fini_block, rewrite_update_stmt,
3010 rewrite_update_phi_arguments): New.
3011 rewrite_blocks): Remove argument 'fix_virtual_phis'.
3012 Add arguments 'entry', 'what' and 'blocks'.
3013 Initialize the dominator walker according to 'what' and
3015 Start the dominator walk at 'entry'.
3016 (mark_def_site_blocks): Add argument 'interesting_blocks'.
3017 Use it to configure the dominator walker.
3018 (rewrite_into_ssa): Remove argument 'all'.
3020 (rewrite_all_into_ssa): Remove.
3021 (rewrite_def_def_chains): Remove.
3022 (mark_def_interesting, mark_use_interesting,
3023 prepare_phi_args_for_update, prepare_block_for_update,
3024 prepare_def_site_for, prepare_def_sites,
3025 dump_names_replaced_by, debug_names_replaced_by,
3026 dump_repl_tbl, debug_repl_tbl, init_update_ssa,
3027 delete_update_ssa, create_new_def_for,
3028 register_new_name_mapping, mark_sym_for_renaming,
3029 mark_set_for_renaming, need_ssa_update_p,
3030 name_registered_for_update_p, ssa_names_to_replace,
3031 release_ssa_name_after_update_ssa,
3032 insert_updated_phi_nodes_for, update_ssa): New.
3033 * tree-loop-linear.c (linear_transform_loops): Call
3034 update_ssa instead of rewrite_into_ssa.
3035 * tree-optimize.c (vars_to_rename): Remove.
3037 (init_tree_optimization_passes): Replace
3038 pass_redundant_phi with pass_copy_prop.
3040 Replace pass_ccp with pass_store_ccp.
3041 Add pass_store_copy_prop after pass_store_ccp.
3042 (execute_todo): If the TODO_ flags don't include updating
3043 the SSA form, assert that it does not need to be updated.
3044 Call update_ssa instead of rewrite_into_ssa and
3045 rewrite_def_def_chains.
3046 If TODO_verify_loops is set, call verify_loop_closed_ssa.
3047 (tree_rest_of_compilation):
3048 * tree-pass.h (TODO_dump_func, TODO_ggc_collect,
3049 TODO_verify_ssa, TODO_verify_flow, TODO_verify_stmts,
3050 TODO_cleanup_cfg): Renumber.
3051 (TODO_verify_loops, TODO_update_ssa,
3052 TODO_update_ssa_no_phi, TODO_update_ssa_full_phi,
3053 TODO_update_ssa_only_virtuals): Define.
3054 (pass_copy_prop, pass_store_ccp, pass_store_copy_prop, pass_vrp):
3056 * tree-phinodes.c (make_phi_node): Update documentation.
3057 (remove_all_phi_nodes_for): Remove.
3058 (find_phi_node_for): New.
3059 * tree-pretty-print.c (dump_generic_node): Handle ASSERT_EXPR.
3060 * tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Likewise.
3061 (interpret_rhs_modify_expr): Likewise.
3062 * tree-sra.c (decide_instantiations): Mark all symbols in
3063 SRA_CANDIDATES for renaming.
3064 (mark_all_v_defs_1): Rename from mark_all_v_defs.
3065 (mark_all_v_defs): New function. Update all users to call it
3066 with the whole list of scalarized statements, not just the
3068 * tree-ssa-alias.c (count_ptr_derefs): Make extern.
3069 (compute_flow_insensitive_aliasing): If the tag is
3070 unmodifiable and the variable isn't or vice-versa, don't
3071 make them alias of each other.
3072 (setup_pointers_and_addressables): If the type tag for
3073 VAR is about to change, mark the old one for renaming.
3074 (add_type_alias): New.
3075 * tree-ssa-ccp.c: Document SSA-CCP and STORE-CCP.
3076 (ccp_lattice_t): Rename from latticevalue.
3077 (value): Remove. Update all users.
3078 (const_val): New local variable.
3079 (do_store_ccp): New local variable.
3080 (dump_lattice_value): Handle UNINITIALIZED.
3081 (debug_lattice_value): New.
3082 (get_default_value): Re-write.
3083 (set_lattice_value): Re-write.
3084 (def_to_varying): Remove. Update all users.
3085 (likely_value): Return VARYING for statements that make
3086 stores when STORE_CCP is false.
3087 Return VARYING for any statement other than MODIFY_EXPR,
3088 COND_EXPR and SWITCH_EXPR.
3089 (ccp_initialize): Re-write.
3090 (replace_uses_in, replace_vuse_in, substitute_and_fold):
3091 Move to tree-ssa-propagate.c.
3092 (ccp_lattice_meet): Handle memory stores when
3093 DO_STORE_CCP is true.
3094 (ccp_visit_phi_node): Likewise.
3095 (ccp_fold): Likewise.
3096 (evaluate_stmt): Likewise.
3097 (visit_assignment): Likewise.
3098 (ccp_visit_stmt): Likewise.
3099 (execute_ssa_ccp): Add argument 'store_ccp'. Copy it
3103 (do_ssa_store_ccp): New.
3104 (gate_store_ccp): New.
3105 (pass_store_ccp): Declare.
3106 * tree-ssa-copy.c: Include tree-ssa-propagate.h.
3107 (may_propagate_copy): Reformat.
3108 Don't abort if ORIG is a virtual and DEST isn't.
3109 If NEW does not have alias information but DEST does,
3111 (copy_of, cached_last_copy_of, do_store_copy_prop, enum
3112 copy_prop_kind, which_copy_prop): Declare.
3113 (stmt_may_generate_copy, get_copy_of_val,
3114 get_last_copy_of, set_copy_of_val, dump_copy_of,
3115 copy_prop_visit_assignment, copy_prop_visit_cond_stmt,
3116 copy_prop_visit_stmt, copy_prop_visit_phi_node,
3117 init_copy_prop, fini_copy_prop, execute_copy_prop,
3118 gate_copy_prop, do_copy_prop, gate_store_copy_prop,
3119 store_copy_prop): New.
3120 (pass_copy_prop, pass_store_copy_prop): Declare.
3121 * tree-ssa-dom.c (struct opt_stats_d): Add fields
3122 'num_const_prop' and 'num_copy_prop'.
3123 (cprop_operand): Update them.
3124 (dump_dominator_optimization_stats): Dump them.
3125 (tree_ssa_dominator_optimize): Call update_ssa instead of
3127 (loop_depth_of_name): Declare extern.
3128 (simplify_cond_and_lookup_avail_expr): Guard against NULL
3129 values for LOW or HIGH.
3130 (cprop_into_successor_phis): Only propagate if NEW != ORIG.
3131 (record_equivalences_from_stmt): Call expr_computes_nonzero.
3132 (cprop_operand): Only propagate if VAL != OP.
3133 * tree-ssa-dse.c (dse_optimize_stmt): Mark symbols in removed
3134 statement for renaming.
3135 * tree-ssa-loop-im.c (move_computations): Call update_ssa.
3136 * tree-ssa-loop-ivopts.c (rewrite_address_base): Call
3137 add_type_alias if necessary.
3138 Call mark_new_vars_to_rename.
3139 (tree_ssa_iv_optimize): If new symbols need to be renamed,
3140 mark every statement updated, call update_ssa and
3141 rewrite_into_loop_closed_ssa.
3142 * tree-ssa-loop-manip.c (add_exit_phis): Do not remove DEF_BB
3143 from LIVEIN if VAR is a virtual.
3144 * tree-ssa-loop.c (tree_loop_optimizer_init): Call update_ssa.
3145 * tree-ssa-operands.c (get_expr_operands): Handle ASSERT_EXPR.
3146 (get_call_expr_operands): Reformat statement.
3147 (add_stmt_operand): Don't create V_MAY_DEFs for read-only
3149 * tree-ssa-propagate.c (ssa_prop_init): Initialize
3150 SSA_NAME_VALUE for every name.
3151 (first_vdef, stmt_makes_single_load, stmt_makes_single_store,
3152 get_value_loaded_by): New.
3153 (replace_uses_in, replace_vuses_in, replace_phi_args_in,
3154 substitute_and_fold): Move from tree-ssa-ccp.c.
3155 * tree-ssa-propagate.h (struct prop_value_d, prop_value_t,
3156 first_vdef, stmt_makes_single_load, stmt_makes_single_store,
3157 get_value_loaded_by, replace_uses_in, substitute_and_fold):
3159 * tree-ssa.c (verify_use): Fix error message.
3160 (propagate_into_addr, replace_immediate_uses, get_eq_name,
3161 check_phi_redundancy, kill_redundant_phi_nodes,
3162 pass_redundant_phi): Remove. Update all users.
3163 * tree-vect-transform.c (vect_create_data_ref_ptr): Call
3164 add_type_alias, if necessary.
3165 * tree-vectorizer.h (struct _stmt_vect_info): Update
3166 documentation for field 'memtag'.
3167 * tree-vrp.c: New file.
3168 * tree.def (ASSERT_EXPR): Define.
3169 * tree.h (ASSERT_EXPR_VAR): Define.
3170 (ASSERT_EXPR_COND): Define.
3171 (SSA_NAME_VALUE_RANGE): Define.
3172 (struct tree_ssa_name): Add field 'value_range'.
3173 (PHI_REWRITTEN): Remove.
3174 (struct tree_phi_node): Remove field 'rewritten'.
3175 * doc/invoke.texi (-fdump-tree-storeccp, -ftree-copy-prop,
3176 -ftree-store-copy-prop): Document.
3177 * doc/tree-ssa.texi: Remove broken link to McCAT's compiler.
3178 Document usage of update_ssa.
3180 2005-04-08 David Edelsohn <edelsohn@gnu.org>
3183 * config/rs6000/predicates.md (altivec_register_operand): Accept
3185 (and64_operand): Do not limit CONST_INT to mask64_operand.
3186 (and64_2_operand): Do not limit CONST_INT to mask64_1or2_operand.
3187 (and_operand): Do not limit CONST_INT to mask_operand.
3189 2005-04-09 Hans-Peter Nilsson <hp@axis.com>
3191 PR rtl-optimization/20466
3192 * flow.c (invalidate_mems_from_set): Handle a MEM by checking it
3193 for overlap of the address of each list member.
3194 (mark_set_1): Call invalidate_mems_from_set for MEMs too.
3196 2005-04-08 Mike Stump <mrs@apple.com>
3198 * config/darwin.c (indirect_data): Fix typo in strncmp logic.
3200 * config/rs6000/rs6000.c (rs6000_emit_prologue): Use 5 nops,
3203 2005-04-08 Kazu Hirata <kazu@cs.umass.edu>
3205 * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Remove.
3207 * function.c (push_function_context_to): Don't set
3209 * function.h (function): Remove contains_functions.
3210 (current_function_contains_functions): Remove.
3212 * function.h (function): Remove instrument_entry_exit.
3213 (current_function_instrument_entry_exit): Remove.
3215 * function.h (nonlocal_labels): Remove.
3217 * tree.h (STRIP_MAIN_TYPE_NOPS): Remove.
3219 * genattrtab.c (attr_desc): Remove negative_ok and unsigned_p.
3220 (check_attr_value, write_attr_get, write_expr_attr_cache,
3221 find_attr, make_internal_attr): Don't reference negative_ok or
3223 * genattrtab.h (ATTR_NEGATIVE_OK, ATTR_UNSIGNED,
3224 ATTR_FUNC_UNITS, ATTR_BLOCKAGE): Remove.
3225 (ATTR_STATIC): Adjust the value.
3227 * c-common.h (C_ARTIFICIAL_STRING_P): Remove.
3229 2005-04-08 Ulrich Weigand <uweigand@de.ibm.com>
3231 * config/s390/tpf.h (ASM_SPEC): Define.
3233 2005-04-08 Kazu Hirata <kazu@cs.umass.edu>
3235 * tree-flow.h: Remove the prototype for
3236 redirect_immediate_uses.
3237 (TDFA_USE_OPS, TDFA_USE_VOPS): Remove.
3239 2005-04-08 Richard Earnshaw <richard.earnshaw@arm.com>
3241 * arm.c (arm_const_double_by_parts): New function.
3242 * arm-protos.h (arm_const_double_by_parts): Add prototype.
3243 * arm.md (define_split for 64-bit constants): Add another one.
3245 2005-04-08 Andrew MacLeod <amacleod@redhat.com>
3247 * tree-ssa-operands.c (correct_use_link): Remove linear scan.
3249 2005-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3251 * system.h: Revert last change.
3253 2005-04-08 Richard Sandiford <rsandifo@redhat.com>
3255 * config/xtensa/xtensa.h (target_flags, MASK_NO_FUSED_MADD)
3256 (MASK_CONST16, TARGET_NO_FUSED_MADD, TARGET_CONST16)
3257 (TARGET_SWITCHES): Delete.
3258 * config/xtensa/xtensa.c (TARGET_DEFAULT_TARGET_FLAGS): Define.
3259 * config/xtensa/xtensa.md (muladdsf3, mulsubsf3): Check
3260 TARGET_FUSED_MADD instead of !TARGET_NO_FUSED_MADD.
3261 * config/xtensa/xtensa.opt: New file.
3263 2005-04-08 Ben Elliston <bje@au.ibm.com>
3265 * config/fp-bit.c: Include L_mul_tf in #endif comment.
3266 * config/fp-bit.h: Tidy comments.
3268 2005-04-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3270 * system.h: Poison PARAMS.
3272 2005-04-07 Richard Sandiford <rsandifo@redhat.com>
3274 * config/vax/vax.h (target_flags, MASK_UNIX_ASM, MASK_VAXC_ALIGNMENT)
3275 (MASK_G_FLOAT, TARGET_UNIX_ASM, TARGET_VAXC_ALIGNMENT, TARGET_G_FLOAT)
3276 (TARGET_SWITCHES): Delete.
3277 * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Override default.
3278 * config/vax/vax.opt: New file.
3280 2005-04-07 Daniel Berlin <dberlin@dberlin.org>
3282 * tree-ssa-dse.c (dse_optimize_stmt): Fix incorrect comment.
3284 2005-04-07 Ian Lance Taylor <ian@airs.com>
3286 * config/iq2000/iq2000.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Don't
3288 * config/mips/mips.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Likewise.
3289 * config/sparc/sparc.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE):
3292 2005-04-07 Kazu Hirata <kazu@cs.umass.edu>
3294 * tree-ssa-sink.c (nearest_common_dominator_of_uses): Consider
3295 all immediate uses in PHI nodes.
3297 2005-04-07 Richard Earnshaw <richard.earnshaw@arm.com>
3299 * arm.c (arm_const_double_inline_cost): Handle any constant by
3300 using gen_lowpart and gen_highpart_mode.
3301 (note_invalid_constants): All constants in an RTX with a constraint
3302 that permits memory are now pushed to the constant pool.
3303 (output_move_double): Delete code to handle reg to reg and
3304 constant to reg moves.
3305 (const_double_needs_minipool, output_mov_immediate): Delete.
3306 * arm.h (EXTRA_CONSTRAINT_STR_ARM): All 'D' variants now handle
3307 CONST_INT and CONST_VECTOR.
3308 * arm.md (ANY64): New mode macro.
3309 (arm_movdi): Split reg-reg and const-reg moves. Simplify constraints.
3310 (movdf_soft_insn): Split reg-reg and const-reg moves.
3311 (split patterns for 64-bit constant and register moves): New.
3312 * cirrus.md (cirrus_arm_movdi): Split reg-reg and const-reg moves.
3313 (cirrus_movdf_hard_insn): Likewise.
3314 * fpa.md (movdf_fpa): Likewise.
3315 * iwmmxt.md (iwmmxt_arm_movdi): Likewise.
3316 (movv8qi_internal, movv4hi_internal, movv2si_internal): Fix
3318 (movv2si_internal_2): Likewise.
3319 * vfp.md (arm_movdi_vfp): Split reg-reg and const-reg moves.
3320 (movdf_vfp): Likewise.
3321 * arm-protos.h (output_mov_immediate): Delete prototype.
3323 2005-04-07 Joseph S. Myers <joseph@codesourcery.com>
3326 * simplify-rtx.c (simplify_unary_operation_1): Check
3327 SUBREG_PROMOTED_UNSIGNED_P (op) > 0 for zero-extension.
3329 2005-04-06 James E Wilson <wilson@specifixinc.com>
3332 * cgraphunit.c (record_call_1, case FDESC_EXPR): Handle same as
3335 2004-04-06 Richard Sandiford <rsandifo@redhat.com>
3337 * coverage.h (GCOV_TYPE_NODE): Delete.
3338 * coverage.c (coverage_counter_alloc, tree_coverage_counter_ref)
3339 (build_ctr_info_type): Use get_gcov_type () instead of GCOV_TYPE_NODE.
3340 * tree-profile.c (tree_gen_edge_profiler, tree_gen_interval_profiler)
3341 (tree_gen_pow2_profiler, tree_gen_one_value_profiler): Likewise.
3342 * value-prof.c (tree_divmod_fixed_value_transform): Delete.
3344 2004-04-06 Richard Sandiford <rsandifo@redhat.com>
3347 * Makefile.in (gcc.pot): Remove options.c dependency.
3348 * optc-gen.awk: Don't quote help strings with N_().
3350 2005-04-06 James A. Morrison <phython@gcc.gnu.org>
3352 * c-common.c (handle_malloc_atttribute): Only set DECL_IS_MALLOC if
3353 the function returns a pointer type.
3355 2005-04-06 Daniel Berlin <dberlin@dberlin.org>
3357 * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): New
3358 * params.h (SALIAS_MAX_IMPLICIT_FIELDS): New
3359 * doc/invoke.texi: Documnet salias-max-implicit-fields.
3360 * tree-ssa-alias.c (struct used_part): Add implicit_uses and
3361 explicit_uses members.
3362 (get_or_create_used_part_for): Initialize new fields.
3363 (fieldoff_compare): New function.
3364 (create_overlap_variables_for): Count number of fields, use
3365 heuristic to determine whether to create subvars for vars with
3367 Sort the field list by offset and avoid creating duplicate SFT's.
3369 2005-04-06 Richard Sandiford <rsandifo@redhat.com>
3371 * c.opt (-F): Remove trailing whitespace from help string.
3372 (-finput-charset): Use a tab to separate the switch name and help
3374 * common.opt (-fsched-stalled-insns, -fsched-stalled-insns-dep)
3375 (-ftree-vectorizer-verbose): Likewise.