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